summaryrefslogtreecommitdiffstats
path: root/drivers/acpi/acpica/acevents.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/acpi/acpica/acevents.h')
-rw-r--r--drivers/acpi/acpica/acevents.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/acpi/acpica/acevents.h b/drivers/acpi/acpica/acevents.h
index fa68544c7c07..1ad1608cc880 100644
--- a/drivers/acpi/acpica/acevents.h
+++ b/drivers/acpi/acpica/acevents.h
@@ -45,6 +45,20 @@
#define __ACEVENTS_H__
/*
+ * Conditions to trigger post enabling GPE polling:
+ * It is not sufficient to trigger edge-triggered GPE with specific GPE
+ * chips, software need to poll once after enabling.
+ */
+#ifdef ACPI_USE_GPE_POLLING
+#define ACPI_GPE_IS_POLLING_NEEDED(__gpe__) \
+ ((__gpe__)->runtime_count == 1 && \
+ (__gpe__)->flags & ACPI_GPE_INITIALIZED && \
+ ((__gpe__)->flags & ACPI_GPE_XRUPT_TYPE_MASK) == ACPI_GPE_EDGE_TRIGGERED)
+#else
+#define ACPI_GPE_IS_POLLING_NEEDED(__gpe__) FALSE
+#endif
+
+/*
* evevent
*/
acpi_status acpi_ev_initialize_events(void);