From 3ed2c73e20de89f91fdd764feaaf8881de885567 Mon Sep 17 00:00:00 2001 From: Dominik Brodowski Date: Mon, 4 Dec 2006 20:39:16 -0500 Subject: [PATCH] --- yaml --- r: 39651 b: refs/heads/master c: e11952b971ee729a8fdc2bfb1252f5760c0287b0 h: refs/heads/master i: 39649: 41ef8dcf6f010000db57f14a5c284c3ebee1b5c3 39647: 0850d3d6c0b1ebd506512abebed6bcbe0cbbb48b v: v3 --- [refs] | 2 +- .../i386/kernel/cpu/cpufreq/speedstep-lib.c | 17 +++++++---------- trunk/include/asm-x86_64/msr.h | 1 + 3 files changed, 9 insertions(+), 11 deletions(-) diff --git a/[refs] b/[refs] index 4514684e2186..d8626c55f6ef 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 7531a0b56f6211a5407c8cda4968c3b7ca9496ab +refs/heads/master: e11952b971ee729a8fdc2bfb1252f5760c0287b0 diff --git a/trunk/arch/i386/kernel/cpu/cpufreq/speedstep-lib.c b/trunk/arch/i386/kernel/cpu/cpufreq/speedstep-lib.c index a709f6d67e25..d59277c00911 100644 --- a/trunk/arch/i386/kernel/cpu/cpufreq/speedstep-lib.c +++ b/trunk/arch/i386/kernel/cpu/cpufreq/speedstep-lib.c @@ -123,23 +123,22 @@ static unsigned int pentiumM_get_frequency(void) return (msr_tmp * 100 * 1000); } -#ifdef CONFIG_X86_32 static unsigned int pentium_core_get_frequency(void) { u32 fsb = 0; u32 msr_lo, msr_tmp; rdmsr(MSR_FSB_FREQ, msr_lo, msr_tmp); - /* see table B-2 of 24547212.pdf */ + /* see table B-2 of 25366920.pdf */ switch (msr_lo & 0x07) { case 5: - fsb = 400; + fsb = 100000; break; case 1: - fsb = 533; + fsb = 133333; break; case 3: - fsb = 667; + fsb = 166667; break; default: printk(KERN_ERR "PCORE - MSR_FSB_FREQ undefined value"); @@ -149,11 +148,11 @@ static unsigned int pentium_core_get_frequency(void) dprintk("PCORE - MSR_IA32_EBL_CR_POWERON: 0x%x 0x%x\n", msr_lo, msr_tmp); msr_tmp = (msr_lo >> 22) & 0x1f; - dprintk("bits 22-26 are 0x%x, speed is %u\n", msr_tmp, (msr_tmp * fsb * 1000)); + dprintk("bits 22-26 are 0x%x, speed is %u\n", msr_tmp, (msr_tmp * fsb)); - return (msr_tmp * fsb * 1000); + return (msr_tmp * fsb); } -#endif + static unsigned int pentium4_get_frequency(void) { @@ -205,10 +204,8 @@ static unsigned int pentium4_get_frequency(void) unsigned int speedstep_get_processor_frequency(unsigned int processor) { switch (processor) { -#ifdef CONFIG_X86_32 case SPEEDSTEP_PROCESSOR_PCORE: return pentium_core_get_frequency(); -#endif case SPEEDSTEP_PROCESSOR_PM: return pentiumM_get_frequency(); case SPEEDSTEP_PROCESSOR_P4D: diff --git a/trunk/include/asm-x86_64/msr.h b/trunk/include/asm-x86_64/msr.h index e61582288737..207fed998a0b 100644 --- a/trunk/include/asm-x86_64/msr.h +++ b/trunk/include/asm-x86_64/msr.h @@ -189,6 +189,7 @@ static inline unsigned int cpuid_edx(unsigned int op) #define MSR_IA32_PERFCTR0 0xc1 #define MSR_IA32_PERFCTR1 0xc2 +#define MSR_FSB_FREQ 0xcd #define MSR_MTRRcap 0x0fe #define MSR_IA32_BBL_CR_CTL 0x119