Bug 1643

Summary: Fan status not working in D600 laptop
Product: ACPI Reporter: ow (ow.mun.heng)
Component: Power-FanAssignee: Luming Yu (luming.yu)
Status: REJECTED INVALID    
Severity: normal CC: acpi-bugzilla, ow.mun.heng
Priority: P2    
Hardware: i386   
OS: Linux   
Kernel Version: 2.4.23-cpufreq-patched Subsystem:
Regression: --- Bisected commit-id:
Attachments: output of acpidmp
output of acpidmp DSDT | acpidiasm
output of acpidmp FACP | acpitbl
output of biosdecode
My kernel config file
output of dmesg
output of dmidecode
Zip of dsdt.aml/hex/dsl
output of iasl -tc
cat /proc/interuppts
output of lspci -vv

Description ow 2003-12-04 01:24:38 UTC
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)
Comment 1 ow 2003-12-04 01:27:15 UTC
Created attachment 1617 [details]
output of acpidmp
Comment 2 ow 2003-12-04 01:28:09 UTC
Created attachment 1618 [details]
output of acpidmp DSDT | acpidiasm
Comment 3 ow 2003-12-04 01:28:56 UTC
Created attachment 1619 [details]
output of acpidmp FACP | acpitbl
Comment 4 ow 2003-12-04 01:29:28 UTC
Created attachment 1620 [details]
output of biosdecode
Comment 5 ow 2003-12-04 01:30:03 UTC
Created attachment 1621 [details]
My kernel config file
Comment 6 ow 2003-12-04 01:30:28 UTC
Created attachment 1622 [details]
output of dmesg
Comment 7 ow 2003-12-04 01:31:14 UTC
Created attachment 1623 [details]
output of dmidecode
Comment 8 ow 2003-12-04 01:32:24 UTC
Created attachment 1624 [details]
Zip of dsdt.aml/hex/dsl
Comment 9 ow 2003-12-04 01:33:00 UTC
Created attachment 1625 [details]
output of iasl -tc
Comment 10 ow 2003-12-04 01:33:31 UTC
Created attachment 1626 [details]
cat  /proc/interuppts
Comment 11 ow 2003-12-04 01:34:08 UTC
Created attachment 1627 [details]
output of lspci -vv
Comment 12 Luming Yu 2003-12-11 18:33:37 UTC
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!


Comment 13 ow 2003-12-14 21:31:23 UTC
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..
Comment 14 ow 2003-12-21 17:13:53 UTC
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.
Comment 15 Luming Yu 2004-01-01 21:40:35 UTC
  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.
Comment 16 Rafael J. Wysocki 2008-10-05 03:49:06 UTC
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 &gt;= 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.