drivers/platform/x86/amd/pmc/pmc-quirks.c | 7 +++++++ 1 file changed, 7 insertions(+)
MECHREVO Wujie 14XA (GX4HRXL) wakes up immediately after s2idle entry.
This happens regardless of whether the laptop is plugged into AC power,
or whether any peripheral is plugged into the laptop.
Similar to commit a55bdad5dfd1 ("platform/x86/amd/pmc: Disable keyboard
wakeup on AMD Framework 13"), the MECHREVO Wujie 14XA wakes up almost
instantly after s2idle suspend entry (IRQ1 is the keyboard):
2025-04-18 17:23:57,588 DEBUG: PM: Triggering wakeup from IRQ 9
2025-04-18 17:23:57,588 DEBUG: PM: Triggering wakeup from IRQ 1
Add this model to the spurious_8042 quirk to workaround this.
This patch does not affect the wake-up function of the built-in keyboard.
Because the firmware of this machine adds an insurance for keyboard
wake-up events, as it always triggers an additional IRQ 9 to wake up the
system.
I have only matched the motherboard model, as the same chassis and
motherboard (GX4HRXL) combination may be used under different product
names.
Suggested-by: Mingcong Bai <jeffbai@aosc.io>
Suggested-by: Xinhui Yang <cyan@cyano.uk>
Suggested-by: Rong Zhang <i@rong.moe>
Fixes: a55bdad5dfd1 ("platform/x86/amd/pmc: Disable keyboard wakeup on AMD Framework 13")
Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/4166
Cc: Mario Limonciello <mario.limonciello@amd.com>
Link: https://zhuanldan.zhihu.com/p/730538041
Tested-by: Yemu Lu <prcups@krgm.moe>
Signed-off-by: Runhua He <hua@aosc.io>
---
drivers/platform/x86/amd/pmc/pmc-quirks.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/drivers/platform/x86/amd/pmc/pmc-quirks.c b/drivers/platform/x86/amd/pmc/pmc-quirks.c
index b4f49720c87f..e01012d5ecd0 100644
--- a/drivers/platform/x86/amd/pmc/pmc-quirks.c
+++ b/drivers/platform/x86/amd/pmc/pmc-quirks.c
@@ -217,6 +217,13 @@ static const struct dmi_system_id fwbug_list[] = {
DMI_MATCH(DMI_BIOS_VERSION, "03.05"),
}
},
+ {
+ .ident = "MECHREVO Wujie 14 Series (GX4HRXL)",
+ .driver_data = &quirk_spurious_8042,
+ .matches = {
+ DMI_MATCH(DMI_BOARD_NAME, "GX4HRXL"),
+ }
+ },
{}
};
--
2.49.0
On 5/6/2025 6:25 AM, Runhua He wrote:
> MECHREVO Wujie 14XA (GX4HRXL) wakes up immediately after s2idle entry.
> This happens regardless of whether the laptop is plugged into AC power,
> or whether any peripheral is plugged into the laptop.
>
> Similar to commit a55bdad5dfd1 ("platform/x86/amd/pmc: Disable keyboard
> wakeup on AMD Framework 13"), the MECHREVO Wujie 14XA wakes up almost
> instantly after s2idle suspend entry (IRQ1 is the keyboard):
>
> 2025-04-18 17:23:57,588 DEBUG: PM: Triggering wakeup from IRQ 9
> 2025-04-18 17:23:57,588 DEBUG: PM: Triggering wakeup from IRQ 1
>
> Add this model to the spurious_8042 quirk to workaround this.
>
> This patch does not affect the wake-up function of the built-in keyboard.
> Because the firmware of this machine adds an insurance for keyboard
> wake-up events, as it always triggers an additional IRQ 9 to wake up the
> system.
>
> I have only matched the motherboard model, as the same chassis and
> motherboard (GX4HRXL) combination may be used under different product
> names.
>
> Suggested-by: Mingcong Bai <jeffbai@aosc.io>
> Suggested-by: Xinhui Yang <cyan@cyano.uk>
> Suggested-by: Rong Zhang <i@rong.moe>
> Fixes: a55bdad5dfd1 ("platform/x86/amd/pmc: Disable keyboard wakeup on AMD Framework 13")
> Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/4166
> Cc: Mario Limonciello <mario.limonciello@amd.com>
> Link: https://zhuanldan.zhihu.com/p/730538041
> Tested-by: Yemu Lu <prcups@krgm.moe>
> Signed-off-by: Runhua He <hua@aosc.io>
> ---
> drivers/platform/x86/amd/pmc/pmc-quirks.c | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/drivers/platform/x86/amd/pmc/pmc-quirks.c b/drivers/platform/x86/amd/pmc/pmc-quirks.c
> index b4f49720c87f..e01012d5ecd0 100644
> --- a/drivers/platform/x86/amd/pmc/pmc-quirks.c
> +++ b/drivers/platform/x86/amd/pmc/pmc-quirks.c
> @@ -217,6 +217,13 @@ static const struct dmi_system_id fwbug_list[] = {
> DMI_MATCH(DMI_BIOS_VERSION, "03.05"),
> }
> },
> + {
> + .ident = "MECHREVO Wujie 14 Series (GX4HRXL)",
> + .driver_data = &quirk_spurious_8042,
> + .matches = {
> + DMI_MATCH(DMI_BOARD_NAME, "GX4HRXL"),
This feels like it might be too wide. Could we match a system vendor as
well?
Hi Mario,
在 2025/5/6 21:29, Mario Limonciello 写道:
> On 5/6/2025 6:25 AM, Runhua He wrote:
>> MECHREVO Wujie 14XA (GX4HRXL) wakes up immediately after s2idle entry.
>> This happens regardless of whether the laptop is plugged into AC power,
>> or whether any peripheral is plugged into the laptop.
>>
>> Similar to commit a55bdad5dfd1 ("platform/x86/amd/pmc: Disable keyboard
>> wakeup on AMD Framework 13"), the MECHREVO Wujie 14XA wakes up almost
>> instantly after s2idle suspend entry (IRQ1 is the keyboard):
>>
>> 2025-04-18 17:23:57,588 DEBUG: PM: Triggering wakeup from IRQ 9
>> 2025-04-18 17:23:57,588 DEBUG: PM: Triggering wakeup from IRQ 1
>>
>> Add this model to the spurious_8042 quirk to workaround this.
>>
>> This patch does not affect the wake-up function of the built-in keyboard.
>> Because the firmware of this machine adds an insurance for keyboard
>> wake-up events, as it always triggers an additional IRQ 9 to wake up the
>> system.
>>
>> I have only matched the motherboard model, as the same chassis and
>> motherboard (GX4HRXL) combination may be used under different product
>> names.
>>
>> Suggested-by: Mingcong Bai <jeffbai@aosc.io>
>> Suggested-by: Xinhui Yang <cyan@cyano.uk>
>> Suggested-by: Rong Zhang <i@rong.moe>
>> Fixes: a55bdad5dfd1 ("platform/x86/amd/pmc: Disable keyboard wakeup on
>> AMD Framework 13")
>> Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/4166
>> Cc: Mario Limonciello <mario.limonciello@amd.com>
>> Link: https://zhuanldan.zhihu.com/p/730538041
>> Tested-by: Yemu Lu <prcups@krgm.moe>
>> Signed-off-by: Runhua He <hua@aosc.io>
>> ---
>> drivers/platform/x86/amd/pmc/pmc-quirks.c | 7 +++++++
>> 1 file changed, 7 insertions(+)
>>
>> diff --git a/drivers/platform/x86/amd/pmc/pmc-quirks.c b/drivers/
>> platform/x86/amd/pmc/pmc-quirks.c
>> index b4f49720c87f..e01012d5ecd0 100644
>> --- a/drivers/platform/x86/amd/pmc/pmc-quirks.c
>> +++ b/drivers/platform/x86/amd/pmc/pmc-quirks.c
>> @@ -217,6 +217,13 @@ static const struct dmi_system_id fwbug_list[] = {
>> DMI_MATCH(DMI_BIOS_VERSION, "03.05"),
>> }
>> },
>> + {
>> + .ident = "MECHREVO Wujie 14 Series (GX4HRXL)",
>> + .driver_data = &quirk_spurious_8042,
>> + .matches = {
>> + DMI_MATCH(DMI_BOARD_NAME, "GX4HRXL"),
>
> This feels like it might be too wide. Could we match a system vendor as
> well?
Possibly. There are two known system vendors using this motherboard -
TongFang and MECHREVO (MECHREVO is a marque owned by TongFang).
See: https://linux-hardware.org/?probe=6783d8fc06
Runhua, maybe we could make two entries here?
Best Regards,
Mingcong Bai
Hi all,
On Tue, 2025-05-06 at 22:02 +0800, Mingcong Bai wrote:
> Hi Mario,
>
> 在 2025/5/6 21:29, Mario Limonciello 写道:
> > On 5/6/2025 6:25 AM, Runhua He wrote:
[...]
> > > I have only matched the motherboard model, as the same chassis and
> > > motherboard (GX4HRXL) combination may be used under different product
> > > names.
Runhua's statement is *only* correct to a certain extent. (see below)
> > > Suggested-by: Mingcong Bai <jeffbai@aosc.io>
> > > Suggested-by: Xinhui Yang <cyan@cyano.uk>
> > > Suggested-by: Rong Zhang <i@rong.moe>
> > > Fixes: a55bdad5dfd1 ("platform/x86/amd/pmc: Disable keyboard wakeup on
> > > AMD Framework 13")
> > > Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/4166
> > > Cc: Mario Limonciello <mario.limonciello@amd.com>
> > > Link: https://zhuanldan.zhihu.com/p/730538041
> > > Tested-by: Yemu Lu <prcups@krgm.moe>
> > > Signed-off-by: Runhua He <hua@aosc.io>
> > > ---
> > > drivers/platform/x86/amd/pmc/pmc-quirks.c | 7 +++++++
> > > 1 file changed, 7 insertions(+)
> > >
> > > diff --git a/drivers/platform/x86/amd/pmc/pmc-quirks.c b/drivers/
> > > platform/x86/amd/pmc/pmc-quirks.c
> > > index b4f49720c87f..e01012d5ecd0 100644
> > > --- a/drivers/platform/x86/amd/pmc/pmc-quirks.c
> > > +++ b/drivers/platform/x86/amd/pmc/pmc-quirks.c
> > > @@ -217,6 +217,13 @@ static const struct dmi_system_id fwbug_list[] = {
> > > DMI_MATCH(DMI_BIOS_VERSION, "03.05"),
> > > }
> > > },
> > > + {
> > > + .ident = "MECHREVO Wujie 14 Series (GX4HRXL)",
> > > + .driver_data = &quirk_spurious_8042,
> > > + .matches = {
> > > + DMI_MATCH(DMI_BOARD_NAME, "GX4HRXL"),
> >
> > This feels like it might be too wide. Could we match a system vendor as
> > well?
>
> Possibly. There are two known system vendors using this motherboard -
> TongFang and MECHREVO (MECHREVO is a marque owned by TongFang).
There are plain "GX4HRXL" and "WUJIE14-GX4HRXL". Their BIOS/firmware
are different - this difference is not just about marketing.
Runhua's statement only applies to plain "GX4HRXL", which is not his
model. All seen editions are:
- Juno GX4HRXL [1]
- TongFang GX4HRXL [2]
Comparing [1] and [2]:
diff --git a/juno b/tongfang
index 88a71da..c6846eb 100644
--- a/juno
+++ b/tongfang
@@ -1,4 +1,4 @@
-# dmidecode 3.6
+# dmidecode 3.5
Getting SMBIOS data from sysfs.
SMBIOS 3.5.0 present.
Table at 0x9A92D000.
@@ -28,7 +28,7 @@ BIOS Information
Handle 0x0001, DMI type 1, 27 bytes
System Information
- Manufacturer: Juno
+ Manufacturer: TongFang
Product Name: GX4HRXL
Version: Standard
Serial Number: --
[... SO-DIMM and PCIe ...]
As for "WUJIE14-GX4HRXL", the only model I've seen is:
- MECHREVO WUJIE14XA [3]
Comparing [2] and [3]:
diff --git a/tongfang b/mechrevo
index c6846eb..0f132a2 100644
--- a/tongfang
+++ b/mechrevo
@@ -1,13 +1,13 @@
-# dmidecode 3.5
+# dmidecode 3.6
Getting SMBIOS data from sysfs.
SMBIOS 3.5.0 present.
-Table at 0x9A92D000.
+Table at 0x9A92C000.
Handle 0x0000, DMI type 0, 26 bytes
BIOS Information
Vendor: American Megatrends International, LLC.
- Version: N.1.14PCS05
- Release Date: 10/24/2024
+ Version: N.1.14MRO19
+ Release Date: 01/17/2025
Address: 0xF0000
Runtime Size: 64 kB
ROM Size: 32 MB
@@ -23,24 +23,24 @@ BIOS Information
BIOS boot specification is supported
Targeted content distribution is supported
UEFI is supported
- BIOS Revision: 1.5
- Firmware Revision: 1.39
+ BIOS Revision: 1.19
+ Firmware Revision: 2.8
Handle 0x0001, DMI type 1, 27 bytes
System Information
- Manufacturer: TongFang
- Product Name: GX4HRXL
+ Manufacturer: MECHREVO
+ Product Name: WUJIE14XA
Version: Standard
Serial Number: --
UUID: --
Wake-up Type: Power Switch
- SKU Number: 0001
- Family: HPT
+ SKU Number: WUJIE14
+ Family: Mechrevo WUJIE Series
Handle 0x0002, DMI type 2, 15 bytes
Base Board Information
- Manufacturer: TongFang
- Product Name: GX4HRXL
+ Manufacturer: MECHREVO
+ Product Name: WUJIE14-GX4HRXL
Version: Standard
Serial Number: --
Asset Tag: --
@@ -54,7 +54,7 @@ Base Board Information
Handle 0x0003, DMI type 3, 22 bytes
Chassis Information
- Manufacturer: Standard
+ Manufacturer: MECHREVO
Type: Notebook
Lock: Not Present
Version: Standard
@@ -88,7 +88,7 @@ OEM Strings
String 8: Standard
String 9: Standard
String 10: Standard
- String 11: FBM-GX4HRXL0177PCS
+ String 11: FGM-GX4HRXL0202101
String 12: GX4HRXL
String 13: Standard
String 14: Standard
@@ -122,11 +122,11 @@ Unknown Type
Handle 0x000A, DMI type 45, 26 bytes
Firmware Inventory Information
Firmware Component Name: BIOS Firmware
- Firmware Version: N.1.14PCS05
- Firmware ID: D968671D-72E2-5CA3-9E09-0E48EA102BDC
- Release Date: 10/24/2024
+ Firmware Version: N.1.14MRO19
+ Firmware ID: 0145F8DC-000F-5BDE-8ACB-8AD00CAE8FFE
+ Release Date: 01/17/2025
Manufacturer: Standard
- Lowest Supported Firmware Version: N.1.14PCS05
+ Lowest Supported Firmware Version: N.1.14MRO19
Image Size: 32 MB
Characteristics:
Updatable: Yes
[... PCIe ...]
Look for BIOS versions whose release dates are the closest between the
two [4] [5]:
diff --git a/tongfang-1.13 b/mechrevo-1.13
index 3970b9a..a617bbc 100644
--- a/tongfang-1.13
+++ b/mechrevo-1.13
@@ -1,13 +1,13 @@
# dmidecode 3.6
Getting SMBIOS data from sysfs.
SMBIOS 3.5.0 present.
-Table at 0x9A92D000.
+Table at 0x9A92C000.
Handle 0x0000, DMI type 0, 26 bytes
BIOS Information
Vendor: American Megatrends International, LLC.
- Version: N.1.13PCS03
- Release Date: 09/06/2024
+ Version: N.1.13MRO14
+ Release Date: 08/19/2024
Address: 0xF0000
Runtime Size: 64 kB
ROM Size: 32 MB
@@ -23,24 +23,24 @@ BIOS Information
BIOS boot specification is supported
Targeted content distribution is supported
UEFI is supported
- BIOS Revision: 1.3
- Firmware Revision: 1.33
+ BIOS Revision: 1.14
+ Firmware Revision: 1.32
[...]
@@ -88,7 +88,7 @@ OEM Strings
String 8: Standard
String 9: Standard
String 10: Standard
- String 11: FBM-GX4HRXL0177PCS
+ String 11: FGM-GX4HRXL0167102
String 12: GX4HRXL
String 13: Standard
String 14: Standard
@@ -122,11 +122,11 @@ Unknown Type
Handle 0x000A, DMI type 45, 26 bytes
Firmware Inventory Information
Firmware Component Name: BIOS Firmware
- Firmware Version: N.1.13PCS03
- Firmware ID: D968671D-72E2-5CA3-9E09-0E48EA102BDC
- Release Date: 09/06/2024
+ Firmware Version: N.1.13MRO14
+ Firmware ID: 0145F8DC-000F-5BDE-8ACB-8AD00CAE8FFE
+ Release Date: 08/19/2024
Manufacturer: Standard
- Lowest Supported Firmware Version: N.1.13PCS03
+ Lowest Supported Firmware Version: N.1.13MRO14
Image Size: 32 MB
Characteristics:
Updatable: Yes
[...]
Three bits here hint that these two variants are not completely
identical:
- BIOS/firmware updates are not synced.
- Different characters in their BIOS version strings, i.e., PCS vs MRO.
- FBM-GX4HRXL0177PCS vs FGM-GX4HRXL0202101 vs FGM-GX4HRXL0167102.
I guess these two variants were developed by two different teams
(global/China) that shared some common codebase. The difference is
probably because of the divergence of pre-installed software to
manipulate BIOS options in Windows. I highly suspect the broken EC
state machine is related to such software.
[1]: https://linux-hardware.org/?probe=22e1f510a2&log=dmidecode
[2]: https://linux-hardware.org/?probe=0475501c8c&log=dmidecode
[3]: https://linux-hardware.org/?probe=d9af608109&log=dmidecode
[4]: https://linux-hardware.org/?probe=599c1edc57&log=dmidecode
[5]: https://linux-hardware.org/?probe=7c2e3b925b&log=dmidecode
> See: https://linux-hardware.org/?probe=6783d8fc06
This is TongFang GX4HRXL and uses a different BIOS then Runhua's as
mentioned above.
> Runhua, maybe we could make two entries here?
Since this is a platform firmware bug, and given the information we
have, is it too soon to say plain "GX4HRXL" suffers from the same bug?
I agree with Mario here, but in a slightly different manner, i.e.,
narrowing the DMI_BOARD_NAME match down to "WUJIE14-GX4HRXL".
diff --git a/drivers/platform/x86/amd/pmc/pmc-quirks.c
b/drivers/platform/x86/amd/pmc/pmc-quirks.c
index b4f49720c87f..2e3f6fc67c56 100644
--- a/drivers/platform/x86/amd/pmc/pmc-quirks.c
+++ b/drivers/platform/x86/amd/pmc/pmc-quirks.c
@@ -217,6 +217,13 @@ static const struct dmi_system_id fwbug_list[] = {
DMI_MATCH(DMI_BIOS_VERSION, "03.05"),
}
},
+ {
+ .ident = "MECHREVO Wujie 14X (GX4HRXL)",
+ .driver_data = &quirk_spurious_8042,
+ .matches = {
+ DMI_MATCH(DMI_BOARD_NAME, "WUJIE14-GX4HRXL"),
+ }
+ },
{}
};
Note on `s/14 Series/14X/': while glancing linux-hardware.org, I found
Wujie 14 Series includes 14, 14S, 14 Pro, 14XA. They are all disparate
from each other. 14X is 14XA's marketing name.
> Best Regards,
> Mingcong Bai
Regards,
Rong
© 2016 - 2025 Red Hat, Inc.