]> git.baikalelectronics.ru Git - kernel.git/commit
dmaengine: imx-sdma: remove BD_INTR for channel0
authorRobin Gong <yibin.gong@nxp.com>
Fri, 21 Jun 2019 08:23:06 +0000 (16:23 +0800)
committerVinod Koul <vkoul@kernel.org>
Fri, 5 Jul 2019 07:45:37 +0000 (13:15 +0530)
commit5af4be0838913a904cb640207af2aeb953b91824
treeee2d983526825640a9fb6485a6116516b11f5e09
parent9218d6a90e36678dd698f28d7971a8752cfd1af9
dmaengine: imx-sdma: remove BD_INTR for channel0

It is possible for an irq triggered by channel0 to be received later
after clks are disabled once firmware loaded during sdma probe. If
that happens then clearing them by writing to SDMA_H_INTR won't work
and the kernel will hang processing infinite interrupts. Actually,
don't need interrupt triggered on channel0 since it's pollling
SDMA_H_STATSTOP to know channel0 done rather than interrupt in
current code, just clear BD_INTR to disable channel0 interrupt to
avoid the above case.
This issue was brought by commit 2fc83ad0d052 ("dmaengine: imx-sdma:
ack channel 0 IRQ in the interrupt handler") which didn't take care
the above case.

Fixes: 2fc83ad0d052 ("dmaengine: imx-sdma: ack channel 0 IRQ in the interrupt handler")
Cc: stable@vger.kernel.org #5.0+
Signed-off-by: Robin Gong <yibin.gong@nxp.com>
Reported-by: Sven Van Asbroeck <thesven73@gmail.com>
Tested-by: Sven Van Asbroeck <thesven73@gmail.com>
Reviewed-by: Michael Olbrich <m.olbrich@pengutronix.de>
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/dma/imx-sdma.c