Messages in this thread | | | Date | Mon, 11 Jul 2022 14:45:58 +0200 | Subject | Re: [PATCH 2/2] Input: i8042 - add TUXEDO devices to i8042 quirk tables for partial fix | From | Werner Sembach <> |
| |
Hi,
On 7/8/22 21:39, Hans de Goede wrote: > Hi, > > On 7/8/22 18:10, Werner Sembach wrote: >> A lot of modern Clevo barebones have touchpad and/or keyboard issues after >> suspend fixable with nomux + reset + noloop + nopnp. Luckily, none of them >> have an external PS/2 port so this can safely be set for all of them. >> >> I'm not entirely sure if every device listed really needs all four quirks, >> but after testing and production use. No negative effects could be >> observed when setting all four. >> >> Setting SERIO_QUIRK_NOMUX or SERIO_QUIRK_RESET_ALWAYS on the Clevo N150CU >> and the Clevo NHxxRZQ makes the keyboard very laggy for ~5 seconds after >> boot and sometimes also after resume. However both are required for the >> keyboard to not fail completely sometimes after boot or resume. > Hmm, the very laggy bit does not sound good. Have you looked into other > solutions, e.g. what happens if you use just nomux without any of the > other 3 options ?
I tried a lot of combinations, but it was some time ago.
iirc: at least nomux and reset are required and both individually cause the lagging.
So the issue is not fixed by just using a different set of quirks.
Regards,
Werner
> > Regards, > > Hans > > >> Signed-off-by: Werner Sembach <wse@tuxedocomputers.com> >> Cc: stable@vger.kernel.org >> --- >> drivers/input/serio/i8042-x86ia64io.h | 28 +++++++++++++++++++++++++++ >> 1 file changed, 28 insertions(+) >> >> diff --git a/drivers/input/serio/i8042-x86ia64io.h b/drivers/input/serio/i8042-x86ia64io.h >> index 5204a7dd61d4..9dc0266e5168 100644 >> --- a/drivers/input/serio/i8042-x86ia64io.h >> +++ b/drivers/input/serio/i8042-x86ia64io.h >> @@ -1107,6 +1107,20 @@ static const struct dmi_system_id i8042_dmi_quirk_table[] __initconst = { >> .driver_data = (void *)(SERIO_QUIRK_NOMUX | SERIO_QUIRK_RESET_ALWAYS | >> SERIO_QUIRK_NOLOOP | SERIO_QUIRK_NOPNP) >> }, >> + { >> + /* >> + * Setting SERIO_QUIRK_NOMUX or SERIO_QUIRK_RESET_ALWAYS makes >> + * the keyboard very laggy for ~5 seconds after boot and >> + * sometimes also after resume. >> + * However both are required for the keyboard to not fail >> + * completely sometimes after boot or resume. >> + */ >> + .matches = { >> + DMI_MATCH(DMI_BOARD_NAME, "N150CU"), >> + }, >> + .driver_data = (void *)(SERIO_QUIRK_NOMUX | SERIO_QUIRK_RESET_ALWAYS | >> + SERIO_QUIRK_NOLOOP | SERIO_QUIRK_NOPNP) >> + }, >> { >> .matches = { >> DMI_MATCH(DMI_BOARD_NAME, "NH5xAx"), >> @@ -1114,6 +1128,20 @@ static const struct dmi_system_id i8042_dmi_quirk_table[] __initconst = { >> .driver_data = (void *)(SERIO_QUIRK_NOMUX | SERIO_QUIRK_RESET_ALWAYS | >> SERIO_QUIRK_NOLOOP | SERIO_QUIRK_NOPNP) >> }, >> + { >> + /* >> + * Setting SERIO_QUIRK_NOMUX or SERIO_QUIRK_RESET_ALWAYS makes >> + * the keyboard very laggy for ~5 seconds after boot and >> + * sometimes also after resume. >> + * However both are required for the keyboard to not fail >> + * completely sometimes after boot or resume. >> + */ >> + .matches = { >> + DMI_MATCH(DMI_BOARD_NAME, "NHxxRZQ"), >> + }, >> + .driver_data = (void *)(SERIO_QUIRK_NOMUX | SERIO_QUIRK_RESET_ALWAYS | >> + SERIO_QUIRK_NOLOOP | SERIO_QUIRK_NOPNP) >> + }, >> { >> .matches = { >> DMI_MATCH(DMI_BOARD_NAME, "NL5xRU"),
| |