Skip to content

Commit 7fe565f

Browse files
ionutnechitaJiri Kosina
authored andcommitted
HID: asus: Filter spurious HID vendor codes on ROG laptops
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>
1 parent 06501b5 commit 7fe565f

1 file changed

Lines changed: 22 additions & 0 deletions

File tree

drivers/hid/hid-asus.c

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,13 @@ MODULE_DESCRIPTION("Asus HID Keyboard and TouchPad");
5656
#define ROG_ALLY_X_MIN_MCU 313
5757
#define ROG_ALLY_MIN_MCU 319
5858

59+
/* Spurious HID codes sent by QUIRK_ROG_NKEY_KEYBOARD devices */
60+
#define ASUS_SPURIOUS_CODE_0XEA 0xea
61+
#define ASUS_SPURIOUS_CODE_0XEC 0xec
62+
#define ASUS_SPURIOUS_CODE_0X02 0x02
63+
#define ASUS_SPURIOUS_CODE_0X8A 0x8a
64+
#define ASUS_SPURIOUS_CODE_0X9E 0x9e
65+
5966
#define SUPPORT_KBD_BACKLIGHT BIT(0)
6067

6168
#define MAX_TOUCH_MAJOR 8
@@ -347,6 +354,21 @@ static int asus_raw_event(struct hid_device *hdev,
347354
if (report->id == FEATURE_KBD_LED_REPORT_ID1 || report->id == FEATURE_KBD_LED_REPORT_ID2)
348355
return -1;
349356
if (drvdata->quirks & QUIRK_ROG_NKEY_KEYBOARD) {
357+
/*
358+
* ASUS ROG laptops send these codes during normal operation
359+
* with no discernable reason. Filter them out to avoid
360+
* unmapped warning messages.
361+
*/
362+
if (report->id == FEATURE_KBD_REPORT_ID) {
363+
if (data[1] == ASUS_SPURIOUS_CODE_0XEA ||
364+
data[1] == ASUS_SPURIOUS_CODE_0XEC ||
365+
data[1] == ASUS_SPURIOUS_CODE_0X02 ||
366+
data[1] == ASUS_SPURIOUS_CODE_0X8A ||
367+
data[1] == ASUS_SPURIOUS_CODE_0X9E) {
368+
return -1;
369+
}
370+
}
371+
350372
/*
351373
* G713 and G733 send these codes on some keypresses, depending on
352374
* the key pressed it can trigger a shutdown event if not caught.

0 commit comments

Comments
 (0)