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

From: Jai Luthra
Date: Fri Aug 11 2023 - 06:48:54 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.

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>