2022-09-21 20:46:45

by Mario Limonciello

[permalink] [raw]
Subject: [PATCH v4 0/7] Fixups for s2idle on various Rembrandt laptops

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.

This module parameter intentionally applies to both Intel and AMD systems
as the same problem could potentially exist on Intel systems that support
both the Intel GUID or the Microsoft GUID.

v3->v4:
* Absorb tags
* minor URL correction
* Rename module parameter per Rafael's request
v2->v3:
* Add more systems
v1->v2:
* Add two more systems that are reported to be helped by this series.

Mario Limonciello (7):
acpi/x86: s2idle: Move _HID handling for AMD systems into structures
acpi/x86: s2idle: If a new AMD _HID is missing assume Rembrandt
acpi/x86: s2idle: Add module parameter to prefer Microsoft GUID
acpi/x86: s2idle: Add a quirk for ASUS TUF Gaming A17 FA707RE
acpi/x86: s2idle: Add a quirk for ASUS ROG Zephyrus G14
acpi/x86: s2idle: Add a quirk for Lenovo Slim 7 Pro 14ARH7
acpi/x86: s2idle: Add a quirk for ASUSTeK COMPUTER INC. ROG Flow X13

drivers/acpi/x86/s2idle.c | 136 +++++++++++++++++++++++++++++++-------
1 file changed, 112 insertions(+), 24 deletions(-)

--
2.34.1


2022-09-21 20:47:56

by Mario Limonciello

[permalink] [raw]
Subject: [PATCH v4 3/7] acpi/x86: s2idle: Add module parameter to prefer Microsoft GUID

OEMs have made some mistakes in the past for the AMD GUID support
and not populated the method properly. To add an escape hatch for
this problem introduce a module parameter that can force using
the Microsoft GUID.

This is intentionally introduced to both Intel and AMD codepaths
to allow using the parameter as a debugging tactic on either.

Reviewed-by: Philipp Zabel <[email protected]>
Tested-by: Philipp Zabel <[email protected]> # GA402RJ
Signed-off-by: Mario Limonciello <[email protected]>
---
v3->v4:
* Rename parameter and string per Rafael's request
v2->v3:
* Add tags
---
drivers/acpi/x86/s2idle.c | 16 ++++++++++------
1 file changed, 10 insertions(+), 6 deletions(-)

diff --git a/drivers/acpi/x86/s2idle.c b/drivers/acpi/x86/s2idle.c
index 2c5931d247a2..725d2a6c87ed 100644
--- a/drivers/acpi/x86/s2idle.c
+++ b/drivers/acpi/x86/s2idle.c
@@ -27,6 +27,10 @@ static bool sleep_no_lps0 __read_mostly;
module_param(sleep_no_lps0, bool, 0644);
MODULE_PARM_DESC(sleep_no_lps0, "Do not use the special LPS0 device interface");

+static bool prefer_microsoft_dsm_guid __read_mostly;
+module_param(prefer_microsoft_dsm_guid, bool, 0644);
+MODULE_PARM_DESC(prefer_microsoft_dsm_guid, "Prefer using Microsoft GUID in LPS0 device _DSM evaluation");
+
static const struct acpi_device_id lps0_device_ids[] = {
{"PNP0D80", },
{"", },
@@ -402,6 +406,9 @@ static int lps0_device_attach(struct acpi_device *adev,
if (lps0_device_handle)
return 0;

+ lps0_dsm_func_mask_microsoft = validate_dsm(adev->handle,
+ ACPI_LPS0_DSM_UUID_MICROSOFT, 0,
+ &lps0_dsm_guid_microsoft);
if (acpi_s2idle_vendor_amd()) {
static const struct acpi_device_id *dev_id;
const struct amd_lps0_hid_device_data *data;
@@ -416,16 +423,12 @@ static int lps0_device_attach(struct acpi_device *adev,
rev_id = data->rev_id;
lps0_dsm_func_mask = validate_dsm(adev->handle,
ACPI_LPS0_DSM_UUID_AMD, rev_id, &lps0_dsm_guid);
- lps0_dsm_func_mask_microsoft = validate_dsm(adev->handle,
- ACPI_LPS0_DSM_UUID_MICROSOFT, 0,
- &lps0_dsm_guid_microsoft);
if (lps0_dsm_func_mask > 0x3 && data->check_off_by_one) {
lps0_dsm_func_mask = (lps0_dsm_func_mask << 1) | 0x1;
acpi_handle_debug(adev->handle, "_DSM UUID %s: Adjusted function mask: 0x%x\n",
ACPI_LPS0_DSM_UUID_AMD, lps0_dsm_func_mask);
} else if (lps0_dsm_func_mask_microsoft > 0 && data->prefer_amd_guid &&
- (!strcmp(hid, "AMDI0007") ||
- !strcmp(hid, "AMDI0008"))) {
+ !prefer_microsoft_dsm_guid) {
lps0_dsm_func_mask_microsoft = -EINVAL;
acpi_handle_debug(adev->handle, "_DSM Using AMD method\n");
}
@@ -433,7 +436,8 @@ static int lps0_device_attach(struct acpi_device *adev,
rev_id = 1;
lps0_dsm_func_mask = validate_dsm(adev->handle,
ACPI_LPS0_DSM_UUID, rev_id, &lps0_dsm_guid);
- lps0_dsm_func_mask_microsoft = -EINVAL;
+ if (!prefer_microsoft_dsm_guid)
+ lps0_dsm_func_mask_microsoft = -EINVAL;
}

if (lps0_dsm_func_mask < 0 && lps0_dsm_func_mask_microsoft < 0)
--
2.34.1

2022-09-21 20:49:24

by Mario Limonciello

[permalink] [raw]
Subject: [PATCH v4 4/7] acpi/x86: s2idle: Add a quirk for ASUS TUF Gaming A17 FA707RE

ASUS TUF Gaming A17 FA707RE has problems with ACPI events after
s2idle resume. It's from a missing call to an ASL method in AMD
the s2idle calling path. Force the system to use the Microsoft
Modern Standby calling path instead.

Link: https://bugzilla.kernel.org/show_bug.cgi?id=216101
Reported-and-tested-by: [email protected]
Reviewed-by: Philipp Zabel <[email protected]>
Tested-by: Philipp Zabel <[email protected]> # GA402RJ
Signed-off-by: Mario Limonciello <[email protected]>
---
v3->v4:
* Rename parameter per change in 3/7
v2->v3:
* Add tags
v1->v2:
* Fixup for __init
---
drivers/acpi/x86/s2idle.c | 26 +++++++++++++++++++++++++-
1 file changed, 25 insertions(+), 1 deletion(-)

diff --git a/drivers/acpi/x86/s2idle.c b/drivers/acpi/x86/s2idle.c
index 725d2a6c87ed..99eae362de6d 100644
--- a/drivers/acpi/x86/s2idle.c
+++ b/drivers/acpi/x86/s2idle.c
@@ -17,6 +17,7 @@

#include <linux/acpi.h>
#include <linux/device.h>
+#include <linux/dmi.h>
#include <linux/suspend.h>

#include "../sleep.h"
@@ -400,6 +401,28 @@ static const struct acpi_device_id amd_hid_ids[] = {
{}
};

+static int lps0_prefer_microsoft(const struct dmi_system_id *id)
+{
+ pr_debug("Preferring Microsoft GUID.\n");
+ prefer_microsoft_dsm_guid = true;
+ return 0;
+}
+
+static const struct dmi_system_id s2idle_dmi_table[] __initconst = {
+ {
+ /*
+ * ASUS TUF Gaming A17 FA707RE
+ * https://bugzilla.kernel.org/show_bug.cgi?id=216101
+ */
+ .callback = lps0_prefer_microsoft,
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
+ DMI_MATCH(DMI_PRODUCT_NAME, "ASUS TUF Gaming A17"),
+ },
+ },
+ {}
+};
+
static int lps0_device_attach(struct acpi_device *adev,
const struct acpi_device_id *not_used)
{
@@ -566,8 +589,9 @@ static const struct platform_s2idle_ops acpi_s2idle_ops_lps0 = {
.end = acpi_s2idle_end,
};

-void acpi_s2idle_setup(void)
+void __init acpi_s2idle_setup(void)
{
+ dmi_check_system(s2idle_dmi_table);
acpi_scan_add_handler(&lps0_handler);
s2idle_set_ops(&acpi_s2idle_ops_lps0);
}
--
2.34.1

2022-09-21 20:50:03

by Mario Limonciello

[permalink] [raw]
Subject: [PATCH v4 5/7] acpi/x86: s2idle: Add a quirk for ASUS ROG Zephyrus G14

ASUS ROG Zephyrus G14 is affected by the same BIOS bug as ASUS TUF
Gaming A17 where important ASL is not called in the AMD code path.
Use the Microsoft codepath instead.

Reported-and-suggested-by: Philipp Zabel <[email protected]>
Tested-by: Philipp Zabel <[email protected]>
Tested-by: Matthew Anderson <[email protected]>
Tested-by: Marko Cekrlic <[email protected]>
Signed-off-by: Mario Limonciello <[email protected]>
---
v3-v4:
* Absorb tags
v2->v3:
* Absorb tags
v1->v2:
* New patch
---
drivers/acpi/x86/s2idle.c | 8 ++++++++
1 file changed, 8 insertions(+)

diff --git a/drivers/acpi/x86/s2idle.c b/drivers/acpi/x86/s2idle.c
index 99eae362de6d..2cd381f6c002 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"),
+ },
+ },
{}
};

--
2.34.1

2022-09-21 20:50:03

by Mario Limonciello

[permalink] [raw]
Subject: [PATCH v4 6/7] acpi/x86: s2idle: Add a quirk for Lenovo Slim 7 Pro 14ARH7

Lenovo Slim 7 Pro 14ARH7 has a sporadically non-functional keyboard
when resuming from s2idle. This is caused by some missing calls to the
EC that don't occur in the AMD codepath but only in the Microsoft codepath.

Add the system to the quirk list to force Microsoft codepath.

Reported-by: Travis Glenn Hansen <[email protected]>
Reported-by: Sebastian S. <[email protected]>
Link: https://bugzilla.kernel.org/show_bug.cgi?id=216473
Link: https://bugzilla.kernel.org/show_bug.cgi?id=216438
Signed-off-by: Mario Limonciello <[email protected]>
---
v3->v4:
* Fix URL for one of the bugzilla links
v2->v3:
* Adjust prefix to cover multiple systems
* Add another Link tag
v1->v2:
* New patch
---
drivers/acpi/x86/s2idle.c | 12 ++++++++++++
1 file changed, 12 insertions(+)

diff --git a/drivers/acpi/x86/s2idle.c b/drivers/acpi/x86/s2idle.c
index 2cd381f6c002..c811eeed42cd 100644
--- a/drivers/acpi/x86/s2idle.c
+++ b/drivers/acpi/x86/s2idle.c
@@ -428,6 +428,18 @@ static const struct dmi_system_id s2idle_dmi_table[] __initconst = {
DMI_MATCH(DMI_PRODUCT_NAME, "ROG Zephyrus G14 GA402"),
},
},
+ {
+ /*
+ * Lenovo Yoga Slim 7 Pro X 14ARH7
+ * https://bugzilla.kernel.org/show_bug.cgi?id=216473 : 82V2
+ * https://bugzilla.kernel.org/show_bug.cgi?id=216438 : 82TL
+ */
+ .callback = lps0_prefer_microsoft,
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "82"),
+ },
+ },
{}
};

--
2.34.1

2022-09-21 20:50:44

by Mario Limonciello

[permalink] [raw]
Subject: [PATCH v4 7/7] acpi/x86: s2idle: Add a quirk for ASUSTeK COMPUTER INC. ROG Flow X13

ASUSTeK COMPUTER INC. ROG Flow X13 has a problem with fans upon wakeup from
s2idle. In examining the ASL, functions 3 and 4 are not called in the AMD
codepath but only in the Microsoft codepath.

Add the system to the quirk list to force Microsoft codepath.

Link: https://gitlab.freedesktop.org/drm/amd/-/issues/2148
Tested-by: short-circuit <[email protected]>
Signed-off-by: Mario Limonciello <[email protected]>
---
v3->v4:
* Absorb tag
v2->v3:
* New patch
---
drivers/acpi/x86/s2idle.c | 11 +++++++++++
1 file changed, 11 insertions(+)

diff --git a/drivers/acpi/x86/s2idle.c b/drivers/acpi/x86/s2idle.c
index c811eeed42cd..eedd21d8a284 100644
--- a/drivers/acpi/x86/s2idle.c
+++ b/drivers/acpi/x86/s2idle.c
@@ -440,6 +440,17 @@ static const struct dmi_system_id s2idle_dmi_table[] __initconst = {
DMI_MATCH(DMI_PRODUCT_NAME, "82"),
},
},
+ {
+ /*
+ * ASUSTeK COMPUTER INC. ROG Flow X13 GV301RE_GV301RE
+ * https://gitlab.freedesktop.org/drm/amd/-/issues/2148
+ */
+ .callback = lps0_prefer_microsoft,
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
+ DMI_MATCH(DMI_PRODUCT_NAME, "ROG Flow X13 GV301"),
+ },
+ },
{}
};

--
2.34.1

2022-09-21 21:00:40

by Mario Limonciello

[permalink] [raw]
Subject: [PATCH v4 2/7] acpi/x86: s2idle: If a new AMD _HID is missing assume Rembrandt

A mistake was made that only AMDI0007 was set to rev of "2", but
it should have been also set for AMDI008. If an ID is missing from
the _HID table, then assume it matches Rembrandt behavior.

This implicitly means that if any other behavior changes happen
in the future missing IDs must be added to that table.

Tested-by: [email protected]
Reviewed-by: Philipp Zabel <[email protected]>
Tested-by: Philipp Zabel <[email protected]> # GA402RJ
Signed-off-by: Mario Limonciello <[email protected]>
---
v2->v3:
* Add tags
---
drivers/acpi/x86/s2idle.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/acpi/x86/s2idle.c b/drivers/acpi/x86/s2idle.c
index 28a3ef9a6bc1..2c5931d247a2 100644
--- a/drivers/acpi/x86/s2idle.c
+++ b/drivers/acpi/x86/s2idle.c
@@ -412,7 +412,7 @@ static int lps0_device_attach(struct acpi_device *adev,
if (dev_id)
data = (const struct amd_lps0_hid_device_data *) dev_id->driver_data;
else
- return 0;
+ data = &amd_rembrandt;
rev_id = data->rev_id;
lps0_dsm_func_mask = validate_dsm(adev->handle,
ACPI_LPS0_DSM_UUID_AMD, rev_id, &lps0_dsm_guid);
--
2.34.1

2022-09-21 21:28:37

by Mario Limonciello

[permalink] [raw]
Subject: [PATCH v4 1/7] acpi/x86: s2idle: Move _HID handling for AMD systems into structures

Right now the information about which cases to use for what are in a
comment, but this is error prone. Instead move all information into
a dedicated structure.

Tested-by: [email protected]
Reviewed-by: Philipp Zabel <[email protected]>
Tested-by: Philipp Zabel <[email protected]> # GA402RJ
Signed-off-by: Mario Limonciello <[email protected]>
---
v2->v3:
* Add tags
* Don't check for != NULL
---
drivers/acpi/x86/s2idle.c | 63 ++++++++++++++++++++++++++++-----------
1 file changed, 46 insertions(+), 17 deletions(-)

diff --git a/drivers/acpi/x86/s2idle.c b/drivers/acpi/x86/s2idle.c
index f9ac12b778e6..28a3ef9a6bc1 100644
--- a/drivers/acpi/x86/s2idle.c
+++ b/drivers/acpi/x86/s2idle.c
@@ -363,6 +363,39 @@ static int validate_dsm(acpi_handle handle, const char *uuid, int rev, guid_t *d
return ret;
}

+struct amd_lps0_hid_device_data {
+ const unsigned int rev_id;
+ const bool check_off_by_one;
+ const bool prefer_amd_guid;
+};
+
+static const struct amd_lps0_hid_device_data amd_picasso = {
+ .rev_id = 0,
+ .check_off_by_one = true,
+ .prefer_amd_guid = false,
+};
+
+static const struct amd_lps0_hid_device_data amd_cezanne = {
+ .rev_id = 0,
+ .check_off_by_one = false,
+ .prefer_amd_guid = false,
+};
+
+static const struct amd_lps0_hid_device_data amd_rembrandt = {
+ .rev_id = 2,
+ .check_off_by_one = false,
+ .prefer_amd_guid = true,
+};
+
+static const struct acpi_device_id amd_hid_ids[] = {
+ {"AMD0004", (kernel_ulong_t)&amd_picasso, },
+ {"AMD0005", (kernel_ulong_t)&amd_picasso, },
+ {"AMDI0005", (kernel_ulong_t)&amd_picasso, },
+ {"AMDI0006", (kernel_ulong_t)&amd_cezanne, },
+ {"AMDI0007", (kernel_ulong_t)&amd_rembrandt, },
+ {}
+};
+
static int lps0_device_attach(struct acpi_device *adev,
const struct acpi_device_id *not_used)
{
@@ -370,31 +403,27 @@ static int lps0_device_attach(struct acpi_device *adev,
return 0;

if (acpi_s2idle_vendor_amd()) {
- /* AMD0004, AMD0005, AMDI0005:
- * - Should use rev_id 0x0
- * - function mask > 0x3: Should use AMD method, but has off by one bug
- * - function mask = 0x3: Should use Microsoft method
- * AMDI0006:
- * - should use rev_id 0x0
- * - function mask = 0x3: Should use Microsoft method
- * AMDI0007:
- * - Should use rev_id 0x2
- * - Should only use AMD method
- */
- const char *hid = acpi_device_hid(adev);
- rev_id = strcmp(hid, "AMDI0007") ? 0 : 2;
+ static const struct acpi_device_id *dev_id;
+ const struct amd_lps0_hid_device_data *data;
+
+ for (dev_id = &amd_hid_ids[0]; dev_id->id[0]; dev_id++)
+ if (acpi_dev_hid_uid_match(adev, dev_id->id, NULL))
+ break;
+ if (dev_id)
+ data = (const struct amd_lps0_hid_device_data *) dev_id->driver_data;
+ else
+ return 0;
+ rev_id = data->rev_id;
lps0_dsm_func_mask = validate_dsm(adev->handle,
ACPI_LPS0_DSM_UUID_AMD, rev_id, &lps0_dsm_guid);
lps0_dsm_func_mask_microsoft = validate_dsm(adev->handle,
ACPI_LPS0_DSM_UUID_MICROSOFT, 0,
&lps0_dsm_guid_microsoft);
- if (lps0_dsm_func_mask > 0x3 && (!strcmp(hid, "AMD0004") ||
- !strcmp(hid, "AMD0005") ||
- !strcmp(hid, "AMDI0005"))) {
+ if (lps0_dsm_func_mask > 0x3 && data->check_off_by_one) {
lps0_dsm_func_mask = (lps0_dsm_func_mask << 1) | 0x1;
acpi_handle_debug(adev->handle, "_DSM UUID %s: Adjusted function mask: 0x%x\n",
ACPI_LPS0_DSM_UUID_AMD, lps0_dsm_func_mask);
- } else if (lps0_dsm_func_mask_microsoft > 0 &&
+ } else if (lps0_dsm_func_mask_microsoft > 0 && data->prefer_amd_guid &&
(!strcmp(hid, "AMDI0007") ||
!strcmp(hid, "AMDI0008"))) {
lps0_dsm_func_mask_microsoft = -EINVAL;
--
2.34.1

2022-09-24 17:25:03

by Rafael J. Wysocki

[permalink] [raw]
Subject: Re: [PATCH v4 0/7] Fixups for s2idle on various Rembrandt laptops

On Wed, Sep 21, 2022 at 10:40 PM Mario Limonciello
<[email protected]> wrote:
>
> 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.
>
> This module parameter intentionally applies to both Intel and AMD systems
> as the same problem could potentially exist on Intel systems that support
> both the Intel GUID or the Microsoft GUID.
>
> v3->v4:
> * Absorb tags
> * minor URL correction
> * Rename module parameter per Rafael's request
> v2->v3:
> * Add more systems
> v1->v2:
> * Add two more systems that are reported to be helped by this series.
>
> Mario Limonciello (7):
> acpi/x86: s2idle: Move _HID handling for AMD systems into structures
> acpi/x86: s2idle: If a new AMD _HID is missing assume Rembrandt
> acpi/x86: s2idle: Add module parameter to prefer Microsoft GUID
> acpi/x86: s2idle: Add a quirk for ASUS TUF Gaming A17 FA707RE
> acpi/x86: s2idle: Add a quirk for ASUS ROG Zephyrus G14
> acpi/x86: s2idle: Add a quirk for Lenovo Slim 7 Pro 14ARH7
> acpi/x86: s2idle: Add a quirk for ASUSTeK COMPUTER INC. ROG Flow X13

All applied as 6.1 material, thanks!

> drivers/acpi/x86/s2idle.c | 136 +++++++++++++++++++++++++++++++-------
> 1 file changed, 112 insertions(+), 24 deletions(-)
>
> --

2022-09-27 10:43:41

by Luke D. Jones

[permalink] [raw]
Subject: Re: [PATCH v4 7/7] acpi/x86: s2idle: Add a quirk for ASUSTeK COMPUTER INC. ROG Flow X13

Hello Mario,

I have confirmed that another suspect ASUS laptop requires the quirk,
patch is as follows:


---
drivers/acpi/x86/s2idle.c | 12 ++++++++++++
1 file changed, 12 insertions(+)

diff --git a/drivers/acpi/x86/s2idle.c b/drivers/acpi/x86/s2idle.c
index 2cd381f6c002..c811eeed42cd 100644
--- a/drivers/acpi/x86/s2idle.c
+++ b/drivers/acpi/x86/s2idle.c
@@ -428,6 +428,16 @@ static const struct dmi_system_id
s2idle_dmi_table[] __initconst = {
DMI_MATCH(DMI_PRODUCT_NAME, "ROG Zephyrus G14
GA402"),
},
},
+ {
+ /*
+ * ASUS ROG Flow X16 - GV601
+ */
+ .callback = lps0_prefer_microsoft,
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTeK COMPUTER
INC."),
+ DMI_MATCH(DMI_PRODUCT_NAME, "GV601"),
+ },
+ },
{}
};

--
2.34.1


2022-09-27 16:33:16

by Mario Limonciello

[permalink] [raw]
Subject: Re: [PATCH v4 7/7] acpi/x86: s2idle: Add a quirk for ASUSTeK COMPUTER INC. ROG Flow X13

On 9/27/2022 04:06, Luke Jones wrote:
> Hello Mario,
>
> I have confirmed that another suspect ASUS laptop requires the quirk,
> patch is as follows:
>
>
> ---
> drivers/acpi/x86/s2idle.c | 12 ++++++++++++
> 1 file changed, 12 insertions(+)
>
> diff --git a/drivers/acpi/x86/s2idle.c b/drivers/acpi/x86/s2idle.c
> index 2cd381f6c002..c811eeed42cd 100644
> --- a/drivers/acpi/x86/s2idle.c
> +++ b/drivers/acpi/x86/s2idle.c
> @@ -428,6 +428,16 @@ static const struct dmi_system_id
> s2idle_dmi_table[] __initconst = {
> DMI_MATCH(DMI_PRODUCT_NAME, "ROG Zephyrus G14
> GA402"),
> },
> },
> + {
> + /*
> + * ASUS ROG Flow X16 - GV601
> + */
> + .callback = lps0_prefer_microsoft,
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTeK COMPUTER
> INC."),
> + DMI_MATCH(DMI_PRODUCT_NAME, "GV601"),
> + },
> + },
> {}
> };
>

Hey Luke,

The series that was under development has been merged for 6.1. At this
point, can you just make a proper patch with a S-o-b on top of
linux-pm/bleeding-edge for the new model to add to the list and send it out?

In addition to that, if you can please add a Link: to the acpidump and
dmesg if available?

Thanks

2022-09-27 20:52:30

by Luke D. Jones

[permalink] [raw]
Subject: Re: [PATCH v4 7/7] acpi/x86: s2idle: Add a quirk for ASUSTeK COMPUTER INC. ROG Flow X13

On Tue, 2022-09-27 at 11:07 -0500, Limonciello, Mario wrote:
> On 9/27/2022 04:06, Luke Jones wrote:
> > Hello Mario,
> >
> > I have confirmed that another suspect ASUS laptop requires the
> > quirk,
> > patch is as follows:
> >
> >
> > ---
> >   drivers/acpi/x86/s2idle.c | 12 ++++++++++++
> >   1 file changed, 12 insertions(+)
> >
> > diff --git a/drivers/acpi/x86/s2idle.c b/drivers/acpi/x86/s2idle.c
> > index 2cd381f6c002..c811eeed42cd 100644
> > --- a/drivers/acpi/x86/s2idle.c
> > +++ b/drivers/acpi/x86/s2idle.c
> > @@ -428,6 +428,16 @@ static const struct dmi_system_id
> > s2idle_dmi_table[] __initconst = {
> >                         DMI_MATCH(DMI_PRODUCT_NAME, "ROG Zephyrus
> > G14
> > GA402"),
> >                 },
> >         },
> > +       {
> > +               /*
> > +                * ASUS ROG Flow X16 - GV601
> > +                */
> > +               .callback = lps0_prefer_microsoft,
> > +               .matches = {
> > +                       DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTeK
> > COMPUTER
> > INC."),
> > +                       DMI_MATCH(DMI_PRODUCT_NAME, "GV601"),
> > +               },
> > +       },
> >         {}
> >   };
> >  
>
> Hey Luke,
>
> The series that was under development has been merged for 6.1.  At
> this
> point, can you just make a proper patch with a S-o-b on top of
> linux-pm/bleeding-edge for the new model to add to the list and send
> it out?
>
> In addition to that, if you can please add a Link: to the acpidump
> and
> dmesg if available?
>
> Thanks

Sure no problem at all