diff options
Diffstat (limited to 'drivers/input/serio/i8042-x86ia64io.h')
-rw-r--r-- | drivers/input/serio/i8042-x86ia64io.h | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/drivers/input/serio/i8042-x86ia64io.h b/drivers/input/serio/i8042-x86ia64io.h index c5e68dcd88ac..4f6384d8e090 100644 --- a/drivers/input/serio/i8042-x86ia64io.h +++ b/drivers/input/serio/i8042-x86ia64io.h @@ -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; } |