diff options
Diffstat (limited to 'drivers/input/serio/i8042-x86ia64io.h')
-rw-r--r-- | drivers/input/serio/i8042-x86ia64io.h | 67 |
1 files changed, 65 insertions, 2 deletions
diff --git a/drivers/input/serio/i8042-x86ia64io.h b/drivers/input/serio/i8042-x86ia64io.h index c5e68dcd88ac..662e84482c26 100644 --- a/drivers/input/serio/i8042-x86ia64io.h +++ b/drivers/input/serio/i8042-x86ia64io.h | |||
@@ -63,7 +63,7 @@ static inline void i8042_write_command(int val) | |||
63 | outb(val, I8042_COMMAND_REG); | 63 | outb(val, I8042_COMMAND_REG); |
64 | } | 64 | } |
65 | 65 | ||
66 | #if defined(__i386__) | 66 | #if defined(__i386__) || defined(__x86_64__) |
67 | 67 | ||
68 | #include <linux/dmi.h> | 68 | #include <linux/dmi.h> |
69 | 69 | ||
@@ -186,6 +186,13 @@ static struct dmi_system_id __initdata i8042_dmi_nomux_table[] = { | |||
186 | }, | 186 | }, |
187 | }, | 187 | }, |
188 | { | 188 | { |
189 | .ident = "Fujitsu-Siemens Amilo Pro 2010", | ||
190 | .matches = { | ||
191 | DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU SIEMENS"), | ||
192 | DMI_MATCH(DMI_PRODUCT_NAME, "AMILO Pro V2010"), | ||
193 | }, | ||
194 | }, | ||
195 | { | ||
189 | /* | 196 | /* |
190 | * No data is coming from the touchscreen unless KBC | 197 | * No data is coming from the touchscreen unless KBC |
191 | * is in legacy mode. | 198 | * is in legacy mode. |
@@ -277,6 +284,57 @@ static struct dmi_system_id __initdata i8042_dmi_nomux_table[] = { | |||
277 | 284 | ||
278 | #endif | 285 | #endif |
279 | 286 | ||
287 | #ifdef CONFIG_X86 | ||
288 | |||
289 | #include <linux/dmi.h> | ||
290 | |||
291 | /* | ||
292 | * Some Wistron based laptops need us to explicitly enable the 'Dritek | ||
293 | * keyboard extension' to make their extra keys start generating scancodes. | ||
294 | * Originally, this was just confined to older laptops, but a few Acer laptops | ||
295 | * have turned up in 2007 that also need this again. | ||
296 | */ | ||
297 | static struct dmi_system_id __initdata i8042_dmi_dritek_table[] = { | ||
298 | { | ||
299 | .ident = "Acer Aspire 5630", | ||
300 | .matches = { | ||
301 | DMI_MATCH(DMI_SYS_VENDOR, "Acer"), | ||
302 | DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5630"), | ||
303 | }, | ||
304 | }, | ||
305 | { | ||
306 | .ident = "Acer Aspire 5650", | ||
307 | .matches = { | ||
308 | DMI_MATCH(DMI_SYS_VENDOR, "Acer"), | ||
309 | DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5650"), | ||
310 | }, | ||
311 | }, | ||
312 | { | ||
313 | .ident = "Acer Aspire 5680", | ||
314 | .matches = { | ||
315 | DMI_MATCH(DMI_SYS_VENDOR, "Acer"), | ||
316 | DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5680"), | ||
317 | }, | ||
318 | }, | ||
319 | { | ||
320 | .ident = "Acer Aspire 9110", | ||
321 | .matches = { | ||
322 | DMI_MATCH(DMI_SYS_VENDOR, "Acer"), | ||
323 | DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 9110"), | ||
324 | }, | ||
325 | }, | ||
326 | { | ||
327 | .ident = "Acer TravelMate 2490", | ||
328 | .matches = { | ||
329 | DMI_MATCH(DMI_SYS_VENDOR, "Acer"), | ||
330 | DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 2490"), | ||
331 | }, | ||
332 | }, | ||
333 | { } | ||
334 | }; | ||
335 | |||
336 | #endif /* CONFIG_X86 */ | ||
337 | |||
280 | 338 | ||
281 | #ifdef CONFIG_PNP | 339 | #ifdef CONFIG_PNP |
282 | #include <linux/pnp.h> | 340 | #include <linux/pnp.h> |
@@ -512,7 +570,7 @@ static int __init i8042_platform_init(void) | |||
512 | i8042_reset = 1; | 570 | i8042_reset = 1; |
513 | #endif | 571 | #endif |
514 | 572 | ||
515 | #if defined(__i386__) | 573 | #if defined(__i386__) || defined(__x86_64__) |
516 | if (dmi_check_system(i8042_dmi_noloop_table)) | 574 | if (dmi_check_system(i8042_dmi_noloop_table)) |
517 | i8042_noloop = 1; | 575 | i8042_noloop = 1; |
518 | 576 | ||
@@ -520,6 +578,11 @@ static int __init i8042_platform_init(void) | |||
520 | i8042_nomux = 1; | 578 | i8042_nomux = 1; |
521 | #endif | 579 | #endif |
522 | 580 | ||
581 | #ifdef CONFIG_X86 | ||
582 | if (dmi_check_system(i8042_dmi_dritek_table)) | ||
583 | i8042_dritek = 1; | ||
584 | #endif /* CONFIG_X86 */ | ||
585 | |||
523 | return retval; | 586 | return retval; |
524 | } | 587 | } |
525 | 588 | ||