[media] V4L2: sh_mobile_ceu: manage lower 8bit bus
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Tue, 8 May 2012 03:00:07 +0000 (00:00 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Tue, 15 May 2012 19:15:14 +0000 (16:15 -0300)
CAMCR::DTIF feild controls camera bus as upper8bit/16bit/lower8bit.
This patch manages unmanaged lower 8bit bus

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/video/sh_mobile_ceu_camera.c
include/media/sh_mobile_ceu.h

index 61f7f91de93150e4617111976918b5ea209b312f..0baaf94db7e03081d71770a0076fb4c1516e718e 100644 (file)
@@ -870,11 +870,13 @@ static int sh_mobile_ceu_set_bus_param(struct soc_camera_device *icd)
 
        value |= common_flags & V4L2_MBUS_VSYNC_ACTIVE_LOW ? 1 << 1 : 0;
        value |= common_flags & V4L2_MBUS_HSYNC_ACTIVE_LOW ? 1 << 0 : 0;
-       value |= pcdev->is_16bit ? 1 << 12 : 0;
 
-       /* CSI2 mode */
-       if (pcdev->pdata->csi2)
+       if (pcdev->pdata->csi2) /* CSI2 mode */
                value |= 3 << 12;
+       else if (pcdev->is_16bit)
+               value |= 1 << 12;
+       else if (pcdev->pdata->flags & SH_CEU_FLAG_LOWER_8BIT)
+               value |= 2 << 12;
 
        ceu_write(pcdev, CAMCR, value);
 
index a90a765f18daeaa29e5b148226177c28a708db4f..6fdb6adf6b2bd4a3c3c788a7bc1487fa21634a58 100644 (file)
@@ -5,6 +5,7 @@
 #define SH_CEU_FLAG_USE_16BIT_BUS      (1 << 1) /* use 16bit bus width */
 #define SH_CEU_FLAG_HSYNC_LOW          (1 << 2) /* default High if possible */
 #define SH_CEU_FLAG_VSYNC_LOW          (1 << 3) /* default High if possible */
+#define SH_CEU_FLAG_LOWER_8BIT         (1 << 4) /* default upper 8bit */
 
 struct device;
 struct resource;