diff mbox series

[3/3] Input: atkbd - set skip_commands = ATKBD_SKIP_GETID for HP laptop 15s-fq* laptops

Message ID 20231005201544.26983-4-hdegoede@redhat.com (mailing list archive)
State New
Headers show
Series Input: atkbd - add skip_commands module parameter | expand

Commit Message

Hans de Goede Oct. 5, 2023, 8:15 p.m. UTC
On "HP Laptop 15s-fq2xxx" and "HP laptop 15s-fq4xxx" laptops
the keyboard gets confused by Linux probing it and won't work
for the first 2 - 5 minutes or so (waiting for EC watchdog reset?).

Testing has shown that Linux sending ATKBD_CMD_GETID causes
the keyboard to not work for the first 2 - 5 minutes.

Add a quirk setting skip_commands = ATKBD_SKIP_GETID to fix this.

Closes: https://bugzilla.redhat.com/show_bug.cgi?id=2086156
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
 drivers/input/keyboard/atkbd.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)
diff mbox series

Patch

diff --git a/drivers/input/keyboard/atkbd.c b/drivers/input/keyboard/atkbd.c
index 19a01e763871..7ebd686b61b3 100644
--- a/drivers/input/keyboard/atkbd.c
+++ b/drivers/input/keyboard/atkbd.c
@@ -1937,6 +1937,19 @@  static const struct dmi_system_id atkbd_dmi_quirk_table[] __initconst = {
 		.callback = atkbd_skip_commands_fixup,
 		.driver_data = (void *)ATKBD_SKIP_DEACTIVATE,
 	},
+	{
+		/*
+		 * "HP Laptop 15s-fq2xxx" and "HP laptop 15s-fq4xxx" both get
+		 * confused by ATKBD_CMD_GETID.
+		 */
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "HP"),
+			/* Partial match to match both systems */
+			DMI_MATCH(DMI_PRODUCT_NAME, "HP Laptop 15s-fq"),
+		},
+		.callback = atkbd_skip_commands_fixup,
+		.driver_data = (void *)ATKBD_SKIP_GETID,
+	},
 	{ }
 };