diff options
Diffstat (limited to 'sys/contrib/dev/acpica/evxfevnt.c')
-rw-r--r-- | sys/contrib/dev/acpica/evxfevnt.c | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/sys/contrib/dev/acpica/evxfevnt.c b/sys/contrib/dev/acpica/evxfevnt.c index d6c849e8991a..2c38dcb6449f 100644 --- a/sys/contrib/dev/acpica/evxfevnt.c +++ b/sys/contrib/dev/acpica/evxfevnt.c @@ -1,7 +1,7 @@ /****************************************************************************** * * Module Name: evxfevnt - External Interfaces, ACPI event disable/enable - * $Revision: 22 $ + * $Revision: 26 $ * *****************************************************************************/ @@ -287,7 +287,14 @@ AcpiEnableEvent ( * enable register bit) */ - AcpiHwRegisterAccess (ACPI_WRITE, TRUE, RegisterId, 1); + AcpiHwRegisterBitAccess (ACPI_WRITE, ACPI_MTX_LOCK, RegisterId, 1); + + if (1 != AcpiHwRegisterBitAccess(ACPI_READ, ACPI_MTX_LOCK, RegisterId)) + { + DEBUG_PRINT(ACPI_ERROR, ("Fixed event bit clear when it should be set,\n")); + return_ACPI_STATUS (AE_ERROR); + } + break; @@ -384,7 +391,14 @@ AcpiDisableEvent ( * enable register bit) */ - AcpiHwRegisterAccess (ACPI_WRITE, TRUE, RegisterId, 0); + AcpiHwRegisterBitAccess (ACPI_WRITE, ACPI_MTX_LOCK, RegisterId, 0); + + if (0 != AcpiHwRegisterBitAccess(ACPI_READ, ACPI_MTX_LOCK, RegisterId)) + { + DEBUG_PRINT(ACPI_ERROR, ("Fixed event bit set when it should be clear,\n")); + return_ACPI_STATUS (AE_ERROR); + } + break; @@ -478,7 +492,7 @@ AcpiClearEvent ( * status register bit) */ - AcpiHwRegisterAccess (ACPI_WRITE, TRUE, RegisterId, 1); + AcpiHwRegisterBitAccess (ACPI_WRITE, ACPI_MTX_LOCK, RegisterId, 1); break; @@ -579,7 +593,7 @@ AcpiGetEventStatus ( /* Get the status of the requested fixed event */ - *EventStatus = AcpiHwRegisterAccess (ACPI_READ, TRUE, RegisterId); + *EventStatus = AcpiHwRegisterBitAccess (ACPI_READ, ACPI_MTX_LOCK, RegisterId); break; |