Re: [PATCH v2 6/6] media: imx8-isi: Enable ISI RAW10/12/14 output LSB alignment

From: Frank Li

Date: Wed Sep 30 2026 - 13:08:23 EST


On Tue, Sep 15, 2026 at 03:05:20AM +0300, Laurent Pinchart wrote:
> On Mon, Aug 31, 2026 at 11:37:01AM +0800, Guoniu Zhou wrote:
> > V4L2 requires RAW formats to be LSB-aligned (right-aligned). Before
> > i.MX952, the ISI shifts RAW10/12/14 output left to MSB, so the driver
> > works around this by using RAW16 format instead.
> >
> > The i.MX952 ISI introduces a RAW output LSB alignment bit. Enable it
> > along with the input MSB alignment on platforms that support this
> > feature, so that RAW10/12/14 output formats can be used directly
> > without the RAW16 workaround.
> >
> > Signed-off-by: Guoniu Zhou <guoniu.zhou@xxxxxxxxxxx>
> > ---
> > .../media/platform/nxp/imx8-isi/imx8-isi-core.c | 1 +
> > .../media/platform/nxp/imx8-isi/imx8-isi-core.h | 1 +
> > drivers/media/platform/nxp/imx8-isi/imx8-isi-hw.c | 39 ++++++++++++++++++++-
> > .../media/platform/nxp/imx8-isi/imx8-isi-regs.h | 3 ++
> > .../media/platform/nxp/imx8-isi/imx8-isi-video.c | 40 +++++++++++-----------
> > 5 files changed, 63 insertions(+), 21 deletions(-)
> >
> > diff --git a/drivers/media/platform/nxp/imx8-isi/imx8-isi-core.c b/drivers/media/platform/nxp/imx8-isi/imx8-isi-core.c
> > index d492631dfb6d..0f776fc8fd7e 100644
> > --- a/drivers/media/platform/nxp/imx8-isi/imx8-isi-core.c
> > +++ b/drivers/media/platform/nxp/imx8-isi/imx8-isi-core.c
> > @@ -394,6 +394,7 @@ static const struct mxc_isi_plat_data mxc_imx952_data = {
> > .format_mask = GENMASK(30, 24),
> > .buf_active_reverse = true,
> > .has_36bit_dma = true,
> > + .raw_out_lsb = true,
> > };
> >
> > /* -----------------------------------------------------------------------------
> > diff --git a/drivers/media/platform/nxp/imx8-isi/imx8-isi-core.h b/drivers/media/platform/nxp/imx8-isi/imx8-isi-core.h
> > index 73f6ea7b0ea1..c352bcf8dc47 100644
> > --- a/drivers/media/platform/nxp/imx8-isi/imx8-isi-core.h
> > +++ b/drivers/media/platform/nxp/imx8-isi/imx8-isi-core.h
> > @@ -166,6 +166,7 @@ struct mxc_isi_plat_data {
> > u32 format_mask;
> > bool buf_active_reverse;
> > bool has_36bit_dma;
> > + bool raw_out_lsb;
>
> As there's a single SoC that supports this, I would have used the model
> field instead of adding a new boolean.

Laurent:

Considerring more SoC will be add. use bool is more extentable and
managable. Make code clean and easier reader, and preferred by most
subsystem maintainer.

The another disvantge is model can't tell detail difference beween modules
without go through all if branch.

use each feature field can be easy identify soc difference by compare
plat_data.

Frank