From 847ab5a73455d77d0510dcaccf46d844877926d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Duval?= Date: Mon, 11 Nov 2013 18:59:38 +0100 Subject: [PATCH] acpi: EcGpeHandler() should return ACPI_REENABLE_GPE. * this clears the GPE if level triggered and possibly enables the GPE. See AcpiEvFinishGpe() and AcpiEvGpeDispatch(). --- headers/os/drivers/ACPI.h | 3 +++ src/add-ons/kernel/bus_managers/acpi/EmbeddedController.cpp | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/headers/os/drivers/ACPI.h b/headers/os/drivers/ACPI.h index 874587ca6f..32bb5a41eb 100644 --- a/headers/os/drivers/ACPI.h +++ b/headers/os/drivers/ACPI.h @@ -151,6 +151,9 @@ typedef uint32 acpi_status; typedef struct acpi_resource acpi_resource; +#define ACPI_REENABLE_GPE 0x80 + + #endif // __ACTYPES_H__ diff --git a/src/add-ons/kernel/bus_managers/acpi/EmbeddedController.cpp b/src/add-ons/kernel/bus_managers/acpi/EmbeddedController.cpp index 8e1ea4afc1..481e6b65bd 100644 --- a/src/add-ons/kernel/bus_managers/acpi/EmbeddedController.cpp +++ b/src/add-ons/kernel/bus_managers/acpi/EmbeddedController.cpp @@ -604,7 +604,7 @@ EcGpeHandler(acpi_handle gpeDevice, uint32 gpeNumber, void* context) else dprintf("EcGpeHandler: queuing GPE query handler failed\n"); } - return B_INVOKE_SCHEDULER; + return ACPI_REENABLE_GPE; }