Re: [PATCH][RESEND] input/i8042: Add quirk table to disable aux port on Clevo NS70MU
flat view
From: Werner Sembach <wse@tuxedocomputers.com>
Date: 2022-01-14 17:16:01
Also in:
lkml
Am 14.01.22 um 18:12 schrieb Werner Sembach:
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>
Sorry for the spam, forgot to add CC stable, so I resend and forget to add CC stable again .. Third time's the charm xD
quoted hunk ↗ jump to hunk
--- 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