summaryrefslogtreecommitdiffstats
path: root/drivers/dma
diff options
context:
space:
mode:
authorVinod Koul <vinod.koul@linux.intel.com>2012-05-11 07:54:41 +0200
committerVinod Koul <vinod.koul@linux.intel.com>2012-05-11 07:54:41 +0200
commiteab21585580344c8533d5e7bc4edea27ad1e268f (patch)
tree2000d5cd6f0ba08c7b6868cff3ac5ab23007524f /drivers/dma
parentdmaengine/amba-pl08x : reset phychan_hold on terminate all (diff)
downloadlinux-eab21585580344c8533d5e7bc4edea27ad1e268f.tar.xz
linux-eab21585580344c8533d5e7bc4edea27ad1e268f.zip
dmaengine: pl330: dont complete descriptor for cyclic dma
the cookie updates completed the cyclic dma descriptor wrongly. This caused the BUG_ON to be hit as submit is called for completed descriptor Fix this by not marking the cyclic descriptor as complete Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com> Tested-by: Thomas Abraham <thomas.abraham@linaro.org>
Diffstat (limited to 'drivers/dma')
-rw-r--r--drivers/dma/pl330.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/dma/pl330.c b/drivers/dma/pl330.c
index 2ee6e23930ad..fa3fb21e60be 100644
--- a/drivers/dma/pl330.c
+++ b/drivers/dma/pl330.c
@@ -2322,7 +2322,8 @@ static void pl330_tasklet(unsigned long data)
/* Pick up ripe tomatoes */
list_for_each_entry_safe(desc, _dt, &pch->work_list, node)
if (desc->status == DONE) {
- dma_cookie_complete(&desc->txd);
+ if (pch->cyclic)
+ dma_cookie_complete(&desc->txd);
list_move_tail(&desc->node, &list);
}