mirror of
https://github.com/torvalds/linux.git
synced 2024-11-27 22:51:35 +00:00
[CPUFREQ] Fix limited cpufreq when booted on battery
References: https://bugzilla.novell.com/show_bug.cgi?id=231107 https://bugzilla.novell.com/show_bug.cgi?id=264077 Fix limited cpufreq when booted on battery If booted on battery: cpufreq_set_policy (evil) is invoked which calls verify_within_limits. max_freq gets lowered and therefore users_policy.max, which is used to restore higher freqs via update_policy later is set to the already limited frequency -> you can never go up again, even BIOS allows higher freqs later. Signed-off-by: Thomas Renninger <trenn@suse.de> Signed-off-by: Dave Jones <davej@redhat.com>
This commit is contained in:
parent
e8e49190f6
commit
22c970f346
@ -768,6 +768,9 @@ static int cpufreq_add_dev (struct sys_device * sys_dev)
|
||||
unlock_policy_rwsem_write(cpu);
|
||||
goto err_out;
|
||||
}
|
||||
policy->user_policy.min = policy->cpuinfo.min_freq;
|
||||
policy->user_policy.max = policy->cpuinfo.max_freq;
|
||||
policy->user_policy.governor = policy->governor;
|
||||
|
||||
#ifdef CONFIG_SMP
|
||||
for_each_cpu_mask(j, policy->cpus) {
|
||||
@ -858,10 +861,13 @@ static int cpufreq_add_dev (struct sys_device * sys_dev)
|
||||
|
||||
policy->governor = NULL; /* to assure that the starting sequence is
|
||||
* run in cpufreq_set_policy */
|
||||
unlock_policy_rwsem_write(cpu);
|
||||
|
||||
/* set default policy */
|
||||
ret = cpufreq_set_policy(&new_policy);
|
||||
ret = __cpufreq_set_policy(policy, &new_policy);
|
||||
policy->user_policy.policy = policy->policy;
|
||||
|
||||
unlock_policy_rwsem_write(cpu);
|
||||
|
||||
if (ret) {
|
||||
dprintk("setting policy failed\n");
|
||||
goto err_out_unregister;
|
||||
|
Loading…
Reference in New Issue
Block a user