diff mbox series

[v3,1/4] venus: core: change clk enable and disable order in resume and suspend

Message ID 1600930266-9668-2-git-send-email-mansur@codeaurora.org (mailing list archive)
State Superseded
Headers show
Series Venus - change clk enable, disable order and change bw values | expand

Commit Message

Mansur Alisha Shaik Sept. 24, 2020, 6:51 a.m. UTC
Currently video driver is voting after clk enable and un voting
before clk disable. This is incorrect, video driver should vote
before clk enable and unvote after clk disable.

Corrected this by changing the order of clk enable and clk disable.

Fixes: 7482a983d ("media: venus: redesign clocks and pm domains control")
Signed-off-by: Mansur Alisha Shaik <mansur@codeaurora.org>
Reviewed-by: Stephen Boyd <swboyd@chromium.org>
---
 drivers/media/platform/qcom/venus/core.c | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

Comments

Stanimir Varbanov Sept. 24, 2020, 11:11 p.m. UTC | #1
Hi Mansur,

On 9/24/20 9:51 AM, Mansur Alisha Shaik wrote:
> Currently video driver is voting after clk enable and un voting
> before clk disable. This is incorrect, video driver should vote
> before clk enable and unvote after clk disable.
> 
> Corrected this by changing the order of clk enable and clk disable.
> 
> Fixes: 7482a983d ("media: venus: redesign clocks and pm domains control")

The Fixes tag is incorrect. It should be

07f8f22a33a9e ("media: venus: core: remove CNOC voting while device
suspend")

> Signed-off-by: Mansur Alisha Shaik <mansur@codeaurora.org>
> Reviewed-by: Stephen Boyd <swboyd@chromium.org>
> ---
>  drivers/media/platform/qcom/venus/core.c | 17 ++++++++++-------
>  1 file changed, 10 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platform/qcom/venus/core.c
> index 6103aaf..52a3886 100644
> --- a/drivers/media/platform/qcom/venus/core.c
> +++ b/drivers/media/platform/qcom/venus/core.c
> @@ -355,13 +355,16 @@ static __maybe_unused int venus_runtime_suspend(struct device *dev)
>  	if (ret)
>  		return ret;
>  
> +	if (pm_ops->core_power) {
> +		ret = pm_ops->core_power(dev, POWER_OFF);
> +		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);
> -
>  	return ret;
>  }
>  
> @@ -371,16 +374,16 @@ static __maybe_unused int venus_runtime_resume(struct device *dev)
>  	const struct venus_pm_ops *pm_ops = core->pm_ops;
>  	int ret;
>  
> +	ret = icc_set_bw(core->cpucfg_path, 0, kbps_to_icc(1000));
> +	if (ret)
> +		return ret;
> +
>  	if (pm_ops->core_power) {
>  		ret = pm_ops->core_power(dev, POWER_ON);
>  		if (ret)
>  			return ret;
>  	}
>  
> -	ret = icc_set_bw(core->cpucfg_path, 0, kbps_to_icc(1000));
> -	if (ret)
> -		return ret;
> -
>  	return hfi_core_resume(core, false);
>  }
>  
>
diff mbox series

Patch

diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platform/qcom/venus/core.c
index 6103aaf..52a3886 100644
--- a/drivers/media/platform/qcom/venus/core.c
+++ b/drivers/media/platform/qcom/venus/core.c
@@ -355,13 +355,16 @@  static __maybe_unused int venus_runtime_suspend(struct device *dev)
 	if (ret)
 		return ret;
 
+	if (pm_ops->core_power) {
+		ret = pm_ops->core_power(dev, POWER_OFF);
+		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);
-
 	return ret;
 }
 
@@ -371,16 +374,16 @@  static __maybe_unused int venus_runtime_resume(struct device *dev)
 	const struct venus_pm_ops *pm_ops = core->pm_ops;
 	int ret;
 
+	ret = icc_set_bw(core->cpucfg_path, 0, kbps_to_icc(1000));
+	if (ret)
+		return ret;
+
 	if (pm_ops->core_power) {
 		ret = pm_ops->core_power(dev, POWER_ON);
 		if (ret)
 			return ret;
 	}
 
-	ret = icc_set_bw(core->cpucfg_path, 0, kbps_to_icc(1000));
-	if (ret)
-		return ret;
-
 	return hfi_core_resume(core, false);
 }