diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-07-20 12:16:07 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-07-20 12:16:07 -0400 |
commit | d638d4990bfb99998420e78e8fd4607bca5cf8d0 (patch) | |
tree | 8f09b50e65a32403ae0348c2768bc466a9c8b764 /drivers/input/serio | |
parent | 8c6b065b792061c2e471d530127f2348fd9d243d (diff) | |
parent | 5a6eb676d3bc4d7a6feab200a92437b62ad298da (diff) |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
Input: appletouch - improve powersaving for Geyser3 devices
Input: lifebook - fix an oops on Panasonic CF-18
Input: document intended meaning of KEY_SWITCHVIDEOMODE
Input: switch to using seq_list_xxx helpers
Input: i8042 - give more trust to PNP data on i386
Input: add driver for Fujitsu serial touchscreens
Input: ads7846 - re-check pendown status before reporting events
Input: ads7846 - introduce sample settling delay
Input: xpad - add support for leds on xbox 360 pad
Diffstat (limited to 'drivers/input/serio')
-rw-r--r-- | drivers/input/serio/i8042-x86ia64io.h | 36 |
1 files changed, 29 insertions, 7 deletions
diff --git a/drivers/input/serio/i8042-x86ia64io.h b/drivers/input/serio/i8042-x86ia64io.h index 4fca1e7f2678..702a526cf45b 100644 --- a/drivers/input/serio/i8042-x86ia64io.h +++ b/drivers/input/serio/i8042-x86ia64io.h | |||
@@ -366,6 +366,7 @@ static void i8042_pnp_exit(void) | |||
366 | static int __init i8042_pnp_init(void) | 366 | static int __init i8042_pnp_init(void) |
367 | { | 367 | { |
368 | char kbd_irq_str[4] = { 0 }, aux_irq_str[4] = { 0 }; | 368 | char kbd_irq_str[4] = { 0 }, aux_irq_str[4] = { 0 }; |
369 | int pnp_data_busted = 0; | ||
369 | int err; | 370 | int err; |
370 | 371 | ||
371 | if (i8042_nopnp) { | 372 | if (i8042_nopnp) { |
@@ -413,27 +414,48 @@ static int __init i8042_pnp_init(void) | |||
413 | #endif | 414 | #endif |
414 | 415 | ||
415 | if (((i8042_pnp_data_reg & ~0xf) == (i8042_data_reg & ~0xf) && | 416 | if (((i8042_pnp_data_reg & ~0xf) == (i8042_data_reg & ~0xf) && |
416 | i8042_pnp_data_reg != i8042_data_reg) || !i8042_pnp_data_reg) { | 417 | i8042_pnp_data_reg != i8042_data_reg) || |
417 | printk(KERN_WARNING "PNP: PS/2 controller has invalid data port %#x; using default %#x\n", | 418 | !i8042_pnp_data_reg) { |
419 | printk(KERN_WARNING | ||
420 | "PNP: PS/2 controller has invalid data port %#x; " | ||
421 | "using default %#x\n", | ||
418 | i8042_pnp_data_reg, i8042_data_reg); | 422 | i8042_pnp_data_reg, i8042_data_reg); |
419 | i8042_pnp_data_reg = i8042_data_reg; | 423 | i8042_pnp_data_reg = i8042_data_reg; |
424 | pnp_data_busted = 1; | ||
420 | } | 425 | } |
421 | 426 | ||
422 | if (((i8042_pnp_command_reg & ~0xf) == (i8042_command_reg & ~0xf) && | 427 | if (((i8042_pnp_command_reg & ~0xf) == (i8042_command_reg & ~0xf) && |
423 | i8042_pnp_command_reg != i8042_command_reg) || !i8042_pnp_command_reg) { | 428 | i8042_pnp_command_reg != i8042_command_reg) || |
424 | printk(KERN_WARNING "PNP: PS/2 controller has invalid command port %#x; using default %#x\n", | 429 | !i8042_pnp_command_reg) { |
430 | printk(KERN_WARNING | ||
431 | "PNP: PS/2 controller has invalid command port %#x; " | ||
432 | "using default %#x\n", | ||
425 | i8042_pnp_command_reg, i8042_command_reg); | 433 | i8042_pnp_command_reg, i8042_command_reg); |
426 | i8042_pnp_command_reg = i8042_command_reg; | 434 | i8042_pnp_command_reg = i8042_command_reg; |
435 | pnp_data_busted = 1; | ||
427 | } | 436 | } |
428 | 437 | ||
429 | if (!i8042_nokbd && !i8042_pnp_kbd_irq) { | 438 | if (!i8042_nokbd && !i8042_pnp_kbd_irq) { |
430 | printk(KERN_WARNING "PNP: PS/2 controller doesn't have KBD irq; using default %d\n", i8042_kbd_irq); | 439 | printk(KERN_WARNING |
440 | "PNP: PS/2 controller doesn't have KBD irq; " | ||
441 | "using default %d\n", i8042_kbd_irq); | ||
431 | i8042_pnp_kbd_irq = i8042_kbd_irq; | 442 | i8042_pnp_kbd_irq = i8042_kbd_irq; |
443 | pnp_data_busted = 1; | ||
432 | } | 444 | } |
433 | 445 | ||
434 | if (!i8042_noaux && !i8042_pnp_aux_irq) { | 446 | if (!i8042_noaux && !i8042_pnp_aux_irq) { |
435 | printk(KERN_WARNING "PNP: PS/2 controller doesn't have AUX irq; using default %d\n", i8042_aux_irq); | 447 | if (!pnp_data_busted && i8042_pnp_kbd_irq) { |
436 | i8042_pnp_aux_irq = i8042_aux_irq; | 448 | printk(KERN_WARNING |
449 | "PNP: PS/2 appears to have AUX port disabled, " | ||
450 | "if this is incorrect please boot with " | ||
451 | "i8042.nopnp\n"); | ||
452 | i8042_noaux = 1; | ||
453 | } else { | ||
454 | printk(KERN_WARNING | ||
455 | "PNP: PS/2 controller doesn't have AUX irq; " | ||
456 | "using default %d\n", i8042_aux_irq); | ||
457 | i8042_pnp_aux_irq = i8042_aux_irq; | ||
458 | } | ||
437 | } | 459 | } |
438 | 460 | ||
439 | i8042_data_reg = i8042_pnp_data_reg; | 461 | i8042_data_reg = i8042_pnp_data_reg; |