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>
This commit is contained in:
parent
eab2158558
commit
d41160524d
|
@ -245,7 +245,9 @@ atc_chain_complete(struct at_dma_chan *atchan, struct at_desc *desc)
|
||||||
dev_vdbg(chan2dev(&atchan->chan_common),
|
dev_vdbg(chan2dev(&atchan->chan_common),
|
||||||
"descriptor %u complete\n", txd->cookie);
|
"descriptor %u complete\n", txd->cookie);
|
||||||
|
|
||||||
dma_cookie_complete(txd);
|
/* mark the descriptor as complete for non cyclic cases only */
|
||||||
|
if (!atc_chan_is_cyclic(atchan))
|
||||||
|
dma_cookie_complete(txd);
|
||||||
|
|
||||||
/* move children to free_list */
|
/* move children to free_list */
|
||||||
list_splice_init(&desc->tx_list, &atchan->free_list);
|
list_splice_init(&desc->tx_list, &atchan->free_list);
|
||||||
|
|
|
@ -703,7 +703,9 @@ static void ep93xx_dma_tasklet(unsigned long data)
|
||||||
desc = ep93xx_dma_get_active(edmac);
|
desc = ep93xx_dma_get_active(edmac);
|
||||||
if (desc) {
|
if (desc) {
|
||||||
if (desc->complete) {
|
if (desc->complete) {
|
||||||
dma_cookie_complete(&desc->txd);
|
/* mark descriptor complete for non cyclic case only */
|
||||||
|
if (!test_bit(EP93XX_DMA_IS_CYCLIC, &edmac->flags))
|
||||||
|
dma_cookie_complete(&desc->txd);
|
||||||
list_splice_init(&edmac->active, &list);
|
list_splice_init(&edmac->active, &list);
|
||||||
}
|
}
|
||||||
callback = desc->txd.callback;
|
callback = desc->txd.callback;
|
||||||
|
|
Loading…
Reference in New Issue