acpi(4)/acpibtn(4): use opt-in approach for wakeup GPEs
authordv <dv@openbsd.org>
Thu, 29 Jun 2023 20:58:08 +0000 (20:58 +0000)
committerdv <dv@openbsd.org>
Thu, 29 Jun 2023 20:58:08 +0000 (20:58 +0000)
commitd8f86d5931f8efff41165fa21cdcd083288e9ce9
tree0a10e385164f4f009a57513d0463518d0247b29a
parent775a2993fc20fcd3fe445b0d94afa6ec4ae8500a
acpi(4)/acpibtn(4): use opt-in approach for wakeup GPEs

Previously, any discovered GPE that could be enabled for wake was
being enabled prior to entering ACPI-based S3 or S4. On some newer
machines, this caused S3-based suspend to break as some devices we
don't fully control (e.g. lack of driver) might be capable of waking
the system and will do so almost instantly if the GPE is enabled for
wake up (i.e. the so called "instant wake" issue).

This changes to a model of having device drivers explicitly opt
into using their GPE for wake up.

The first driver to explicitly toggle a GPE for wake is acpibtn(4).

Variations of the above have been in snapshots for 2 weeks, so
tested by many.

ok deraadt@
sys/dev/acpi/acpi.c
sys/dev/acpi/acpibtn.c
sys/dev/acpi/acpivar.h