David: The next time you send in that proposed patch to add can_wakeup and wakeup_enabled flags to devices' PM info, can you also add a can_resume flag? This is needed because for many devices, sending a resume request (during a selective suspend) is different from sending a wakeup request (during a system suspend) -- and some devices can do one but not the other. A common example is many PCI devices. If a device supports PME# then it can generate wakeup requests. But there's no way for it to generate a resume request, because (unless my understanding is completely wrong) PME# isn't an IRQ and doesn't affect a running CPU; it merely wakes up a sleeping system. Another example might be the root hub for the UHCI controller in that new Genesys HC. Until they fix their design it won't send resume request IRQs, but it may very well still send PME#. Actually I don't know whether it does or not -- and I don't know how to test it. How do I tell when a PCI device is sending PME#? There shouldn't be any need to have separate wakeup_enabled and resume_enabled flags. It's hard to imagine why anybody would want to enable one but not the other. Also it's likely to be true for most devices that the two features are turned on in the same way. Alan Stern