Hi, On 3/17/21 3:38 PM, Alex Deucher wrote: > ACPI_LPS0_ENTRY_AMD/ACPI_LPS0_EXIT_AMD are supposedly not > required for AMD platforms, and on some platforms they are > not even listed in the function mask but at least some HP > laptops seem to require it to properly support s0ix. > > Based on a patch from Marcin Bachry <hegel666@xxxxxxxxx>. > > Bug: https://gitlab.freedesktop.org/drm/amd/-/issues/1230 > Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx> > Cc: Marcin Bachry <hegel666@xxxxxxxxx> > --- > > V2: rework the patch to just fix up the specific problematic > case by setting the function flags that are missing. Thanks, the new version looks good to me: Reviewed-by: Hans de Goede <hdegoede@xxxxxxxxxx> Regards, Hans > > drivers/acpi/x86/s2idle.c | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/drivers/acpi/x86/s2idle.c b/drivers/acpi/x86/s2idle.c > index 2d7ddb8a8cb6..482e6b23b21a 100644 > --- a/drivers/acpi/x86/s2idle.c > +++ b/drivers/acpi/x86/s2idle.c > @@ -368,6 +368,13 @@ static int lps0_device_attach(struct acpi_device *adev, > > ACPI_FREE(out_obj); > > + /* > + * Some HP laptops require ACPI_LPS0_ENTRY_AMD/ACPI_LPS0_EXIT_AMD for proper > + * S0ix, but don't set the function mask correctly. Fix that up here. > + */ > + if (acpi_s2idle_vendor_amd()) > + lps0_dsm_func_mask |= (1 << ACPI_LPS0_ENTRY_AMD) | (1 << ACPI_LPS0_EXIT_AMD); > + > acpi_handle_debug(adev->handle, "_DSM function mask: 0x%x\n", > lps0_dsm_func_mask); > >