Bug 45811

Summary: ASUS Zenbook UX31E: Not actually powering down on hibernate
Product: ACPI Reporter: Nick Coghlan (ncoghlan)
Component: Power-Sleep-WakeAssignee: Rafael J. Wysocki (rjw)
Status: CLOSED PATCH_ALREADY_AVAILABLE    
Severity: normal CC: alan, bug-track, florian, lenb, rjw, stern
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: kernel-3.5.0-2.fc17.x86_64 Tree: Fedora
Regression: No
Attachments: PCI / PM: Asus EHCI workaround for hibernate 'poweroff' stage

Description Nick Coghlan 2012-08-10 14:46:12 UTC
Following on from #42728, the hibernate situation is *much* improved on my UX31E, but doesn't appear to be 100% fixed yet.

New behaviour (with the 3.5 kernel):
1. Attempt to hibernate hangs with the screen in console mode and a couple of
messages about ALSA shutting down
2. System stays in that state until I press and hold the power button
3. On restart, system returns from hibernate as expected

It appears the system state is now getting saved properly, but there's still
something going wrong where the actual "power down now" command isn't being
issued properly.

I seem to recall seeing a BIOS setting that might be related - I'll reboot to check it and then report the details here.
Comment 1 Nick Coghlan 2012-08-10 16:04:30 UTC
OK, the BIOS setting I vaguely remembered turned out to be completely unrelated (it did have the word "Suspend" in it, which is why I remembered it, but the option itself had to do with Intel's anti-theft tech, which isn't enabled on this system).

In case it's relevant, the virtualisation support *is* enabled in the BIOS.
Comment 2 Oleksij Rempel (fishor) 2012-08-10 17:00:22 UTC
I can confirm same issue on my UX31E. Currently i was able to workaround it with "echo shutdown > /sys/power/disk".
Comment 3 Oleksij Rempel (fishor) 2012-08-10 18:16:44 UTC
After some more testing i was able to hibernate it with "echo platform > /sys/power/disk", but i needed unbind ehci_hcd. I used same workaround like for supend to ram issue in Bug #42728.
Comment 4 Alan Stern 2012-08-10 18:39:32 UTC
Perhaps the same fix will work.  It's worth a try, anyway.

In drivers/usb/core/hcd-pci.c:usb_hcd_pci_shutdown(), just after the

              pci_disable_device(dev);

line, add a line saying:

              pci_write_config_word(dev, PCI_COMMAND, 0);
Comment 5 Oleksij Rempel (fishor) 2012-08-11 05:09:42 UTC
No, it make no difference.
Comment 6 Rafael J. Wysocki 2012-08-11 21:54:36 UTC
Created attachment 77391 [details]
PCI / PM: Asus EHCI workaround for hibernate 'poweroff' stage

Does the attached patch help?
Comment 7 Oleksij Rempel (fishor) 2012-08-12 06:07:29 UTC
Yes, it helps. Thx!
Comment 8 Rafael J. Wysocki 2012-08-12 20:50:06 UTC
Cool. :-)
Comment 9 Florian Mickler 2012-08-26 10:49:50 UTC
A patch referencing this bug report has been merged in Linux v3.6-rc3:

commit 0b68c8e2c3afaf9807eb1ebe0ccfb3b809570aa4
Author: Rafael J. Wysocki <rjw@sisk.pl>
Date:   Sun Aug 12 23:26:07 2012 +0200

    PCI: EHCI: Fix crash during hibernation on ASUS computers
Comment 10 Len Brown 2013-02-08 17:48:40 UTC
shipped in Linux 3.6

closed.