summaryrefslogtreecommitdiffstats
path: root/drivers/acpi/acpica/evevent.c
diff options
context:
space:
mode:
authorLin Ming <ming.m.lin@intel.com>2010-12-13 06:39:26 +0100
committerLen Brown <len.brown@intel.com>2011-01-12 10:27:00 +0100
commita0fcdb237fcd4eaa7e5009b28ef5be07415f287d (patch)
treed07a4950648ad9a7eaab8fd28b37685926bb23a9 /drivers/acpi/acpica/evevent.c
parentACPICA: Implicit notify support (diff)
downloadlinux-a0fcdb237fcd4eaa7e5009b28ef5be07415f287d.tar.xz
linux-a0fcdb237fcd4eaa7e5009b28ef5be07415f287d.zip
ACPICA: Global event handler
The global event handler is called whenever a general purpose or fixed ACPI event occurs. Also update Linux OSL to collect events counter with global event handler. Signed-off-by: Lin Ming <ming.m.lin@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers/acpi/acpica/evevent.c')
-rw-r--r--drivers/acpi/acpica/evevent.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/drivers/acpi/acpica/evevent.c b/drivers/acpi/acpica/evevent.c
index c61c3039c31a..e5e313c663a5 100644
--- a/drivers/acpi/acpica/evevent.c
+++ b/drivers/acpi/acpica/evevent.c
@@ -217,9 +217,17 @@ u32 acpi_ev_fixed_event_detect(void)
status_bit_mask)
&& (fixed_enable & acpi_gbl_fixed_event_info[i].
enable_bit_mask)) {
+ /*
+ * Found an active (signalled) event. Invoke global event
+ * handler if present.
+ */
+ acpi_fixed_event_count[i]++;
+ if (acpi_gbl_global_event_handler) {
+ acpi_gbl_global_event_handler
+ (ACPI_EVENT_TYPE_FIXED, NULL, i,
+ acpi_gbl_global_event_handler_context);
+ }
- /* Found an active (signalled) event */
- acpi_os_fixed_event_count(i);
int_status |= acpi_ev_fixed_event_dispatch(i);
}
}