use ACPI _WAK upon resume. Such a huge oversight it is surprising that
authorderaadt <deraadt@openbsd.org>
Tue, 13 Aug 2024 22:31:16 +0000 (22:31 +0000)
committerderaadt <deraadt@openbsd.org>
Tue, 13 Aug 2024 22:31:16 +0000 (22:31 +0000)
we've never noticed it before, maybe systems which depend on _WAK are rare.
Still, this may improve S3 resume on some rare machines.
ok kettenis

sys/dev/acpi/acpi_x86.c

index e44ea35..d1d2d21 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: acpi_x86.c,v 1.29 2024/08/11 17:30:28 deraadt Exp $ */
+/* $OpenBSD: acpi_x86.c,v 1.30 2024/08/13 22:31:16 deraadt Exp $ */
 /*
  * Copyright (c) 2005 Thorsten Lockert <tholo@sigmasoft.com>
  * Copyright (c) 2005 Jordan Hargrave <jordan@openbsd.org>
@@ -126,6 +126,10 @@ gosleep(void *v)
                sc->sc_pmc_resume(sc->sc_pmc_cookie);
 
        acpi_indicator(sc, ACPI_SST_WAKING);    /* blink */
+
+       /* 1st resume AML step: _WAK(fromstate) */
+       if (sc->sc_state != ACPI_STATE_S0)
+               aml_node_setval(sc, sc->sc_wak, sc->sc_state);
        return ret;
 }