[PATCH V3 0/4] dmaengine: xilinx_dma: MCDMA descriptor and metadata handling improvements
From: Srinivas Neeli
Date: Wed Jul 08 2026 - 06:09:36 EST
This series improves the Xilinx AXI DMA and MCDMA driver's descriptor
handling and metadata reporting. It fixes direction-specific descriptor
field usage, ensures completion is based on the hardware completion bit
(important with interrupt coalescing), and extends metadata handling to
expose status and sideband fields alongside APP fields.
The axienet driver is updated to derive RX frame length from the standard
dmaengine residue mechanism rather than descriptor APP fields, making it
work on designs where the AXI4-Stream status/control interface is not
present.
Changes in V3:
- Patch 1: Renamed subject, added static_assert for descriptor size,
refactored residue calculation for clarity.
- Patch 2: Added Fixes tag, expanded commit message explaining interrupt
coalescing scenario, simplified completion check logic.
- Patch 3: New patch - axienet now uses result->residue for RX length
instead of APP metadata, removing dependency on status/control stream.
- Patch 4: Complete rewrite - metadata pointer now starts at status field
(index 0) exposing status/sideband to clients; uses EOF descriptor;
removed 'chan' field from descriptor struct.
- Dropped V2 patches 4/5 (dt-bindings) and 5/5 (xferred_bytes) as the
approach changed to use standard residue mechanism.
Changes in V2:
- Rebased on the AXI DMA binding YAML conversion.
- Added xlnx,include-stscntrl-strm in the YAML binding.
- Clarified cover letter to reflect metadata behavior with and without
APP fields.
https://lore.kernel.org/all/20260309033444.3472359-1-abin.joseph@xxxxxxx/
Srinivas Neeli (3):
dmaengine: xilinx_dma: Fix MCDMA descriptor fields based on DMA
direction
dmaengine: xilinx_dma: Move descriptors to done list based on
completion bit
net: xilinx: axienet: Derive RX frame length from DMA residue
Suraj Gupta (1):
dmaengine: xilinx_dma: Extend metadata handling for AXI DMA and MCDMA
drivers/dma/xilinx/xilinx_dma.c | 85 ++++++++++++++++---
.../net/ethernet/xilinx/xilinx_axienet_main.c | 14 ++-
2 files changed, 76 insertions(+), 23 deletions(-)
--
2.25.1