--- /usr/src/linux-24-ac/arch/i386/kernel/speedstep.c Sat Jun 1 14:58:09 2002 +++ cpufreq/CVS-24/cpufreq/linux/arch/i386/kernel/speedstep.c Sat Jun 1 14:56:25 2002 @@ -1,5 +1,5 @@ /* - * $Id: speedstep.c,v 1.7.2.2 2002/05/28 18:33:13 db Exp $ + * $Id: speedstep.c,v 1.7.2.3 2002/06/01 12:56:25 db Exp $ * * (C) 2001 Dave Jones, Arjan van de ven. * (C) 2002 Dominik Brodowski @@ -14,7 +14,7 @@ * * BIG FAT DISCLAIMER: Work in progress code. Possibly *dangerous* * - * Version $Id: speedstep.c,v 1.7.2.2 2002/05/28 18:33:13 db Exp $ + * Version $Id: speedstep.c,v 1.7.2.3 2002/06/01 12:56:25 db Exp $ */ @@ -353,10 +353,12 @@ rdmsr(MSR_IA32_EBL_CR_POWERON, msr_lo, msr_hi); /* decode value */ - if (c->x86_mask != 0x01) /* different on early PIII */ - msr_lo &= 0x0bc00000; - else + if ((c->x86_model == 0x08) && (c->x86_mask == 0x01)) + /* different on early Coppermine PIII */ msr_lo &= 0x03c00000; + else + msr_lo &= 0x0bc00000; + msr_lo >>= 22; while (msr_lo != msr_decode_mult[i].bitmap) { if (msr_decode_mult[i].bitmap == 0xff) @@ -500,7 +502,7 @@ int result; unsigned int speed; - printk(KERN_INFO "cpufreq: Intel(R) SpeedStep(TM) support $Revision: 1.7.2.2 $\n"); + printk(KERN_INFO "cpufreq: Intel(R) SpeedStep(TM) support $Revision: 1.7.2.3 $\n"); /* detect processor */ speedstep_processor = speedstep_detect_processor();