summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuennadi Liakhovetski <g.liakhovetski@gmx.de>2009-08-25 11:46:53 -0300
committerMauro Carvalho Chehab <mchehab@redhat.com>2009-09-19 00:19:01 -0300
commit94896298bea7823cbccbff563c77b4ae6cabb08e (patch)
treee870101613329b0b7bb4618615ba72ea0182315f
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>
-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 b720558d8a2..03488f9e1c8 100644
--- a/drivers/media/video/ov772x.c
+++ b/drivers/media/video/ov772x.c
@@ -955,23 +955,22 @@ ov772x_set_fmt_error:
return ret;
}
+/* Cannot crop, just return the current geometry */
static int ov772x_set_crop(struct soc_camera_device *icd,
struct v4l2_rect *rect)
{
struct i2c_client *client = to_i2c_client(to_soc_camera_control(icd));
struct ov772x_priv *priv = to_ov772x(client);
- int ret;
- if (!priv->fmt)
+ if (!priv->fmt || !priv->win)
return -EINVAL;
- ret = ov772x_set_params(client, &rect->width, &rect->height,
- priv->fmt->fourcc);
- if (!ret) {
- rect->left = 0;
- rect->top = 0;
- }
- return ret;
+ rect->left = 0;
+ rect->top = 0;
+ rect->width = priv->win->width;
+ rect->height = priv->win->height;
+
+ return 0;
}
static int ov772x_s_fmt(struct v4l2_subdev *sd, struct v4l2_format *f)