diff options
Diffstat (limited to 'drivers/cpufreq/cpufreq.c')
| -rw-r--r-- | drivers/cpufreq/cpufreq.c | 12 | 
1 files changed, 10 insertions, 2 deletions
| diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c index cbe6c94bf158..808874bccf4a 100644 --- a/drivers/cpufreq/cpufreq.c +++ b/drivers/cpufreq/cpufreq.c @@ -1076,9 +1076,17 @@ static int cpufreq_init_policy(struct cpufreq_policy *policy)  			pol = policy->last_policy;  		} else if (def_gov) {  			pol = cpufreq_parse_policy(def_gov->name); -		} else { -			return -ENODATA; +			/* +			 * In case the default governor is neiter "performance" +			 * nor "powersave", fall back to the initial policy +			 * value set by the driver. +			 */ +			if (pol == CPUFREQ_POLICY_UNKNOWN) +				pol = policy->policy;  		} +		if (pol != CPUFREQ_POLICY_PERFORMANCE && +		    pol != CPUFREQ_POLICY_POWERSAVE) +			return -ENODATA;  	}  	return cpufreq_set_policy(policy, gov, pol); |