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

Message ID 20231009-upstream_csi-v10-0-330aaed24c5d@ti.com
Headers
Series CSI2RX support on J721E and AM62 |

Message

Jai Luthra Oct. 9, 2023, 1:09 p.m. UTC
  From: Pratyush Yadav <p.yadav@ti.com>

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@ti.com>
---

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@ti.com

---
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,