diff mbox series

[V2] venus: core: remove CNOC voting while device suspend

Message ID 1586503045-18630-1-git-send-email-mansur@codeaurora.org (mailing list archive)
State Accepted
Commit 07f8f22a33a9e3e9955e24a84e2f856dcc8c31c4
Headers show
Series [V2] venus: core: remove CNOC voting while device suspend | expand

Commit Message

Mansur Alisha Shaik April 10, 2020, 7:17 a.m. UTC
The Venus driver is voting Configuration NoC during .probe but not clear
voting in .suspend. Because of this NoC is up during shutdown also. As a
consequence the whole device could leak energy while in .suspend.

So correct this by moving voting in .resume and unvoting
in .suspend

signed-off-by: mansur alisha shaik <mansur@codeaurora.org>
---
Changes in V2:
- As per stanimir comment changed the commit message.

 drivers/media/platform/qcom/venus/core.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

Comments

Stanimir Varbanov April 10, 2020, 7:58 a.m. UTC | #1
Thanks Mansur,

On 4/10/20 10:17 AM, Mansur Alisha Shaik wrote:
> The Venus driver is voting Configuration NoC during .probe but not clear
> voting in .suspend. Because of this NoC is up during shutdown also. As a
> consequence the whole device could leak energy while in .suspend.
> 
> So correct this by moving voting in .resume and unvoting
> in .suspend
> 
> signed-off-by: mansur alisha shaik <mansur@codeaurora.org>

Signed-off-by: Mansur Alisha Shaik <mansur@codeaurora.org>

Please configure git and use 'git commit -s' to sign off your commits
next time. I will correct that when applying.

> ---
> Changes in V2:
> - As per stanimir comment changed the commit message.
> 
>  drivers/media/platform/qcom/venus/core.c | 12 ++++++++----
>  1 file changed, 8 insertions(+), 4 deletions(-)

Acked-by: Stanimir Varbanov <stanimir.varbanov@linaro.org>
diff mbox series

Patch

diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platform/qcom/venus/core.c
index 194b10b9..13fa507 100644
--- a/drivers/media/platform/qcom/venus/core.c
+++ b/drivers/media/platform/qcom/venus/core.c
@@ -242,10 +242,6 @@  static int venus_probe(struct platform_device *pdev)
 	if (ret)
 		return ret;
 
-	ret = icc_set_bw(core->cpucfg_path, 0, kbps_to_icc(1000));
-	if (ret)
-		return ret;
-
 	ret = hfi_create(core, &venus_core_ops);
 	if (ret)
 		return ret;
@@ -350,6 +346,10 @@  static __maybe_unused int venus_runtime_suspend(struct device *dev)
 	if (ret)
 		return ret;
 
+	ret = icc_set_bw(core->cpucfg_path, 0, 0);
+	if (ret)
+		return ret;
+
 	if (pm_ops->core_power)
 		ret = pm_ops->core_power(dev, POWER_OFF);
 
@@ -368,6 +368,10 @@  static __maybe_unused int venus_runtime_resume(struct device *dev)
 			return ret;
 	}
 
+	ret = icc_set_bw(core->cpucfg_path, 0, kbps_to_icc(1000));
+	if (ret)
+		return ret;
+
 	return hfi_core_resume(core, false);
 }