summaryrefslogtreecommitdiff
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.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/source/components/events/evgpe.c b/source/components/events/evgpe.c
index f5ea992a270b..a7ee84c92f11 100644
--- a/source/components/events/evgpe.c
+++ b/source/components/events/evgpe.c
@@ -316,6 +316,7 @@ AcpiEvMaskGpe (
* FUNCTION: AcpiEvAddGpeReference
*
* PARAMETERS: GpeEventInfo - Add a reference to this GPE
+ * ClearOnEnable - Clear GPE status before enabling it
*
* RETURN: Status
*
@@ -326,7 +327,8 @@ AcpiEvMaskGpe (
ACPI_STATUS
AcpiEvAddGpeReference (
- ACPI_GPE_EVENT_INFO *GpeEventInfo)
+ ACPI_GPE_EVENT_INFO *GpeEventInfo,
+ BOOLEAN ClearOnEnable)
{
ACPI_STATUS Status = AE_OK;
@@ -344,6 +346,11 @@ AcpiEvAddGpeReference (
{
/* Enable on first reference */
+ if (ClearOnEnable)
+ {
+ (void) AcpiHwClearGpe (GpeEventInfo);
+ }
+
Status = AcpiEvUpdateGpeEnableMask (GpeEventInfo);
if (ACPI_SUCCESS (Status))
{