From f84686bc1d61697ffca893d0d997c458505e6ce8 Mon Sep 17 00:00:00 2001 From: njl Date: Thu, 19 Feb 2004 05:35:20 +0000 Subject: Fix problem caused by previous commit where some users' buttons stopped returning events. Don't disable the event when removing the handler because it still needs to be enabled for the other handler. Also, remove duplicate AcpiEnableEvent calls since the install function now does this for us. --- sys/dev/acpica/acpi.c | 2 -- sys/dev/acpica/acpi_button.c | 11 ++--------- 2 files changed, 2 insertions(+), 11 deletions(-) (limited to 'sys/dev') diff --git a/sys/dev/acpica/acpi.c b/sys/dev/acpica/acpi.c index 0f81f2a..ea6e6b9 100644 --- a/sys/dev/acpica/acpi.c +++ b/sys/dev/acpica/acpi.c @@ -1122,7 +1122,6 @@ 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_event_power_button_sleep, sc); @@ -1130,7 +1129,6 @@ acpi_enable_fixed_events(struct acpi_softc *sc) device_printf(sc->acpi_dev, "Power Button (fixed)\n"); } 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_event_sleep_button_sleep, sc); diff --git a/sys/dev/acpica/acpi_button.c b/sys/dev/acpica/acpi_button.c index 3bab1dd..2bfb570 100644 --- a/sys/dev/acpica/acpi_button.c +++ b/sys/dev/acpica/acpi_button.c @@ -132,7 +132,6 @@ acpi_button_attach(device_t dev) /* Install the appropriate new handler. */ if (sc->fixed) { - AcpiEnableEvent(event, 0); AcpiClearEvent(event); status = AcpiInstallFixedEventHandler(event, acpi_button_fixed_handler, sc); @@ -152,16 +151,10 @@ acpi_button_attach(device_t dev) * we have found one in the AML. Some systems define buttons both ways * but only deliver events to the AML object. */ - if (event == ACPI_EVENT_POWER_BUTTON && AcpiGbl_FADT->PwrButton == 0) { - AcpiDisableEvent(event, 0); - AcpiClearEvent(event); + if (event == ACPI_EVENT_POWER_BUTTON && AcpiGbl_FADT->PwrButton == 0) AcpiRemoveFixedEventHandler(event, acpi_event_power_button_sleep); - } - if (event == ACPI_EVENT_SLEEP_BUTTON && AcpiGbl_FADT->SleepButton == 0) { - AcpiDisableEvent(event, 0); - AcpiClearEvent(event); + if (event == ACPI_EVENT_SLEEP_BUTTON && AcpiGbl_FADT->SleepButton == 0) AcpiRemoveFixedEventHandler(event, acpi_event_sleep_button_sleep); - } return_VALUE (0); } -- cgit v1.1