> 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 adds 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. > > This is revision 2 as I got aware that there are yet another 2 dmi string > combinations identifying the same device. Please let me know if a patch like this could be accepted or if the i8042 quirk tables are in a freeze state and issues like this should be fixed another way now? > Signed-off-by: Werner Sembach <wse@xxxxxxxxxxxxxxxxxxx> > Cc: stable@xxxxxxxxxxxxxxx > --- > drivers/input/serio/i8042-x86ia64io.h | 54 +++++++++++++++++++++++++++ > 1 file changed, 54 insertions(+) > > diff --git a/drivers/input/serio/i8042-x86ia64io.h b/drivers/input/serio/i8042-x86ia64io.h > index 148a7c5fd0e2..e39d3d840a31 100644 > --- a/drivers/input/serio/i8042-x86ia64io.h > +++ b/drivers/input/serio/i8042-x86ia64io.h > @@ -1013,6 +1013,57 @@ 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 6 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, "SchenkerTechnologiesGmbH"), > + DMI_MATCH(DMI_BOARD_NAME, "NS50MU"), > + }, > + }, > + { > + .matches = { > + DMI_MATCH(DMI_SYS_VENDOR, "SchenkerTechnologiesGmbH"), > + 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 +1387,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