diff options
author | Thomas Renninger <trenn@suse.de> | 2006-01-26 12:46:33 -0500 |
---|---|---|
committer | Dave Jones <davej@redhat.com> | 2006-01-26 13:49:39 -0500 |
commit | 0961dd0d217d072df736d964f47c2b6600931e19 (patch) | |
tree | 4f90dfb0f93608cd331a8e0b61f849bc9946451b /drivers/cpufreq/cpufreq.c | |
parent | c70ca00f77eb1bb69c5a2d029b3a911bc88eac1b (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.c | 8 |
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); |