|
@@ -324,8 +324,9 @@ ACPI_EXPORT_SYMBOL(acpi_clear_event)
|
|
|
******************************************************************************/
|
|
|
acpi_status acpi_get_event_status(u32 event, acpi_event_status * event_status)
|
|
|
{
|
|
|
- acpi_status status = AE_OK;
|
|
|
- u32 value;
|
|
|
+ acpi_status status;
|
|
|
+ acpi_event_status local_event_status = 0;
|
|
|
+ u32 in_byte;
|
|
|
|
|
|
ACPI_FUNCTION_TRACE(acpi_get_event_status);
|
|
|
|
|
@@ -339,29 +340,40 @@ acpi_status acpi_get_event_status(u32 event, acpi_event_status * event_status)
|
|
|
return_ACPI_STATUS(AE_BAD_PARAMETER);
|
|
|
}
|
|
|
|
|
|
- /* Get the status of the requested fixed event */
|
|
|
+ /* Fixed event currently can be dispatched? */
|
|
|
+
|
|
|
+ if (acpi_gbl_fixed_event_handlers[event].handler) {
|
|
|
+ local_event_status |= ACPI_EVENT_FLAG_HANDLE;
|
|
|
+ }
|
|
|
+
|
|
|
+ /* Fixed event currently enabled? */
|
|
|
|
|
|
status =
|
|
|
acpi_read_bit_register(acpi_gbl_fixed_event_info[event].
|
|
|
- enable_register_id, &value);
|
|
|
- if (ACPI_FAILURE(status))
|
|
|
+ enable_register_id, &in_byte);
|
|
|
+ if (ACPI_FAILURE(status)) {
|
|
|
return_ACPI_STATUS(status);
|
|
|
+ }
|
|
|
|
|
|
- *event_status = value;
|
|
|
+ if (in_byte) {
|
|
|
+ local_event_status |= ACPI_EVENT_FLAG_ENABLED;
|
|
|
+ }
|
|
|
+
|
|
|
+ /* Fixed event currently active? */
|
|
|
|
|
|
status =
|
|
|
acpi_read_bit_register(acpi_gbl_fixed_event_info[event].
|
|
|
- status_register_id, &value);
|
|
|
- if (ACPI_FAILURE(status))
|
|
|
+ status_register_id, &in_byte);
|
|
|
+ if (ACPI_FAILURE(status)) {
|
|
|
return_ACPI_STATUS(status);
|
|
|
+ }
|
|
|
|
|
|
- if (value)
|
|
|
- *event_status |= ACPI_EVENT_FLAG_SET;
|
|
|
-
|
|
|
- if (acpi_gbl_fixed_event_handlers[event].handler)
|
|
|
- *event_status |= ACPI_EVENT_FLAG_HANDLE;
|
|
|
+ if (in_byte) {
|
|
|
+ local_event_status |= ACPI_EVENT_FLAG_SET;
|
|
|
+ }
|
|
|
|
|
|
- return_ACPI_STATUS(status);
|
|
|
+ (*event_status) = local_event_status;
|
|
|
+ return_ACPI_STATUS(AE_OK);
|
|
|
}
|
|
|
|
|
|
ACPI_EXPORT_SYMBOL(acpi_get_event_status)
|