diff options
author | Guennadi Liakhovetski <g.liakhovetski@gmx.de> | 2009-08-25 10:46:42 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2009-09-18 23:18:48 -0400 |
commit | 0d205b6a09177cd14c109321fb40873418a11f7e (patch) | |
tree | 79dd69a481eb474ad9d4d8fce4ed8f6eef99e8d9 /drivers/media/video/ov772x.c | |
parent | e330919a215714796efb451984a753a46b570eb7 (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>
Diffstat (limited to 'drivers/media/video/ov772x.c')
-rw-r--r-- | drivers/media/video/ov772x.c | 10 |
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 | ||
971 | static int ov772x_s_fmt(struct v4l2_subdev *sd, struct v4l2_format *f) | 977 | static int ov772x_s_fmt(struct v4l2_subdev *sd, struct v4l2_format *f) |