2005-02-03 14:10:39

by Matthias-Christian Ott

[permalink] [raw]
Subject: [2.6 Patch] speedstep-lib.c: fix frequency multiplier for Pentium4 models 0&1

The Pentium4 models 0&1 have a longer MSR_EBC_FREQUENCY_ID register as
the models 2&3, so the bit shift must be bigger.

Signed-off-by: Matthias-Christian Ott <[email protected]>

diff -Nurp linux-2.6.11-rc3/arch/i386/kernel/cpu/cpufreq/speedstep-lib.c
linux-2.6.11-rc3-ott/arch/i386/kernel/cpu/cpufreq/speedstep-lib.c
--- linux-2.6.11-rc3/arch/i386/kernel/cpu/cpufreq/speedstep-lib.c
2004-12-24 22:35:27.000000000 +0100
+++ linux-2.6.11-rc3-ott/arch/i386/kernel/cpu/cpufreq/speedstep-lib.c
2005-02-03 16:04:59.000000000 +0100
@@ -160,7 +160,14 @@ static unsigned int pentium4_get_frequen
printk(KERN_DEBUG "speedstep-lib: couldn't detect FSB speed.
Please send an e-mail to <[email protected]>\n");

/* Multiplier. */
- mult = msr_lo >> 24;
+ if (c->x86_model < 2)
+ {
+ mult = msr_lo >> 27;
+ }
+ else
+ {
+ mult = msr_lo >> 24;
+ }

dprintk("P4 - FSB %u kHz; Multiplier %u; Speed %u kHz\n", fsb,
mult, (fsb * mult));