Commit d41160524d8d8ee721296e5c7e15f1ed727df7eb

Authored by Vinod Koul
1 parent eab2158558

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;