diff options
Diffstat (limited to 'sys/contrib/dev/acpica/events/evgpeblk.c')
-rw-r--r-- | sys/contrib/dev/acpica/events/evgpeblk.c | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/sys/contrib/dev/acpica/events/evgpeblk.c b/sys/contrib/dev/acpica/events/evgpeblk.c index 4c115fbebe51..f434fb582f0e 100644 --- a/sys/contrib/dev/acpica/events/evgpeblk.c +++ b/sys/contrib/dev/acpica/events/evgpeblk.c @@ -613,6 +613,18 @@ AcpiEvInitializeGpeBlock ( GpeIndex = (i * ACPI_GPE_REGISTER_WIDTH) + j; GpeEventInfo = &GpeBlock->EventInfo[GpeIndex]; + GpeNumber = GpeIndex + GpeBlock->BlockBaseNumber; + + /* + * If the GPE has already been enabled for runtime + * signalling, make sure that it remains enabled, but + * do not increment its reference count. + */ + if (GpeEventInfo->RuntimeCount) + { + Status = AcpiEvEnableGpe (GpeEventInfo); + goto Enabled; + } /* Ignore GPEs that can wake the system */ @@ -634,9 +646,8 @@ AcpiEvInitializeGpeBlock ( /* Enable this GPE */ - GpeNumber = GpeIndex + GpeBlock->BlockBaseNumber; - Status = AcpiEnableGpe (GpeDevice, GpeNumber, - ACPI_GPE_TYPE_RUNTIME); + Status = AcpiEnableGpe (GpeDevice, GpeNumber); +Enabled: if (ACPI_FAILURE (Status)) { ACPI_EXCEPTION ((AE_INFO, Status, |