2003-07-28 02:02:56

by dean gaudet

[permalink] [raw]
Subject: 2.6.0-test2 has i8042 mux problems

this was a bug i reported back a few versions as well -- and i don't think
i received any responses (nor from the maintainer).

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".

the mux initialization code seems kind of ... wonk -- it seems to write
values to the registers then read back and if the value is the same then
it assumes the mux is there. that seems way too likely to be broken in
situations when the mux isn't there... it'd be better to be looking for
some value which is different after writing.

the southbridge in this system is the ali1563. if it helps i can supply a
complete trace of in/out on ports 0x60 and 0x64.

thanks
-dean


Loading test..........................
BIOS data check successful
Linux version 2.6.0-test2 (root@zim) (gcc version 3.2.3 (Debian)) #1 Sun Jul 27 18:48:40 PDT 2003
[...snip...]
mice: PS/2 mouse device common for all mice
i8042.c: Detected active multiplexing controller, rev 1.1.
serio: i8042 AUX0 port at 0x60,0x64 irq 12
serio: i8042 AUX1 port at 0x60,0x64 irq 12
atkbd.c: frame/parity error: 02
atkbd.c: frame/parity error: 02
atkbd.c: frame/parity error: 02
atkbd.c: frame/parity error: 02
atkbd.c: frame/parity error: 02
atkbd.c: frame/parity error: 02
atkbd.c: frame/parity error: 02
atkbd.c: frame/parity error: 02
atkbd.c: frame/parity error: 02
atkbd.c: frame/parity error: 02
atkbd.c: frame/parity error: 02
atkbd.c: frame/parity error: 02
atkbd.c: frame/parity error: 02
atkbd.c: frame/parity error: 02
atkbd.c: frame/parity error: 02
atkbd.c: frame/parity error: 02
atkbd.c: frame/parity error: 02
atkbd.c: frame/parity error: 02
atkbd.c: frame/parity error: 02
bad: scheduling while atomic!
Call Trace:
[<c01191a9>] schedule+0x3b9/0x3c0
[<c01191e6>] preempt_schedule+0x36/0x50
[<c011d037>] printk+0x127/0x180
[<c02804cf>] atkbd_interrupt+0x1ff/0x230
[<c0124740>] do_timer+0xe0/0xf0
[<c0282fda>] serio_interrupt+0x5a/0x60
[<c02838d5>] i8042_interrupt+0x135/0x270
[<c010bb2e>] do_IRQ+0x11e/0x160
[<c0123e96>] mod_timer+0x136/0x190
[<c0234a3b>] poke_blanked_console+0x6b/0x80
[<c0233d32>] vt_console_print+0x212/0x300
[<c011cd00>] __call_console_drivers+0x60/0x70
[<c011cde5>] call_console_drivers+0x65/0x120
[<c021a544>] __delay+0x14/0x20
[<c02833ed>] i8042_wait_write+0x1d/0x40
[<c0283533>] i8042_command+0xb3/0xc0
[<c02835f2>] i8042_aux_write+0x52/0x70
[<c02804ef>] atkbd_interrupt+0x21f/0x230
[<c01242d6>] update_wall_time+0x16/0x40
[<c0282fda>] serio_interrupt+0x5a/0x60
[<c02838d5>] i8042_interrupt+0x135/0x270
[<c0123e96>] mod_timer+0x136/0x190
[<c0234a3b>] poke_blanked_console+0x6b/0x80
[<c0233d32>] vt_console_print+0x212/0x300
[<c011cd00>] __call_console_drivers+0x60/0x70
[<c011cde5>] call_console_drivers+0x65/0x120
[<c021a544>] __delay+0x14/0x20
[<c02833ed>] i8042_wait_write+0x1d/0x40
[<c0283533>] i8042_command+0xb3/0xc0
[<c02835f2>] i8042_aux_write+0x52/0x70
[<c02804ef>] atkbd_interrupt+0x21f/0x230
[<c01242d6>] update_wall_time+0x16/0x40
[<c0282fda>] serio_interrupt+0x5a/0x60
[<c02838d5>] i8042_interrupt+0x135/0x270
[<c0114835>] mark_offset_tsc+0x205/0x2a0
[<c0124466>] update_process_times+0x46/0x50
[<c01242d6>] update_wall_time+0x16/0x40
[<c0124740>] do_timer+0xe0/0xf0
[<c010fb28>] timer_interrupt+0xe8/0x130
[<c010b72b>] handle_IRQ_event+0x3b/0x70
[<c010bb2e>] do_IRQ+0x11e/0x160
[<c0109e68>] common_interrupt+0x18/0x20
[<c01191b0>] preempt_schedule+0x0/0x50
[<c0283533>] i8042_command+0xb3/0xc0
[<c02835f2>] i8042_aux_write+0x52/0x70
[<c02804ef>] atkbd_interrupt+0x21f/0x230
[<c0124740>] do_timer+0xe0/0xf0
[<c0282fda>] serio_interrupt+0x5a/0x60
[<c02838d5>] i8042_interrupt+0x135/0x270
[<c010bb2e>] do_IRQ+0x11e/0x160
[<c0114835>] mark_offset_tsc+0x205/0x2a0
[<c0124466>] update_process_times+0x46/0x50
[<c01242d6>] update_wall_time+0x16/0x40
[<c0124740>] do_timer+0xe0/0xf0
[<c010fb28>] timer_interrupt+0xe8/0x130
[<c010b72b>] handle_IRQ_event+0x3b/0x70
[<c010bb2e>] do_IRQ+0x11e/0x160
[<c0109e68>] common_interrupt+0x18/0x20
[<c01191b0>] preempt_schedule+0x0/0x50
[<c0283533>] i8042_command+0xb3/0xc0
[<c02835f2>] i8042_aux_write+0x52/0x70
[<c02804ef>] atkbd_interrupt+0x21f/0x230
[<c0282fda>] serio_interrupt+0x5a/0x60
[<c02838d5>] i8042_interrupt+0x135/0x270
[<c0123e96>] mod_timer+0x136/0x190
[<c0234a3b>] poke_blanked_console+0x6b/0x80
[<c0233d32>] vt_console_print+0x212/0x300
[<c011cd00>] __call_console_drivers+0x60/0x70
[<c011cde5>] call_console_drivers+0x65/0x120
[<c021a544>] __delay+0x14/0x20
[<c02833ed>] i8042_wait_write+0x1d/0x40
[<c0283533>] i8042_command+0xb3/0xc0
[<c02835f2>] i8042_aux_write+0x52/0x70
[<c02804ef>] atkbd_interrupt+0x21f/0x230
[<c0124740>] do_timer+0xe0/0xf0
[<c0282fda>] serio_interrupt+0x5a/0x60
[<c02838d5>] i8042_interrupt+0x135/0x270
[<c010bb2e>] do_IRQ+0x11e/0x160
[<c0123e96>] mod_timer+0x136/0x190
[<c0234a3b>] poke_blanked_console+0x6b/0x80
[<c0233d32>] vt_console_print+0x212/0x300
[<c011cd00>] __call_console_drivers+0x60/0x70
[<c011cde5>] call_console_drivers+0x65/0x120
[<c021a544>] __delay+0x14/0x20
[<c02833ed>] i8042_wait_write+0x1d/0x40
[<c0283533>] i8042_command+0xb3/0xc0
[<c02835f2>] i8042_aux_write+0x52/0x70
[<c02804ef>] atkbd_interrupt+0x21f/0x230
[<c01242d6>] update_wall_time+0x16/0x40
[<c0282fda>] serio_interrupt+0x5a/0x60
[<c02838d5>] i8042_interrupt+0x135/0x270
[<c0123e96>] mod_timer+0x136/0x190
[<c0234a3b>] poke_blanked_console+0x6b/0x80
[<c0233d32>] vt_console_print+0x212/0x300
[<c011cd00>] __call_console_drivers+0x60/0x70
[<c011cde5>] call_console_drivers+0x65/0x120
[<c021a544>] __delay+0x14/0x20
[<c02833ed>] i8042_wait_write+0x1d/0x40
[<c0283533>] i8042_command+0xb3/0xc0
[<c02835f2>] i8042_aux_write+0x52/0x70
[<c02804ef>] atkbd_interrupt+0x21f/0x230
[<c0124740>] do_timer+0xe0/0xf0
[<c0282fda>] serio_interrupt+0x5a/0x60
[<c02838d5>] i8042_interrupt+0x135/0x270
[<c010bb2e>] do_IRQ+0x11e/0x160
[<c0114835>] mark_offset_tsc+0x205/0x2a0
[<c0124466>] update_process_times+0x46/0x50
[<c01242d6>] update_wall_time+0x16/0x40
[<c0124740>] do_timer+0xe0/0xf0
[<c010fb28>] timer_interrupt+0xe8/0x130
[<c010b72b>] handle_IRQ_event+0x3b/0x70
[<c010bb2e>] do_IRQ+0x11e/0x160
[<c0109e8a>] apic_timer_interrupt+0x1a/0x20
[<c01191b0>] preempt_schedule+0x0/0x50
[<c0283533>] i8042_command+0xb3/0xc0
[<c02835f2>] i8042_aux_write+0x52/0x70
[<c02804ef>] atkbd_interrupt+0x21f/0x230
[<c0109e68>] common_interrupt+0x18/0x20
[<c0282fda>] serio_interrupt+0x5a/0x60
[<c02838d5>] i8042_interrupt+0x135/0x270
[<c0123e96>] mod_timer+0x136/0x190
[<c0234a3b>] poke_blanked_console+0x6b/0x80
[<c0233d32>] vt_console_print+0x212/0x300
[<c011cd00>] __call_console_drivers+0x60/0x70
[<c011cde5>] call_console_drivers+0x65/0x120
[<c0109e8a>] apic_timer_interrupt+0x1a/0x20
[<c02835f2>] i8042_aux_write+0x52/0x70
[<c02804ef>] atkbd_interrupt+0x21f/0x230
[<c0124740>] do_timer+0xe0/0xf0
[<c0282fda>] serio_interrupt+0x5a/0x60
[<c02838d5>] i8042_interrupt+0x135/0x270
[<c010bb2e>] do_IRQ+0x11e/0x160
[<c0123e96>] mod_timer+0x136/0x190
[<c0234a3b>] poke_blanked_console+0x6b/0x80
[<c0233d32>] vt_console_print+0x212/0x300
[<c011cd00>] __call_console_drivers+0x60/0x70
[<c011cde5>] call_console_drivers+0x65/0x120
[<c021a544>] __delay+0x14/0x20
[<c02833ed>] i8042_wait_write+0x1d/0x40
[<c0283533>] i8042_command+0xb3/0xc0
[<c02835f2>] i8042_aux_write+0x52/0x70
[<c02804ef>] atkbd_interrupt+0x21f/0x230
[<c01242d6>] update_wall_time+0x16/0x40
[<c0282fda>] serio_interrupt+0x5a/0x60
[<c02838d5>] i8042_interrupt+0x135/0x270
[<c0123e96>] mod_timer+0x136/0x190
[<c0234a3b>] poke_blanked_console+0x6b/0x80
[<c0233d32>] vt_console_print+0x212/0x300
[<c011cd00>] __call_console_drivers+0x60/0x70
[<c011cde5>] call_console_drivers+0x65/0x120
[<c021a544>] __delay+0x14/0x20
[<c02833ed>] i8042_wait_write+0x1d/0x40
[<c0283533>] i8042_command+0xb3/0xc0
[<c02835f2>] i8042_aux_write+0x52/0x70
[<c02804ef>] atkbd_interrupt+0x21f/0x230
[<c01242d6>] update_wall_time+0x16/0x40
[<c0282fda>] serio_interrupt+0x5a/0x60
[<c02838d5>] i8042_interrupt+0x135/0x270
[<c0114835>] mark_offset_tsc+0x205/0x2a0
[<c0124466>] update_process_times+0x46/0x50
[<c01242d6>] update_wall_time+0x16/0x40
[<c0124740>] do_timer+0xe0/0xf0
[<c010fb28>] timer_interrupt+0xe8/0x130
[<c010b72b>] handle_IRQ_event+0x3b/0x70
[<c010bb2e>] do_IRQ+0x11e/0x160
[<c0109e68>] common_interrupt+0x18/0x20
[<c01191b0>] preempt_schedule+0x0/0x50
[<c0283533>] i8042_command+0xb3/0xc0
[<c02835f2>] i8042_aux_write+0x52/0x70
[<c02804ef>] atkbd_interrupt+0x21f/0x230
[<c01242d6>] update_wall_time+0x16/0x40
[<c0282fda>] serio_interrupt+0x5a/0x60
[<c02838d5>] i8042_interrupt+0x135/0x270
[<c0123e96>] mod_timer+0x136/0x190
[<c0234a3b>] poke_blanked_console+0x6b/0x80
[<c0233d32>] vt_console_print+0x212/0x300
[<c011cd00>] __call_console_drivers+0x60/0x70
[<c011cde5>] call_console_drivers+0x65/0x120
[<c0109e8a>] apic_timer_interrupt+0x1a/0x20
[<c02835f2>] i8042_aux_write+0x52/0x70
[<c02804ef>] atkbd_interrupt+0x21f/0x230
[<c01242d6>] update_wall_time+0x16/0x40
[<c0282fda>] serio_interrupt+0x5a/0x60
[<c02838d5>] i8042_interrupt+0x135/0x270
[<c0123e96>] mod_timer+0x136/0x190
[<c0234a3b>] poke_blanked_console+0x6b/0x80
[<c0233d32>] vt_console_print+0x212/0x300
[<c011cd00>] __call_console_drivers+0x60/0x70
[<c011cde5>] call_console_drivers+0x65/0x120
[<c021a544>] __delay+0x14/0x20
[<c02833ed>] i8042_wait_write+0x1d/0x40
[<c0283533>] i8042_command+0xb3/0xc0
[<c02835f2>] i8042_aux_write+0x52/0x70
[<c02804ef>] atkbd_interrupt+0x21f/0x230
[<c0124740>] do_timer+0xe0/0xf0
[<c0282fda>] serio_interrupt+0x5a/0x60
[<c02838d5>] i8042_interrupt+0x135/0x270
[<c010bb2e>] do_IRQ+0x11e/0x160
[<c0123e96>] mod_timer+0x136/0x190
[<c0234a3b>] poke_blanked_console+0x6b/0x80
[<c0233d32>] vt_console_print+0x212/0x300
[<c011cd00>] __call_console_drivers+0x60/0x70
[<c011cde5>] call_console_drivers+0x65/0x120
[<c021a544>] __delay+0x14/0x20
[<c02833ed>] i8042_wait_write+0x1d/0x40
[<c0283533>] i8042_command+0xb3/0xc0
[<c02835f2>] i8042_aux_write+0x52/0x70
[<c02804ef>] atkbd_interrupt+0x21f/0x230
[<c01242d6>] update_wall_time+0x16/0x40
[<c0282fda>] serio_interrupt+0x5a/0x60
[<c02838d5>] i8042_interrupt+0x135/0x270
[<c0114835>] mark_offset_tsc+0x205/0x2a0
[<c0124466>] update_process_times+0x46/0x50
[<c01242d6>] update_wall_time+0x16/0x40
[<c0124740>] do_timer+0xe0/0xf0
[<c010fb28>] timer_interrupt+0xe8/0x130
[<c010b72b>] handle_IRQ_event+0x3b/0x70
[<c010bb2e>] do_IRQ+0x11e/0x160
[<c0109e68>] common_interrupt+0x18/0x20
[<c01191b0>] preempt_schedule+0x0/0x50
[<c0283533>] i8042_command+0xb3/0xc0
[<c02835f2>] i8042_aux_write+0x52/0x70
[<c02804ef>] atkbd_interrupt+0x21f/0x230
[<c0124740>] do_timer+0xe0/0xf0
[<c0282fda>] serio_interrupt+0x5a/0x60
[<c02838d5>] i8042_interrupt+0x135/0x270
[<c010bb2e>] do_IRQ+0x11e/0x160
[<c0114835>] mark_offset_tsc+0x205/0x2a0
[<c0124466>] update_process_times+0x46/0x50
[<c01242d6>] update_wall_time+0x16/0x40
[<c0124740>] do_timer+0xe0/0xf0
[<c010fb28>] timer_interrupt+0xe8/0x130
[<c010b72b>] handle_IRQ_event+0x3b/0x70
[<c010bb2e>] do_IRQ+0x11e/0x160
[<c0109e8a>] apic_timer_interrupt+0x1a/0x20
[<c02835f2>] i8042_aux_write+0x52/0x70
[<c02804ef>] atkbd_interrupt+0x21f/0x230
[<c0124740>] do_timer+0xe0/0xf0
[<c0282fda>] serio_interrupt+0x5a/0x60
[<c02838d5>] i8042_interrupt+0x135/0x270
[<c010bb2e>] do_IRQ+0x11e/0x160
[<c0123e96>] mod_timer+0x136/0x190
[<c0234a3b>] poke_blanked_console+0x6b/0x80
[<c0233d32>] vt_console_print+0x212/0x300
[<c011cd00>] __call_console_drivers+0x60/0x70
[<c011cde5>] call_console_drivers+0x65/0x120
[<c021a544>] __delay+0x14/0x20
[<c02833ed>] i8042_wait_write+0x1d/0x40
[<c0283533>] i8042_command+0xb3/0xc0
[<c02835f2>] i8042_aux_write+0x52/0x70
[<c02804ef>] atkbd_interrupt+0x21f/0x230
[<c0282fda>] serio_interrupt+0x5a/0x60
[<c02838d5>] i8042_interrupt+0x135/0x270
[<c0137e4d>] __alloc_pages+0x8d/0x340
[<c0114835>] mark_offset_tsc+0x205/0x2a0
[<c0124466>] update_process_times+0x46/0x50
[<c01242d6>] update_wall_time+0x16/0x40
[<c0124740>] do_timer+0xe0/0xf0
[<c010fb28>] timer_interrupt+0xe8/0x130
[<c010b72b>] handle_IRQ_event+0x3b/0x70
[<c010bb2e>] do_IRQ+0x11e/0x160
[<c0109e68>] common_interrupt+0x18/0x20
[<c010b72b>] handle_IRQ_event+0x3b/0x70
[<c010baac>] do_IRQ+0x9c/0x160
[<c0109e68>] common_interrupt+0x18/0x20
[<c01148e2>] delay_tsc+0x12/0x20
[<c021a544>] __delay+0x14/0x20
[<c028055c>] atkbd_sendbyte+0x5c/0xa0
[<c0280753>] atkbd_command+0x1b3/0x1c0
[<c02809f3>] atkbd_probe+0x33/0x160
[<c0283252>] serio_open+0x12/0x30
[<c0280e22>] atkbd_connect+0x292/0x300
[<c0109e68>] common_interrupt+0x18/0x20
[<c0282d0a>] serio_find_dev+0x6a/0x70
[<c0283038>] serio_register_port+0x58/0x70
[<c0398f3b>] i8042_port_register+0x5b/0x90
[<c0399243>] i8042_init+0x143/0x150
[<c038080b>] do_initcalls+0x2b/0xa0
[<c012bd32>] init_workqueues+0x12/0x30
[<c01050a6>] init+0x36/0x190
[<c0105070>] init+0x0/0x190
[<c0107429>] kernel_thread_helper+0x5/0xc

Unable to handle kernel paging request at virtual address 00ca8108
printing eip:
c0118e89
*pde = 00000000
Oops: 0002 [#1]
CPU: 0
EIP: 0060:[<c0118e89>] Not tainted
EFLAGS: 00010016
EIP is at schedule+0x99/0x3c0
eax: 7481e850 ebx: c0107429 ecx: c0107449 edx: 89000000
esi: 00ca8108 edi: c03d31c0 ebp: dbe9204c esp: dbe92024
ds: 007b es: 007b ss: 0068
Process (pid: -605094084, threadinfo=dbe90000 task=dbeefec0)
Stack: c02ff5e0 00000002 00000000 00000010 00000002 00000000 00000001 dbe92000
00000246 00000020 dbe92058 c01191e6 c03d3f80 dbe9208c c011d037 0000000a
00000400 c03247c2 dbe9209c 00000000 00000001 00000000 dbe9209c c03eaa90
Call Trace:
[<c01191e6>] preempt_schedule+0x36/0x50
[<c011d037>] printk+0x127/0x180
[<c02804cf>] atkbd_interrupt+0x1ff/0x230
[<c0124740>] do_timer+0xe0/0xf0
[<c0282fda>] serio_interrupt+0x5a/0x60
[<c02838d5>] i8042_interrupt+0x135/0x270
[<c010bb2e>] do_IRQ+0x11e/0x160
[<c0123e96>] mod_timer+0x136/0x190
[<c0234a3b>] poke_blanked_console+0x6b/0x80
[<c0233d32>] vt_console_print+0x212/0x300
[<c011cd00>] __call_console_drivers+0x60/0x70
[<c011cde5>] call_console_drivers+0x65/0x120
[<c021a544>] __delay+0x14/0x20
[<c02833ed>] i8042_wait_write+0x1d/0x40
[<c0283533>] i8042_command+0xb3/0xc0
[<c02835f2>] i8042_aux_write+0x52/0x70
[<c02804ef>] atkbd_interrupt+0x21f/0x230
[<c01242d6>] update_wall_time+0x16/0x40
[<c0282fda>] serio_interrupt+0x5a/0x60
[<c02838d5>] i8042_interrupt+0x135/0x270
[<c0123e96>] mod_timer+0x136/0x190
[<c0234a3b>] poke_blanked_console+0x6b/0x80
[<c0233d32>] vt_console_print+0x212/0x300
[<c011cd00>] __call_console_drivers+0x60/0x70
[<c011cde5>] call_console_drivers+0x65/0x120
[<c021a544>] __delay+0x14/0x20
[<c02833ed>] i8042_wait_write+0x1d/0x40
[<c0283533>] i8042_command+0xb3/0xc0
[<c02835f2>] i8042_aux_write+0x52/0x70
[<c02804ef>] atkbd_interrupt+0x21f/0x230
[<c01242d6>] update_wall_time+0x16/0x40
[<c0282fda>] serio_interrupt+0x5a/0x60
[<c02838d5>] i8042_interrupt+0x135/0x270
[<c0114835>] mark_offset_tsc+0x205/0x2a0
[<c0124466>] update_process_times+0x46/0x50
[<c01242d6>] update_wall_time+0x16/0x40
[<c0124740>] do_timer+0xe0/0xf0
[<c010fb28>] timer_interrupt+0xe8/0x130
[<c010b72b>] handle_IRQ_event+0x3b/0x70
[<c010bb2e>] do_IRQ+0x11e/0x160
[<c0109e68>] common_interrupt+0x18/0x20
[<c01191b0>] preempt_schedule+0x0/0x50
[<c0283533>] i8042_command+0xb3/0xc0
[<c02835f2>] i8042_aux_write+0x52/0x70
[<c02804ef>] atkbd_interrupt+0x21f/0x230
[<c0124740>] do_timer+0xe0/0xf0
[<c0282fda>] serio_interrupt+0x5a/0x60
[<c02838d5>] i8042_interrupt+0x135/0x270
[<c010bb2e>] do_IRQ+0x11e/0x160
[<c0114835>] mark_offset_tsc+0x205/0x2a0
[<c0124466>] update_process_times+0x46/0x50
[<c01242d6>] update_wall_time+0x16/0x40
[<c0124740>] do_timer+0xe0/0xf0
[<c010fb28>] timer_interrupt+0xe8/0x130
[<c010b72b>] handle_IRQ_event+0x3b/0x70
[<c010bb2e>] do_IRQ+0x11e/0x160
[<c0109e68>] common_interrupt+0x18/0x20
[<c01191b0>] preempt_schedule+0x0/0x50
[<c0283533>] i8042_command+0xb3/0xc0
[<c02835f2>] i8042_aux_write+0x52/0x70
[<c02804ef>] atkbd_interrupt+0x21f/0x230
[<c0282fda>] serio_interrupt+0x5a/0x60
[<c02838d5>] i8042_interrupt+0x135/0x270
[<c0123e96>] mod_timer+0x136/0x190
[<c0234a3b>] poke_blanked_console+0x6b/0x80
[<c0233d32>] vt_console_print+0x212/0x300
[<c011cd00>] __call_console_drivers+0x60/0x70
[<c011cde5>] call_console_drivers+0x65/0x120
[<c021a544>] __delay+0x14/0x20
[<c02833ed>] i8042_wait_write+0x1d/0x40
[<c0283533>] i8042_command+0xb3/0xc0
[<c02835f2>] i8042_aux_write+0x52/0x70
[<c02804ef>] atkbd_interrupt+0x21f/0x230
[<c0124740>] do_timer+0xe0/0xf0
[<c0282fda>] serio_interrupt+0x5a/0x60
[<c02838d5>] i8042_interrupt+0x135/0x270
[<c010bb2e>] do_IRQ+0x11e/0x160
[<c0123e96>] mod_timer+0x136/0x190
[<c0234a3b>] poke_blanked_console+0x6b/0x80
[<c0233d32>] vt_console_print+0x212/0x300
[<c011cd00>] __call_console_drivers+0x60/0x70
[<c011cde5>] call_console_drivers+0x65/0x120
[<c021a544>] __delay+0x14/0x20
[<c02833ed>] i8042_wait_write+0x1d/0x40
[<c0283533>] i8042_command+0xb3/0xc0
[<c02835f2>] i8042_aux_write+0x52/0x70
[<c02804ef>] atkbd_interrupt+0x21f/0x230
[<c01242d6>] update_wall_time+0x16/0x40
[<c0282fda>] serio_interrupt+0x5a/0x60
[<c02838d5>] i8042_interrupt+0x135/0x270
[<c0123e96>] mod_timer+0x136/0x190
[<c0234a3b>] poke_blanked_console+0x6b/0x80
[<c0233d32>] vt_console_print+0x212/0x300
[<c011cd00>] __call_console_drivers+0x60/0x70
[<c011cde5>] call_console_drivers+0x65/0x120
[<c021a544>] __delay+0x14/0x20
[<c02833ed>] i8042_wait_write+0x1d/0x40
[<c0283533>] i8042_command+0xb3/0xc0
[<c02835f2>] i8042_aux_write+0x52/0x70
[<c02804ef>] atkbd_interrupt+0x21f/0x230
[<c0124740>] do_timer+0xe0/0xf0
[<c0282fda>] serio_interrupt+0x5a/0x60
[<c02838d5>] i8042_interrupt+0x135/0x270
[<c010bb2e>] do_IRQ+0x11e/0x160
[<c0114835>] mark_offset_tsc+0x205/0x2a0
[<c0124466>] update_process_times+0x46/0x50
[<c01242d6>] update_wall_time+0x16/0x40
[<c0124740>] do_timer+0xe0/0xf0
[<c010fb28>] timer_interrupt+0xe8/0x130
[<c010b72b>] handle_IRQ_event+0x3b/0x70
[<c010bb2e>] do_IRQ+0x11e/0x160
[<c0109e8a>] apic_timer_interrupt+0x1a/0x20
[<c01191b0>] preempt_schedule+0x0/0x50
[<c0283533>] i8042_command+0xb3/0xc0
[<c02835f2>] i8042_aux_write+0x52/0x70
[<c02804ef>] atkbd_interrupt+0x21f/0x230
[<c0109e68>] common_interrupt+0x18/0x20
[<c0282fda>] serio_interrupt+0x5a/0x60
[<c02838d5>] i8042_interrupt+0x135/0x270
[<c0123e96>] mod_timer+0x136/0x190
[<c0234a3b>] poke_blanked_console+0x6b/0x80
[<c0233d32>] vt_console_print+0x212/0x300
[<c011cd00>] __call_console_drivers+0x60/0x70
[<c011cde5>] call_console_drivers+0x65/0x120
[<c0109e8a>] apic_timer_interrupt+0x1a/0x20
[<c02835f2>] i8042_aux_write+0x52/0x70
[<c02804ef>] atkbd_interrupt+0x21f/0x230
[<c0124740>] do_timer+0xe0/0xf0
[<c0282fda>] serio_interrupt+0x5a/0x60
[<c02838d5>] i8042_interrupt+0x135/0x270
[<c010bb2e>] do_IRQ+0x11e/0x160
[<c0123e96>] mod_timer+0x136/0x190
[<c0234a3b>] poke_blanked_console+0x6b/0x80
[<c0233d32>] vt_console_print+0x212/0x300
[<c011cd00>] __call_console_drivers+0x60/0x70
[<c011cde5>] call_console_drivers+0x65/0x120
[<c021a544>] __delay+0x14/0x20
[<c02833ed>] i8042_wait_write+0x1d/0x40
[<c0283533>] i8042_command+0xb3/0xc0
[<c02835f2>] i8042_aux_write+0x52/0x70
[<c02804ef>] atkbd_interrupt+0x21f/0x230
[<c01242d6>] update_wall_time+0x16/0x40
[<c0282fda>] serio_interrupt+0x5a/0x60
[<c02838d5>] i8042_interrupt+0x135/0x270
[<c0123e96>] mod_timer+0x136/0x190
[<c0234a3b>] poke_blanked_console+0x6b/0x80
[<c0233d32>] vt_console_print+0x212/0x300
[<c011cd00>] __call_console_drivers+0x60/0x70
[<c011cde5>] call_console_drivers+0x65/0x120
[<c021a544>] __delay+0x14/0x20
[<c02833ed>] i8042_wait_write+0x1d/0x40
[<c0283533>] i8042_command+0xb3/0xc0
[<c02835f2>] i8042_aux_write+0x52/0x70
[<c02804ef>] atkbd_interrupt+0x21f/0x230
[<c01242d6>] update_wall_time+0x16/0x40
[<c0282fda>] serio_interrupt+0x5a/0x60
[<c02838d5>] i8042_interrupt+0x135/0x270
[<c0114835>] mark_offset_tsc+0x205/0x2a0
[<c0124466>] update_process_times+0x46/0x50
[<c01242d6>] update_wall_time+0x16/0x40
[<c0124740>] do_timer+0xe0/0xf0
[<c010fb28>] timer_interrupt+0xe8/0x130
[<c010b72b>] handle_IRQ_event+0x3b/0x70
[<c010bb2e>] do_IRQ+0x11e/0x160
[<c0109e68>] common_interrupt+0x18/0x20
[<c01191b0>] preempt_schedule+0x0/0x50
[<c0283533>] i8042_command+0xb3/0xc0
[<c02835f2>] i8042_aux_write+0x52/0x70
[<c02804ef>] atkbd_interrupt+0x21f/0x230
[<c01242d6>] update_wall_time+0x16/0x40
[<c0282fda>] serio_interrupt+0x5a/0x60
[<c02838d5>] i8042_interrupt+0x135/0x270
[<c0123e96>] mod_timer+0x136/0x190
[<c0234a3b>] poke_blanked_console+0x6b/0x80
[<c0233d32>] vt_console_print+0x212/0x300
[<c011cd00>] __call_console_drivers+0x60/0x70
[<c011cde5>] call_console_drivers+0x65/0x120
[<c0109e8a>] apic_timer_interrupt+0x1a/0x20
[<c02835f2>] i8042_aux_write+0x52/0x70
[<c02804ef>] atkbd_interrupt+0x21f/0x230
[<c01242d6>] update_wall_time+0x16/0x40
[<c0282fda>] serio_interrupt+0x5a/0x60
[<c02838d5>] i8042_interrupt+0x135/0x270
[<c0123e96>] mod_timer+0x136/0x190
[<c0234a3b>] poke_blanked_console+0x6b/0x80
[<c0233d32>] vt_console_print+0x212/0x300
[<c011cd00>] __call_console_drivers+0x60/0x70
[<c011cde5>] call_console_drivers+0x65/0x120
[<c021a544>] __delay+0x14/0x20
[<c02833ed>] i8042_wait_write+0x1d/0x40
[<c0283533>] i8042_command+0xb3/0xc0
[<c02835f2>] i8042_aux_write+0x52/0x70
[<c02804ef>] atkbd_interrupt+0x21f/0x230
[<c0124740>] do_timer+0xe0/0xf0
[<c0282fda>] serio_interrupt+0x5a/0x60
[<c02838d5>] i8042_interrupt+0x135/0x270
[<c010bb2e>] do_IRQ+0x11e/0x160
[<c0123e96>] mod_timer+0x136/0x190
[<c0234a3b>] poke_blanked_console+0x6b/0x80
[<c0233d32>] vt_console_print+0x212/0x300
[<c011cd00>] __call_console_drivers+0x60/0x70
[<c011cde5>] call_console_drivers+0x65/0x120
[<c021a544>] __delay+0x14/0x20
[<c02833ed>] i8042_wait_write+0x1d/0x40
[<c0283533>] i8042_command+0xb3/0xc0
[<c02835f2>] i8042_aux_write+0x52/0x70
[<c02804ef>] atkbd_interrupt+0x21f/0x230
[<c01242d6>] update_wall_time+0x16/0x40
[<c0282fda>] serio_interrupt+0x5a/0x60
[<c02838d5>] i8042_interrupt+0x135/0x270
[<c0114835>] mark_offset_tsc+0x205/0x2a0
[<c0124466>] update_process_times+0x46/0x50
[<c01242d6>] update_wall_time+0x16/0x40
[<c0124740>] do_timer+0xe0/0xf0
[<c010fb28>] timer_interrupt+0xe8/0x130
[<c010b72b>] handle_IRQ_event+0x3b/0x70
[<c010bb2e>] do_IRQ+0x11e/0x160
[<c0109e68>] common_interrupt+0x18/0x20
[<c01191b0>] preempt_schedule+0x0/0x50
[<c0283533>] i8042_command+0xb3/0xc0
[<c02835f2>] i8042_aux_write+0x52/0x70
[<c02804ef>] atkbd_interrupt+0x21f/0x230
[<c0124740>] do_timer+0xe0/0xf0
[<c0282fda>] serio_interrupt+0x5a/0x60
[<c02838d5>] i8042_interrupt+0x135/0x270
[<c010bb2e>] do_IRQ+0x11e/0x160
[<c0114835>] mark_offset_tsc+0x205/0x2a0
[<c0124466>] update_process_times+0x46/0x50
[<c01242d6>] update_wall_time+0x16/0x40
[<c0124740>] do_timer+0xe0/0xf0
[<c010fb28>] timer_interrupt+0xe8/0x130
[<c010b72b>] handle_IRQ_event+0x3b/0x70
[<c010bb2e>] do_IRQ+0x11e/0x160
[<c0109e8a>] apic_timer_interrupt+0x1a/0x20
[<c02835f2>] i8042_aux_write+0x52/0x70
[<c02804ef>] atkbd_interrupt+0x21f/0x230
[<c0124740>] do_timer+0xe0/0xf0
[<c0282fda>] serio_interrupt+0x5a/0x60
[<c02838d5>] i8042_interrupt+0x135/0x270
[<c010bb2e>] do_IRQ+0x11e/0x160
[<c0123e96>] mod_timer+0x136/0x190
[<c0234a3b>] poke_blanked_console+0x6b/0x80
[<c0233d32>] vt_console_print+0x212/0x300
[<c011cd00>] __call_console_drivers+0x60/0x70
[<c011cde5>] call_console_drivers+0x65/0x120
[<c021a544>] __delay+0x14/0x20
[<c02833ed>] i8042_wait_write+0x1d/0x40
[<c0283533>] i8042_command+0xb3/0xc0
[<c02835f2>] i8042_aux_write+0x52/0x70
[<c02804ef>] atkbd_interrupt+0x21f/0x230
[<c0282fda>] serio_interrupt+0x5a/0x60
[<c02838d5>] i8042_interrupt+0x135/0x270
[<c0137e4d>] __alloc_pages+0x8d/0x340
[<c0114835>] mark_offset_tsc+0x205/0x2a0
[<c0124466>] update_process_times+0x46/0x50
[<c01242d6>] update_wall_time+0x16/0x40
[<c0124740>] do_timer+0xe0/0xf0
[<c010fb28>] timer_interrupt+0xe8/0x130
[<c010b72b>] handle_IRQ_event+0x3b/0x70
[<c010bb2e>] do_IRQ+0x11e/0x160
[<c0109e68>] common_interrupt+0x18/0x20
[<c010b72b>] handle_IRQ_event+0x3b/0x70
[<c010baac>] do_IRQ+0x9c/0x160
[<c0109e68>] common_interrupt+0x18/0x20
[<c01148e2>] delay_tsc+0x12/0x20
[<c021a544>] __delay+0x14/0x20
[<c028055c>] atkbd_sendbyte+0x5c/0xa0
[<c0280753>] atkbd_command+0x1b3/0x1c0
[<c02809f3>] atkbd_probe+0x33/0x160
[<c0283252>] serio_open+0x12/0x30
[<c0280e22>] atkbd_connect+0x292/0x300
[<c0109e68>] common_interrupt+0x18/0x20
[<c0282d0a>] serio_find_dev+0x6a/0x70
[<c0283038>] serio_register_port+0x58/0x70
[<c0398f3b>] i8042_port_register+0x5b/0x90
[<c0399243>] i8042_init+0x143/0x150
[<c038080b>] do_initcalls+0x2b/0xa0
[<c012bd32>] init_workqueues+0x12/0x30
[<c01050a6>] init+0x36/0x190
[<c0105070>] init+0x0/0x190
[<c0107429>] kernel_thread_helper+0x5/0xc

Code: ff 0e 8b 51 04 8b 43 20 89 50 04 89 02 c7 41 04 00 02 20 00
<0>Kernel panic: Fatal exception in interrupt
In interrupt handler - not syncing
<1>Unable to handle kernel NULL pointer dereference at virtual address 00000000
printing eip:
c0125736
*pde = 00000000
Oops: 0002 [#2]
CPU: 0
EIP: 0060:[<c0125736>] Not tainted
EFLAGS: 00010002
EIP is at send_signal+0x56/0x150
eax: 00000000 ebx: 00000001 ecx: dbdb4910 edx: 00000010
esi: dbef0474 edi: 00000018 ebp: dbe91dcc esp: dbe91db0
ds: 007b es: 007b ss: 0068
Process (pid: -605094084, threadinfo=dbe90000 task=dbeefec0)
Stack: dbee795c 00000020 dbe91de0 00000000 dbeefec0 00000018 00000000 dbe91df0
c01258ae 00000018 00000001 dbef0474 00000000 00000002 dbe90000 00000000
dbe91e10 c0126368 00000018 00000001 dbeefec0 00000001 dbeefec0 00000000
Call Trace:
[<c01258ae>] specific_send_sig_info+0x7e/0x140
[<c0126368>] send_sig_info+0x38/0x70
[<c012440c>] update_one_process+0x10c/0x120
[<c0124455>] update_process_times+0x35/0x50
[<c0124695>] do_timer+0x35/0xf0
[<c010fa92>] timer_interrupt+0x52/0x130
[<c010b72b>] handle_IRQ_event+0x3b/0x70
[<c010baac>] do_IRQ+0x9c/0x160
[<c0109e68>] common_interrupt+0x18/0x20
[<c011c810>] panic+0xe0/0x110
[<c010a594>] die+0xd4/0xf0
[<c011788d>] do_page_fault+0x15d/0x4dc
[<c01245a2>] run_timer_softirq+0x112/0x1c0
[<c0119312>] __wake_up_locked+0x22/0x30
[<c0108463>] __down_trylock+0x53/0x64
[<c01084a2>] __down_failed_trylock+0xa/0x10
[<c011d052>] printk+0x142/0x180
[<c0107429>] kernel_thread_helper+0x5/0xc
[<c0117730>] do_page_fault+0x0/0x4dc
[<c0109f05>] error_code+0x2d/0x38
[<c0107429>] kernel_thread_helper+0x5/0xc
[<c0107449>] kernel_thread+0x19/0x90

Code: 89 08 89 41 04 74 65 83 fb 01 74 3f 8b 53 08 8d 41 10 85 d2
<0>Kernel panic: Fatal exception in interrupt
In interrupt handler - not syncing


2003-07-28 03:44:10

by Andries Brouwer

[permalink] [raw]
Subject: Re: 2.6.0-test2 has i8042 mux problems

On Sun, Jul 27, 2003 at 07:13:26PM -0700, dean gaudet wrote:

> this was a bug i reported back a few versions as well -- and i don't think
> i received any responses (nor from the maintainer).
>
> 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".
>
> the mux initialization code seems kind of ... wonk -- it seems to write
> values to the registers then read back and if the value is the same then
> it assumes the mux is there. that seems way too likely to be broken in
> situations when the mux isn't there... it'd be better to be looking for
> some value which is different after writing.

No, it writes f0, 56, a4 and if it gets f0, 56, and not a4, then it assumes
there is a mux.

[This is a Synaptics convention.]

What hardware do you have? And what is the conversation?

2003-07-28 05:27:30

by Claas Langbehn

[permalink] [raw]
Subject: Re: 2.6.0-test2 has i8042 mux problems

Hello Dean!


I am not sure, if i understand it, but here I could not use my old
keyboard with kernel 2.6.0-test1. The kernel switched off the keyboard
conntroller while booting.
My keyboard is about 10-12 years old, but it always worked.
There should be a switch for lilo/grub to override the testing.

I have got a via KT400a chipset. The keyboard is an AT/XT-switchable
keaboard.
With a newer PS2-Keyboard it works.


bye, claas

2003-07-28 11:21:55

by Andries Brouwer

[permalink] [raw]
Subject: Re: 2.6.0-test2 has i8042 mux problems

On Mon, Jul 28, 2003 at 07:26:14AM +0200, Claas Langbehn wrote:

> I am not sure, if i understand it, but here I could not use my old
> keyboard with kernel 2.6.0-test1. The kernel switched off the keyboard
> controller while booting.
> My keyboard is about 10-12 years old, but it always worked.
> There should be a switch for lilo/grub to override the testing.
>
> I have got a via KT400a chipset. The keyboard is an AT/XT-switchable
> keyboard. With a newer PS2-Keyboard it works.

Interesting. Yes, the new keyboard driver knows far too much about
keyboards, and that knowledge is right only in 98% of the cases.
No doubt we'll be forced to back out a lot of probing done now.

Nevertheless it would be interesting to see precisely what happens.
Could you try to change the #undef DEBUG in drivers/input/serio/i8042.c
into #define DEBUG and report what output you get at boot time?

2003-07-28 14:16:32

by Stefan Reinauer

[permalink] [raw]
Subject: Re: 2.6.0-test2 has i8042 mux problems

* dean gaudet <[email protected]> [030728 04:13]:
> 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".
>
> the mux initialization code seems kind of ... wonk -- it seems to write
> values to the registers then read back and if the value is the same then
> it assumes the mux is there. that seems way too likely to be broken in
> situations when the mux isn't there... it'd be better to be looking for
> some value which is different after writing.
>
> the southbridge in this system is the ali1563. if it helps i can supply a
> complete trace of in/out on ports 0x60 and 0x64.

I can confirm this. I have an Amilo A laptop with the following sb:
00:07.0 ISA bridge: ALi Corporation M1533 PCI to ISA Bridge [Aladdin IV]

without "i8042_nomux" the keyboard is recognized fine, but no mouse is
found on the mux. With the option everything works fine.

Stepan


2003-07-28 16:23:08

by dean gaudet

[permalink] [raw]
Subject: Re: 2.6.0-test2 has i8042 mux problems

On Mon, 28 Jul 2003, Stefan Reinauer wrote:

> * dean gaudet <[email protected]> [030728 04:13]:
> > the southbridge in this system is the ali1563. if it helps i can supply a
> > complete trace of in/out on ports 0x60 and 0x64.
>
> I can confirm this. I have an Amilo A laptop with the following sb:
> 00:07.0 ISA bridge: ALi Corporation M1533 PCI to ISA Bridge [Aladdin IV]
>
> without "i8042_nomux" the keyboard is recognized fine, but no mouse is
> found on the mux. With the option everything works fine.

that's slightly different than what i get without i8042_nomux, and a
keyboard & mouse plugged in, the system crashes and burns badly during
boot. without the keyboard and mouse it boots fine.

with i8042_nomux it's a lot happier.

my system is a test board for a new processor with the ali1563 -- which is
a newer hypertransport variant of the 1533/1535. i'm not sure yet if
there are production boards with the 1563. but it's nice to know it
happens with your 1533 as well.

andries -- i'll send you a copy of the in/out traffic (it's a bit large
for posting).

-dean

2003-07-28 20:42:50

by Claas Langbehn

[permalink] [raw]
Subject: Re: 2.6.0-test2 has i8042 mux problems

> Interesting. Yes, the new keyboard driver knows far too much about
> keyboards, and that knowledge is right only in 98% of the cases.
> No doubt we'll be forced to back out a lot of probing done now.
>
> Nevertheless it would be interesting to see precisely what happens.
> Could you try to change the #undef DEBUG in drivers/input/serio/i8042.c
> into #define DEBUG and report what output you get at boot time?

This is the only debug message i can see without keyboard.

serio: i8042 AUX Port at 0x60,0x64 irq 12
input: AT set2 keyboard on isa0060/serio0
serio i8042 KBD port at 0x60,0x64 irq 1

Can you tell me how to force the driver to enable my keyboard anyways?
It would be great, because booting is a pain right now.

Regards, claas

2003-07-28 21:12:25

by Claas Langbehn

[permalink] [raw]
Subject: Re: 2.6.0-test2 has i8042 mux problems

Hello!

its strange. After switching debug on, it suddenly works.
Below my debug info.

Regards, claas



>From syslog:
22:53:08 kernel: drivers/input/serio/i8042.c: 20 -> i8042 (command) [0]
22:53:08 kernel: drivers/input/serio/i8042.c: 67 <- i8042 (return) [0]
22:53:08 kernel: drivers/input/serio/i8042.c: 60 -> i8042 (command) [0]
22:53:08 kernel: drivers/input/serio/i8042.c: 76 -> i8042 (parameter) [0]
22:53:08 kernel: drivers/input/serio/i8042.c: d3 -> i8042 (command) [0]
22:53:08 kernel: drivers/input/serio/i8042.c: f0 -> i8042 (parameter) [0]
22:53:08 kernel: drivers/input/serio/i8042.c: 0f <- i8042 (return) [0]
22:53:08 kernel: drivers/input/serio/i8042.c: d3 -> i8042 (command) [0]
22:53:08 kernel: drivers/input/serio/i8042.c: 56 -> i8042 (parameter) [0]
22:53:08 kernel: drivers/input/serio/i8042.c: a9 <- i8042 (return) [0]
22:53:08 kernel: drivers/input/serio/i8042.c: d3 -> i8042 (command) [0]
22:53:08 kernel: drivers/input/serio/i8042.c: a4 -> i8042 (parameter) [0]
22:53:08 kernel: drivers/input/serio/i8042.c: 5b <- i8042 (return) [0]
22:53:08 kernel: drivers/input/serio/i8042.c: d3 -> i8042 (command) [0]
22:53:08 kernel: drivers/input/serio/i8042.c: 5a -> i8042 (parameter) [0]
22:53:08 kernel: drivers/input/serio/i8042.c: a5 <- i8042 (return) [0]
22:53:08 kernel: drivers/input/serio/i8042.c: a7 -> i8042 (command) [0]
22:53:08 kernel: drivers/input/serio/i8042.c: 20 -> i8042 (command) [0]
22:53:08 kernel: drivers/input/serio/i8042.c: 76 <- i8042 (return) [0]
22:53:08 kernel: drivers/input/serio/i8042.c: a8 -> i8042 (command) [0]
22:53:08 kernel: drivers/input/serio/i8042.c: 20 -> i8042 (command) [0]
22:53:08 kernel: drivers/input/serio/i8042.c: 56 <- i8042 (return) [0]
22:53:08 kernel: drivers/input/serio/i8042.c: 60 -> i8042 (command) [0]
22:53:08 kernel: drivers/input/serio/i8042.c: 74 -> i8042 (parameter) [0]
22:53:08 kernel: drivers/input/serio/i8042.c: 60 -> i8042 (command) [0]
22:53:08 kernel: drivers/input/serio/i8042.c: 54 -> i8042 (parameter) [0]
22:53:08 kernel: drivers/input/serio/i8042.c: 60 -> i8042 (command) [0]
22:53:08 kernel: drivers/input/serio/i8042.c: 56 -> i8042 (parameter) [0]
22:53:08 kernel: drivers/input/serio/i8042.c: d4 -> i8042 (command) [0]
22:53:08 kernel: drivers/input/serio/i8042.c: f2 -> i8042 (parameter) [0]
22:53:08 kernel: drivers/input/serio/i8042.c: d4 -> i8042 (command) [99]
22:53:08 kernel: drivers/input/serio/i8042.c: ed -> i8042 (parameter) [99]
22:53:08 kernel: drivers/input/serio/i8042.c: fe <- i8042 (interrupt, aux, 0, timeout) [99]
22:53:08 kernel: drivers/input/serio/i8042.c: 60 -> i8042 (command) [99]
22:53:08 kernel: drivers/input/serio/i8042.c: 54 -> i8042 (parameter) [99]
22:53:08 kernel: drivers/input/serio/i8042.c: fe <- i8042 (flush, kbd) [113]
22:53:08 kernel: drivers/input/serio/i8042.c: 60 -> i8042 (command) [113]
22:53:08 kernel: drivers/input/serio/i8042.c: 56 -> i8042 (parameter) [113]
22:53:08 kernel: drivers/input/serio/i8042.c: d4 -> i8042 (command) [113]
22:53:08 kernel: drivers/input/serio/i8042.c: f2 -> i8042 (parameter) [113]
22:53:08 kernel: drivers/input/serio/i8042.c: 60 -> i8042 (command) [212]
22:53:08 kernel: drivers/input/serio/i8042.c: 54 -> i8042 (parameter) [212]
22:53:08 kernel: drivers/input/serio/i8042.c: fe <- i8042 (flush, kbd) [212]
22:53:08 kernel: serio: i8042 AUX port at 0x60,0x64 irq 12
22:53:08 kernel: drivers/input/serio/i8042.c: 60 -> i8042 (command) [212]
22:53:08 kernel: drivers/input/serio/i8042.c: 44 -> i8042 (parameter) [212]
22:53:08 kernel: drivers/input/serio/i8042.c: 60 -> i8042 (command) [212]
22:53:08 kernel: drivers/input/serio/i8042.c: 45 -> i8042 (parameter) [212]
22:53:08 kernel: drivers/input/serio/i8042.c: f2 -> i8042 (kbd-data) [212]
22:53:08 kernel: drivers/input/serio/i8042.c: fa <- i8042 (interrupt, kbd, 1) [215]
22:53:08 kernel: drivers/input/serio/i8042.c: ab <- i8042 (interrupt, kbd, 1) [217]
22:53:08 kernel: drivers/input/serio/i8042.c: 41 <- i8042 (interrupt, kbd, 1) [218]
22:53:08 kernel: drivers/input/serio/i8042.c: ed -> i8042 (kbd-data) [218]
22:53:08 kernel: drivers/input/serio/i8042.c: fa <- i8042 (interrupt, kbd, 1) [221]
22:53:08 kernel: drivers/input/serio/i8042.c: 00 -> i8042 (kbd-data) [221]
22:53:08 kernel: drivers/input/serio/i8042.c: fa <- i8042 (interrupt, kbd, 1) [224]
22:53:08 kernel: drivers/input/serio/i8042.c: f8 -> i8042 (kbd-data) [224]
22:53:08 kernel: drivers/input/serio/i8042.c: fa <- i8042 (interrupt, kbd, 1) [227]
22:53:08 kernel: drivers/input/serio/i8042.c: f4 -> i8042 (kbd-data) [227]
22:53:08 kernel: drivers/input/serio/i8042.c: fa <- i8042 (interrupt, kbd, 1) [231]
22:53:08 kernel: drivers/input/serio/i8042.c: f0 -> i8042 (kbd-data) [231]
22:53:08 kernel: drivers/input/serio/i8042.c: fa <- i8042 (interrupt, kbd, 1) [234]
22:53:08 kernel: drivers/input/serio/i8042.c: 02 -> i8042 (kbd-data) [234]
22:53:08 kernel: drivers/input/serio/i8042.c: fa <- i8042 (interrupt, kbd, 1) [237]
22:53:08 kernel: drivers/input/serio/i8042.c: f0 -> i8042 (kbd-data) [237]
22:53:08 kernel: drivers/input/serio/i8042.c: fa <- i8042 (interrupt, kbd, 1) [240]
22:53:08 kernel: drivers/input/serio/i8042.c: 00 -> i8042 (kbd-data) [240]
22:53:08 kernel: drivers/input/serio/i8042.c: fa <- i8042 (interrupt, kbd, 1) [243]
22:53:08 kernel: drivers/input/serio/i8042.c: 41 <- i8042 (interrupt, kbd, 1) [244]
22:53:08 kernel: input: AT Set 2 keyboard on isa0060/serio0
22:53:08 kernel: serio: i8042 KBD port at 0x60,0x64 irq 1

>From dmesg:
drivers/input/serio/i8042.c: 20 -> i8042 (command) [0]
drivers/input/serio/i8042.c: 67 <- i8042 (return) [0]
drivers/input/serio/i8042.c: 60 -> i8042 (command) [0]
drivers/input/serio/i8042.c: 76 -> i8042 (parameter) [0]
drivers/input/serio/i8042.c: d3 -> i8042 (command) [0]
drivers/input/serio/i8042.c: f0 -> i8042 (parameter) [0]
drivers/input/serio/i8042.c: 0f <- i8042 (return) [0]
drivers/input/serio/i8042.c: d3 -> i8042 (command) [0]
drivers/input/serio/i8042.c: 56 -> i8042 (parameter) [0]
drivers/input/serio/i8042.c: a9 <- i8042 (return) [0]
drivers/input/serio/i8042.c: d3 -> i8042 (command) [0]
drivers/input/serio/i8042.c: a4 -> i8042 (parameter) [0]
drivers/input/serio/i8042.c: 5b <- i8042 (return) [0]
drivers/input/serio/i8042.c: d3 -> i8042 (command) [0]
drivers/input/serio/i8042.c: 5a -> i8042 (parameter) [0]
drivers/input/serio/i8042.c: a5 <- i8042 (return) [0]
drivers/input/serio/i8042.c: a7 -> i8042 (command) [0]
drivers/input/serio/i8042.c: 20 -> i8042 (command) [0]
drivers/input/serio/i8042.c: 76 <- i8042 (return) [0]
drivers/input/serio/i8042.c: a8 -> i8042 (command) [0]
drivers/input/serio/i8042.c: 20 -> i8042 (command) [0]
drivers/input/serio/i8042.c: 56 <- i8042 (return) [0]
drivers/input/serio/i8042.c: 60 -> i8042 (command) [0]
drivers/input/serio/i8042.c: 74 -> i8042 (parameter) [0]
drivers/input/serio/i8042.c: 60 -> i8042 (command) [0]
drivers/input/serio/i8042.c: 54 -> i8042 (parameter) [0]
drivers/input/serio/i8042.c: 60 -> i8042 (command) [0]
drivers/input/serio/i8042.c: 56 -> i8042 (parameter) [0]
drivers/input/serio/i8042.c: d4 -> i8042 (command) [0]
drivers/input/serio/i8042.c: f2 -> i8042 (parameter) [0]
drivers/input/serio/i8042.c: d4 -> i8042 (command) [99]
drivers/input/serio/i8042.c: ed -> i8042 (parameter) [99]
drivers/input/serio/i8042.c: fe <- i8042 (interrupt, aux, 0, timeout) [99]
drivers/input/serio/i8042.c: 60 -> i8042 (command) [99]
drivers/input/serio/i8042.c: 54 -> i8042 (parameter) [99]
drivers/input/serio/i8042.c: fe <- i8042 (flush, kbd) [113]
drivers/input/serio/i8042.c: 60 -> i8042 (command) [113]
drivers/input/serio/i8042.c: 56 -> i8042 (parameter) [113]
drivers/input/serio/i8042.c: d4 -> i8042 (command) [113]
drivers/input/serio/i8042.c: f2 -> i8042 (parameter) [113]
drivers/input/serio/i8042.c: 60 -> i8042 (command) [212]
drivers/input/serio/i8042.c: 54 -> i8042 (parameter) [212]
drivers/input/serio/i8042.c: fe <- i8042 (flush, kbd) [212]
serio: i8042 AUX port at 0x60,0x64 irq 12
drivers/input/serio/i8042.c: 60 -> i8042 (command) [212]
drivers/input/serio/i8042.c: 44 -> i8042 (parameter) [212]
drivers/input/serio/i8042.c: 60 -> i8042 (command) [212]
drivers/input/serio/i8042.c: 45 -> i8042 (parameter) [212]
drivers/input/serio/i8042.c: f2 -> i8042 (kbd-data) [212]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, kbd, 1) [215]
drivers/input/serio/i8042.c: ab <- i8042 (interrupt, kbd, 1) [217]
drivers/input/serio/i8042.c: 41 <- i8042 (interrupt, kbd, 1) [218]
drivers/input/serio/i8042.c: ed -> i8042 (kbd-data) [218]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, kbd, 1) [221]
drivers/input/serio/i8042.c: 00 -> i8042 (kbd-data) [221]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, kbd, 1) [224]
drivers/input/serio/i8042.c: f8 -> i8042 (kbd-data) [224]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, kbd, 1) [227]
drivers/input/serio/i8042.c: f4 -> i8042 (kbd-data) [227]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, kbd, 1) [231]
drivers/input/serio/i8042.c: f0 -> i8042 (kbd-data) [231]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, kbd, 1) [234]
drivers/input/serio/i8042.c: 02 -> i8042 (kbd-data) [234]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, kbd, 1) [237]
drivers/input/serio/i8042.c: f0 -> i8042 (kbd-data) [237]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, kbd, 1) [240]
drivers/input/serio/i8042.c: 00 -> i8042 (kbd-data) [240]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, kbd, 1) [243]
drivers/input/serio/i8042.c: 41 <- i8042 (interrupt, kbd, 1) [244]
input: AT Set 2 keyboard on isa0060/serio0
serio: i8042 KBD port at 0x60,0x64 irq 1

2003-07-28 22:58:44

by Andries Brouwer

[permalink] [raw]
Subject: Re: 2.6.0-test2 has i8042 mux problems

On Mon, Jul 28, 2003 at 11:09:10PM +0200, Claas Langbehn wrote:
> Hello!
>
> its strange. After switching debug on, it suddenly works.

Maybe the timing changed?

[It would also be nice to see a log where things failed.
Probably syslog would still work.]

> Below my debug info.

Thanks! Let me comment it.

-------------------------------------------------------------
check_mux: First we probe for a Synaptics mux. Find none.
check_aux: Then we probe for a PS/2 mouse port. Find one.

Good. Found something. Call serio_register_port().
This searches for attached devices.
We know already that it is the PS/2 mouse port, but who knows
what might be connected. Let us try all devices we know about.

Is it perhaps a keyboard?

> drivers/input/serio/i8042.c: d4 -> i8042 (command) [0]
> drivers/input/serio/i8042.c: f2 -> i8042 (parameter) [0]

We wait for 99 jiffies, but no keyboard ID shows up.
Then try to set LEDs.

> drivers/input/serio/i8042.c: d4 -> i8042 (command) [99]
> drivers/input/serio/i8042.c: ed -> i8042 (parameter) [99]
> drivers/input/serio/i8042.c: fe <- i8042 (interrupt, aux, 0, timeout) [99]

Get an error back. This mouse doesnt want to set its LEDs.

Is it perhaps a mouse?

> drivers/input/serio/i8042.c: d4 -> i8042 (command) [113]
> drivers/input/serio/i8042.c: f2 -> i8042 (parameter) [113]

No mouse ID either. No devices connected to this port, but
at least we have a port:

> serio: i8042 AUX port at 0x60,0x64 irq 12

Then we continue, and check the keyboard side of the i8042 controller.
Things work satisfactorily, we detect a keyboard.

Silly enough we set it to scancode Set 2, but nevertheless give
commands that are only meaningful for scancode Set 3.
Keyboards that know only about Set 2 will be unhappy.

> input: AT Set 2 keyboard on isa0060/serio0
> serio: i8042 KBD port at 0x60,0x64 irq 1

OK, found keyboard.
-------------------------------------------------------------

So far the story of your debug file.
What is your actual hardware? Is there a mouse?

Andries

2003-07-29 07:53:30

by Claas Langbehn

[permalink] [raw]
Subject: Re: 2.6.0-test2 has i8042 mux problems

Hello!



> [It would also be nice to see a log where things failed.
> Probably syslog would still work.]

I cannot reproduce the error any more :(
It seems to work now. But dont ask my why.


> So far the story of your debug file.
> What is your actual hardware? Is there a mouse?

There is no PS/2 mouse. There is only the Keytronic KT-452
keyboard. Its about 14 years old and its switchable between
AT and XT. And it has a DIN-Plug. I am using an adaptor.
I just opend it and now i write you the chips inside it:

K450A/452A R.O.C.
PCB NO.P1.810133.01
EIC-8 94HB

big chip:
1. COPAM-8649B
2204R14 9018KE
SCN8049H
(c) Intel 1977
(m) signetics

smaller chips:
2. TI 035 CS
SN74LS125AN
MALAYSIA

3. 74LS138N
2103J30
9018EG

The other keyboard that always worked has this chip inside:
P8052AH 9706
9419
STC-02A
INTEL (c) 1980


-- claas

2003-07-29 22:51:31

by dean gaudet

[permalink] [raw]
Subject: Re: 2.6.0-test2 has i8042 mux problems

On Mon, 28 Jul 2003, Andries Brouwer wrote:

> On Sun, Jul 27, 2003 at 07:13:26PM -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".
>
> What hardware do you have? And what is the conversation?

this system has an ali1563 (it's a development board for a new processor).

hope this helps -- i enabled DEBUG in i8042.c:

Loading test..........................
BIOS data check successful
Linux version 2.6.0-test2 (root@zim) (gcc version 3.2.3 (Debian)) #2 Tue Jul 29 12:51:24 PDT 2003
[...snip...]
mice: PS/2 mouse device common for all mice
drivers/input/serio/i8042.c: 20 -> i8042 (command) [0]
drivers/input/serio/i8042.c: 47 <- i8042 (return) [0]
drivers/input/serio/i8042.c: 60 -> i8042 (command) [30]
drivers/input/serio/i8042.c: 56 -> i8042 (parameter) [30]
drivers/input/serio/i8042.c: d3 -> i8042 (command) [61]
drivers/input/serio/i8042.c: f0 -> i8042 (parameter) [61]
drivers/input/serio/i8042.c: 0f <- i8042 (return) [61]
drivers/input/serio/i8042.c: d3 -> i8042 (command) [107]
drivers/input/serio/i8042.c: 56 -> i8042 (parameter) [107]
drivers/input/serio/i8042.c: a9 <- i8042 (return) [107]
drivers/input/serio/i8042.c: d3 -> i8042 (command) [154]
drivers/input/serio/i8042.c: a4 -> i8042 (parameter) [154]
drivers/input/serio/i8042.c: ee <- i8042 (return) [154]
i8042.c: Detected active multiplexing controller, rev 1.1.
drivers/input/serio/i8042.c: 60 -> i8042 (command) [217]
drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [217]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [248]
drivers/input/serio/i8042.c: a8 -> i8042 (command) [264]
drivers/input/serio/i8042.c: 91 -> i8042 (command) [279]
drivers/input/serio/i8042.c: a8 -> i8042 (command) [295]
drivers/input/serio/i8042.c: 92 -> i8042 (command) [311]
drivers/input/serio/i8042.c: a8 -> i8042 (command) [326]
drivers/input/serio/i8042.c: 93 -> i8042 (command) [342]
drivers/input/serio/i8042.c: a8 -> i8042 (command) [357]
drivers/input/serio/i8042.c: 60 -> i8042 (command) [373]
drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [373]
drivers/input/serio/i8042.c: 60 -> i8042 (command) [404]
drivers/input/serio/i8042.c: 02 -> i8042 (parameter) [404]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [436]
drivers/input/serio/i8042.c: f2 -> i8042 (parameter) [436]
drivers/input/serio/i8042.c: fe <- i8042 (interrupt, aux0, 12, timeout) [480]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [501]
drivers/input/serio/i8042.c: ed -> i8042 (parameter) [501]
drivers/input/serio/i8042.c: fe <- i8042 (interrupt, aux0, 12, timeout) [544]
drivers/input/serio/i8042.c: 60 -> i8042 (command) [565]
drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [565]
drivers/input/serio/i8042.c: 60 -> i8042 (command) [597]
drivers/input/serio/i8042.c: 02 -> i8042 (parameter) [597]
drivers/input/serio/i8042.c: 90 -> i8042 (command) [629]
drivers/input/serio/i8042.c: f2 -> i8042 (parameter) [629]
drivers/input/serio/i8042.c: fe <- i8042 (interrupt, aux0, 12, timeout) [673]
drivers/input/serio/i8042.c: 60 -> i8042 (command) [693]
drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [693]
serio: i8042 AUX0 port at 0x60,0x64 irq 12
drivers/input/serio/i8042.c: 60 -> i8042 (command) [737]
drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [737]
drivers/input/serio/i8042.c: 60 -> i8042 (command) [768]
drivers/input/serio/i8042.c: 02 -> i8042 (parameter) [768]
drivers/input/serio/i8042.c: 91 -> i8042 (command) [800]
drivers/input/serio/i8042.c: f2 -> i8042 (parameter) [800]
drivers/input/serio/i8042.c: fe <- i8042 (interrupt, aux1, 12, timeout) [844]
drivers/input/serio/i8042.c: 91 -> i8042 (command) [865]
drivers/input/serio/i8042.c: ed -> i8042 (parameter) [865]
drivers/input/serio/i8042.c: fe <- i8042 (interrupt, aux1, 12, timeout) [910]
drivers/input/serio/i8042.c: 60 -> i8042 (command) [931]
drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [931]
drivers/input/serio/i8042.c: 60 -> i8042 (command) [962]
drivers/input/serio/i8042.c: 02 -> i8042 (parameter) [962]
drivers/input/serio/i8042.c: 91 -> i8042 (command) [994]
drivers/input/serio/i8042.c: f2 -> i8042 (parameter) [994]
drivers/input/serio/i8042.c: fe <- i8042 (interrupt, aux1, 12, timeout) [1038]
drivers/input/serio/i8042.c: 60 -> i8042 (command) [1059]
drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [1059]
serio: i8042 AUX1 port at 0x60,0x64 irq 12
drivers/input/serio/i8042.c: 60 -> i8042 (command) [1103]
drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [1103]
drivers/input/serio/i8042.c: 60 -> i8042 (command) [1135]
drivers/input/serio/i8042.c: 02 -> i8042 (parameter) [1135]
drivers/input/serio/i8042.c: 92 -> i8042 (command) [1168]
drivers/input/serio/i8042.c: f2 -> i8042 (parameter) [1168]
drivers/input/serio/i8042.c: fe <- i8042 (interrupt, aux2, 12, bad parity) [1206]
atkbd.c: frame/parity error: 02
drivers/input/serio/i8042.c: 92 -> i8042 (command) [1237]
drivers/input/serio/i8042.c: fe -> i8042 (parameter) [1237]
drivers/input/serio/i8042.c: fe <- i8042 (interrupt, aux2, 0, bad parity) [1269]
atkbd.c: frame/parity error: 02
drivers/input/serio/i8042.c: 92 -> i8042 (command) [1299]
drivers/input/serio/i8042.c: fe -> i8042 (parameter) [1299]
drivers/input/serio/i8042.c: fe <- i8042 (interrupt, aux2, 0, bad parity) [1332]
atkbd.c: frame/parity error: 02
drivers/input/serio/i8042.c: 92 -> i8042 (command) [1362]
drivers/input/serio/i8042.c: fe -> i8042 (parameter) [1362]
drivers/input/serio/i8042.c: fe <- i8042 (interrupt, aux2, 0, bad parity) [1394]
atkbd.c: frame/parity error: 02
drivers/input/serio/i8042.c: 92 -> i8042 (command) [1425]
drivers/input/serio/i8042.c: fe -> i8042 (parameter) [1425]
drivers/input/serio/i8042.c: fe <- i8042 (interrupt, aux2, 0, bad parity) [1457]
atkbd.c: frame/parity error: 02
drivers/input/serio/i8042.c: 92 -> i8042 (command) [1488]
drivers/input/serio/i8042.c: fe -> i8042 (parameter) [1488]
drivers/input/serio/i8042.c: fe <- i8042 (interrupt, aux2, 0, bad parity) [1520]
atkbd.c: frame/parity error: 02
drivers/input/serio/i8042.c: 92 -> i8042 (command) [1550]
drivers/input/serio/i8042.c: fe -> i8042 (parameter) [1550]
drivers/input/serio/i8042.c: fe <- i8042 (interrupt, aux2, 0, bad parity) [1582]
atkbd.c: frame/parity error: 02
drivers/input/serio/i8042.c: 92 -> i8042 (command) [1613]
drivers/input/serio/i8042.c: fe -> i8042 (parameter) [1613]
drivers/input/serio/i8042.c: fe <- i8042 (interrupt, aux2, 0, bad parity) [1645]
atkbd.c: frame/parity error: 02
drivers/input/serio/i8042.c: 92 -> i8042 (command) [1675]
drivers/input/serio/i8042.c: fe -> i8042 (parameter) [1675]
drivers/input/serio/i8042.c: fe <- i8042 (interrupt, aux2, 0, bad parity) [1708]
atkbd.c: frame/parity error: 02
drivers/input/serio/i8042.c: 92 -> i8042 (command) [1738]
drivers/input/serio/i8042.c: fe -> i8042 (parameter) [1738]
drivers/input/serio/i8042.c: fe <- i8042 (interrupt, aux2, 0, bad parity) [1770]
atkbd.c: frame/parity error: 02
drivers/input/serio/i8042.c: 92 -> i8042 (command) [1801]
drivers/input/serio/i8042.c: fe -> i8042 (parameter) [1801]
drivers/input/serio/i8042.c: fe <- i8042 (interrupt, aux2, 0, bad parity) [1833]
atkbd.c: frame/parity error: 02
drivers/input/serio/i8042.c: 92 -> i8042 (command) [1863]
drivers/input/serio/i8042.c: fe -> i8042 (parameter) [1863]
drivers/input/serio/i8042.c: fe <- i8042 (interrupt, aux2, 0, bad parity) [1895]
atkbd.c: frame/parity error: 02
drivers/input/serio/i8042.c: 92 -> i8042 (command) [1926]
drivers/input/serio/i8042.c: fe -> i8042 (parameter) [1926]
drivers/input/serio/i8042.c: fe <- i8042 (interrupt, aux2, 0, bad parity) [1958]
atkbd.c: frame/parity error: 02
drivers/input/serio/i8042.c: 92 -> i8042 (command) [1989]
drivers/input/serio/i8042.c: fe -> i8042 (parameter) [1989]
drivers/input/serio/i8042.c: fe <- i8042 (interrupt, aux2, 0, bad parity) [2021]
atkbd.c: frame/parity error: 02
drivers/input/serio/i8042.c: 92 -> i8042 (command) [2051]
drivers/input/serio/i8042.c: fe -> i8042 (parameter) [2051]
drivers/input/serio/i8042.c: fe <- i8042 (interrupt, aux2, 0, bad parity) [2083]
atkbd.c: frame/parity error: 02
drivers/input/serio/i8042.c: 92 -> i8042 (command) [2114]
drivers/input/serio/i8042.c: fe -> i8042 (parameter) [2114]
drivers/input/serio/i8042.c: fe <- i8042 (interrupt, aux2, 0, bad parity) [2146]
atkbd.c: frame/parity error: 02
drivers/input/serio/i8042.c: 92 -> i8042 (command) [2176]
drivers/input/serio/i8042.c: fe -> i8042 (parameter) [2176]
drivers/input/serio/i8042.c: fe <- i8042 (interrupt, aux2, 0, bad parity) [2208]
atkbd.c: frame/parity error: 02
drivers/input/serio/i8042.c: 92 -> i8042 (command) [2239]
drivers/input/serio/i8042.c: fe -> i8042 (parameter) [2239]
drivers/input/serio/i8042.c: fe <- i8042 (interrupt, aux2, 0, bad parity) [2271]
atkbd.c: frame/parity error: 02
drivers/input/serio/i8042.c: 92 -> i8042 (command) [2302]
drivers/input/serio/i8042.c: fe -> i8042 (parameter) [2302]
drivers/input/serio/i8042.c: fe <- i8042 (interrupt, aux2, 0, bad parity) [2334]
atkbd.c: frame/parity error: 02
drivers/input/serio/i8042.c: 92 -> i8042 (command) [2364]
drivers/input/serio/i8042.c: fe -> i8042 (parameter) [2364]
drivers/input/serio/i8042.c: fe <- i8042 (interrupt, aux2, 0, bad parity) [2396]
atkbd.c: frame/parity error: 02
drivers/input/serio/i8042.c: 92 -> i8042 (command) [2427]
drivers/input/serio/i8042.c: fe -> i8042 (parameter) [2427]
drivers/input/serio/i8042.c: fe <- i8042 (interrupt, aux2, 0, bad parity) [2459]
atkbd.c: frame/parity error: 02
drivers/input/serio/i8042.c: 92 -> i8042 (command) [2489]
drivers/input/serio/i8042.c: fe -> i8042 (parameter) [2489]
drivers/input/serio/i8042.c: fe <- i8042 (interrupt, aux2, 0, bad parity) [2521]
atkbd.c: frame/parity error: 02
drivers/input/serio/i8042.c: 92 -> i8042 (command) [2552]
drivers/input/serio/i8042.c: fe -> i8042 (parameter) [2552]
drivers/input/serio/i8042.c: fe <- i8042 (interrupt, aux2, 0, bad parity) [2584]
atkbd.c: frame/parity error: 02
drivers/input/serio/i8042.c: 92 -> i8042 (command) [2614]
drivers/input/serio/i8042.c: fe -> i8042 (parameter) [2614]
drivers/input/serio/i8042.c: fe <- i8042 (interrupt, aux2, 0, bad parity) [2647]
atkbd.c: frame/parity error: 02
drivers/input/serio/i8042.c: 92 -> i8042 (command) [2678]
drivers/input/serio/i8042.c: fe -> i8042 (parameter) [2678]
drivers/input/serio/i8042.c: fe <- i8042 (interrupt, aux2, 0, bad parity) [2710]
atkbd.c: frame/parity error: 02
drivers/input/serio/i8042.c: 92 -> i8042 (command) [2741]
drivers/input/serio/i8042.c: fe -> i8042 (parameter) [2741]
drivers/input/serio/i8042.c: fe <- i8042 (interrupt, aux2, 0, bad parity) [2773]
atkbd.c: frame/parity error: 02
drivers/input/serio/i8042.c: 92 -> i8042 (command) [2803]
drivers/input/serio/i8042.c: fe -> i8042 (parameter) [2803]
drivers/input/serio/i8042.c: fe <- i8042 (interrupt, aux2, 0, bad parity) [2835]
atkbd.c: frame/parity error: 02
drivers/input/serio/i8042.c: 92 -> i8042 (command) [2866]
drivers/input/serio/i8042.c: fe -> i8042 (parameter) [2866]
drivers/input/serio/i8042.c: fe <- i8042 (interrupt, aux2, 0, bad parity) [2898]
atkbd.c: frame/parity error: 02
drivers/input/serio/i8042.c: 92 -> i8042 (command) [2929]
drivers/input/serio/i8042.c: fe -> i8042 (parameter) [2929]
drivers/input/serio/i8042.c: fe <- i8042 (interrupt, aux2, 0, bad parity) [2961]
atkbd.c: frame/parity error: 02
drivers/input/serio/i8042.c: 92 -> i8042 (command) [2992]
drivers/input/serio/i8042.c: fe -> i8042 (parameter) [2992]
drivers/input/serio/i8042.c: fe <- i8042 (interrupt, aux2, 0, bad parity) [3024]
atkbd.c: frame/parity error: 02
drivers/input/serio/i8042.c: 92 -> i8042 (command) [3054]
drivers/input/serio/i8042.c: fe -> i8042 (parameter) [3054]
drivers/input/serio/i8042.c: fe <- i8042 (interrupt, aux2, 0, bad parity) [3086]
atkbd.c: frame/parity error: 02
drivers/input/serio/i8042.c: 92 -> i8042 (command) [3117]
drivers/input/serio/i8042.c: fe -> i8042 (parameter) [3117]
drivers/input/serio/i8042.c: fe <- i8042 (interrupt, aux2, 0, bad parity) [3149]
atkbd.c: frame/parity error: 02
drivers/input/serio/i8042.c: 92 -> i8042 (command) [3179]
drivers/input/serio/i8042.c: fe -> i8042 (parameter) [3179]
drivers/input/serio/i8042.c: fe <- i8042 (interrupt, aux2, 0, bad parity) [3211]
atkbd.c: frame/parity error: 02
drivers/input/serio/i8042.c: 92 -> i8042 (command) [3242]
drivers/input/serio/i8042.c: fe -> i8042 (parameter) [3242]
drivers/input/serio/i8042.c: fe <- i8042 (interrupt, aux2, 0, bad parity) [3274]
atkbd.c: frame/parity error: 02
drivers/input/serio/i8042.c: 92 -> i8042 (command) [3305]
drivers/input/serio/i8042.c: fe -> i8042 (parameter) [3305]
drivers/inp<1>Unable to handle kernel NULL pointer dereference at virtual address 0000001d
printing eip:
c0118b0a
*pde = 00000000
Oops: 0000 [#1]
CPU: 0
EIP: 0060:[<c0118b0a>] Not tainted
EFLAGS: 00010007
EIP is at scheduler_tick+0x6a/0x340
eax: 00000000 ebx: 00000001 ecx: 00000001 edx: 00000000
esi: 00000001 edi: 00000000 ebp: dbe9002c esp: dbe90014
ds: 007b es: 007b ss: 0068
Process ???3??>? (pid: -606380032, threadinfo=dbe8e000 task=dbe91240)
Stack: 00000007 00000000 00000000 00000000 00000001 00000000 dbe9004c c0124466
00000000 00000001 00000001 00000000 dbe90000 dbe900c4 dbe9005c c0124695
00000000 dbe90000 dbe90074 c010fa92 dbe900c4 c033bd84 20000001 00000000
Call Trace:
[<c0124466>] update_process_times+0x46/0x50
[<c0124695>] do_timer+0x35/0xf0
[<c010fa92>] timer_interrupt+0x52/0x130
[<c010b72b>] handle_IRQ_event+0x3b/0x70
[<c010baac>] do_IRQ+0x9c/0x160
[<c0109e68>] common_interrupt+0x18/0x20
[<c01148e2>] delay_tsc+0x12/0x20
[<c021a544>] __delay+0x14/0x20
[<c023b192>] serial8250_console_write+0xb2/0x280
[<c011cd00>] __call_console_drivers+0x60/0x70
[<c011ce00>] call_console_drivers+0x80/0x120
[<c011d14f>] release_console_sem+0x5f/0xe0
[<c011d028>] printk+0x118/0x180
[<c0283a48>] i8042_interrupt+0x198/0x3b0
[<c0123e96>] mod_timer+0x136/0x190
[<c0114835>] mark_offset_tsc+0x205/0x2a0
[<c0124466>] update_process_times+0x46/0x50
[<c01245a2>] run_timer_softirq+0x112/0x1c0
[<c0124740>] do_timer+0xe0/0xf0
[<c010bb27>] do_IRQ+0x117/0x160
[<c0109e68>] common_interrupt+0x18/0x20
[<c01191b0>] preempt_schedule+0x0/0x50
[<c028351b>] i8042_command+0x6b/0x180
[<c0283702>] i8042_aux_write+0x52/0x70
[<c02804ef>] atkbd_interrupt+0x21f/0x230
[<c011d028>] printk+0x118/0x180
[<c0282fda>] serio_interrupt+0x5a/0x60
[<c0283a79>] i8042_interrupt+0x1c9/0x3b0
[<c0123e96>] mod_timer+0x136/0x190
[<c0114835>] mark_offset_tsc+0x205/0x2a0
[<c0124466>] update_process_times+0x46/0x50
[<c01245a2>] run_timer_softirq+0x112/0x1c0
[<c010bb27>] do_IRQ+0x117/0x160
[<c0109e68>] common_interrupt+0x18/0x20
[<c01191b0>] preempt_schedule+0x0/0x50
[<c028351b>] i8042_command+0x6b/0x180
[<c0283702>] i8042_aux_write+0x52/0x70
[<c02804ef>] atkbd_interrupt+0x21f/0x230
[<c011d028>] printk+0x118/0x180
[<c0282fda>] serio_interrupt+0x5a/0x60
[<c0283a79>] i8042_interrupt+0x1c9/0x3b0
[<c0123e96>] mod_timer+0x136/0x190
[<c0114835>] mark_offset_tsc+0x205/0x2a0
[<c0124466>] update_process_times+0x46/0x50
[<c01245a2>] run_timer_softirq+0x112/0x1c0
[<c0124740>] do_timer+0xe0/0xf0
[<c010bb27>] do_IRQ+0x117/0x160
[<c0109e68>] common_interrupt+0x18/0x20
[<c01191b0>] preempt_schedule+0x0/0x50
[<c028351b>] i8042_command+0x6b/0x180
[<c0283702>] i8042_aux_write+0x52/0x70
[<c02804ef>] atkbd_interrupt+0x21f/0x230
[<c011d028>] printk+0x118/0x180
[<c0282fda>] serio_interrupt+0x5a/0x60
[<c0283a79>] i8042_interrupt+0x1c9/0x3b0
[<c0123e96>] mod_timer+0x136/0x190
[<c0114835>] mark_offset_tsc+0x205/0x2a0
[<c0124466>] update_process_times+0x46/0x50
[<c01245a2>] run_timer_softirq+0x112/0x1c0
[<c010bb27>] do_IRQ+0x117/0x160
[<c0109e68>] common_interrupt+0x18/0x20
[<c01191b0>] preempt_schedule+0x0/0x50
[<c028351b>] i8042_command+0x6b/0x180
[<c0283702>] i8042_aux_write+0x52/0x70
[<c02804ef>] atkbd_interrupt+0x21f/0x230
[<c011d028>] printk+0x118/0x180
[<c0282fda>] serio_interrupt+0x5a/0x60
[<c0283a79>] i8042_interrupt+0x1c9/0x3b0
[<c0123e96>] mod_timer+0x136/0x190
[<c0114835>] mark_offset_tsc+0x205/0x2a0
[<c0124466>] update_process_times+0x46/0x50
[<c01245a2>] run_timer_softirq+0x112/0x1c0
[<c0124740>] do_timer+0xe0/0xf0
[<c010bb27>] do_IRQ+0x117/0x160
[<c0109e68>] common_interrupt+0x18/0x20
[<c01191b0>] preempt_schedule+0x0/0x50
[<c028351b>] i8042_command+0x6b/0x180
[<c0283702>] i8042_aux_write+0x52/0x70
[<c02804ef>] atkbd_interrupt+0x21f/0x230
[<c011d028>] printk+0x118/0x180
[<c0282fda>] serio_interrupt+0x5a/0x60
[<c0283a79>] i8042_interrupt+0x1c9/0x3b0
[<c0123e96>] mod_timer+0x136/0x190
[<c0114835>] mark_offset_tsc+0x205/0x2a0
[<c0124466>] update_process_times+0x46/0x50
[<c01245a2>] run_timer_softirq+0x112/0x1c0
[<c010bb27>] do_IRQ+0x117/0x160
[<c0109e68>] common_interrupt+0x18/0x20
[<c01191b0>] preempt_schedule+0x0/0x50
[<c028351b>] i8042_command+0x6b/0x180
[<c0283702>] i8042_aux_write+0x52/0x70
[<c02804ef>] atkbd_interrupt+0x21f/0x230
[<c011d028>] printk+0x118/0x180
[<c0282fda>] serio_interrupt+0x5a/0x60
[<c0283a79>] i8042_interrupt+0x1c9/0x3b0
[<c0123e96>] mod_timer+0x136/0x190
[<c0114835>] mark_offset_tsc+0x205/0x2a0
[<c0124466>] update_process_times+0x46/0x50
[<c01245a2>] run_timer_softirq+0x112/0x1c0
[<c0124740>] do_timer+0xe0/0xf0
[<c010bb27>] do_IRQ+0x117/0x160
[<c0109e68>] common_interrupt+0x18/0x20
[<c01191b0>] preempt_schedule+0x0/0x50
[<c028351b>] i8042_command+0x6b/0x180
[<c0283702>] i8042_aux_write+0x52/0x70
[<c02804ef>] atkbd_interrupt+0x21f/0x230
[<c011d028>] printk+0x118/0x180
[<c0282fda>] serio_interrupt+0x5a/0x60
[<c0283a79>] i8042_interrupt+0x1c9/0x3b0
[<c0123e96>] mod_timer+0x136/0x190
[<c0114835>] mark_offset_tsc+0x205/0x2a0
[<c0124466>] update_process_times+0x46/0x50
[<c01245a2>] run_timer_softirq+0x112/0x1c0
[<c010bb27>] do_IRQ+0x117/0x160
[<c0109e68>] common_interrupt+0x18/0x20
[<c01191b0>] preempt_schedule+0x0/0x50
[<c028351b>] i8042_command+0x6b/0x180
[<c0283702>] i8042_aux_write+0x52/0x70
[<c02804ef>] atkbd_interrupt+0x21f/0x230
[<c011d028>] printk+0x118/0x180
[<c0282fda>] serio_interrupt+0x5a/0x60
[<c0283a79>] i8042_interrupt+0x1c9/0x3b0
[<c0123e96>] mod_timer+0x136/0x190
[<c0114835>] mark_offset_tsc+0x205/0x2a0
[<c0124466>] update_process_times+0x46/0x50
[<c01245a2>] run_timer_softirq+0x112/0x1c0
[<c0124740>] do_timer+0xe0/0xf0
[<c010bb27>] do_IRQ+0x117/0x160
[<c0109e68>] common_interrupt+0x18/0x20
[<c01191b0>] preempt_schedule+0x0/0x50
[<c028351b>] i8042_command+0x6b/0x180
[<c0283702>] i8042_aux_write+0x52/0x70
[<c02804ef>] atkbd_interrupt+0x21f/0x230
[<c011d028>] printk+0x118/0x180
[<c0282fda>] serio_interrupt+0x5a/0x60
[<c0283a79>] i8042_interrupt+0x1c9/0x3b0
[<c0123e96>] mod_timer+0x136/0x190
[<c0114835>] mark_offset_tsc+0x205/0x2a0
[<c0124466>] update_process_times+0x46/0x50
[<c01245a2>] run_timer_softirq+0x112/0x1c0
[<c010bb27>] do_IRQ+0x117/0x160
[<c0109e68>] common_interrupt+0x18/0x20
[<c01191b0>] preempt_schedule+0x0/0x50
[<c028351b>] i8042_command+0x6b/0x180
[<c0283702>] i8042_aux_write+0x52/0x70
[<c02804ef>] atkbd_interrupt+0x21f/0x230
[<c011d028>] printk+0x118/0x180
[<c0282fda>] serio_interrupt+0x5a/0x60
[<c0283a79>] i8042_interrupt+0x1c9/0x3b0
[<c0123e96>] mod_timer+0x136/0x190
[<c0114835>] mark_offset_tsc+0x205/0x2a0
[<c0124466>] update_process_times+0x46/0x50
[<c01245a2>] run_timer_softirq+0x112/0x1c0
[<c0124740>] do_timer+0xe0/0xf0
[<c010bb27>] do_IRQ+0x117/0x160
[<c0109e68>] common_interrupt+0x18/0x20
[<c01191b0>] preempt_schedule+0x0/0x50
[<c028351b>] i8042_command+0x6b/0x180
[<c0283702>] i8042_aux_write+0x52/0x70
[<c02804ef>] atkbd_interrupt+0x21f/0x230
[<c011d028>] printk+0x118/0x180
[<c0282fda>] serio_interrupt+0x5a/0x60
[<c0283a79>] i8042_interrupt+0x1c9/0x3b0
[<c0123e96>] mod_timer+0x136/0x190
[<c0114835>] mark_offset_tsc+0x205/0x2a0
[<c0124466>] update_process_times+0x46/0x50
[<c01245a2>] run_timer_softirq+0x112/0x1c0
[<c010bb27>] do_IRQ+0x117/0x160
[<c0109e68>] common_interrupt+0x18/0x20
[<c01191b0>] preempt_schedule+0x0/0x50
[<c028351b>] i8042_command+0x6b/0x180
[<c0283702>] i8042_aux_write+0x52/0x70
[<c02804ef>] atkbd_interrupt+0x21f/0x230
[<c011d028>] printk+0x118/0x180
[<c0282fda>] serio_interrupt+0x5a/0x60
[<c0283a79>] i8042_interrupt+0x1c9/0x3b0
[<c0123e96>] mod_timer+0x136/0x190
[<c0114835>] mark_offset_tsc+0x205/0x2a0
[<c0124466>] update_process_times+0x46/0x50
[<c01245a2>] run_timer_softirq+0x112/0x1c0
[<c0124740>] do_timer+0xe0/0xf0
[<c010bb27>] do_IRQ+0x117/0x160
[<c0109e68>] common_interrupt+0x18/0x20
[<c01191b0>] preempt_schedule+0x0/0x50
[<c028351b>] i8042_command+0x6b/0x180
[<c0283702>] i8042_aux_write+0x52/0x70
[<c02804ef>] atkbd_interrupt+0x21f/0x230
[<c011d028>] printk+0x118/0x180
[<c0282fda>] serio_interrupt+0x5a/0x60
[<c0283a79>] i8042_interrupt+0x1c9/0x3b0
[<c0123e96>] mod_timer+0x136/0x190
[<c0114835>] mark_offset_tsc+0x205/0x2a0
[<c0124466>] update_process_times+0x46/0x50
[<c01245a2>] run_timer_softirq+0x112/0x1c0
[<c010bb27>] do_IRQ+0x117/0x160
[<c0109e68>] common_interrupt+0x18/0x20
[<c01191b0>] preempt_schedule+0x0/0x50
[<c028351b>] i8042_command+0x6b/0x180
[<c0283702>] i8042_aux_write+0x52/0x70
[<c02804ef>] atkbd_interrupt+0x21f/0x230
[<c011d028>] printk+0x118/0x180
[<c0282fda>] serio_interrupt+0x5a/0x60
[<c0283a79>] i8042_interrupt+0x1c9/0x3b0
[<c0123e96>] mod_timer+0x136/0x190
[<c0114835>] mark_offset_tsc+0x205/0x2a0
[<c0124466>] update_process_times+0x46/0x50
[<c01245a2>] run_timer_softirq+0x112/0x1c0
[<c0124740>] do_timer+0xe0/0xf0
[<c010bb27>] do_IRQ+0x117/0x160
[<c0109e68>] common_interrupt+0x18/0x20
[<c01191b0>] preempt_schedule+0x0/0x50
[<c028351b>] i8042_command+0x6b/0x180
[<c0283702>] i8042_aux_write+0x52/0x70
[<c02804ef>] atkbd_interrupt+0x21f/0x230
[<c011d028>] printk+0x118/0x180
[<c0282fda>] serio_interrupt+0x5a/0x60
[<c0283a79>] i8042_interrupt+0x1c9/0x3b0
[<c0123e96>] mod_timer+0x136/0x190
[<c0114835>] mark_offset_tsc+0x205/0x2a0
[<c0124466>] update_process_times+0x46/0x50
[<c01245a2>] run_timer_softirq+0x112/0x1c0
[<c010bb27>] do_IRQ+0x117/0x160
[<c0109e68>] common_interrupt+0x18/0x20
[<c01191b0>] preempt_schedule+0x0/0x50
[<c028351b>] i8042_command+0x6b/0x180
[<c0283702>] i8042_aux_write+0x52/0x70
[<c02804ef>] atkbd_interrupt+0x21f/0x230
[<c011d028>] printk+0x118/0x180
[<c0282fda>] serio_interrupt+0x5a/0x60
[<c0283a79>] i8042_interrupt+0x1c9/0x3b0
[<c0123e96>] mod_timer+0x136/0x190
[<c0114835>] mark_offset_tsc+0x205/0x2a0
[<c0124466>] update_process_times+0x46/0x50
[<c01245a2>] run_timer_softirq+0x112/0x1c0
[<c0124740>] do_timer+0xe0/0xf0
[<c010bb27>] do_IRQ+0x117/0x160
[<c0109e68>] common_interrupt+0x18/0x20
[<c01191b0>] preempt_schedule+0x0/0x50
[<c028351b>] i8042_command+0x6b/0x180
[<c0283702>] i8042_aux_write+0x52/0x70
[<c02804ef>] atkbd_interrupt+0x21f/0x230
[<c011d028>] printk+0x118/0x180
[<c0282fda>] serio_interrupt+0x5a/0x60
[<c0283a79>] i8042_interrupt+0x1c9/0x3b0
[<c0123e96>] mod_timer+0x136/0x190
[<c0114835>] mark_offset_tsc+0x205/0x2a0
[<c0124466>] update_process_times+0x46/0x50
[<c01242d6>] update_wall_time+0x16/0x40
[<c0124740>] do_timer+0xe0/0xf0
[<c010fb28>] timer_interrupt+0xe8/0x130

2003-07-30 00:25:20

by Andries Brouwer

[permalink] [raw]
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

2003-08-12 20:56:59

by Vojtech Pavlik

[permalink] [raw]
Subject: Re: 2.6.0-test2 has i8042 mux problems

On Mon, Jul 28, 2003 at 09:38:15AM -0700, dean gaudet wrote:
> On Mon, 28 Jul 2003, Stefan Reinauer wrote:
>
> > * dean gaudet <[email protected]> [030728 04:13]:
> > > the southbridge in this system is the ali1563. if it helps i can supply a
> > > complete trace of in/out on ports 0x60 and 0x64.
> >
> > I can confirm this. I have an Amilo A laptop with the following sb:
> > 00:07.0 ISA bridge: ALi Corporation M1533 PCI to ISA Bridge [Aladdin IV]
> >
> > without "i8042_nomux" the keyboard is recognized fine, but no mouse is
> > found on the mux. With the option everything works fine.
>
> that's slightly different than what i get without i8042_nomux, and a
> keyboard & mouse plugged in, the system crashes and burns badly during
> boot. without the keyboard and mouse it boots fine.
>
> with i8042_nomux it's a lot happier.
>
> my system is a test board for a new processor with the ali1563 -- which is
> a newer hypertransport variant of the 1533/1535. i'm not sure yet if
> there are production boards with the 1563. but it's nice to know it
> happens with your 1533 as well.

Hmm, I think I may have a similar bridge around ... I'll try.

> andries -- i'll send you a copy of the in/out traffic (it's a bit large
> for posting).
>
> -dean
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/

--
Vojtech Pavlik
SuSE Labs, SuSE CR