From 968c0e1bf48a1cd2709367e14d663ae1c88c6e7b Mon Sep 17 00:00:00 2001 From: Nate Lawson 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 0f81f2a60f11c..ea6e6b95bab54 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 3bab1dde7e5e6..2bfb570f27d46 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.3