[media] media: imx: csi: increase burst size for YUV formats
authorPhilipp Zabel <p.zabel@pengutronix.de>
Wed, 7 Jun 2017 18:34:06 +0000 (15:34 -0300)
committerMauro Carvalho Chehab <mchehab@s-opensource.com>
Tue, 20 Jun 2017 10:43:41 +0000 (07:43 -0300)
The IDMAC supports burst sizes of up to 32 pixels for interleaved YUV
formats and up to 64 pixels for planar YUV formats.

Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
drivers/staging/media/imx/imx-media-csi.c

index b589fa244abcf230d0d41b2ce68aac1c5a46736b..ec4f9f88712c9fa853f38b5462062fd16cc8d932 100644 (file)
@@ -333,6 +333,23 @@ static int csi_idmac_setup_channel(struct csi_priv *priv)
                passthrough = true;
                passthrough_bits = 16;
                break;
+       case V4L2_PIX_FMT_YUV420:
+       case V4L2_PIX_FMT_NV12:
+               burst_size = (image.pix.width & 0x3f) ?
+                            ((image.pix.width & 0x1f) ?
+                             ((image.pix.width & 0xf) ? 8 : 16) : 32) : 64;
+               passthrough = (sensor_ep->bus_type != V4L2_MBUS_CSI2 &&
+                              sensor_ep->bus.parallel.bus_width >= 16);
+               passthrough_bits = 16;
+               break;
+       case V4L2_PIX_FMT_YUYV:
+       case V4L2_PIX_FMT_UYVY:
+               burst_size = (image.pix.width & 0x1f) ?
+                            ((image.pix.width & 0xf) ? 8 : 16) : 32;
+               passthrough = (sensor_ep->bus_type != V4L2_MBUS_CSI2 &&
+                              sensor_ep->bus.parallel.bus_width >= 16);
+               passthrough_bits = 16;
+               break;
        default:
                burst_size = (image.pix.width & 0xf) ? 8 : 16;
                passthrough = (sensor_ep->bus_type != V4L2_MBUS_CSI2 &&