[media] omap3isp: Default to progressive field order when setting the format
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Mon, 19 May 2014 13:49:58 +0000 (10:49 -0300)
committerMauro Carvalho Chehab <m.chehab@samsung.com>
Thu, 21 Aug 2014 20:25:13 +0000 (15:25 -0500)
If the requested field order is not supported default to progressive as
we can't guess how the user will configure the pipeline later on.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Tested-by: Enrico Butera <ebutera@users.sourceforge.net>
Acked-by: Sakari Ailus <sakari.ailus@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
drivers/media/platform/omap3isp/ispvideo.c

index 2876f34b84c0c0f37d87aac76e69d80f218e0785..2fe1c463232d6b02219cb09c0dc8ca7772ec8de5 100644 (file)
@@ -631,6 +631,15 @@ isp_video_set_format(struct file *file, void *fh, struct v4l2_format *format)
        if (format->type != video->type)
                return -EINVAL;
 
+       /* Default to the progressive field order if the requested value is not
+        * supported (or set to ANY). The only supported orders are progressive
+        * (available on all video nodes) and alternate (available on capture
+        * nodes only).
+        */
+       if (format->fmt.pix.field != V4L2_FIELD_ALTERNATE ||
+           video->type == V4L2_BUF_TYPE_VIDEO_OUTPUT)
+               format->fmt.pix.field = V4L2_FIELD_NONE;
+
        /* Fill the bytesperline and sizeimage fields by converting to media bus
         * format and back to pixel format.
         */