diff options
author | Andy Shevchenko <andriy.shevchenko@linux.intel.com> | 2015-11-17 13:37:07 +0200 |
---|---|---|
committer | Vinod Koul <vinod.koul@intel.com> | 2015-12-05 13:54:28 +0530 |
commit | 37580559f314bfba0c8bdae002bc5c10088ac457 (patch) | |
tree | 8ebcb28d2ee2f5941c866a3eb51d0266f6c77f88 /drivers/dma | |
parent | 8005c49d9aea74d382f474ce11afbbc7d7130bec (diff) | |
download | linux-37580559f314bfba0c8bdae002bc5c10088ac457.tar.gz linux-37580559f314bfba0c8bdae002bc5c10088ac457.tar.bz2 linux-37580559f314bfba0c8bdae002bc5c10088ac457.zip |
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>
Diffstat (limited to 'drivers/dma')
-rw-r--r-- | drivers/dma/idma64.c | 8 |
1 files changed, 0 insertions, 8 deletions
diff --git a/drivers/dma/idma64.c b/drivers/dma/idma64.c index 7d56b47e4fcf..6bba0907c263 100644 --- a/drivers/dma/idma64.c +++ b/drivers/dma/idma64.c @@ -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; } |