]> git.hungrycats.org Git - linux/commitdiff
[PATCH] cpufreq: correct initialization on Intel Coppermines
authorSamuel Thibault <samuel.thibault@ens-lyon.fr>
Sat, 14 Jun 2003 04:10:48 +0000 (21:10 -0700)
committerLinus Torvalds <torvalds@home.transmeta.com>
Sat, 14 Jun 2003 04:10:48 +0000 (21:10 -0700)
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?

arch/i386/kernel/cpu/cpufreq/speedstep-ich.c

index 65137016e2933adecf4671bf9536ee742972a9fd..f19b6f395531a0c30871695af75d31cbd5540abc 100644 (file)
@@ -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");