|
@@ -277,6 +277,50 @@ static struct dmi_system_id __initdata i8042_dmi_nomux_table[] = {
|
|
|
|
|
|
#endif
|
|
|
|
|
|
+#ifdef CONFIG_X86
|
|
|
+
|
|
|
+#include <linux/dmi.h>
|
|
|
+
|
|
|
+/*
|
|
|
+ * Some Wistron based laptops need us to explicitly enable the 'Dritek
|
|
|
+ * keyboard extension' to make their extra keys start generating scancodes.
|
|
|
+ * Originally, this was just confined to older laptops, but a few Acer laptops
|
|
|
+ * have turned up in 2007 that also need this again.
|
|
|
+ */
|
|
|
+static struct dmi_system_id __initdata i8042_dmi_dritek_table[] = {
|
|
|
+ {
|
|
|
+ .ident = "Acer Aspire 5630",
|
|
|
+ .matches = {
|
|
|
+ DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
|
|
|
+ DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5630"),
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .ident = "Acer Aspire 5650",
|
|
|
+ .matches = {
|
|
|
+ DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
|
|
|
+ DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5650"),
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .ident = "Acer Aspire 5680",
|
|
|
+ .matches = {
|
|
|
+ DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
|
|
|
+ DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5680"),
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .ident = "Acer TravelMate 2490",
|
|
|
+ .matches = {
|
|
|
+ DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
|
|
|
+ DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 2490"),
|
|
|
+ },
|
|
|
+ },
|
|
|
+ { }
|
|
|
+};
|
|
|
+
|
|
|
+#endif /* CONFIG_X86 */
|
|
|
+
|
|
|
|
|
|
#ifdef CONFIG_PNP
|
|
|
#include <linux/pnp.h>
|
|
@@ -520,6 +564,11 @@ static int __init i8042_platform_init(void)
|
|
|
i8042_nomux = 1;
|
|
|
#endif
|
|
|
|
|
|
+#ifdef CONFIG_X86
|
|
|
+ if (dmi_check_system(i8042_dmi_dritek_table))
|
|
|
+ i8042_dritek = 1;
|
|
|
+#endif /* CONFIG_X86 */
|
|
|
+
|
|
|
return retval;
|
|
|
}
|
|
|
|