[media] omap3isp: video: Don't WARN() on unknown pixel formats
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Mon, 28 Nov 2011 11:25:30 +0000 (08:25 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Tue, 20 Dec 2011 11:37:09 +0000 (09:37 -0200)
When mapping from a V4L2 pixel format to a media bus format in the
VIDIOC_TRY_FMT and VIDIOC_S_FMT handlers, the requested format may be
unsupported by the driver. Return a hardcoded format instead of
WARN()ing in that case.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Acked-by: Sakari Ailus <sakari.ailus@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/video/omap3isp/ispvideo.c

index d1000723c5ae0040f45d2f283a0df45de4ee8a01..ffe7ce9eb4bc22fa38d6d1b1ed20a7968400bdea 100644 (file)
@@ -210,14 +210,14 @@ static void isp_video_pix_to_mbus(const struct v4l2_pix_format *pix,
        mbus->width = pix->width;
        mbus->height = pix->height;
 
-       for (i = 0; i < ARRAY_SIZE(formats); ++i) {
+       /* Skip the last format in the loop so that it will be selected if no
+        * match is found.
+        */
+       for (i = 0; i < ARRAY_SIZE(formats) - 1; ++i) {
                if (formats[i].pixelformat == pix->pixelformat)
                        break;
        }
 
-       if (WARN_ON(i == ARRAY_SIZE(formats)))
-               return;
-
        mbus->code = formats[i].code;
        mbus->colorspace = pix->colorspace;
        mbus->field = pix->field;