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 ee3463e774f8..694c44e487ed 100644
--- a/drivers/dma/edma.c
+++ b/drivers/dma/edma.c
@@ -1518,8 +1518,17 @@ static irqreturn_t dma_ccerr_handler(int irq, void *data)
1518 1518
1519 dev_vdbg(ecc->dev, "dma_ccerr_handler\n"); 1519 dev_vdbg(ecc->dev, "dma_ccerr_handler\n");
1520 1520
1521 if (!edma_error_pending(ecc)) 1521 if (!edma_error_pending(ecc)) {
1522 /*
1523 * The registers indicate no pending error event but the irq
1524 * handler has been called.
1525 * Ask eDMA to re-evaluate the error registers.
1526 */
1527 dev_err(ecc->dev, "%s: Error interrupt without error event!\n",
1528 __func__);
1529 edma_write(ecc, EDMA_EEVAL, 1);
1522 return IRQ_NONE; 1530 return IRQ_NONE;
1531 }
1523 1532
1524 while (1) { 1533 while (1) {
1525 /* Event missed register(s) */ 1534 /* Event missed register(s) */