From: Javier Martin <javier.martin@vista-silicon.com>
Date: Tue, 30 Oct 2012 14:29:00 +0000 (-0300)
Subject: [media] media: mx2_camera: Add image size HW limits
X-Git-Tag: firefly_0821_release~3680^2~275^2~607
X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=6ec5575c381de50b17e68796435f20ce1b27de79;p=firefly-linux-kernel-4.4.55.git

[media] media: mx2_camera: Add image size HW limits

The CSI on i.MX27 has some constraints regarding image width.
This patch makes sure those requirements are met in try_fmt().

Signed-off-by: Javier Martin <javier.martin@vista-silicon.com>
[g.liakhovetski@gmx.de: make constraint i.MX27-specific]
Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
---

diff --git a/drivers/media/platform/soc_camera/mx2_camera.c b/drivers/media/platform/soc_camera/mx2_camera.c
index 77529f860386..2c148028d8c0 100644
--- a/drivers/media/platform/soc_camera/mx2_camera.c
+++ b/drivers/media/platform/soc_camera/mx2_camera.c
@@ -1394,8 +1394,6 @@ static int mx2_camera_try_fmt(struct soc_camera_device *icd,
 		return -EINVAL;
 	}
 
-	/* FIXME: implement MX27 limits */
-
 	/* limit to MX25 hardware capabilities */
 	if (cpu_is_mx25()) {
 		if (xlate->host_fmt->bits_per_sample <= 8)
@@ -1427,6 +1425,12 @@ static int mx2_camera_try_fmt(struct soc_camera_device *icd,
 			pix->sizeimage = soc_mbus_image_size(xlate->host_fmt,
 						pix->bytesperline, pix->height);
 		}
+	} else {
+		/*
+		 * Width must be a multiple of 8 as requested by the CSI.
+		 * (Table 39-2 in the i.MX27 Reference Manual).
+		 */
+		pix->width &= ~0x7;
 	}
 
 	/* limit to sensor capabilities */