diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/input/serio/i8042.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/input/serio/i8042.c b/drivers/input/serio/i8042.c index 1364c7964db4..c3fdfc1f342a 100644 --- a/drivers/input/serio/i8042.c +++ b/drivers/input/serio/i8042.c | |||
@@ -543,6 +543,7 @@ static int __devinit i8042_check_aux(void) | |||
543 | { | 543 | { |
544 | int retval = -1; | 544 | int retval = -1; |
545 | int irq_registered = 0; | 545 | int irq_registered = 0; |
546 | int aux_loop_broken = 0; | ||
546 | unsigned long flags; | 547 | unsigned long flags; |
547 | unsigned char param; | 548 | unsigned char param; |
548 | 549 | ||
@@ -572,6 +573,8 @@ static int __devinit i8042_check_aux(void) | |||
572 | if (i8042_command(¶m, I8042_CMD_AUX_TEST) || | 573 | if (i8042_command(¶m, I8042_CMD_AUX_TEST) || |
573 | (param && param != 0xfa && param != 0xff)) | 574 | (param && param != 0xfa && param != 0xff)) |
574 | return -1; | 575 | return -1; |
576 | |||
577 | aux_loop_broken = 1; | ||
575 | } | 578 | } |
576 | 579 | ||
577 | /* | 580 | /* |
@@ -595,7 +598,7 @@ static int __devinit i8042_check_aux(void) | |||
595 | * used it for a PCI card or somethig else. | 598 | * used it for a PCI card or somethig else. |
596 | */ | 599 | */ |
597 | 600 | ||
598 | if (i8042_noloop) { | 601 | if (i8042_noloop || aux_loop_broken) { |
599 | /* | 602 | /* |
600 | * Without LOOP command we can't test AUX IRQ delivery. Assume the port | 603 | * Without LOOP command we can't test AUX IRQ delivery. Assume the port |
601 | * is working and hope we are right. | 604 | * is working and hope we are right. |