[media] v4l: vsp1: Make vsp1_entity_get_pad_compose() more generic
authorLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Thu, 3 Mar 2016 23:17:49 +0000 (20:17 -0300)
committerMauro Carvalho Chehab <mchehab@s-opensource.com>
Fri, 17 Jun 2016 11:14:36 +0000 (08:14 -0300)
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>
drivers/media/platform/vsp1/vsp1_entity.c
drivers/media/platform/vsp1/vsp1_entity.h
drivers/media/platform/vsp1/vsp1_rpf.c

index f60d792..fd20c0d 100644 (file)
@@ -87,12 +87,30 @@ vsp1_entity_get_pad_format(struct vsp1_entity *entity,
        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 *
-vsp1_entity_get_pad_compose(struct vsp1_entity *entity,
-                           struct v4l2_subdev_pad_config *cfg,
-                           unsigned int pad)
+vsp1_entity_get_pad_selection(struct vsp1_entity *entity,
+                             struct v4l2_subdev_pad_config *cfg,
+                             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;
+       }
 }
 
 /*
index aaab05f..a240fc1 100644 (file)
@@ -122,9 +122,9 @@ vsp1_entity_get_pad_format(struct vsp1_entity *entity,
                           struct v4l2_subdev_pad_config *cfg,
                           unsigned int pad);
 struct v4l2_rect *
-vsp1_entity_get_pad_compose(struct vsp1_entity *entity,
-                           struct v4l2_subdev_pad_config *cfg,
-                           unsigned int pad);
+vsp1_entity_get_pad_selection(struct vsp1_entity *entity,
+                             struct v4l2_subdev_pad_config *cfg,
+                             unsigned int pad, unsigned int target);
 int vsp1_entity_init_cfg(struct v4l2_subdev *subdev,
                         struct v4l2_subdev_pad_config *cfg);
 
index 49168db..64dfbdd 100644 (file)
@@ -130,9 +130,10 @@ static void rpf_configure(struct vsp1_entity *entity,
        if (pipe->bru) {
                const struct v4l2_rect *compose;
 
-               compose = vsp1_entity_get_pad_compose(pipe->bru,
-                                                     pipe->bru->config,
-                                                     rpf->bru_input);
+               compose = vsp1_entity_get_pad_selection(pipe->bru,
+                                                       pipe->bru->config,
+                                                       rpf->bru_input,
+                                                       V4L2_SEL_TGT_COMPOSE);
                left = compose->left;
                top = compose->top;
        }