diff options
author | Vinod Koul <vinod.koul@linux.intel.com> | 2012-05-11 07:54:41 +0200 |
---|---|---|
committer | Vinod Koul <vinod.koul@linux.intel.com> | 2012-05-11 07:54:41 +0200 |
commit | eab21585580344c8533d5e7bc4edea27ad1e268f (patch) | |
tree | 2000d5cd6f0ba08c7b6868cff3ac5ab23007524f /drivers/dma | |
parent | dmaengine/amba-pl08x : reset phychan_hold on terminate all (diff) | |
download | linux-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.c | 3 |
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); } |