mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-15 08:14:15 +08:00
dmaengine: zynqmp_dma: cleanup after completing all descriptors
The current implementation iterates the entire done list for each completed dma descriptor even if there are multiple completed descriptors. Avoid this by first moving all completed descriptors to the done list and afterwards iterating the done list and finishing the descriptors. Signed-off-by: Michael Tretter <m.tretter@pengutronix.de> Link: https://lore.kernel.org/r/20210826094742.1302009-6-m.tretter@pengutronix.de Signed-off-by: Vinod Koul <vkoul@kernel.org>
This commit is contained in:
parent
85997fdfd1
commit
16ed0ef3e9
@ -758,10 +758,11 @@ static void zynqmp_dma_do_tasklet(struct tasklet_struct *t)
|
||||
|
||||
while (count) {
|
||||
zynqmp_dma_complete_descriptor(chan);
|
||||
zynqmp_dma_chan_desc_cleanup(chan);
|
||||
count--;
|
||||
}
|
||||
|
||||
zynqmp_dma_chan_desc_cleanup(chan);
|
||||
|
||||
if (chan->idle)
|
||||
zynqmp_dma_start_transfer(chan);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user