[Bugme-new] [Bug 4260] New: Dell Inspiron 8600c's BIOS changes P-state when running on full batteries

bugme-daemon at osdl.org bugme-daemon at osdl.org
Sun Feb 27 03:00:26 PST 2005


http://bugme.osdl.org/show_bug.cgi?id=4260

           Summary: Dell Inspiron 8600c's BIOS changes P-state when running
                    on full batteries
    Kernel Version: 2.6.10
            Status: NEW
          Severity: normal
             Owner: acpi_bios at kernel-bugs.osdl.org
         Submitter: dg-kernel-bug at zapek.com
                CC: Matt_Domsch at dell.com


Distribution: Debian/unstable 
Hardware Environment: Dell Inspiron 8600c BIOS A13 
Problem Description: 
The BIOS changes power state when switching to batteries even when the battery 
is full and doesn't notify the kernel when AC is plugged back. 
 
Steps to reproduce: 
 
Machine ranges from 600MHz to 1.4GHz. SpeedStep is enabled in the BIOS. There 
is no speedstep daemon like cpudyn or anything. My problem is that the machine 
gets stuck to 600MHz when I switch to batteries, this is how I reproduce the 
problem (works everytime). 
  
- make sure we are on AC 
- make sure scaling_governor is performance 
- make sure we are running at 1.4GHz (cat /proc/cpuinfo) 
- switch to powersave (I use echo "powersave" >cpu_governor) 
- check that it's running at 600MHz, all fine 
- switch to batteries 
- check that it's still running at 600MHz, it is 
- switch again to performance 
- in the log comes a: 
  Warning: CPU frequency is 1400000, cpufreq assumed 600000 kHz. 
- but the cpu frequency stays at 600MHz. There's no other way than to 
reboot to get it back at 1.4GHz. Even with AC plugged back. 
 
There are some conclusions by Dominik Brodowski while he tried to implement a 
workaround: 
 
Thanks. Now I understand the problem. The BIOS tells the ACPI subsystem to 
limit the CPU frequency to 600 MHz when you switch to battery power, which 
may be necessary if the battery can't fulfil the needs of a CPU running at 
full frequency. 
 
If the AC adapter is plugged back in, the BIOS doesn't tell the ACPI 
subsystem of it, though. So the ACPI subsystem still limits the CPU 
frequency to 600 MHz. 
 
What we can try to do is to explicitely ask the BIOS what the current limit 
for the frequency is. The attached and untested patch tries to implement 
this. 
 
And another: 
 
On Thu, Feb 10, 2005 at 07:50:37PM +0100, David Gerber wrote: 
> On Thursday 10 February 2005 18:36, you wrote: 
>  
> > Sorry about that. Please try this patch instead. 
>  
> Ok, seems better. But there's a timing issue: 
>  
> - boot on AC (performance as default) 
> - switch to powersave 
> - switch to batteries and wait about 20 seconds 
> - it prints "Warning: CPU frequency is 1400000, cpufreq assumed 600000 kHz" 
> - switch to performance 
> - it works.. 1.4 GHz 
>  
> if I do that same without the waiting 20 seconds (that is.. switching to  
> performance before the warning is printed), it stays at 600 kHz forever. 
>  
> Plugging the AC back doesn't change anything. If I switched to performance  
> before getting the warning it stays at 600 kHz no matter what. 
>  
> Here's a log of what happens if I don't wait these 20 seconds (the message  
> comes out afterwards then, and prints the same). 
>  
> Also this is interesting as it currently (if I wait 20 seconds at least)  
> allows me to use the full frequency range even on batteries. But this could  
> be used to allow people to minimize the frequency when being run on  
batteries  
> (through another governor or so).. anyway, just an idea. Might not even be  
> possible since the bios doesn't seem to tell anything when it's put back on  
> AC. 
 
This all sounds like some serious BIOS bug. BIOS should only limit P-states 
(and keep it that way) if the battery isn't strong enough for it while 
running on battery power. And it should notify the kernel of all such 
changes. Is there a BIOS update available? Also, Dell is improving its Linux 
support, so you might have success contacting them on this issue.

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.



More information about the Bugme-new mailing list