[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <9aea1e94-3794-47e7-89cf-3a2e696e75e6@kylinos.cn>
Date: Fri, 5 Sep 2025 09:16:47 +0800
From: Zihuan Zhang <zhangzihuan@...inos.cn>
To: "Rafael J. Wysocki" <rafael@...nel.org>
Cc: Viresh Kumar <viresh.kumar@...aro.org>,
Saravana Kannan <saravanak@...gle.com>, zhenglifeng
<zhenglifeng1@...wei.com>, linux-pm@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH v1 1/3] cpufreq: Drop redundant freq_table parameter
在 2025/9/4 21:31, Rafael J. Wysocki 写道:
> On Thu, Sep 4, 2025 at 5:22 AM Zihuan Zhang <zhangzihuan@...inos.cn> wrote:
>> Since commit e0b3165ba521 ("cpufreq: add 'freq_table' in struct
>> cpufreq_policy"),
>> freq_table has been stored in struct cpufreq_policy instead of being
>> maintained separately.
>>
>> However, several helpers in freq_table.c still take both policy and
>> freq_table as parameters, even though policy->freq_table can always be
>> used. This leads to redundant function arguments and increases the chance
>> of inconsistencies.
>>
>> This patch removes the unnecessary freq_table argument from these functions
>> and updates their callers to only pass policy. This makes the code simpler,
>> more consistent, and avoids duplication.
>>
>> V2:
>> - Merge three patches into one to fix compile error
>> - simple the check suggested by Viresh Kumar
>>
>> Signed-off-by: Zihuan Zhang <zhangzihuan@...inos.cn>
>> Acked-by: Viresh Kumar <viresh.kumar@...aro.org>
> Do I think correctly that this is a resend of
> https://lore.kernel.org/all/20250902073323.48330-1-zhangzihuan@kylinos.cn/
> ?
>
> There's no need to resend it.
Yes, this is indeed a resend. Sorry for the noise.
> If you want to make new changes on top of it, just say in their
> changelogs that they depend on it.
>
> OTOH, if the new patch is not a resend, you should have listed the
> differences between it and the old one.
>
>> ---
>> drivers/cpufreq/cpufreq.c | 2 +-
>> drivers/cpufreq/freq_table.c | 14 ++++++--------
>> drivers/cpufreq/sh-cpufreq.c | 6 ++----
>> drivers/cpufreq/virtual-cpufreq.c | 2 +-
>> include/linux/cpufreq.h | 7 +++----
>> 5 files changed, 13 insertions(+), 18 deletions(-)
>>
>> diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c
>> index a615c98d80ca..5fcc99f768d2 100644
>> --- a/drivers/cpufreq/cpufreq.c
>> +++ b/drivers/cpufreq/cpufreq.c
>> @@ -2793,7 +2793,7 @@ int cpufreq_boost_set_sw(struct cpufreq_policy *policy, int state)
>> if (!policy->freq_table)
>> return -ENXIO;
>>
>> - ret = cpufreq_frequency_table_cpuinfo(policy, policy->freq_table);
>> + ret = cpufreq_frequency_table_cpuinfo(policy);
>> if (ret) {
>> pr_err("%s: Policy frequency update failed\n", __func__);
>> return ret;
>> diff --git a/drivers/cpufreq/freq_table.c b/drivers/cpufreq/freq_table.c
>> index 35de513af6c9..d5111ee56e38 100644
>> --- a/drivers/cpufreq/freq_table.c
>> +++ b/drivers/cpufreq/freq_table.c
>> @@ -28,10 +28,9 @@ static bool policy_has_boost_freq(struct cpufreq_policy *policy)
>> return false;
>> }
>>
>> -int cpufreq_frequency_table_cpuinfo(struct cpufreq_policy *policy,
>> - struct cpufreq_frequency_table *table)
>> +int cpufreq_frequency_table_cpuinfo(struct cpufreq_policy *policy)
>> {
>> - struct cpufreq_frequency_table *pos;
>> + struct cpufreq_frequency_table *pos, *table = policy->freq_table;
>> unsigned int min_freq = ~0;
>> unsigned int max_freq = 0;
>> unsigned int freq;
>> @@ -65,10 +64,9 @@ int cpufreq_frequency_table_cpuinfo(struct cpufreq_policy *policy,
>> return 0;
>> }
>>
>> -int cpufreq_frequency_table_verify(struct cpufreq_policy_data *policy,
>> - struct cpufreq_frequency_table *table)
>> +int cpufreq_frequency_table_verify(struct cpufreq_policy_data *policy)
>> {
>> - struct cpufreq_frequency_table *pos;
>> + struct cpufreq_frequency_table *pos, *table = policy->freq_table;
>> unsigned int freq, prev_smaller = 0;
>> bool found = false;
>>
>> @@ -110,7 +108,7 @@ int cpufreq_generic_frequency_table_verify(struct cpufreq_policy_data *policy)
>> if (!policy->freq_table)
>> return -ENODEV;
>>
>> - return cpufreq_frequency_table_verify(policy, policy->freq_table);
>> + return cpufreq_frequency_table_verify(policy);
>> }
>> EXPORT_SYMBOL_GPL(cpufreq_generic_frequency_table_verify);
>>
>> @@ -354,7 +352,7 @@ int cpufreq_table_validate_and_sort(struct cpufreq_policy *policy)
>> return 0;
>> }
>>
>> - ret = cpufreq_frequency_table_cpuinfo(policy, policy->freq_table);
>> + ret = cpufreq_frequency_table_cpuinfo(policy);
>> if (ret)
>> return ret;
>>
>> diff --git a/drivers/cpufreq/sh-cpufreq.c b/drivers/cpufreq/sh-cpufreq.c
>> index 9c0b01e00508..642ddb9ea217 100644
>> --- a/drivers/cpufreq/sh-cpufreq.c
>> +++ b/drivers/cpufreq/sh-cpufreq.c
>> @@ -89,11 +89,9 @@ static int sh_cpufreq_target(struct cpufreq_policy *policy,
>> static int sh_cpufreq_verify(struct cpufreq_policy_data *policy)
>> {
>> struct clk *cpuclk = &per_cpu(sh_cpuclk, policy->cpu);
>> - struct cpufreq_frequency_table *freq_table;
>>
>> - freq_table = cpuclk->nr_freqs ? cpuclk->freq_table : NULL;
>> - if (freq_table)
>> - return cpufreq_frequency_table_verify(policy, freq_table);
>> + if (policy->freq_table)
>> + return cpufreq_frequency_table_verify(policy);
>>
>> cpufreq_verify_within_cpu_limits(policy);
>>
>> diff --git a/drivers/cpufreq/virtual-cpufreq.c b/drivers/cpufreq/virtual-cpufreq.c
>> index 7dd1b0c263c7..6ffa16d239b2 100644
>> --- a/drivers/cpufreq/virtual-cpufreq.c
>> +++ b/drivers/cpufreq/virtual-cpufreq.c
>> @@ -250,7 +250,7 @@ static int virt_cpufreq_offline(struct cpufreq_policy *policy)
>> static int virt_cpufreq_verify_policy(struct cpufreq_policy_data *policy)
>> {
>> if (policy->freq_table)
>> - return cpufreq_frequency_table_verify(policy, policy->freq_table);
>> + return cpufreq_frequency_table_verify(policy);
>>
>> cpufreq_verify_within_cpu_limits(policy);
>> return 0;
>> diff --git a/include/linux/cpufreq.h b/include/linux/cpufreq.h
>> index 95f3807c8c55..40966512ea18 100644
>> --- a/include/linux/cpufreq.h
>> +++ b/include/linux/cpufreq.h
>> @@ -780,11 +780,10 @@ struct cpufreq_frequency_table {
>> else
>>
>>
>> -int cpufreq_frequency_table_cpuinfo(struct cpufreq_policy *policy,
>> - struct cpufreq_frequency_table *table);
>> +int cpufreq_frequency_table_cpuinfo(struct cpufreq_policy *policy);
>> +
>> +int cpufreq_frequency_table_verify(struct cpufreq_policy_data *policy);
>>
>> -int cpufreq_frequency_table_verify(struct cpufreq_policy_data *policy,
>> - struct cpufreq_frequency_table *table);
>> int cpufreq_generic_frequency_table_verify(struct cpufreq_policy_data *policy);
>>
>> int cpufreq_table_index_unsorted(struct cpufreq_policy *policy,
>> --
>> 2.25.1
>>
Powered by blists - more mailing lists