X-Git-Url: http://www.pilppa.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=drivers%2Finput%2Fserio%2Fi8042.c;h=7c17377a65b96b99cb342158ad449d60c7f8619d;hb=bc95f3669f5e6f63cf0b84fe4922c3c6dd4aa775;hp=ff40b5cbbf3f042f9329bb51d4a2273a57b9b8f3;hpb=3d29cdff999c37b3876082278a8134a0642a02cd;p=linux-2.6-omap-h63xx.git diff --git a/drivers/input/serio/i8042.c b/drivers/input/serio/i8042.c index ff40b5cbbf3..7c17377a65b 100644 --- a/drivers/input/serio/i8042.c +++ b/drivers/input/serio/i8042.c @@ -553,7 +553,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 @@ -567,7 +568,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; } /*