mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH v5 0/4] dmaengine: zynqmp_dma: Add reset support for Versal Gen2 and Versal Net
@ 2026-11-06 10:10 Golla Nagendra
  2026-11-06 10:10 ` [PATCH v5 1/4] dt-bindings: dma: xlnx,zynqmp-dma: Require resets for Versal Gen2 Golla Nagendra
                   ` (3 more replies)
  0 siblings, 4 replies; 9+ messages in thread
From: Golla Nagendra @ 2026-11-06 10:10 UTC (permalink / raw)
  To: Vinod Koul, Frank Li, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Michal Simek, Michael Tretter, Harini Katakam,
	Shyam Pandey, Abin Joseph
  Cc: Krzysztof Kozlowski, dmaengine, devicetree, linux-arm-kernel,
	linux-kernel, git, Golla Nagendra

This series adds per-channel reset support for Versal Gen2 and Versal Net
DMA channels.
 
Patch 1 requires the resets property for Versal Gen2 DMA devices.
 
Patch 2 adds the amd,versal-net-dma-1.0 compatible with
xlnx,zynqmp-dma-1.0 as its fallback and requires the resets property for
Versal Net devices.
 
Patch 3 adds the Versal Net compatible to the driver match table and
introduces match data to identify devices that support per-channel reset.
 
Patch 4 resets each Versal Gen2 and Versal Net DMA channel during probe.
Probe fails if the required reset property is missing or the reset fails.
Legacy SoCs skip the per-channel reset path.
 
Changes in V5:
- Drop the probe-time PM and unrelated IRQ-guard patches; retain only the
  patches required for reset support
- Split the Versal Gen2 reset requirement and Versal Net compatible into
  separate binding patches
 
Changes in V4:
- Patch 1: Use PM_RUNTIME_ACQUIRE_AUTOSUSPEND() instead of
  pm_runtime_resume_and_get(), and fail probe immediately if the guard
  acquire fails. Add zynqmp_dma_probe_pm_put()/_fail()
  helpers so every error path releases the reference and gates the
  clocks without goto-based cleanup, and pair every direct
  zynqmp_dma_runtime_suspend() call with pm_runtime_set_suspended() to
  keep the runtime PM status in sync with the clocks
- Patch 2: Bypass the guard when pm_runtime_get_if_active() returns
  -EINVAL, covering disabled runtime PM and CONFIG_PM=n, so interrupt
  handlers keep servicing interrupts instead of bailing out
- Patch 3: Remove the IS_ENABLED(CONFIG_PM) condition from the guard
  error check, since patch 2 already handles disabled runtime PM and
  CONFIG_PM=n inside the guard itself
- Patch 4: Move the allOf block under the required field
  Add the new compatible string and the resets property in the example
- Patch 5: No change
- Patch 6: No change
 
Changes in V3:
- Patch 1: New patch - split PM usage count fix into a separate patch as
- Patch 2: New patch - add PM_RUNTIME_ACQUIRE_IF_ACTIVE() guard and its
  backing infrastructure to pm_runtime.h
- Patch 3: Use PM_RUNTIME_ACQUIRE_IF_ACTIVE() guard instead of the manual
  pm_runtime_get_if_active()/pm_runtime_put() pair from V2
- Patch 4: Use allOf:if:then: to restrict the resets property per-
  compatible with resets: false for non-matching platforms
  also expand to include amd,versal-net-dma-1.0
- Patch 5: New patch - add amd,versal-net-dma-1.0 compatible to driver
- Patch 6: Introduce has_reset flag in zynqmp_dma_config to gate the
  reset path; PM usage count fix split into patch 1/6

Link to V4:
-----------
https://lore.kernel.org/all/20261009-adma-pm-fix-and-per-channel-reset-v4-0-55f5fe409c55@amd.com/

Signed-off-by: Golla Nagendra <nagendra.golla@amd.com>
---
Golla Nagendra (4):
      dt-bindings: dma: xlnx,zynqmp-dma: Require resets for Versal Gen2
      dt-bindings: dma: xlnx,zynqmp-dma: Add Versal Net compatible
      dmaengine: zynqmp_dma: Add new compatible string for Versal Net
      dmaengine: zynqmp_dma: Add per-channel reset support

 .../bindings/dma/xilinx/xlnx,zynqmp-dma-1.0.yaml   | 35 +++++++++++++++++-----
 drivers/dma/xilinx/zynqmp_dma.c                    | 18 ++++++++++-
 2 files changed, 45 insertions(+), 8 deletions(-)
---
base-commit: 2576c937f7b442df7de8e39332ff585f08b666b8
change-id: 20261106-adma_per_channel_reset_v5-f826adb1314b

Best regards,
-- 
Golla Nagendra <nagendra.golla@amd.com>


^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2026-11-06 14:28 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-11-06 10:10 [PATCH v5 0/4] dmaengine: zynqmp_dma: Add reset support for Versal Gen2 and Versal Net Golla Nagendra
2026-11-06 10:10 ` [PATCH v5 1/4] dt-bindings: dma: xlnx,zynqmp-dma: Require resets for Versal Gen2 Golla Nagendra
2026-11-06 14:28   ` Rob Herring (Arm)
2026-11-06 10:10 ` [PATCH v5 2/4] dt-bindings: dma: xlnx,zynqmp-dma: Add Versal Net compatible Golla Nagendra
2026-11-06 14:27   ` Rob Herring (Arm)
2026-11-06 10:10 ` [PATCH v5 3/4] dmaengine: zynqmp_dma: Add new compatible string for Versal Net Golla Nagendra
2026-11-06 11:10   ` Pandey, Radhey Shyam
2026-11-06 10:10 ` [PATCH v5 4/4] dmaengine: zynqmp_dma: Add per-channel reset support Golla Nagendra
2026-11-06 11:11   ` Pandey, Radhey Shyam

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®