Re: [PATCH 0/4] Fixups for s2idle on ASUS Rembrandt laptop

From: Mario Limonciello
Date: Sun Sep 18 2022 - 15:47:10 EST


On 9/18/22 03:37, Luke Jones wrote:
Hi,

On Mon, 2022-09-12 at 17:06 +0200, Philipp Zabel wrote:
Am Mon, Sep 12, 2022 at 02:58:51PM +0000 schrieb Limonciello, Mario:
[AMD Official Use Only - General]



-----Original Message-----
From: Philipp Zabel <philipp.zabel@xxxxxxxxx>
Sent: Monday, September 12, 2022 09:57
To: Limonciello, Mario <Mario.Limonciello@xxxxxxx>
Cc: rafael@xxxxxxxxxx; catalin@xxxxxxxxxxx; S-k, Shyam-sundar
<Shyam-
sundar.S-k@xxxxxxx>; Len Brown <lenb@xxxxxxxxxx>; linux-
acpi@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx
Subject: Re: [PATCH 0/4] Fixups for s2idle on ASUS Rembrandt
laptop

Hi Mario,

Am Fri, Sep 09, 2022 at 01:05:05PM -0500 schrieb Mario
Limonciello:
It was reported that an ASUS Rembrandt laptop has problems with
seemingly
unrelated ACPI events after resuming from s2idle. Debugging the
issue
proved it's because ASUS has ASL that is only called when using
the
Microsoft GUID, not the AMD GUID.

This is a bug from ASUS firmware but this series reworks the
s2idle
handling for AMD to allow accounting for this in a quirk.

Additionally as this is a problem that may pop up again on
other models
add a module parameter that can be used to try the Microsoft
GUID on a
given system.

thank you, these also helped on an ASUS ROG Zephyrus G14 (2022)
with
BIOS version GA402RJ.313. Patches 1-3

Tested-by: Philipp Zabel <philipp.zabel@xxxxxxxxx> # GA402RJ

Did you use acpi.prefer_microsoft_guid=1 for your system then too?

If so, I should re-spin this series to add your system's quirk to
patch 4.

Yes. I also tested with the following diff applied instead of the
module
parameter:

----------8<----------
diff --git a/drivers/acpi/x86/s2idle.c b/drivers/acpi/x86/s2idle.c
index 6a2c94fdbeae..a247560e31de 100644
--- a/drivers/acpi/x86/s2idle.c
+++ b/drivers/acpi/x86/s2idle.c
@@ -420,6 +420,14 @@ static const struct dmi_system_id
s2idle_dmi_table[] __initconst = {
                        DMI_MATCH(DMI_PRODUCT_NAME, "ASUS TUF Gaming
A17"),
                },
        },
+       {
+               /* ASUS ROG Zephyrus G14 (2022) */
+               .callback = lps0_prefer_microsoft,
+               .matches = {
+                       DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER
INC."),
+                       DMI_MATCH(DMI_PRODUCT_NAME, "ROG Zephyrus G14
GA402"),

Just a note, this needs to be `ROG Zephyrus G14 GA402R` or this will
catch the GA402Q series as well which doesn't require this quirk.
In general the model numbering goes
<Range><Model><Generation><Graphics>, So for my old G14 <GA><402<Q><M>.
Or for example a ROG Strix machine <G><513><Q><Y>


What _HID is used? From your description GA402"Q" is Cezanne generation right? Can you please share the acpidump for me to confirm what is happening and if it's expected?

I don't know of any others that may need this quirk.

+               },
+       },
        {}
 };
---------->8----------

The full DMI Product Name is "ROG Zephyrus G14 GA402RJ_GA402RJ", but
there is also a near-identical higher spec model GA402RK.

regards
Philipp