[media] v4l: vsp1: Make vsp1_entity_get_pad_compose() more generic
Turn the helper into a function that can retrieve crop and compose selection rectangles. Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
This commit is contained in:

committed by
Mauro Carvalho Chehab

parent
7cf0f123c7
commit
ccd3d95a93
@@ -87,12 +87,30 @@ vsp1_entity_get_pad_format(struct vsp1_entity *entity,
|
|||||||
return v4l2_subdev_get_try_format(&entity->subdev, cfg, pad);
|
return v4l2_subdev_get_try_format(&entity->subdev, cfg, pad);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* vsp1_entity_get_pad_selection - Get a pad selection from storage for entity
|
||||||
|
* @entity: the entity
|
||||||
|
* @cfg: the configuration storage
|
||||||
|
* @pad: the pad number
|
||||||
|
* @target: the selection target
|
||||||
|
*
|
||||||
|
* Return the selection rectangle stored in the given configuration for an
|
||||||
|
* entity's pad. The configuration can be an ACTIVE or TRY configuration. The
|
||||||
|
* selection target can be COMPOSE or CROP.
|
||||||
|
*/
|
||||||
struct v4l2_rect *
|
struct v4l2_rect *
|
||||||
vsp1_entity_get_pad_compose(struct vsp1_entity *entity,
|
vsp1_entity_get_pad_selection(struct vsp1_entity *entity,
|
||||||
struct v4l2_subdev_pad_config *cfg,
|
struct v4l2_subdev_pad_config *cfg,
|
||||||
unsigned int pad)
|
unsigned int pad, unsigned int target)
|
||||||
{
|
{
|
||||||
return v4l2_subdev_get_try_compose(&entity->subdev, cfg, pad);
|
switch (target) {
|
||||||
|
case V4L2_SEL_TGT_COMPOSE:
|
||||||
|
return v4l2_subdev_get_try_compose(&entity->subdev, cfg, pad);
|
||||||
|
case V4L2_SEL_TGT_CROP:
|
||||||
|
return v4l2_subdev_get_try_crop(&entity->subdev, cfg, pad);
|
||||||
|
default:
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@@ -122,9 +122,9 @@ vsp1_entity_get_pad_format(struct vsp1_entity *entity,
|
|||||||
struct v4l2_subdev_pad_config *cfg,
|
struct v4l2_subdev_pad_config *cfg,
|
||||||
unsigned int pad);
|
unsigned int pad);
|
||||||
struct v4l2_rect *
|
struct v4l2_rect *
|
||||||
vsp1_entity_get_pad_compose(struct vsp1_entity *entity,
|
vsp1_entity_get_pad_selection(struct vsp1_entity *entity,
|
||||||
struct v4l2_subdev_pad_config *cfg,
|
struct v4l2_subdev_pad_config *cfg,
|
||||||
unsigned int pad);
|
unsigned int pad, unsigned int target);
|
||||||
int vsp1_entity_init_cfg(struct v4l2_subdev *subdev,
|
int vsp1_entity_init_cfg(struct v4l2_subdev *subdev,
|
||||||
struct v4l2_subdev_pad_config *cfg);
|
struct v4l2_subdev_pad_config *cfg);
|
||||||
|
|
||||||
|
@@ -130,9 +130,10 @@ static void rpf_configure(struct vsp1_entity *entity,
|
|||||||
if (pipe->bru) {
|
if (pipe->bru) {
|
||||||
const struct v4l2_rect *compose;
|
const struct v4l2_rect *compose;
|
||||||
|
|
||||||
compose = vsp1_entity_get_pad_compose(pipe->bru,
|
compose = vsp1_entity_get_pad_selection(pipe->bru,
|
||||||
pipe->bru->config,
|
pipe->bru->config,
|
||||||
rpf->bru_input);
|
rpf->bru_input,
|
||||||
|
V4L2_SEL_TGT_COMPOSE);
|
||||||
left = compose->left;
|
left = compose->left;
|
||||||
top = compose->top;
|
top = compose->top;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user