Skip to content

Commit

Permalink
ACPICA: New: Public GPE group enable/disable interfaces
Browse files Browse the repository at this point in the history
Added acpi_disable_all_gpes and acpi_enable_all_runtime_gpes for
public use.

Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Lin Ming <ming.m.lin@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
  • Loading branch information
Bob Moore authored and Len Brown committed Dec 31, 2008
1 parent e97d6bf commit 08ac07b
Show file tree
Hide file tree
Showing 2 changed files with 69 additions and 4 deletions.
58 changes: 58 additions & 0 deletions drivers/acpi/events/evxfevnt.c
Original file line number Diff line number Diff line change
Expand Up @@ -810,3 +810,61 @@ acpi_ev_get_gpe_device(struct acpi_gpe_xrupt_info *gpe_xrupt_info,

return (AE_OK);
}

/******************************************************************************
*
* FUNCTION: acpi_disable_all_gpes
*
* PARAMETERS: None
*
* RETURN: Status
*
* DESCRIPTION: Disable and clear all GPEs in all GPE blocks
*
******************************************************************************/

acpi_status acpi_disable_all_gpes(void)
{
acpi_status status;

ACPI_FUNCTION_TRACE(acpi_disable_all_gpes);

status = acpi_ut_acquire_mutex(ACPI_MTX_EVENTS);
if (ACPI_FAILURE(status)) {
return_ACPI_STATUS(status);
}

status = acpi_hw_disable_all_gpes();
(void)acpi_ut_release_mutex(ACPI_MTX_EVENTS);

return_ACPI_STATUS(status);
}

/******************************************************************************
*
* FUNCTION: acpi_enable_all_runtime_gpes
*
* PARAMETERS: None
*
* RETURN: Status
*
* DESCRIPTION: Enable all "runtime" GPEs, in all GPE blocks
*
******************************************************************************/

acpi_status acpi_enable_all_runtime_gpes(void)
{
acpi_status status;

ACPI_FUNCTION_TRACE(acpi_enable_all_runtime_gpes);

status = acpi_ut_acquire_mutex(ACPI_MTX_EVENTS);
if (ACPI_FAILURE(status)) {
return_ACPI_STATUS(status);
}

status = acpi_hw_enable_all_runtime_gpes();
(void)acpi_ut_release_mutex(ACPI_MTX_EVENTS);

return_ACPI_STATUS(status);
}
15 changes: 11 additions & 4 deletions include/acpi/acpixf.h
Original file line number Diff line number Diff line change
Expand Up @@ -229,6 +229,10 @@ acpi_install_gpe_handler(acpi_handle gpe_device,
u32 gpe_number,
u32 type, acpi_event_handler address, void *context);

acpi_status
acpi_remove_gpe_handler(acpi_handle gpe_device,
u32 gpe_number, acpi_event_handler address);

#ifdef ACPI_FUTURE_USAGE
acpi_status acpi_install_exception_handler(acpi_exception_handler handler);
#endif
Expand All @@ -240,10 +244,6 @@ acpi_status acpi_acquire_global_lock(u16 timeout, u32 * handle);

acpi_status acpi_release_global_lock(u32 handle);

acpi_status
acpi_remove_gpe_handler(acpi_handle gpe_device,
u32 gpe_number, acpi_event_handler address);

acpi_status acpi_enable_event(u32 event, u32 flags);

acpi_status acpi_disable_event(u32 event, u32 flags);
Expand All @@ -252,6 +252,9 @@ acpi_status acpi_clear_event(u32 event);

acpi_status acpi_get_event_status(u32 event, acpi_event_status * event_status);

/*
* GPE Interfaces
*/
acpi_status acpi_set_gpe_type(acpi_handle gpe_device, u32 gpe_number, u8 type);

acpi_status acpi_enable_gpe(acpi_handle gpe_device, u32 gpe_number);
Expand All @@ -265,6 +268,10 @@ acpi_get_gpe_status(acpi_handle gpe_device,
u32 gpe_number,
u32 flags, acpi_event_status * event_status);

acpi_status acpi_disable_all_gpes(void);

acpi_status acpi_enable_all_runtime_gpes(void);

acpi_status acpi_get_gpe_device(u32 gpe_index, acpi_handle *gpe_device);

acpi_status
Expand Down

0 comments on commit 08ac07b

Please sign in to comment.