I'm a chromeos developer. The chromebooks use S0ix (i.e. s2idle) for suspend. I noticed that recently multiple systems couldn't wake from S0ix using LID/Keyboard, after I upgraded from 4.19.35 to 4.19.36. I cannot wake my system up using keystrokes and using lid open. The power button wake still continues to work, but the keyboard and lid open wake does not work. localhost /sys # cat /proc/acpi/wakeup Device S-state Status Sysfs node LID0 S4 *enabled platform:PNP0C0D:00 CREC S5 *disabled platform:GOOG0004:00 *disabled platform:cros-ec-dev.1.auto *disabled platform:cros-ec-accel.0 *disabled platform:cros-ec-accel.1 *disabled platform:cros-ec-gyro.0 *disabled platform:cros-ec-ring.0 *disabled platform:cros-usbpd-charger.2.auto *disabled platform:cros-usbpd-logger.3.auto D015 S3 *enabled i2c:i2c-ELAN0000:00 PENH S3 *enabled platform:PRP0001:00 XHCI S3 *enabled pci:0000:00:14.0 GLAN S4 *disabled WIFI S3 *disabled pci:0000:00:14.3 localhost /sys # I bisected and the regression started with this commit: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f941d3e41da7f86bdb9dcc1977c2bcc6b89bfe47 If I revert the patch, things start to work OK. I debugged and found that although PNP0C0D:00 is wake capable and should wakeup the system, its corresponding GPE is not being enabled. The particular GPE's gpe_register_info->enable_for_wake does not have any bits set when acpi_enable_all_wakeup_gpes() comes around to use it. Please let me know if you need any more info / logs for this.
Created attachment 282729 [details] Proposed patch Here is an RFC patch that I also plan to post to linux-pm mailing lists.
Created attachment 282731 [details] dmesg log
I posted my patch here: https://lkml.org/lkml/2019/5/13/835
I verified that this is fixed with https://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git/commit/?h=linux-next&id=2f844b61db8297a1f7a06adf2eb5c43381f2c183