[Sound-open-firmware] [PATCH] dma: dw-dma: check DMA IRQs are cleared correctly

Liam Girdwood liam.r.girdwood at linux.intel.com
Wed Sep 20 15:58:07 CEST 2017


Reread the DMA IRQ status after clearing the IRQ source to make sure
that the IRQ has been cleared correctly.

Signed-off-by: Liam Girdwood <liam.r.girdwood at linux.intel.com>
---
 src/drivers/dw-dma.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/src/drivers/dw-dma.c b/src/drivers/dw-dma.c
index 1395ecc..7c6cd86 100644
--- a/src/drivers/dw-dma.c
+++ b/src/drivers/dw-dma.c
@@ -709,6 +709,11 @@ static void dw_dma_irq_handler(void *data)
 	pmask = status_block | status_tfr | status_err;
 	platform_interrupt_clear(dma_irq(dma), pmask);
 
+	/* confirm IRQ cleared */
+	if (dw_read(dma, DW_STATUS_BLOCK)) {
+		trace_dma_error("eii");
+	}
+
 	for (i = 0; i < DW_MAX_CHAN; i++) {
 
 		/* skip if channel is not running */
-- 
2.11.0



More information about the Sound-open-firmware mailing list