[Sound-open-firmware] [PATCH] cnl: dma: fix playback failed at second time

Rander Wang rander.wang at intel.com
Fri Mar 2 06:29:51 CET 2018


Stop dma when stream is end, or next time dma
is not avilable to playback

Signed-off-by: Rander Wang <rander.wang at intel.com>
---
 src/drivers/dw-dma.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/drivers/dw-dma.c b/src/drivers/dw-dma.c
index be19e12..15d608c 100644
--- a/src/drivers/dw-dma.c
+++ b/src/drivers/dw-dma.c
@@ -1103,6 +1103,12 @@ static void dw_dma_irq_handler(void *data)
 			p->chan[i].cb(p->chan[i].cb_data,
 					DMA_IRQ_TYPE_BLOCK, &next);
 		}
+
+		if (next.size == DMA_RELOAD_END) {
+			trace_dma("LSo");
+			/* disable channel, finished */
+			dw_write(dma, DW_DMA_CHAN_EN, CHAN_DISABLE(i));
+		}
 #endif
 		/* end of a transfer */
 		if ((status_tfr & mask) &&
-- 
2.14.1



More information about the Sound-open-firmware mailing list