]> Git Repo - linux.git/commitdiff
Input: i8042 - add Ayaneo Kun to i8042 quirk table
authorTobias Jakobi <[email protected]>
Fri, 31 May 2024 22:43:07 +0000 (15:43 -0700)
committerDmitry Torokhov <[email protected]>
Fri, 31 May 2024 22:49:42 +0000 (15:49 -0700)
See the added comment for details. Also fix a typo in the
quirk's define.

Signed-off-by: Tobias Jakobi <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Dmitry Torokhov <[email protected]>
drivers/input/serio/i8042-acpipnpio.h

index dfc6c581873b7d45da63d88a216295a24fa2c13b..5b50475ec41402bbbf2f4e9d1e3f1bdb3742c192 100644 (file)
@@ -76,7 +76,7 @@ static inline void i8042_write_command(int val)
 #define SERIO_QUIRK_PROBE_DEFER                BIT(5)
 #define SERIO_QUIRK_RESET_ALWAYS       BIT(6)
 #define SERIO_QUIRK_RESET_NEVER                BIT(7)
-#define SERIO_QUIRK_DIECT              BIT(8)
+#define SERIO_QUIRK_DIRECT             BIT(8)
 #define SERIO_QUIRK_DUMBKBD            BIT(9)
 #define SERIO_QUIRK_NOLOOP             BIT(10)
 #define SERIO_QUIRK_NOTIMEOUT          BIT(11)
@@ -1332,6 +1332,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)
        },
+       {
+               /*
+                * The Ayaneo Kun is a handheld device where some the buttons
+                * are handled by an AT keyboard. The keyboard is usually
+                * detected as raw, but sometimes, usually after a cold boot,
+                * it is detected as translated. Make sure that the keyboard
+                * is always in raw mode.
+                */
+               .matches = {
+                       DMI_EXACT_MATCH(DMI_BOARD_VENDOR, "AYANEO"),
+                       DMI_MATCH(DMI_BOARD_NAME, "KUN"),
+               },
+               .driver_data = (void *)(SERIO_QUIRK_DIRECT)
+       },
        { }
 };
 
@@ -1655,7 +1669,7 @@ static void __init i8042_check_quirks(void)
                if (quirks & SERIO_QUIRK_RESET_NEVER)
                        i8042_reset = I8042_RESET_NEVER;
        }
-       if (quirks & SERIO_QUIRK_DIECT)
+       if (quirks & SERIO_QUIRK_DIRECT)
                i8042_direct = true;
        if (quirks & SERIO_QUIRK_DUMBKBD)
                i8042_dumbkbd = true;
This page took 0.058357 seconds and 4 git commands to generate.