]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
dmaengine: sprd: Set cur_desc as NULL when free or terminate one dma channel
authorEric Long <eric.long@spreadtrum.com>
Tue, 6 Nov 2018 05:01:34 +0000 (13:01 +0800)
committerVinod Koul <vkoul@kernel.org>
Wed, 5 Dec 2018 08:57:12 +0000 (14:27 +0530)
It will be failed to start one new transfer if the channel started one
none interrupt transfer before, since we will only set the schan->cur_desc
as NULL depending on the transfer interrupt now. Thus we should set
schan->cur_desc as NULL when free or terminate one dma channel to
avoid this issue.

Signed-off-by: Eric Long <eric.long@spreadtrum.com>
Signed-off-by: Baolin Wang <baolin.wang@linaro.org>
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/dma/sprd-dma.c

index e6a74dc7da958d116ff12c8ffc3b6d1c9eef2fc9..1b39661cd17b7d090daffca0e342581163271326 100644 (file)
@@ -439,6 +439,7 @@ static void sprd_dma_stop(struct sprd_dma_chn *schan)
        sprd_dma_stop_and_disable(schan);
        sprd_dma_unset_uid(schan);
        sprd_dma_clear_int(schan);
+       schan->cur_desc = NULL;
 }
 
 static bool sprd_dma_check_trans_done(struct sprd_dma_desc *sdesc,