瀏覽代碼

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>
Andy Shevchenko 9 年之前
父節點
當前提交
37580559f3
共有 1 個文件被更改,包括 0 次插入8 次删除
  1. 0 8
      drivers/dma/idma64.c

+ 0 - 8
drivers/dma/idma64.c

@@ -178,20 +178,12 @@ static irqreturn_t idma64_irq(int irq, void *dev)
 	if (!status)
 	if (!status)
 		return IRQ_NONE;
 		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_xfer = dma_readl(idma64, RAW(XFER));
 	status_err = dma_readl(idma64, RAW(ERROR));
 	status_err = dma_readl(idma64, RAW(ERROR));
 
 
 	for (i = 0; i < idma64->dma.chancnt; i++)
 	for (i = 0; i < idma64->dma.chancnt; i++)
 		idma64_chan_irq(idma64, i, status_err, status_xfer);
 		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;
 	return IRQ_HANDLED;
 }
 }