diff options
author | njl <njl@FreeBSD.org> | 2003-08-15 02:10:38 +0000 |
---|---|---|
committer | njl <njl@FreeBSD.org> | 2003-08-15 02:10:38 +0000 |
commit | a387b17a37a60983898b652a3a2635ea7da4400d (patch) | |
tree | a41ca6efea17cc76cb11264176940f618d3bd125 /sys/dev | |
parent | 056fde928b661c5d087aa66dcbc50850a2b4ee89 (diff) | |
download | FreeBSD-src-a387b17a37a60983898b652a3a2635ea7da4400d.zip FreeBSD-src-a387b17a37a60983898b652a3a2635ea7da4400d.tar.gz |
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.
Diffstat (limited to 'sys/dev')
-rw-r--r-- | sys/dev/acpica/acpi.c | 8 |
1 files changed, 7 insertions, 1 deletions
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); } |