HID: asus: filter G713/G733 key event to prevent shutdown
authorLuke D Jones <luke@ljones.dev>
Sun, 18 Apr 2021 09:12:29 +0000 (21:12 +1200)
committerJiri Kosina <jkosina@suse.cz>
Wed, 5 May 2021 12:40:42 +0000 (14:40 +0200)
The G713 and G733 both emit an unexpected keycode on some key
presses such as Fn+Pause. The device in this case is emitting
two events on key down, and 3 on key up, the third key up event
is report ID 0x02 and is unfiltered, causing incorrect event.

This patch filters out the single problematic event.

Signed-off-by: Luke D Jones <luke@ljones.dev>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
drivers/hid/hid-asus.c

index 1ed1c05..60606c1 100644 (file)
@@ -355,6 +355,16 @@ static int asus_raw_event(struct hid_device *hdev,
                                return -1;
                        }
                }
+               if (drvdata->quirks & QUIRK_ROG_NKEY_KEYBOARD) {
+                       /*
+                        * G713 and G733 send these codes on some keypresses, depending on
+                        * the key pressed it can trigger a shutdown event if not caught.
+                       */
+                       if(data[0] == 0x02 && data[1] == 0x30) {
+                               return -1;
+                       }
+               }
+
        }
 
        return 0;