Re: [PATCH v2 0/6] imx8-isi: Bug fixes and format support enhancements
From: Laurent Pinchart
Date: Mon Jul 20 2026 - 20:33:06 EST
On Mon, Jul 20, 2026 at 11:34:02AM +0800, Guoniu Zhou wrote:
> This series addresses critical bugs in the imx8-isi driver and extends
> format support for high-end sensors and Android requirements.
>
> Patch 1 fixes a critical stream ID validation bug in the crossbar routing
> where the validation loop iterates over the wrong routing table, allowing
> userspace to bypass validation entirely and configure invalid routes.
>
> Patch 2 adds additional stream ID validation to enforce hardware constraints
> (SOURCE stream must be 0).
>
> Patch 3 fixes a stream reference counting bug in the crossbar that prevents
> multiple streams from different virtual channels on the same input pad from
> being enabled correctly. Only the first stream gets enabled in hardware,
> subsequent streams are silently ignored.
>
> Patch 4 adds support for 16-bit raw Bayer formats (SBGGR16, SGBRG16,
> SGRBG16, SRGGB16) commonly used by high-end image sensors.
>
> Patch 5 fixes incorrect color mapping for XBGR32 format in memory-to-memory
> mode (marked for stable backport).
>
> Patch 6 extends RGB format support by adding BGRA32, RGBA32, BGRX32, RGBX32,
> and ARGB2101010 formats with full M2M capabilities to meet Android
> requirements.
>
> Signed-off-by: Guoniu Zhou <guoniu.zhou@xxxxxxxxxxx>
I have taken patches 1, 2 and 5 in my tree already ([1]). The CI
pipeline is running ([2]). Once it completes successfully, I will send a
pull request. You can base the next version of this series (patches 3, 4
and 6) on top of [1].
[1] https://gitlab.freedesktop.org/linux-media/users/pinchartl/-/commit/db30b841e534f6b97008583f6e63c93473f14afc
[2] https://gitlab.freedesktop.org/linux-media/users/pinchartl/-/pipelines/1710408
> ---
> Changes in v2:
> - [1/6] Split v1 patch 1/5 into two patches: this patch fixes the core
> for_each_active_route() bug, next patch adds additional stream
> validation (Frank Li)
> - [2/6] New patch split from v1 1/5: adds stream ID validation on top of
> for_each_active_route() fix (Frank Li)
> - [2/6] Remove incorrect sink_stream validation
> - [3/6] Use fixed-size array for enabled_count instead of dynamic allocation
> - [3/6] Use BIT_ULL() macro for u64 bitmask operations
> - [3/6] Use MXC_ISI_MAX_STREAMS (64) as loop boundary instead of num_sources
> - [3/6] Remove mxc_isi_stream_counters_alloc/free functions
> - [4/6] Add Reviewed-by tag from Frank Li
> - [5/6] Reword commit description for clarity (Frank Li)
> - [6/6] Add Reviewed-by tag from Frank Li
> - Link to v1: https://lore.kernel.org/r/20260629-isi-v1-0-deebfdb1b07b@xxxxxxxxxxx
>
> ---
> Guoniu Zhou (5):
> media: nxp: imx8-isi: Fix stream ID validation bypass in crossbar routing
> media: nxp: imx8-isi: Add stream ID validation for crossbar routing
> media: nxp: imx8-isi: Fix per-stream reference counting for multiplexed streams
> media: nxp: imx8-isi: Correct color map between V4L2 and ISI
> media: nxp: imx8-isi: Add additional 32-bit RGB format support
>
> Laurentiu Palcu (1):
> media: nxp: imx8-isi: Add 16-bit raw Bayer format support
>
> .../media/platform/nxp/imx8-isi/imx8-isi-core.h | 7 +-
> .../platform/nxp/imx8-isi/imx8-isi-crossbar.c | 92 +++++++++++++++-----
> .../media/platform/nxp/imx8-isi/imx8-isi-pipe.c | 24 ++++++
> .../media/platform/nxp/imx8-isi/imx8-isi-video.c | 97 +++++++++++++++++++++-
> 4 files changed, 196 insertions(+), 24 deletions(-)
> ---
> base-commit: 06cb687a5132fcffe624c0070576ab852ac6b568
> change-id: 20260626-isi-00f05b044ac9
--
Regards,
Laurent Pinchart