Re: [RFC PATCH 1/3] cpufreq: fix the return value in 'cpufreq_boost_set_sw()'

From: Rafael J. Wysocki
Date: Thu May 14 2020 - 09:54:52 EST


On Friday, May 8, 2020 11:11:02 AM CEST Xiongfeng Wang wrote:
> When I try to add SW BOOST support for CPPC, I got the following error:
> cpufreq: cpufreq_boost_trigger_state: Cannot enable BOOST
> cpufreq: store_boost: Cannot enable BOOST!
>
> It is because return value 1 of 'freq_qos_update_request()' means the
> effective constraint value has changed, not a error code on failures.
> But for 'cpufreq_driver.set_boost()', a nonzero return value means
> failure. So change 'ret' to zero when 'freq_qos_update_request()'
> returns a positive value.
>
> Signed-off-by: Xiongfeng Wang <wangxiongfeng2@xxxxxxxxxx>
> ---
> drivers/cpufreq/cpufreq.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c
> index 4adac3a..475fb1b 100644
> --- a/drivers/cpufreq/cpufreq.c
> +++ b/drivers/cpufreq/cpufreq.c
> @@ -2522,6 +2522,8 @@ static int cpufreq_boost_set_sw(int state)
> ret = freq_qos_update_request(policy->max_freq_req, policy->max);
> if (ret < 0)
> break;
> + else
> + ret = 0;
> }
>
> return ret;
>

I would change cpufreq_boost_trigger_state() to take the 1 into account properly
instead.

Thanks!