diff mbox series

[v2,07/10] media: imx: imx6-media-csi: Replace Y16 with Y10 and Y12

Message ID 20200310160633.950-8-laurent.pinchart@ideasonboard.com (mailing list archive)
State New, archived
Headers show
Series media: imx: Miscellaneous fixes for i.MX7 | expand

Commit Message

Laurent Pinchart March 10, 2020, 4:06 p.m. UTC
The driver doesn't really support V4L2_PIX_FMT_Y16, as there's no 16-bit
greyscale media bus code defined by the kernel. It (ab)uses the format
to capture 10-bit and 12-bit greyscale formats. Fix it to properly
support MEDIA_BUS_FMT_Y10_1X10 and MEDIA_BUS_FMT_Y12_1X12 instead.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Rui Miguel Silva <rmfrfs@gmail.com>
---
 drivers/staging/media/imx/imx-media-csi.c   |  3 ++-
 drivers/staging/media/imx/imx-media-utils.c | 13 ++++++++-----
 2 files changed, 10 insertions(+), 6 deletions(-)

Comments

Steve Longerbeam March 12, 2020, 12:21 a.m. UTC | #1
On 3/10/20 9:06 AM, Laurent Pinchart wrote:
> The driver doesn't really support V4L2_PIX_FMT_Y16, as there's no 16-bit
> greyscale media bus code defined by the kernel. It (ab)uses the format
> to capture 10-bit and 12-bit greyscale formats. Fix it to properly
> support MEDIA_BUS_FMT_Y10_1X10 and MEDIA_BUS_FMT_Y12_1X12 instead.

I thought this might need a Fixes: e30681bc19bf ("media: imx: add 16-bit 
grayscale support"), but on closer look, V4L2_PIX_FMT_Y10 and 
V4L2_PIX_FMT_Y12 were not added until after. In any case,

Acked-by: Steve Longerbeam <slongerbeam@gmail.com>

>
> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> Reviewed-by: Rui Miguel Silva <rmfrfs@gmail.com>
> ---
>   drivers/staging/media/imx/imx-media-csi.c   |  3 ++-
>   drivers/staging/media/imx/imx-media-utils.c | 13 ++++++++-----
>   2 files changed, 10 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/staging/media/imx/imx-media-csi.c b/drivers/staging/media/imx/imx-media-csi.c
> index b60ed4f22f6d..f4abac93c0e4 100644
> --- a/drivers/staging/media/imx/imx-media-csi.c
> +++ b/drivers/staging/media/imx/imx-media-csi.c
> @@ -457,7 +457,8 @@ static int csi_idmac_setup_channel(struct csi_priv *priv)
>   	case V4L2_PIX_FMT_SGBRG16:
>   	case V4L2_PIX_FMT_SGRBG16:
>   	case V4L2_PIX_FMT_SRGGB16:
> -	case V4L2_PIX_FMT_Y16:
> +	case V4L2_PIX_FMT_Y10:
> +	case V4L2_PIX_FMT_Y12:
>   		burst_size = 8;
>   		passthrough_bits = 16;
>   		break;
> diff --git a/drivers/staging/media/imx/imx-media-utils.c b/drivers/staging/media/imx/imx-media-utils.c
> index 0788a1874557..bc20fcc88267 100644
> --- a/drivers/staging/media/imx/imx-media-utils.c
> +++ b/drivers/staging/media/imx/imx-media-utils.c
> @@ -166,11 +166,14 @@ static const struct imx_media_pixfmt rgb_formats[] = {
>   		.bpp    = 8,
>   		.bayer  = true,
>   	}, {
> -		.fourcc = V4L2_PIX_FMT_Y16,
> -		.codes = {
> -			MEDIA_BUS_FMT_Y10_1X10,
> -			MEDIA_BUS_FMT_Y12_1X12,
> -		},
> +		.fourcc = V4L2_PIX_FMT_Y10,
> +		.codes = {MEDIA_BUS_FMT_Y10_1X10},
> +		.cs     = IPUV3_COLORSPACE_RGB,
> +		.bpp    = 16,
> +		.bayer  = true,
> +	}, {
> +		.fourcc = V4L2_PIX_FMT_Y12,
> +		.codes = {MEDIA_BUS_FMT_Y12_1X12},
>   		.cs     = IPUV3_COLORSPACE_RGB,
>   		.bpp    = 16,
>   		.bayer  = true,
diff mbox series

Patch

diff --git a/drivers/staging/media/imx/imx-media-csi.c b/drivers/staging/media/imx/imx-media-csi.c
index b60ed4f22f6d..f4abac93c0e4 100644
--- a/drivers/staging/media/imx/imx-media-csi.c
+++ b/drivers/staging/media/imx/imx-media-csi.c
@@ -457,7 +457,8 @@  static int csi_idmac_setup_channel(struct csi_priv *priv)
 	case V4L2_PIX_FMT_SGBRG16:
 	case V4L2_PIX_FMT_SGRBG16:
 	case V4L2_PIX_FMT_SRGGB16:
-	case V4L2_PIX_FMT_Y16:
+	case V4L2_PIX_FMT_Y10:
+	case V4L2_PIX_FMT_Y12:
 		burst_size = 8;
 		passthrough_bits = 16;
 		break;
diff --git a/drivers/staging/media/imx/imx-media-utils.c b/drivers/staging/media/imx/imx-media-utils.c
index 0788a1874557..bc20fcc88267 100644
--- a/drivers/staging/media/imx/imx-media-utils.c
+++ b/drivers/staging/media/imx/imx-media-utils.c
@@ -166,11 +166,14 @@  static const struct imx_media_pixfmt rgb_formats[] = {
 		.bpp    = 8,
 		.bayer  = true,
 	}, {
-		.fourcc = V4L2_PIX_FMT_Y16,
-		.codes = {
-			MEDIA_BUS_FMT_Y10_1X10,
-			MEDIA_BUS_FMT_Y12_1X12,
-		},
+		.fourcc = V4L2_PIX_FMT_Y10,
+		.codes = {MEDIA_BUS_FMT_Y10_1X10},
+		.cs     = IPUV3_COLORSPACE_RGB,
+		.bpp    = 16,
+		.bayer  = true,
+	}, {
+		.fourcc = V4L2_PIX_FMT_Y12,
+		.codes = {MEDIA_BUS_FMT_Y12_1X12},
 		.cs     = IPUV3_COLORSPACE_RGB,
 		.bpp    = 16,
 		.bayer  = true,