Distribution: Redhat linux 9.0 Hardware Environment: Dell D600 Laptop Software Environment: Problem Description: Cannot get fan status and cannot get the fan to turn off. Fan is On _all_ the time. Suspect this is giving me poor battery life. i8k utils will not work. i8kfan does nothing. insmod i8k force=1 can get /proc/i8k but nothing can change it. #ls -laR of /proc/acpi/fan Total 0 Steps to reproduce: Just cat /proc/acpi/fan Attachment : I attached a whole lot of stuffs. My DSDT table in hex, dsl, aml, output of lspic -vv, dmidecode,biosdecode, acpidmp, config_file (all acpi related stuffs are compiled into kernel and not as module. This does not include the Toshiba/asus stuffs)
Created attachment 1617 [details] output of acpidmp
Created attachment 1618 [details] output of acpidmp DSDT | acpidiasm
Created attachment 1619 [details] output of acpidmp FACP | acpitbl
Created attachment 1620 [details] output of biosdecode
Created attachment 1621 [details] My kernel config file
Created attachment 1622 [details] output of dmesg
Created attachment 1623 [details] output of dmidecode
Created attachment 1624 [details] Zip of dsdt.aml/hex/dsl
Created attachment 1625 [details] output of iasl -tc
Created attachment 1626 [details] cat /proc/interuppts
Created attachment 1627 [details] output of lspci -vv
Does this laptop works well on Windows? From your DSDT, _STA method of BAT0 looks well. Below statement will determine whether BAT0/BAT1 is present or not. And (MIS0, 0x02, Local0) And below code could be the only chance to change above decision: Device (PCI0) { .... Method (_INI, 0, NotSerialized) { Store (SMI (0x98, 0x00), MIS0) And (MIS0, Or (0x01, Or (0x02, 0x10)), MIS0) ... } .... } Obviously, SMI(0x98,0x00) is the root. Method (SMI, 2, NotSerialized) { Acquire (SMIX, 0xFFFF) Store (Arg1, \_SB.SMIA) Store (Arg0, \_SB.SMIC) Store (\_SB.SMIC, Local0) While (LNot (LEqual (Local0, 0x00))) { Store (\_SB.SMIC, Local0) } Store (\_SB.SMIA, Local1) Release (SMIX) Return (Local1) } Obviously, the writter of above code try to get the correct battery present status after the while loop. We need to verify \_SB.SMIA has the correct value, before we could determine whether this is Linux ACPI bug!
This laptop works Ok with Windows (XP Pro) The fan does not turn on all the time at all. In fact, the fan can be controlled via a third party util called i8kFanGui. It can be turned up (3000+ rpm), turned off (0rpm) and left as is. I also noticed that in the cat /proc/acpi/thermal*/THM/cooling_mode gives <not supported> I'm not sure if that's anything. Also read about turning acpi=off when loading to determine if ACPI is playing a role. Will try that..
Booting with ACPI=Off, fan will not be turned on until laptop temperature is high and BIOS kicks in and turns on fan. Tested with i8k modules, the i8kctl program is able to control the fan with much success. I'm pretty happy with that.
The DSL file shows that your laptop don't have FAN devices and Active cooling mode support. So it's impossbile to let ACPI code to control your FAN. So it is not linux ACPI kernel bug. Maybe windows is using SMM BIOS code to support FAN rather than ACPI code too. Regarding cooling_mode gives <not supported>, it just give false information. I have a patch filed at bug 1770 So, I will close this bug.
On Sunday, 5 of October 2008, Takashi Iwai wrote: > At Sat, 4 Oct 2008 19:32:55 +0200 (CEST), > Rafael J. Wysocki wrote: > > > > Bug-Entry : http://bugzilla.kernel.org/show_bug.cgi?id=11643 > > Subject : ALSA sound/core/pcm_native.c:1947: BUG? (err >= 0) > > Submitter : sangu <sangu.gnome@gmail.com> > > Date : 2008-09-24 16:51 (11 days old) > > This is unlikely a 2.6.27 regression. > It's a bug to be fixed, though.