mirror of
https://github.com/torvalds/linux.git
synced 2024-11-23 12:42:02 +00:00
dmaengine: idma64: drop IRQ enable / disable in handler
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>
This commit is contained in:
parent
8005c49d9a
commit
37580559f3
@ -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;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user