Wakeup capable devices are listed in /proc/acpi/wakeup. For example, in my sytem I've got:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ solitone@alan:~$ cat /proc/acpi/wakeup Device S-state Status Sysfs node PEG0 S3 *disabled EC S4 *disabled platform:PNP0C09:00 HDEF S3 *disabled pci:0000:00:1b.0 RP01 S3 *disabled pci:0000:00:1c.0 RP02 S3 *disabled pci:0000:00:1c.1 RP03 S3 *disabled pci:0000:00:1c.2 ARPT S4 *enabled pci:0000:03:00.0 RP05 S3 *disabled pci:0000:00:1c.4 RP06 S3 *disabled pci:0000:00:1c.5 SPIT S3 *disabled XHC1 S3 *enabled pci:0000:00:14.0 ADP1 S4 *disabled platform:ACPI0003:00 LID0 S4 *enabled platform:PNP0C0D:00 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ It is possible to disable devices with e.g. solitone@alan:~$ sudo echo XHC1 > /proc/acpi/wakeup However, when system reboots such settings are lost, and /proc/acpi/wakeup is reset to its original content. How does this work? What is the thing that resets /proc/acpi/wakeup to its standard content? What does this content depend on? What is that determines whether a device is enabled or disabled in the first place?