mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH] platform/x86/amd/pmc: Add spurious_8042 to ASUS ROG Flow Z13 GZ302EA
@ 2026-09-29 18:16 Matthew Schwartz
  2026-09-29 18:46 ` Mario Limonciello
  0 siblings, 1 reply; 2+ messages in thread
From: Matthew Schwartz @ 2026-09-29 18:16 UTC (permalink / raw)
  To: Shyam Sundar S K, Hans de Goede, ilpo.jarvinen
  Cc: platform-driver-x86, linux-kernel, Matthew Schwartz

The ASUS ROG Flow Z13 (GZ302EA/GZ302EAC) wakes up from suspend-to-idle
without any user input. With PM debug messages enabled, each unexpected
wakeup shows the EC raising IRQ1 at the same time as the ACPI SCI:

  PM: Triggering wakeup from IRQ 9
  PM: Triggering wakeup from IRQ 1
  ACPI: EC: Query(0xa3) started
  ACPI: PM: Wakeup after ACPI Notify sync

EC query 0xa3 only notifies the battery of a status change, which
happens when it transitions between Charging and Full while on AC.
The ACPI core correctly treats that as a non-wakeup event and cancels
the SCI wakeup, but the IRQ1 wakeup remains pending and resumes the
system. i8042 debugging confirms that the keyboard controller has no
data at that point ("Interrupt 1, without any data").

The detachable keyboard on this device is a USB device, so disabling
the i8042 wakeup source does not result in any functional loss. With
serio0 wakeup disabled, the same battery event is processed during
suspend-to-idle and the system stays asleep.

Add the spurious_8042 quirk for it. The GZ302EAC reports sys_vendor
"ASUS" while the GZ302EA reports "ASUSTeK COMPUTER INC.", so match on
"ASUS" and on the "GZ302EA" board name to cover both models.

Signed-off-by: Matthew Schwartz <matthew.schwartz@linux.dev>
---
 drivers/platform/x86/amd/pmc/pmc-quirks.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/drivers/platform/x86/amd/pmc/pmc-quirks.c b/drivers/platform/x86/amd/pmc/pmc-quirks.c
index 09a30f333759..ff5c90510c0c 100644
--- a/drivers/platform/x86/amd/pmc/pmc-quirks.c
+++ b/drivers/platform/x86/amd/pmc/pmc-quirks.c
@@ -143,6 +143,14 @@ static const struct dmi_system_id fwbug_list[] = {
 			DMI_MATCH(DMI_BOARD_NAME, "RC73YA"),
 		}
 	},
+	{
+		.ident = "ASUS ROG Flow Z13 GZ302EA",
+		.driver_data = &quirk_spurious_8042,
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "ASUS"),
+			DMI_MATCH(DMI_BOARD_NAME, "GZ302EA"),
+		}
+	},
 	/* https://bugzilla.kernel.org/show_bug.cgi?id=218024 */
 	{
 		.ident = "V14 G4 AMN",
-- 
2.55.0


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH] platform/x86/amd/pmc: Add spurious_8042 to ASUS ROG Flow Z13 GZ302EA
  2026-09-29 18:16 [PATCH] platform/x86/amd/pmc: Add spurious_8042 to ASUS ROG Flow Z13 GZ302EA Matthew Schwartz
@ 2026-09-29 18:46 ` Mario Limonciello
  0 siblings, 0 replies; 2+ messages in thread
From: Mario Limonciello @ 2026-09-29 18:46 UTC (permalink / raw)
  To: Matthew Schwartz, Shyam Sundar S K, Hans de Goede, ilpo.jarvinen
  Cc: platform-driver-x86, linux-kernel



On 9/29/26 13:16, Matthew Schwartz wrote:
> The ASUS ROG Flow Z13 (GZ302EA/GZ302EAC) wakes up from suspend-to-idle
> without any user input. With PM debug messages enabled, each unexpected
> wakeup shows the EC raising IRQ1 at the same time as the ACPI SCI:
> 
>    PM: Triggering wakeup from IRQ 9
>    PM: Triggering wakeup from IRQ 1
>    ACPI: EC: Query(0xa3) started
>    ACPI: PM: Wakeup after ACPI Notify sync
> 
> EC query 0xa3 only notifies the battery of a status change, which
> happens when it transitions between Charging and Full while on AC.
> The ACPI core correctly treats that as a non-wakeup event and cancels
> the SCI wakeup, but the IRQ1 wakeup remains pending and resumes the
> system. i8042 debugging confirms that the keyboard controller has no
> data at that point ("Interrupt 1, without any data").
> 
> The detachable keyboard on this device is a USB device, so disabling
> the i8042 wakeup source does not result in any functional loss. With
> serio0 wakeup disabled, the same battery event is processed during
> suspend-to-idle and the system stays asleep.
> 
> Add the spurious_8042 quirk for it. The GZ302EAC reports sys_vendor
> "ASUS" while the GZ302EA reports "ASUSTeK COMPUTER INC.", so match on
> "ASUS" and on the "GZ302EA" board name to cover both models.
> 
> Signed-off-by: Matthew Schwartz <matthew.schwartz@linux.dev>

Good analysis of this issue.  It sounds like the right direction for 
this problem.

Reviewed-by: Mario Limonciello (AMD) <superm1@kernel.org>

> ---
>   drivers/platform/x86/amd/pmc/pmc-quirks.c | 8 ++++++++
>   1 file changed, 8 insertions(+)
> 
> diff --git a/drivers/platform/x86/amd/pmc/pmc-quirks.c b/drivers/platform/x86/amd/pmc/pmc-quirks.c
> index 09a30f333759..ff5c90510c0c 100644
> --- a/drivers/platform/x86/amd/pmc/pmc-quirks.c
> +++ b/drivers/platform/x86/amd/pmc/pmc-quirks.c
> @@ -143,6 +143,14 @@ static const struct dmi_system_id fwbug_list[] = {
>   			DMI_MATCH(DMI_BOARD_NAME, "RC73YA"),
>   		}
>   	},
> +	{
> +		.ident = "ASUS ROG Flow Z13 GZ302EA",
> +		.driver_data = &quirk_spurious_8042,
> +		.matches = {
> +			DMI_MATCH(DMI_SYS_VENDOR, "ASUS"),
> +			DMI_MATCH(DMI_BOARD_NAME, "GZ302EA"),
> +		}
> +	},
>   	/* https://bugzilla.kernel.org/show_bug.cgi?id=218024 */
>   	{
>   		.ident = "V14 G4 AMN",


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2026-09-29 18:46 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-09-29 18:16 [PATCH] platform/x86/amd/pmc: Add spurious_8042 to ASUS ROG Flow Z13 GZ302EA Matthew Schwartz
2026-09-29 18:46 ` Mario Limonciello

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®