Commit 16ed0ef3 authored by Michael Tretter's avatar Michael Tretter Committed by Vinod Koul

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: default avatarMichael Tretter <m.tretter@pengutronix.de>
Link: https://lore.kernel.org/r/20210826094742.1302009-6-m.tretter@pengutronix.deSigned-off-by: default avatarVinod Koul <vkoul@kernel.org>
parent 85997fdf
......@@ -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);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment