summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMitsuru IWASAKI <iwasaki@FreeBSD.org>2001-11-28 12:09:42 +0000
committerMitsuru IWASAKI <iwasaki@FreeBSD.org>2001-11-28 12:09:42 +0000
commitb9c780d64e2d0309dfe5c48e138582e10408d9d1 (patch)
treeba2edf74d1fb35946c1f134c8e0c8fe1b0332140
parent7d3346ca1f857d6078f948e03b83abae618820da (diff)
Notes
-rw-r--r--sys/dev/acpica/acpi.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/sys/dev/acpica/acpi.c b/sys/dev/acpica/acpi.c
index 62958168bd2a..cc8b86f30620 100644
--- a/sys/dev/acpica/acpi.c
+++ b/sys/dev/acpica/acpi.c
@@ -889,6 +889,12 @@ acpi_shutdown_final(void *arg, int howto)
if (howto & RB_POWEROFF) {
printf("Power system off using ACPI...\n");
+ status = AcpiEnterSleepStatePrep(acpi_off_state);
+ if (status != AE_OK) {
+ printf("AcpiEnterSleepStatePrep failed - %s\n",
+ AcpiFormatException(status));
+ return;
+ }
if ((status = AcpiEnterSleepState(acpi_off_state)) != AE_OK) {
printf("ACPI power-off failed - %s\n", AcpiFormatException(status));
} else {
@@ -1340,6 +1346,14 @@ acpi_SetSleepState(struct acpi_softc *sc, int state)
DEVICE_RESUME(root_bus);
return_ACPI_STATUS(AE_ERROR);
}
+
+ status = AcpiEnterSleepStatePrep(state);
+ if (status != AE_OK) {
+ device_printf(sc->acpi_dev, "AcpiEnterSleepStatePrep failed - %s\n",
+ AcpiFormatException(status));
+ break;
+ }
+
sc->acpi_sstate = state;
if (state != ACPI_STATE_S1) {