On Thu, Apr 19, 2012 at 09:43:45AM -0400, Alan Stern wrote: > Below is a patch that will prevent any PCI device from being put into > D3 during suspend. (This is meant to be used without any of the > earlier diagnostic patches.) Obviously it's not the final solution; > the test in the "if" statement needs to be more discriminating. :-) > > But before going any farther, I'd like to test if USB wakeup works. > So after booting with this patch, make sure that the power/wakeup file > says "enabled" in the sysfs path for each controller as well as the > usb1, usb2, 1-2, and 2-2 paths under /sys/bus/usb/devices/. > > Then suspend the computer without using the script, and while it is > asleep try plugging in a new USB device. That should cause the > computer to wake up, if everything is working properly. I've set "enabled" for following files: /sys/bus/usb/devices/usb1/power/wakeup /sys/bus/usb/devices/usb2/power/wakeup /sys/bus/usb/devices/1-1/power/wakeup /sys/bus/usb/devices/2-1/power/wakeup /sys/bus/pci/devices/0000:00:1a.0/power/wakeup /sys/bus/pci/devices/0000:00:1d.0/power/wakeup yet it didn't wake up after plugging, though devices light up. > Index: usb-3.4/drivers/pci/pci.c > =================================================================== > --- usb-3.4.orig/drivers/pci/pci.c > +++ usb-3.4/drivers/pci/pci.c > @@ -1713,6 +1713,8 @@ int pci_prepare_to_sleep(struct pci_dev > pci_power_t target_state = pci_target_state(dev); > int error; > > + if (1) > + target_state = PCI_D0; > if (target_state == PCI_POWER_ERROR) > return -EIO; > > > -- WBR, wRAR