diff options
author | Guennadi Liakhovetski <g.liakhovetski@gmx.de> | 2009-08-25 10:46:53 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2009-09-18 23:19:01 -0400 |
commit | 94896298bea7823cbccbff563c77b4ae6cabb08e (patch) | |
tree | e870101613329b0b7bb4618615ba72ea0182315f /drivers/media | |
parent | b897a91afbed57558324ef4059efa2e2419e8b66 (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')
-rw-r--r-- | drivers/media/video/ov772x.c | 17 |
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 */ | ||
958 | static int ov772x_set_crop(struct soc_camera_device *icd, | 959 | static 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 | ||
977 | static int ov772x_s_fmt(struct v4l2_subdev *sd, struct v4l2_format *f) | 976 | static int ov772x_s_fmt(struct v4l2_subdev *sd, struct v4l2_format *f) |