summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorViresh Kumar <viresh.kumar@linaro.org>2019-07-04 03:36:22 -0400
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2019-07-08 17:56:39 -0400
commitc57b25bdf7cd374af106992356536bf5df7c255b (patch)
tree315b068194893c0bec7c125f3d5502487949f55a
parent67d874c3b2c69d65274fa5ce44ba939788d5729d (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.c3
-rw-r--r--drivers/cpufreq/intel_pstate.c7
-rw-r--r--include/linux/cpufreq.h1
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
1119static void refresh_frequency_limits(struct cpufreq_policy *policy) 1119void 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}
1132EXPORT_SYMBOL(refresh_frequency_limits);
1132 1133
1133static void handle_update(struct work_struct *work) 1134static 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)
898static void intel_pstate_update_max_freq(unsigned int cpu) 898static 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);
207int cpufreq_get_policy(struct cpufreq_policy *policy, unsigned int cpu); 207int cpufreq_get_policy(struct cpufreq_policy *policy, unsigned int cpu);
208int cpufreq_set_policy(struct cpufreq_policy *policy, 208int cpufreq_set_policy(struct cpufreq_policy *policy,
209 struct cpufreq_policy *new_policy); 209 struct cpufreq_policy *new_policy);
210void refresh_frequency_limits(struct cpufreq_policy *policy);
210void cpufreq_update_policy(unsigned int cpu); 211void cpufreq_update_policy(unsigned int cpu);
211void cpufreq_update_limits(unsigned int cpu); 212void cpufreq_update_limits(unsigned int cpu);
212bool have_governor_per_policy(void); 213bool have_governor_per_policy(void);