From fdcc31e87b42030ef5919033a38af7df85068147 Mon Sep 17 00:00:00 2001 From: Jassi Brar Date: Thu, 5 Nov 2009 13:44:39 +0900 Subject: [PATCH] --- yaml --- r: 168414 b: refs/heads/master c: 336b1a3181d81db85c0af3d0c18fe0a04b4d5126 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/arch/arm/plat-s3c64xx/dma.c | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index b313e36c6e7b..81bf3f793604 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 9b08284bf22f438baa2d6b68015ff17ddb431a61 +refs/heads/master: 336b1a3181d81db85c0af3d0c18fe0a04b4d5126 diff --git a/trunk/arch/arm/plat-s3c64xx/dma.c b/trunk/arch/arm/plat-s3c64xx/dma.c index 7d12eb8fa58d..d554b936fcfb 100644 --- a/trunk/arch/arm/plat-s3c64xx/dma.c +++ b/trunk/arch/arm/plat-s3c64xx/dma.c @@ -610,6 +610,12 @@ static irqreturn_t s3c64xx_dma_irq(int irq, void *pw) s3c64xx_dma_bufffdone(chan, buff, res); + /* Free the node and update curr, if non-circular queue */ + if (!(chan->flags & S3C2410_DMAF_CIRCULAR)) { + chan->curr = buff->next; + s3c64xx_dma_freebuff(buff); + } + /* Update 'next' */ buff = chan->next; if (chan->next == chan->end) {