summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke D Jones <luke@ljones.dev>2021-04-18 12:12:29 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2021-06-18 11:02:48 +0300
commit96cf492f508e385bf176628b1f94f7de16ff5394 (patch)
tree1021e4113f31e63dc238fb96d099bacc73c371d2
parentcb33cde0dda6dca3ec10b34d5584dc4f25540d70 (diff)
downloadlinux-96cf492f508e385bf176628b1f94f7de16ff5394.tar.xz
HID: asus: filter G713/G733 key event to prevent shutdown
[ Upstream commit c980512b4512adf2c6f9edb948ce19423b23124d ] 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> Signed-off-by: Sasha Levin <sashal@kernel.org>
-rw-r--r--drivers/hid/hid-asus.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/hid/hid-asus.c b/drivers/hid/hid-asus.c
index 1ed1c05c3d54..60606c11bdaf 100644
--- a/drivers/hid/hid-asus.c
+++ b/drivers/hid/hid-asus.c
@@ -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;