aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/dma/edma.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/dma/edma.c')
-rw-r--r--drivers/dma/edma.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/dma/edma.c b/drivers/dma/edma.c
index 04070baab78a..8181ed131386 100644
--- a/drivers/dma/edma.c
+++ b/drivers/dma/edma.c
@@ -1537,8 +1537,17 @@ static irqreturn_t dma_ccerr_handler(int irq, void *data)
1537 1537
1538 dev_vdbg(ecc->dev, "dma_ccerr_handler\n"); 1538 dev_vdbg(ecc->dev, "dma_ccerr_handler\n");
1539 1539
1540 if (!edma_error_pending(ecc)) 1540 if (!edma_error_pending(ecc)) {
1541 /*
1542 * The registers indicate no pending error event but the irq
1543 * handler has been called.
1544 * Ask eDMA to re-evaluate the error registers.
1545 */
1546 dev_err(ecc->dev, "%s: Error interrupt without error event!\n",
1547 __func__);
1548 edma_write(ecc, EDMA_EEVAL, 1);
1541 return IRQ_NONE; 1549 return IRQ_NONE;
1550 }
1542 1551
1543 while (1) { 1552 while (1) {
1544 /* Event missed register(s) */ 1553 /* Event missed register(s) */