aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/dma
diff options
context:
space:
mode:
authorJonas Aaberg <jonas.aberg@stericsson.com>2010-08-09 08:09:12 -0400
committerDan Williams <dan.j.williams@intel.com>2010-09-22 17:53:47 -0400
commit3ac012af3b1b3a6b373f3a9f19c5362974856c2c (patch)
tree6f71960819e88c98a4d61a0f52ad3dc9d9957385 /drivers/dma
parent8f6fd7f50f7059e5725a36885af52e54b9df96b2 (diff)
DMAENGINE: ste_dma40: don't pause/resume non-executing channels
There is no point in pausing what isn't running. Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com> Signed-off-by: Linus Walleij <linus.walleij@stericsson.com> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Diffstat (limited to 'drivers/dma')
-rw-r--r--drivers/dma/ste_dma40.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/dma/ste_dma40.c b/drivers/dma/ste_dma40.c
index c9f485e3baeb..05d0a9937617 100644
--- a/drivers/dma/ste_dma40.c
+++ b/drivers/dma/ste_dma40.c
@@ -768,6 +768,9 @@ static int d40_pause(struct dma_chan *chan)
768 int res = 0; 768 int res = 0;
769 unsigned long flags; 769 unsigned long flags;
770 770
771 if (!d40c->busy)
772 return 0;
773
771 spin_lock_irqsave(&d40c->lock, flags); 774 spin_lock_irqsave(&d40c->lock, flags);
772 775
773 res = d40_channel_execute_command(d40c, D40_DMA_SUSPEND_REQ); 776 res = d40_channel_execute_command(d40c, D40_DMA_SUSPEND_REQ);
@@ -792,6 +795,9 @@ static int d40_resume(struct dma_chan *chan)
792 int res = 0; 795 int res = 0;
793 unsigned long flags; 796 unsigned long flags;
794 797
798 if (!d40c->busy)
799 return 0;
800
795 spin_lock_irqsave(&d40c->lock, flags); 801 spin_lock_irqsave(&d40c->lock, flags);
796 802
797 if (d40c->base->rev == 0) 803 if (d40c->base->rev == 0)