summaryrefslogtreecommitdiff
path: root/drivers/dma
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/dma')
-rw-r--r--drivers/dma/imx-sdma.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/dma/imx-sdma.c b/drivers/dma/imx-sdma.c
index 253d68b1d4a2..d16802532111 100644
--- a/drivers/dma/imx-sdma.c
+++ b/drivers/dma/imx-sdma.c
@@ -707,7 +707,7 @@ static void sdma_tasklet(unsigned long data)
unsigned long flags;
spin_lock_irqsave(&sdmac->lock, flags);
- if (sdmac->status != DMA_IN_PROGRESS) {
+ if (sdmac->status != DMA_IN_PROGRESS && sdmac->mode != SDMA_MODE_LOOP) {
spin_unlock_irqrestore(&sdmac->lock, flags);
return;
}
@@ -738,7 +738,7 @@ static irqreturn_t sdma_int_handler(int irq, void *dev_id)
sdma_update_channel_loop(sdmac);
spin_lock_irqsave(&sdmac->lock, flags);
- if (sdmac->status == DMA_IN_PROGRESS)
+ if (sdmac->status == DMA_IN_PROGRESS || sdmac->mode == SDMA_MODE_LOOP)
tasklet_schedule(&sdmac->tasklet);
spin_unlock_irqrestore(&sdmac->lock, flags);