This patch week depend on the below serise.
https://lore.kernel.org/imx/[email protected]/
Basic change
struct dw_edma_desc *desc
└─ chunk list
└─ burst list
To
struct dw_edma_desc *desc
└─ burst[n]
And reduce at least 2 times kzalloc() for each dma descriptor create.
I only test eDMA part, not hardware test hdma part.
The finial goal is dymatic add DMA request when DMA running. So needn't
wait for irq for fetch next round DMA request.
This work is neccesary to for dymatic DMA request appending.
The post this part first to review and test firstly during working dymatic
DMA part.
To: Manivannan Sadhasivam <[email protected]>
To: Vinod Koul <[email protected]>
To: Gustavo Pimentel <[email protected]>
To: Kees Cook <[email protected]>
To: Gustavo A. R. Silva <[email protected]>
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
To: Manivannan Sadhasivam <[email protected]>
To: Krzysztof Wilczyński <[email protected]>
To: Kishon Vijay Abraham I <[email protected]>
To: Bjorn Helgaas <[email protected]>
To: Christoph Hellwig <[email protected]>
To: Niklas Cassel <[email protected]>
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Signed-off-by: Frank Li <[email protected]>
---
Frank Li (11):
dmaengine: dw-edma: Add spinlock to protect DONE_INT_MASK and
ABORT_INT_MASK
dmaengine: dw-edma: Move control field update of DMA link to the last step
dmaengine: dw-edma: Add xfer_sz field to struct dw_edma_chunk
dmaengine: dw-edma: Remove ll_max = -1 in dw_edma_channel_setup()
dmaengine: dw-edma: Move ll_region from struct dw_edma_chunk to struct
dw_edma_chan
dmaengine: dw-edma: Pass down dw_edma_chan to reduce one level of
indirection
dmaengine: dw-edma: Add helper dw_(edma|hdma)_v0_core_ch_enable()
dmaengine: dw-edma: Add new callback to fill link list entry
dmaengine: dw-edma: Use common dw_edma_core_start() for both edma and hdmi
dmaengine: dw-edma: Use burst array instead of linked list
dmaengine: dw-edma: Remove struct dw_edma_chunk
drivers/dma/dw-edma/dw-edma-core.c | 205 ++++++++---------------------
drivers/dma/dw-edma/dw-edma-core.h | 64 +++++++---
drivers/dma/dw-edma/dw-edma-v0-core.c | 234 +++++++++++++++++-----------------
drivers/dma/dw-edma/dw-hdma-v0-core.c | 147 +++++++++++----------
4 files changed, 294 insertions(+), 356 deletions(-)
---
base-commit: 0f24bd936ac069ca15657b11b6c326ffb0926f3c
change-id: 20251211-edma_ll-0904ba089f01
Best regards,
--
Frank Li <[email protected]>