2020-09-08 03:45:36

by Mansur Alisha Shaik

[permalink] [raw]
Subject: [PATCH 1/2] venus: core: change clk enable and disable order in resume and suspend

Currently video driver is voting after clk enable and un voting
before clk disable. Basically we should vote before clk enable
and un vote after clk disable.

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

Signed-off-by: Mansur Alisha Shaik <[email protected]>
---
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 c5af428..4857bbd 100644
--- a/drivers/media/platform/qcom/venus/core.c
+++ b/drivers/media/platform/qcom/venus/core.c
@@ -363,13 +363,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;
}

@@ -379,16 +382,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);
}

--
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member
of Code Aurora Forum, hosted by The Linux Foundation


2020-09-08 18:36:34

by Stephen Boyd

[permalink] [raw]
Subject: Re: [PATCH 1/2] venus: core: change clk enable and disable order in resume and suspend

Quoting Mansur Alisha Shaik (2020-09-07 20:44:05)
> Currently video driver is voting after clk enable and un voting
> before clk disable. Basically we should vote before clk enable
> and un vote after clk disable.
>
> Corrected this by changing the order of clk enable and clk disable.
>
> Signed-off-by: Mansur Alisha Shaik <[email protected]>
> ---

Any Fixes: tag?

> 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 c5af428..4857bbd 100644
> --- a/drivers/media/platform/qcom/venus/core.c
> +++ b/drivers/media/platform/qcom/venus/core.c
> @@ -363,13 +363,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;

Shouldn't we power it back up if this fails during suspend?

>
> - if (pm_ops->core_power)
> - ret = pm_ops->core_power(dev, POWER_OFF);
> -
> return ret;
> }
>

2020-09-17 01:16:37

by Mansur Alisha Shaik

[permalink] [raw]
Subject: Re: [PATCH 1/2] venus: core: change clk enable and disable order in resume and suspend

> On 2020-09-09 00:05, Stephen Boyd wrote:
>> Quoting Mansur Alisha Shaik (2020-09-07 20:44:05)
>>> Currently video driver is voting after clk enable and un voting
>>> before clk disable. Basically we should vote before clk enable
>>> and un vote after clk disable.
>>>
>>> Corrected this by changing the order of clk enable and clk disable.
>>>
>>> Signed-off-by: Mansur Alisha Shaik <[email protected]>
>>> ---
>>
>> Any Fixes: tag?
Added Fixes tag
>>
>>> 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 c5af428..4857bbd 100644
>>> --- a/drivers/media/platform/qcom/venus/core.c
>>> +++ b/drivers/media/platform/qcom/venus/core.c
>>> @@ -363,13 +363,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;
>>
>> Shouldn't we power it back up if this fails during suspend?
On icc_set_bw() failure, we are just power it and return.
Addressed these comments and posted new version
https://lore.kernel.org/patchwork/project/lkml/list/?series=463224
>>
>>>
>>> - if (pm_ops->core_power)
>>> - ret = pm_ops->core_power(dev, POWER_OFF);
>>> -
>>> return ret;
>>> }
>>>

2020-09-17 07:22:30

by Stephen Boyd

[permalink] [raw]
Subject: Re: [PATCH 1/2] venus: core: change clk enable and disable order in resume and suspend

Quoting [email protected] (2020-09-16 18:07:44)
> > On 2020-09-09 00:05, Stephen Boyd wrote:
> >> Quoting Mansur Alisha Shaik (2020-09-07 20:44:05)
> >>> Currently video driver is voting after clk enable and un voting
> >>> before clk disable. Basically we should vote before clk enable
> >>> and un vote after clk disable.
> >>>
> >>> Corrected this by changing the order of clk enable and clk disable.
> >>>
> >>> Signed-off-by: Mansur Alisha Shaik <[email protected]>
> >>> ---
> >>
> >> Any Fixes: tag?
> Added Fixes tag
> >>
> >>> 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 c5af428..4857bbd 100644
> >>> --- a/drivers/media/platform/qcom/venus/core.c
> >>> +++ b/drivers/media/platform/qcom/venus/core.c
> >>> @@ -363,13 +363,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;
> >>
> >> Shouldn't we power it back up if this fails during suspend?
> On icc_set_bw() failure, we are just power it and return.
> Addressed these comments and posted new version
> https://lore.kernel.org/patchwork/project/lkml/list/?series=463224

Thanks. It's customary to Cc reviewers on patches, so please add me on
the next round of patches.