summaryrefslogtreecommitdiffstats
path: root/drivers/media/platform/omap3isp/ispresizer.c
diff options
context:
space:
mode:
authorSakari Ailus <sakari.ailus@iki.fi>2013-10-02 20:17:53 -0300
committerMauro Carvalho Chehab <mchehab@redhat.com>2013-12-04 15:14:30 -0200
commit2e1ab9cb94a257dcd7561601be44ca8b35b27365 (patch)
tree0bfd47b83a701524612658ce9dda183c2a8eefc8 /drivers/media/platform/omap3isp/ispresizer.c
parent8dad936ab3e28b1fd396972c70f523d4b50dfcf4 (diff)
downloadlinux-stable-2e1ab9cb94a257dcd7561601be44ca8b35b27365.tar.gz
linux-stable-2e1ab9cb94a257dcd7561601be44ca8b35b27365.tar.bz2
linux-stable-2e1ab9cb94a257dcd7561601be44ca8b35b27365.zip
[media] omap3isp: Add resizer data rate configuration to resizer_link_validate
The configuration of many other blocks depend on resizer maximum data rate. Get the value from resizer at link validation time. Signed-off-by: Sakari Ailus <sakari.ailus@iki.fi> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/platform/omap3isp/ispresizer.c')
-rw-r--r--drivers/media/platform/omap3isp/ispresizer.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/drivers/media/platform/omap3isp/ispresizer.c b/drivers/media/platform/omap3isp/ispresizer.c
index fa35f2cd64dd..0d36b8bc9f98 100644
--- a/drivers/media/platform/omap3isp/ispresizer.c
+++ b/drivers/media/platform/omap3isp/ispresizer.c
@@ -1532,6 +1532,20 @@ static int resizer_set_format(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh,
return 0;
}
+static int resizer_link_validate(struct v4l2_subdev *sd,
+ struct media_link *link,
+ struct v4l2_subdev_format *source_fmt,
+ struct v4l2_subdev_format *sink_fmt)
+{
+ struct isp_res_device *res = v4l2_get_subdevdata(sd);
+ struct isp_pipeline *pipe = to_isp_pipeline(&sd->entity);
+
+ omap3isp_resizer_max_rate(res, &pipe->max_rate);
+
+ return v4l2_subdev_link_validate_default(sd, link,
+ source_fmt, sink_fmt);
+}
+
/*
* resizer_init_formats - Initialize formats on all pads
* @sd: ISP resizer V4L2 subdevice
@@ -1570,6 +1584,7 @@ static const struct v4l2_subdev_pad_ops resizer_v4l2_pad_ops = {
.set_fmt = resizer_set_format,
.get_selection = resizer_get_selection,
.set_selection = resizer_set_selection,
+ .link_validate = resizer_link_validate,
};
/* subdev operations */