aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/cpufreq/cpufreq.c
diff options
context:
space:
mode:
authorThomas Renninger <trenn@suse.de>2006-01-26 12:46:33 -0500
committerDave Jones <davej@redhat.com>2006-01-26 13:49:39 -0500
commit0961dd0d217d072df736d964f47c2b6600931e19 (patch)
tree4f90dfb0f93608cd331a8e0b61f849bc9946451b /drivers/cpufreq/cpufreq.c
parentc70ca00f77eb1bb69c5a2d029b3a911bc88eac1b (diff)
[CPUFREQ] _PPC frequency change issues
BIOS might change frequency behind our back when BIOS changes allowed frequencies via _PPC. In this case cpufreq core got out of sync. Ask driver for current freq and notify governors about a change Signed-off-by: Thomas Renninger <trenn@suse.de> Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com> Signed-off-by: Dave Jones <davej@redhat.com>
Diffstat (limited to 'drivers/cpufreq/cpufreq.c')
-rw-r--r--drivers/cpufreq/cpufreq.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c
index 0a6c4c8642e7..7a511479ae29 100644
--- a/drivers/cpufreq/cpufreq.c
+++ b/drivers/cpufreq/cpufreq.c
@@ -1429,6 +1429,14 @@ int cpufreq_update_policy(unsigned int cpu)
1429 policy.policy = data->user_policy.policy; 1429 policy.policy = data->user_policy.policy;
1430 policy.governor = data->user_policy.governor; 1430 policy.governor = data->user_policy.governor;
1431 1431
1432 /* BIOS might change freq behind our back
1433 -> ask driver for current freq and notify governors about a change */
1434 if (cpufreq_driver->get) {
1435 policy.cur = cpufreq_driver->get(cpu);
1436 if (data->cur != policy.cur)
1437 cpufreq_out_of_sync(cpu, data->cur, policy.cur);
1438 }
1439
1432 ret = __cpufreq_set_policy(data, &policy); 1440 ret = __cpufreq_set_policy(data, &policy);
1433 1441
1434 mutex_unlock(&data->lock); 1442 mutex_unlock(&data->lock);