[PATCH] platform/x86: asus-nb-wmi: Ignore spurious 0xe5 events on GU605MY

From: Evgeny Volferts

Date: Thu Oct 15 2026 - 13:06:18 EST


The ASUS ROG Zephyrus G16 GU605MY periodically emits an
unrecognized WMI event (0xe5), approximately every 12 seconds.

The event is reported as KEY_UNKNOWN through the Asus WMI hotkeys
input device. When the session is locked, it causes both the
internal display and an external monitor connected through a
Thunderbolt dock to wake up repeatedly.

Add a DMI-specific quirk to suppress this event on the GU605MY
without affecting other ASUS notebook models.

Ignoring the event was first verified on a 7.2.7-based OGC kernel.
The DMI-specific quirk was subsequently built against 7.2.8-ogc5
and tested on 7.2.9-ogc2 and 7.2.9-ogc4. On both 7.2.9 variants,
the DMI match was confirmed and the unknown 0xe5 event messages
disappeared.

Signed-off-by: Evgeny Volferts <eugene.wolferz@xxxxxxxxx>
---
drivers/platform/x86/asus-nb-wmi.c | 17 +++++++++++++++++
drivers/platform/x86/asus-wmi.h | 1 +
2 files changed, 18 insertions(+)

diff --git a/drivers/platform/x86/asus-nb-wmi.c b/drivers/platform/x86/asus-nb-wmi.c
index aeb461b1644d..8d69231d25a0 100644
--- a/drivers/platform/x86/asus-nb-wmi.c
+++ b/drivers/platform/x86/asus-nb-wmi.c
@@ -150,6 +150,10 @@ static struct quirk_entry quirk_asus_zenbook_duo_kbd = {
.key_wlan_event = ASUS_WMI_KEY_IGNORE,
};

+static struct quirk_entry quirk_asus_gu605my = {
+ .ignore_e5_wmi_event = true,
+};
+
static struct quirk_entry quirk_asus_z13 = {
.key_wlan_event = ASUS_WMI_KEY_ARMOURY,
.tablet_switch_mode = asus_wmi_kbd_dock_devid,
@@ -562,6 +566,15 @@ static const struct dmi_system_id asus_quirks[] = {
},
.driver_data = &quirk_asus_z13,
},
+ {
+ .callback = dmi_matched,
+ .ident = "ASUS ROG Zephyrus G16 GU605MY",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
+ DMI_MATCH(DMI_PRODUCT_NAME, "ROG Zephyrus G16 GU605MY_GU605MY"),
+ },
+ .driver_data = &quirk_asus_gu605my,
+ },
{},
};

@@ -690,6 +703,10 @@ static void asus_nb_wmi_key_filter(struct asus_wmi_driver *asus_wmi, int *code,
if (quirks->key_wlan_event)
*code = quirks->key_wlan_event;
break;
+ case 0xE5:
+ if (quirks->ignore_e5_wmi_event)
+ *code = ASUS_WMI_KEY_IGNORE;
+ break;
}
}

diff --git a/drivers/platform/x86/asus-wmi.h b/drivers/platform/x86/asus-wmi.h
index 5cd4392b964e..e7772397cd10 100644
--- a/drivers/platform/x86/asus-wmi.h
+++ b/drivers/platform/x86/asus-wmi.h
@@ -41,6 +41,7 @@ struct quirk_entry {
bool wmi_force_als_set;
bool wmi_ignore_fan;
bool filter_i8042_e1_extended_codes;
+ bool ignore_e5_wmi_event;
int key_wlan_event;
enum asus_wmi_tablet_switch_mode tablet_switch_mode;
int wapf;
--
2.56.0