Messages in this thread | ![/](/images/icornerl.gif) | | Date | Wed, 30 Jul 2003 02:25:08 +0200 | From | Andries Brouwer <> | Subject | Re: 2.6.0-test2 has i8042 mux problems |
| |
On Tue, Jul 29, 2003 at 03:51:04PM -0700, dean gaudet wrote:
> i've got a box on which 2.4.x works fine, but 2.6.0-test2 gets into a snit > when it's trying to initialize the i8042. i can get 2.6.0-test2 to boot > if i add "i8042_nomux".
> this system has an ali1563 (it's a development board for a new processor). > > serio/i8042.c: d3 -> i8042 (command) [61] > serio/i8042.c: f0 -> i8042 (parameter) [61] > serio/i8042.c: 0f <- i8042 (return) [61] > serio/i8042.c: d3 -> i8042 (command) [107] > serio/i8042.c: 56 -> i8042 (parameter) [107] > serio/i8042.c: a9 <- i8042 (return) [107] > serio/i8042.c: d3 -> i8042 (command) [154] > serio/i8042.c: a4 -> i8042 (parameter) [154] > serio/i8042.c: ee <- i8042 (return) [154] > i8042.c: Detected active multiplexing controller, rev 1.1.
The controller follows the synaptics mux protocol.
> serio/i8042.c: 90 -> i8042 (command) [248] > serio/i8042.c: a8 -> i8042 (command) [264] > serio/i8042.c: 91 -> i8042 (command) [279] > serio/i8042.c: a8 -> i8042 (command) [295] > serio/i8042.c: 92 -> i8042 (command) [311] > serio/i8042.c: a8 -> i8042 (command) [326] > serio/i8042.c: 93 -> i8042 (command) [342] > serio/i8042.c: a8 -> i8042 (command) [357]
Enable all Aux devices. Start investigating the first one.
> serio/i8042.c: 90 -> i8042 (command) [436] > serio/i8042.c: f2 -> i8042 (parameter) [436] > serio/i8042.c: fe <- i8042 (interrupt, aux0, 12, timeout) [480] > serio/i8042.c: 90 -> i8042 (command) [501] > serio/i8042.c: ed -> i8042 (parameter) [501] > serio/i8042.c: fe <- i8042 (interrupt, aux0, 12, timeout) [544]
No keyboard.
> serio/i8042.c: 90 -> i8042 (command) [629] > serio/i8042.c: f2 -> i8042 (parameter) [629] > serio/i8042.c: fe <- i8042 (interrupt, aux0, 12, timeout) [673]
No mouse. Only a port.
> serio: i8042 AUX0 port at 0x60,0x64 irq 12
Start investigating the second one. Same results.
> serio: i8042 AUX1 port at 0x60,0x64 irq 12
Start investigating the third one.
> serio/i8042.c: 92 -> i8042 (command) [1168] > serio/i8042.c: f2 -> i8042 (parameter) [1168] > serio/i8042.c: fe <- i8042 (interrupt, aux2, 12, bad parity) [1206] > atkbd.c: frame/parity error: 02
This time the keyboard is really unhappy. The kernel asks for resend. I think invoking undefined behaviour.
... > serio/i8042.c: 92 -> i8042 (command) [3242] > serio/i8042.c: fe -> i8042 (parameter) [3242] > serio/i8042.c: fe <- i8042 (interrupt, aux2, 0, bad parity) [3274] > atkbd.c: frame/parity error: 02 > serio/i8042.c: 92 -> i8042 (command) [3305] > serio/i8042.c: fe -> i8042 (parameter) [3305]
And then the kernel crashes... [with an interesting interrupt within interrupt crash, to be looked at]
> drivers/inp<1>Unable to handle kernel NULL pointer dereference at virtual address 0000001d
[Since you have some new experimental board, I wonder:
My docs - the numbering has changed, but today it is http://www.win.tue.nl/~aeb/linux/kbd/scancodes-8.html#kcc90 know about the commands 90-93 as Synaptics prefixes, but also about the commands 90-9f that set certain lines (on VIA chipsets).
Do you know anything about the innards? Is it supposed to follow this Synaptics protocol?]
Do things go slightly better if you comment out the line serio_write(serio, ATKBD_CMD_RESEND); in atkbd.c?
Andries
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| ![\](/images/icornerr.gif) |