aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/ov772x.c
diff options
context:
space:
mode:
authorGuennadi Liakhovetski <g.liakhovetski@gmx.de>2009-08-25 10:46:53 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2009-09-18 23:19:01 -0400
commit94896298bea7823cbccbff563c77b4ae6cabb08e (patch)
treee870101613329b0b7bb4618615ba72ea0182315f /drivers/media/video/ov772x.c
parentb897a91afbed57558324ef4059efa2e2419e8b66 (diff)
V4L/DVB (12526): ov772x: do not use scaling for cropping
OV772x sensors cannot crop, they only support two fixed formats: VGA and QVGA. We should not change the format when requested to crop, only S_FMT can do this. 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.c17
1 files changed, 8 insertions, 9 deletions
diff --git a/drivers/media/video/ov772x.c b/drivers/media/video/ov772x.c
index b720558d8a22..03488f9e1c88 100644
--- a/drivers/media/video/ov772x.c
+++ b/drivers/media/video/ov772x.c
@@ -955,23 +955,22 @@ ov772x_set_fmt_error:
955 return ret; 955 return ret;
956} 956}
957 957
958/* Cannot crop, just return the current geometry */
958static int ov772x_set_crop(struct soc_camera_device *icd, 959static int ov772x_set_crop(struct soc_camera_device *icd,
959 struct v4l2_rect *rect) 960 struct v4l2_rect *rect)
960{ 961{
961 struct i2c_client *client = to_i2c_client(to_soc_camera_control(icd)); 962 struct i2c_client *client = to_i2c_client(to_soc_camera_control(icd));
962 struct ov772x_priv *priv = to_ov772x(client); 963 struct ov772x_priv *priv = to_ov772x(client);
963 int ret;
964 964
965 if (!priv->fmt) 965 if (!priv->fmt || !priv->win)
966 return -EINVAL; 966 return -EINVAL;
967 967
968 ret = ov772x_set_params(client, &rect->width, &rect->height, 968 rect->left = 0;
969 priv->fmt->fourcc); 969 rect->top = 0;
970 if (!ret) { 970 rect->width = priv->win->width;
971 rect->left = 0; 971 rect->height = priv->win->height;
972 rect->top = 0; 972
973 } 973 return 0;
974 return ret;
975} 974}
976 975
977static int ov772x_s_fmt(struct v4l2_subdev *sd, struct v4l2_format *f) 976static int ov772x_s_fmt(struct v4l2_subdev *sd, struct v4l2_format *f)