]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
HID: asus: Filter spurious HID vendor codes on ROG laptops
authorIonut Nechita <ionut_n2001@yahoo.com>
Wed, 7 Jan 2026 15:42:20 +0000 (17:42 +0200)
committerJiri Kosina <jkosina@suse.com>
Thu, 8 Jan 2026 11:17:16 +0000 (12:17 +0100)
On Asus ROG laptops, several HID vendor usage codes (0xea, 0xec, 0x02,
0x8a, 0x9e) are sent during normal operation without a clear purpose,
generating unwanted "Unmapped Asus vendor usagepage code" warnings in
dmesg.

Add definitions for these codes and filter them out in asus_raw_event()
to prevent kernel log spam.

Tested on Asus ROG series laptops.

Reviewed-by: Denis Benato <benato.denis96@gmail.com>
Reviewed-by: Mario Limonciello (AMD) <superm1@kernel.org>
Signed-off-by: Ionut Nechita <ionut_n2001@yahoo.com>
Signed-off-by: Jiri Kosina <jkosina@suse.com>
drivers/hid/hid-asus.c

index 9a969f5c5c90e91c59b23ad2aeb38c880087933b..49ffed0f6e9eadfde5be2632ef13df41938f962c 100644 (file)
@@ -56,6 +56,13 @@ MODULE_DESCRIPTION("Asus HID Keyboard and TouchPad");
 #define ROG_ALLY_X_MIN_MCU 313
 #define ROG_ALLY_MIN_MCU 319
 
+/* Spurious HID codes sent by QUIRK_ROG_NKEY_KEYBOARD devices */
+#define ASUS_SPURIOUS_CODE_0XEA 0xea
+#define ASUS_SPURIOUS_CODE_0XEC 0xec
+#define ASUS_SPURIOUS_CODE_0X02 0x02
+#define ASUS_SPURIOUS_CODE_0X8A 0x8a
+#define ASUS_SPURIOUS_CODE_0X9E 0x9e
+
 #define SUPPORT_KBD_BACKLIGHT BIT(0)
 
 #define MAX_TOUCH_MAJOR 8
@@ -347,6 +354,21 @@ static int asus_raw_event(struct hid_device *hdev,
        if (report->id == FEATURE_KBD_LED_REPORT_ID1 || report->id == FEATURE_KBD_LED_REPORT_ID2)
                return -1;
        if (drvdata->quirks & QUIRK_ROG_NKEY_KEYBOARD) {
+               /*
+                * ASUS ROG laptops send these codes during normal operation
+                * with no discernable reason. Filter them out to avoid
+                * unmapped warning messages.
+                */
+               if (report->id == FEATURE_KBD_REPORT_ID) {
+                       if (data[1] == ASUS_SPURIOUS_CODE_0XEA ||
+                           data[1] == ASUS_SPURIOUS_CODE_0XEC ||
+                           data[1] == ASUS_SPURIOUS_CODE_0X02 ||
+                           data[1] == ASUS_SPURIOUS_CODE_0X8A ||
+                           data[1] == ASUS_SPURIOUS_CODE_0X9E) {
+                               return -1;
+                       }
+               }
+
                /*
                 * G713 and G733 send these codes on some keypresses, depending on
                 * the key pressed it can trigger a shutdown event if not caught.