dmaengine: ste_dma40: do not remove descriptors for cyclic transfers
authorFabio Baltieri <fabio.baltieri@linaro.org>
Thu, 14 Feb 2013 09:03:10 +0000 (10:03 +0100)
committerVinod Koul <vinod.koul@intel.com>
Thu, 14 Feb 2013 14:24:31 +0000 (19:54 +0530)
Fix dma_tc_handle() to call d40_desc_remove() and d40_desc_done() only
for non-cyclic transfers, as this was breaking ux500_pcm since
introduced in:

d49278e dmaengine: dma40: Add support to split up large elements

Reported-by: Shreshtha Kumar Sahu <shreshthakumar.sahu@stericsson.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Fabio Baltieri <fabio.baltieri@linaro.org>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
drivers/dma/ste_dma40.c

index ad860a221c33355287d69ef88798653602b1bbee..1734feec47b13bd7e7d1370003035416cb2e3e70 100644 (file)
@@ -1570,10 +1570,10 @@ static void dma_tc_handle(struct d40_chan *d40c)
                        d40c->busy = false;
                pm_runtime_mark_last_busy(d40c->base->dev);
                pm_runtime_put_autosuspend(d40c->base->dev);
-       }
 
-       d40_desc_remove(d40d);
-       d40_desc_done(d40c, d40d);
+               d40_desc_remove(d40d);
+               d40_desc_done(d40c, d40d);
+       }
 
        d40c->pending_tx++;
        tasklet_schedule(&d40c->tasklet);