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. Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
This commit is contained in:
parent
62b529a7b9
commit
3ca5de6dd4
|
@ -553,7 +553,8 @@ static int __devinit i8042_check_aux(void)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
param = 0x5a;
|
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
|
* External connection test - filters out AT-soldered PS/2 i8042's
|
||||||
|
@ -567,6 +568,11 @@ static int __devinit i8042_check_aux(void)
|
||||||
(param && param != 0xfa && param != 0xff))
|
(param && param != 0xfa && param != 0xff))
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* If AUX_LOOP completed without error but returned unexpected data
|
||||||
|
* mark it as broken
|
||||||
|
*/
|
||||||
|
if (!retval)
|
||||||
aux_loop_broken = 1;
|
aux_loop_broken = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue