diff options
author | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2018-08-06 10:09:52 +0200 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2018-08-06 10:09:52 +0200 |
commit | 6ccbe1dcdd17c9b76cc9f63e2dc600b381cb2378 (patch) | |
tree | a8646238f65a0fe67da955e670cc003e6a8e6344 /drivers/cpufreq/intel_pstate.c | |
parent | cpufreq: intel_pstate: Limit the scope of HWP dynamic boost platforms (diff) | |
parent | Merge back cpufreq material for 4.19. (diff) | |
download | linux-6ccbe1dcdd17c9b76cc9f63e2dc600b381cb2378.tar.xz linux-6ccbe1dcdd17c9b76cc9f63e2dc600b381cb2378.zip |
Merge back cpufreq changes for 4.19.
Diffstat (limited to 'drivers/cpufreq/intel_pstate.c')
-rw-r--r-- | drivers/cpufreq/intel_pstate.c | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/drivers/cpufreq/intel_pstate.c b/drivers/cpufreq/intel_pstate.c index d4ed0022b0dd..7bfb98380db9 100644 --- a/drivers/cpufreq/intel_pstate.c +++ b/drivers/cpufreq/intel_pstate.c @@ -670,21 +670,18 @@ static ssize_t store_energy_performance_preference( { struct cpudata *cpu_data = all_cpu_data[policy->cpu]; char str_preference[21]; - int ret, i = 0; + int ret; ret = sscanf(buf, "%20s", str_preference); if (ret != 1) return -EINVAL; - while (energy_perf_strings[i] != NULL) { - if (!strcmp(str_preference, energy_perf_strings[i])) { - intel_pstate_set_energy_pref_index(cpu_data, i); - return count; - } - ++i; - } + ret = match_string(energy_perf_strings, -1, str_preference); + if (ret < 0) + return ret; - return -EINVAL; + intel_pstate_set_energy_pref_index(cpu_data, ret); + return count; } static ssize_t show_energy_performance_preference( @@ -2085,6 +2082,15 @@ static int __intel_pstate_cpu_init(struct cpufreq_policy *policy) cpu->pstate.max_pstate : cpu->pstate.turbo_pstate; policy->cpuinfo.max_freq *= cpu->pstate.scaling; + if (hwp_active) { + unsigned int max_freq; + + max_freq = global.turbo_disabled ? + cpu->pstate.max_freq : cpu->pstate.turbo_freq; + if (max_freq < policy->cpuinfo.max_freq) + policy->cpuinfo.max_freq = max_freq; + } + intel_pstate_init_acpi_perf_limits(policy); policy->fast_switch_possible = true; |