lkml.org 
[lkml]   [2023]   [Mar]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: [PATCH 2/2] Input: i8042 - add TUXEDO devices to i8042 quirk tables for partial fix
From
Am 11.07.22 um 14:55 schrieb Hans de Goede:
> 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@redhat.com>
>
> Regards,
>
> Hans

Afaik this patch never got merged. Sadly I still have no better solution, so I
wanted to bring the patch up for discussion again as it still makes the
situation better in my opinion.

Kind Regards,

Werner Sembach

>
>
>>>> 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"),
>

\
 
 \ /
  Last update: 2023-03-27 01:11    [W:0.051 / U:0.580 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site