Re: [PATCH v5 3/4] media: nxp: imx8-isi: Add 16-bit raw Bayer format support
Loic Poulain <[email protected]> Tue, 28 Jul 2026 16:11:01 +0200
| Newsgroups | dev.linux.lists.imx,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-kernel,org.kernel.vger.linux-media |
|---|---|
| Message-ID | <CAFEp6-33my_MgEJBmwpaAmACzpx-HoF2bXesGr5e6ojRhq9yew@mail.gmail.com> |
On Tue, Jul 28, 2026 at 8:55 AM <[email protected]> wrote: > > From: Laurentiu Palcu <[email protected]> > > Add support for 16-bit raw Bayer formats (SBGGR16, SGBRG16, SGRBG16, > SRGGB16) to both the pipeline subdev and video capture interface. > > These formats are used by image sensors that output 16-bit raw data, > enabling the ISI to capture full dynamic range from such sensors. > > Signed-off-by: Laurentiu Palcu <[email protected]> > Reviewed-by: Frank Li <[email protected]> > Reviewed-by: Laurent Pinchart <[email protected]> > Signed-off-by: Guoniu Zhou <[email protected]> Reviewed-by: Loic Poulain <[email protected]> > --- > Changes in v3: > - Remove "high-end" from description as RAW16 is common now (Laurent) > - Add Y16 (16-bit monochrome) format support (Laurent) > - Add Reviewed-by tag from Laurent > > Changes in v2: > - Add Reviewed-by tag from Frank Li > --- > .../media/platform/nxp/imx8-isi/imx8-isi-pipe.c | 30 +++++++++++++++ > .../media/platform/nxp/imx8-isi/imx8-isi-video.c | 45 ++++++++++++++++++++++ > 2 files changed, 75 insertions(+) > > diff --git a/drivers/media/platform/nxp/imx8-isi/imx8-isi-pipe.c b/drivers/media/platform/nxp/imx8-isi/imx8-isi-pipe.c > index c0ec59856374..934f7b356258 100644 > --- a/drivers/media/platform/nxp/imx8-isi/imx8-isi-pipe.c > +++ b/drivers/media/platform/nxp/imx8-isi/imx8-isi-pipe.c > @@ -83,6 +83,12 @@ static const struct mxc_isi_bus_format_info mxc_isi_bus_formats[] = { > .pads = BIT(MXC_ISI_PIPE_PAD_SINK) > | BIT(MXC_ISI_PIPE_PAD_SOURCE), > .encoding = MXC_ISI_ENC_RAW, > + }, { > + .mbus_code = MEDIA_BUS_FMT_Y16_1X16, > + .output = MEDIA_BUS_FMT_Y16_1X16, > + .pads = BIT(MXC_ISI_PIPE_PAD_SINK) > + | BIT(MXC_ISI_PIPE_PAD_SOURCE), > + .encoding = MXC_ISI_ENC_RAW, > }, { > .mbus_code = MEDIA_BUS_FMT_SBGGR8_1X8, > .output = MEDIA_BUS_FMT_SBGGR8_1X8, > @@ -179,6 +185,30 @@ static const struct mxc_isi_bus_format_info mxc_isi_bus_formats[] = { > .pads = BIT(MXC_ISI_PIPE_PAD_SINK) > | BIT(MXC_ISI_PIPE_PAD_SOURCE), > .encoding = MXC_ISI_ENC_RAW, > + }, { > + .mbus_code = MEDIA_BUS_FMT_SBGGR16_1X16, > + .output = MEDIA_BUS_FMT_SBGGR16_1X16, > + .pads = BIT(MXC_ISI_PIPE_PAD_SINK) > + | BIT(MXC_ISI_PIPE_PAD_SOURCE), > + .encoding = MXC_ISI_ENC_RAW, > + }, { > + .mbus_code = MEDIA_BUS_FMT_SGBRG16_1X16, > + .output = MEDIA_BUS_FMT_SGBRG16_1X16, > + .pads = BIT(MXC_ISI_PIPE_PAD_SINK) > + | BIT(MXC_ISI_PIPE_PAD_SOURCE), > + .encoding = MXC_ISI_ENC_RAW, > + }, { > + .mbus_code = MEDIA_BUS_FMT_SGRBG16_1X16, > + .output = MEDIA_BUS_FMT_SGRBG16_1X16, > + .pads = BIT(MXC_ISI_PIPE_PAD_SINK) > + | BIT(MXC_ISI_PIPE_PAD_SOURCE), > + .encoding = MXC_ISI_ENC_RAW, > + }, { > + .mbus_code = MEDIA_BUS_FMT_SRGGB16_1X16, > + .output = MEDIA_BUS_FMT_SRGGB16_1X16, > + .pads = BIT(MXC_ISI_PIPE_PAD_SINK) > + | BIT(MXC_ISI_PIPE_PAD_SOURCE), > + .encoding = MXC_ISI_ENC_RAW, > }, > /* JPEG */ > { > diff --git a/drivers/media/platform/nxp/imx8-isi/imx8-isi-video.c b/drivers/media/platform/nxp/imx8-isi/imx8-isi-video.c > index 056603055c81..a6e044056762 100644 > --- a/drivers/media/platform/nxp/imx8-isi/imx8-isi-video.c > +++ b/drivers/media/platform/nxp/imx8-isi/imx8-isi-video.c > @@ -212,6 +212,15 @@ static const struct mxc_isi_format_info mxc_isi_formats[] = { > .color_planes = 1, > .depth = { 16 }, > .encoding = MXC_ISI_ENC_RAW, > + }, { > + .mbus_code = MEDIA_BUS_FMT_Y16_1X16, > + .fourcc = V4L2_PIX_FMT_Y16, > + .type = MXC_ISI_VIDEO_CAP, > + .isi_out_format = CHNL_IMG_CTRL_FORMAT_RAW16, > + .mem_planes = 1, > + .color_planes = 1, > + .depth = { 16 }, > + .encoding = MXC_ISI_ENC_RAW, > }, { > .mbus_code = MEDIA_BUS_FMT_SBGGR8_1X8, > .fourcc = V4L2_PIX_FMT_SBGGR8, > @@ -356,6 +365,42 @@ static const struct mxc_isi_format_info mxc_isi_formats[] = { > .color_planes = 1, > .depth = { 16 }, > .encoding = MXC_ISI_ENC_RAW, > + }, { > + .mbus_code = MEDIA_BUS_FMT_SBGGR16_1X16, > + .fourcc = V4L2_PIX_FMT_SBGGR16, > + .type = MXC_ISI_VIDEO_CAP, > + .isi_out_format = CHNL_IMG_CTRL_FORMAT_RAW16, > + .mem_planes = 1, > + .color_planes = 1, > + .depth = { 16 }, > + .encoding = MXC_ISI_ENC_RAW, > + }, { > + .mbus_code = MEDIA_BUS_FMT_SGBRG16_1X16, > + .fourcc = V4L2_PIX_FMT_SGBRG16, > + .type = MXC_ISI_VIDEO_CAP, > + .isi_out_format = CHNL_IMG_CTRL_FORMAT_RAW16, > + .mem_planes = 1, > + .color_planes = 1, > + .depth = { 16 }, > + .encoding = MXC_ISI_ENC_RAW, > + }, { > + .mbus_code = MEDIA_BUS_FMT_SGRBG16_1X16, > + .fourcc = V4L2_PIX_FMT_SGRBG16, > + .type = MXC_ISI_VIDEO_CAP, > + .isi_out_format = CHNL_IMG_CTRL_FORMAT_RAW16, > + .mem_planes = 1, > + .color_planes = 1, > + .depth = { 16 }, > + .encoding = MXC_ISI_ENC_RAW, > + }, { > + .mbus_code = MEDIA_BUS_FMT_SRGGB16_1X16, > + .fourcc = V4L2_PIX_FMT_SRGGB16, > + .type = MXC_ISI_VIDEO_CAP, > + .isi_out_format = CHNL_IMG_CTRL_FORMAT_RAW16, > + .mem_planes = 1, > + .color_planes = 1, > + .depth = { 16 }, > + .encoding = MXC_ISI_ENC_RAW, > }, > /* JPEG */ > { > > -- > 2.34.1 >