Home Home > GIT Browse
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.fr>2003-06-13 21:10:48 -0700
committerLinus Torvalds <torvalds@home.transmeta.com>2003-06-13 21:10:48 -0700
commit7afd3b34d82a04235d0ce4a00ca4129cf5272461 (patch)
treef0d267bb094f055589e586566fed77ef96394293
parentd249e539cef485bdcd0ad33ca982d39f938ac87f (diff)
[PATCH] cpufreq: correct initialization on Intel Coppermines
Intel seems to have changed their mind, and now document the detection process for speedstep-enabled Pentium III Coppermines: http://www.intel.com/support/processors/sb/cs-003779-prd24.htm Here is a patch. I kept the setup parameter, but it might be removed now?
-rw-r--r--arch/i386/kernel/cpu/cpufreq/speedstep-ich.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/arch/i386/kernel/cpu/cpufreq/speedstep-ich.c b/arch/i386/kernel/cpu/cpufreq/speedstep-ich.c
index 65137016e293..f19b6f395531 100644
--- a/arch/i386/kernel/cpu/cpufreq/speedstep-ich.c
+++ b/arch/i386/kernel/cpu/cpufreq/speedstep-ich.c
@@ -503,6 +503,17 @@ static unsigned int speedstep_detect_processor (void)
if (speedstep_coppermine)
return SPEEDSTEP_PROCESSOR_PIII_C;
+ /*
+ * If the processor is a mobile version,
+ * platform ID has bit 50 set
+ * it has SpeedStep technology if either
+ * bit 56 or 57 is set
+ */
+ rdmsr(MSR_IA32_PLATFORM_ID, msr_lo, msr_hi);
+ dprintk(KERN_DEBUG "cpufreq: Coppermine: MSR_IA32_PLATFORM ID is 0x%x, 0x%x\n", msr_lo, msr_hi);
+ if ((msr_hi & (1<<18)) && (msr_hi & (3<<24)))
+ return SPEEDSTEP_PROCESSOR_PIII_C;
+
printk(KERN_INFO "cpufreq: in case this is a SpeedStep-capable Intel Pentium III Coppermine\n");
printk(KERN_INFO "cpufreq: processor, please pass the boot option or module parameter\n");
printk(KERN_INFO "cpufreq: `speedstep_coppermine=1` to the kernel. Thanks!\n");