diff options
author | Paul Cercueil <paul@crapouillou.net> | 2019-05-04 23:37:57 +0200 |
---|---|---|
committer | Vinod Koul <vkoul@kernel.org> | 2019-05-21 09:59:58 +0530 |
commit | 4e4106f5e942bff65548e82fc330d40385c89220 (patch) | |
tree | 13e43675bce30c58d814669b26815f1c83afa9f8 /drivers/dma/fsldma.h | |
parent | a188339ca5a396acc588e5851ed7e19f66b0ebd9 (diff) | |
download | linux-4e4106f5e942bff65548e82fc330d40385c89220.tar.bz2 |
dmaengine: jz4780: Fix transfers being ACKed too soon
When a multi-descriptor DMA transfer is in progress, the "IRQ pending"
flag will apparently be set for that channel as soon as the last
descriptor loads, way before the IRQ actually happens. This behaviour
has been observed on the JZ4725B, but maybe other SoCs are affected.
In the case where another DMA transfer is running into completion on a
separate channel, the IRQ handler would then run the completion handler
for our previous channel even if the transfer didn't actually finish.
Fix this by checking in the completion handler that we're indeed done;
if not the interrupted DMA transfer will simply be resumed.
Signed-off-by: Paul Cercueil <paul@crapouillou.net>
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Diffstat (limited to 'drivers/dma/fsldma.h')
0 files changed, 0 insertions, 0 deletions