Re: [PATCH v5 4/4] media: nxp: imx8-isi: Add additional 32-bit RGB format support

Loic Poulain <[email protected]> Tue, 28 Jul 2026 16:13:04 +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-3MR3v_+3rMhi3wFRCPn70e_=fXp9o4tQ5oE0RuWEHSfQ@mail.gmail.com>
On Tue, Jul 28, 2026 at 8:55 AM Guoniu Zhou <[email protected]> wrote:
>
> Add support for additional 32-bit RGB pixel formats (BGRA32, RGBA32,
> BGRX32, RGBX32, ARGB2101010).
>
> Formats with alpha channel (BGRA32, RGBA32) only support capture as
> ISI ignores alpha bits when reading from memory.
>
> Signed-off-by: Robert Chiras <[email protected]>
> Reviewed-by: Frank Li <[email protected]>
> Tested-by: Laurent Pinchart <[email protected]>
> Signed-off-by: Guoniu Zhou <[email protected]>

Reviewed-by: Loic Poulain <[email protected]>


> ---
> Changes in v3:
> - Drop M2M_OUT for ABGR32/BGRA32/RGBA32 as ISI ignores alpha bits (Laurent)
> - Remove Android requirements from commit message as alpha formats
>   cannot be used as M2M input (Laurent)
> - Add Tested-by tag from Laurent Pinchart
>
> Changes in v2:
> - Add Reviewed-by tag from Frank Li
> ---
>  .../media/platform/nxp/imx8-isi/imx8-isi-video.c   | 51 ++++++++++++++++++++++
>  1 file changed, 51 insertions(+)
>
> 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 a6e044056762..f45c2aae59ce 100644
> --- a/drivers/media/platform/nxp/imx8-isi/imx8-isi-video.c
> +++ b/drivers/media/platform/nxp/imx8-isi/imx8-isi-video.c
> @@ -166,6 +166,57 @@ static const struct mxc_isi_format_info mxc_isi_formats[] = {
>                 .color_planes   = 1,
>                 .depth          = { 32 },
>                 .encoding       = MXC_ISI_ENC_RGB,
> +       }, {
> +               .mbus_code      = MEDIA_BUS_FMT_RGB888_1X24,
> +               .fourcc         = V4L2_PIX_FMT_BGRA32,
> +               .type           = MXC_ISI_VIDEO_CAP | MXC_ISI_VIDEO_M2M_CAP,
> +               .isi_out_format = CHNL_IMG_CTRL_FORMAT_RGBA8888,
> +               .mem_planes     = 1,
> +               .color_planes   = 1,
> +               .depth          = { 32 },
> +               .encoding       = MXC_ISI_ENC_RGB,
> +       }, {
> +               .mbus_code      = MEDIA_BUS_FMT_RGB888_1X24,
> +               .fourcc         = V4L2_PIX_FMT_RGBA32,
> +               .type           = MXC_ISI_VIDEO_CAP | MXC_ISI_VIDEO_M2M_CAP,
> +               .isi_out_format = CHNL_IMG_CTRL_FORMAT_ABGR8888,
> +               .mem_planes     = 1,
> +               .color_planes   = 1,
> +               .depth          = { 32 },
> +               .encoding       = MXC_ISI_ENC_RGB,
> +       }, {
> +               .mbus_code      = MEDIA_BUS_FMT_RGB888_1X24,
> +               .fourcc         = V4L2_PIX_FMT_BGRX32,
> +               .type           = MXC_ISI_VIDEO_CAP | MXC_ISI_VIDEO_M2M_OUT
> +                               | MXC_ISI_VIDEO_M2M_CAP,
> +               .isi_in_format  = CHNL_MEM_RD_CTRL_IMG_TYPE_RGBX8,
> +               .isi_out_format = CHNL_IMG_CTRL_FORMAT_RGBX888,
> +               .mem_planes     = 1,
> +               .color_planes   = 1,
> +               .depth          = { 32 },
> +               .encoding       = MXC_ISI_ENC_RGB,
> +       }, {
> +               .mbus_code      = MEDIA_BUS_FMT_RGB888_1X24,
> +               .fourcc         = V4L2_PIX_FMT_RGBX32,
> +               .type           = MXC_ISI_VIDEO_CAP | MXC_ISI_VIDEO_M2M_OUT
> +                               | MXC_ISI_VIDEO_M2M_CAP,
> +               .isi_in_format  = CHNL_MEM_RD_CTRL_IMG_TYPE_XBGR8,
> +               .isi_out_format = CHNL_IMG_CTRL_FORMAT_XBGR888,
> +               .mem_planes     = 1,
> +               .color_planes   = 1,
> +               .depth          = { 32 },
> +               .encoding       = MXC_ISI_ENC_RGB,
> +       }, {
> +               .mbus_code      = MEDIA_BUS_FMT_RGB888_1X24,
> +               .fourcc         = V4L2_PIX_FMT_ARGB2101010,
> +               .type           = MXC_ISI_VIDEO_CAP | MXC_ISI_VIDEO_M2M_OUT
> +                               | MXC_ISI_VIDEO_M2M_CAP,
> +               .isi_in_format  = CHNL_MEM_RD_CTRL_IMG_TYPE_A2RGB10,
> +               .isi_out_format = CHNL_IMG_CTRL_FORMAT_A2RGB10,
> +               .mem_planes     = 1,
> +               .color_planes   = 1,
> +               .depth          = { 32 },
> +               .encoding       = MXC_ISI_ENC_RGB,
>         },
>         /*
>          * RAW formats
>
> --
> 2.34.1
>