Difference between revisions of "Problems with ACPI suspend-to-ram"
(→Troubles on resume: add the resume fix for T20) |
The canoeist (Talk | contribs) (→Troubles on suspend: Added solution for pm-utils & pci-sd) |
||
(50 intermediate revisions by 30 users not shown) | |||
Line 4: | Line 4: | ||
;Permissions:If your suspend is failing, and a {{cmdroot|tail /var/log/acpid}} shows "Permission denied" errors, be sure that your new ACPI event and action scripts have the appropriate permissions. | ;Permissions:If your suspend is failing, and a {{cmdroot|tail /var/log/acpid}} shows "Permission denied" errors, be sure that your new ACPI event and action scripts have the appropriate permissions. | ||
− | ;Broken sysfs interface:You may experience problems when using {{cmdroot|echo standby > /sys/power/state}} or {{cmdroot|echo mem > /sys/power/state}} (machine goes to sleep and wakes up immediately). This can be avoided by using {{cmdroot|echo -n 3 >/proc/acpi/sleep}} to get it to sleep. This can be also happen if hotplug daemon is still running. | + | ;Write error:If {{cmdroot|echo mem > /sys/power/state}} shows "write error: Operation not permitted", verify that CONFIG_HOTPLUG_CPU option is enabled in the kernel. [[Software_Suspend_2|Suspend2]] automatically selects this option. |
+ | |||
+ | ;Broken sysfs interface:You may experience problems when using {{cmdroot|echo standby > /sys/power/state}} or {{cmdroot|echo mem > /sys/power/state}} (machine goes to sleep and wakes up immediately). This can be avoided by using {{cmdroot|echo -n 3 >/proc/acpi/sleep}} to get it to sleep. This can be also happen if hotplug daemon is still running or if the usb hcd modules are still loaded. | ||
+ | |||
+ | ;Immediate Resume after Suspend:If a resume starts a few seconds after suspend a reason might be the USB modules. Unload the modules uhci_hcd and ehci_hcd before you suspend. Users of hibernate-scripts add "UnloadModules uhci_hcd ehci_hcd" to {{path|/etc/hibernate/common.conf}}. | ||
+ | |||
+ | ;Hangs on "switching to UP code":You may be using a [[How to make use of Dynamic Frequency Scaling|frequency scaling governor]] such as "conservative" or "ondemand", which sometimes have problems with suspending. Switching to a governor such as "powersave" or "performance" before suspending may solve this problem. | ||
;MySQL daemon running:If you're running MySQL, sleep may also not work, so stop MySQL first, then sleep. Remember to restart MySQL when you wakeup. | ;MySQL daemon running:If you're running MySQL, sleep may also not work, so stop MySQL first, then sleep. Remember to restart MySQL when you wakeup. | ||
Line 11: | Line 17: | ||
;High power drain during sleep:Also, you might want to take note of the [[Problem with high power drain in ACPI sleep]]. | ;High power drain during sleep:Also, you might want to take note of the [[Problem with high power drain in ACPI sleep]]. | ||
+ | |||
+ | ;SD cards must be unmounted: On current (10.x) and past versions of Ubuntu, the system will fail to suspend (black screen, blinking "moon") if an SD card is mounted. Use the script at [https://help.ubuntu.com/community/AspireOne/Ubuntu9.10 the Aspire One community page] in order to safely work around this. On other systems, you may be able to simply add "sdhci mmc_block mmc_core" to the MODULES= line in acpi-support. <br /> Or try this (pm-utils & pci-sd):<br />Add the follwing line to the {{cmdroot|/etc/pm/config.d/00sleep_module}} to unload the module before standby: | ||
+ | |||
+ | SUSPEND_MODULES="$SUSPEND_MODULES sdhci" | ||
+ | |||
+ | |||
+ | ;Could not power down device <NULL>: error -22:If you have the acpi_cpufreq kernel module loaded, this prevents suspension. | ||
+ | |||
+ | ;Immediate Resume, but Suspend "moon" light continues to flash:??? | ||
+ | |||
+ | ;Hard system lock up:If you are using savagefb, make sure to [[Problem_with_unusable_console|disable the "Console Acceleration" option]] (CONFIG_FB_SAVAGE_ACCEL) in the kernel config. Otherwise, susped-to-RAM may lock up your system such that you must remove the AC adapter and battery to get it to boot again. | ||
+ | |||
+ | ;Hard system lock up 2: If you are using a Thinkpad G40 and Ubuntu (this problem experienced on 8.04), you may experience problems with ACPI when opening your laptop lid that freezes the system. You can disable ACPI in your kernel parameters, or modify {{path|/etc/acpi/lid.sh}} to switch to a plain text console on close and back to Gnome/KDE on open (use {{path|/usr/bin/chvt 1}} and {{path|/usr/bin/chvt 7}}, respectively) | ||
+ | |||
+ | ;Solid 'moon' but fans still spinning: On a T61p with an nvidia quadro 570M, you might experience a near-complete suspend, with the backlight turned off, unresponsive usb, and a solid 'moon' lit, however system fans are still going. The proprietary nvidia module is to blame. On gentoo, appending "NVreg_Mobile=3" to the 'option' line in /etc/modules.d/nvidia fixed the issue for me. On other distros, look in your module autoloading conf file | ||
==Troubles on resume== | ==Troubles on resume== | ||
− | ;Blank display on resume:When resuming from a suspend-to-ram the display might remain black or might only show the pre-suspend output (the system is still rebootable via {{key|ctrl}}{{key|alt}}{{key|del}}). See [[Problem with display remaining black after resume]] for solutions. | + | ;Blank display on resume: |
+ | :When resuming from a suspend-to-ram the display might remain black (on {{X60}}) or might only show the pre-suspend output (the system is still rebootable via {{key|ctrl}}{{key|alt}}{{key|del}}). See [[Problem with display remaining black after resume]] for solutions. See also '''System hang on resume''' on this page - which may be potentially mismatched with this one. | ||
+ | |||
+ | ;No mouse cursor on resume: | ||
+ | :When resuming from a suspend-to-ram your X cursor might be invisible(on {{X40}}) when using {{path|/sys/power/state}} directly to suspend, they way to fix this is to rerun the post bios code after returning for suspending. | ||
+ | :{{cmdroot|FGCONSOLE<nowiki>=</nowiki>`fgconsole\`}} | ||
+ | :{{cmdroot|chvt 1 && echo -n mem >/sys/power/state}} | ||
+ | :{{cmdroot|vbetool post && chvt 7 && chvt $FGCONSOLE}} | ||
+ | |||
+ | ;Garbage on text consoles on resume:When resuming from suspend-to-ram the text console displays may show garbage instead of actual text. The machine is otherwise still responsive and X displays fine. If all of this is true, then adding the kernel option {{bootparm|acpi_sleep|s3_bios,s3_mode}} in your menu.lst or lilo.conf may solve the problem. | ||
+ | |||
;Broken hardware support after resume: | ;Broken hardware support after resume: | ||
:*The '''serial port''' of the port replicator might not work after resume. | :*The '''serial port''' of the port replicator might not work after resume. | ||
Line 19: | Line 50: | ||
:*Problems with the '''CD-RW/DVD drive''' after wake up from ram have been experienced. | :*Problems with the '''CD-RW/DVD drive''' after wake up from ram have been experienced. | ||
:*There is a known Problem regarding '''battery info''' after suspend to RAM. A [http://www.ussg.iu.edu/hypermail/linux/kernel/0511.0/2429.html small patch] exists for kernels 2.6.14/2.6.15. | :*There is a known Problem regarding '''battery info''' after suspend to RAM. A [http://www.ussg.iu.edu/hypermail/linux/kernel/0511.0/2429.html small patch] exists for kernels 2.6.14/2.6.15. | ||
− | :*On {{X20}} and {{X21}} (and possibly other) models, the '''sleep LED''' is not reset properly on resume and will keep blinking. If you have the [[ibm-acpi]] kernel module loaded with the | + | :*On {{X20}} and {{X21}} (and possibly other) models, the '''sleep LED''' is not reset properly on resume and will keep blinking. If you have the [[ibm-acpi]] kernel module loaded with the {{bootparm|ibm-acpi.experimental|1}} option, you can switch it off on resume by appending the following line to your suspend script: {{cmdroot|echo 7 off > /proc/acpi/ibm/led}} |
− | |||
;Crash on resume: | ;Crash on resume: | ||
Line 26: | Line 56: | ||
:*A crash could also be caused by having '''apic support''' enabled in the kernel config. Try disabling it (in the "Processor type and features" section). | :*A crash could also be caused by having '''apic support''' enabled in the kernel config. Try disabling it (in the "Processor type and features" section). | ||
:*On machines with Savage chipsets, the '''savagefb framebuffer driver''' might crash the machine on resume. Make sure it is disabled in your kernel config and use the standard vesafb driver instead. | :*On machines with Savage chipsets, the '''savagefb framebuffer driver''' might crash the machine on resume. Make sure it is disabled in your kernel config and use the standard vesafb driver instead. | ||
− | :* | + | :*SATA-based laptops utilize the '''libata layer for disk access''' which does not have fully-working power-management support before Linux kernel 2.6.16 (ata_piix) and 2.6.19 (ahci). Suspend to RAM crashes these machines on resume. See the [[Problems with SATA and Linux#Hang on resume from suspend to RAM|relevant section]] on the [[Problems with SATA and Linux]] page. |
− | :*When system resumes it hangs right after restarting tasks. This may be fixed by passing ec_intr | + | :*Using [[HDAPS]] as a module causes a crash on resume with the Linux kernel 2.6.19 (possibly even earlier versions). This was observed on a {{X41}}. Try unloading the module before suspending. |
+ | :*Gnome-power-manager might be using the wrong backend. If you are able to suspend from the commandline with a certain method, make sure the others are not available so that g-p-m doesn't choose the wrong one. For example, if you suspend with {{cmdroot|echo mem > /sys/power/state}}, make sure '''uswsusp''' and '''hibernate''' are uninstalled. | ||
+ | |||
+ | ;System hang on resume: | ||
+ | :System hangs immediately upon attempted resume if suspended with USB devices attached to dock. Try using the laptop's own USB ports instead. That fixed the problem for me. Details: https://bugs.launchpad.net/ubuntu/+bug/218760 --[[User:Dave abrahams|Dave abrahams]] 17:45, 28 April 2008 (CEST) | ||
+ | :When system resumes it hangs right after restarting tasks. Strange thing is, that you may be even able to restart your ThinkPad using {{key|ctrl}}{{key|alt}}{{key|del}}, but if you try to blindly exec a command, it will not work, (eg. touch FILE) so it's not only the problem of videocard. This may be fixed by passing {{bootparm|ec_intr|0}} on kernel cmdline. Affected models: {{T20}}, {{T21}} (at least [[2648-46U]] (T20),[[2647-8AG]] (T21)). | ||
+ | :'''Note:''' ''this is resolved in kernel 2.6.20, there is no need to pass the {{bootparm|ec_intr|0}} bootparam anymore (moreover, you are discouraged to use it) See [http://bugzilla.kernel.org/show_bug.cgi?id=6749 revelant kernel bug report]'' | ||
+ | :See also [https://bugs.launchpad.net/ubuntu/+source/acpi/+bug/73546 this bug report], I can confirm some strange problems on resume with Bluetooth enabled - my T61 may freeze in a couple of minutes after resuming. This problem is gone as soon as I disable Bluetooth (stop all bluetooth related services and `echo "disable" > /proc/acpi/ibm/bluetooth`). | ||
+ | |||
+ | |||
;Shutdown on resume: | ;Shutdown on resume: | ||
− | :If your system immediately begins to shut down right after resume, make sure you don't have acpid running with the power button tied to shutdown. The system is simply sensing the power button event and shutting down. | + | :If your system immediately begins to shut down right after resume, make sure you don't have acpid running with the power button tied to shutdown. The system is simply sensing the power button event and shutting down. This issue has been reported as a bug against the kernel ACPI subsystem, refer to [http://bugzilla.kernel.org/show_bug.cgi?id=6612 kernel.org bugzilla bug #6612]. |
+ | |||
+ | ;Immediate suspend on resume: | ||
+ | :When running GNOME, sometimes gnome-power-manager will put the system back into suspend immediately after resuming. This is caused by a known bug in HAL that causes some ACPI events to be reported incorrectly after a suspend-to-ram. A simple workaround can be found [http://live.gnome.org/GnomePowerManager/Faq?action=recall&rev=28#head-b8b1280115b0a51c2cc27b13a57121130ebf36cb here]. | ||
+ | :Note that suspend being triggered by unrelated ACPI events such as disconnecting the AC adapter may also be fixed by the above method. | ||
+ | |||
+ | ;Power Off when suspended laptop is docked | ||
+ | :When T60p is suspended, docking laptop into Advanced Dock immediately turns off laptop and crescent moon sleep indicator LED. Pressing power button initiates cold boot. Also reported by multiple people on thinkpads.com. | ||
+ | |||
+ | ;SectorIdNotFound disk errors when laptop is resumed | ||
+ | :The errors look like this: | ||
+ | Oct 14 17:35:02 cacharro kernel: hda: dma_intr: status=0x51 { DriveReady SeekComplete Error } | ||
+ | Oct 14 17:35:02 cacharro kernel: hda: dma_intr: error=0x10 { SectorIdNotFound }, LBAsect=115896900, sector=115896900 | ||
+ | Oct 14 17:35:02 cacharro kernel: ide: failed opcode was: unknown | ||
+ | |||
+ | :This happens when you have [[Hidden Protected Area]] (HPA) enabled on the hard drive. There is a [http://bugzilla.kernel.org/show_bug.cgi?id=6840 kernel bug report with an unfinished patch] to fix this. This is not fixed as of kernel 2.16.18. Adding {{bootparm|libata.ignore_hpa|1}} to the kernel command line might help. | ||
+ | |||
+ | :Update: This is still occuring here on 2.6.26-1-686 on Debian, even though the bug has been marked as fixed in 2.6.22. I will try disabling the HPA to see if the problem is related... [[User:TheAnarcat|TheAnarcat]] 01:51, 20 October 2008 (CEST) | ||
+ | |||
+ | ;Resuming a second time does not work after successfully resuming once from suspend-to-ram (X200) | ||
+ | This happened to me on my X200: I could resume once, but on the second time, pressing the power button made the HD light flash briefly and then nothing happened anymore. The AC and standby lights stayed on and I had to shut the computer down by keeping the power button pressed. | ||
+ | A workaround is to disable the Intel TXT feature in the BIOS. You can find it in the "Security" section. | ||
+ | |||
+ | This issue has been reported to http://bugzilla.kernel.org/show_bug.cgi?id=11963 | ||
+ | |||
+ | ;Resuming a second time does not work after successfully resuming once from suspend-to-ram (T43) | ||
+ | My T43 showed the same symptoms recently. After the first (and successful) resume dmesg shows a warning at kernel/hrtimer.c:625 hres_timers_resume (2.6.29, Arch Linux). The second resume fails. The problem is caused by acpi_cpufreq. Unloading this module before, and reloading after, suspend fixes the problem. | ||
− | : | + | The issues is tracked here: http://bugzilla.kernel.org/show_bug.cgi?id=13269 |
Latest revision as of 14:06, 7 October 2010
The following glitches may or may not occur in relation to suspending to RAM:
Troubles on suspend
- Permissions
- If your suspend is failing, and a
# tail /var/log/acpid
shows "Permission denied" errors, be sure that your new ACPI event and action scripts have the appropriate permissions.
- Write error
- If
# echo mem > /sys/power/state
shows "write error: Operation not permitted", verify that CONFIG_HOTPLUG_CPU option is enabled in the kernel. Suspend2 automatically selects this option.
- Broken sysfs interface
- You may experience problems when using
# echo standby > /sys/power/state
or# echo mem > /sys/power/state
(machine goes to sleep and wakes up immediately). This can be avoided by using# echo -n 3 >/proc/acpi/sleep
to get it to sleep. This can be also happen if hotplug daemon is still running or if the usb hcd modules are still loaded.
- Immediate Resume after Suspend
- If a resume starts a few seconds after suspend a reason might be the USB modules. Unload the modules uhci_hcd and ehci_hcd before you suspend. Users of hibernate-scripts add "UnloadModules uhci_hcd ehci_hcd" to /etc/hibernate/common.conf.
- Hangs on "switching to UP code"
- You may be using a frequency scaling governor such as "conservative" or "ondemand", which sometimes have problems with suspending. Switching to a governor such as "powersave" or "performance" before suspending may solve this problem.
- MySQL daemon running
- If you're running MySQL, sleep may also not work, so stop MySQL first, then sleep. Remember to restart MySQL when you wakeup.
- LCD backlight remains on during sleep
- When your system is equiped with a Radeon Mobility graphic controller your LCD backlight may not turn off automatically. Use radeontool to switch off your backlight prior suspend in your sleep action script.
- High power drain during sleep
- Also, you might want to take note of the Problem with high power drain in ACPI sleep.
- SD cards must be unmounted
- On current (10.x) and past versions of Ubuntu, the system will fail to suspend (black screen, blinking "moon") if an SD card is mounted. Use the script at the Aspire One community page in order to safely work around this. On other systems, you may be able to simply add "sdhci mmc_block mmc_core" to the MODULES= line in acpi-support.
Or try this (pm-utils & pci-sd):
Add the follwing line to the# /etc/pm/config.d/00sleep_module
to unload the module before standby:
SUSPEND_MODULES="$SUSPEND_MODULES sdhci"
- Could not power down device <NULL>
- error -22:If you have the acpi_cpufreq kernel module loaded, this prevents suspension.
- Immediate Resume, but Suspend "moon" light continues to flash
- ???
- Hard system lock up
- If you are using savagefb, make sure to disable the "Console Acceleration" option (CONFIG_FB_SAVAGE_ACCEL) in the kernel config. Otherwise, susped-to-RAM may lock up your system such that you must remove the AC adapter and battery to get it to boot again.
- Hard system lock up 2
- If you are using a Thinkpad G40 and Ubuntu (this problem experienced on 8.04), you may experience problems with ACPI when opening your laptop lid that freezes the system. You can disable ACPI in your kernel parameters, or modify /etc/acpi/lid.sh to switch to a plain text console on close and back to Gnome/KDE on open (use /usr/bin/chvt 1 and /usr/bin/chvt 7, respectively)
- Solid 'moon' but fans still spinning
- On a T61p with an nvidia quadro 570M, you might experience a near-complete suspend, with the backlight turned off, unresponsive usb, and a solid 'moon' lit, however system fans are still going. The proprietary nvidia module is to blame. On gentoo, appending "NVreg_Mobile=3" to the 'option' line in /etc/modules.d/nvidia fixed the issue for me. On other distros, look in your module autoloading conf file
Troubles on resume
- Blank display on resume
- When resuming from a suspend-to-ram the display might remain black (on X60) or might only show the pre-suspend output (the system is still rebootable via ctrlaltdel). See Problem with display remaining black after resume for solutions. See also System hang on resume on this page - which may be potentially mismatched with this one.
- No mouse cursor on resume
- When resuming from a suspend-to-ram your X cursor might be invisible(on X40) when using /sys/power/state directly to suspend, they way to fix this is to rerun the post bios code after returning for suspending.
# FGCONSOLE=`fgconsole\`
# chvt 1 && echo -n mem >/sys/power/state
# vbetool post && chvt 7 && chvt $FGCONSOLE
- Garbage on text consoles on resume
- When resuming from suspend-to-ram the text console displays may show garbage instead of actual text. The machine is otherwise still responsive and X displays fine. If all of this is true, then adding the kernel option
acpi_sleep=s3_bios,s3_mode
in your menu.lst or lilo.conf may solve the problem.
- Broken hardware support after resume
-
- The serial port of the port replicator might not work after resume.
- The parallel port might not work after resume. A possible fix is to unload and reload the parallel port drivers:
# rmmod lp parport_pc parport; modprobe lp
. - Problems with the CD-RW/DVD drive after wake up from ram have been experienced.
- There is a known Problem regarding battery info after suspend to RAM. A small patch exists for kernels 2.6.14/2.6.15.
- On X20 and X21 (and possibly other) models, the sleep LED is not reset properly on resume and will keep blinking. If you have the ibm-acpi kernel module loaded with the
ibm-acpi.experimental=1
option, you can switch it off on resume by appending the following line to your suspend script:# echo 7 off > /proc/acpi/ibm/led
- Crash on resume
-
- When using older ATI proprietary drivers a crash on resume can be solved by using vbetool. See the example suspend script Problem with display remaining black after resume#Solution for ThinkPads with Intel I830 Chipset. This is no longer necessary with recent revisions of the ATI proprietary driver.
- A crash could also be caused by having apic support enabled in the kernel config. Try disabling it (in the "Processor type and features" section).
- On machines with Savage chipsets, the savagefb framebuffer driver might crash the machine on resume. Make sure it is disabled in your kernel config and use the standard vesafb driver instead.
- SATA-based laptops utilize the libata layer for disk access which does not have fully-working power-management support before Linux kernel 2.6.16 (ata_piix) and 2.6.19 (ahci). Suspend to RAM crashes these machines on resume. See the relevant section on the Problems with SATA and Linux page.
- Using HDAPS as a module causes a crash on resume with the Linux kernel 2.6.19 (possibly even earlier versions). This was observed on a X41. Try unloading the module before suspending.
- Gnome-power-manager might be using the wrong backend. If you are able to suspend from the commandline with a certain method, make sure the others are not available so that g-p-m doesn't choose the wrong one. For example, if you suspend with
# echo mem > /sys/power/state
, make sure uswsusp and hibernate are uninstalled.
- System hang on resume
- System hangs immediately upon attempted resume if suspended with USB devices attached to dock. Try using the laptop's own USB ports instead. That fixed the problem for me. Details: https://bugs.launchpad.net/ubuntu/+bug/218760 --Dave abrahams 17:45, 28 April 2008 (CEST)
- When system resumes it hangs right after restarting tasks. Strange thing is, that you may be even able to restart your ThinkPad using ctrlaltdel, but if you try to blindly exec a command, it will not work, (eg. touch FILE) so it's not only the problem of videocard. This may be fixed by passing
ec_intr=0
on kernel cmdline. Affected models: T20, T21 (at least 2648-46U (T20),2647-8AG (T21)). - Note: this is resolved in kernel 2.6.20, there is no need to pass the
ec_intr=0
bootparam anymore (moreover, you are discouraged to use it) See revelant kernel bug report - See also this bug report, I can confirm some strange problems on resume with Bluetooth enabled - my T61 may freeze in a couple of minutes after resuming. This problem is gone as soon as I disable Bluetooth (stop all bluetooth related services and `echo "disable" > /proc/acpi/ibm/bluetooth`).
- Shutdown on resume
- If your system immediately begins to shut down right after resume, make sure you don't have acpid running with the power button tied to shutdown. The system is simply sensing the power button event and shutting down. This issue has been reported as a bug against the kernel ACPI subsystem, refer to kernel.org bugzilla bug #6612.
- Immediate suspend on resume
- When running GNOME, sometimes gnome-power-manager will put the system back into suspend immediately after resuming. This is caused by a known bug in HAL that causes some ACPI events to be reported incorrectly after a suspend-to-ram. A simple workaround can be found here.
- Note that suspend being triggered by unrelated ACPI events such as disconnecting the AC adapter may also be fixed by the above method.
- Power Off when suspended laptop is docked
- When T60p is suspended, docking laptop into Advanced Dock immediately turns off laptop and crescent moon sleep indicator LED. Pressing power button initiates cold boot. Also reported by multiple people on thinkpads.com.
- SectorIdNotFound disk errors when laptop is resumed
- The errors look like this:
Oct 14 17:35:02 cacharro kernel: hda: dma_intr: status=0x51 { DriveReady SeekComplete Error } Oct 14 17:35:02 cacharro kernel: hda: dma_intr: error=0x10 { SectorIdNotFound }, LBAsect=115896900, sector=115896900 Oct 14 17:35:02 cacharro kernel: ide: failed opcode was: unknown
- This happens when you have Hidden Protected Area (HPA) enabled on the hard drive. There is a kernel bug report with an unfinished patch to fix this. This is not fixed as of kernel 2.16.18. Adding
libata.ignore_hpa=1
to the kernel command line might help.
- Update: This is still occuring here on 2.6.26-1-686 on Debian, even though the bug has been marked as fixed in 2.6.22. I will try disabling the HPA to see if the problem is related... TheAnarcat 01:51, 20 October 2008 (CEST)
- Resuming a second time does not work after successfully resuming once from suspend-to-ram (X200)
This happened to me on my X200: I could resume once, but on the second time, pressing the power button made the HD light flash briefly and then nothing happened anymore. The AC and standby lights stayed on and I had to shut the computer down by keeping the power button pressed. A workaround is to disable the Intel TXT feature in the BIOS. You can find it in the "Security" section.
This issue has been reported to http://bugzilla.kernel.org/show_bug.cgi?id=11963
- Resuming a second time does not work after successfully resuming once from suspend-to-ram (T43)
My T43 showed the same symptoms recently. After the first (and successful) resume dmesg shows a warning at kernel/hrtimer.c:625 hres_timers_resume (2.6.29, Arch Linux). The second resume fails. The problem is caused by acpi_cpufreq. Unloading this module before, and reloading after, suspend fixes the problem.
The issues is tracked here: http://bugzilla.kernel.org/show_bug.cgi?id=13269