When configuring a default governor (via CONFIG_CPU_FREQ_DEFAULT_*) with the 'intel_pstate' driver, I found that the default is not honored. For example, configure 'CONFIG_CPU_FREQ_GOV_PERFORMANCE', and then do: # cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor powersave However, I can do: echo "performance" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor and it takes properly. Fix by setting the default governor, if its either 'powersave' or 'performance'. Otherwise, fall back to what the driver originally set via its 'init' routine. Signed-off-by: Jason Baron <jbaron@xxxxxxxxxx> --- drivers/cpufreq/cpufreq.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c index 02d534d..931fa67 100644 --- a/drivers/cpufreq/cpufreq.c +++ b/drivers/cpufreq/cpufreq.c @@ -826,8 +826,19 @@ static void cpufreq_init_policy(struct cpufreq_policy *policy) { struct cpufreq_policy new_policy; int ret = 0; + int init_policy; memcpy(&new_policy, policy, sizeof(*policy)); + + /* honor the default governor policy, unless its invalid */ + if (cpufreq_driver->setpolicy) { + init_policy = new_policy.policy; + if (cpufreq_parse_governor(policy->governor->name, + &new_policy.policy, &new_policy.governor)) { + new_policy.policy = init_policy; + } + } + /* assure that the starting sequence is run in cpufreq_set_policy */ policy->governor = NULL; -- 1.8.2.rc2 -- To unsubscribe from this list: send the line "unsubscribe cpufreq" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html