]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
Input: i8042 - swap old quirk combination with new quirk for more devices
authorWerner Sembach <wse@tuxedocomputers.com>
Fri, 21 Feb 2025 23:01:25 +0000 (00:01 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 22 Mar 2025 19:54:22 +0000 (12:54 -0700)
commit d85862ccca452eeb19329e9f4f9a6ce1d1e53561 upstream.

Some older Clevo barebones have problems like no or laggy keyboard after
resume or boot which can be fixed with the SERIO_QUIRK_FORCENORESTORE
quirk.

We could not activly retest these devices because we no longer have them in
our archive, but based on the other old Clevo barebones we tested where the
new quirk had the same or a better behaviour I think it would be good to
apply it on these too.

Cc: stable@vger.kernel.org
Signed-off-by: Werner Sembach <wse@tuxedocomputers.com>
Link: https://lore.kernel.org/r/20250221230137.70292-4-wse@tuxedocomputers.com
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/input/serio/i8042-acpipnpio.h

index a64e34dec02d3e3d5294f8e7de30a9d3197a6bf5..8813db7eec39783c91c0232dd549ba9401204e18 100644 (file)
@@ -1157,9 +1157,7 @@ static const struct dmi_system_id i8042_dmi_quirk_table[] __initconst = {
        },
        /*
         * 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.
+        * after suspend fixable with the forcenorestore quirk.
         * Clevo barebones come with board_vendor and/or system_vendor set to
         * either the very generic string "Notebook" and/or a different value
         * for each individual reseller. The only somewhat universal way to
@@ -1175,22 +1173,19 @@ static const struct dmi_system_id i8042_dmi_quirk_table[] __initconst = {
                .matches = {
                        DMI_MATCH(DMI_BOARD_NAME, "LAPQC71B"),
                },
-               .driver_data = (void *)(SERIO_QUIRK_NOMUX | SERIO_QUIRK_RESET_ALWAYS |
-                                       SERIO_QUIRK_NOLOOP | SERIO_QUIRK_NOPNP)
+               .driver_data = (void *)(SERIO_QUIRK_FORCENORESTORE)
        },
        {
                .matches = {
                        DMI_MATCH(DMI_BOARD_NAME, "N140CU"),
                },
-               .driver_data = (void *)(SERIO_QUIRK_NOMUX | SERIO_QUIRK_RESET_ALWAYS |
-                                       SERIO_QUIRK_NOLOOP | SERIO_QUIRK_NOPNP)
+               .driver_data = (void *)(SERIO_QUIRK_FORCENORESTORE)
        },
        {
                .matches = {
                        DMI_MATCH(DMI_BOARD_NAME, "N141CU"),
                },
-               .driver_data = (void *)(SERIO_QUIRK_NOMUX | SERIO_QUIRK_RESET_ALWAYS |
-                                       SERIO_QUIRK_NOLOOP | SERIO_QUIRK_NOPNP)
+               .driver_data = (void *)(SERIO_QUIRK_FORCENORESTORE)
        },
        {
                .matches = {
@@ -1250,8 +1245,7 @@ static const struct dmi_system_id i8042_dmi_quirk_table[] __initconst = {
                .matches = {
                        DMI_MATCH(DMI_BOARD_NAME, "NJ50_70CU"),
                },
-               .driver_data = (void *)(SERIO_QUIRK_NOMUX | SERIO_QUIRK_RESET_ALWAYS |
-                                       SERIO_QUIRK_NOLOOP | SERIO_QUIRK_NOPNP)
+               .driver_data = (void *)(SERIO_QUIRK_FORCENORESTORE)
        },
        {
                .matches = {
@@ -1268,16 +1262,14 @@ static const struct dmi_system_id i8042_dmi_quirk_table[] __initconst = {
                .matches = {
                        DMI_MATCH(DMI_PRODUCT_NAME, "P65xH"),
                },
-               .driver_data = (void *)(SERIO_QUIRK_NOMUX | SERIO_QUIRK_RESET_ALWAYS |
-                                       SERIO_QUIRK_NOLOOP | SERIO_QUIRK_NOPNP)
+               .driver_data = (void *)(SERIO_QUIRK_FORCENORESTORE)
        },
        {
                /* Clevo P650RS, 650RP6, Sager NP8152-S, and others */
                .matches = {
                        DMI_MATCH(DMI_PRODUCT_NAME, "P65xRP"),
                },
-               .driver_data = (void *)(SERIO_QUIRK_NOMUX | SERIO_QUIRK_RESET_ALWAYS |
-                                       SERIO_QUIRK_NOLOOP | SERIO_QUIRK_NOPNP)
+               .driver_data = (void *)(SERIO_QUIRK_FORCENORESTORE)
        },
        {
                /*
@@ -1288,8 +1280,7 @@ static const struct dmi_system_id i8042_dmi_quirk_table[] __initconst = {
                .matches = {
                        DMI_MATCH(DMI_PRODUCT_NAME, "P65_P67H"),
                },
-               .driver_data = (void *)(SERIO_QUIRK_NOMUX | SERIO_QUIRK_RESET_ALWAYS |
-                                       SERIO_QUIRK_NOLOOP | SERIO_QUIRK_NOPNP)
+               .driver_data = (void *)(SERIO_QUIRK_FORCENORESTORE)
        },
        {
                /*
@@ -1300,8 +1291,7 @@ static const struct dmi_system_id i8042_dmi_quirk_table[] __initconst = {
                .matches = {
                        DMI_MATCH(DMI_PRODUCT_NAME, "P65_67RP"),
                },
-               .driver_data = (void *)(SERIO_QUIRK_NOMUX | SERIO_QUIRK_RESET_ALWAYS |
-                                       SERIO_QUIRK_NOLOOP | SERIO_QUIRK_NOPNP)
+               .driver_data = (void *)(SERIO_QUIRK_FORCENORESTORE)
        },
        {
                /*
@@ -1323,8 +1313,7 @@ static const struct dmi_system_id i8042_dmi_quirk_table[] __initconst = {
                .matches = {
                        DMI_MATCH(DMI_PRODUCT_NAME, "P67xRP"),
                },
-               .driver_data = (void *)(SERIO_QUIRK_NOMUX | SERIO_QUIRK_RESET_ALWAYS |
-                                       SERIO_QUIRK_NOLOOP | SERIO_QUIRK_NOPNP)
+               .driver_data = (void *)(SERIO_QUIRK_FORCENORESTORE)
        },
        {
                .matches = {