]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/dma/dw/core.c
Merge tag 'dmaengine-fix-4.5-rc1' of git://git.infradead.org/users/vkoul/slave-dma
[karo-tx-linux.git] / drivers / dma / dw / core.c
index b926627224046a807d3c64f2825577e5adcf81d2..e893318560db9f79300579ff01e73b07b5baae38 100644 (file)
@@ -629,12 +629,17 @@ static void dw_dma_tasklet(unsigned long data)
 static irqreturn_t dw_dma_interrupt(int irq, void *dev_id)
 {
        struct dw_dma *dw = dev_id;
-       u32 status = dma_readl(dw, STATUS_INT);
+       u32 status;
 
+       /* Check if we have any interrupt from the DMAC which is not in use */
+       if (!dw->in_use)
+               return IRQ_NONE;
+
+       status = dma_readl(dw, STATUS_INT);
        dev_vdbg(dw->dma.dev, "%s: status=0x%x\n", __func__, status);
 
        /* Check if we have any interrupt from the DMAC */
-       if (!status || !dw->in_use)
+       if (!status)
                return IRQ_NONE;
 
        /*