Message ID | 20220114171206.682113-1-wse@tuxedocomputers.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | [RESEND] input/i8042: Add quirk table to disable aux port on Clevo NS70MU | expand |
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 > --- > 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
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
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> --- drivers/input/serio/i8042-x86ia64io.h | 42 +++++++++++++++++++++++++++ 1 file changed, 42 insertions(+)