From: Pratyush Yadav <p.yadav@xxxxxx> Hi, This series adds support for CSI2 capture on J721E. It includes some fixes to the Cadence CSI2RX driver, and adds the TI CSI2RX wrapper driver. This is the v9 of the below v8 series, https://lore.kernel.org/r/20230731-upstream_csi-v8-0-fb7d3661c2c9@xxxxxx Testing logs: https://gist.github.com/jailuthra/eaeb3af3c65b67e1bc0d5db28180131d J721E CSI2RX driver can also be extended to support multi-stream capture, filtering different CSI Virtual Channels (VC) or Data Types (DT) to different DMA channels. A WIP series based on v7 is available for reference at https://github.com/jailuthra/linux/commits/csi_multi_wip I will rebase the multi-stream patches on the current series (v9) and post them as RFC in the coming weeks. Signed-off-by: Jai Luthra <j-luthra@xxxxxx> --- Changelog from v8 ================= Range-diff: https://0x0.st/H_xh.diff Dropped the following patches: [v8 01/16] media: subdev: Export get_format helper for link validation - Using subdev's get_fmt directly instead [v8 04/16] media: cadence: Add support for TI SoCs - Don't add a compatible if we are not using it in the driver [v8 14/16] media: cadence: csi2rx: Support RAW8 and RAW10 formats - Squashed into a previous patch [v8 07/16] For [05/13] media: cadence: csi2rx: Add get_fmt and set_fmt pad ops: - Squash the patch adding RAW8 and RAW10 formats within this one - Single line struct entries in formats[] array - Skip specifiying redundant format.which entry in init_cfg() For [06/13] media: cadence: csi2rx: Configure DPHY using link freq: - Don't specify stream while calling .get_fmt() For [07/13] media: cadence: csi2rx: Soft reset the streams before starting capture: - Simplify reset sequence, minimizing delays For [08/13] media: cadence: csi2rx: Set the STOP bit when stopping a stream: - Better log message to avoid confusion between cadence streams and v4l2 streams For [13/13] media: ti: Add CSI2RX support for J721E: - Allocate drain buffer at start of stream instead of doing it in the middle, and document why it is needed in comments - Call subdev's get_fmt directly for link_validation() - Cleanup height/width clamping and rounding code, document it in comments - Return and check errors from setup_shim() - s/subdev/source for cadence csi2rx's v4l2_subdev - s/ti_csi2rx_init_subdev/ti_csi2rx_notifier_register - Change copyright year/author list --- Jai Luthra (1): media: dt-bindings: cadence-csi2rx: Add TI compatible string Pratyush Yadav (12): media: dt-bindings: Make sure items in data-lanes are unique media: cadence: csi2rx: Unregister v4l2 async notifier media: cadence: csi2rx: Cleanup media entity properly media: cadence: csi2rx: Add get_fmt and set_fmt pad ops media: cadence: csi2rx: Configure DPHY using link freq media: cadence: csi2rx: Soft reset the streams before starting capture media: cadence: csi2rx: Set the STOP bit when stopping a stream media: cadence: csi2rx: Fix stream data configuration media: cadence: csi2rx: Populate subdev devnode media: cadence: csi2rx: Add link validation media: dt-bindings: Add TI J721E CSI2RX media: ti: Add CSI2RX support for J721E .../devicetree/bindings/media/cdns,csi2rx.yaml | 1 + .../bindings/media/ti,j721e-csi2rx-shim.yaml | 100 ++ .../bindings/media/video-interfaces.yaml | 1 + MAINTAINERS | 7 + drivers/media/platform/cadence/cdns-csi2rx.c | 181 ++- drivers/media/platform/ti/Kconfig | 12 + drivers/media/platform/ti/Makefile | 1 + drivers/media/platform/ti/j721e-csi2rx/Makefile | 2 + .../media/platform/ti/j721e-csi2rx/j721e-csi2rx.c | 1150 ++++++++++++++++++++ 9 files changed, 1448 insertions(+), 7 deletions(-) --- base-commit: 21ef7b1e17d039053edaeaf41142423810572741 change-id: 20230727-upstream_csi-acbeabe038d8 Best regards, -- Jai Luthra <j-luthra@xxxxxx>