20 Sep
2017
20 Sep
'17
3:58 p.m.
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@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