2006-01-24 16:16:16

by Thomas Renninger

[permalink] [raw]
Subject: [PATCH 1/2] _PPC frequency change issues - freq already lowered by BIOS

Author: Thomas Renninger <[email protected]>

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);


Attachments:
cpufreq_bios_ppc_change (1.07 kB)