aboutsummaryrefslogtreecommitdiff
path: root/source/components/events/evgpe.c
diff options
context:
space:
mode:
Diffstat (limited to 'source/components/events/evgpe.c')
-rw-r--r--source/components/events/evgpe.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/source/components/events/evgpe.c b/source/components/events/evgpe.c
index a3781a55c66b..623795a83619 100644
--- a/source/components/events/evgpe.c
+++ b/source/components/events/evgpe.c
@@ -518,6 +518,7 @@ AcpiEvAsynchExecuteGpeMethod (
ACPI_STATUS Status;
ACPI_GPE_EVENT_INFO *LocalGpeEventInfo;
ACPI_EVALUATE_INFO *Info;
+ ACPI_GPE_NOTIFY_INFO *Notify;
ACPI_FUNCTION_TRACE (EvAsynchExecuteGpeMethod);
@@ -573,10 +574,18 @@ AcpiEvAsynchExecuteGpeMethod (
* completes. The notify handlers are NOT invoked synchronously
* from this thread -- because handlers may in turn run other
* control methods.
+ *
+ * June 2012: Expand implicit notify mechanism to support
+ * notifies on multiple device objects.
*/
- Status = AcpiEvQueueNotifyRequest (
- LocalGpeEventInfo->Dispatch.DeviceNode,
- ACPI_NOTIFY_DEVICE_WAKE);
+ Notify = LocalGpeEventInfo->Dispatch.NotifyList;
+ while (ACPI_SUCCESS (Status) && Notify)
+ {
+ Status = AcpiEvQueueNotifyRequest (Notify->DeviceNode,
+ ACPI_NOTIFY_DEVICE_WAKE);
+
+ Notify = Notify->Next;
+ }
break;
case ACPI_GPE_DISPATCH_METHOD: