Input: i8042 - another attempt to fix AUX delivery checks
Do not assume that AUX_LOOP command is broken unless it completes successfully but returns wrong (unexpected) data. Cc: Chuck Ebbert <cebbert@redhat.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
a0518e0445
commit
0036a32bcd
@@ -560,7 +560,8 @@ static int __devinit i8042_check_aux(void)
|
||||
*/
|
||||
|
||||
param = 0x5a;
|
||||
if (i8042_command(¶m, I8042_CMD_AUX_LOOP) || param != 0x5a) {
|
||||
retval = i8042_command(¶m, I8042_CMD_AUX_LOOP);
|
||||
if (retval || param != 0x5a) {
|
||||
|
||||
/*
|
||||
* External connection test - filters out AT-soldered PS/2 i8042's
|
||||
@@ -574,7 +575,12 @@ static int __devinit i8042_check_aux(void)
|
||||
(param && param != 0xfa && param != 0xff))
|
||||
return -1;
|
||||
|
||||
aux_loop_broken = 1;
|
||||
/*
|
||||
* If AUX_LOOP completed without error but returned unexpected data
|
||||
* mark it as broken
|
||||
*/
|
||||
if (!retval)
|
||||
aux_loop_broken = 1;
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user