Commit d41160524d8d8ee721296e5c7e15f1ed727df7eb
1 parent
eab2158558
Exists in
smarc-l5.0.0_1.0.0-ga
and in
5 other branches
dmaengine: fix cyclic dma usage
for cyclic dma, dont makr the descriptor as complte. Fix the remaining users of cyclic dma which do so Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com> Tested-by: Nicolas Ferre <nicolas.ferre@atmel.com> Acked-by: Nicolas Ferre <nicolas.ferre@atmel.com> Tested-by: Mika Westerberg <mika.westerberg@iki.fi>
Showing 2 changed files with 6 additions and 2 deletions Side-by-side Diff
drivers/dma/at_hdmac.c
... | ... | @@ -245,7 +245,9 @@ |
245 | 245 | dev_vdbg(chan2dev(&atchan->chan_common), |
246 | 246 | "descriptor %u complete\n", txd->cookie); |
247 | 247 | |
248 | - dma_cookie_complete(txd); | |
248 | + /* mark the descriptor as complete for non cyclic cases only */ | |
249 | + if (!atc_chan_is_cyclic(atchan)) | |
250 | + dma_cookie_complete(txd); | |
249 | 251 | |
250 | 252 | /* move children to free_list */ |
251 | 253 | list_splice_init(&desc->tx_list, &atchan->free_list); |
drivers/dma/ep93xx_dma.c
... | ... | @@ -703,7 +703,9 @@ |
703 | 703 | desc = ep93xx_dma_get_active(edmac); |
704 | 704 | if (desc) { |
705 | 705 | if (desc->complete) { |
706 | - dma_cookie_complete(&desc->txd); | |
706 | + /* mark descriptor complete for non cyclic case only */ | |
707 | + if (!test_bit(EP93XX_DMA_IS_CYCLIC, &edmac->flags)) | |
708 | + dma_cookie_complete(&desc->txd); | |
707 | 709 | list_splice_init(&edmac->active, &list); |
708 | 710 | } |
709 | 711 | callback = desc->txd.callback; |