Skip to content

Commit 9140ce4

Browse files
andy-shevvinodkoul
authored andcommitted
idma64: Don't try to serve interrupts when device is powered off
When iDMA 64-bit device is powered off, the IRQ status register is all 1:s. This is never happen in real case and signalling that the device is simply powered off. Don't try to serve interrupts that are not ours. Fixes: 667dfed ("dmaengine: add a driver for Intel integrated DMA 64-bit") Reported-by: Heiner Kallweit <[email protected]> Closes: https://lore.kernel.org/r/[email protected] Tested-by: Heiner Kallweit <[email protected]> Signed-off-by: Andy Shevchenko <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Vinod Koul <[email protected]>
1 parent 30f0ced commit 9140ce4

File tree

1 file changed

+4
-0
lines changed

1 file changed

+4
-0
lines changed

drivers/dma/idma64.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,10 @@ static irqreturn_t idma64_irq(int irq, void *dev)
171171
u32 status_err;
172172
unsigned short i;
173173

174+
/* Since IRQ may be shared, check if DMA controller is powered on */
175+
if (status == GENMASK(31, 0))
176+
return IRQ_NONE;
177+
174178
dev_vdbg(idma64->dma.dev, "%s: status=%#x\n", __func__, status);
175179

176180
/* Check if we have any interrupt from the DMA controller */

0 commit comments

Comments
 (0)