[RESEND] input/i8042: Add quirk table to disable aux port on Clevo NS70MU

Started by Werner Sembach on Jan 14, 2022

Subsystems (2)

Maintainers (2)

DORMANTno replies

open the first message on its own page

Message details and related content
At least one modern Clevo barebone has the touchpad connected both via PS/2
and i2c interface. This causes a race condition between the psmouse and
i2c-hid driver. Since the full capability if the touchpad is available via
the i2c interface and the device has no external PS/2 port, it is save to
just ignore all ps2 mouses here to avoid this issue.

The know affected device is the Clevo NS70MU.

This patch add a new i8042_dmi_noaux_table with the dmi strings of the
affected device of different revisions. The table is then evaluated like
the other quirk tables in the i8042 driver.

Signed-off-by: Werner Sembach <wse@tuxedocomputers.com>
Cc: <redacted>
---
 drivers/input/serio/i8042-x86ia64io.h | 42 +++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)
diff --git a/drivers/input/serio/i8042-x86ia64io.h b/drivers/input/serio/i8042-x86ia64io.h
index 148a7c5fd0e2..48ad6247a1a0 100644
--- a/drivers/input/serio/i8042-x86ia64io.h
+++ b/drivers/input/serio/i8042-x86ia64io.h
@@ -1013,6 +1013,45 @@ static const struct dmi_system_id i8042_dmi_probe_defer_table[] __initconst = {
 	{ }
 };
 
+static const struct dmi_system_id i8042_dmi_noaux_table[] __initconst = {
+	/*
+	 * At least one modern Clevo barebone has the touchpad connected
+	 * both via PS/2 and i2c interface. This causes a race condition
+	 * between the psmouse and i2c-hid driver. Since the full
+	 * capability if the touchpad is available via the i2c interface
+	 * and the device has no external PS/2 port, it is save to just
+	 * ignore all ps2 mouses here to avoid this issue.
+	 * The know affected device is the
+	 * TUXEDO InfinityBook S17 Gen6 / Clevo NS70MU which comes with
+	 * one of the 4 different dmi string combinations below.
+	 */
+	{
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+			DMI_MATCH(DMI_BOARD_NAME, "NS50MU"),
+		},
+	},
+	{
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+			DMI_MATCH(DMI_BOARD_NAME, "NS50_70MU"),
+		},
+	},
+	{
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
+			DMI_MATCH(DMI_BOARD_NAME, "NS50MU"),
+		},
+	},
+	{
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
+			DMI_MATCH(DMI_BOARD_NAME, "NS50_70MU"),
+		},
+	},
+	{ }
+};
+
 #endif /* CONFIG_X86 */
 
 #ifdef CONFIG_PNP
@@ -1336,6 +1375,9 @@ static int __init i8042_platform_init(void)
 	if (dmi_check_system(i8042_dmi_probe_defer_table))
 		i8042_probe_defer = true;
 
+	if (dmi_check_system(i8042_dmi_noaux_table))
+		i8042_noaux = true;
+
 	/*
 	 * A20 was already enabled during early kernel init. But some buggy
 	 * BIOSes (in MSI Laptops) require A20 to be enabled using 8042 to
-- 
2.25.1
Keyboard shortcuts
hback out one level
jnext message in thread / next series-diff position
kprevious message in thread / previous series-diff position
ldrill in
Escclose help / fold thread tree
?toggle this help