[PATCH v10 00/13] CSI2RX support on J721E and AM62

From: Jai Luthra
Date: Mon Oct 09 2023 - 09:10:15 EST


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.

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 (v10) and
post them after this series is merged.

Signed-off-by: Jai Luthra <j-luthra@xxxxxx>
---

Changes in v10:
===============

Range-diff: https://gist.github.com/jailuthra/dab73c3949a6271cf3d0fd3d3b111c5b

For [05/13] media: cadence: csi2rx: Add get_fmt and set_fmt pad ops
- Remove redundant checks in set_fmt() as we ensure pad is SINK

For [13/13] media: ti: Add CSI2RX support for J721E
- Fix bug around YUV422 pixel ordering in setup_shim(). Now we
passthrough the incoming order of pixels over MIPI (U->Y->V->Y etc.)
when storing in memory
- Only allocate 32KiB of memory for the drain buffer, which is the upper
bound of the PSI-L endpoint's internal FIFO storage (2048 x 128-bits)
- Allocate drain buffer in probe() instead of start_streaming()
- Set other colorspace/encoding properties in the initial device format
- Make the module compilable with COMPILE_TEST if Cadence dependencies
are missing
- Address Laurent's review comments around naming and other minor
comments
- Address Tomi's comments around better explaining the scenarios where
DMA drain is required
- Change module/patch authorship to myself
- Link to v9: https://lore.kernel.org/r/20230811-upstream_csi-v9-0-8943f7a68a81@xxxxxx

---
Jai Luthra (2):
media: dt-bindings: cadence-csi2rx: Add TI compatible string
media: ti: Add CSI2RX support for J721E

Pratyush Yadav (11):
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

.../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 | 176 ++-
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 | 1159 ++++++++++++++++++++
9 files changed, 1452 insertions(+), 7 deletions(-)
---
base-commit: 2a860505b617cf8fda4ebff6cf05d3f774145440
change-id: 20230727-upstream_csi-acbeabe038d8

Best regards,
--
Jai Luthra <j-luthra@xxxxxx>