aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuennadi Liakhovetski <g.liakhovetski@gmx.de>2009-08-25 10:46:42 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2009-09-18 23:18:48 -0400
commit0d205b6a09177cd14c109321fb40873418a11f7e (patch)
tree79dd69a481eb474ad9d4d8fce4ed8f6eef99e8d9
parente330919a215714796efb451984a753a46b570eb7 (diff)
V4L/DVB (12518): ov772x: S_CROP must return actually configured geometry
V4L2 drivers are allowed to configure a geometry different than what has been requested by the user with S_CROP, but then they have to adjust the input rectangle accordingly. Fix ov772x to comply with this requirement. Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-rw-r--r--drivers/media/video/ov772x.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/media/video/ov772x.c b/drivers/media/video/ov772x.c
index c0c549fa786f..b720558d8a22 100644
--- a/drivers/media/video/ov772x.c
+++ b/drivers/media/video/ov772x.c
@@ -960,12 +960,18 @@ static int ov772x_set_crop(struct soc_camera_device *icd,
960{ 960{
961 struct i2c_client *client = to_i2c_client(to_soc_camera_control(icd)); 961 struct i2c_client *client = to_i2c_client(to_soc_camera_control(icd));
962 struct ov772x_priv *priv = to_ov772x(client); 962 struct ov772x_priv *priv = to_ov772x(client);
963 int ret;
963 964
964 if (!priv->fmt) 965 if (!priv->fmt)
965 return -EINVAL; 966 return -EINVAL;
966 967
967 return ov772x_set_params(client, &rect->width, &rect->height, 968 ret = ov772x_set_params(client, &rect->width, &rect->height,
968 priv->fmt->fourcc); 969 priv->fmt->fourcc);
970 if (!ret) {
971 rect->left = 0;
972 rect->top = 0;
973 }
974 return ret;
969} 975}
970 976
971static int ov772x_s_fmt(struct v4l2_subdev *sd, struct v4l2_format *f) 977static int ov772x_s_fmt(struct v4l2_subdev *sd, struct v4l2_format *f)