RE: [PATCH 4/5] ACPICA: Introduce acpi_enable_all_wakeup_gpes()

From: Moore, Robert
Date: Tue Sep 30 2014 - 11:52:26 EST


If you need it, sure.
Let me know when there is an ACPICA version


> -----Original Message-----
> From: Rafael J. Wysocki [mailto:rjw@xxxxxxxxxxxxx]
> Sent: Monday, September 29, 2014 5:26 PM
> To: ACPI Devel Maling List; Moore, Robert
> Cc: Linux Kernel Mailing List; Zhang, Rui; Linux PM list
> Subject: [PATCH 4/5] ACPICA: Introduce acpi_enable_all_wakeup_gpes()
>
> From: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
>
> Add a routine for host OSes to enable all wakeup GPEs and disable all of
> the non-wakeup ones at the same time.
>
> It will be used for the handling of GPE wakeup from suspend-to-idle in
> Linux.
>
> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
> ---
>
> Bob, please let me know if I can fast-track this one.
>
> ---
> drivers/acpi/acpica/evxfgpe.c | 32 ++++++++++++++++++++++++++++++++
> include/acpi/acpixf.h | 1 +
> 2 files changed, 33 insertions(+)
>
> Index: linux-pm/drivers/acpi/acpica/evxfgpe.c
> ===================================================================
> --- linux-pm.orig/drivers/acpi/acpica/evxfgpe.c
> +++ linux-pm/drivers/acpi/acpica/evxfgpe.c
> @@ -596,6 +596,38 @@ acpi_status acpi_enable_all_runtime_gpes
>
> ACPI_EXPORT_SYMBOL(acpi_enable_all_runtime_gpes)
>
> +/**********************************************************************
> +********
> + *
> + * FUNCTION: acpi_enable_all_wakeup_gpes
> + *
> + * PARAMETERS: None
> + *
> + * RETURN: Status
> + *
> + * DESCRIPTION: Enable all "wakeup" GPEs and disable all of the other
> GPEs, in
> + * all GPE blocks.
> + *
> +
> +***********************************************************************
> +*******/
> +
> +acpi_status acpi_enable_all_wakeup_gpes(void) {
> + acpi_status status;
> +
> + ACPI_FUNCTION_TRACE(acpi_enable_all_wakeup_gpes);
> +
> + status = acpi_ut_acquire_mutex(ACPI_MTX_EVENTS);
> + if (ACPI_FAILURE(status)) {
> + return_ACPI_STATUS(status);
> + }
> +
> + status = acpi_hw_enable_all_wakeup_gpes();
> + (void)acpi_ut_release_mutex(ACPI_MTX_EVENTS);
> +
> + return_ACPI_STATUS(status);
> +}
> +
> +ACPI_EXPORT_SYMBOL(acpi_enable_all_wakeup_gpes)
> +
>
> /*************************************************************************
> ******
> *
> * FUNCTION: acpi_install_gpe_block
> Index: linux-pm/include/acpi/acpixf.h
> ===================================================================
> --- linux-pm.orig/include/acpi/acpixf.h
> +++ linux-pm/include/acpi/acpixf.h
> @@ -692,6 +692,7 @@ ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_sta
> *event_status))
> ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status acpi_disable_all_gpes(void))
> ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
> acpi_enable_all_runtime_gpes(void))
> +ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
> +acpi_enable_all_wakeup_gpes(void))
>
> ACPI_HW_DEPENDENT_RETURN_STATUS(acpi_status
> acpi_get_gpe_device(u32 gpe_index,