Battery woes since going 6.0-BETA3 -> 6.0-STABLE

Nate Lawson nate at root.org
Tue Nov 15 11:58:09 PST 2005


Ulrich Spoerlein wrote:
> I updated my system yesterday from BETA3 to  the current RELENG_6.
> Booting my system this morning, I found it in a rather unusable state.
> 
> First of all, there were problems with BETA3 before. When charging the
> battery (only when charging!) wmbsdbatt would periodically freeze the
> system which made MP3 playback impossible. Ok, I first thought wmbsdbatt
> is calling sysctl to get the values and sysctl is under Giant. So no
> problem.
> 
> Funny thing is, it only occurred when charging, not when running on
> batteries or without them.

Something in how your system implements the EC means the _BST method is 
taking a very long time when charging batteries.  You can work around 
this (but lose battery status) with:

debug.acpi.disabled="cmbat"

To verify this, put some printfs in acpi_cmbat.c around this line:
as = AcpiEvaluateObject(h, "_BST", NULL, &bst_buffer);

You'll see that when it hangs, you'll get the printf before but not 
after this method.  This won't help solve the problem though since the 
actual battery access will be performed by the EC and that is a separate 
CPU (microcontroller).  So we can't exactly debug it.

However, I suspect what I'm working on right now (burst mode support) 
will alleviate the problems.  I probably won't have time to work on this 
until the next holiday (in a few weeks).

> Now updating to the current RELENG_6 I get the system freezes whenever
> running wmbsdbatt. This goes as far as the USB devices losing contact
> (!!). I thought my kbd/mouse went wacko, and found the following in
> messages
> 
> This is because wmbsdbatt is polling the battery (which right now, is
> not even present, as I'm running on AC).
> 
> I'm running a Dell Inspiron 8600, these are the relevant acpi lines from
> dmesg
> acpi0: <DELL CPi R  > on motherboard
> pci_link0: <ACPI PCI Link LNKA> irq 11 on acpi0
> pci_link1: <ACPI PCI Link LNKB> irq 11 on acpi0
> pci_link2: <ACPI PCI Link LNKC> irq 11 on acpi0
> pci_link3: <ACPI PCI Link LNKD> irq 11 on acpi0
> pci_link4: <ACPI PCI Link LNKE> on acpi0
> pci_link5: <ACPI PCI Link LNKH> irq 11 on acpi0
> Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000
> acpi_timer0: <24-bit timer at 3.579545MHz> port 0x808-0x80b on acpi0
> cpu0: <ACPI CPU> on acpi0
> est0: <Enhanced SpeedStep Frequency Control> on cpu0
> p4tcc0: <CPU Frequency Thermal Control> on cpu0
> acpi_acad0: <AC Adapter> on acpi0
> battery0: <ACPI Control Method Battery> on acpi0
> battery1: <ACPI Control Method Battery> on acpi0
> acpi_lid0: <Control Method Lid Switch> on acpi0
> acpi_button0: <Power Button> on acpi0
> acpi_button1: <Sleep Button> on acpi0
> 
> I will revert 6.0-RELEASE for now, I guess the smart battery support is
> causing problems for me.

You don't have smart battery, therefore it can't be the issue.

-- 
Nate


More information about the freebsd-acpi mailing list