From b9c780d64e2d0309dfe5c48e138582e10408d9d1 Mon Sep 17 00:00:00 2001 From: Mitsuru IWASAKI Date: Wed, 28 Nov 2001 12:09:42 +0000 Subject: [PATCH] Yet another synch with minor changes in the ACPI CA 20011120 snapshot. We need to call AcpiEnterSleepStatePrep() before AcpiEnterSleepState(). --- sys/dev/acpica/acpi.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/sys/dev/acpica/acpi.c b/sys/dev/acpica/acpi.c index 62958168bd2..cc8b86f3062 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) {