[PATCH 1/3] media: imx8mq-mipi-csi2: Add data type field in pixel format

G.N. Zhou (OSS) guoniu.zhou at oss.nxp.com
Tue Aug 12 01:44:23 PDT 2025


Hi Frank,

Thanks for your feedback.

> -----Original Message-----
> From: Frank Li <frank.li at nxp.com>
> Sent: Thursday, July 17, 2025 11:44 PM
> To: G.N. Zhou (OSS) <guoniu.zhou at oss.nxp.com>
> Cc: rmfrfs at gmail.com; Laurent Pinchart
> <laurent.pinchart at ideasonboard.com>; martink at posteo.de; kernel at puri.sm;
> mchehab at kernel.org; shawnguo at kernel.org; s.hauer at pengutronix.de;
> kernel at pengutronix.de; festevam at gmail.com; linux-media at vger.kernel.org;
> imx at lists.linux.dev; linux-arm-kernel at lists.infradead.org; linux-
> kernel at vger.kernel.org
> Subject: Re: [PATCH 1/3] media: imx8mq-mipi-csi2: Add data type field in pixel
> format
> 
> On Thu, Jul 17, 2025 at 03:13:57PM +0800, guoniu.zhou at oss.nxp.com wrote:
> > From: "Guoniu.zhou" <guoniu.zhou at nxp.com>
> >
> > Add data type field in CSI pixel format info since the downstream
> > subdev in the pipeline need to know.
> >
> > Signed-off-by: Guoniu.zhou <guoniu.zhou at nxp.com>
> > Signed-off-by: Guoniu Zhou <guoniu.zhou at nxp.com>
> 
> double signed off line.

[G.N] Will remove it in next version.

> 
> > ---
> >  drivers/media/platform/nxp/imx8mq-mipi-csi2.c | 23
> > +++++++++++++++++++
> >  1 file changed, 23 insertions(+)
> >
> > diff --git a/drivers/media/platform/nxp/imx8mq-mipi-csi2.c
> > b/drivers/media/platform/nxp/imx8mq-mipi-csi2.c
> > index 3a4645f59a44..7495400adc22 100644
> > --- a/drivers/media/platform/nxp/imx8mq-mipi-csi2.c
> > +++ b/drivers/media/platform/nxp/imx8mq-mipi-csi2.c
> > @@ -25,6 +25,7 @@
> >  #include <linux/reset.h>
> >  #include <linux/spinlock.h>
> >
> > +#include <media/mipi-csi2.h>
> >  #include <media/v4l2-common.h>
> >  #include <media/v4l2-device.h>
> >  #include <media/v4l2-fwnode.h>
> > @@ -138,6 +139,7 @@ struct csi_state {
> >
> >  struct csi2_pix_format {
> >  	u32 code;
> > +	u32 data_type;
> >  	u8 width;
> >  };
> >
> > @@ -262,68 +264,89 @@ static const struct csi2_pix_format
> imx8mq_mipi_csi_formats[] = {
> >  	/* RAW (Bayer and greyscale) formats. */
> >  	{
> >  		.code = MEDIA_BUS_FMT_SBGGR8_1X8,
> > +		.data_type = MIPI_CSI2_DT_RAW8,
> 
> I found many place have similar convert. Is it fixed map for csi2?  If yes,

[G.N] Most of them are fixed, but some of them may depend on device specific, so I suggest to let driver to handle it.

> 
> Can you add helper function, like
> 
> in include mipi-csi2.h
> 
> media_bus_fmt_to_csi(int bus_fmt)
> {
> 	switch (buf_fmt)
> 	{
> 	case MEDIA_BUS_FMT_SBGGR8_1X8:
> 		return MIPI_CSI2_DT_RAW8;
> 
> 	...
> 	}
> }
> 
> Frank
> 
> >  		.width = 8,
> >  	}, {
> >  		.code = MEDIA_BUS_FMT_SGBRG8_1X8,
> > +		.data_type = MIPI_CSI2_DT_RAW8,
> >  		.width = 8,
> >  	}, {
> >  		.code = MEDIA_BUS_FMT_SGRBG8_1X8,
> > +		.data_type = MIPI_CSI2_DT_RAW8,
> >  		.width = 8,
> >  	}, {
> >  		.code = MEDIA_BUS_FMT_SRGGB8_1X8,
> > +		.data_type = MIPI_CSI2_DT_RAW8,
> >  		.width = 8,
> >  	}, {
> >  		.code = MEDIA_BUS_FMT_Y8_1X8,
> > +		.data_type = MIPI_CSI2_DT_RAW8,
> >  		.width = 8,
> >  	}, {
> >  		.code = MEDIA_BUS_FMT_SBGGR10_1X10,
> > +		.data_type = MIPI_CSI2_DT_RAW10,
> >  		.width = 10,
> >  	}, {
> >  		.code = MEDIA_BUS_FMT_SGBRG10_1X10,
> > +		.data_type = MIPI_CSI2_DT_RAW10,
> >  		.width = 10,
> >  	}, {
> >  		.code = MEDIA_BUS_FMT_SGRBG10_1X10,
> > +		.data_type = MIPI_CSI2_DT_RAW10,
> >  		.width = 10,
> >  	}, {
> >  		.code = MEDIA_BUS_FMT_SRGGB10_1X10,
> > +		.data_type = MIPI_CSI2_DT_RAW10,
> >  		.width = 10,
> >  	}, {
> >  		.code = MEDIA_BUS_FMT_Y10_1X10,
> > +		.data_type = MIPI_CSI2_DT_RAW10,
> >  		.width = 10,
> >  	}, {
> >  		.code = MEDIA_BUS_FMT_SBGGR12_1X12,
> > +		.data_type = MIPI_CSI2_DT_RAW12,
> >  		.width = 12,
> >  	}, {
> >  		.code = MEDIA_BUS_FMT_SGBRG12_1X12,
> > +		.data_type = MIPI_CSI2_DT_RAW12,
> >  		.width = 12,
> >  	}, {
> >  		.code = MEDIA_BUS_FMT_SGRBG12_1X12,
> > +		.data_type = MIPI_CSI2_DT_RAW12,
> >  		.width = 12,
> >  	}, {
> >  		.code = MEDIA_BUS_FMT_SRGGB12_1X12,
> > +		.data_type = MIPI_CSI2_DT_RAW12,
> >  		.width = 12,
> >  	}, {
> >  		.code = MEDIA_BUS_FMT_Y12_1X12,
> > +		.data_type = MIPI_CSI2_DT_RAW12,
> >  		.width = 12,
> >  	}, {
> >  		.code = MEDIA_BUS_FMT_SBGGR14_1X14,
> > +		.data_type = MIPI_CSI2_DT_RAW14,
> >  		.width = 14,
> >  	}, {
> >  		.code = MEDIA_BUS_FMT_SGBRG14_1X14,
> > +		.data_type = MIPI_CSI2_DT_RAW14,
> >  		.width = 14,
> >  	}, {
> >  		.code = MEDIA_BUS_FMT_SGRBG14_1X14,
> > +		.data_type = MIPI_CSI2_DT_RAW14,
> >  		.width = 14,
> >  	}, {
> >  		.code = MEDIA_BUS_FMT_SRGGB14_1X14,
> > +		.data_type = MIPI_CSI2_DT_RAW14,
> >  		.width = 14,
> >  	},
> >  	/* YUV formats */
> >  	{
> >  		.code = MEDIA_BUS_FMT_YUYV8_1X16,
> > +		.data_type = MIPI_CSI2_DT_YUV422_8B,
> >  		.width = 16,
> >  	}, {
> >  		.code = MEDIA_BUS_FMT_UYVY8_1X16,
> > +		.data_type = MIPI_CSI2_DT_YUV422_8B,
> >  		.width = 16,
> >  	}
> >  };
> > --
> > 2.34.1
> >



More information about the linux-arm-kernel mailing list