Re: [PATCH v4 06/11] media: imx8-isi: Add RAW14 output format support

From: Frank Li

Date: Tue Sep 29 2026 - 10:34:22 EST


On Tue, Sep 29, 2026 at 04:52:27PM +0800, Guoniu Zhou wrote:
> From i.MX8ULP onwards, the ISI added RAW14 output format. Add its
> register definition and use it for all 14-bit RAW formats in the format
> table instead of RAW16.
>
> Include RAW14 in isi_out_raw_shifted() so the RAW16 workaround covers
> it on platforms that lack LSB-aligned RAW output.
>
> Signed-off-by: Guoniu Zhou <guoniu.zhou@xxxxxxxxxxx>
> ---
> Changes in v4:
> - New patch
> ---

Reviewed-by: Frank Li <Frank.Li@xxxxxxx>

> drivers/media/platform/nxp/imx8-isi/imx8-isi-regs.h | 5 ++++-
> drivers/media/platform/nxp/imx8-isi/imx8-isi-video.c | 10 +++++-----
> 2 files changed, 9 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/media/platform/nxp/imx8-isi/imx8-isi-regs.h b/drivers/media/platform/nxp/imx8-isi/imx8-isi-regs.h
> index 0f3ada30e71e..5f66b7c9cd1c 100644
> --- a/drivers/media/platform/nxp/imx8-isi/imx8-isi-regs.h
> +++ b/drivers/media/platform/nxp/imx8-isi/imx8-isi-regs.h
> @@ -89,6 +89,8 @@
> #define CHNL_IMG_CTRL_FORMAT_YUV420_3P10P 0x3a
> #define CHNL_IMG_CTRL_FORMAT_YUV420_2P12 0x3d
> #define CHNL_IMG_CTRL_FORMAT_YUV420_3P12 0x3e
> +#define CHNL_IMG_CTRL_FORMAT_RAW14 0x41 /* i.MX{8ULP,91,93,95} */
> +
> #define CHNL_IMG_CTRL_GBL_ALPHA_VAL(n) ((n) << 16)
> #define CHNL_IMG_CTRL_GBL_ALPHA_VAL_MASK GENMASK(23, 16)
> #define CHNL_IMG_CTRL_GBL_ALPHA_EN BIT(15)
> @@ -431,7 +433,8 @@
> static inline bool isi_out_raw_shifted(u32 format)
> {
> return format == CHNL_IMG_CTRL_FORMAT_RAW10 ||
> - format == CHNL_IMG_CTRL_FORMAT_RAW12;
> + format == CHNL_IMG_CTRL_FORMAT_RAW12 ||
> + format == CHNL_IMG_CTRL_FORMAT_RAW14;
> }
>
> #endif /* __IMX8_ISI_REGS_H__ */
> 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 365057db47bd..feef79b1b718 100644
> --- a/drivers/media/platform/nxp/imx8-isi/imx8-isi-video.c
> +++ b/drivers/media/platform/nxp/imx8-isi/imx8-isi-video.c
> @@ -250,7 +250,7 @@ static const struct mxc_isi_format_info mxc_isi_formats[] = {
> .mbus_code = MEDIA_BUS_FMT_Y14_1X14,
> .fourcc = V4L2_PIX_FMT_Y14,
> .type = MXC_ISI_VIDEO_CAP,
> - .isi_out_format = CHNL_IMG_CTRL_FORMAT_RAW16,
> + .isi_out_format = CHNL_IMG_CTRL_FORMAT_RAW14,
> .mem_planes = 1,
> .color_planes = 1,
> .depth = { 16 },
> @@ -376,7 +376,7 @@ static const struct mxc_isi_format_info mxc_isi_formats[] = {
> .mbus_code = MEDIA_BUS_FMT_SBGGR14_1X14,
> .fourcc = V4L2_PIX_FMT_SBGGR14,
> .type = MXC_ISI_VIDEO_CAP,
> - .isi_out_format = CHNL_IMG_CTRL_FORMAT_RAW16,
> + .isi_out_format = CHNL_IMG_CTRL_FORMAT_RAW14,
> .mem_planes = 1,
> .color_planes = 1,
> .depth = { 16 },
> @@ -385,7 +385,7 @@ static const struct mxc_isi_format_info mxc_isi_formats[] = {
> .mbus_code = MEDIA_BUS_FMT_SGBRG14_1X14,
> .fourcc = V4L2_PIX_FMT_SGBRG14,
> .type = MXC_ISI_VIDEO_CAP,
> - .isi_out_format = CHNL_IMG_CTRL_FORMAT_RAW16,
> + .isi_out_format = CHNL_IMG_CTRL_FORMAT_RAW14,
> .mem_planes = 1,
> .color_planes = 1,
> .depth = { 16 },
> @@ -394,7 +394,7 @@ static const struct mxc_isi_format_info mxc_isi_formats[] = {
> .mbus_code = MEDIA_BUS_FMT_SGRBG14_1X14,
> .fourcc = V4L2_PIX_FMT_SGRBG14,
> .type = MXC_ISI_VIDEO_CAP,
> - .isi_out_format = CHNL_IMG_CTRL_FORMAT_RAW16,
> + .isi_out_format = CHNL_IMG_CTRL_FORMAT_RAW14,
> .mem_planes = 1,
> .color_planes = 1,
> .depth = { 16 },
> @@ -403,7 +403,7 @@ static const struct mxc_isi_format_info mxc_isi_formats[] = {
> .mbus_code = MEDIA_BUS_FMT_SRGGB14_1X14,
> .fourcc = V4L2_PIX_FMT_SRGGB14,
> .type = MXC_ISI_VIDEO_CAP,
> - .isi_out_format = CHNL_IMG_CTRL_FORMAT_RAW16,
> + .isi_out_format = CHNL_IMG_CTRL_FORMAT_RAW14,
> .mem_planes = 1,
> .color_planes = 1,
> .depth = { 16 },
>
> --
> 2.34.1
>
>