]> git.hungrycats.org Git - linux/commitdiff
Ignore error 0xff - 'general error' in AUX wire test in i8042.c,
authorVojtech Pavlik <vojtech@suse.cz>
Fri, 30 Aug 2002 13:22:23 +0000 (15:22 +0200)
committerVojtech Pavlik <vojtech@suse.cz>
Fri, 30 Aug 2002 13:22:23 +0000 (15:22 +0200)
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.

drivers/input/serio/i8042.c

index 215db40ac48d7f438a399a995fd18e16b22c451f..cb809626f5194d4b81db9ee2936cbb2affda31f7 100644 (file)
@@ -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
+ * 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;
 
 /*
@@ -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))
                return -1;
-
        if (i8042_command(&param, I8042_CMD_CTL_RCTR) || (~param & I8042_CTR_AUXDIS))
                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))
                return -1;
-
        if (i8042_command(&param, I8042_CMD_CTL_RCTR) || (param & I8042_CTR_AUXDIS))
                return -1;