summaryrefslogtreecommitdiffstats
path: root/sys/dev/acpica
diff options
context:
space:
mode:
authornjl <njl@FreeBSD.org>2003-08-15 02:10:38 +0000
committernjl <njl@FreeBSD.org>2003-08-15 02:10:38 +0000
commita387b17a37a60983898b652a3a2635ea7da4400d (patch)
treea41ca6efea17cc76cb11264176940f618d3bd125 /sys/dev/acpica
parent056fde928b661c5d087aa66dcbc50850a2b4ee89 (diff)
downloadFreeBSD-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/acpica')
-rw-r--r--sys/dev/acpica/acpi.c8
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);
}
OpenPOWER on IntegriCloud