diff options
author | Viresh Kumar <viresh.kumar@linaro.org> | 2019-07-04 03:36:22 -0400 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2019-07-08 17:56:39 -0400 |
commit | c57b25bdf7cd374af106992356536bf5df7c255b (patch) | |
tree | 315b068194893c0bec7c125f3d5502487949f55a | |
parent | 67d874c3b2c69d65274fa5ce44ba939788d5729d (diff) |
cpufreq: intel_pstate: Reuse refresh_frequency_limits()
The implementation of intel_pstate_update_max_freq() is quite similar to
refresh_frequency_limits(), lets reuse it.
Finding minimum of policy->user_policy.max and policy->cpuinfo.max_freq
in intel_pstate_update_max_freq() is redundant as cpufreq_set_policy()
will call the ->verify() callback of intel-pstate driver, which will do
this comparison anyway and so dropping it from
intel_pstate_update_max_freq() doesn't harm.
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
-rw-r--r-- | drivers/cpufreq/cpufreq.c | 3 | ||||
-rw-r--r-- | drivers/cpufreq/intel_pstate.c | 7 | ||||
-rw-r--r-- | include/linux/cpufreq.h | 1 |
3 files changed, 4 insertions, 7 deletions
diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c index b96ef6db1bfe..79bac52919a5 100644 --- a/drivers/cpufreq/cpufreq.c +++ b/drivers/cpufreq/cpufreq.c | |||
@@ -1116,7 +1116,7 @@ static int cpufreq_add_policy_cpu(struct cpufreq_policy *policy, unsigned int cp | |||
1116 | return ret; | 1116 | return ret; |
1117 | } | 1117 | } |
1118 | 1118 | ||
1119 | static void refresh_frequency_limits(struct cpufreq_policy *policy) | 1119 | void refresh_frequency_limits(struct cpufreq_policy *policy) |
1120 | { | 1120 | { |
1121 | struct cpufreq_policy new_policy; | 1121 | struct cpufreq_policy new_policy; |
1122 | 1122 | ||
@@ -1129,6 +1129,7 @@ static void refresh_frequency_limits(struct cpufreq_policy *policy) | |||
1129 | cpufreq_set_policy(policy, &new_policy); | 1129 | cpufreq_set_policy(policy, &new_policy); |
1130 | } | 1130 | } |
1131 | } | 1131 | } |
1132 | EXPORT_SYMBOL(refresh_frequency_limits); | ||
1132 | 1133 | ||
1133 | static void handle_update(struct work_struct *work) | 1134 | static void handle_update(struct work_struct *work) |
1134 | { | 1135 | { |
diff --git a/drivers/cpufreq/intel_pstate.c b/drivers/cpufreq/intel_pstate.c index f2ff5de988c1..cc27d4c59dca 100644 --- a/drivers/cpufreq/intel_pstate.c +++ b/drivers/cpufreq/intel_pstate.c | |||
@@ -898,7 +898,6 @@ static void intel_pstate_update_policies(void) | |||
898 | static void intel_pstate_update_max_freq(unsigned int cpu) | 898 | static void intel_pstate_update_max_freq(unsigned int cpu) |
899 | { | 899 | { |
900 | struct cpufreq_policy *policy = cpufreq_cpu_acquire(cpu); | 900 | struct cpufreq_policy *policy = cpufreq_cpu_acquire(cpu); |
901 | struct cpufreq_policy new_policy; | ||
902 | struct cpudata *cpudata; | 901 | struct cpudata *cpudata; |
903 | 902 | ||
904 | if (!policy) | 903 | if (!policy) |
@@ -908,11 +907,7 @@ static void intel_pstate_update_max_freq(unsigned int cpu) | |||
908 | policy->cpuinfo.max_freq = global.turbo_disabled_mf ? | 907 | policy->cpuinfo.max_freq = global.turbo_disabled_mf ? |
909 | cpudata->pstate.max_freq : cpudata->pstate.turbo_freq; | 908 | cpudata->pstate.max_freq : cpudata->pstate.turbo_freq; |
910 | 909 | ||
911 | memcpy(&new_policy, policy, sizeof(*policy)); | 910 | refresh_frequency_limits(policy); |
912 | new_policy.max = min(policy->user_policy.max, policy->cpuinfo.max_freq); | ||
913 | new_policy.min = min(policy->user_policy.min, new_policy.max); | ||
914 | |||
915 | cpufreq_set_policy(policy, &new_policy); | ||
916 | 911 | ||
917 | cpufreq_cpu_release(policy); | 912 | cpufreq_cpu_release(policy); |
918 | } | 913 | } |
diff --git a/include/linux/cpufreq.h b/include/linux/cpufreq.h index 95425941f46d..1fa37b675a80 100644 --- a/include/linux/cpufreq.h +++ b/include/linux/cpufreq.h | |||
@@ -207,6 +207,7 @@ void cpufreq_cpu_release(struct cpufreq_policy *policy); | |||
207 | int cpufreq_get_policy(struct cpufreq_policy *policy, unsigned int cpu); | 207 | int cpufreq_get_policy(struct cpufreq_policy *policy, unsigned int cpu); |
208 | int cpufreq_set_policy(struct cpufreq_policy *policy, | 208 | int cpufreq_set_policy(struct cpufreq_policy *policy, |
209 | struct cpufreq_policy *new_policy); | 209 | struct cpufreq_policy *new_policy); |
210 | void refresh_frequency_limits(struct cpufreq_policy *policy); | ||
210 | void cpufreq_update_policy(unsigned int cpu); | 211 | void cpufreq_update_policy(unsigned int cpu); |
211 | void cpufreq_update_limits(unsigned int cpu); | 212 | void cpufreq_update_limits(unsigned int cpu); |
212 | bool have_governor_per_policy(void); | 213 | bool have_governor_per_policy(void); |