Author: Thomas Renninger 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 cpufreq.c | 10 ++++++++++ 1 files changed, 10 insertions(+) Index: linux-2.6.15/drivers/cpufreq/cpufreq.c =================================================================== --- linux-2.6.15.orig/drivers/cpufreq/cpufreq.c 2006-01-03 04:21:10.000000000 +0100 +++ linux-2.6.15/drivers/cpufreq/cpufreq.c 2006-01-20 11:11:55.000000000 +0100 @@ -1402,6 +1402,16 @@ policy.policy = data->user_policy.policy; policy.governor = data->user_policy.governor; + /* BIOS might change freq behind our back + -> ask driver for current freq and notify + governors about a change + */ + if (cpufreq_driver->get){ + policy.cur = cpufreq_driver->get(cpu); + if (data->cur != policy.cur) + cpufreq_out_of_sync(cpu, data->cur, policy.cur); + } + ret = __cpufreq_set_policy(data, &policy); up(&data->lock);