Latest working kernel version: Earliest failing kernel version: Distribution:ArchLinux stable Hardware Environment: Acer Extensa 3001 WLMi Intel(R) Pentium(R) M processor 1.50GHz Software Environment: Problem Description: cpufreq reports wrong scaling frequencies on my Acer Eaxtensa 3001WLMi. CPU is a Pentium M 1.5GHz. I tried both available BIOS Versions (3A08 and 3A10) and use a fixed DSDT. The are no warnings or erros about acpi in the dmesg output. some infos # cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies 1600000 1400000 1200000 800000 600000 # cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_driver acpi-cpufreq # cat /proc/version Linux version 2.6.24.4 (michael@acer01) (gcc version 4.3.0 (GCC) ) #3 SMP PREEMPT Wed Apr 2 19:31:01 CEST 2008 # cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 13 model name : Intel(R) Pentium(R) M processor 1.50GHz stepping : 8 cpu MHz : 1400.000 cache size : 2048 KB fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 2 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss tm pbe nx up bts est tm2 bogomips : 2999.74 clflush size : 64 Steps to reproduce: I think it depends on my Hardware.
Created attachment 15582 [details] output of 'lspci -vvv' attached output of 'lspci -vvv'
Created attachment 15583 [details] output of 'acpidump'
Created attachment 15584 [details] output of 'dmesg | grep -i acpi'
Name (PPSS, Package (0x05) { Package (0x06) { 0x0640, 0x5DC0, 0x0A, 0x0A, 0x89, 0x00 }, Package (0x06) { 0x0578, 0x4E20, 0x0A, 0x0A, 0x8A, 0x01 }, Package (0x06) { 0x04B0, 0x4650, 0x0A, 0x0A, 0x8B, 0x02 }, Package (0x06) { 0x0320, 0x3E80, 0x0A, 0x0A, 0x8C, 0x03 }, Package (0x06) { 0x0258, 0x2EE0, 0x0A, 0x0A, 0x8D, 0x04 } }) 1600000 1400000 1200000 800000 600000 is exactly what your BIOS is exporting to the OS. If you want different numbers, you need a new BIOS.
There is no newer BIOS version available, but a while ago I figured out that loading a fixed DSDT table with the correct values for the freqs work. But I don't use acpi_cpufreq anymore for freq. scaling. I use a patched speedstep-centrino.c file with added support for my CPU now.
Created attachment 43992 [details] fixed DSDT table
Created attachment 44002 [details] speedstep-centrino.c patch
Created attachment 44012 [details] corrected speedstep-centrino.c patch sorry, the first patch contains a mistake. It should be 100 instead of 133 for base #define OPEX(mhz, base, mva, mvb, mvc, mvd) \ { \ .frequency = (mhz) * 1000, \ .index = (((mhz)/(base)) << 8) | ((mva - 700) / 16) \ } /* Intel Pentium M processor 715 / 1.50 GHz (Sonoma) */ static struct cpufreq_frequency_table sonoma_1500[] = { OPEX( 600, 100, 988, 988, 988, 988), OPEX( 800, 100, 1068, 1068, 1068, 1052), OPEX(1000, 100, 1148, 1148, 1132, 1116), OPEX(1200, 100, 1228, 1212, 1212, 1180), OPEX(1500, 100, 1340, 1324, 1308, 1276), { .frequency = CPUFREQ_TABLE_END } };