[Sound-open-firmware] [PATCH] cnl: gp-dma: fix gp-dma dead loop issue
Rander Wang
rander.wang at intel.com
Wed Feb 28 09:52:35 CET 2018
In irq function, two dma would be checked which one is
the interrupted one, so get it after check.
Signed-off-by: Rander Wang <rander.wang at intel.com>
---
src/drivers/dw-dma.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/drivers/dw-dma.c b/src/drivers/dw-dma.c
index be19e12..6fd46e0 100644
--- a/src/drivers/dw-dma.c
+++ b/src/drivers/dw-dma.c
@@ -1034,7 +1034,7 @@ static int dw_dma_probe(struct dma *dma)
static void dw_dma_irq_handler(void *data)
{
struct dma *dma = (struct dma *)data;
- struct dma_pdata *p = dma_get_drvdata(dma);
+ struct dma_pdata *p;
struct dma_sg_elem next;
uint32_t status_tfr = 0;
uint32_t status_block = 0;
@@ -1058,6 +1058,7 @@ static void dw_dma_irq_handler(void *data)
}
tracev_dma("DIr");
+ p = dma_get_drvdata(dma);
/* get the source of our IRQ. */
status_block = dw_read(dma, DW_STATUS_BLOCK);
--
2.14.1
More information about the Sound-open-firmware
mailing list