2021-11-15 12:09:07

by Werner Sembach

[permalink] [raw]
Subject: [PATCH] input/i8042: Add TUXEDO devices to i8042 quirk tables

A lot of modern Clevo barebones have touchpad and/or keyboard issues after
suspend fixable with reset + nomux + nopnp + noloop. 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.

The list is quite massive as neither the TUXEDO nor the Clevo dmi strings
have been very consistent historically. I tried to keep the list as short
as possible without risking on missing an affected device.

Signed-off-by: Werner Sembach <[email protected]>
Cc: <[email protected]>
---
drivers/input/serio/i8042-x86ia64io.h | 1406 ++++++++++++++++++++++++-
1 file changed, 1387 insertions(+), 19 deletions(-)

diff --git a/drivers/input/serio/i8042-x86ia64io.h b/drivers/input/serio/i8042-x86ia64io.h
index a5a003553646..e42f8b64260c 100644
--- a/drivers/input/serio/i8042-x86ia64io.h
+++ b/drivers/input/serio/i8042-x86ia64io.h
@@ -226,6 +226,348 @@ static const struct dmi_system_id __initconst i8042_dmi_noloop_table[] = {
DMI_MATCH(DMI_PRODUCT_NAME, "ByteSpeed Laptop C15B"),
},
},
+ /*
+ * A lot of modern Clevo barebones have touchpad and/or keyboard issues
+ * after suspend fixable with reset + nomux + nopnp + noloop. Luckily,
+ * none of them have an external PS/2 port so this can savely be set for
+ * all of them.
+ */
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "LAPQC71A"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "LAPQC71A"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "LAPQC71A"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "LAPQC71A"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "LAPQC71B"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "LAPQC71B"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "LAPQC71B"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "LAPQC71B"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "N140CU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "N140CU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "N140CU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "N140CU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "N141CU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "N141CU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "N141CU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "N141CU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "N150CU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "N150CU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "N150CU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "N150CU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "NH5xAx"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "NH5xAx"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "NH5xAx"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "NH5xAx"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "NL5xRU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "NL5xRU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "AURA1501"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "EDUBOOK1502"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "NL5xRU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "NL5xRU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "AURA1501"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "EDUBOOK1502"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "NS50MU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "NS50MU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "NS50MU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "NS50MU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "NS50_70MU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "NS50_70MU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "NS50_70MU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "NS50_70MU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "NJ50_70CU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "NJ50_70CU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "NJ50_70CU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "NJ50_70CU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "PB50_70DFx,DDx"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "PB50_70DFx,DDx"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "PB50_70DFx,DDx"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "PB50_70DFx,DDx"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "X170SM"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "X170SM"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "X170SM"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "X170SM"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "X170KM-G"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "X170KM-G"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "X170KM-G"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "X170KM-G"),
+ },
+ },
{ }
};

@@ -562,25 +904,367 @@ static const struct dmi_system_id __initconst i8042_dmi_nomux_table[] = {
DMI_MATCH(DMI_PRODUCT_VERSION, "EL07R4"),
},
},
- { }
-};
-
-static const struct dmi_system_id i8042_dmi_forcemux_table[] __initconst = {
+ /*
+ * A lot of modern Clevo barebones have touchpad and/or keyboard issues
+ * after suspend fixable with reset + nomux + nopnp + noloop. Luckily,
+ * none of them have an external PS/2 port so this can savely be set for
+ * all of them.
+ */
{
- /*
- * Sony Vaio VGN-CS series require MUX or the touch sensor
- * buttons will disturb touchpad operation
- */
.matches = {
- DMI_MATCH(DMI_SYS_VENDOR, "Sony Corporation"),
- DMI_MATCH(DMI_PRODUCT_NAME, "VGN-CS"),
+ DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "LAPQC71A"),
},
},
- { }
-};
-
-/*
- * On some Asus laptops, just running self tests cause problems.
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "LAPQC71A"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "LAPQC71A"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "LAPQC71A"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "LAPQC71B"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "LAPQC71B"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "LAPQC71B"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "LAPQC71B"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "N140CU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "N140CU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "N140CU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "N140CU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "N141CU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "N141CU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "N141CU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "N141CU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "N150CU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "N150CU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "N150CU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "N150CU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "NH5xAx"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "NH5xAx"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "NH5xAx"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "NH5xAx"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "NL5xRU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "NL5xRU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "AURA1501"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "EDUBOOK1502"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "NL5xRU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "NL5xRU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "AURA1501"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "EDUBOOK1502"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "NS50MU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "NS50MU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "NS50MU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "NS50MU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "NS50_70MU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "NS50_70MU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "NS50_70MU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "NS50_70MU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "NJ50_70CU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "NJ50_70CU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "NJ50_70CU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "NJ50_70CU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "PB50_70DFx,DDx"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "PB50_70DFx,DDx"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "PB50_70DFx,DDx"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "PB50_70DFx,DDx"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "X170SM"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "X170SM"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "X170SM"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "X170SM"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "X170KM-G"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "X170KM-G"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "X170KM-G"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "X170KM-G"),
+ },
+ },
+ { }
+};
+
+static const struct dmi_system_id i8042_dmi_forcemux_table[] __initconst = {
+ {
+ /*
+ * Sony Vaio VGN-CS series require MUX or the touch sensor
+ * buttons will disturb touchpad operation
+ */
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Sony Corporation"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "VGN-CS"),
+ },
+ },
+ { }
+};
+
+/*
+ * On some Asus laptops, just running self tests cause problems.
*/
static const struct dmi_system_id i8042_dmi_noselftest_table[] = {
{
@@ -745,10 +1429,352 @@ static const struct dmi_system_id __initconst i8042_dmi_reset_table[] = {
DMI_MATCH(DMI_PRODUCT_VERSION, "EL07R4"),
},
},
- { }
-};
-
-#ifdef CONFIG_PNP
+ /*
+ * A lot of modern Clevo barebones have touchpad and/or keyboard issues
+ * after suspend fixable with reset + nomux + nopnp + noloop. Luckily,
+ * none of them have an external PS/2 port so this can savely be set for
+ * all of them.
+ */
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "LAPQC71A"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "LAPQC71A"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "LAPQC71A"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "LAPQC71A"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "LAPQC71B"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "LAPQC71B"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "LAPQC71B"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "LAPQC71B"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "N140CU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "N140CU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "N140CU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "N140CU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "N141CU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "N141CU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "N141CU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "N141CU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "N150CU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "N150CU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "N150CU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "N150CU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "NH5xAx"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "NH5xAx"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "NH5xAx"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "NH5xAx"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "NL5xRU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "NL5xRU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "AURA1501"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "EDUBOOK1502"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "NL5xRU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "NL5xRU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "AURA1501"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "EDUBOOK1502"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "NS50MU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "NS50MU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "NS50MU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "NS50MU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "NS50_70MU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "NS50_70MU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "NS50_70MU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "NS50_70MU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "NJ50_70CU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "NJ50_70CU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "NJ50_70CU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "NJ50_70CU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "PB50_70DFx,DDx"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "PB50_70DFx,DDx"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "PB50_70DFx,DDx"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "PB50_70DFx,DDx"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "X170SM"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "X170SM"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "X170SM"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "X170SM"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "X170KM-G"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "X170KM-G"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "X170KM-G"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "X170KM-G"),
+ },
+ },
+ { }
+};
+
+#ifdef CONFIG_PNP
static const struct dmi_system_id __initconst i8042_dmi_nopnp_table[] = {
{
/* Intel MBO Desktop D845PESV */
@@ -781,6 +1807,348 @@ static const struct dmi_system_id __initconst i8042_dmi_nopnp_table[] = {
DMI_MATCH(DMI_BOARD_VENDOR, "PK"),
},
},
+ /*
+ * A lot of modern Clevo barebones have touchpad and/or keyboard issues
+ * after suspend fixable with reset + nomux + nopnp + noloop. Luckily,
+ * none of them have an external PS/2 port so this can savely be set for
+ * all of them.
+ */
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "LAPQC71A"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "LAPQC71A"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "LAPQC71A"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "LAPQC71A"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "LAPQC71B"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "LAPQC71B"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "LAPQC71B"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "LAPQC71B"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "N140CU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "N140CU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "N140CU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "N140CU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "N141CU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "N141CU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "N141CU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "N141CU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "N150CU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "N150CU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "N150CU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "N150CU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "NH5xAx"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "NH5xAx"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "NH5xAx"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "NH5xAx"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "NL5xRU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "NL5xRU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "AURA1501"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "EDUBOOK1502"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "NL5xRU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "NL5xRU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "AURA1501"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "EDUBOOK1502"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "NS50MU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "NS50MU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "NS50MU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "NS50MU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "NS50_70MU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "NS50_70MU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "NS50_70MU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "NS50_70MU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "NJ50_70CU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "NJ50_70CU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "NJ50_70CU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "NJ50_70CU"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "PB50_70DFx,DDx"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "PB50_70DFx,DDx"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "PB50_70DFx,DDx"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "PB50_70DFx,DDx"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "X170SM"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "X170SM"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "X170SM"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "X170SM"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "X170KM-G"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "X170KM-G"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
+ DMI_MATCH(DMI_BOARD_NAME, "X170KM-G"),
+ },
+ },
+ {
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
+ DMI_MATCH(DMI_BOARD_NAME, "X170KM-G"),
+ },
+ },
{ }
};

--
2.25.1



2021-12-02 17:05:28

by Werner Sembach

[permalink] [raw]
Subject: Re: [PATCH] input/i8042: Add TUXEDO devices to i8042 quirk tables

Hi,
> A lot of modern Clevo barebones have touchpad and/or keyboard issues after
> suspend fixable with reset + nomux + nopnp + noloop. 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.
>
> The list is quite massive as neither the TUXEDO nor the Clevo dmi strings
> have been very consistent historically. I tried to keep the list as short
> as possible without risking on missing an affected device.

can I have feedback on this?

Kind regards,

Werner Sembach

>
> Signed-off-by: Werner Sembach <wse@xxxxxxxxxxxxxxxxxxx>
> Cc: <stable@xxxxxxxxxxxxxxx>
> ---
> drivers/input/serio/i8042-x86ia64io.h | 1406 ++++++++++++++++++++++++-
> 1 file changed, 1387 insertions(+), 19 deletions(-)
>
> diff --git a/drivers/input/serio/i8042-x86ia64io.h b/drivers/input/serio/i8042-x86ia64io.h
> index a5a003553646..e42f8b64260c 100644
> --- a/drivers/input/serio/i8042-x86ia64io.h
> +++ b/drivers/input/serio/i8042-x86ia64io.h
> @@ -226,6 +226,348 @@ static const struct dmi_system_id __initconst i8042_dmi_noloop_table[] = {
> DMI_MATCH(DMI_PRODUCT_NAME, "ByteSpeed Laptop C15B"),
> },
> },
> + /*
> + * A lot of modern Clevo barebones have touchpad and/or keyboard issues
> + * after suspend fixable with reset + nomux + nopnp + noloop. Luckily,
> + * none of them have an external PS/2 port so this can savely be set for
> + * all of them.
> + */
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "LAPQC71A"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "LAPQC71A"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "LAPQC71A"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "LAPQC71A"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "LAPQC71B"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "LAPQC71B"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "LAPQC71B"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "LAPQC71B"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "N140CU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "N140CU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "N140CU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "N140CU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "N141CU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "N141CU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "N141CU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "N141CU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "N150CU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "N150CU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "N150CU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "N150CU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "NH5xAx"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "NH5xAx"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "NH5xAx"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "NH5xAx"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "NL5xRU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "NL5xRU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "AURA1501"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "EDUBOOK1502"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "NL5xRU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "NL5xRU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "AURA1501"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "EDUBOOK1502"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "NS50MU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "NS50MU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "NS50MU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "NS50MU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "NS50_70MU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "NS50_70MU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "NS50_70MU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "NS50_70MU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "NJ50_70CU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "NJ50_70CU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "NJ50_70CU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "NJ50_70CU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "PB50_70DFx,DDx"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "PB50_70DFx,DDx"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "PB50_70DFx,DDx"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "PB50_70DFx,DDx"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "X170SM"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "X170SM"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "X170SM"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "X170SM"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "X170KM-G"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "X170KM-G"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "X170KM-G"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "X170KM-G"),
> + },
> + },
> { }
> };
>
> @@ -562,25 +904,367 @@ static const struct dmi_system_id __initconst i8042_dmi_nomux_table[] = {
> DMI_MATCH(DMI_PRODUCT_VERSION, "EL07R4"),
> },
> },
> - { }
> -};
> -
> -static const struct dmi_system_id i8042_dmi_forcemux_table[] __initconst = {
> + /*
> + * A lot of modern Clevo barebones have touchpad and/or keyboard issues
> + * after suspend fixable with reset + nomux + nopnp + noloop. Luckily,
> + * none of them have an external PS/2 port so this can savely be set for
> + * all of them.
> + */
> {
> - /*
> - * Sony Vaio VGN-CS series require MUX or the touch sensor
> - * buttons will disturb touchpad operation
> - */
> .matches = {
> - DMI_MATCH(DMI_SYS_VENDOR, "Sony Corporation"),
> - DMI_MATCH(DMI_PRODUCT_NAME, "VGN-CS"),
> + DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "LAPQC71A"),
> },
> },
> - { }
> -};
> -
> -/*
> - * On some Asus laptops, just running self tests cause problems.
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "LAPQC71A"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "LAPQC71A"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "LAPQC71A"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "LAPQC71B"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "LAPQC71B"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "LAPQC71B"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "LAPQC71B"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "N140CU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "N140CU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "N140CU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "N140CU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "N141CU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "N141CU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "N141CU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "N141CU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "N150CU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "N150CU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "N150CU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "N150CU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "NH5xAx"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "NH5xAx"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "NH5xAx"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "NH5xAx"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "NL5xRU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "NL5xRU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "AURA1501"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "EDUBOOK1502"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "NL5xRU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "NL5xRU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "AURA1501"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "EDUBOOK1502"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "NS50MU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "NS50MU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "NS50MU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "NS50MU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "NS50_70MU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "NS50_70MU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "NS50_70MU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "NS50_70MU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "NJ50_70CU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "NJ50_70CU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "NJ50_70CU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "NJ50_70CU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "PB50_70DFx,DDx"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "PB50_70DFx,DDx"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "PB50_70DFx,DDx"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "PB50_70DFx,DDx"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "X170SM"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "X170SM"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "X170SM"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "X170SM"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "X170KM-G"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "X170KM-G"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "X170KM-G"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "X170KM-G"),
> + },
> + },
> + { }
> +};
> +
> +static const struct dmi_system_id i8042_dmi_forcemux_table[] __initconst = {
> + {
> + /*
> + * Sony Vaio VGN-CS series require MUX or the touch sensor
> + * buttons will disturb touchpad operation
> + */
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "Sony Corporation"),
> + DMI_MATCH(DMI_PRODUCT_NAME, "VGN-CS"),
> + },
> + },
> + { }
> +};
> +
> +/*
> + * On some Asus laptops, just running self tests cause problems.
> */
> static const struct dmi_system_id i8042_dmi_noselftest_table[] = {
> {
> @@ -745,10 +1429,352 @@ static const struct dmi_system_id __initconst i8042_dmi_reset_table[] = {
> DMI_MATCH(DMI_PRODUCT_VERSION, "EL07R4"),
> },
> },
> - { }
> -};
> -
> -#ifdef CONFIG_PNP
> + /*
> + * A lot of modern Clevo barebones have touchpad and/or keyboard issues
> + * after suspend fixable with reset + nomux + nopnp + noloop. Luckily,
> + * none of them have an external PS/2 port so this can savely be set for
> + * all of them.
> + */
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "LAPQC71A"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "LAPQC71A"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "LAPQC71A"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "LAPQC71A"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "LAPQC71B"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "LAPQC71B"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "LAPQC71B"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "LAPQC71B"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "N140CU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "N140CU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "N140CU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "N140CU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "N141CU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "N141CU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "N141CU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "N141CU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "N150CU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "N150CU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "N150CU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "N150CU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "NH5xAx"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "NH5xAx"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "NH5xAx"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "NH5xAx"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "NL5xRU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "NL5xRU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "AURA1501"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "EDUBOOK1502"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "NL5xRU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "NL5xRU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "AURA1501"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "EDUBOOK1502"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "NS50MU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "NS50MU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "NS50MU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "NS50MU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "NS50_70MU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "NS50_70MU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "NS50_70MU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "NS50_70MU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "NJ50_70CU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "NJ50_70CU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "NJ50_70CU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "NJ50_70CU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "PB50_70DFx,DDx"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "PB50_70DFx,DDx"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "PB50_70DFx,DDx"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "PB50_70DFx,DDx"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "X170SM"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "X170SM"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "X170SM"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "X170SM"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "X170KM-G"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "X170KM-G"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "X170KM-G"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "X170KM-G"),
> + },
> + },
> + { }
> +};
> +
> +#ifdef CONFIG_PNP
> static const struct dmi_system_id __initconst i8042_dmi_nopnp_table[] = {
> {
> /* Intel MBO Desktop D845PESV */
> @@ -781,6 +1807,348 @@ static const struct dmi_system_id __initconst i8042_dmi_nopnp_table[] = {
> DMI_MATCH(DMI_BOARD_VENDOR, "PK"),
> },
> },
> + /*
> + * A lot of modern Clevo barebones have touchpad and/or keyboard issues
> + * after suspend fixable with reset + nomux + nopnp + noloop. Luckily,
> + * none of them have an external PS/2 port so this can savely be set for
> + * all of them.
> + */
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "LAPQC71A"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "LAPQC71A"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "LAPQC71A"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "LAPQC71A"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "LAPQC71B"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "LAPQC71B"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "LAPQC71B"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "LAPQC71B"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "N140CU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "N140CU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "N140CU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "N140CU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "N141CU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "N141CU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "N141CU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "N141CU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "N150CU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "N150CU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "N150CU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "N150CU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "NH5xAx"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "NH5xAx"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "NH5xAx"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "NH5xAx"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "NL5xRU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "NL5xRU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "AURA1501"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "EDUBOOK1502"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "NL5xRU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "NL5xRU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "AURA1501"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "EDUBOOK1502"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "NS50MU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "NS50MU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "NS50MU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "NS50MU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "NS50_70MU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "NS50_70MU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "NS50_70MU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "NS50_70MU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "NJ50_70CU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "NJ50_70CU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "NJ50_70CU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "NJ50_70CU"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "PB50_70DFx,DDx"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "PB50_70DFx,DDx"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "PB50_70DFx,DDx"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "PB50_70DFx,DDx"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "X170SM"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "X170SM"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "X170SM"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "X170SM"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "X170KM-G"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_BOARD_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "X170KM-G"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"),
> + DMI_MATCH(DMI_BOARD_NAME, "X170KM-G"),
> + },
> + },
> + {
> + .matches = {
> + DMI_MATCH(DMI_SYS_VENDOR, "Notebook"),
> + DMI_MATCH(DMI_BOARD_NAME, "X170KM-G"),
> + },
> + },
> { }
> };
>
> --
> 2.25.1