Commit 3ca5de6d authored by Dmitry Torokhov's avatar Dmitry Torokhov

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: default avatarDmitry Torokhov <dtor@mail.ru>
parent 62b529a7
...@@ -553,7 +553,8 @@ static int __devinit i8042_check_aux(void) ...@@ -553,7 +553,8 @@ static int __devinit i8042_check_aux(void)
*/ */
param = 0x5a; param = 0x5a;
if (i8042_command(&param, I8042_CMD_AUX_LOOP) || param != 0x5a) { retval = i8042_command(&param, 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) ...@@ -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;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment