From: Rishikesh Donadkar <r-donadkar@ti.com>
To: <jai.luthra@linux.dev>, <mripard@kernel.org>
Cc: <linux-kernel@vger.kernel.org>, <linux-media@vger.kernel.org>,
<devicetree@vger.kernel.org>, <r-donadkar@ti.com>,
<devarsht@ti.com>, <y-abhilashchandra@ti.com>,
<mchehab@kernel.org>, <robh@kernel.org>, <krzk+dt@kernel.org>,
<conor+dt@kernel.org>, <vaishnav.a@ti.com>, <s-jain1@ti.com>,
<vigneshr@ti.com>, <sakari.ailus@linux.intel.com>,
<hverkuil-cisco@xs4all.nl>, <tomi.valkeinen@ideasonboard.com>,
<jai.luthra@ideasonboard.com>,
<changhuang.liang@starfivetech.com>, <jack.zhu@starfivetech.com>,
<laurent.pinchart@ideasonboard.com>
Subject: [PATCH v3 00/13] media: cadence,ti: CSI2RX Multistream Support
Date: Thu, 17 Apr 2025 12:25:41 +0530 [thread overview]
Message-ID: <20250417065554.437541-1-r-donadkar@ti.com> (raw)
This series adds multi-stream support for Cadence CSI2RX and TI CSI2RX
Shim drivers.
PATCH 1-6: Support multiple DMA contexts/video nodes in TI CSI2RX
PATCH 7-8: Use get_frame_desc to propagate virtual channel information
across Cadence and TI CSI-RX subdevs
PATCH 9-11: Use new multi-stream APIs across the drivers to support
multiplexed cameras from sources like UB960 (FPDLink)
PATCH 12: Optimize stream on by submitting all queued buffers to DMA
PATCH 13: Change the drain architecture to support multi-stream
Testing for this series has been done on top of media tree with 4x IMX219
camera modules connected to TI's AM62A using V3 Link fusion mini board.
Overlay and defconfig changes for the same can be found below:
https://github.com/RISHI27-dot/linux/commits/u/multistream_v3/
Signed-off-by: Jai Luthra <j-luthra@ti.com>
Signed-off-by: Rishikesh Donadkar <r-donadkar@ti.com>
---
Changes in v3:
- Drop [PATCH v2 01/13] media: cadence: csi2rx: Support runtime PM from
v2, support for runtime PM will be added in a separate series:
https://lore.kernel.org/all/20250224-ti_csi_pm-v1-0-8f8c29ef646d@ideasonboard.com/
- Change the drain architecture to prevent FIFO overflow in multistream
usecases.
- With the new drain architecture, we don't need the the driver to wait
for userspace to start streaming on all "actively routed" video nodes
before starting streaming on the source. So, revert back to the capture
architecture where streams can be started and stopped independent
to each other.
- Link to (v2):
https://lore.kernel.org/r/20240627-multistream-v2-0-6ae96c54c1c3@ti.com
Changes in v2:
- Change the multi-camera capture architecture to be similar to that of
Tomi's RPi5 FE series, where the driver will wait for userspace to
start streaming on all "actively routed" video nodes before starting
streaming on the source. This simplifies things a lot from the HW
perspective, which might run into deadlocks due to a shared FIFO
between multiple DMA channels.
- Drop a few fixes that were posted separately and are already merged
- Fix dtschema warnings reported by Rob on [02/13]
- Fix warnings for uninitialized `used_vc` variable in cdns-csi2rx.c
- Return -EBUSY if someone updates routes for j721e-csi2rx subdev while
streaming
- Only allow single-streams to be routed to the source pads (linked to
video nodes) of the j721e-csi2rx device
- Squash the patches marked "SQUASH" in the v1 RFC series
- Link to RFC (v1):
https://lore.kernel.org/r/20240222-multistream-v1-0-1837ed916eeb@ti.com
Jai Luthra (8):
dt-bindings: media: ti,j721e-csi2rx-shim: Support 32 dma chans
media: ti: j721e-csi2rx: separate out device and context
media: ti: j721e-csi2rx: add a subdev for the core device
media: ti: j721e-csi2rx: add support for processing virtual channels
media: cadence: csi2rx: Use new enable stream APIs
media: cadence: csi2rx: Enable multi-stream support
media: ti: j721e-csi2rx: add multistream support
media: ti: j721e-csi2rx: Submit all available buffers
Pratyush Yadav (4):
media: ti: j721e-csi2rx: prepare SHIM code for multiple contexts
media: ti: j721e-csi2rx: allocate DMA channel based on context index
media: ti: j721e-csi2rx: get number of contexts from device tree
media: cadence: csi2rx: add get_frame_desc wrapper
Rishikesh Donadkar (1):
media: ti: j721e-csi2rx: Change the drain architecture for multistream
.../bindings/media/ti,j721e-csi2rx-shim.yaml | 39 +-
drivers/media/platform/cadence/cdns-csi2rx.c | 384 ++++++--
.../platform/ti/j721e-csi2rx/j721e-csi2rx.c | 913 +++++++++++++-----
3 files changed, 992 insertions(+), 344 deletions(-)
--
2.34.1
next reply other threads:[~2025-04-17 6:56 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-17 6:55 Rishikesh Donadkar [this message]
2025-04-17 6:55 ` [PATCH v3 01/13] dt-bindings: media: ti,j721e-csi2rx-shim: Support 32 dma chans Rishikesh Donadkar
2025-04-21 11:15 ` Laurent Pinchart
2025-04-21 22:26 ` Rob Herring (Arm)
2025-04-17 6:55 ` [PATCH v3 02/13] media: ti: j721e-csi2rx: separate out device and context Rishikesh Donadkar
2025-04-21 11:32 ` Laurent Pinchart
2025-04-30 11:01 ` Rishikesh Donadkar
2025-05-09 8:15 ` Rishikesh Donadkar
2025-04-17 6:55 ` [PATCH v3 03/13] media: ti: j721e-csi2rx: prepare SHIM code for multiple contexts Rishikesh Donadkar
2025-04-21 11:33 ` Laurent Pinchart
2025-04-17 6:55 ` [PATCH v3 04/13] media: ti: j721e-csi2rx: allocate DMA channel based on context index Rishikesh Donadkar
2025-04-21 11:36 ` Laurent Pinchart
2025-04-17 6:55 ` [PATCH v3 05/13] media: ti: j721e-csi2rx: add a subdev for the core device Rishikesh Donadkar
2025-04-21 13:12 ` Laurent Pinchart
2025-05-03 5:54 ` Rishikesh Donadkar
2025-04-17 6:55 ` [PATCH v3 06/13] media: ti: j721e-csi2rx: get number of contexts from device tree Rishikesh Donadkar
2025-04-21 13:20 ` Laurent Pinchart
2025-05-03 5:59 ` Rishikesh Donadkar
2025-04-17 6:55 ` [PATCH v3 07/13] media: cadence: csi2rx: add get_frame_desc wrapper Rishikesh Donadkar
2025-04-21 7:00 ` 回复: " Changhuang Liang
2025-04-21 13:22 ` Laurent Pinchart
2025-04-17 6:55 ` [PATCH v3 08/13] media: ti: j721e-csi2rx: add support for processing virtual channels Rishikesh Donadkar
2025-04-21 13:34 ` Laurent Pinchart
2025-05-05 7:06 ` Rishikesh Donadkar
2025-04-17 6:55 ` [PATCH v3 09/13] media: cadence: csi2rx: Use new enable stream APIs Rishikesh Donadkar
2025-04-21 7:01 ` 回复: " Changhuang Liang
2025-04-21 13:25 ` Laurent Pinchart
2025-04-17 6:55 ` [PATCH v3 10/13] media: cadence: csi2rx: Enable multi-stream support Rishikesh Donadkar
2025-04-21 7:02 ` 回复: " Changhuang Liang
2025-04-21 13:57 ` Laurent Pinchart
2025-05-06 11:06 ` Rishikesh Donadkar
2025-05-09 8:47 ` Laurent Pinchart
2025-04-17 6:55 ` [PATCH v3 11/13] media: ti: j721e-csi2rx: add multistream support Rishikesh Donadkar
2025-04-17 6:55 ` [PATCH v3 12/13] media: ti: j721e-csi2rx: Submit all available buffers Rishikesh Donadkar
2025-04-17 6:55 ` [PATCH v3 13/13] media: ti: j721e-csi2rx: Change the drain architecture for multistream Rishikesh Donadkar
2025-04-25 11:35 ` Jai Luthra
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250417065554.437541-1-r-donadkar@ti.com \
--to=r-donadkar@ti.com \
--cc=changhuang.liang@starfivetech.com \
--cc=conor+dt@kernel.org \
--cc=devarsht@ti.com \
--cc=devicetree@vger.kernel.org \
--cc=hverkuil-cisco@xs4all.nl \
--cc=jack.zhu@starfivetech.com \
--cc=jai.luthra@ideasonboard.com \
--cc=jai.luthra@linux.dev \
--cc=krzk+dt@kernel.org \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=mchehab@kernel.org \
--cc=mripard@kernel.org \
--cc=robh@kernel.org \
--cc=s-jain1@ti.com \
--cc=sakari.ailus@linux.intel.com \
--cc=tomi.valkeinen@ideasonboard.com \
--cc=vaishnav.a@ti.com \
--cc=vigneshr@ti.com \
--cc=y-abhilashchandra@ti.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox