summaryrefslogtreecommitdiff
path: root/linux/drivers/media/video/pxa_camera.c
diff options
context:
space:
mode:
Diffstat (limited to 'linux/drivers/media/video/pxa_camera.c')
-rw-r--r--linux/drivers/media/video/pxa_camera.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/linux/drivers/media/video/pxa_camera.c b/linux/drivers/media/video/pxa_camera.c
index 484d474b3..bb151032b 100644
--- a/linux/drivers/media/video/pxa_camera.c
+++ b/linux/drivers/media/video/pxa_camera.c
@@ -1220,6 +1220,7 @@ static int pxa_camera_try_fmt(struct soc_camera_device *icd,
const struct soc_camera_format_xlate *xlate;
struct v4l2_pix_format *pix = &f->fmt.pix;
__u32 pixfmt = pix->pixelformat;
+ enum v4l2_field field;
int ret;
xlate = soc_camera_xlate_by_fourcc(icd, pixfmt);
@@ -1249,6 +1250,15 @@ static int pxa_camera_try_fmt(struct soc_camera_device *icd,
ret = icd->ops->try_fmt(icd, f);
pix->pixelformat = xlate->host_fmt->fourcc;
+ field = pix->field;
+
+ if (field == V4L2_FIELD_ANY) {
+ pix->field = V4L2_FIELD_NONE;
+ } else if (field != V4L2_FIELD_NONE) {
+ dev_err(&icd->dev, "Field type %d unsupported.\n", field);
+ return -EINVAL;
+ }
+
return ret;
}