dmaengine: idma64: drop IRQ enable / disable in handler
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Tue, 17 Nov 2015 11:37:07 +0000 (13:37 +0200)
committerVinod Koul <vinod.koul@intel.com>
Sat, 5 Dec 2015 08:24:28 +0000 (13:54 +0530)
There is no need to disable interrupts in the IRQ handler. The driver
guarantess that at one time only one descriptor is active, besides the fact
that each call to the same channel will be serialized in idma64_chan_irq()
handler anyway.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
drivers/dma/idma64.c

index 7d56b47e4fcfd8e5774d31d5dc5f3bf7bc3a4bcf..6bba0907c263fc695445991dc4f6b1a035de9879 100644 (file)
@@ -178,20 +178,12 @@ static irqreturn_t idma64_irq(int irq, void *dev)
        if (!status)
                return IRQ_NONE;
 
-       /* Disable interrupts */
-       channel_clear_bit(idma64, MASK(XFER), idma64->all_chan_mask);
-       channel_clear_bit(idma64, MASK(ERROR), idma64->all_chan_mask);
-
        status_xfer = dma_readl(idma64, RAW(XFER));
        status_err = dma_readl(idma64, RAW(ERROR));
 
        for (i = 0; i < idma64->dma.chancnt; i++)
                idma64_chan_irq(idma64, i, status_err, status_xfer);
 
-       /* Re-enable interrupts */
-       channel_set_bit(idma64, MASK(XFER), idma64->all_chan_mask);
-       channel_set_bit(idma64, MASK(ERROR), idma64->all_chan_mask);
-
        return IRQ_HANDLED;
 }