So about a month ago I decided to update my kernel to the dreaded 3.x
series. My old 2.6.x kernel was working fine, but of course I decided
to try to update it anyway, knowing there were problems with suspend
and a few other things.

I've always used gentoo-sources. So I tried 3.3.8.

Hrm. Suspend doesn't work. I tried 3.4.5, 3.4.9 and 3.0.35 (older
versions are no longer available.) If I'd known it would completely
kill my suspend and make it useless, I wouldn't have bothered.

Here's the problem:

I can suspend fine. It appears to work. It powers off and goes into
its suspend state. I press the space bar. Nothing. So, then I
discovered that as of 3.2 USB wakeup had completely changed in the
kernel, and you need to set hubs and devices in /proc/acpi/wakeup
(which is normally done for you) *and* in /sys/devices. No biggie, I
wrote a script to do just that at
http://forums.gentoo.org/viewtopic-t-933934.html. So now I can wake
with the keyboard as before. Or can I?

If I suspend and wake up the PC within about 10 minutes it works.
After that, all hell breaks loose. The PC is dead. Completely. Waking
up no longer works, not with the keyboard, or even the power button.
The *only* way is to pull the power plug and leave it unplugged for a
few seconds. Then the PC comes to life.

I've never seen an issue quite like this one...

I use mdraid in my kernel with IMSM to dual boot Windows. I've been
using it for a long time, so that's not it. The only thing that's
changed are the kernel versions I've tried. So far, every 3.x kernel
has done this. Now, this could very well be a kernel problem, heres my
ACPI config:

# Power management and ACPI options
CONFIG_ACPI=y
CONFIG_ACPI_SLEEP=y
# CONFIG_ACPI_PROCFS is not set
# CONFIG_ACPI_PROCFS_POWER is not set
# CONFIG_ACPI_EC_DEBUGFS is not set
CONFIG_ACPI_PROC_EVENT=y
CONFIG_ACPI_AC=y
CONFIG_ACPI_BATTERY=y
CONFIG_ACPI_BUTTON=y
CONFIG_ACPI_FAN=y
# CONFIG_ACPI_DOCK is not set
CONFIG_ACPI_PROCESSOR=y
CONFIG_ACPI_HOTPLUG_CPU=y
# CONFIG_ACPI_PROCESSOR_AGGREGATOR is not set
CONFIG_ACPI_THERMAL=y
# CONFIG_ACPI_CUSTOM_DSDT is not set
CONFIG_ACPI_BLACKLIST_YEAR=0
# CONFIG_ACPI_DEBUG is not set
# CONFIG_ACPI_PCI_SLOT is not set
CONFIG_ACPI_CONTAINER=y
# CONFIG_ACPI_SBS is not set
# CONFIG_ACPI_HED is not set
# CONFIG_ACPI_APEI is not set
CONFIG_X86_ACPI_CPUFREQ=y
CONFIG_PNPACPI=y
CONFIG_ATA_ACPI=y
# CONFIG_PATA_ACPI is not set
# ACPI drivers
# ACPI drivers
# CONFIG_SENSORS_ACPI_POWER is not set

Suspend stuff:
CONFIG_ARCH_SUSPEND_POSSIBLE=y
CONFIG_SUSPEND=y
CONFIG_SUSPEND_FREEZER=y
CONFIG_USB_SUSPEND=y


Here's output from my script (usbwakeup -l):    (USB4 is where my keyboard is)
~ # usbwakeup -l
Listing USB hubs/devices and their wakeup status...

USB ID    :: Device* :: Status :: Device Description
----------------------------------------------------
1d6b:0001 :: usb3 :: enabled :: UHCI Host Controller
051d:0002 :: 3-1 :: disabled :: Back-UPS RS 1200 FW:8.g1 .D USB FW:g1
1d6b:0001 :: usb4 :: enabled :: UHCI Host Controller
046d:c508 :: 4-1 :: disabled :: USB Receiver
046d:c221 :: 4-2.1 :: enabled :: Gaming Keyboard
1d6b:0001 :: usb5 :: enabled :: UHCI Host Controller
1d6b:0002 :: usb1 :: enabled :: EHCI Host Controller
1d6b:0001 :: usb6 :: enabled :: UHCI Host Controller
1d6b:0001 :: usb7 :: enabled :: UHCI Host Controller
1d6b:0001 :: usb8 :: enabled :: UHCI Host Controller
1d6b:0002 :: usb2 :: enabled :: EHCI Host Controller

*Use the Device column to identify hubs/devices to be toggled.

11 USB hubs/devices listed.

Output from acpitool -w:
osoikaze ~ # acpitool -w
   Device       S-state   Status   Sysfs node
  ---------------------------------------
  1. P0P1         S3    *disabled  pci:0000:00:01.0
  2. UAR1         S3    *disabled  pnp:00:03
  3. P0P2         S4    *disabled  pci:0000:00:1e.0
  4. USB0         S3    *disabled  pci:0000:00:1d.0
  5. USB1         S3    *disabled  pci:0000:00:1d.1
  6. USB2         S3    *disabled  pci:0000:00:1d.2
  7. USB5         S3    *disabled
  8. USB6         S3    *disabled  pci:0000:00:1a.2
  9. EUSB         S3    *disabled  pci:0000:00:1d.7
  10. USB3        S3    *disabled  pci:0000:00:1a.0
  11. USB4        S3    *enabled   pci:0000:00:1a.1
  12. USBE        S3    *disabled  pci:0000:00:1a.7
  13. PEX0        S4    *disabled  pci:0000:00:1c.0
  14. PEX1        S4    *disabled  pci:0000:00:1c.1
  15. PEX2        S4    *disabled  pci:0000:00:1c.2
  16. PEX3        S4    *disabled  pci:0000:00:1c.3
  17. PEX4        S4    *disabled  pci:0000:00:1c.4
  18. PEX5        S4    *disabled  pci:0000:00:1c.5
  19. SLPB        S4    *enabled
  20. PWRB        S3    *enabled

Does anyone have any idea what could be wrong here? This is driving me
crazy, I hate shutting down my PC when I'm not using it. I could live
without the keyboard if the damn power button would work, but even if
I don't set the USB wakeup (through /proc/acpi/wakeup or my script) it
still gets stuck in the 'eternal' sleep. The whole kernel config is at
http://pastebin.com/2G9vWD0R

The only thing I haven't tried yet is installing something like Ubuntu
and see if it has the same problem.

Reply via email to