Commit ed0a0a9c authored by Vojtech Pavlik's avatar Vojtech Pavlik

Ignore error 0xff - 'general error' in AUX wire test in i8042.c,

some mainboards (Andrew Morton's Dell) report that even everything
is okay with AUX. Also remove a check for very old AMI i8042's, which
could generate false positives on modern buggy mainboards.
parent 6923b9bd
...@@ -576,9 +576,12 @@ static int __init i8042_check_aux(struct i8042_values *values, struct serio *por ...@@ -576,9 +576,12 @@ static int __init i8042_check_aux(struct i8042_values *values, struct serio *por
/* /*
* External connection test - filters out AT-soldered PS/2 i8042's * External connection test - filters out AT-soldered PS/2 i8042's
* 0x00 - no error, 0x01-0x03 - clock/data stuck, 0xff - general error
* We ignore general error, since some chips report it even under normal
* operation.
*/ */
if (i8042_command(&param, I8042_CMD_AUX_TEST) || param) if (i8042_command(&param, I8042_CMD_AUX_TEST) || (param && param != 0xff))
return -1; return -1;
/* /*
...@@ -587,23 +590,11 @@ static int __init i8042_check_aux(struct i8042_values *values, struct serio *por ...@@ -587,23 +590,11 @@ static int __init i8042_check_aux(struct i8042_values *values, struct serio *por
if (i8042_command(&param, I8042_CMD_AUX_DISABLE)) if (i8042_command(&param, I8042_CMD_AUX_DISABLE))
return -1; return -1;
if (i8042_command(&param, I8042_CMD_CTL_RCTR) || (~param & I8042_CTR_AUXDIS)) if (i8042_command(&param, I8042_CMD_CTL_RCTR) || (~param & I8042_CTR_AUXDIS))
return -1; return -1;
if (i8042_command(&param, I8042_CMD_AUX_TEST) || param) {
/*
* We've got an old AMI i8042 with 'Bad Cache' commands.
*/
i8042_command(&param, I8042_CMD_AUX_ENABLE);
return -1;
}
if (i8042_command(&param, I8042_CMD_AUX_ENABLE)) if (i8042_command(&param, I8042_CMD_AUX_ENABLE))
return -1; return -1;
if (i8042_command(&param, I8042_CMD_CTL_RCTR) || (param & I8042_CTR_AUXDIS)) if (i8042_command(&param, I8042_CMD_CTL_RCTR) || (param & I8042_CTR_AUXDIS))
return -1; return -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