Bug 10386 - cpufreq reports wrong scaling_freqs - Acer Extensa 3001WLMi
Summary: cpufreq reports wrong scaling_freqs - Acer Extensa 3001WLMi
Status: CLOSED DOCUMENTED
Alias: None
Product: ACPI
Classification: Unclassified
Component: BIOS (show other bugs)
Hardware: All Linux
: P1 normal
Assignee: acpi_bios
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-04-02 14:39 UTC by Michael Straube
Modified: 2011-03-03 01:29 UTC (History)
1 user (show)

See Also:
Kernel Version: 2.6.24.4
Subsystem:
Regression: No
Bisected commit-id:


Attachments
output of 'lspci -vvv' (12.46 KB, text/plain)
2008-04-02 14:42 UTC, Michael Straube
Details
output of 'acpidump' (109.35 KB, text/plain)
2008-04-02 14:43 UTC, Michael Straube
Details
output of 'dmesg | grep -i acpi' (4.26 KB, text/plain)
2008-04-02 14:44 UTC, Michael Straube
Details
fixed DSDT table (256.39 KB, text/plain)
2011-01-18 10:19 UTC, Michael Straube
Details
speedstep-centrino.c patch (4.64 KB, text/plain)
2011-01-18 10:27 UTC, Michael Straube
Details
corrected speedstep-centrino.c patch (4.64 KB, application/octet-stream)
2011-01-18 10:38 UTC, Michael Straube
Details

Description Michael Straube 2008-04-02 14:39:43 UTC
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.
Comment 1 Michael Straube 2008-04-02 14:42:24 UTC
Created attachment 15582 [details]
output of 'lspci -vvv'

attached output of 'lspci -vvv'
Comment 2 Michael Straube 2008-04-02 14:43:51 UTC
Created attachment 15583 [details]
output of 'acpidump'
Comment 3 Michael Straube 2008-04-02 14:44:49 UTC
Created attachment 15584 [details]
output of 'dmesg | grep -i acpi'
Comment 4 Len Brown 2011-01-18 07:53:43 UTC
            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.
Comment 5 Michael Straube 2011-01-18 10:16:57 UTC
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.
Comment 6 Michael Straube 2011-01-18 10:19:20 UTC
Created attachment 43992 [details]
fixed DSDT table
Comment 7 Michael Straube 2011-01-18 10:27:03 UTC
Created attachment 44002 [details]
speedstep-centrino.c patch
Comment 8 Michael Straube 2011-01-18 10:38:32 UTC
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 }
};

Note You need to log in before you can comment on or make changes to this bug.