[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20231208134838.49500-1-jankul@alatek.krakow.pl>
Date: Fri, 8 Dec 2023 14:48:38 +0100
From: Jan Kuliga <jankul@...tek.krakow.pl>
To: lizhi.hou@....com, brian.xu@....com, raj.kumar.rampelli@....com,
vkoul@...nel.org, michal.simek@....com, dmaengine@...r.kernel.org,
linux-kernel@...r.kernel.org, miquel.raynal@...tlin.com
Cc: jankul@...tek.krakow.pl
Subject: [PATCH v4 0/8] Miscellaneous xdma driver enhancements
Hi,
This patchset introduces a couple of xdma driver enhancements. The most
important change is the introduction of interleaved DMA transfers
feature, which is a big deal, as it allows DMAEngine clients to express
DMA transfers in an arbitrary way. This is extremely useful in FPGA
environments, where in one FPGA system there may be a need to do DMA both
to/from FIFO at a fixed address and to/from a (non)contiguous RAM.
It is a another reroll of my previous patch series [1], but it is heavily
modified one as it is based on Miquel's patchset [2]. We agreed on doing
it that way, as both our patchsets touched the very same piece of code.
The discussion took place under [2] thread.
I tested it with XDMA v4.1 (Rev.20) IP core, with both sg and
interleaved DMA transfers.
Jan
Changes since v1:
[PATCH 1/5]:
Complete a terminated descriptor with dma_cookie_complete()
Don't reinitialize temporary list head in xdma_terminate_all()
[PATCH 4/5]:
Fix incorrect text wrapping
Changes since v2:
[PATCH 1/5]:
DO NOT schedule callback from within xdma_terminate_all()
Changes since v3:
Base patchset on Miquel's [2] series
Reorganize commits` structure
Introduce interleaved DMA transfers feature
Implement transfer error reporting
[1]:
https://lore.kernel.org/dmaengine/20231124192524.134989-1-jankul@alatek.krakow.pl/T/#t
[2]:
https://lore.kernel.org/dmaengine/20231130111315.729430-1-miquel.raynal@bootlin.com/T/#t
---
Jan Kuliga (8):
dmaengine: xilinx: xdma: Get rid of unused code
dmaengine: xilinx: xdma: Add necessary macro definitions
dmaengine: xilinx: xdma: Ease dma_pool alignment requirements
dmaengine: xilinx: xdma: Rework xdma_terminate_all()
dmaengine: xilinx: xdma: Add error checking in xdma_channel_isr()
dmaengine: xilinx: xdma: Add transfer error reporting
dmaengine: xilinx: xdma: Prepare the introduction of interleaved DMA
transfers
dmaengine: xilinx: xdma: Introduce interleaved DMA transfers
drivers/dma/xilinx/xdma-regs.h | 30 ++--
drivers/dma/xilinx/xdma.c | 285 ++++++++++++++++++++++-----------
2 files changed, 210 insertions(+), 105 deletions(-)
--
2.34.1
Powered by blists - more mailing lists