From: Guoniu Zhou <guoniu.zhou@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@nxp.com>
---
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,
.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
On Tue, Aug 12, 2025 at 05:18:55PM +0800, guoniu.zhou@oss.nxp.com wrote: > From: Guoniu Zhou <guoniu.zhou@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@nxp.com> > --- > 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, CSI2 data type is well defined in MIPI CSI2 spec. so the convertion from media_bus_fmt to CSI2 DT is fixed patten for all CSI2 drivers. I post one patch at https://lore.kernel.org/imx/20250808-95_cam-v2-4-4b29fa6919a7@nxp.com/ helper funciton media_bus_fmt_to_csi2_dt(.code) to get CSI2 data type. Laurent Pinchart have not time to review patch until sept 8. I hope first 3 patches can be reviewed and merged soon if they agree this methods. also .width can be removed. 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 >
© 2016 - 2025 Red Hat, Inc.