[media] media: mx2_camera: Add image size HW limits
[firefly-linux-kernel-4.4.55.git] / drivers / media / platform / soc_camera / mx2_camera.c
index 77529f8603865303f512262daea79aca02a15d47..2c148028d8c0c096f92e96ec105b7b6afe7d2dc1 100644 (file)
@@ -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 */