[media] v4l: atmel-isi: Fix color component ordering
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Wed, 4 Dec 2013 16:19:11 +0000 (13:19 -0300)
committerMauro Carvalho Chehab <m.chehab@samsung.com>
Wed, 18 Dec 2013 08:55:17 +0000 (06:55 -0200)
The ISI_CFG2.YCC_SWAP field controls color component ordering. The
datasheet lists the following orderings for the memory formats.

YCC_SWAP Byte 0 Byte 1 Byte 2 Byte 3
00: Default Cb(i) Y(i) Cr(i) Y(i+1)
01: Mode1 Cr(i) Y(i) Cb(i) Y(i+1)
10: Mode2 Y(i) Cb(i) Y(i+1) Cr(i)
11: Mode3 Y(i) Cr(i) Y(i+1) Cb(i)

This is based on a sensor format set to CbYCrY (UYVY). The driver
hardcodes the output memory format to YUYV, configure the ordering
accordingly.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Acked-by: Josh Wu <josh.wu@atmel.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
drivers/media/platform/soc_camera/atmel-isi.c

index 3e8d412..9c4cadc 100644 (file)
@@ -112,16 +112,16 @@ static int configure_geometry(struct atmel_isi *isi, u32 width,
        case V4L2_MBUS_FMT_Y8_1X8:
                cr = ISI_CFG2_GRAYSCALE;
                break;
-       case V4L2_MBUS_FMT_UYVY8_2X8:
+       case V4L2_MBUS_FMT_VYUY8_2X8:
                cr = ISI_CFG2_YCC_SWAP_MODE_3;
                break;
-       case V4L2_MBUS_FMT_VYUY8_2X8:
+       case V4L2_MBUS_FMT_UYVY8_2X8:
                cr = ISI_CFG2_YCC_SWAP_MODE_2;
                break;
-       case V4L2_MBUS_FMT_YUYV8_2X8:
+       case V4L2_MBUS_FMT_YVYU8_2X8:
                cr = ISI_CFG2_YCC_SWAP_MODE_1;
                break;
-       case V4L2_MBUS_FMT_YVYU8_2X8:
+       case V4L2_MBUS_FMT_YUYV8_2X8:
                cr = ISI_CFG2_YCC_SWAP_DEFAULT;
                break;
        /* RGB, TODO */