summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2014-09-28 13:45:16 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2014-09-28 13:45:16 -0700
commit4092dc8f0bcc0963c045460157107d7461a094d7 (patch)
tree2f659d7ce5b5ea8e9fc27292e69f0b2a84caee04
parent1e3827bf8aebe29af2d6e49b89d85dfae4d0154f (diff)
parentbfb607451786829430ecdd5bcd51c5dac03e3639 (diff)
downloadlinux-4092dc8f0bcc0963c045460157107d7461a094d7.tar.gz
linux-4092dc8f0bcc0963c045460157107d7461a094d7.tar.bz2
linux-4092dc8f0bcc0963c045460157107d7461a094d7.zip
Merge branch 'fixes' of git://git.infradead.org/users/vkoul/slave-dma
Pull slave-dmaengine fixes from Vinod Koul: "Two small fixes for omap dmaengine driver which fixes cyclic suspend and resume" * 'fixes' of git://git.infradead.org/users/vkoul/slave-dma: dmaengine: omap-dma: Restore the CLINK_CTRL in resume path dmaengine: omap-dma: Add memory barrier to dma_resume path
-rw-r--r--drivers/dma/omap-dma.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/dma/omap-dma.c b/drivers/dma/omap-dma.c
index 4cf7d9a950d7..bbea8243f9e8 100644
--- a/drivers/dma/omap-dma.c
+++ b/drivers/dma/omap-dma.c
@@ -1017,6 +1017,11 @@ static int omap_dma_resume(struct omap_chan *c)
return -EINVAL;
if (c->paused) {
+ mb();
+
+ /* Restore channel link register */
+ omap_dma_chan_write(c, CLNK_CTRL, c->desc->clnk_ctrl);
+
omap_dma_start(c, c->desc);
c->paused = false;
}