Bug 186383 - Fan stays off and power button fails to work after hibernate and resume
Summary: Fan stays off and power button fails to work after hibernate and resume
Alias: None
Product: Fedora
Classification: Fedora
Component: kernel
Version: 5
Hardware: All
OS: Linux
Target Milestone: ---
Assignee: Nigel Cunningham
QA Contact: Brian Brock
Depends On:
TreeView+ depends on / blocked
Reported: 2006-03-23 09:36 UTC by Benny Amorsen
Modified: 2007-11-30 22:11 UTC (History)
6 users (show)

Fixed In Version: 2.6.21-1.3194.fc7
Doc Type: Bug Fix
Doc Text:
Clone Of:
Last Closed: 2007-06-12 19:20:48 UTC
Type: ---

Attachments (Terms of Use)
Output from hibernate --bug-report (4.01 KB, text/plain)
2006-11-26 21:26 UTC, Benny Amorsen
no flags Details

Description Benny Amorsen 2006-03-23 09:36:31 UTC
Description of problem:

After hibernate with pm-hibernate, followed by resume, the CPU fan stays off.
This makes the notebook very quiet, but also very hot. The power button fails to
react to presses (except when held down for 4 seconds).

Version-Release number of selected component (if applicable):


How reproducible:

Every time

Steps to Reproduce:
1. Get a HP nx8220 notebook
2. Turn it on, log in
3. pm-hibernate
4. Resume

Actual results:

Fans stay off, ACPI power button does not work

Expected results:

Fans work normally, ACPI power button works

Additional info:

Comment 1 Dave Jones 2006-10-16 19:19:47 UTC
A new kernel update has been released (Version: 2.6.18-1.2200.fc5)
based upon a new upstream kernel release.

Please retest against this new kernel, as a large number of patches
go into each upstream release, possibly including changes that
may address this problem.

This bug has been placed in NEEDINFO state.
Due to the large volume of inactive bugs in bugzilla, if this bug is
still in this state in two weeks time, it will be closed.

Should this bug still be relevant after this period, the reporter
can reopen the bug at any time. Any other users on the Cc: list
of this bug can request that the bug be reopened by adding a
comment to the bug.

In the last few updates, some users upgrading from FC4->FC5
have reported that installing a kernel update has left their
systems unbootable. If you have been affected by this problem
please check you only have one version of device-mapper & lvm2
installed.  See bug 207474 for further details.

If this bug is a problem preventing you from installing the
release this version is filed against, please see bug 169613.

If this bug has been fixed, but you are now experiencing a different
problem, please file a separate bug for the new problem.

Thank you.

Comment 2 Benny Amorsen 2006-10-18 11:06:06 UTC
I have upgraded to kernel-2.6.18-1.2708.fc6 and pm-utils-0.19-3. The problem
still exists, with the same symptoms.

Comment 3 Dennis Wagelaar 2006-10-31 07:59:36 UTC
I use kernel-2.6.18-1.2798.fc6 on an HP compaq nc6000 laptop. My problem is
_almost_ the same:

- pm-hibernate causes the lowest fan speed setting to fail when on AC power:
when using the AC adapter, the fan should always be running on lowest speed.
Higher temperatures still trigger the higher fan speeds. N.B.: when not plugged
in to AC, lowest fan speed works after resume (need to make sure the fan is off
when running pm-hibernate).
- pressing the "sleep" key on my laptop suspends it (S3). After resume, none of
the fan speed settings work.
- the pm-suspend script is unusable for me, since the laptop locks up on wake up.

Playing with the fan controls in /proc/acpi/fan gives the following:
- /proc/acpi/fan/C212/state is set to "on", which translates to lowest speed
- /proc/acpi/fan/C211/state is set to "off", as are C210 and C20F
- When echoing "on" to /proc/acpi/C211/state, the fan speeds up
- Echoing "off" to any of the fan controls has no effect
- Unplugging the AC adapter switches off the fan (C211 is still set to "on",
while C212 is set to "off")
- Plugging AC back in does _not_ switch on the fan
- After about a minute, the fan switches back on (C211 has been automatically
reset to "off")

P.S. I should note that i2c has been disabled for this laptop, as per Bug # 193209.

P.P.S. Ever since I use above kernel, I persistently get a backtrace on each
resume. Managed to recover the following from my /var/log/kernel:

Oct 31 08:51:14 localhost kernel: swsusp: Restoring Highmem
Oct 31 08:51:14 localhost kernel: BUG: sleeping function called from invalid
context at kernel/rwsem.c:20
Oct 31 08:51:14 localhost kernel: in_atomic():0, irqs_disabled():1
Oct 31 08:51:14 localhost kernel:  [<c04051db>] dump_trace+0x69/0x1af
Oct 31 08:51:14 localhost kernel:  [<c0405339>] show_trace_log_lvl+0x18/0x2c
Oct 31 08:51:14 localhost kernel:  [<c04058ed>] show_trace+0xf/0x11
Oct 31 08:51:14 localhost kernel:  [<c04059ea>] dump_stack+0x15/0x17
Oct 31 08:51:14 localhost kernel:  [<c0439446>] down_read+0x12/0x20
Oct 31 08:51:14 localhost kernel:  [<c0431601>]
Oct 31 08:51:14 localhost kernel:  [<c05a9798>] cpufreq_resume+0x118/0x135
Oct 31 08:51:14 localhost kernel:  [<c0551440>] __sysdev_resume+0x20/0x53
Oct 31 08:51:14 localhost kernel:  [<c0551583>] sysdev_resume+0x16/0x47
Oct 31 08:51:14 localhost kernel:  [<c0555767>] device_power_up+0x5/0xa
Oct 31 08:51:14 localhost kernel:  [<c0442360>] swsusp_suspend+0x74/0x90
Oct 31 08:51:14 localhost kernel:  [<c04427f6>] pm_suspend_disk+0x43/0xc9
Oct 31 08:51:14 localhost kernel:  [<c0441959>] enter_state+0x53/0x176
Oct 31 08:51:14 localhost kernel:  [<c0441b01>] state_store+0x85/0x99
Oct 31 08:51:14 localhost kernel:  [<c04a5fe6>] subsys_attr_store+0x1e/0x22
Oct 31 08:51:14 localhost kernel:  [<c04a60d9>] sysfs_write_file+0xa7/0xce
Oct 31 08:51:14 localhost kernel:  [<c046f805>] vfs_write+0xa8/0x159
Oct 31 08:51:14 localhost kernel:  [<c046fe32>] sys_write+0x41/0x67
Oct 31 08:51:14 localhost kernel:  [<c0404013>] syscall_call+0x7/0xb
Oct 31 08:51:14 localhost kernel: DWARF2 unwinder stuck at syscall_call+0x7/0xb
Oct 31 08:51:14 localhost kernel: Leftover inexact backtrace:
Oct 31 08:51:14 localhost kernel:  =======================

Comment 4 Nigel Cunningham 2006-11-09 08:52:06 UTC
Please try unloading the acpi modules prior to suspending. This may help.
You might also using the resources at http://acpi.sourceforge.net/ to check your
DSDT is ok.

Comment 5 Emile Heitor 2006-11-24 09:16:06 UTC
Exactly the same problem here with :

HP Compaq nx8220

also tried to unload acpi modules before hibernate, same result.

Comment 6 Alexey Starikovskiy 2006-11-24 09:29:47 UTC
please check if the /sys/power/disk is set to "platform" and not "shutdown" 
before doing suspend.

Comment 7 Emile Heitor 2006-11-24 11:01:24 UTC
(In reply to comment #6)
> please check if the /sys/power/disk is set to "platform" and not "shutdown" 
> before doing suspend.

/sys/power/disk is set to "shutdown", but since I switched to a suspend2-enabled
kernel (http://atrpms.net/dist/fc6/kernel-suspend2/), suspend-to-disk works
perfectly, i.e. resuming re-enables fans. I'll try to switch "shutdown" to
"platform" and let you know the result.

Comment 8 Emile Heitor 2006-11-24 11:11:29 UTC
(In reply to comment #7)

> perfectly, i.e. resuming re-enables fans. I'll try to switch "shutdown" to
> "platform" and let you know the result.

[root@penelope ~]# echo platform > /sys/power/disk
[root@penelope ~]# acpitool -f
  Fan            : on
  Fan            : on
  Fan            : off
  Fan            : off

hibernate then resume

[root@penelope ~]# acpitool -f
  Fan            : off
  Fan            : on
  Fan            : off
  Fan            : off

Comment 9 Emile Heitor 2006-11-24 11:19:20 UTC
(In reply to comment #8)

same test with 2.6.18-1.2849_1.fc6.cubbi_suspend2 :

hibernate then resume :

[imil@penelope ~]$ acpitool -f
  Fan            : on
  Fan            : on
  Fan            : off
  Fan            : off

Comment 10 Nigel Cunningham 2006-11-24 11:34:37 UTC
Assuming you're using the hibernate script with Suspend2, it's probably 
unloading ACPI modules prior to doing the suspend. If you are using it, and 
want to use swsusp instead, you might try setting the hibernate script's conf 
files (in /etc/hibernate) to not use Suspend2. Of course, being the Suspend2 
author, I won't encourage you to not use Suspend2 :)


Comment 11 Benny Amorsen 2006-11-25 23:33:19 UTC
Even with suspend2, acpi stays broken for me. The fans do turn on in the state
they were in when suspending, but they don't react to temperature changes and
the ACPI power button doesn't work.

Comment 12 Nigel Cunningham 2006-11-26 20:27:46 UTC
Benny, could you please:

* check the modules are being unloaded by using the hibernate 
script's -bug-report option and checking the output
* try using 4 as the PowerDownMethod (this will get ACPI methods run that 
won't run if you use 5 as the PowerDownMethod; is equivalent to 
setting 'platform' in swsusp)
* failing the above, try the steps on http://acpi.sourceforge.net/ for 
debugging a DSDT?


Comment 13 Benny Amorsen 2006-11-26 21:26:27 UTC
Created attachment 142138 [details]
Output from hibernate --bug-report

Comment 14 Benny Amorsen 2006-11-26 21:34:59 UTC
I am not sure whether modules are being unloaded. I have attached a hibernate
4 as the PowerDownMethod seems to just make things worse, fans are now staying off.

I will look at acpi.sf.net now.

Comment 15 Nigel Cunningham 2006-11-29 09:00:38 UTC
The log says the fan module isn't mentioned in the list of modules loaded, so 
there are a few possibilities:
* You might have it compiled in, in which case I would suggest building as a 
module and seeing if it gets unloaded;
* You might have it as a module, never being loaded (check lsmod before trying 
to suspend), in which case I would get it being loaded and reloaded after 
* You might have it as a module, being loaded before suspending but not 
reloaded after resuming. I would seek to get it insmod'd post-resume (OnResume 
in the hibernate conf files).
* You might have an issue with your DSDT, in which case you'll want to look to 
http://acpi.sourceforge.net for help with diagnosis and fixing.


Comment 16 Benny Amorsen 2006-11-29 10:47:15 UTC
I don't build kernels anymore unless there is a particular reason to do. For the
original suspend I used kernel-2.6.18-1.2849.fc6, and for suspend2 I used
kernel-suspend2-2.6.18-1.2849_1.fc6.cubbi_suspend2 from ATrpms.

Right now I am running kernel-suspend2-2.6.18-1.2849_1.fc6.cubbi_suspend2, and I
have not suspended since last cold boot. What is the name of the fan module?
lsmod|grep fan returned nothing. I have 4 directories in /proc/acpi/fan and
acpitool -f works, so I suppose the acpi fan module must be compiled in.

I guess I can try building my own kernel with acpi modular, but only if it helps
debugging. For production use it's just too much trouble.

Comment 17 Nigel Cunningham 2006-11-29 10:59:39 UTC
Yes, the module is called 'fan'. If you have the kernel config file handy, 
could you attach it, and we can quickly verify that the fan support is 
compiled in. I agree that it sounds like it is, but there's nothing like 
seeing the config to be completely sure.

If it is, yes - I'd recommend building with it modular to see if it will 
address your issue. If it fixes it, it might help make the case for modular 
becoming the default.

Comment 18 Nigel Cunningham 2007-06-12 06:13:07 UTC
Setting needinfo from reporter and reassigning to me.

Comment 19 Chuck Ebbert 2007-06-12 17:15:55 UTC
Please add cc: for kernel maintainers when reassigning kernel bugs.

Comment 20 Benny Amorsen 2007-06-12 19:20:48 UTC
I am very happy to report that the problem is gone after upgrading to Fedora 7!
The fans are off right after suspend, but unlike earlier kernels, they start
when the temperature rises.

The ACPI buttons work, including the power button. In fact, the only problem
remaining is some incorrect 3D rendering with xorg-x11-drv-ati-6.6.3-2.fc7 after
resume. Restarting the X server fixes that.

My current package versions are kernel-2.6.21-1.3194.fc7.i686 and

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