Input: i8042 - swap old quirk combination with new quirk for several devices
authorWerner Sembach <wse@tuxedocomputers.com>
Fri, 21 Feb 2025 23:01:24 +0000 (00:01 +0100)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Tue, 25 Feb 2025 21:01:51 +0000 (13:01 -0800)
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.

While the old quirk combination did not show negative effects on these
devices specifically, the new quirk works just as well and seems more
stable in general.

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

index 57a6eec4c2a5d4f77f562d0ed187e23809db2e9d..9df1ef6032dd04d3866fef757b74ea96aa147465 100644 (file)
@@ -1080,16 +1080,14 @@ static const struct dmi_system_id i8042_dmi_quirk_table[] __initconst = {
                        DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
                        DMI_MATCH(DMI_BOARD_NAME, "AURA1501"),
                },
-               .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_VENDOR, "TUXEDO"),
                        DMI_MATCH(DMI_BOARD_NAME, "EDUBOOK1502"),
                },
-               .driver_data = (void *)(SERIO_QUIRK_NOMUX | SERIO_QUIRK_RESET_ALWAYS |
-                                       SERIO_QUIRK_NOLOOP | SERIO_QUIRK_NOPNP)
+               .driver_data = (void *)(SERIO_QUIRK_FORCENORESTORE)
        },
        {
                /* Mivvy M310 */
@@ -1171,8 +1169,7 @@ static const struct dmi_system_id i8042_dmi_quirk_table[] __initconst = {
                .matches = {
                        DMI_MATCH(DMI_BOARD_NAME, "LAPQC71A"),
                },
-               .driver_data = (void *)(SERIO_QUIRK_NOMUX | SERIO_QUIRK_RESET_ALWAYS |
-                                       SERIO_QUIRK_NOLOOP | SERIO_QUIRK_NOPNP)
+               .driver_data = (void *)(SERIO_QUIRK_FORCENORESTORE)
        },
        {
                .matches = {
@@ -1205,8 +1202,7 @@ static const struct dmi_system_id i8042_dmi_quirk_table[] __initconst = {
                .matches = {
                        DMI_MATCH(DMI_BOARD_NAME, "NH5xAx"),
                },
-               .driver_data = (void *)(SERIO_QUIRK_NOMUX | SERIO_QUIRK_RESET_ALWAYS |
-                                       SERIO_QUIRK_NOLOOP | SERIO_QUIRK_NOPNP)
+               .driver_data = (void *)(SERIO_QUIRK_FORCENORESTORE)
        },
        {
                .matches = {
@@ -1218,8 +1214,7 @@ static const struct dmi_system_id i8042_dmi_quirk_table[] __initconst = {
                .matches = {
                        DMI_MATCH(DMI_BOARD_NAME, "NL5xRU"),
                },
-               .driver_data = (void *)(SERIO_QUIRK_NOMUX | SERIO_QUIRK_RESET_ALWAYS |
-                                       SERIO_QUIRK_NOLOOP | SERIO_QUIRK_NOPNP)
+               .driver_data = (void *)(SERIO_QUIRK_FORCENORESTORE)
        },
        /*
         * At least one modern Clevo barebone has the touchpad connected both
@@ -1235,17 +1230,15 @@ static const struct dmi_system_id i8042_dmi_quirk_table[] __initconst = {
                .matches = {
                        DMI_MATCH(DMI_BOARD_NAME, "NS50MU"),
                },
-               .driver_data = (void *)(SERIO_QUIRK_NOAUX | SERIO_QUIRK_NOMUX |
-                                       SERIO_QUIRK_RESET_ALWAYS | SERIO_QUIRK_NOLOOP |
-                                       SERIO_QUIRK_NOPNP)
+               .driver_data = (void *)(SERIO_QUIRK_NOAUX |
+                                       SERIO_QUIRK_FORCENORESTORE)
        },
        {
                .matches = {
                        DMI_MATCH(DMI_BOARD_NAME, "NS50_70MU"),
                },
-               .driver_data = (void *)(SERIO_QUIRK_NOAUX | SERIO_QUIRK_NOMUX |
-                                       SERIO_QUIRK_RESET_ALWAYS | SERIO_QUIRK_NOLOOP |
-                                       SERIO_QUIRK_NOPNP)
+               .driver_data = (void *)(SERIO_QUIRK_NOAUX |
+                                       SERIO_QUIRK_FORCENORESTORE)
        },
        {
                .matches = {
@@ -1319,8 +1312,7 @@ static const struct dmi_system_id i8042_dmi_quirk_table[] __initconst = {
                .matches = {
                        DMI_MATCH(DMI_PRODUCT_NAME, "P65_67RS"),
                },
-               .driver_data = (void *)(SERIO_QUIRK_NOMUX | SERIO_QUIRK_RESET_ALWAYS |
-                                       SERIO_QUIRK_NOLOOP | SERIO_QUIRK_NOPNP)
+               .driver_data = (void *)(SERIO_QUIRK_FORCENORESTORE)
        },
        {
                /*
@@ -1338,8 +1330,7 @@ static const struct dmi_system_id i8042_dmi_quirk_table[] __initconst = {
                .matches = {
                        DMI_MATCH(DMI_BOARD_NAME, "PB50_70DFx,DDx"),
                },
-               .driver_data = (void *)(SERIO_QUIRK_NOMUX | SERIO_QUIRK_RESET_ALWAYS |
-                                       SERIO_QUIRK_NOLOOP | SERIO_QUIRK_NOPNP)
+               .driver_data = (void *)(SERIO_QUIRK_FORCENORESTORE)
        },
        {
                .matches = {
@@ -1363,8 +1354,7 @@ static const struct dmi_system_id i8042_dmi_quirk_table[] __initconst = {
                .matches = {
                        DMI_MATCH(DMI_BOARD_NAME, "PCX0DX"),
                },
-               .driver_data = (void *)(SERIO_QUIRK_NOMUX | SERIO_QUIRK_RESET_ALWAYS |
-                                       SERIO_QUIRK_NOLOOP | SERIO_QUIRK_NOPNP)
+               .driver_data = (void *)(SERIO_QUIRK_FORCENORESTORE)
        },
        {
                .matches = {
@@ -1383,15 +1373,13 @@ static const struct dmi_system_id i8042_dmi_quirk_table[] __initconst = {
                .matches = {
                        DMI_MATCH(DMI_BOARD_NAME, "X170SM"),
                },
-               .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, "X170KM-G"),
                },
-               .driver_data = (void *)(SERIO_QUIRK_NOMUX | SERIO_QUIRK_RESET_ALWAYS |
-                                       SERIO_QUIRK_NOLOOP | SERIO_QUIRK_NOPNP)
+               .driver_data = (void *)(SERIO_QUIRK_FORCENORESTORE)
        },
        {
                /*