Re: [PATCH 2/2] Input: i8042 - add TUXEDO devices to i8042 quirk tables for partial fix
From: Hans de Goede
Date: Mon Jul 11 2022 - 08:56:07 EST
Hi,
On 7/11/22 14:45, Werner Sembach wrote:
> 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.
Hmm, ok. So given that this seems to be the best we can do
the patch looks good to me:
Reviewed-by: Hans de Goede <hdegoede@xxxxxxxxxx>
Regards,
Hans
>>> Signed-off-by: Werner Sembach <wse@xxxxxxxxxxxxxxxxxxx>
>>> Cc: stable@xxxxxxxxxxxxxxx
>>> ---
>>> 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"),
>