[d-kernel] [PATCH 1/1] Input: i8042 - enable dumbkbd quirk for HP 15-dy2xxx and 15s-fq2xxx

Egor Ignatov egori на altlinux.org
Чт Авг 4 11:33:26 MSK 2022


These two sets of HP laptops have a long keyboard initialization delay due
to the controller not delivering interrupts correctly as previously
determined by Egor and Vojtech. For the 15-dy2044nr models I have at work
the issue persists even after manually updating the system firmware to the
latest revision from the Microsoft update catalog (15.21.0.0). Egor
submitted a patch for 15s-fq2xxx systems previously but it seems to have
been missed/forgotten, so I've included both here.

Link: https://lore.kernel.org/lkml/2iAJTwqZV6lQs26cTb38RNYqxvsink6SRmrZ5h0cBUSuf9NT0tZTsf9fEAbbto2maavHJEOP8GA1evlKa6xjKOsaskDhtJWxjcnrgPigzVo=@gurevit.ch/
Link: https://lore.kernel.org/lkml/20210528154339.GA9116@suse.com/
Link: https://lore.kernel.org/all/20210609073333.8425-1-egori@altlinux.org/

Signed-off-by: gurevitch <mail at gurevit.ch>
---
 drivers/input/serio/i8042-x86ia64io.h | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/drivers/input/serio/i8042-x86ia64io.h b/drivers/input/serio/i8042-x86ia64io.h
index 148a7c5fd0e22..a2454d277a143 100644
--- a/drivers/input/serio/i8042-x86ia64io.h
+++ b/drivers/input/serio/i8042-x86ia64io.h
@@ -995,6 +995,24 @@ static const struct dmi_system_id __initconst i8042_dmi_kbdreset_table[] = {
 	{ }
 };
 
+static const struct dmi_system_id __initconst i8042_dmi_dumbkbd_table[] = {
+	{
+		/* HP 15-dy2xxx - keyboard */
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "HP"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "HP Laptop 15-dy2xxx"),
+		},
+	},
+	{
+		/* HP 15s-fq2xxx - keyboard */
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "HP"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "HP Laptop 15s-fq2xxx"),
+		},
+	},
+	{ }
+};
+
 static const struct dmi_system_id i8042_dmi_probe_defer_table[] __initconst = {
 	{
 		/* ASUS ZenBook UX425UA */
@@ -1333,6 +1351,9 @@ static int __init i8042_platform_init(void)
 	if (dmi_check_system(i8042_dmi_kbdreset_table))
 		i8042_kbdreset = true;
 
+	if (dmi_check_system(i8042_dmi_dumbkbd_table))
+		i8042_dumbkbd = true;
+
 	if (dmi_check_system(i8042_dmi_probe_defer_table))
 		i8042_probe_defer = true;
 
-- 
2.33.4



Подробная информация о списке рассылки devel-kernel