]> git.hungrycats.org Git - linux/commitdiff
[PATCH] more keyboard stuff
authorAndries E. Brouwer <andries.brouwer@cwi.nl>
Sat, 6 Sep 2003 07:38:43 +0000 (00:38 -0700)
committerLinus Torvalds <torvalds@home.osdl.org>
Sat, 6 Sep 2003 07:38:43 +0000 (00:38 -0700)
I looked a bit more at the keyboard code and find a bug
and a probable bug.

(i) In case a synaptics touchpad has been detected, the comment says
    "disable AUX".  But we do not set the disable bit, but instead .and.
    with the bit - no doubt getting zero.  This must be a bug.

(ii) Directly above this is the suspicious comment "keyboard translation
     seems to be always off".  But every machine comes always up in
     translated scancode 2.  Translation is never off.  But wait! by
     mistake the above .and.  cleared the XLATE bit.

So, I think bug (i) explains mystery (ii).

However, note that this is code reading only.  I do not have the
hardware, so cannot test.

drivers/input/serio/i8042.c

index c7e6774242c34077410b8a982e5928b95bd85e85..5111c74c9bc29031f545157b65f7d82e42ea52ac 100644 (file)
@@ -619,17 +619,11 @@ static int __init i8042_check_mux(struct i8042_values *values)
        printk(KERN_INFO "i8042.c: Detected active multiplexing controller, rev %d.%d.\n",
                (~param >> 4) & 0xf, ~param & 0xf);
 
-/*
- * In MUX mode the keyboard translation seems to be always off.
- */
-       i8042_direct = 1;
-
 /*
  * Disable all muxed ports by disabling AUX.
  */
 
-       i8042_ctr &= I8042_CTR_AUXDIS;
+       i8042_ctr |= I8042_CTR_AUXDIS;
        i8042_ctr &= ~I8042_CTR_AUXINT;
 
        if (i8042_command(&i8042_ctr, I8042_CMD_CTL_WCTR))