@@ -76,7 +76,7 @@ static inline void i8042_write_command(int val)
76
76
#define SERIO_QUIRK_PROBE_DEFER BIT(5)
77
77
#define SERIO_QUIRK_RESET_ALWAYS BIT(6)
78
78
#define SERIO_QUIRK_RESET_NEVER BIT(7)
79
- #define SERIO_QUIRK_DIECT BIT(8)
79
+ #define SERIO_QUIRK_DIRECT BIT(8)
80
80
#define SERIO_QUIRK_DUMBKBD BIT(9)
81
81
#define SERIO_QUIRK_NOLOOP BIT(10)
82
82
#define SERIO_QUIRK_NOTIMEOUT BIT(11)
@@ -1332,6 +1332,20 @@ static const struct dmi_system_id i8042_dmi_quirk_table[] __initconst = {
1332
1332
.driver_data = (void * )(SERIO_QUIRK_NOMUX | SERIO_QUIRK_RESET_ALWAYS |
1333
1333
SERIO_QUIRK_NOLOOP | SERIO_QUIRK_NOPNP )
1334
1334
},
1335
+ {
1336
+ /*
1337
+ * The Ayaneo Kun is a handheld device where some the buttons
1338
+ * are handled by an AT keyboard. The keyboard is usually
1339
+ * detected as raw, but sometimes, usually after a cold boot,
1340
+ * it is detected as translated. Make sure that the keyboard
1341
+ * is always in raw mode.
1342
+ */
1343
+ .matches = {
1344
+ DMI_EXACT_MATCH (DMI_BOARD_VENDOR , "AYANEO" ),
1345
+ DMI_MATCH (DMI_BOARD_NAME , "KUN" ),
1346
+ },
1347
+ .driver_data = (void * )(SERIO_QUIRK_DIRECT )
1348
+ },
1335
1349
{ }
1336
1350
};
1337
1351
@@ -1655,7 +1669,7 @@ static void __init i8042_check_quirks(void)
1655
1669
if (quirks & SERIO_QUIRK_RESET_NEVER )
1656
1670
i8042_reset = I8042_RESET_NEVER ;
1657
1671
}
1658
- if (quirks & SERIO_QUIRK_DIECT )
1672
+ if (quirks & SERIO_QUIRK_DIRECT )
1659
1673
i8042_direct = true;
1660
1674
if (quirks & SERIO_QUIRK_DUMBKBD )
1661
1675
i8042_dumbkbd = true;
0 commit comments