mirror of
https://github.com/torvalds/linux.git
synced 2026-07-27 09:36:22 +02:00
cpufreq: Use policy->min/max init as QoS request
Modify cpufreq_policy_init_qos() introduced previously to use policy->min/max set in the driver .init() callback as the initial values for the policy min/max frequency QoS requests, respectively, so long as they are different from 0 (which means that they have been updated by the driver). Update the documentation in accordance with that code change. This only affects the following drivers: - gx-suspmod (min) - cppc-cpufreq (min) - longrun (min/max) Signed-off-by: Pierre Gondois <pierre.gondois@arm.com> [ rjw: Changelog rewrite ] Link: https://patch.msgid.link/20260528090913.2759118-5-pierre.gondois@arm.com Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
parent
db80ad776c
commit
8c83947c5d
|
|
@ -114,8 +114,13 @@ Then, the driver must fill in the following values:
|
|||
|policy->cur | The current operating frequency of |
|
||||
| | this CPU (if appropriate) |
|
||||
+-----------------------------------+--------------------------------------+
|
||||
|policy->min, | |
|
||||
|policy->max, | |
|
||||
|policy->min, | The min/max scaling frequency. |
|
||||
|policy->max | If set by the driver in ->init(), |
|
||||
| | used as the lower/upper bound for |
|
||||
| | policy frequency QoS requests; |
|
||||
| | otherwise, reflects the min/max |
|
||||
| | frequency the driver can set |
|
||||
+-----------------------------------+--------------------------------------+
|
||||
|policy->policy and, if necessary, | |
|
||||
|policy->governor | must contain the "default policy" for|
|
||||
| | this CPU. A few moments later, |
|
||||
|
|
|
|||
|
|
@ -1399,8 +1399,16 @@ static void cpufreq_policy_free(struct cpufreq_policy *policy)
|
|||
|
||||
static int cpufreq_policy_init_qos(struct cpufreq_policy *policy)
|
||||
{
|
||||
unsigned int min_freq, max_freq;
|
||||
int ret;
|
||||
|
||||
/* Use policy->min/max set by the driver as QoS requests. */
|
||||
min_freq = max(FREQ_QOS_MIN_DEFAULT_VALUE, policy->min);
|
||||
if (policy->max)
|
||||
max_freq = min(FREQ_QOS_MAX_DEFAULT_VALUE, policy->max);
|
||||
else
|
||||
max_freq = FREQ_QOS_MAX_DEFAULT_VALUE;
|
||||
|
||||
if (policy->boost_supported) {
|
||||
ret = freq_qos_add_request(&policy->constraints,
|
||||
&policy->boost_freq_req,
|
||||
|
|
@ -1411,12 +1419,12 @@ static int cpufreq_policy_init_qos(struct cpufreq_policy *policy)
|
|||
}
|
||||
|
||||
ret = freq_qos_add_request(&policy->constraints, &policy->min_freq_req,
|
||||
FREQ_QOS_MIN, FREQ_QOS_MIN_DEFAULT_VALUE);
|
||||
FREQ_QOS_MIN, min_freq);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
ret = freq_qos_add_request(&policy->constraints, &policy->max_freq_req,
|
||||
FREQ_QOS_MAX, FREQ_QOS_MAX_DEFAULT_VALUE);
|
||||
FREQ_QOS_MAX, max_freq);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user