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

From: Denis Benato

Date: Mon Oct 19 2026 - 18:14:18 EST



On 10/15/26 18:30, Evgeny Volferts wrote:
> 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.

Hi Evgeny,

Thank you for your work!

I am thinking that a quirk with e5 in the name is a bit overly specific...

That code has never been handled and is just the EC repeating some settings.

I am thinking that perhaps the best thing to do is just create a case 0xE5 that
simply does the ignore with no quirks check and a nice comment outlining
why it is done.

I don't see asus repurposing that for something else honestly so it should
be future-proof enough and will potentially avoid this to other models as
well.

On the other end it would be cool to know what that really is telling us...

If you don't come up with an answer I would defer to Ilpo whether preferring
reducing quirks or keeping the symmetry within that key_filter function.

I am fine either way.

Best regards,
Denis Benato

> 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;