Bug 13157 - Fan not switching properly with Intel ICH9 and Insyde H2O bios
Summary: Fan not switching properly with Intel ICH9 and Insyde H2O bios
Status: CLOSED DUPLICATE of bug 13278
Alias: None
Product: ACPI
Classification: Unclassified
Component: Power-Fan (show other bugs)
Hardware: All Linux
: P1 normal
Assignee: Zhang Rui
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-04-24 10:29 UTC by Thoralf Dassler
Modified: 2009-05-20 22:31 UTC (History)
3 users (show)

See Also:
Kernel Version: 2.6.28.7 (also tried 2.6.29.1)
Subsystem:
Regression: No
Bisected commit-id:


Attachments
dmesg (30.17 KB, application/octet-stream)
2009-04-27 11:30 UTC, Thoralf Dassler
Details
.config (54.06 KB, application/octet-stream)
2009-04-27 11:33 UTC, Thoralf Dassler
Details
lspci-vv (22.10 KB, application/octet-stream)
2009-04-27 11:37 UTC, Thoralf Dassler
Details
acpidump (180.00 KB, application/octet-stream)
2009-04-27 11:42 UTC, Thoralf Dassler
Details
customized DSDT (337.78 KB, application/octet-stream)
2009-04-28 02:58 UTC, Zhang Rui
Details
dmesg_ACPI_only (4.12 KB, application/octet-stream)
2009-05-07 16:35 UTC, Thoralf Dassler
Details
dmesg_all (29.75 KB, text/plain)
2009-05-07 16:35 UTC, Thoralf Dassler
Details
dmesg_2 (30.63 KB, text/plain)
2009-05-08 09:34 UTC, Thoralf Dassler
Details
dmesg_3 (30.55 KB, application/octet-stream)
2009-05-13 12:24 UTC, Thoralf Dassler
Details
dmesg_4_fan=min (709.69 KB, application/octet-stream)
2009-05-18 14:26 UTC, Thoralf Dassler
Details
dmesg_4_fan=off (592.41 KB, application/octet-stream)
2009-05-18 14:26 UTC, Thoralf Dassler
Details

Description Thoralf Dassler 2009-04-24 10:29:51 UTC
I recently bought a Toshiba Satellite L300 - 1AQ, which has an ICH9 chipset. For this laptop Toshiba have switched BIOS to Insyde H2O; I have the latest version, which is 1.60.

It looks as though the kernel's Toshiba Laptop extras (under power management) are not working (properly) for this chipset / BIOS combination
because of the following symptoms:

After booting Linux with a cold CPU, the fan runs at minimum speed. The fan only spins up to maximum speed when the critical CPU temperature is reached; there a now in-between spin states before the critical trigger kicks in. Once the CPU is cold again (finger and listening test), the fan keeps spinning at maximum and the only way to get it spin down again is to reboot Linux.

I had the laptop collected by Toshiba and they replaced the motherboard; same symptoms with the original and the new board. I also tried these Linux
boot options to no effect:

acpi=rsdt
acpi.power_nocheck=1

acpi_osi=!Linux acpi_osi=!Windows 2001
acpi_osi=!Windows 2001 SP1
acpi_osi=!Windows 2001 SP2
Comment 1 Zhang Rui 2009-04-27 01:49:04 UTC
please attach the acpidump output using the latest pmtools at:
http://www.lesswatts.org/projects/acpi/utilities.php
Comment 2 Zhang Rui 2009-04-27 07:45:45 UTC
please attach the full dmesg output after boot.
Comment 3 Thoralf Dassler 2009-04-27 11:30:34 UTC
Created attachment 21130 [details]
dmesg
Comment 4 Thoralf Dassler 2009-04-27 11:33:10 UTC
Created attachment 21131 [details]
.config
Comment 5 Thoralf Dassler 2009-04-27 11:37:36 UTC
Created attachment 21132 [details]
lspci-vv
Comment 6 Thoralf Dassler 2009-04-27 11:42:01 UTC
Created attachment 21133 [details]
acpidump
Comment 7 Thoralf Dassler 2009-04-27 11:46:08 UTC
Please see attachments as requested. Just in case, I also include .config and lspci -vv

Also, this line in the original message "there a now in-between spin states ..." should read: "there are no in-between spin states ..."
Comment 8 Johannes Pirkl 2009-04-27 12:07:26 UTC
I can confirm this bug on my recently purchased Toshiba Satellite L300-218. It has the same chipset and BIOS. I also noticed that ACPI doesn't seem to report the correct temperature:

[root@WarPig]# cat /proc/acpi/thermal_zone/THRM/temperature 
temperature:             0 C

And the trip-points seem strange as well:

[root@WarPig]# cat /proc/acpi/thermal_zone/THRM/trip_points 
critical (S5):           106 C
passive:                 106 C: tc1=2 tc2=5 tsp=300 devices=CPU0 CPU1 
active[0]:               70 C: devices= FAN
Comment 9 Thoralf Dassler 2009-04-27 13:05:52 UTC
I get the same output, except for the "critical (S5)" value, which in my case is 92.

I am not sure if this significant for our problem because I am not 100% sure whether the kernel actually tries to switch the fan speed on the basis of these figures.
Comment 10 Zhang Rui 2009-04-28 02:51:25 UTC
(In reply to comment #0)
> 
> After booting Linux with a cold CPU, the fan runs at minimum speed. The fan
> only spins up to maximum speed when the critical CPU temperature is reached;
> there a now in-between spin states before the critical trigger kicks in. Once
> the CPU is cold again (finger and listening test), the fan keeps spinning at
> maximum and the only way to get it spin down again is to reboot Linux.
> 
please attach the output of "grep . /proc/acpi/thermal_zone/*/*" with the spinning fan and cold CPU.
Comment 11 Zhang Rui 2009-04-28 02:58:12 UTC
Created attachment 21150 [details]
customized DSDT

Thoralf,
please set CONFIG_ACPI_DEBUG, apply this customized DSDT, rebuild your kernel and boot with acpi.debug_level=0x0f,
please attach the dmesg output when the system is running with a spinning fan and a cold cpu.
Comment 12 Zhang Rui 2009-05-05 02:13:45 UTC
ping Thoralf.
Comment 13 Thoralf Dassler 2009-05-05 10:09:31 UTC
Sorry, I was traveling without the chance to make the tests. Back as requested shortly.
Comment 14 Thoralf Dassler 2009-05-05 14:25:18 UTC
Rui,

how do I apply DSDT.hex? Do I simply

cd /usr/src/linux
cp /path/to/DSDT.hex drivers/acpi/
make

? Thanks.
Comment 15 Zhang Rui 2009-05-06 01:02:22 UTC
sorry,
here is a how to on using customized DSDT, :)
http://www.lesswatts.org/projects/acpi/overridingDSDT.php
Comment 16 Thoralf Dassler 2009-05-07 16:34:57 UTC
Rui,

please see as requested. I have created two files, a dmesg with full output, and a dmesg with ACPI alone.

Hope this helps,
Thoralf
Comment 17 Thoralf Dassler 2009-05-07 16:35:28 UTC
Created attachment 21259 [details]
dmesg_ACPI_only
Comment 18 Thoralf Dassler 2009-05-07 16:35:48 UTC
Created attachment 21260 [details]
dmesg_all
Comment 19 Zhang Rui 2009-05-08 01:10:48 UTC
sorry, you need to add this boot option as well, acpi.debug_layer=0xffffffff
Comment 20 Thoralf Dassler 2009-05-08 09:34:49 UTC
Created attachment 21275 [details]
dmesg_2
Comment 21 Thoralf Dassler 2009-05-08 09:35:29 UTC
Please see new dmesg as requested.
Comment 22 Zhang Rui 2009-05-11 06:46:35 UTC
did you get the dmesg output when the system is running with a spinning fan
and a cold cpu?

As the symptom is that fan is spinning while cpu is cool, so please get the following info when system is in this state,
1. attach the output of "grep . /proc/acpi/thermal_zone/*/*".
2. After step 1 is done, attach the dmesg output.
Comment 23 Thoralf Dassler 2009-05-11 11:43:25 UTC
I did step 2 with fan spinning and cold CPU, but not step 1. Will be back shortly.
Comment 24 Zhang Rui 2009-05-12 02:26:08 UTC
please also add the boot option "log_buf_len=16777216"
Comment 25 Thoralf Dassler 2009-05-13 12:23:39 UTC
I have done the following to create the attached dmesg_3.

1) added this to lilo.conf:
append="acpi.debug_level=0x0f acpi.debug_layer=0xffffffff log_buf_len=16777216"

2) reboot with cold CPU

3) as normal user: 'grep . /proc/acpi/thermal_zone/*/*' and 'dmesg >> dmesg_3'

However, yesterday I realised that I have explained the first half of the problem incorrectly; apologies for the confusion. When the CPU is cold and I turn the computer on, the CPU fan briefly comes on but before the boot loader screen appears, the BIOS switches the CPU fan OFF; the Linux boot process keeps the fan OFF as well. I only realised this yesterday when I looked at the underside of the laptop, from where I can see the CPU fan (what I had mistaken for a slow spinning CPU fan is actually the fan on the graphics chip). Again, sorry for the confusion. 

The second half of the problem remains unchanged: when the critical CPU temperature is reached, the CPU fan starts spinning at max and the only way to get it spin down again is to reboot. At this point, the fan spins down to a minimum speed (presumably the BIOS decides that the CPU is not completely cold). Then, after the reboot, the spin speed remains unchanged until the critical temperature is reached once again.

Hope this helps rather than confuses.
Comment 26 Thoralf Dassler 2009-05-13 12:24:02 UTC
Created attachment 21326 [details]
dmesg_3
Comment 27 Thoralf Dassler 2009-05-18 14:25:41 UTC
Apologies, dmesg_3 is of cause NOT what we want. Please see two dmesg_4, one with cold CPU and fan OFF, as well as one with cold CPU and fan at minimum.
Comment 28 Thoralf Dassler 2009-05-18 14:26:14 UTC
Created attachment 21410 [details]
dmesg_4_fan=min
Comment 29 Thoralf Dassler 2009-05-18 14:26:40 UTC
Created attachment 21411 [details]
dmesg_4_fan=off
Comment 30 Zhang Rui 2009-05-19 06:25:52 UTC
this is a duplicate of bug #13278

*** This bug has been marked as a duplicate of bug 13278 ***
Comment 31 Len Brown 2009-05-20 22:31:31 UTC
blech, this BIOS has dummy ACPI fan device that always
claims to be on, and requests to turn it on and off
do nothing.

        PowerResource (FN00, 0x00, 0x0000)
        {
            Method (_STA, 0, Serialized)
            {
                Return (One)
            }

            Method (_ON, 0, Serialized)
            {
            }

            Method (_OFF, 0, Serialized)
            {
            }
        }

        Device (FAN)
        {
            Name (_HID, EisaId ("PNP0C0B"))
            Name (_UID, Zero)
            Name (_PR0, Package (0x01)
            {
                FN00
            })
        }

...
            Name (_AL0, Package (0x01)
            {
                FAN
            })

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