V4L/DVB (12518): ov772x: S_CROP must return actually configured geometry
authorGuennadi Liakhovetski <g.liakhovetski@gmx.de>
Tue, 25 Aug 2009 14:46:42 +0000 (11:46 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Sat, 19 Sep 2009 03:18:48 +0000 (00:18 -0300)
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>
drivers/media/video/ov772x.c

index c0c549f..b720558 100644 (file)
@@ -960,12 +960,18 @@ static int ov772x_set_crop(struct soc_camera_device *icd,
 {
        struct i2c_client *client = to_i2c_client(to_soc_camera_control(icd));
        struct ov772x_priv *priv = to_ov772x(client);
+       int ret;
 
        if (!priv->fmt)
                return -EINVAL;
 
-       return ov772x_set_params(client, &rect->width, &rect->height,
-                                priv->fmt->fourcc);
+       ret = ov772x_set_params(client, &rect->width, &rect->height,
+                               priv->fmt->fourcc);
+       if (!ret) {
+               rect->left = 0;
+               rect->top = 0;
+       }
+       return ret;
 }
 
 static int ov772x_s_fmt(struct v4l2_subdev *sd, struct v4l2_format *f)