diff options
author | Jiri Kosina <jkosina@suse.cz> | 2008-05-28 01:10:52 -0400 |
---|---|---|
committer | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2008-05-29 16:19:58 -0400 |
commit | c3a34f4390396a4bede3f8b7bcc5153f50b974bb (patch) | |
tree | 86c59fe83b8b3d1abfa84f3ec88ae6c7190907f5 /drivers/input | |
parent | d1659fcc59b21ec442564fedb67a5ad371f82380 (diff) |
Input: i8042 - add Intel D845PESV to nopnp list
This patch introduces i8042_dmi_nopnp_table to make it possible to perform
DMI matches for systems that need 'i8042.nopnp' to work correctly, and
introduces such an entry for Intel D845PESV -- this system doesn't
detect PS2 mouse reliably without this option, as reported by Robert
Lewis.
[dtor@mail.ru - make it compile if CONFIG_PNP is off - reported
by Randy Dunlap]
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Diffstat (limited to 'drivers/input')
-rw-r--r-- | drivers/input/serio/i8042-x86ia64io.h | 29 |
1 files changed, 18 insertions, 11 deletions
diff --git a/drivers/input/serio/i8042-x86ia64io.h b/drivers/input/serio/i8042-x86ia64io.h index 5ece9f56babc..2289e3a8f25c 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__) || defined(__x86_64__) | 66 | #ifdef CONFIG_X86 |
67 | 67 | ||
68 | #include <linux/dmi.h> | 68 | #include <linux/dmi.h> |
69 | 69 | ||
@@ -287,14 +287,19 @@ static struct dmi_system_id __initdata i8042_dmi_nomux_table[] = { | |||
287 | { } | 287 | { } |
288 | }; | 288 | }; |
289 | 289 | ||
290 | 290 | #ifdef CONFIG_PNP | |
291 | 291 | static struct dmi_system_id __initdata i8042_dmi_nopnp_table[] = { | |
292 | { | ||
293 | .ident = "Intel MBO Desktop D845PESV", | ||
294 | .matches = { | ||
295 | DMI_MATCH(DMI_BOARD_NAME, "D845PESV"), | ||
296 | DMI_MATCH(DMI_BOARD_VENDOR, "Intel Corporation"), | ||
297 | }, | ||
298 | }, | ||
299 | { } | ||
300 | }; | ||
292 | #endif | 301 | #endif |
293 | 302 | ||
294 | #ifdef CONFIG_X86 | ||
295 | |||
296 | #include <linux/dmi.h> | ||
297 | |||
298 | /* | 303 | /* |
299 | * Some Wistron based laptops need us to explicitly enable the 'Dritek | 304 | * Some Wistron based laptops need us to explicitly enable the 'Dritek |
300 | * keyboard extension' to make their extra keys start generating scancodes. | 305 | * keyboard extension' to make their extra keys start generating scancodes. |
@@ -342,7 +347,6 @@ static struct dmi_system_id __initdata i8042_dmi_dritek_table[] = { | |||
342 | 347 | ||
343 | #endif /* CONFIG_X86 */ | 348 | #endif /* CONFIG_X86 */ |
344 | 349 | ||
345 | |||
346 | #ifdef CONFIG_PNP | 350 | #ifdef CONFIG_PNP |
347 | #include <linux/pnp.h> | 351 | #include <linux/pnp.h> |
348 | 352 | ||
@@ -452,6 +456,11 @@ static int __init i8042_pnp_init(void) | |||
452 | int pnp_data_busted = 0; | 456 | int pnp_data_busted = 0; |
453 | int err; | 457 | int err; |
454 | 458 | ||
459 | #ifdef CONFIG_X86 | ||
460 | if (dmi_check_system(i8042_dmi_nopnp_table)) | ||
461 | i8042_nopnp = 1; | ||
462 | #endif | ||
463 | |||
455 | if (i8042_nopnp) { | 464 | if (i8042_nopnp) { |
456 | printk(KERN_INFO "i8042: PNP detection disabled\n"); | 465 | printk(KERN_INFO "i8042: PNP detection disabled\n"); |
457 | return 0; | 466 | return 0; |
@@ -577,15 +586,13 @@ static int __init i8042_platform_init(void) | |||
577 | i8042_reset = 1; | 586 | i8042_reset = 1; |
578 | #endif | 587 | #endif |
579 | 588 | ||
580 | #if defined(__i386__) || defined(__x86_64__) | 589 | #ifdef CONFIG_X86 |
581 | if (dmi_check_system(i8042_dmi_noloop_table)) | 590 | if (dmi_check_system(i8042_dmi_noloop_table)) |
582 | i8042_noloop = 1; | 591 | i8042_noloop = 1; |
583 | 592 | ||
584 | if (dmi_check_system(i8042_dmi_nomux_table)) | 593 | if (dmi_check_system(i8042_dmi_nomux_table)) |
585 | i8042_nomux = 1; | 594 | i8042_nomux = 1; |
586 | #endif | ||
587 | 595 | ||
588 | #ifdef CONFIG_X86 | ||
589 | if (dmi_check_system(i8042_dmi_dritek_table)) | 596 | if (dmi_check_system(i8042_dmi_dritek_table)) |
590 | i8042_dritek = 1; | 597 | i8042_dritek = 1; |
591 | #endif /* CONFIG_X86 */ | 598 | #endif /* CONFIG_X86 */ |