2022-08-11 17:18:08

by Lukasz Luba

[permalink] [raw]
Subject: [PATCH] cpufreq: check only freq_table in __resolve_freq()

The there is no need to check if the cpufreq driver implements callback
cpufreq_driver::target_index. The logic in the __resolve_freq uses
the frequency table available in the policy. It doesn't matter if the
driver provides 'target_index' or 'target' callback. It just has to
populate the 'policy->freq_table'.

Thus, check only frequency table during the frequency resolving call.

Signed-off-by: Lukasz Luba <[email protected]>
---
drivers/cpufreq/cpufreq.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c
index 7820c4e74289..69b3d61852ac 100644
--- a/drivers/cpufreq/cpufreq.c
+++ b/drivers/cpufreq/cpufreq.c
@@ -532,7 +532,7 @@ static unsigned int __resolve_freq(struct cpufreq_policy *policy,

target_freq = clamp_val(target_freq, policy->min, policy->max);

- if (!cpufreq_driver->target_index)
+ if (!policy->freq_table)
return target_freq;

idx = cpufreq_frequency_table_target(policy, target_freq, relation);
--
2.17.1


2022-08-12 04:20:34

by Viresh Kumar

[permalink] [raw]
Subject: Re: [PATCH] cpufreq: check only freq_table in __resolve_freq()

On 11-08-22, 17:54, Lukasz Luba wrote:
> The there is no need to check if the cpufreq driver implements callback

s/The there/There/

> cpufreq_driver::target_index. The logic in the __resolve_freq uses
> the frequency table available in the policy. It doesn't matter if the
> driver provides 'target_index' or 'target' callback. It just has to
> populate the 'policy->freq_table'.
>
> Thus, check only frequency table during the frequency resolving call.
>
> Signed-off-by: Lukasz Luba <[email protected]>
> ---
> drivers/cpufreq/cpufreq.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c
> index 7820c4e74289..69b3d61852ac 100644
> --- a/drivers/cpufreq/cpufreq.c
> +++ b/drivers/cpufreq/cpufreq.c
> @@ -532,7 +532,7 @@ static unsigned int __resolve_freq(struct cpufreq_policy *policy,
>
> target_freq = clamp_val(target_freq, policy->min, policy->max);
>
> - if (!cpufreq_driver->target_index)
> + if (!policy->freq_table)
> return target_freq;
>
> idx = cpufreq_frequency_table_target(policy, target_freq, relation);

Acked-by: Viresh Kumar <[email protected]>

--
viresh

2022-08-16 11:05:42

by Lukasz Luba

[permalink] [raw]
Subject: Re: [PATCH] cpufreq: check only freq_table in __resolve_freq()



On 8/12/22 05:05, Viresh Kumar wrote:
> On 11-08-22, 17:54, Lukasz Luba wrote:
>> The there is no need to check if the cpufreq driver implements callback
>
> s/The there/There/
>
>> cpufreq_driver::target_index. The logic in the __resolve_freq uses
>> the frequency table available in the policy. It doesn't matter if the
>> driver provides 'target_index' or 'target' callback. It just has to
>> populate the 'policy->freq_table'.
>>
>> Thus, check only frequency table during the frequency resolving call.
>>
>> Signed-off-by: Lukasz Luba <[email protected]>
>> ---
>> drivers/cpufreq/cpufreq.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c
>> index 7820c4e74289..69b3d61852ac 100644
>> --- a/drivers/cpufreq/cpufreq.c
>> +++ b/drivers/cpufreq/cpufreq.c
>> @@ -532,7 +532,7 @@ static unsigned int __resolve_freq(struct cpufreq_policy *policy,
>>
>> target_freq = clamp_val(target_freq, policy->min, policy->max);
>>
>> - if (!cpufreq_driver->target_index)
>> + if (!policy->freq_table)
>> return target_freq;
>>
>> idx = cpufreq_frequency_table_target(policy, target_freq, relation);
>
> Acked-by: Viresh Kumar <[email protected]>
>

Thanks Viresh! I'll resend this patch w/ fixed description and your ACK