Commit 336b1a31 authored by Jassi Brar's avatar Jassi Brar Committed by Ben Dooks

ARM: S3C64XX: DMA: Free node for non-circular queues

We need to free the buff and lli nodes if the buffer queue is
not CIRCULAR.
Signed-off-by: default avatarJassi Brar <jassi.brar@samsung.com>
Signed-off-by: default avatarBen Dooks <ben-linux@fluff.org>
parent 9b08284b
...@@ -610,6 +610,12 @@ static irqreturn_t s3c64xx_dma_irq(int irq, void *pw) ...@@ -610,6 +610,12 @@ static irqreturn_t s3c64xx_dma_irq(int irq, void *pw)
s3c64xx_dma_bufffdone(chan, buff, res); 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' */ /* Update 'next' */
buff = chan->next; buff = chan->next;
if (chan->next == chan->end) { if (chan->next == chan->end) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment