From a387b17a37a60983898b652a3a2635ea7da4400d Mon Sep 17 00:00:00 2001 From: njl Date: Fri, 15 Aug 2003 02:10:38 +0000 Subject: Fix a couple changes that were incorrect in updating for 0619. Only unlock the hardware mutex if it is held. Re-add calls to Enable/Clear fixed events. This is not known to have caused problems. Bug symptoms might have included instability after an aborted suspend attempt or power/sleep buttons not being enabled. --- sys/dev/acpica/acpi.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'sys/dev/acpica') diff --git a/sys/dev/acpica/acpi.c b/sys/dev/acpica/acpi.c index ba65e24..0b06f9a 100644 --- a/sys/dev/acpica/acpi.c +++ b/sys/dev/acpica/acpi.c @@ -962,6 +962,8 @@ acpi_enable_fixed_events(struct acpi_softc *sc) /* Enable and clear fixed events and install handlers. */ if ((AcpiGbl_FADT != NULL) && (AcpiGbl_FADT->PwrButton == 0)) { + AcpiEnableEvent(ACPI_EVENT_POWER_BUTTON, 0); + AcpiClearEvent(ACPI_EVENT_POWER_BUTTON); AcpiInstallFixedEventHandler(ACPI_EVENT_POWER_BUTTON, acpi_eventhandler_power_button_for_sleep, sc); if (first_time) { @@ -969,6 +971,8 @@ acpi_enable_fixed_events(struct acpi_softc *sc) } } if ((AcpiGbl_FADT != NULL) && (AcpiGbl_FADT->SleepButton == 0)) { + AcpiEnableEvent(ACPI_EVENT_SLEEP_BUTTON, 0); + AcpiClearEvent(ACPI_EVENT_SLEEP_BUTTON); AcpiInstallFixedEventHandler(ACPI_EVENT_SLEEP_BUTTON, acpi_eventhandler_sleep_button_for_sleep, sc); if (first_time) { @@ -1405,7 +1409,9 @@ acpi_SetSleepState(struct acpi_softc *sc, int state) acpi_sleep_machdep(sc, state); /* AcpiEnterSleepState() maybe incompleted, unlock here if locked. */ - if (1/*AcpiGbl_AcpiMutexInfo[ACPI_MTX_HARDWARE].OwnerId != ACPI_MUTEX_NOT_ACQUIRED*/) { + if (AcpiGbl_MutexInfo[ACPI_MTX_HARDWARE].OwnerId != + ACPI_MUTEX_NOT_ACQUIRED) { + AcpiUtReleaseMutex(ACPI_MTX_HARDWARE); } -- cgit v1.1