media: rcar-vin: align pixelformat check
authorNiklas Söderlund <[email protected]>
Sat, 14 Apr 2018 11:57:07 +0000 (07:57 -0400)
committerMauro Carvalho Chehab <[email protected]>
Fri, 20 Apr 2018 13:54:58 +0000 (09:54 -0400)
If the pixelformat is not supported it should not fail but be set to
something that works. While we are at it move the two different
checks of the pixelformat to the same statement.

Signed-off-by: Niklas Söderlund <[email protected]>
Reviewed-by: Laurent Pinchart <[email protected]>
Signed-off-by: Hans Verkuil <[email protected]>
Signed-off-by: Mauro Carvalho Chehab <[email protected]>
drivers/media/platform/rcar-vin/rcar-v4l2.c

index 05dd5d9256b9752a10c7fca476bb457f94f82ace..cc08fcc73ab20aac1516a19dbacbc354c888e155 100644 (file)
@@ -189,12 +189,10 @@ static int __rvin_try_format(struct rvin_dev *vin,
        u32 walign;
        int ret;
 
-       /* If requested format is not supported fallback to the default */
-       if (!rvin_format_from_pixel(pix->pixelformat)) {
-               vin_dbg(vin, "Format 0x%x not found, using default 0x%x\n",
-                       pix->pixelformat, RVIN_DEFAULT_FORMAT);
+       if (!rvin_format_from_pixel(pix->pixelformat) ||
+           (vin->info->model == RCAR_M1 &&
+            pix->pixelformat == V4L2_PIX_FMT_XBGR32))
                pix->pixelformat = RVIN_DEFAULT_FORMAT;
-       }
 
        /* Limit to source capabilities */
        ret = __rvin_try_format_source(vin, which, pix, source);
@@ -233,12 +231,6 @@ static int __rvin_try_format(struct rvin_dev *vin,
        pix->bytesperline = rvin_format_bytesperline(pix);
        pix->sizeimage = rvin_format_sizeimage(pix);
 
-       if (vin->info->model == RCAR_M1 &&
-           pix->pixelformat == V4L2_PIX_FMT_XBGR32) {
-               vin_err(vin, "pixel format XBGR32 not supported on M1\n");
-               return -EINVAL;
-       }
-
        vin_dbg(vin, "Format %ux%u bpl: %d size: %d\n",
                pix->width, pix->height, pix->bytesperline, pix->sizeimage);