[PATCH] platform/x86: Add missing LPS0 functions for AMD

Limonciello, Mario Mario.Limonciello at amd.com
Tue May 4 22:33:12 UTC 2021


[AMD Public Use]

> Subject: [PATCH] platform/x86: Add missing LPS0 functions for AMD

Rafael might be willing to fix it up on commit, but if you end up needing to re-spin
I think technically this subsystem prefix to match other stuff committed to this file
should be:

"ACPI: PM: s2idle:"

> 
> These are supposedly not required for AMD platforms,
> but at least some HP laptops seem to require it to
> properly turn off the keyboard backlight.
> 
> Based on a patch from Marcin Bachry <hegel666 at gmail.com>.
> 
> Bug: https://gitlab.freedesktop.org/drm/amd/-/issues/1230
> Reviewed-by: Hans de Goede <hdegoede at redhat.com>
> Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
> Cc: Marcin Bachry <hegel666 at gmail.com>
> Cc: Mario Limonciello <mario.limonciello at amd.com>
> ---
> 
> Dropping patch 2/2 for now.  This patch fixes several
> systems and doesn't appear to cause any issues.
> 
>  drivers/acpi/x86/s2idle.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/drivers/acpi/x86/s2idle.c b/drivers/acpi/x86/s2idle.c
> index 2b69536cdccb..2d7ddb8a8cb6 100644
> --- a/drivers/acpi/x86/s2idle.c
> +++ b/drivers/acpi/x86/s2idle.c
> @@ -42,6 +42,8 @@ static const struct acpi_device_id lps0_device_ids[] = {
> 
>  /* AMD */
>  #define ACPI_LPS0_DSM_UUID_AMD      "e3f32452-febc-43ce-9039-
> 932122d37721"
> +#define ACPI_LPS0_ENTRY_AMD         2
> +#define ACPI_LPS0_EXIT_AMD          3
>  #define ACPI_LPS0_SCREEN_OFF_AMD    4
>  #define ACPI_LPS0_SCREEN_ON_AMD     5
> 
> @@ -408,6 +410,7 @@ int acpi_s2idle_prepare_late(void)
> 
>  	if (acpi_s2idle_vendor_amd()) {
>  		acpi_sleep_run_lps0_dsm(ACPI_LPS0_SCREEN_OFF_AMD);
> +		acpi_sleep_run_lps0_dsm(ACPI_LPS0_ENTRY_AMD);
>  	} else {
>  		acpi_sleep_run_lps0_dsm(ACPI_LPS0_SCREEN_OFF);
>  		acpi_sleep_run_lps0_dsm(ACPI_LPS0_ENTRY);
> @@ -422,6 +425,7 @@ void acpi_s2idle_restore_early(void)
>  		return;
> 
>  	if (acpi_s2idle_vendor_amd()) {
> +		acpi_sleep_run_lps0_dsm(ACPI_LPS0_EXIT_AMD);
>  		acpi_sleep_run_lps0_dsm(ACPI_LPS0_SCREEN_ON_AMD);
>  	} else {
>  		acpi_sleep_run_lps0_dsm(ACPI_LPS0_EXIT);
> --
> 2.30.2


More information about the amd-gfx mailing list