[ 3.8.y.z extended stable ] Patch "dmaengine: ste_dma40: fix pm runtime ref counting" has been added to staging queue
Kamal Mostafa
kamal at canonical.com
Mon Jun 10 22:04:32 UTC 2013
This is a note to let you know that I have just added a patch titled
dmaengine: ste_dma40: fix pm runtime ref counting
to the linux-3.8.y-queue branch of the 3.8.y.z extended stable tree
which can be found at:
http://kernel.ubuntu.com/git?p=ubuntu/linux.git;a=shortlog;h=refs/heads/linux-3.8.y-queue
This patch is scheduled to be released in version 3.8.13.3.
If you, or anyone else, feels it should not be added to this tree, please
reply to this email.
For more information about the 3.8.y.z tree, see
https://wiki.ubuntu.com/Kernel/Dev/ExtendedStable
Thanks.
-Kamal
------
>From 583b34c5a1a63b0345e0e83969125e1ad0ca5ae0 Mon Sep 17 00:00:00 2001
From: Rabin Vincent <rabin.vincent at stericsson.com>
Date: Mon, 27 May 2013 16:03:40 +0200
Subject: dmaengine: ste_dma40: fix pm runtime ref counting
commit 9ecb41bd8cf002fd8f3e063db4df81647ddd623c upstream.
The pm runtime reference counting of the driver is broken for the case
when there is more than one transfer queued, leading to the device being
runtime suspend while active. Fix it.
Signed-off-by: Rabin Vincent <rabin.vincent at stericsson.com>
Acked-by: Linus Walleij <linus.walleij at linaro.org>
Signed-off-by: Vinod Koul <vinod.koul at intel.com>
[ kamal: backport to 3.8 ]
Signed-off-by: Kamal Mostafa <kamal at canonical.com>
---
drivers/dma/ste_dma40.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/drivers/dma/ste_dma40.c b/drivers/dma/ste_dma40.c
index 23c5573..17459ad 100644
--- a/drivers/dma/ste_dma40.c
+++ b/drivers/dma/ste_dma40.c
@@ -1392,10 +1392,12 @@ static void dma_tc_handle(struct d40_chan *d40c)
return;
}
- if (d40_queue_start(d40c) == NULL)
+ if (d40_queue_start(d40c) == NULL) {
d40c->busy = false;
- pm_runtime_mark_last_busy(d40c->base->dev);
- pm_runtime_put_autosuspend(d40c->base->dev);
+
+ pm_runtime_mark_last_busy(d40c->base->dev);
+ pm_runtime_put_autosuspend(d40c->base->dev);
+ }
}
d40c->pending_tx++;
--
1.8.1.2
More information about the kernel-team
mailing list