* [PATCH] media: ipu6: isys: Add support for monochrome media bus formats
@ 2025-10-20 15:37 Hans de Goede
2025-10-21 8:10 ` Bingbu Cao
2025-11-11 8:46 ` Bingbu Cao
0 siblings, 2 replies; 5+ messages in thread
From: Hans de Goede @ 2025-10-20 15:37 UTC (permalink / raw)
To: Sakari Ailus, Bingbu Cao, Tianshu Qiu; +Cc: Hans de Goede, linux-media
Add support for monochrome media bus formats, for use with monochrome/IR
camera sensors.
This has been tested on a Dell XPS 13 9320 with OV1A1B IR sensor.
Signed-off-by: Hans de Goede <hansg@kernel.org>
---
drivers/media/pci/intel/ipu6/ipu6-isys-csi2.c | 4 +++
.../media/pci/intel/ipu6/ipu6-isys-subdev.c | 34 ++++++++++++++-----
.../media/pci/intel/ipu6/ipu6-isys-video.c | 14 ++++++++
3 files changed, 43 insertions(+), 9 deletions(-)
diff --git a/drivers/media/pci/intel/ipu6/ipu6-isys-csi2.c b/drivers/media/pci/intel/ipu6/ipu6-isys-csi2.c
index d1fece6210ab..daec6b865bda 100644
--- a/drivers/media/pci/intel/ipu6/ipu6-isys-csi2.c
+++ b/drivers/media/pci/intel/ipu6/ipu6-isys-csi2.c
@@ -42,6 +42,10 @@ static const u32 csi2_supported_codes[] = {
MEDIA_BUS_FMT_SGBRG8_1X8,
MEDIA_BUS_FMT_SGRBG8_1X8,
MEDIA_BUS_FMT_SRGGB8_1X8,
+ MEDIA_BUS_FMT_Y8_1X8,
+ MEDIA_BUS_FMT_Y10_1X10,
+ MEDIA_BUS_FMT_Y12_1X12,
+ MEDIA_BUS_FMT_Y16_1X16,
MEDIA_BUS_FMT_META_8,
MEDIA_BUS_FMT_META_10,
MEDIA_BUS_FMT_META_12,
diff --git a/drivers/media/pci/intel/ipu6/ipu6-isys-subdev.c b/drivers/media/pci/intel/ipu6/ipu6-isys-subdev.c
index 463a0adf9e13..869e7d4ba572 100644
--- a/drivers/media/pci/intel/ipu6/ipu6-isys-subdev.c
+++ b/drivers/media/pci/intel/ipu6/ipu6-isys-subdev.c
@@ -25,24 +25,28 @@ unsigned int ipu6_isys_mbus_code_to_bpp(u32 code)
case MEDIA_BUS_FMT_RGB565_1X16:
case MEDIA_BUS_FMT_UYVY8_1X16:
case MEDIA_BUS_FMT_YUYV8_1X16:
+ case MEDIA_BUS_FMT_Y16_1X16:
case MEDIA_BUS_FMT_META_16:
return 16;
case MEDIA_BUS_FMT_SBGGR12_1X12:
case MEDIA_BUS_FMT_SGBRG12_1X12:
case MEDIA_BUS_FMT_SGRBG12_1X12:
case MEDIA_BUS_FMT_SRGGB12_1X12:
+ case MEDIA_BUS_FMT_Y12_1X12:
case MEDIA_BUS_FMT_META_12:
return 12;
case MEDIA_BUS_FMT_SBGGR10_1X10:
case MEDIA_BUS_FMT_SGBRG10_1X10:
case MEDIA_BUS_FMT_SGRBG10_1X10:
case MEDIA_BUS_FMT_SRGGB10_1X10:
+ case MEDIA_BUS_FMT_Y10_1X10:
case MEDIA_BUS_FMT_META_10:
return 10;
case MEDIA_BUS_FMT_SBGGR8_1X8:
case MEDIA_BUS_FMT_SGBRG8_1X8:
case MEDIA_BUS_FMT_SGRBG8_1X8:
case MEDIA_BUS_FMT_SRGGB8_1X8:
+ case MEDIA_BUS_FMT_Y8_1X8:
case MEDIA_BUS_FMT_META_8:
return 8;
default:
@@ -65,21 +69,25 @@ unsigned int ipu6_isys_mbus_code_to_mipi(u32 code)
case MEDIA_BUS_FMT_SGBRG16_1X16:
case MEDIA_BUS_FMT_SGRBG16_1X16:
case MEDIA_BUS_FMT_SRGGB16_1X16:
+ case MEDIA_BUS_FMT_Y16_1X16:
return MIPI_CSI2_DT_RAW16;
case MEDIA_BUS_FMT_SBGGR12_1X12:
case MEDIA_BUS_FMT_SGBRG12_1X12:
case MEDIA_BUS_FMT_SGRBG12_1X12:
case MEDIA_BUS_FMT_SRGGB12_1X12:
+ case MEDIA_BUS_FMT_Y12_1X12:
return MIPI_CSI2_DT_RAW12;
case MEDIA_BUS_FMT_SBGGR10_1X10:
case MEDIA_BUS_FMT_SGBRG10_1X10:
case MEDIA_BUS_FMT_SGRBG10_1X10:
case MEDIA_BUS_FMT_SRGGB10_1X10:
+ case MEDIA_BUS_FMT_Y10_1X10:
return MIPI_CSI2_DT_RAW10;
case MEDIA_BUS_FMT_SBGGR8_1X8:
case MEDIA_BUS_FMT_SGBRG8_1X8:
case MEDIA_BUS_FMT_SGRBG8_1X8:
case MEDIA_BUS_FMT_SRGGB8_1X8:
+ case MEDIA_BUS_FMT_Y8_1X8:
return MIPI_CSI2_DT_RAW8;
case MEDIA_BUS_FMT_META_8:
case MEDIA_BUS_FMT_META_10:
@@ -96,15 +104,23 @@ unsigned int ipu6_isys_mbus_code_to_mipi(u32 code)
bool ipu6_isys_is_bayer_format(u32 code)
{
- switch (ipu6_isys_mbus_code_to_mipi(code)) {
- case MIPI_CSI2_DT_RAW8:
- case MIPI_CSI2_DT_RAW10:
- case MIPI_CSI2_DT_RAW12:
- case MIPI_CSI2_DT_RAW14:
- case MIPI_CSI2_DT_RAW16:
- case MIPI_CSI2_DT_RAW20:
- case MIPI_CSI2_DT_RAW24:
- case MIPI_CSI2_DT_RAW28:
+ switch (code) {
+ case MEDIA_BUS_FMT_SBGGR8_1X8:
+ case MEDIA_BUS_FMT_SGBRG8_1X8:
+ case MEDIA_BUS_FMT_SGRBG8_1X8:
+ case MEDIA_BUS_FMT_SRGGB8_1X8:
+ case MEDIA_BUS_FMT_SBGGR10_1X10:
+ case MEDIA_BUS_FMT_SGBRG10_1X10:
+ case MEDIA_BUS_FMT_SGRBG10_1X10:
+ case MEDIA_BUS_FMT_SRGGB10_1X10:
+ case MEDIA_BUS_FMT_SBGGR12_1X12:
+ case MEDIA_BUS_FMT_SGBRG12_1X12:
+ case MEDIA_BUS_FMT_SGRBG12_1X12:
+ case MEDIA_BUS_FMT_SRGGB12_1X12:
+ case MEDIA_BUS_FMT_SRGGB16_1X16:
+ case MEDIA_BUS_FMT_SGRBG16_1X16:
+ case MEDIA_BUS_FMT_SGBRG16_1X16:
+ case MEDIA_BUS_FMT_SBGGR16_1X16:
return true;
default:
return false;
diff --git a/drivers/media/pci/intel/ipu6/ipu6-isys-video.c b/drivers/media/pci/intel/ipu6/ipu6-isys-video.c
index f3f3bc0615e5..dec8f5ffcfa5 100644
--- a/drivers/media/pci/intel/ipu6/ipu6-isys-video.c
+++ b/drivers/media/pci/intel/ipu6/ipu6-isys-video.c
@@ -77,6 +77,20 @@ const struct ipu6_isys_pixelformat ipu6_isys_pfmts[] = {
IPU6_FW_ISYS_FRAME_FORMAT_RAW10 },
{ V4L2_PIX_FMT_SRGGB10P, 10, 10, MEDIA_BUS_FMT_SRGGB10_1X10,
IPU6_FW_ISYS_FRAME_FORMAT_RAW10 },
+
+ { V4L2_PIX_FMT_GREY, 8, 8, MEDIA_BUS_FMT_Y8_1X8,
+ IPU6_FW_ISYS_FRAME_FORMAT_RAW8 },
+ { V4L2_PIX_FMT_Y10, 16, 10, MEDIA_BUS_FMT_Y10_1X10,
+ IPU6_FW_ISYS_FRAME_FORMAT_RAW16 },
+ { V4L2_PIX_FMT_Y12, 16, 12, MEDIA_BUS_FMT_Y12_1X12,
+ IPU6_FW_ISYS_FRAME_FORMAT_RAW16 },
+ { V4L2_PIX_FMT_Y16, 16, 16, MEDIA_BUS_FMT_Y16_1X16,
+ IPU6_FW_ISYS_FRAME_FORMAT_RAW16 },
+ { V4L2_PIX_FMT_Y10P, 10, 10, MEDIA_BUS_FMT_Y10_1X10,
+ IPU6_FW_ISYS_FRAME_FORMAT_RAW10 },
+ { V4L2_PIX_FMT_Y12P, 12, 12, MEDIA_BUS_FMT_Y12_1X12,
+ IPU6_FW_ISYS_FRAME_FORMAT_RAW12 },
+
{ V4L2_PIX_FMT_UYVY, 16, 16, MEDIA_BUS_FMT_UYVY8_1X16,
IPU6_FW_ISYS_FRAME_FORMAT_UYVY},
{ V4L2_PIX_FMT_YUYV, 16, 16, MEDIA_BUS_FMT_YUYV8_1X16,
--
2.51.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] media: ipu6: isys: Add support for monochrome media bus formats
2025-10-20 15:37 [PATCH] media: ipu6: isys: Add support for monochrome media bus formats Hans de Goede
@ 2025-10-21 8:10 ` Bingbu Cao
2025-10-21 13:52 ` Sakari Ailus
2025-11-11 8:46 ` Bingbu Cao
1 sibling, 1 reply; 5+ messages in thread
From: Bingbu Cao @ 2025-10-21 8:10 UTC (permalink / raw)
To: Hans de Goede, Sakari Ailus, Bingbu Cao, Tianshu Qiu; +Cc: linux-media
Hans,
Thanks for the patch.
On 10/20/25 11:37 PM, Hans de Goede wrote:
> Add support for monochrome media bus formats, for use with monochrome/IR
> camera sensors.
>
> This has been tested on a Dell XPS 13 9320 with OV1A1B IR sensor.
>
> Signed-off-by: Hans de Goede <hansg@kernel.org>
> ---
> drivers/media/pci/intel/ipu6/ipu6-isys-csi2.c | 4 +++
> .../media/pci/intel/ipu6/ipu6-isys-subdev.c | 34 ++++++++++++++-----
> .../media/pci/intel/ipu6/ipu6-isys-video.c | 14 ++++++++
> 3 files changed, 43 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/media/pci/intel/ipu6/ipu6-isys-csi2.c b/drivers/media/pci/intel/ipu6/ipu6-isys-csi2.c
> index d1fece6210ab..daec6b865bda 100644
> --- a/drivers/media/pci/intel/ipu6/ipu6-isys-csi2.c
> +++ b/drivers/media/pci/intel/ipu6/ipu6-isys-csi2.c
> @@ -42,6 +42,10 @@ static const u32 csi2_supported_codes[] = {
> MEDIA_BUS_FMT_SGBRG8_1X8,
> MEDIA_BUS_FMT_SGRBG8_1X8,
> MEDIA_BUS_FMT_SRGGB8_1X8,
> + MEDIA_BUS_FMT_Y8_1X8,
> + MEDIA_BUS_FMT_Y10_1X10,
> + MEDIA_BUS_FMT_Y12_1X12,
> + MEDIA_BUS_FMT_Y16_1X16,
> MEDIA_BUS_FMT_META_8,
> MEDIA_BUS_FMT_META_10,
> MEDIA_BUS_FMT_META_12,
> diff --git a/drivers/media/pci/intel/ipu6/ipu6-isys-subdev.c b/drivers/media/pci/intel/ipu6/ipu6-isys-subdev.c
> index 463a0adf9e13..869e7d4ba572 100644
> --- a/drivers/media/pci/intel/ipu6/ipu6-isys-subdev.c
> +++ b/drivers/media/pci/intel/ipu6/ipu6-isys-subdev.c
> @@ -25,24 +25,28 @@ unsigned int ipu6_isys_mbus_code_to_bpp(u32 code)
> case MEDIA_BUS_FMT_RGB565_1X16:
> case MEDIA_BUS_FMT_UYVY8_1X16:
> case MEDIA_BUS_FMT_YUYV8_1X16:
> + case MEDIA_BUS_FMT_Y16_1X16:
> case MEDIA_BUS_FMT_META_16:
> return 16;
> case MEDIA_BUS_FMT_SBGGR12_1X12:
> case MEDIA_BUS_FMT_SGBRG12_1X12:
> case MEDIA_BUS_FMT_SGRBG12_1X12:
> case MEDIA_BUS_FMT_SRGGB12_1X12:
> + case MEDIA_BUS_FMT_Y12_1X12:
> case MEDIA_BUS_FMT_META_12:
> return 12;
> case MEDIA_BUS_FMT_SBGGR10_1X10:
> case MEDIA_BUS_FMT_SGBRG10_1X10:
> case MEDIA_BUS_FMT_SGRBG10_1X10:
> case MEDIA_BUS_FMT_SRGGB10_1X10:
> + case MEDIA_BUS_FMT_Y10_1X10:
> case MEDIA_BUS_FMT_META_10:
> return 10;
> case MEDIA_BUS_FMT_SBGGR8_1X8:
> case MEDIA_BUS_FMT_SGBRG8_1X8:
> case MEDIA_BUS_FMT_SGRBG8_1X8:
> case MEDIA_BUS_FMT_SRGGB8_1X8:
> + case MEDIA_BUS_FMT_Y8_1X8:
> case MEDIA_BUS_FMT_META_8:
> return 8;
> default:
> @@ -65,21 +69,25 @@ unsigned int ipu6_isys_mbus_code_to_mipi(u32 code)
> case MEDIA_BUS_FMT_SGBRG16_1X16:
> case MEDIA_BUS_FMT_SGRBG16_1X16:
> case MEDIA_BUS_FMT_SRGGB16_1X16:
> + case MEDIA_BUS_FMT_Y16_1X16:
> return MIPI_CSI2_DT_RAW16;
> case MEDIA_BUS_FMT_SBGGR12_1X12:
> case MEDIA_BUS_FMT_SGBRG12_1X12:
> case MEDIA_BUS_FMT_SGRBG12_1X12:
> case MEDIA_BUS_FMT_SRGGB12_1X12:
> + case MEDIA_BUS_FMT_Y12_1X12:
> return MIPI_CSI2_DT_RAW12;
> case MEDIA_BUS_FMT_SBGGR10_1X10:
> case MEDIA_BUS_FMT_SGBRG10_1X10:
> case MEDIA_BUS_FMT_SGRBG10_1X10:
> case MEDIA_BUS_FMT_SRGGB10_1X10:
> + case MEDIA_BUS_FMT_Y10_1X10:
> return MIPI_CSI2_DT_RAW10;
> case MEDIA_BUS_FMT_SBGGR8_1X8:
> case MEDIA_BUS_FMT_SGBRG8_1X8:
> case MEDIA_BUS_FMT_SGRBG8_1X8:
> case MEDIA_BUS_FMT_SRGGB8_1X8:
> + case MEDIA_BUS_FMT_Y8_1X8:
> return MIPI_CSI2_DT_RAW8;
> case MEDIA_BUS_FMT_META_8:
> case MEDIA_BUS_FMT_META_10:
> @@ -96,15 +104,23 @@ unsigned int ipu6_isys_mbus_code_to_mipi(u32 code)
>
> bool ipu6_isys_is_bayer_format(u32 code)
> {
> - switch (ipu6_isys_mbus_code_to_mipi(code)) {
> - case MIPI_CSI2_DT_RAW8:
> - case MIPI_CSI2_DT_RAW10:
> - case MIPI_CSI2_DT_RAW12:
> - case MIPI_CSI2_DT_RAW14:
> - case MIPI_CSI2_DT_RAW16:
> - case MIPI_CSI2_DT_RAW20:
> - case MIPI_CSI2_DT_RAW24:
> - case MIPI_CSI2_DT_RAW28:
> + switch (code) {
> + case MEDIA_BUS_FMT_SBGGR8_1X8:
> + case MEDIA_BUS_FMT_SGBRG8_1X8:
> + case MEDIA_BUS_FMT_SGRBG8_1X8:
> + case MEDIA_BUS_FMT_SRGGB8_1X8:
> + case MEDIA_BUS_FMT_SBGGR10_1X10:
> + case MEDIA_BUS_FMT_SGBRG10_1X10:
> + case MEDIA_BUS_FMT_SGRBG10_1X10:
> + case MEDIA_BUS_FMT_SRGGB10_1X10:
> + case MEDIA_BUS_FMT_SBGGR12_1X12:
> + case MEDIA_BUS_FMT_SGBRG12_1X12:
> + case MEDIA_BUS_FMT_SGRBG12_1X12:
> + case MEDIA_BUS_FMT_SRGGB12_1X12:
> + case MEDIA_BUS_FMT_SRGGB16_1X16:
> + case MEDIA_BUS_FMT_SGRBG16_1X16:
> + case MEDIA_BUS_FMT_SGBRG16_1X16:
> + case MEDIA_BUS_FMT_SBGGR16_1X16:
> return true;
> default:
> return false;
> diff --git a/drivers/media/pci/intel/ipu6/ipu6-isys-video.c b/drivers/media/pci/intel/ipu6/ipu6-isys-video.c
> index f3f3bc0615e5..dec8f5ffcfa5 100644
> --- a/drivers/media/pci/intel/ipu6/ipu6-isys-video.c
> +++ b/drivers/media/pci/intel/ipu6/ipu6-isys-video.c
> @@ -77,6 +77,20 @@ const struct ipu6_isys_pixelformat ipu6_isys_pfmts[] = {
> IPU6_FW_ISYS_FRAME_FORMAT_RAW10 },
> { V4L2_PIX_FMT_SRGGB10P, 10, 10, MEDIA_BUS_FMT_SRGGB10_1X10,
> IPU6_FW_ISYS_FRAME_FORMAT_RAW10 },
> +
> + { V4L2_PIX_FMT_GREY, 8, 8, MEDIA_BUS_FMT_Y8_1X8,
> + IPU6_FW_ISYS_FRAME_FORMAT_RAW8 },
> + { V4L2_PIX_FMT_Y10, 16, 10, MEDIA_BUS_FMT_Y10_1X10,
> + IPU6_FW_ISYS_FRAME_FORMAT_RAW16 },
> + { V4L2_PIX_FMT_Y12, 16, 12, MEDIA_BUS_FMT_Y12_1X12,
> + IPU6_FW_ISYS_FRAME_FORMAT_RAW16 },
> + { V4L2_PIX_FMT_Y16, 16, 16, MEDIA_BUS_FMT_Y16_1X16,
> + IPU6_FW_ISYS_FRAME_FORMAT_RAW16 },
> + { V4L2_PIX_FMT_Y10P, 10, 10, MEDIA_BUS_FMT_Y10_1X10,
> + IPU6_FW_ISYS_FRAME_FORMAT_RAW10 },
> + { V4L2_PIX_FMT_Y12P, 12, 12, MEDIA_BUS_FMT_Y12_1X12,
> + IPU6_FW_ISYS_FRAME_FORMAT_RAW12 },
The code looks fine for me. I am wondering which sensor to test these
packed format for IPU6.
> +
> { V4L2_PIX_FMT_UYVY, 16, 16, MEDIA_BUS_FMT_UYVY8_1X16,
> IPU6_FW_ISYS_FRAME_FORMAT_UYVY},
> { V4L2_PIX_FMT_YUYV, 16, 16, MEDIA_BUS_FMT_YUYV8_1X16,
>
--
Best regards,
Bingbu Cao
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] media: ipu6: isys: Add support for monochrome media bus formats
2025-10-21 8:10 ` Bingbu Cao
@ 2025-10-21 13:52 ` Sakari Ailus
2025-10-22 12:50 ` Hans de Goede
0 siblings, 1 reply; 5+ messages in thread
From: Sakari Ailus @ 2025-10-21 13:52 UTC (permalink / raw)
To: Bingbu Cao; +Cc: Hans de Goede, Bingbu Cao, Tianshu Qiu, linux-media
Hi Bingbu, Hans,
On Tue, Oct 21, 2025 at 04:10:19PM +0800, Bingbu Cao wrote:
>
> Hans,
>
> Thanks for the patch.
>
> On 10/20/25 11:37 PM, Hans de Goede wrote:
> > Add support for monochrome media bus formats, for use with monochrome/IR
> > camera sensors.
> >
> > This has been tested on a Dell XPS 13 9320 with OV1A1B IR sensor.
> >
> > Signed-off-by: Hans de Goede <hansg@kernel.org>
> > ---
> > drivers/media/pci/intel/ipu6/ipu6-isys-csi2.c | 4 +++
> > .../media/pci/intel/ipu6/ipu6-isys-subdev.c | 34 ++++++++++++++-----
> > .../media/pci/intel/ipu6/ipu6-isys-video.c | 14 ++++++++
> > 3 files changed, 43 insertions(+), 9 deletions(-)
> >
> > diff --git a/drivers/media/pci/intel/ipu6/ipu6-isys-csi2.c b/drivers/media/pci/intel/ipu6/ipu6-isys-csi2.c
> > index d1fece6210ab..daec6b865bda 100644
> > --- a/drivers/media/pci/intel/ipu6/ipu6-isys-csi2.c
> > +++ b/drivers/media/pci/intel/ipu6/ipu6-isys-csi2.c
> > @@ -42,6 +42,10 @@ static const u32 csi2_supported_codes[] = {
> > MEDIA_BUS_FMT_SGBRG8_1X8,
> > MEDIA_BUS_FMT_SGRBG8_1X8,
> > MEDIA_BUS_FMT_SRGGB8_1X8,
> > + MEDIA_BUS_FMT_Y8_1X8,
> > + MEDIA_BUS_FMT_Y10_1X10,
> > + MEDIA_BUS_FMT_Y12_1X12,
> > + MEDIA_BUS_FMT_Y16_1X16,
> > MEDIA_BUS_FMT_META_8,
> > MEDIA_BUS_FMT_META_10,
> > MEDIA_BUS_FMT_META_12,
> > diff --git a/drivers/media/pci/intel/ipu6/ipu6-isys-subdev.c b/drivers/media/pci/intel/ipu6/ipu6-isys-subdev.c
> > index 463a0adf9e13..869e7d4ba572 100644
> > --- a/drivers/media/pci/intel/ipu6/ipu6-isys-subdev.c
> > +++ b/drivers/media/pci/intel/ipu6/ipu6-isys-subdev.c
> > @@ -25,24 +25,28 @@ unsigned int ipu6_isys_mbus_code_to_bpp(u32 code)
> > case MEDIA_BUS_FMT_RGB565_1X16:
> > case MEDIA_BUS_FMT_UYVY8_1X16:
> > case MEDIA_BUS_FMT_YUYV8_1X16:
> > + case MEDIA_BUS_FMT_Y16_1X16:
> > case MEDIA_BUS_FMT_META_16:
> > return 16;
> > case MEDIA_BUS_FMT_SBGGR12_1X12:
> > case MEDIA_BUS_FMT_SGBRG12_1X12:
> > case MEDIA_BUS_FMT_SGRBG12_1X12:
> > case MEDIA_BUS_FMT_SRGGB12_1X12:
> > + case MEDIA_BUS_FMT_Y12_1X12:
> > case MEDIA_BUS_FMT_META_12:
> > return 12;
> > case MEDIA_BUS_FMT_SBGGR10_1X10:
> > case MEDIA_BUS_FMT_SGBRG10_1X10:
> > case MEDIA_BUS_FMT_SGRBG10_1X10:
> > case MEDIA_BUS_FMT_SRGGB10_1X10:
> > + case MEDIA_BUS_FMT_Y10_1X10:
> > case MEDIA_BUS_FMT_META_10:
> > return 10;
> > case MEDIA_BUS_FMT_SBGGR8_1X8:
> > case MEDIA_BUS_FMT_SGBRG8_1X8:
> > case MEDIA_BUS_FMT_SGRBG8_1X8:
> > case MEDIA_BUS_FMT_SRGGB8_1X8:
> > + case MEDIA_BUS_FMT_Y8_1X8:
> > case MEDIA_BUS_FMT_META_8:
> > return 8;
> > default:
> > @@ -65,21 +69,25 @@ unsigned int ipu6_isys_mbus_code_to_mipi(u32 code)
> > case MEDIA_BUS_FMT_SGBRG16_1X16:
> > case MEDIA_BUS_FMT_SGRBG16_1X16:
> > case MEDIA_BUS_FMT_SRGGB16_1X16:
> > + case MEDIA_BUS_FMT_Y16_1X16:
> > return MIPI_CSI2_DT_RAW16;
> > case MEDIA_BUS_FMT_SBGGR12_1X12:
> > case MEDIA_BUS_FMT_SGBRG12_1X12:
> > case MEDIA_BUS_FMT_SGRBG12_1X12:
> > case MEDIA_BUS_FMT_SRGGB12_1X12:
> > + case MEDIA_BUS_FMT_Y12_1X12:
> > return MIPI_CSI2_DT_RAW12;
> > case MEDIA_BUS_FMT_SBGGR10_1X10:
> > case MEDIA_BUS_FMT_SGBRG10_1X10:
> > case MEDIA_BUS_FMT_SGRBG10_1X10:
> > case MEDIA_BUS_FMT_SRGGB10_1X10:
> > + case MEDIA_BUS_FMT_Y10_1X10:
> > return MIPI_CSI2_DT_RAW10;
> > case MEDIA_BUS_FMT_SBGGR8_1X8:
> > case MEDIA_BUS_FMT_SGBRG8_1X8:
> > case MEDIA_BUS_FMT_SGRBG8_1X8:
> > case MEDIA_BUS_FMT_SRGGB8_1X8:
> > + case MEDIA_BUS_FMT_Y8_1X8:
> > return MIPI_CSI2_DT_RAW8;
> > case MEDIA_BUS_FMT_META_8:
> > case MEDIA_BUS_FMT_META_10:
> > @@ -96,15 +104,23 @@ unsigned int ipu6_isys_mbus_code_to_mipi(u32 code)
> >
> > bool ipu6_isys_is_bayer_format(u32 code)
> > {
> > - switch (ipu6_isys_mbus_code_to_mipi(code)) {
> > - case MIPI_CSI2_DT_RAW8:
> > - case MIPI_CSI2_DT_RAW10:
> > - case MIPI_CSI2_DT_RAW12:
> > - case MIPI_CSI2_DT_RAW14:
> > - case MIPI_CSI2_DT_RAW16:
> > - case MIPI_CSI2_DT_RAW20:
> > - case MIPI_CSI2_DT_RAW24:
> > - case MIPI_CSI2_DT_RAW28:
> > + switch (code) {
> > + case MEDIA_BUS_FMT_SBGGR8_1X8:
> > + case MEDIA_BUS_FMT_SGBRG8_1X8:
> > + case MEDIA_BUS_FMT_SGRBG8_1X8:
> > + case MEDIA_BUS_FMT_SRGGB8_1X8:
> > + case MEDIA_BUS_FMT_SBGGR10_1X10:
> > + case MEDIA_BUS_FMT_SGBRG10_1X10:
> > + case MEDIA_BUS_FMT_SGRBG10_1X10:
> > + case MEDIA_BUS_FMT_SRGGB10_1X10:
> > + case MEDIA_BUS_FMT_SBGGR12_1X12:
> > + case MEDIA_BUS_FMT_SGBRG12_1X12:
> > + case MEDIA_BUS_FMT_SGRBG12_1X12:
> > + case MEDIA_BUS_FMT_SRGGB12_1X12:
> > + case MEDIA_BUS_FMT_SRGGB16_1X16:
> > + case MEDIA_BUS_FMT_SGRBG16_1X16:
> > + case MEDIA_BUS_FMT_SGBRG16_1X16:
> > + case MEDIA_BUS_FMT_SBGGR16_1X16:
> > return true;
> > default:
> > return false;
> > diff --git a/drivers/media/pci/intel/ipu6/ipu6-isys-video.c b/drivers/media/pci/intel/ipu6/ipu6-isys-video.c
> > index f3f3bc0615e5..dec8f5ffcfa5 100644
> > --- a/drivers/media/pci/intel/ipu6/ipu6-isys-video.c
> > +++ b/drivers/media/pci/intel/ipu6/ipu6-isys-video.c
> > @@ -77,6 +77,20 @@ const struct ipu6_isys_pixelformat ipu6_isys_pfmts[] = {
> > IPU6_FW_ISYS_FRAME_FORMAT_RAW10 },
> > { V4L2_PIX_FMT_SRGGB10P, 10, 10, MEDIA_BUS_FMT_SRGGB10_1X10,
> > IPU6_FW_ISYS_FRAME_FORMAT_RAW10 },
> > +
> > + { V4L2_PIX_FMT_GREY, 8, 8, MEDIA_BUS_FMT_Y8_1X8,
> > + IPU6_FW_ISYS_FRAME_FORMAT_RAW8 },
> > + { V4L2_PIX_FMT_Y10, 16, 10, MEDIA_BUS_FMT_Y10_1X10,
> > + IPU6_FW_ISYS_FRAME_FORMAT_RAW16 },
> > + { V4L2_PIX_FMT_Y12, 16, 12, MEDIA_BUS_FMT_Y12_1X12,
> > + IPU6_FW_ISYS_FRAME_FORMAT_RAW16 },
> > + { V4L2_PIX_FMT_Y16, 16, 16, MEDIA_BUS_FMT_Y16_1X16,
> > + IPU6_FW_ISYS_FRAME_FORMAT_RAW16 },
> > + { V4L2_PIX_FMT_Y10P, 10, 10, MEDIA_BUS_FMT_Y10_1X10,
> > + IPU6_FW_ISYS_FRAME_FORMAT_RAW10 },
> > + { V4L2_PIX_FMT_Y12P, 12, 12, MEDIA_BUS_FMT_Y12_1X12,
> > + IPU6_FW_ISYS_FRAME_FORMAT_RAW12 },
>
> The code looks fine for me. I am wondering which sensor to test these
> packed format for IPU6.
Such packed formats appear to be defined for Bayer formats, too, so I'd
expect them to work as the Bayer equivalents that are already supported.
>
> > +
> > { V4L2_PIX_FMT_UYVY, 16, 16, MEDIA_BUS_FMT_UYVY8_1X16,
> > IPU6_FW_ISYS_FRAME_FORMAT_UYVY},
> > { V4L2_PIX_FMT_YUYV, 16, 16, MEDIA_BUS_FMT_YUYV8_1X16,
> >
>
--
Regards,
Sakari Ailus
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] media: ipu6: isys: Add support for monochrome media bus formats
2025-10-21 13:52 ` Sakari Ailus
@ 2025-10-22 12:50 ` Hans de Goede
0 siblings, 0 replies; 5+ messages in thread
From: Hans de Goede @ 2025-10-22 12:50 UTC (permalink / raw)
To: Sakari Ailus, Bingbu Cao; +Cc: Bingbu Cao, Tianshu Qiu, linux-media
Hi Bingbu, Sakari,
On 21-Oct-25 3:52 PM, Sakari Ailus wrote:
> Hi Bingbu, Hans,
>
> On Tue, Oct 21, 2025 at 04:10:19PM +0800, Bingbu Cao wrote:
>>
>> Hans,
>>
>> Thanks for the patch.
>>
>> On 10/20/25 11:37 PM, Hans de Goede wrote:
>>> Add support for monochrome media bus formats, for use with monochrome/IR
>>> camera sensors.
>>>
>>> This has been tested on a Dell XPS 13 9320 with OV1A1B IR sensor.
>>>
>>> Signed-off-by: Hans de Goede <hansg@kernel.org>
>>> ---
>>> drivers/media/pci/intel/ipu6/ipu6-isys-csi2.c | 4 +++
>>> .../media/pci/intel/ipu6/ipu6-isys-subdev.c | 34 ++++++++++++++-----
>>> .../media/pci/intel/ipu6/ipu6-isys-video.c | 14 ++++++++
>>> 3 files changed, 43 insertions(+), 9 deletions(-)
>>>
>>> diff --git a/drivers/media/pci/intel/ipu6/ipu6-isys-csi2.c b/drivers/media/pci/intel/ipu6/ipu6-isys-csi2.c
>>> index d1fece6210ab..daec6b865bda 100644
>>> --- a/drivers/media/pci/intel/ipu6/ipu6-isys-csi2.c
>>> +++ b/drivers/media/pci/intel/ipu6/ipu6-isys-csi2.c
>>> @@ -42,6 +42,10 @@ static const u32 csi2_supported_codes[] = {
>>> MEDIA_BUS_FMT_SGBRG8_1X8,
>>> MEDIA_BUS_FMT_SGRBG8_1X8,
>>> MEDIA_BUS_FMT_SRGGB8_1X8,
>>> + MEDIA_BUS_FMT_Y8_1X8,
>>> + MEDIA_BUS_FMT_Y10_1X10,
>>> + MEDIA_BUS_FMT_Y12_1X12,
>>> + MEDIA_BUS_FMT_Y16_1X16,
>>> MEDIA_BUS_FMT_META_8,
>>> MEDIA_BUS_FMT_META_10,
>>> MEDIA_BUS_FMT_META_12,
>>> diff --git a/drivers/media/pci/intel/ipu6/ipu6-isys-subdev.c b/drivers/media/pci/intel/ipu6/ipu6-isys-subdev.c
>>> index 463a0adf9e13..869e7d4ba572 100644
>>> --- a/drivers/media/pci/intel/ipu6/ipu6-isys-subdev.c
>>> +++ b/drivers/media/pci/intel/ipu6/ipu6-isys-subdev.c
>>> @@ -25,24 +25,28 @@ unsigned int ipu6_isys_mbus_code_to_bpp(u32 code)
>>> case MEDIA_BUS_FMT_RGB565_1X16:
>>> case MEDIA_BUS_FMT_UYVY8_1X16:
>>> case MEDIA_BUS_FMT_YUYV8_1X16:
>>> + case MEDIA_BUS_FMT_Y16_1X16:
>>> case MEDIA_BUS_FMT_META_16:
>>> return 16;
>>> case MEDIA_BUS_FMT_SBGGR12_1X12:
>>> case MEDIA_BUS_FMT_SGBRG12_1X12:
>>> case MEDIA_BUS_FMT_SGRBG12_1X12:
>>> case MEDIA_BUS_FMT_SRGGB12_1X12:
>>> + case MEDIA_BUS_FMT_Y12_1X12:
>>> case MEDIA_BUS_FMT_META_12:
>>> return 12;
>>> case MEDIA_BUS_FMT_SBGGR10_1X10:
>>> case MEDIA_BUS_FMT_SGBRG10_1X10:
>>> case MEDIA_BUS_FMT_SGRBG10_1X10:
>>> case MEDIA_BUS_FMT_SRGGB10_1X10:
>>> + case MEDIA_BUS_FMT_Y10_1X10:
>>> case MEDIA_BUS_FMT_META_10:
>>> return 10;
>>> case MEDIA_BUS_FMT_SBGGR8_1X8:
>>> case MEDIA_BUS_FMT_SGBRG8_1X8:
>>> case MEDIA_BUS_FMT_SGRBG8_1X8:
>>> case MEDIA_BUS_FMT_SRGGB8_1X8:
>>> + case MEDIA_BUS_FMT_Y8_1X8:
>>> case MEDIA_BUS_FMT_META_8:
>>> return 8;
>>> default:
>>> @@ -65,21 +69,25 @@ unsigned int ipu6_isys_mbus_code_to_mipi(u32 code)
>>> case MEDIA_BUS_FMT_SGBRG16_1X16:
>>> case MEDIA_BUS_FMT_SGRBG16_1X16:
>>> case MEDIA_BUS_FMT_SRGGB16_1X16:
>>> + case MEDIA_BUS_FMT_Y16_1X16:
>>> return MIPI_CSI2_DT_RAW16;
>>> case MEDIA_BUS_FMT_SBGGR12_1X12:
>>> case MEDIA_BUS_FMT_SGBRG12_1X12:
>>> case MEDIA_BUS_FMT_SGRBG12_1X12:
>>> case MEDIA_BUS_FMT_SRGGB12_1X12:
>>> + case MEDIA_BUS_FMT_Y12_1X12:
>>> return MIPI_CSI2_DT_RAW12;
>>> case MEDIA_BUS_FMT_SBGGR10_1X10:
>>> case MEDIA_BUS_FMT_SGBRG10_1X10:
>>> case MEDIA_BUS_FMT_SGRBG10_1X10:
>>> case MEDIA_BUS_FMT_SRGGB10_1X10:
>>> + case MEDIA_BUS_FMT_Y10_1X10:
>>> return MIPI_CSI2_DT_RAW10;
>>> case MEDIA_BUS_FMT_SBGGR8_1X8:
>>> case MEDIA_BUS_FMT_SGBRG8_1X8:
>>> case MEDIA_BUS_FMT_SGRBG8_1X8:
>>> case MEDIA_BUS_FMT_SRGGB8_1X8:
>>> + case MEDIA_BUS_FMT_Y8_1X8:
>>> return MIPI_CSI2_DT_RAW8;
>>> case MEDIA_BUS_FMT_META_8:
>>> case MEDIA_BUS_FMT_META_10:
>>> @@ -96,15 +104,23 @@ unsigned int ipu6_isys_mbus_code_to_mipi(u32 code)
>>>
>>> bool ipu6_isys_is_bayer_format(u32 code)
>>> {
>>> - switch (ipu6_isys_mbus_code_to_mipi(code)) {
>>> - case MIPI_CSI2_DT_RAW8:
>>> - case MIPI_CSI2_DT_RAW10:
>>> - case MIPI_CSI2_DT_RAW12:
>>> - case MIPI_CSI2_DT_RAW14:
>>> - case MIPI_CSI2_DT_RAW16:
>>> - case MIPI_CSI2_DT_RAW20:
>>> - case MIPI_CSI2_DT_RAW24:
>>> - case MIPI_CSI2_DT_RAW28:
>>> + switch (code) {
>>> + case MEDIA_BUS_FMT_SBGGR8_1X8:
>>> + case MEDIA_BUS_FMT_SGBRG8_1X8:
>>> + case MEDIA_BUS_FMT_SGRBG8_1X8:
>>> + case MEDIA_BUS_FMT_SRGGB8_1X8:
>>> + case MEDIA_BUS_FMT_SBGGR10_1X10:
>>> + case MEDIA_BUS_FMT_SGBRG10_1X10:
>>> + case MEDIA_BUS_FMT_SGRBG10_1X10:
>>> + case MEDIA_BUS_FMT_SRGGB10_1X10:
>>> + case MEDIA_BUS_FMT_SBGGR12_1X12:
>>> + case MEDIA_BUS_FMT_SGBRG12_1X12:
>>> + case MEDIA_BUS_FMT_SGRBG12_1X12:
>>> + case MEDIA_BUS_FMT_SRGGB12_1X12:
>>> + case MEDIA_BUS_FMT_SRGGB16_1X16:
>>> + case MEDIA_BUS_FMT_SGRBG16_1X16:
>>> + case MEDIA_BUS_FMT_SGBRG16_1X16:
>>> + case MEDIA_BUS_FMT_SBGGR16_1X16:
>>> return true;
>>> default:
>>> return false;
>>> diff --git a/drivers/media/pci/intel/ipu6/ipu6-isys-video.c b/drivers/media/pci/intel/ipu6/ipu6-isys-video.c
>>> index f3f3bc0615e5..dec8f5ffcfa5 100644
>>> --- a/drivers/media/pci/intel/ipu6/ipu6-isys-video.c
>>> +++ b/drivers/media/pci/intel/ipu6/ipu6-isys-video.c
>>> @@ -77,6 +77,20 @@ const struct ipu6_isys_pixelformat ipu6_isys_pfmts[] = {
>>> IPU6_FW_ISYS_FRAME_FORMAT_RAW10 },
>>> { V4L2_PIX_FMT_SRGGB10P, 10, 10, MEDIA_BUS_FMT_SRGGB10_1X10,
>>> IPU6_FW_ISYS_FRAME_FORMAT_RAW10 },
>>> +
>>> + { V4L2_PIX_FMT_GREY, 8, 8, MEDIA_BUS_FMT_Y8_1X8,
>>> + IPU6_FW_ISYS_FRAME_FORMAT_RAW8 },
>>> + { V4L2_PIX_FMT_Y10, 16, 10, MEDIA_BUS_FMT_Y10_1X10,
>>> + IPU6_FW_ISYS_FRAME_FORMAT_RAW16 },
>>> + { V4L2_PIX_FMT_Y12, 16, 12, MEDIA_BUS_FMT_Y12_1X12,
>>> + IPU6_FW_ISYS_FRAME_FORMAT_RAW16 },
>>> + { V4L2_PIX_FMT_Y16, 16, 16, MEDIA_BUS_FMT_Y16_1X16,
>>> + IPU6_FW_ISYS_FRAME_FORMAT_RAW16 },
>>> + { V4L2_PIX_FMT_Y10P, 10, 10, MEDIA_BUS_FMT_Y10_1X10,
>>> + IPU6_FW_ISYS_FRAME_FORMAT_RAW10 },
>>> + { V4L2_PIX_FMT_Y12P, 12, 12, MEDIA_BUS_FMT_Y12_1X12,
>>> + IPU6_FW_ISYS_FRAME_FORMAT_RAW12 },
>>
>> The code looks fine for me. I am wondering which sensor to test these
>> packed format for IPU6.
>
> Such packed formats appear to be defined for Bayer formats, too, so I'd
> expect them to work as the Bayer equivalents that are already supported.
Right, on the CSI side this is e.g. always 10 bits / pixel but
then the isys can be configured to either store this in the in
memory framebuffer either sparse using 16 bits / pixel or packed
with std mipi packing.
Both paths (sparse + packed) have been tested with bayer patterns
since the softISP supports both memory buffer formats.
For the monochrome support I've tested with the libcamera "cam" app
using 16 bpp sparse + imagemagick to convert the raw Y buffers to
png-s to look at the result:
magick -depth 16 -size 1312x816 gray:XXXXXXXX.bin -auto-level result.png
Note the 1312 is necessary because the stride for 1296x816 is 1312
bytes/line.
Regards,
Hans
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] media: ipu6: isys: Add support for monochrome media bus formats
2025-10-20 15:37 [PATCH] media: ipu6: isys: Add support for monochrome media bus formats Hans de Goede
2025-10-21 8:10 ` Bingbu Cao
@ 2025-11-11 8:46 ` Bingbu Cao
1 sibling, 0 replies; 5+ messages in thread
From: Bingbu Cao @ 2025-11-11 8:46 UTC (permalink / raw)
To: Hans de Goede, Sakari Ailus, Bingbu Cao, Tianshu Qiu; +Cc: linux-media
Hans,
Thanks for the patch.
Reviewed-by: Bingbu Cao <bingbu.cao@intel.com>
On 10/20/25 11:37 PM, Hans de Goede wrote:
> Add support for monochrome media bus formats, for use with monochrome/IR
> camera sensors.
>
> This has been tested on a Dell XPS 13 9320 with OV1A1B IR sensor.
>
> Signed-off-by: Hans de Goede <hansg@kernel.org>
> ---
> drivers/media/pci/intel/ipu6/ipu6-isys-csi2.c | 4 +++
> .../media/pci/intel/ipu6/ipu6-isys-subdev.c | 34 ++++++++++++++-----
> .../media/pci/intel/ipu6/ipu6-isys-video.c | 14 ++++++++
> 3 files changed, 43 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/media/pci/intel/ipu6/ipu6-isys-csi2.c b/drivers/media/pci/intel/ipu6/ipu6-isys-csi2.c
> index d1fece6210ab..daec6b865bda 100644
> --- a/drivers/media/pci/intel/ipu6/ipu6-isys-csi2.c
> +++ b/drivers/media/pci/intel/ipu6/ipu6-isys-csi2.c
> @@ -42,6 +42,10 @@ static const u32 csi2_supported_codes[] = {
> MEDIA_BUS_FMT_SGBRG8_1X8,
> MEDIA_BUS_FMT_SGRBG8_1X8,
> MEDIA_BUS_FMT_SRGGB8_1X8,
> + MEDIA_BUS_FMT_Y8_1X8,
> + MEDIA_BUS_FMT_Y10_1X10,
> + MEDIA_BUS_FMT_Y12_1X12,
> + MEDIA_BUS_FMT_Y16_1X16,
> MEDIA_BUS_FMT_META_8,
> MEDIA_BUS_FMT_META_10,
> MEDIA_BUS_FMT_META_12,
> diff --git a/drivers/media/pci/intel/ipu6/ipu6-isys-subdev.c b/drivers/media/pci/intel/ipu6/ipu6-isys-subdev.c
> index 463a0adf9e13..869e7d4ba572 100644
> --- a/drivers/media/pci/intel/ipu6/ipu6-isys-subdev.c
> +++ b/drivers/media/pci/intel/ipu6/ipu6-isys-subdev.c
> @@ -25,24 +25,28 @@ unsigned int ipu6_isys_mbus_code_to_bpp(u32 code)
> case MEDIA_BUS_FMT_RGB565_1X16:
> case MEDIA_BUS_FMT_UYVY8_1X16:
> case MEDIA_BUS_FMT_YUYV8_1X16:
> + case MEDIA_BUS_FMT_Y16_1X16:
> case MEDIA_BUS_FMT_META_16:
> return 16;
> case MEDIA_BUS_FMT_SBGGR12_1X12:
> case MEDIA_BUS_FMT_SGBRG12_1X12:
> case MEDIA_BUS_FMT_SGRBG12_1X12:
> case MEDIA_BUS_FMT_SRGGB12_1X12:
> + case MEDIA_BUS_FMT_Y12_1X12:
> case MEDIA_BUS_FMT_META_12:
> return 12;
> case MEDIA_BUS_FMT_SBGGR10_1X10:
> case MEDIA_BUS_FMT_SGBRG10_1X10:
> case MEDIA_BUS_FMT_SGRBG10_1X10:
> case MEDIA_BUS_FMT_SRGGB10_1X10:
> + case MEDIA_BUS_FMT_Y10_1X10:
> case MEDIA_BUS_FMT_META_10:
> return 10;
> case MEDIA_BUS_FMT_SBGGR8_1X8:
> case MEDIA_BUS_FMT_SGBRG8_1X8:
> case MEDIA_BUS_FMT_SGRBG8_1X8:
> case MEDIA_BUS_FMT_SRGGB8_1X8:
> + case MEDIA_BUS_FMT_Y8_1X8:
> case MEDIA_BUS_FMT_META_8:
> return 8;
> default:
> @@ -65,21 +69,25 @@ unsigned int ipu6_isys_mbus_code_to_mipi(u32 code)
> case MEDIA_BUS_FMT_SGBRG16_1X16:
> case MEDIA_BUS_FMT_SGRBG16_1X16:
> case MEDIA_BUS_FMT_SRGGB16_1X16:
> + case MEDIA_BUS_FMT_Y16_1X16:
> return MIPI_CSI2_DT_RAW16;
> case MEDIA_BUS_FMT_SBGGR12_1X12:
> case MEDIA_BUS_FMT_SGBRG12_1X12:
> case MEDIA_BUS_FMT_SGRBG12_1X12:
> case MEDIA_BUS_FMT_SRGGB12_1X12:
> + case MEDIA_BUS_FMT_Y12_1X12:
> return MIPI_CSI2_DT_RAW12;
> case MEDIA_BUS_FMT_SBGGR10_1X10:
> case MEDIA_BUS_FMT_SGBRG10_1X10:
> case MEDIA_BUS_FMT_SGRBG10_1X10:
> case MEDIA_BUS_FMT_SRGGB10_1X10:
> + case MEDIA_BUS_FMT_Y10_1X10:
> return MIPI_CSI2_DT_RAW10;
> case MEDIA_BUS_FMT_SBGGR8_1X8:
> case MEDIA_BUS_FMT_SGBRG8_1X8:
> case MEDIA_BUS_FMT_SGRBG8_1X8:
> case MEDIA_BUS_FMT_SRGGB8_1X8:
> + case MEDIA_BUS_FMT_Y8_1X8:
> return MIPI_CSI2_DT_RAW8;
> case MEDIA_BUS_FMT_META_8:
> case MEDIA_BUS_FMT_META_10:
> @@ -96,15 +104,23 @@ unsigned int ipu6_isys_mbus_code_to_mipi(u32 code)
>
> bool ipu6_isys_is_bayer_format(u32 code)
> {
> - switch (ipu6_isys_mbus_code_to_mipi(code)) {
> - case MIPI_CSI2_DT_RAW8:
> - case MIPI_CSI2_DT_RAW10:
> - case MIPI_CSI2_DT_RAW12:
> - case MIPI_CSI2_DT_RAW14:
> - case MIPI_CSI2_DT_RAW16:
> - case MIPI_CSI2_DT_RAW20:
> - case MIPI_CSI2_DT_RAW24:
> - case MIPI_CSI2_DT_RAW28:
> + switch (code) {
> + case MEDIA_BUS_FMT_SBGGR8_1X8:
> + case MEDIA_BUS_FMT_SGBRG8_1X8:
> + case MEDIA_BUS_FMT_SGRBG8_1X8:
> + case MEDIA_BUS_FMT_SRGGB8_1X8:
> + case MEDIA_BUS_FMT_SBGGR10_1X10:
> + case MEDIA_BUS_FMT_SGBRG10_1X10:
> + case MEDIA_BUS_FMT_SGRBG10_1X10:
> + case MEDIA_BUS_FMT_SRGGB10_1X10:
> + case MEDIA_BUS_FMT_SBGGR12_1X12:
> + case MEDIA_BUS_FMT_SGBRG12_1X12:
> + case MEDIA_BUS_FMT_SGRBG12_1X12:
> + case MEDIA_BUS_FMT_SRGGB12_1X12:
> + case MEDIA_BUS_FMT_SRGGB16_1X16:
> + case MEDIA_BUS_FMT_SGRBG16_1X16:
> + case MEDIA_BUS_FMT_SGBRG16_1X16:
> + case MEDIA_BUS_FMT_SBGGR16_1X16:
> return true;
> default:
> return false;
> diff --git a/drivers/media/pci/intel/ipu6/ipu6-isys-video.c b/drivers/media/pci/intel/ipu6/ipu6-isys-video.c
> index f3f3bc0615e5..dec8f5ffcfa5 100644
> --- a/drivers/media/pci/intel/ipu6/ipu6-isys-video.c
> +++ b/drivers/media/pci/intel/ipu6/ipu6-isys-video.c
> @@ -77,6 +77,20 @@ const struct ipu6_isys_pixelformat ipu6_isys_pfmts[] = {
> IPU6_FW_ISYS_FRAME_FORMAT_RAW10 },
> { V4L2_PIX_FMT_SRGGB10P, 10, 10, MEDIA_BUS_FMT_SRGGB10_1X10,
> IPU6_FW_ISYS_FRAME_FORMAT_RAW10 },
> +
> + { V4L2_PIX_FMT_GREY, 8, 8, MEDIA_BUS_FMT_Y8_1X8,
> + IPU6_FW_ISYS_FRAME_FORMAT_RAW8 },
> + { V4L2_PIX_FMT_Y10, 16, 10, MEDIA_BUS_FMT_Y10_1X10,
> + IPU6_FW_ISYS_FRAME_FORMAT_RAW16 },
> + { V4L2_PIX_FMT_Y12, 16, 12, MEDIA_BUS_FMT_Y12_1X12,
> + IPU6_FW_ISYS_FRAME_FORMAT_RAW16 },
> + { V4L2_PIX_FMT_Y16, 16, 16, MEDIA_BUS_FMT_Y16_1X16,
> + IPU6_FW_ISYS_FRAME_FORMAT_RAW16 },
> + { V4L2_PIX_FMT_Y10P, 10, 10, MEDIA_BUS_FMT_Y10_1X10,
> + IPU6_FW_ISYS_FRAME_FORMAT_RAW10 },
> + { V4L2_PIX_FMT_Y12P, 12, 12, MEDIA_BUS_FMT_Y12_1X12,
> + IPU6_FW_ISYS_FRAME_FORMAT_RAW12 },
> +
> { V4L2_PIX_FMT_UYVY, 16, 16, MEDIA_BUS_FMT_UYVY8_1X16,
> IPU6_FW_ISYS_FRAME_FORMAT_UYVY},
> { V4L2_PIX_FMT_YUYV, 16, 16, MEDIA_BUS_FMT_YUYV8_1X16,
>
--
Best regards,
Bingbu Cao
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2025-11-11 8:55 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-10-20 15:37 [PATCH] media: ipu6: isys: Add support for monochrome media bus formats Hans de Goede
2025-10-21 8:10 ` Bingbu Cao
2025-10-21 13:52 ` Sakari Ailus
2025-10-22 12:50 ` Hans de Goede
2025-11-11 8:46 ` Bingbu Cao
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).