* Another keyboard woes with 2.6.0... @ 2003-09-12 16:50 Petr Vandrovec 2003-09-12 17:45 ` Zwane Mwaikambo 2003-09-13 19:06 ` Pekka Pietikainen 0 siblings, 2 replies; 20+ messages in thread From: Petr Vandrovec @ 2003-09-12 16:50 UTC (permalink / raw) To: vojtech; +Cc: linux-kernel Hi Vojtech, I have MicroStar MS-9211 box with connected to the KVM switch MasterView CS-1016, which is connected to the some Chicony keyboard. 2.4.x kernel works without problem, but when 2.6.0 starts, immediately after input device driver is initialized it starts thinking that F7 key is held down, and it stays that way until I hit some other key to stop autorepeat... What debugging I can do for you to get rid of screen full of '^[[18~' ? /bin/login continuously complains about username being too long :-( dmesg, /proc/interrupts and lspci below. MS-9211 specs is at http://www.msi.com.tw/program/products/server/svr/pro_svr_detail.php?UID=376, CS-1016 switch is http://www.aten-usa.com/products/products.php?Item=CS1016, Chicony keyboard is just Chicony keyboard... And while we are talking about input devices, I assume that if I want driver for frontpanel LCD & up/enter/next buttons, I'm the one who should write it, yes? Thanks, Petr Vandrovec Linux version 2.6.0-test5-c1283 (root@placatec) (gcc version 3.3.2 20030908 (Debian prerelease)) #4 SMP Fri Sep 12 00:09:01 CEST 2003 Video mode to be used for restore is f00 BIOS-provided physical RAM map: BIOS-e820: 0000000000000000 - 000000000009d400 (usable) BIOS-e820: 000000000009d400 - 00000000000a0000 (reserved) BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved) BIOS-e820: 0000000000100000 - 000000003fff0000 (usable) BIOS-e820: 000000003fff0000 - 000000003fff3000 (ACPI NVS) BIOS-e820: 000000003fff3000 - 0000000040000000 (ACPI data) BIOS-e820: 00000000fec00000 - 0000000100000000 (reserved) 127MB HIGHMEM available. 896MB LOWMEM available. found SMP MP-table at 000f55f0 hm, page 000f5000 reserved twice. hm, page 000f6000 reserved twice. hm, page 000f1000 reserved twice. hm, page 000f2000 reserved twice. On node 0 totalpages: 262128 DMA zone: 4096 pages, LIFO batch:1 Normal zone: 225280 pages, LIFO batch:16 HighMem zone: 32752 pages, LIFO batch:7 DMI 2.2 present. ACPI: RSDP (v000 IntelR ) @ 0x000f7750 ACPI: RSDT (v001 IntelR AWRDACPI 0x42302e31 AWRD 0x00000000) @ 0x3fff3000 ACPI: FADT (v001 IntelR AWRDACPI 0x42302e31 AWRD 0x00000000) @ 0x3fff3040 ACPI: MADT (v001 IntelR AWRDACPI 0x42302e31 AWRD 0x00000000) @ 0x3fff6d00 ACPI: DSDT (v001 INTELR AWRDACPI 0x00001000 MSFT 0x0100000c) @ 0x00000000 ACPI: Local APIC address 0xfee00000 ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled) Processor #0 15:2 APIC version 20 ACPI: LAPIC (acpi_id[0x01] lapic_id[0x01] disabled) ACPI: LAPIC_NMI (acpi_id[0x00] polarity[0x1] trigger[0x1] lint[0x1]) ACPI: LAPIC_NMI (acpi_id[0x00] polarity[0x1] trigger[0x1] lint[0x1]) ACPI: LAPIC_NMI (acpi_id[0x00] polarity[0x1] trigger[0x1] lint[0x1]) ACPI: IOAPIC (id[0x02] address[0xfec00000] global_irq_base[0x0]) IOAPIC[0]: Assigned apic_id 2 IOAPIC[0]: apic_id 2, version 32, address 0xfec00000, IRQ 0-23 ACPI: INT_SRC_OVR (bus[0] irq[0x0] global_irq[0x2] polarity[0x0] trigger[0x0]) ACPI: INT_SRC_OVR (bus[0] irq[0x9] global_irq[0x9] polarity[0x1] trigger[0x3]) Enabling APIC mode: Flat. Using 1 I/O APICs Using ACPI (MADT) for SMP configuration information Building zonelist for node : 0 Kernel command line: auto BOOT_IMAGE=Linux ro root=2101 Initializing CPU#0 PID hash table entries: 4096 (order 12: 32768 bytes) Detected 2391.541 MHz processor. Console: colour VGA+ 80x25 Memory: 1032404k/1048512k available (2555k kernel code, 15172k reserved, 1356k data, 368k init, 131008k highmem) Calibrating delay loop... 4718.59 BogoMIPS Dentry cache hash table entries: 131072 (order: 7, 524288 bytes) Inode-cache hash table entries: 65536 (order: 6, 262144 bytes) Mount-cache hash table entries: 512 (order: 0, 4096 bytes) CPU: After generic identify, caps: bfebfbff 00000000 00000000 00000000 CPU: After vendor identify, caps: bfebfbff 00000000 00000000 00000000 CPU: Trace cache: 12K uops, L1 D cache: 8K CPU: L2 cache: 512K CPU: Hyper-Threading is disabled CPU: After all inits, caps: bfebfbff 00000000 00000000 00000080 Intel machine check architecture supported. Intel machine check reporting enabled on CPU#0. CPU#0: Intel P4/Xeon Extended MCE MSRs (12) available CPU#0: Thermal monitoring enabled Enabling fast FPU save and restore... done. Enabling unmasked SIMD FPU exception support... done. Checking 'hlt' instruction... OK. POSIX conformance testing by UNIFIX CPU0: Intel(R) Pentium(R) 4 CPU 2.40GHz stepping 07 per-CPU timeslice cutoff: 1462.88 usecs. task migration cache decay timeout: 2 msecs. enabled ExtINT on CPU#0 ESR value before enabling vector: 00000000 ESR value after enabling vector: 00000000 Error: only one processor found. ENABLING IO-APIC IRQs init IO_APIC IRQs IO-APIC (apicid-pin) 2-0, 2-16, 2-17, 2-18, 2-19, 2-20, 2-21, 2-22, 2-23 not connected. ..TIMER: vector=0x31 pin1=2 pin2=-1 number of MP IRQ sources: 15. number of IO-APIC #2 registers: 24. testing the IO APIC....................... IO APIC #2...... .... register #00: 02000000 ....... : physical APIC id: 02 ....... : Delivery Type: 0 ....... : LTS : 0 .... register #01: 00178020 ....... : max redirection entries: 0017 ....... : PRQ implemented: 1 ....... : IO APIC version: 0020 .... register #02: 00000000 ....... : arbitration: 00 .... register #03: 00000001 ....... : Boot DT : 1 .... IRQ redirection table: NR Log Phy Mask Trig IRR Pol Stat Dest Deli Vect: 00 000 00 1 0 0 0 0 0 0 00 01 001 01 0 0 0 0 0 1 1 39 02 001 01 0 0 0 0 0 1 1 31 03 001 01 0 0 0 0 0 1 1 41 04 001 01 0 0 0 0 0 1 1 49 05 001 01 0 0 0 0 0 1 1 51 06 001 01 0 0 0 0 0 1 1 59 07 001 01 0 0 0 0 0 1 1 61 08 001 01 0 0 0 0 0 1 1 69 09 001 01 1 1 0 0 0 1 1 71 0a 001 01 0 0 0 0 0 1 1 79 0b 001 01 0 0 0 0 0 1 1 81 0c 001 01 0 0 0 0 0 1 1 89 0d 001 01 0 0 0 0 0 1 1 91 0e 001 01 0 0 0 0 0 1 1 99 0f 001 01 0 0 0 0 0 1 1 A1 10 000 00 1 0 0 0 0 0 0 00 11 000 00 1 0 0 0 0 0 0 00 12 000 00 1 0 0 0 0 0 0 00 13 000 00 1 0 0 0 0 0 0 00 14 000 00 1 0 0 0 0 0 0 00 15 000 00 1 0 0 0 0 0 0 00 16 000 00 1 0 0 0 0 0 0 00 17 000 00 1 0 0 0 0 0 0 00 IRQ to pin mappings: IRQ0 -> 0:2 IRQ1 -> 0:1 IRQ3 -> 0:3 IRQ4 -> 0:4 IRQ5 -> 0:5 IRQ6 -> 0:6 IRQ7 -> 0:7 IRQ8 -> 0:8 IRQ9 -> 0:9 IRQ10 -> 0:10 IRQ11 -> 0:11 IRQ12 -> 0:12 IRQ13 -> 0:13 IRQ14 -> 0:14 IRQ15 -> 0:15 .................................... done. Using local APIC timer interrupts. calibrating APIC timer ... ..... CPU clock speed is 2390.0751 MHz. ..... host bus clock speed is 132.0819 MHz. Starting migration thread for cpu 0 CPUS done 2 NET: Registered protocol family 16 PCI: PCI BIOS revision 2.10 entry at 0xfb1a0, last bus=2 PCI: Using configuration type 1 mtrr: v2.0 (20020519) ACPI: Subsystem revision 20030813 ACPI: Interpreter enabled ACPI: Using IOAPIC for interrupt routing ACPI: PCI Root Bridge [PCI0] (00:00) PCI: Probing PCI hardware (bus 00) PCI: Ignoring BAR0-3 of IDE controller 0000:00:1f.1 Transparent bridge - 0000:00:1e.0 ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.HUB0._PRT] ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 7 *9 10 11 12 14 15) ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 *5 7 9 10 11 12 14 15) ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 5 7 9 10 *11 12 14 15) ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 5 7 9 *10 11 12 14 15) ACPI: PCI Interrupt Link [LNKE] (IRQs 3 4 5 *7 9 10 11 12 14 15) ACPI: PCI Interrupt Link [LNKF] (IRQs 3 4 *5 7 9 10 11 12 14 15) ACPI: PCI Interrupt Link [LNK0] (IRQs 3 4 5 7 9 10 *11 12 14 15) ACPI: PCI Interrupt Link [LNK1] (IRQs 3 4 5 7 9 *10 11 12 14 15) Linux Plug and Play Support v0.97 (c) Adam Belay pnp: the driver 'system' has been registered PnPBIOS: Scanning system for PnP BIOS support... PnPBIOS: Found PnP BIOS installation structure at 0xc00fbc00 PnPBIOS: PnP BIOS version 1.0, entry 0xf0000:0xbc30, dseg 0xf0000 pnp: match found with the PnP device '00:08' and the driver 'system' pnp: match found with the PnP device '00:09' and the driver 'system' PnPBIOS: 15 nodes reported by PnP BIOS; 15 recorded by driver SCSI subsystem initialized drivers/usb/core/usb.c: registered new driver usbfs drivers/usb/core/usb.c: registered new driver hub IOAPIC[0]: Set PCI routing entry (2-16 -> 0xa9 -> IRQ 16 Mode:1 Active:1) 00:00:1e[A] -> 2-16 -> IRQ 16 IOAPIC[0]: Set PCI routing entry (2-17 -> 0xb1 -> IRQ 17 Mode:1 Active:1) 00:00:1e[B] -> 2-17 -> IRQ 17 IOAPIC[0]: Set PCI routing entry (2-18 -> 0xb9 -> IRQ 18 Mode:1 Active:1) 00:00:1e[C] -> 2-18 -> IRQ 18 IOAPIC[0]: Set PCI routing entry (2-19 -> 0xc1 -> IRQ 19 Mode:1 Active:1) 00:00:1e[D] -> 2-19 -> IRQ 19 Pin 2-16 already programmed Pin 2-18 already programmed Pin 2-17 already programmed Pin 2-16 already programmed Pin 2-19 already programmed Pin 2-18 already programmed IOAPIC[0]: Set PCI routing entry (2-23 -> 0xc9 -> IRQ 23 Mode:1 Active:1) 00:00:1d[D] -> 2-23 -> IRQ 23 Pin 2-16 already programmed Pin 2-17 already programmed Pin 2-18 already programmed Pin 2-19 already programmed Pin 2-17 already programmed Pin 2-18 already programmed Pin 2-19 already programmed Pin 2-16 already programmed Pin 2-18 already programmed Pin 2-19 already programmed Pin 2-16 already programmed Pin 2-17 already programmed Pin 2-19 already programmed Pin 2-16 already programmed Pin 2-17 already programmed Pin 2-18 already programmed Pin 2-17 already programmed Pin 2-18 already programmed Pin 2-19 already programmed Pin 2-16 already programmed IOAPIC[0]: Set PCI routing entry (2-21 -> 0xd1 -> IRQ 21 Mode:1 Active:1) 00:02:05[A] -> 2-21 -> IRQ 21 Pin 2-21 already programmed Pin 2-21 already programmed Pin 2-21 already programmed Pin 2-23 already programmed Pin 2-23 already programmed Pin 2-23 already programmed Pin 2-23 already programmed IOAPIC[0]: Set PCI routing entry (2-20 -> 0xd9 -> IRQ 20 Mode:1 Active:1) 00:02:07[A] -> 2-20 -> IRQ 20 Pin 2-20 already programmed Pin 2-20 already programmed Pin 2-20 already programmed IOAPIC[0]: Set PCI routing entry (2-22 -> 0xe1 -> IRQ 22 Mode:1 Active:1) 00:02:0a[A] -> 2-22 -> IRQ 22 Pin 2-22 already programmed Pin 2-22 already programmed Pin 2-22 already programmed PCI: Using ACPI for IRQ routing PCI: if you experience problems, try using option 'pci=noacpi' or even 'acpi=off' pty: 256 Unix98 ptys configured Machine check exception polling timer started. IA-32 Microcode Update Driver: v1.11 <tigran@veritas.com> apm: BIOS version 1.2 Flags 0x07 (Driver version 1.16ac) apm: overridden by ACPI. ikconfig 0.6 with /proc/config* highmem bounce pool size: 64 pages Installing knfsd (copyright (C) 1996 okir@monad.swb.de). Initializing Cryptographic API ACPI: Power Button (FF) [PWRF] ACPI: Sleep Button (CM) [SLPB] ACPI: Fan [FAN] (on) ACPI: Processor [CPU0] (supports C1) ACPI: Thermal Zone [THRM] (46 C) isapnp: Scanning for PnP cards... isapnp: No Plug & Play device found Real Time Clock Driver v1.12 Non-volatile memory driver v1.2 hw_random: RNG not detected i810 TCO timer, v0.05: timer margin: 30 sec (0x0460) (nowayout=0) Serial: 8250/16550 driver $Revision: 1.90 $ IRQ sharing disabled ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A pnp: the driver 'serial' has been registered pnp: match found with the PnP device '00:0c' and the driver 'serial' pnp: match found with the PnP device '00:10' and the driver 'serial' pnp: the driver 'parport_pc' has been registered Using anticipatory scheduling io scheduler FDC 0 is a post-1991 82077 RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize loop: loaded (max 8 devices) Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2 ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx ICH4: IDE controller at PCI slot 0000:00:1f.1 ICH4: chipset revision 2 ICH4: not 100% native mode: will probe irqs later ide0: BM-DMA at 0xf000-0xf007, BIOS settings: hda:pio, hdb:pio ide1: BM-DMA at 0xf008-0xf00f, BIOS settings: hdc:DMA, hdd:pio hdc: SR244W, ATAPI CD/DVD-ROM drive ide1 at 0x170-0x177,0x376 on irq 15 PDC20276: IDE controller at PCI slot 0000:02:0a.0 PDC20276: chipset revision 1 PDC20276: 100% native mode on irq 22 ide2: BM-DMA at 0xcc00-0xcc07, BIOS settings: hde:pio, hdf:pio ide3: BM-DMA at 0xcc08-0xcc0f, BIOS settings: hdg:pio, hdh:pio hde: ST3160023A, ATA DISK drive ide2 at 0xbc00-0xbc07,0xc002 on irq 22 hdg: ST3160023A, ATA DISK drive ide3 at 0xc400-0xc407,0xc802 on irq 22 hde: max request size: 1024KiB hde: 312581808 sectors (160041 MB) w/8192KiB Cache, CHS=19457/255/63, UDMA(100) hde: hde1 hde2 hde3 hdg: max request size: 1024KiB hdg: 312581808 sectors (160041 MB) w/8192KiB Cache, CHS=19457/255/63, UDMA(100) hdg: hdg1 hdc: ATAPI 24X CD-ROM drive, 128kB Cache, UDMA(33) Uniform CD-ROM driver Revision: 3.12 ehci_hcd 0000:00:1d.7: EHCI Host Controller PCI: Setting latency timer of device 0000:00:1d.7 to 64 ehci_hcd 0000:00:1d.7: irq 23, pci mem f8807000 ehci_hcd 0000:00:1d.7: new USB bus registered, assigned bus number 1 ehci_hcd 0000:00:1d.7: enabled 64bit PCI DMA PCI: cache line size of 128 is not supported by device 0000:00:1d.7 ehci_hcd 0000:00:1d.7: USB 2.0 enabled, EHCI 1.00, driver 2003-Jun-13 hub 1-0:0: USB hub found hub 1-0:0: 6 ports detected drivers/usb/host/uhci-hcd.c: USB Universal Host Controller Interface driver v2.1 uhci-hcd 0000:00:1d.0: UHCI Host Controller PCI: Setting latency timer of device 0000:00:1d.0 to 64 uhci-hcd 0000:00:1d.0: irq 16, io base 0000d800 uhci-hcd 0000:00:1d.0: new USB bus registered, assigned bus number 2 hub 2-0:0: USB hub found hub 2-0:0: 2 ports detected uhci-hcd 0000:00:1d.1: UHCI Host Controller PCI: Setting latency timer of device 0000:00:1d.1 to 64 uhci-hcd 0000:00:1d.1: irq 19, io base 0000d000 uhci-hcd 0000:00:1d.1: new USB bus registered, assigned bus number 3 hub 3-0:0: USB hub found hub 3-0:0: 2 ports detected uhci-hcd 0000:00:1d.2: UHCI Host Controller PCI: Setting latency timer of device 0000:00:1d.2 to 64 uhci-hcd 0000:00:1d.2: irq 18, io base 0000d400 uhci-hcd 0000:00:1d.2: new USB bus registered, assigned bus number 4 hub 4-0:0: USB hub found hub 4-0:0: 2 ports detected Initializing USB Mass Storage driver... drivers/usb/core/usb.c: registered new driver usb-storage USB Mass Storage support registered. drivers/usb/core/usb.c: registered new driver hiddev drivers/usb/core/usb.c: registered new driver hid drivers/usb/input/hid-core.c: v2.0:USB HID core driver drivers/usb/serial/usb-serial.c: USB Serial support registered for Generic drivers/usb/core/usb.c: registered new driver usbserial drivers/usb/serial/usb-serial.c: USB Serial Driver core v2.0 drivers/usb/core/usb.c: registered new driver usblcd drivers/usb/misc/usblcd.c: USBLCD Driver Version 1.04 (C) Adams IT Services http://www.usblcd.de drivers/usb/misc/usblcd.c: USBLCD support registered. mice: PS/2 mouse device common for all mice input: PC Speaker input: ImPS/2 Generic Wheel Mouse on isa0060/serio1 serio: i8042 AUX port at 0x60,0x64 irq 12 input: AT Set 2 keyboard on isa0060/serio0 serio: i8042 KBD port at 0x60,0x64 irq 1 i2c /dev entries driver module version 2.7.0 (20021208) i2c-i801 version 2.7.0 (20021208) i2c-piix4 version 2.7.0 (20021208) registering 1-0290 oprofile: using NMI interrupt. NET: Registered protocol family 2 IP: routing cache hash table of 4096 buckets, 64Kbytes TCP: Hash tables configured (established 131072 bind 43690) Initializing IPsec netlink socket NET: Registered protocol family 1 NET: Registered protocol family 17 NET: Registered protocol family 15 BIOS EDD facility v0.09 2003-Jan-22, 2 devices found ACPI: (supports S0 S1 S4 S5) VFS: Mounted root (ext2 filesystem) readonly. Freeing unused kernel memory: 368k freed Adding 1959920k swap on /dev/hde2. Priority:-1 extents:1 Intel(R) PRO/1000 Network Driver - version 5.1.13-k2 Copyright (c) 1999-2003 Intel Corporation. eth0: Intel(R) PRO/1000 Network Connection e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex 00:00.0 Host bridge: Intel Corp. 82845 845 (Brookdale) Chipset Host Bridge (rev 11) 00:01.0 PCI bridge: Intel Corp. 82845 845 (Brookdale) Chipset AGP Bridge (rev 11) 00:1d.0 USB Controller: Intel Corp. 82801DB USB (Hub #1) (rev 02) 00:1d.1 USB Controller: Intel Corp. 82801DB USB (Hub #2) (rev 02) 00:1d.2 USB Controller: Intel Corp. 82801DB USB (Hub #3) (rev 02) 00:1d.7 USB Controller: Intel Corp. 82801DB USB EHCI Controller (rev 02) 00:1e.0 PCI bridge: Intel Corp. 82801BA/CA/DB PCI Bridge (rev 82) 00:1f.0 ISA bridge: Intel Corp. 82801DB ISA Bridge (LPC) (rev 02) 00:1f.1 IDE interface: Intel Corp. 82801DB ICH4 IDE (rev 02) 00:1f.3 SMBus: Intel Corp. 82801DB SMBus (rev 02) 02:05.0 Ethernet controller: Intel Corp. 82540EM Gigabit Ethernet Controller (rev 02) 02:06.0 Ethernet controller: Intel Corp. 82557/8/9 [Ethernet Pro 100] (rev 10) 02:07.0 VGA compatible controller: ATI Technologies Inc Rage XL (rev 27) 02:0a.0 RAID bus controller: Promise Technology, Inc. PDC20276 IDE (rev 01) CPU0 0: 3293854 IO-APIC-edge timer 1: 19 IO-APIC-edge i8042 2: 0 XT-PIC cascade 8: 4 IO-APIC-edge rtc 9: 1 IO-APIC-level acpi 12: 60 IO-APIC-edge i8042 15: 10 IO-APIC-edge ide1 16: 0 IO-APIC-level uhci-hcd 18: 0 IO-APIC-level uhci-hcd 19: 0 IO-APIC-level uhci-hcd 21: 32123 IO-APIC-level eth0 22: 1095 IO-APIC-level ide2, ide3 23: 0 IO-APIC-level ehci_hcd NMI: 0 LOC: 3293831 ERR: 0 MIS: 0 ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: Another keyboard woes with 2.6.0... 2003-09-12 16:50 Another keyboard woes with 2.6.0 Petr Vandrovec @ 2003-09-12 17:45 ` Zwane Mwaikambo 2003-09-16 21:23 ` Andries Brouwer 2003-09-13 19:06 ` Pekka Pietikainen 1 sibling, 1 reply; 20+ messages in thread From: Zwane Mwaikambo @ 2003-09-12 17:45 UTC (permalink / raw) To: Petr Vandrovec; +Cc: vojtech, linux-kernel On Fri, 12 Sep 2003, Petr Vandrovec wrote: > I have MicroStar MS-9211 box with connected to the KVM switch > MasterView CS-1016, which is connected to the some Chicony > keyboard. 2.4.x kernel works without problem, but when 2.6.0 > starts, immediately after input device driver is initialized it starts > thinking that F7 key is held down, and it stays that way until > I hit some other key to stop autorepeat... What debugging I > can do for you to get rid of screen full of '^[[18~' ? /bin/login > continuously complains about username being too long :-( Hi Petr, I have the same problem with an Avocent SwitchView and Keytronic keyboard, although it doesn't sound as bad as your problem. Occasionally some keys just repeat until i press another key. I'm not quite sure what kind of information Vojtech would like. The machine is 440BX based and kernel is 2.6.0-test3-mm1 CPU0 CPU1 0: 257421453 254104517 IO-APIC-edge timer 1: 424923 422774 IO-APIC-edge i8042 2: 0 0 XT-PIC cascade 3: 228634 228311 IO-APIC-edge serial 4: 116114 113964 IO-APIC-edge serial 8: 13986431 13605977 IO-APIC-edge rtc 12: 1836529 1831055 IO-APIC-edge i8042 14: 8919333 8754830 IO-APIC-edge ide0 15: 8852308 8762306 IO-APIC-edge ide1 16: 22023199 21397513 IO-APIC-level radeon@PCI:1:0:0 18: 11117225 10991498 IO-APIC-level aic7xxx, aic7xxx, EMU10K1 19: 10331810 10340569 IO-APIC-level uhci-hcd, eth0, eth1 NMI: 0 0 LOC: 511599000 511599061 ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: Another keyboard woes with 2.6.0... 2003-09-12 17:45 ` Zwane Mwaikambo @ 2003-09-16 21:23 ` Andries Brouwer 2003-09-16 22:45 ` Jamie Lokier ` (2 more replies) 0 siblings, 3 replies; 20+ messages in thread From: Andries Brouwer @ 2003-09-16 21:23 UTC (permalink / raw) To: Zwane Mwaikambo; +Cc: Petr Vandrovec, vojtech, linux-kernel On Fri, Sep 12, 2003 at 01:45:14PM -0400, Zwane Mwaikambo wrote: > I have the same problem with an Avocent SwitchView and Keytronic > keyboard, although it doesn't sound as bad as your problem. Occasionally > some keys just repeat until i press another key. In Petr's case it looks like his switch produces a single well-defined byte (0x41) when switching. What about you? Do you get garbage at the moment of switching, or always the same code(s)? Do you only get the spurious repeat when switching? Andrew gets spurious repeats together with mouse activity. Do you? I am especially interested in cases where people can reproduce an unwanted key repeat. The question is: is this a bug in our timer code or use of timers, or did the keyboard never send the key release code? (#define DEBUG in i8042.c) Andries ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: Another keyboard woes with 2.6.0... 2003-09-16 21:23 ` Andries Brouwer @ 2003-09-16 22:45 ` Jamie Lokier 2003-09-16 22:49 ` Zwane Mwaikambo 2003-10-06 22:08 ` Petr Vandrovec 2 siblings, 0 replies; 20+ messages in thread From: Jamie Lokier @ 2003-09-16 22:45 UTC (permalink / raw) To: Andries Brouwer; +Cc: Zwane Mwaikambo, Petr Vandrovec, vojtech, linux-kernel Andries Brouwer wrote: > I am especially interested in cases where people can reproduce > an unwanted key repeat. The question is: is this a bug in our timer code > or use of timers, or did the keyboard never send the key release code? I'm seeing bursts of keys when scrolling a lot on the console, but not long repeats. Perhaps the long delays in the console are preventing the timer from triggering on time? -- Jamie ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: Another keyboard woes with 2.6.0... 2003-09-16 21:23 ` Andries Brouwer 2003-09-16 22:45 ` Jamie Lokier @ 2003-09-16 22:49 ` Zwane Mwaikambo 2003-09-16 23:12 ` Zwane Mwaikambo 2003-10-06 22:08 ` Petr Vandrovec 2 siblings, 1 reply; 20+ messages in thread From: Zwane Mwaikambo @ 2003-09-16 22:49 UTC (permalink / raw) To: Andries Brouwer; +Cc: Petr Vandrovec, Vojtech Pavlik, Linux Kernel On Tue, 16 Sep 2003, Andries Brouwer wrote: > In Petr's case it looks like his switch produces a single well-defined > byte (0x41) when switching. What about you? Do you get garbage at the > moment of switching, or always the same code(s)? > Do you only get the spurious repeat when switching? > Andrew gets spurious repeats together with mouse activity. Do you? > > I am especially interested in cases where people can reproduce > an unwanted key repeat. The question is: is this a bug in our timer code > or use of timers, or did the keyboard never send the key release code? > > (#define DEBUG in i8042.c) Hi Andries, sorry for not following up. i'll enable and test this immediately, my case is a bit hard to reproduce (a matter of days) but if you'd like to see a capture from KVM switching i can do that. Follow up coming shortly... ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: Another keyboard woes with 2.6.0... 2003-09-16 22:49 ` Zwane Mwaikambo @ 2003-09-16 23:12 ` Zwane Mwaikambo 2003-09-16 23:18 ` Zwane Mwaikambo 2003-09-17 0:01 ` Andries Brouwer 0 siblings, 2 replies; 20+ messages in thread From: Zwane Mwaikambo @ 2003-09-16 23:12 UTC (permalink / raw) To: Andries Brouwer; +Cc: Petr Vandrovec, Vojtech Pavlik, Linux Kernel On Tue, 16 Sep 2003, Zwane Mwaikambo wrote: > On Tue, 16 Sep 2003, Andries Brouwer wrote: > > > In Petr's case it looks like his switch produces a single well-defined > > byte (0x41) when switching. What about you? Do you get garbage at the > > moment of switching, or always the same code(s)? > > Do you only get the spurious repeat when switching? > > Andrew gets spurious repeats together with mouse activity. Do you? Nope mouse activity doesn't seem to do it > > I am especially interested in cases where people can reproduce > > an unwanted key repeat. The question is: is this a bug in our timer code > > or use of timers, or did the keyboard never send the key release code? > > > > (#define DEBUG in i8042.c) > > Hi Andries, sorry for not following up. i'll enable and test this > immediately, my case is a bit hard to reproduce (a matter of days) but if > you'd like to see a capture from KVM switching i can do that. > > Follow up coming shortly... Here is an excerpt from a KVM switch, ls -l, KVM switch; drivers/input/serio/i8042.c: 26 <- i8042 (interrupt, kbd, 1) [150578] drivers/input/serio/i8042.c: 1f <- i8042 (interrupt, kbd, 1) [150654] drivers/input/serio/i8042.c: a6 <- i8042 (interrupt, kbd, 1) [150683] drivers/input/serio/i8042.c: 39 <- i8042 (interrupt, kbd, 1) [150713] drivers/input/serio/i8042.c: 9f <- i8042 (interrupt, kbd, 1) [150758] drivers/input/serio/i8042.c: 0c <- i8042 (interrupt, kbd, 1) [150789] drivers/input/serio/i8042.c: b9 <- i8042 (interrupt, kbd, 1) [150853] drivers/input/serio/i8042.c: 26 <- i8042 (interrupt, kbd, 1) [150884] drivers/input/serio/i8042.c: 8c <- i8042 (interrupt, kbd, 1) [150931] drivers/input/serio/i8042.c: a6 <- i8042 (interrupt, kbd, 1) [150986] drivers/input/serio/i8042.c: 1c <- i8042 (interrupt, kbd, 1) [151090] drivers/input/serio/i8042.c: 9c <- i8042 (interrupt, kbd, 1) [151208] drivers/input/serio/i8042.c: 1d <- i8042 (interrupt, kbd, 1) [152374] drivers/input/serio/i8042.c: 9d <- i8042 (interrupt, kbd, 1) [152439] drivers/input/serio/i8042.c: 1d <- i8042 (interrupt, kbd, 1) [152653] drivers/input/serio/i8042.c: 9d <- i8042 (interrupt, kbd, 1) [152708] Need something more specific? ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: Another keyboard woes with 2.6.0... 2003-09-16 23:12 ` Zwane Mwaikambo @ 2003-09-16 23:18 ` Zwane Mwaikambo 2003-09-17 0:01 ` Andries Brouwer 1 sibling, 0 replies; 20+ messages in thread From: Zwane Mwaikambo @ 2003-09-16 23:18 UTC (permalink / raw) To: Andries Brouwer; +Cc: Petr Vandrovec, Vojtech Pavlik, Linux Kernel On Tue, 16 Sep 2003, Zwane Mwaikambo wrote: > Here is an excerpt from a KVM switch, ls -l, KVM switch; > > drivers/input/serio/i8042.c: 26 <- i8042 (interrupt, kbd, 1) [150578] > drivers/input/serio/i8042.c: 1f <- i8042 (interrupt, kbd, 1) [150654] > drivers/input/serio/i8042.c: a6 <- i8042 (interrupt, kbd, 1) [150683] > drivers/input/serio/i8042.c: 39 <- i8042 (interrupt, kbd, 1) [150713] > drivers/input/serio/i8042.c: 9f <- i8042 (interrupt, kbd, 1) [150758] > drivers/input/serio/i8042.c: 0c <- i8042 (interrupt, kbd, 1) [150789] > drivers/input/serio/i8042.c: b9 <- i8042 (interrupt, kbd, 1) [150853] > drivers/input/serio/i8042.c: 26 <- i8042 (interrupt, kbd, 1) [150884] > drivers/input/serio/i8042.c: 8c <- i8042 (interrupt, kbd, 1) [150931] > drivers/input/serio/i8042.c: a6 <- i8042 (interrupt, kbd, 1) [150986] > drivers/input/serio/i8042.c: 1c <- i8042 (interrupt, kbd, 1) [151090] > drivers/input/serio/i8042.c: 9c <- i8042 (interrupt, kbd, 1) [151208] > drivers/input/serio/i8042.c: 1d <- i8042 (interrupt, kbd, 1) [152374] > drivers/input/serio/i8042.c: 9d <- i8042 (interrupt, kbd, 1) [152439] > drivers/input/serio/i8042.c: 1d <- i8042 (interrupt, kbd, 1) [152653] > drivers/input/serio/i8042.c: 9d <- i8042 (interrupt, kbd, 1) [152708] > > Need something more specific? Perhaps i should mention that a KVM switch entails two ctrls in close succession. ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: Another keyboard woes with 2.6.0... 2003-09-16 23:12 ` Zwane Mwaikambo 2003-09-16 23:18 ` Zwane Mwaikambo @ 2003-09-17 0:01 ` Andries Brouwer 1 sibling, 0 replies; 20+ messages in thread From: Andries Brouwer @ 2003-09-17 0:01 UTC (permalink / raw) To: Zwane Mwaikambo Cc: Andries Brouwer, Petr Vandrovec, Vojtech Pavlik, Linux Kernel On Tue, Sep 16, 2003 at 07:12:48PM -0400, Zwane Mwaikambo wrote: > Here is an excerpt from a KVM switch, ls -l, KVM switch; > > i8042.c: 26 <- i8042 (interrupt, kbd, 1) [150578]: l > i8042.c: 1f <- i8042 (interrupt, kbd, 1) [150654]: s > i8042.c: a6 <- i8042 (interrupt, kbd, 1) [150683]: l release > i8042.c: 39 <- i8042 (interrupt, kbd, 1) [150713]: space > i8042.c: 9f <- i8042 (interrupt, kbd, 1) [150758]: s release > i8042.c: 0c <- i8042 (interrupt, kbd, 1) [150789]: - > i8042.c: b9 <- i8042 (interrupt, kbd, 1) [150853]: space release > i8042.c: 26 <- i8042 (interrupt, kbd, 1) [150884]: l > i8042.c: 8c <- i8042 (interrupt, kbd, 1) [150931]: - release > i8042.c: a6 <- i8042 (interrupt, kbd, 1) [150986]: l release > i8042.c: 1c <- i8042 (interrupt, kbd, 1) [151090]: enter > i8042.c: 9c <- i8042 (interrupt, kbd, 1) [151208]: enter release > i8042.c: 1d <- i8042 (interrupt, kbd, 1) [152374]: LCtrl > i8042.c: 9d <- i8042 (interrupt, kbd, 1) [152439]: LCtrl release > i8042.c: 1d <- i8042 (interrupt, kbd, 1) [152653]: LCtrl > i8042.c: 9d <- i8042 (interrupt, kbd, 1) [152708]: LCtrl release Thanks! Nothing disturbing from your switch. Andries ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: Another keyboard woes with 2.6.0... 2003-09-16 21:23 ` Andries Brouwer 2003-09-16 22:45 ` Jamie Lokier 2003-09-16 22:49 ` Zwane Mwaikambo @ 2003-10-06 22:08 ` Petr Vandrovec 2003-10-14 18:16 ` Petr Vandrovec 2 siblings, 1 reply; 20+ messages in thread From: Petr Vandrovec @ 2003-10-06 22:08 UTC (permalink / raw) To: vojtech; +Cc: Zwane Mwaikambo, linux-kernel On Tue, Sep 16, 2003 at 11:23:18PM +0200, Andries Brouwer wrote: > > I am especially interested in cases where people can reproduce > an unwanted key repeat. The question is: is this a bug in our timer code > or use of timers, or did the keyboard never send the key release code? > > (#define DEBUG in i8042.c) Hi, after three weeks running with DEBUG enabled I decided (well, I lost this patch somewhere while patching my kernel sometime last week) to disable it - and kaboom, I got (twice, but yesterday I rebooted box hard, as I thought that it is dead) strange lockup, where box stoped reacting on keyboard. After playing with mouse's cut&paste I was able to get at dmesg, and after 'setleds -V +num' keyboard returned back to live. And it looks to me like a genuine race. When I was switching from console with numlock enabled to console with numlock disabled, message below was printed by kernel, and keyboard stopped working (probably waiting for second byte from setleds command). I'll now reenable DEBUG in i8042, and problem will hopefully disappear... atkbd.c: Unknown key released (translated set 2, code 0x165, data 0xfa, on isa0060/serio0). Best regards, Petr Vandrovec vandrove@vc.cvut.cz ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: Another keyboard woes with 2.6.0... 2003-10-06 22:08 ` Petr Vandrovec @ 2003-10-14 18:16 ` Petr Vandrovec 2003-10-14 21:27 ` Andries Brouwer 0 siblings, 1 reply; 20+ messages in thread From: Petr Vandrovec @ 2003-10-14 18:16 UTC (permalink / raw) To: vojtech; +Cc: Zwane Mwaikambo, linux-kernel On Tue, Oct 07, 2003 at 12:08:47AM +0200, Petr Vandrovec wrote: > On Tue, Sep 16, 2003 at 11:23:18PM +0200, Andries Brouwer wrote: > > > > I am especially interested in cases where people can reproduce > > an unwanted key repeat. The question is: is this a bug in our timer code > > or use of timers, or did the keyboard never send the key release code? > > > > (#define DEBUG in i8042.c) > > Hi, > after three weeks running with DEBUG enabled I decided (well, I lost this patch > somewhere while patching my kernel sometime last week) to disable it - and kaboom, I > got (twice, but yesterday I rebooted box hard, as I thought that it is dead) > strange lockup, where box stoped reacting on keyboard. After playing with > mouse's cut&paste I was able to get at dmesg, and after 'setleds -V +num' keyboard > returned back to live. > > And it looks to me like a genuine race. When I was switching from console > with numlock enabled to console with numlock disabled, message below was printed > by kernel, and keyboard stopped working (probably waiting for second byte from > setleds command). I'll now reenable DEBUG in i8042, and problem will hopefully > disappear... > > atkbd.c: Unknown key released (translated set 2, code 0x165, data 0xfa, on isa0060/serio0). Got it again. This time with detailed logging. We start sending ED xx when we were in the middle of E0 xx sequence, and things went downhill. Reconnecting keyboard was only way to go. As far as I can see, my keyboard stops sending scancodes when it receives ED command, and continues only when it receives second data byte, for making life easier for driver writters (or maybe it is specced that way, who knows). Unfortunately we never sent second byte of command. Kernel was 2.6.0-test7-bk5 (or something simillar, from yesterday's evening bitkeeper). Petr Vandrovec Oct 14 19:59:17 ppc kernel: drivers/input/serio/i8042.c: e0 <- i8042 (interrupt, kbd, 1) [30114238] Oct 14 19:59:17 ppc kernel: drivers/input/serio/i8042.c: 4b <- i8042 (interrupt, kbd, 1) [30114244] Oct 14 19:59:17 ppc kernel: drivers/input/serio/i8042.c: e0 <- i8042 (interrupt, kbd, 1) [30114336] Oct 14 19:59:17 ppc kernel: drivers/input/serio/i8042.c: cb <- i8042 (interrupt, kbd, 1) [30114347] Oct 14 19:59:17 ppc kernel: drivers/input/serio/i8042.c: e0 <- i8042 (interrupt, kbd, 1) [30114733] Oct 14 19:59:17 ppc kernel: drivers/input/serio/i8042.c: 4d <- i8042 (interrupt, kbd, 1) [30114738] Oct 14 19:59:17 ppc kernel: drivers/input/serio/i8042.c: e0 <- i8042 (interrupt, kbd, 1) [30114823] Oct 14 19:59:17 ppc kernel: drivers/input/serio/i8042.c: cd <- i8042 (interrupt, kbd, 1) [30114834] Oct 14 19:59:18 ppc kernel: drivers/input/serio/i8042.c: e0 <- i8042 (interrupt, kbd, 1) [30115068] Oct 14 19:59:18 ppc kernel: drivers/input/serio/i8042.c: 4d <- i8042 (interrupt, kbd, 1) [30115073] Oct 14 19:59:18 ppc kernel: drivers/input/serio/i8042.c: ed -> i8042 (kbd-data) [30115074] Oct 14 19:59:18 ppc kernel: drivers/input/serio/i8042.c: fa <- i8042 (interrupt, kbd, 1) [30115077] Oct 14 19:59:18 ppc kernel: drivers/input/serio/i8042.c: 02 -> i8042 (kbd-data) [30115077] Oct 14 19:59:18 ppc kernel: drivers/input/serio/i8042.c: fa <- i8042 (interrupt, kbd, 1) [30115081] Oct 14 19:59:18 ppc kernel: drivers/input/serio/i8042.c: e0 <- i8042 (interrupt, kbd, 1) [30115148] Oct 14 19:59:18 ppc kernel: drivers/input/serio/i8042.c: cd <- i8042 (interrupt, kbd, 1) [30115159] Oct 14 19:59:18 ppc kernel: drivers/input/serio/i8042.c: e0 <- i8042 (interrupt, kbd, 1) [30115293] Oct 14 19:59:18 ppc kernel: drivers/input/serio/i8042.c: 2a <- i8042 (interrupt, kbd, 1) [30115298] Oct 14 19:59:18 ppc kernel: drivers/input/serio/i8042.c: e0 <- i8042 (interrupt, kbd, 1) [30115304] Oct 14 19:59:18 ppc kernel: drivers/input/serio/i8042.c: 4d <- i8042 (interrupt, kbd, 1) [30115309] Oct 14 19:59:18 ppc kernel: drivers/input/serio/i8042.c: e0 <- i8042 (interrupt, kbd, 1) [30115325] Oct 14 19:59:18 ppc kernel: drivers/input/serio/i8042.c: cd <- i8042 (interrupt, kbd, 1) [30115335] Oct 14 19:59:18 ppc kernel: drivers/input/serio/i8042.c: e0 <- i8042 (interrupt, kbd, 1) [30115341] Oct 14 19:59:18 ppc kernel: drivers/input/serio/i8042.c: ed -> i8042 (kbd-data) [30115342] Oct 14 19:59:18 ppc kernel: drivers/input/serio/i8042.c: fa <- i8042 (interrupt, kbd, 1) [30115346] Oct 14 19:59:18 ppc kernel: atkbd.c: Unknown key released (translated set 2, code 0x165, data 0xfa, on isa0060/serio0). Oct 14 19:59:35 ppc kernel: drivers/input/serio/i8042.c: 28 <- i8042 (interrupt, aux, 12) [30131884] Oct 14 19:59:35 ppc kernel: drivers/input/serio/i8042.c: 00 <- i8042 (interrupt, aux, 12) [30131885] Oct 14 19:59:35 ppc kernel: drivers/input/serio/i8042.c: ff <- i8042 (interrupt, aux, 12) [30131887] Oct 14 19:59:35 ppc kernel: drivers/input/serio/i8042.c: 00 <- i8042 (interrupt, aux, 12) [30131888] Oct 14 19:59:35 ppc kernel: drivers/input/serio/i8042.c: 18 <- i8042 (interrupt, aux, 12) [30131894] Oct 14 19:59:35 ppc kernel: drivers/input/serio/i8042.c: fd <- i8042 (interrupt, aux, 12) [30131895] ... removed dozens of lines where I was moving mouse ... Oct 14 19:59:53 ppc kernel: drivers/input/serio/i8042.c: 00 <- i8042 (interrupt, aux, 12) [30150297] Oct 14 19:59:53 ppc kernel: drivers/input/serio/i8042.c: 08 <- i8042 (interrupt, aux, 12) [30150317] Oct 14 19:59:53 ppc kernel: drivers/input/serio/i8042.c: 01 <- i8042 (interrupt, aux, 12) [30150318] Oct 14 19:59:53 ppc kernel: drivers/input/serio/i8042.c: 00 <- i8042 (interrupt, aux, 12) [30150319] Oct 14 19:59:53 ppc kernel: drivers/input/serio/i8042.c: 00 <- i8042 (interrupt, aux, 12) [30150320] [disconnected & connected back keyboard] Oct 14 20:00:25 ppc kernel: drivers/input/serio/i8042.c: ff <- i8042 (interrupt, kbd, 1, timeout) [30182119] Oct 14 20:00:25 ppc kernel: atkbd.c: Unknown key released (translated set 2, code 0x6e, data 0xff, on isa0060/serio0). Oct 14 20:00:25 ppc kernel: drivers/input/serio/i8042.c: aa <- i8042 (interrupt, kbd, 1) [30182791] Oct 14 20:00:25 ppc kernel: drivers/input/serio/i8042.c: 60 -> i8042 (command) [30182791] Oct 14 20:00:25 ppc kernel: drivers/input/serio/i8042.c: 46 -> i8042 (parameter) [30182791] Oct 14 20:00:25 ppc kernel: drivers/input/serio/i8042.c: 60 -> i8042 (command) [30182791] Oct 14 20:00:25 ppc kernel: drivers/input/serio/i8042.c: 47 -> i8042 (parameter) [30182791] Oct 14 20:00:25 ppc kernel: drivers/input/serio/i8042.c: f2 -> i8042 (kbd-data) [30182791] Oct 14 20:00:25 ppc kernel: drivers/input/serio/i8042.c: fa <- i8042 (interrupt, kbd, 1) [30182795] Oct 14 20:00:25 ppc kernel: drivers/input/serio/i8042.c: ab <- i8042 (interrupt, kbd, 1) [30182796] Oct 14 20:00:25 ppc kernel: drivers/input/serio/i8042.c: 41 <- i8042 (interrupt, kbd, 1) [30182798] Oct 14 20:00:25 ppc kernel: drivers/input/serio/i8042.c: ed -> i8042 (kbd-data) [30182798] Oct 14 20:00:25 ppc kernel: drivers/input/serio/i8042.c: fa <- i8042 (interrupt, kbd, 1) [30182801] Oct 14 20:00:25 ppc kernel: drivers/input/serio/i8042.c: 00 -> i8042 (kbd-data) [30182801] Oct 14 20:00:25 ppc kernel: drivers/input/serio/i8042.c: fa <- i8042 (interrupt, kbd, 1) [30182805] Oct 14 20:00:25 ppc kernel: drivers/input/serio/i8042.c: f3 -> i8042 (kbd-data) [30182805] Oct 14 20:00:25 ppc kernel: drivers/input/serio/i8042.c: fa <- i8042 (interrupt, kbd, 1) [30182809] Oct 14 20:00:25 ppc kernel: drivers/input/serio/i8042.c: 00 -> i8042 (kbd-data) [30182809] Oct 14 20:00:25 ppc kernel: drivers/input/serio/i8042.c: fa <- i8042 (interrupt, kbd, 1) [30182812] Oct 14 20:00:25 ppc kernel: drivers/input/serio/i8042.c: f4 -> i8042 (kbd-data) [30182812] Oct 14 20:00:25 ppc kernel: drivers/input/serio/i8042.c: fa <- i8042 (interrupt, kbd, 1) [30182816] Oct 14 20:00:25 ppc kernel: input: AT Translated Set 2 keyboard on isa0060/serio0 Oct 14 20:00:29 ppc kernel: drivers/input/serio/i8042.c: 45 <- i8042 (interrupt, kbd, 1) [30186679] Oct 14 20:00:29 ppc kernel: drivers/input/serio/i8042.c: ed -> i8042 (kbd-data) [30186679] Oct 14 20:00:29 ppc kernel: drivers/input/serio/i8042.c: fa <- i8042 (interrupt, kbd, 1) [30186683] Oct 14 20:00:29 ppc kernel: drivers/input/serio/i8042.c: 02 -> i8042 (kbd-data) [30186683] Oct 14 20:00:29 ppc kernel: drivers/input/serio/i8042.c: fa <- i8042 (interrupt, kbd, 1) [30186687] Oct 14 20:00:29 ppc kernel: drivers/input/serio/i8042.c: c5 <- i8042 (interrupt, kbd, 1) [30186770] Oct 14 20:00:30 ppc kernel: drivers/input/serio/i8042.c: 45 <- i8042 (interrupt, kbd, 1) [30186986] Oct 14 20:00:30 ppc kernel: drivers/input/serio/i8042.c: ed -> i8042 (kbd-data) [30186986] Oct 14 20:00:30 ppc kernel: drivers/input/serio/i8042.c: fa <- i8042 (interrupt, kbd, 1) [30186991] Oct 14 20:00:30 ppc kernel: drivers/input/serio/i8042.c: 00 -> i8042 (kbd-data) [30186991] Oct 14 20:00:30 ppc kernel: drivers/input/serio/i8042.c: fa <- i8042 (interrupt, kbd, 1) [30186994] Oct 14 20:00:30 ppc kernel: drivers/input/serio/i8042.c: c5 <- i8042 (interrupt, kbd, 1) [30187057] ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: Another keyboard woes with 2.6.0... 2003-10-14 18:16 ` Petr Vandrovec @ 2003-10-14 21:27 ` Andries Brouwer 0 siblings, 0 replies; 20+ messages in thread From: Andries Brouwer @ 2003-10-14 21:27 UTC (permalink / raw) To: Petr Vandrovec; +Cc: vojtech, Zwane Mwaikambo, linux-kernel On Tue, Oct 14, 2003 at 08:16:06PM +0200, Petr Vandrovec wrote: > Got it again. This time with detailed logging. Excellent. This immediately shows another bug in the code. > Oct 14 19:59:18 ppc kernel: i8042.c: e0 <- i8042 (interrupt, kbd, 1) [30115341] > Oct 14 19:59:18 ppc kernel: i8042.c: ed -> i8042 (kbd-data) [30115342] > Oct 14 19:59:18 ppc kernel: i8042.c: fa <- i8042 (interrupt, kbd, 1) [30115346] > Oct 14 19:59:18 ppc kernel: atkbd.c: Unknown key released (translated set 2, code 0x165, data 0xfa, on isa0060/serio0). The code (some version of 2.6.0-test6) says if (atkbd->translated) do { if (atkbd->emul != 1) { if (code == ATKBD_RET_ACK) break; ... } if (code < 0x80) { code = atkbd_unxlate_table[code]; break; } code = atkbd_unxlate_table[code & 0x7f]; } Here an e0 preceded, setting the atkbd->emul flag. Now the acknowledge for the 0xed command was not recognized as ATKBD_RET_ACK and untranslated as if it were a keystroke. Yes, I hope to convince Vojtech that untranslating is evil. The question is: what to do with a protocol scancode? My answer from long ago was: view it as a protocol scancode only when it is expected - after we send a command we expect an ACK. And indeed, 2.4 still has if (reply_expected) { if (scancode == KBD_REPLY_ACK) { acknowledge = 1; reply_expected = 0; ... That is, the right way, or at least the way that worked since 1.1.54, is to test only for KBD_REPLY_ACK when we just sent something. The wrong solution follows below (not compiled or tested): --- atkbd.c~ Mon Sep 29 09:12:26 2003 +++ atkbd.c Tue Oct 14 23:15:57 2003 @@ -183,11 +183,19 @@ atkbd->resend = 0; #endif + switch (code) { + case ATKBD_RET_ACK: + atkbd->ack = 1; + goto out; + case ATKBD_RET_NAK: + atkbd->ack = -1; + goto out; + } + if (atkbd->translated) do { if (atkbd->emul != 1) { - if (code == ATKBD_RET_EMUL0 || code == ATKBD_RET_EMUL1 || - code == ATKBD_RET_ACK || code == ATKBD_RET_NAK) + if (code == ATKBD_RET_EMUL0 || code == ATKBD_RET_EMUL1) break; if (code == ATKBD_RET_BAT) { if (!atkbd->bat_xl) @@ -211,15 +219,6 @@ } while (0); - switch (code) { - case ATKBD_RET_ACK: - atkbd->ack = 1; - goto out; - case ATKBD_RET_NAK: - atkbd->ack = -1; - goto out; - } - if (atkbd->cmdcnt) { atkbd->cmdbuf[--atkbd->cmdcnt] = code; goto out; (This is right for the great majority of people that does not have fa,fe occur as non-protocol scancodes. In rare cases some more surgery is needed. Left to Vojtech.) Andries [patch against some source similar to 2.6.0-test6] ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: Another keyboard woes with 2.6.0... 2003-09-12 16:50 Another keyboard woes with 2.6.0 Petr Vandrovec 2003-09-12 17:45 ` Zwane Mwaikambo @ 2003-09-13 19:06 ` Pekka Pietikainen 1 sibling, 0 replies; 20+ messages in thread From: Pekka Pietikainen @ 2003-09-13 19:06 UTC (permalink / raw) To: Petr Vandrovec; +Cc: vojtech, linux-kernel On Fri, Sep 12, 2003 at 06:50:44PM +0200, Petr Vandrovec wrote: > Hi Vojtech, > keyboard. 2.4.x kernel works without problem, but when 2.6.0 > starts, immediately after input device driver is initialized it starts > thinking that F7 key is held down, and it stays that way until > I hit some other key to stop autorepeat... What debugging I > can do for you to get rid of screen full of '^[[18~' ? /bin/login > continuously complains about username being too long :-( Hi I wonder if the bug I'm seeing, http://bugme.osdl.org/show_bug.cgi?id=1121 is related to this at all. Basically if a key is pressed down when the input gets passed on from the boot-up compatibility mode to the full USB stuff it gets stuck permanently. -- Pekka Pietikainen ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: Another keyboard woes with 2.6.0...
@ 2003-09-12 18:33 Petr Vandrovec
2003-09-13 18:52 ` Andries Brouwer
0 siblings, 1 reply; 20+ messages in thread
From: Petr Vandrovec @ 2003-09-12 18:33 UTC (permalink / raw)
To: Zwane Mwaikambo; +Cc: vojtech, linux-kernel
On 12 Sep 03 at 13:45, Zwane Mwaikambo wrote:
> On Fri, 12 Sep 2003, Petr Vandrovec wrote:
>
> > I have MicroStar MS-9211 box with connected to the KVM switch
> > MasterView CS-1016, which is connected to the some Chicony
> > keyboard. 2.4.x kernel works without problem, but when 2.6.0
> > starts, immediately after input device driver is initialized it starts
> > thinking that F7 key is held down, and it stays that way until
> > I hit some other key to stop autorepeat... What debugging I
> > can do for you to get rid of screen full of '^[[18~' ? /bin/login
> > continuously complains about username being too long :-(
>
> Hi Petr,
> I have the same problem with an Avocent SwitchView and Keytronic
> keyboard, although it doesn't sound as bad as your problem. Occasionally
> some keys just repeat until i press another key. I'm not quite sure what
> kind of information Vojtech would like. The machine is 440BX based and
> kernel is 2.6.0-test3-mm1
Andries is already gathering info for this one. This problem (missed
key release) happens to me on all systems I have (Athlon + via, P3 + i440BX,
P4 + 845...), most often when I do alt+right-arrow for walking through
consoles (and for Andries: hitting key stops this, otherwise it
endlessly switches all VTs around, and while kernel thinks that key
is down, keyboard actually does not generate any IRQs, so keyboard knows
that all keys are released).
Petr
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: Another keyboard woes with 2.6.0... 2003-09-12 18:33 Petr Vandrovec @ 2003-09-13 18:52 ` Andries Brouwer 2003-09-13 21:40 ` Petr Vandrovec 0 siblings, 1 reply; 20+ messages in thread From: Andries Brouwer @ 2003-09-13 18:52 UTC (permalink / raw) To: Petr Vandrovec; +Cc: Zwane Mwaikambo, vojtech, linux-kernel On Fri, Sep 12, 2003 at 08:33:24PM +0200, Petr Vandrovec wrote: > Andries is already gathering info for this one. This problem (missed > key release) happens to me on all systems I have (Athlon + via, P3 + i440BX, > P4 + 845...), most often when I do alt+right-arrow for walking through > consoles (and for Andries: hitting key stops this, otherwise it > endlessly switches all VTs around, and while kernel thinks that key > is down, keyboard actually does not generate any IRQs, so keyboard knows > that all keys are released). OK. It seems to me the two main hypotheses are: (i) problem with timers, (ii) problem with keyboard. In other words: could you (and/or anybody else who can reproduce this at will) change the #undef DEBUG in i8042.c to #define DEBUG, recreate the problem, and post or mail the resulting file with keystrokes? [of course: cut away parts corresponding to login sequences etc.] This will probably allow us to decide whether the missing key release was never sent by the keyboard, or was lost by the kernel. Andries aeb@cwi.nl ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: Another keyboard woes with 2.6.0... 2003-09-13 18:52 ` Andries Brouwer @ 2003-09-13 21:40 ` Petr Vandrovec 2003-09-14 10:13 ` Andries Brouwer 2003-09-19 11:38 ` Vojtech Pavlik 0 siblings, 2 replies; 20+ messages in thread From: Petr Vandrovec @ 2003-09-13 21:40 UTC (permalink / raw) To: Andries Brouwer; +Cc: Zwane Mwaikambo, vojtech, linux-kernel On Sat, Sep 13, 2003 at 08:52:44PM +0200, Andries Brouwer wrote: > On Fri, Sep 12, 2003 at 08:33:24PM +0200, Petr Vandrovec wrote: > > > Andries is already gathering info for this one. This problem (missed > > key release) happens to me on all systems I have (Athlon + via, P3 + i440BX, > > P4 + 845...), most often when I do alt+right-arrow for walking through > > consoles (and for Andries: hitting key stops this, otherwise it > > endlessly switches all VTs around, and while kernel thinks that key > > is down, keyboard actually does not generate any IRQs, so keyboard knows > > that all keys are released). > > OK. It seems to me the two main hypotheses are: (i) problem with timers, > (ii) problem with keyboard. > > In other words: could you (and/or anybody else who can reproduce this > at will) change the #undef DEBUG in i8042.c to #define DEBUG, recreate > the problem, and post or mail the resulting file with keystrokes? > > [of course: cut away parts corresponding to login sequences etc.] > > This will probably allow us to decide whether the missing key release > was never sent by the keyboard, or was lost by the kernel. Unfortunately I'm at home, while box is at work, so I could only reboot it, and confirm that it happened again. Unfortunately I cannot go to the box and hit any key to get some more data. But I'll enable this on my workstation, and if I'll get some "unexpected keycode" or "keyboard reconnect" errors again, I'll have more data in the hand. >From log it looks like that switch likes 0x41 a lot: it reports ID 0x41AB, it reports current scan set 0x41, and when we enable it, it returns spurious 0x41... And the last 0x41 is one which confuses everything. Thanks, Petr Linux version 2.6.0-test5-c1283 (root@placatec) (gcc version 3.3.2 20030908 (Debian prerelease)) #5 SMP Sat Sep 13 23:11:05 CEST 2003 [...] drivers/usb/misc/usblcd.c: USBLCD Driver Version 1.04 (C) Adams IT Services http://www.usblcd.de drivers/usb/misc/usblcd.c: USBLCD support registered. mice: PS/2 mouse device common for all mice input: PC Speaker 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) [0] drivers/input/serio/i8042.c: 56 -> 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) [1] drivers/input/serio/i8042.c: a4 -> i8042 (parameter) [1] drivers/input/serio/i8042.c: 5b <- i8042 (return) [1] drivers/input/serio/i8042.c: d3 -> i8042 (command) [1] drivers/input/serio/i8042.c: 5a -> i8042 (parameter) [1] drivers/input/serio/i8042.c: a5 <- i8042 (return) [1] drivers/input/serio/i8042.c: a7 -> i8042 (command) [1] drivers/input/serio/i8042.c: 20 -> i8042 (command) [1] drivers/input/serio/i8042.c: 76 <- i8042 (return) [1] drivers/input/serio/i8042.c: a8 -> i8042 (command) [1] drivers/input/serio/i8042.c: 20 -> i8042 (command) [1] drivers/input/serio/i8042.c: 56 <- i8042 (return) [1] drivers/input/serio/i8042.c: 60 -> i8042 (command) [1] drivers/input/serio/i8042.c: 74 -> i8042 (parameter) [1] drivers/input/serio/i8042.c: 60 -> i8042 (command) [1] drivers/input/serio/i8042.c: 54 -> i8042 (parameter) [1] drivers/input/serio/i8042.c: 60 -> i8042 (command) [2] drivers/input/serio/i8042.c: 56 -> i8042 (parameter) [2] drivers/input/serio/i8042.c: d4 -> i8042 (command) [2] drivers/input/serio/i8042.c: f2 -> i8042 (parameter) [2] drivers/input/serio/i8042.c: fa <- i8042 (interrupt, aux, 12) [5] drivers/input/serio/i8042.c: 00 <- i8042 (interrupt, aux, 12) [6] drivers/input/serio/i8042.c: 60 -> i8042 (command) [6] drivers/input/serio/i8042.c: 54 -> i8042 (parameter) [6] drivers/input/serio/i8042.c: 60 -> i8042 (command) [6] drivers/input/serio/i8042.c: 56 -> i8042 (parameter) [6] drivers/input/serio/i8042.c: d4 -> i8042 (command) [7] drivers/input/serio/i8042.c: f2 -> i8042 (parameter) [7] drivers/input/serio/i8042.c: fa <- i8042 (interrupt, aux, 12) [10] drivers/input/serio/i8042.c: 00 <- i8042 (interrupt, aux, 12) [11] drivers/input/serio/i8042.c: d4 -> i8042 (command) [11] drivers/input/serio/i8042.c: f6 -> i8042 (parameter) [11] drivers/input/serio/i8042.c: fa <- i8042 (interrupt, aux, 12) [15] drivers/input/serio/i8042.c: d4 -> i8042 (command) [15] drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [15] drivers/input/serio/i8042.c: fa <- i8042 (interrupt, aux, 12) [18] drivers/input/serio/i8042.c: d4 -> i8042 (command) [18] drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [18] drivers/input/serio/i8042.c: fa <- i8042 (interrupt, aux, 12) [21] drivers/input/serio/i8042.c: d4 -> i8042 (command) [21] drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [21] drivers/input/serio/i8042.c: fa <- i8042 (interrupt, aux, 12) [25] drivers/input/serio/i8042.c: d4 -> i8042 (command) [25] drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [25] drivers/input/serio/i8042.c: fa <- i8042 (interrupt, aux, 12) [28] drivers/input/serio/i8042.c: d4 -> i8042 (command) [28] drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [28] drivers/input/serio/i8042.c: fa <- i8042 (interrupt, aux, 12) [32] drivers/input/serio/i8042.c: d4 -> i8042 (command) [32] drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [32] drivers/input/serio/i8042.c: fa <- i8042 (interrupt, aux, 12) [35] drivers/input/serio/i8042.c: d4 -> i8042 (command) [35] drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [35] drivers/input/serio/i8042.c: fa <- i8042 (interrupt, aux, 12) [39] drivers/input/serio/i8042.c: d4 -> i8042 (command) [39] drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [39] drivers/input/serio/i8042.c: fa <- i8042 (interrupt, aux, 12) [42] drivers/input/serio/i8042.c: d4 -> i8042 (command) [42] drivers/input/serio/i8042.c: e9 -> i8042 (parameter) [42] drivers/input/serio/i8042.c: fa <- i8042 (interrupt, aux, 12) [46] drivers/input/serio/i8042.c: 00 <- i8042 (interrupt, aux, 12) [47] drivers/input/serio/i8042.c: 00 <- i8042 (interrupt, aux, 12) [48] drivers/input/serio/i8042.c: 28 <- i8042 (interrupt, aux, 12) [49] drivers/input/serio/i8042.c: d4 -> i8042 (command) [49] drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [49] drivers/input/serio/i8042.c: fa <- i8042 (interrupt, aux, 12) [53] drivers/input/serio/i8042.c: d4 -> i8042 (command) [53] drivers/input/serio/i8042.c: 03 -> i8042 (parameter) [53] drivers/input/serio/i8042.c: fa <- i8042 (interrupt, aux, 12) [56] drivers/input/serio/i8042.c: d4 -> i8042 (command) [56] drivers/input/serio/i8042.c: e6 -> i8042 (parameter) [56] drivers/input/serio/i8042.c: fa <- i8042 (interrupt, aux, 12) [60] drivers/input/serio/i8042.c: d4 -> i8042 (command) [60] drivers/input/serio/i8042.c: e6 -> i8042 (parameter) [60] drivers/input/serio/i8042.c: fa <- i8042 (interrupt, aux, 12) [63] drivers/input/serio/i8042.c: d4 -> i8042 (command) [63] drivers/input/serio/i8042.c: e6 -> i8042 (parameter) [63] drivers/input/serio/i8042.c: fa <- i8042 (interrupt, aux, 12) [67] drivers/input/serio/i8042.c: d4 -> i8042 (command) [67] drivers/input/serio/i8042.c: e9 -> i8042 (parameter) [67] drivers/input/serio/i8042.c: fa <- i8042 (interrupt, aux, 12) [70] drivers/input/serio/i8042.c: 00 <- i8042 (interrupt, aux, 12) [71] drivers/input/serio/i8042.c: 03 <- i8042 (interrupt, aux, 12) [72] drivers/input/serio/i8042.c: 28 <- i8042 (interrupt, aux, 12) [74] drivers/input/serio/i8042.c: d4 -> i8042 (command) [74] drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [74] drivers/input/serio/i8042.c: fa <- i8042 (interrupt, aux, 12) [77] drivers/input/serio/i8042.c: d4 -> i8042 (command) [77] drivers/input/serio/i8042.c: 00 -> i8042 (parameter) [77] drivers/input/serio/i8042.c: fa <- i8042 (interrupt, aux, 12) [81] drivers/input/serio/i8042.c: d4 -> i8042 (command) [81] drivers/input/serio/i8042.c: e6 -> i8042 (parameter) [81] drivers/input/serio/i8042.c: fa <- i8042 (interrupt, aux, 12) [84] drivers/input/serio/i8042.c: d4 -> i8042 (command) [84] drivers/input/serio/i8042.c: e6 -> i8042 (parameter) [84] drivers/input/serio/i8042.c: fa <- i8042 (interrupt, aux, 12) [87] drivers/input/serio/i8042.c: d4 -> i8042 (command) [87] drivers/input/serio/i8042.c: e6 -> i8042 (parameter) [87] drivers/input/serio/i8042.c: fa <- i8042 (interrupt, aux, 12) [91] drivers/input/serio/i8042.c: d4 -> i8042 (command) [91] drivers/input/serio/i8042.c: e9 -> i8042 (parameter) [91] drivers/input/serio/i8042.c: fa <- i8042 (interrupt, aux, 12) [94] drivers/input/serio/i8042.c: 00 <- i8042 (interrupt, aux, 12) [95] drivers/input/serio/i8042.c: 00 <- i8042 (interrupt, aux, 12) [97] drivers/input/serio/i8042.c: 28 <- i8042 (interrupt, aux, 12) [98] drivers/input/serio/i8042.c: d4 -> i8042 (command) [98] drivers/input/serio/i8042.c: f3 -> i8042 (parameter) [98] drivers/input/serio/i8042.c: fa <- i8042 (interrupt, aux, 12) [101] drivers/input/serio/i8042.c: d4 -> i8042 (command) [101] drivers/input/serio/i8042.c: c8 -> i8042 (parameter) [101] drivers/input/serio/i8042.c: fa <- i8042 (interrupt, aux, 12) [105] drivers/input/serio/i8042.c: d4 -> i8042 (command) [105] drivers/input/serio/i8042.c: f3 -> i8042 (parameter) [105] drivers/input/serio/i8042.c: fa <- i8042 (interrupt, aux, 12) [108] drivers/input/serio/i8042.c: d4 -> i8042 (command) [108] drivers/input/serio/i8042.c: 64 -> i8042 (parameter) [108] drivers/input/serio/i8042.c: fa <- i8042 (interrupt, aux, 12) [112] drivers/input/serio/i8042.c: d4 -> i8042 (command) [112] drivers/input/serio/i8042.c: f3 -> i8042 (parameter) [112] drivers/input/serio/i8042.c: fa <- i8042 (interrupt, aux, 12) [115] drivers/input/serio/i8042.c: d4 -> i8042 (command) [115] drivers/input/serio/i8042.c: 50 -> i8042 (parameter) [115] drivers/input/serio/i8042.c: fa <- i8042 (interrupt, aux, 12) [119] drivers/input/serio/i8042.c: d4 -> i8042 (command) [119] drivers/input/serio/i8042.c: f2 -> i8042 (parameter) [119] drivers/input/serio/i8042.c: fa <- i8042 (interrupt, aux, 12) [122] drivers/input/serio/i8042.c: 03 <- i8042 (interrupt, aux, 12) [123] drivers/input/serio/i8042.c: d4 -> i8042 (command) [123] drivers/input/serio/i8042.c: f3 -> i8042 (parameter) [123] drivers/input/serio/i8042.c: fa <- i8042 (interrupt, aux, 12) [127] drivers/input/serio/i8042.c: d4 -> i8042 (command) [127] drivers/input/serio/i8042.c: c8 -> i8042 (parameter) [127] drivers/input/serio/i8042.c: fa <- i8042 (interrupt, aux, 12) [130] drivers/input/serio/i8042.c: d4 -> i8042 (command) [130] drivers/input/serio/i8042.c: f3 -> i8042 (parameter) [130] drivers/input/serio/i8042.c: fa <- i8042 (interrupt, aux, 12) [134] drivers/input/serio/i8042.c: d4 -> i8042 (command) [134] drivers/input/serio/i8042.c: c8 -> i8042 (parameter) [134] drivers/input/serio/i8042.c: fa <- i8042 (interrupt, aux, 12) [137] drivers/input/serio/i8042.c: d4 -> i8042 (command) [137] drivers/input/serio/i8042.c: f3 -> i8042 (parameter) [137] drivers/input/serio/i8042.c: fa <- i8042 (interrupt, aux, 12) [141] drivers/input/serio/i8042.c: d4 -> i8042 (command) [141] drivers/input/serio/i8042.c: 50 -> i8042 (parameter) [141] drivers/input/serio/i8042.c: fa <- i8042 (interrupt, aux, 12) [144] drivers/input/serio/i8042.c: d4 -> i8042 (command) [144] drivers/input/serio/i8042.c: f2 -> i8042 (parameter) [144] drivers/input/serio/i8042.c: fa <- i8042 (interrupt, aux, 12) [148] drivers/input/serio/i8042.c: 03 <- i8042 (interrupt, aux, 12) [149] input: ImPS/2 Generic Wheel Mouse on isa0060/serio1 drivers/input/serio/i8042.c: d4 -> i8042 (command) [149] drivers/input/serio/i8042.c: f3 -> i8042 (parameter) [149] drivers/input/serio/i8042.c: fa <- i8042 (interrupt, aux, 12) [152] drivers/input/serio/i8042.c: d4 -> i8042 (command) [152] drivers/input/serio/i8042.c: 64 -> i8042 (parameter) [152] drivers/input/serio/i8042.c: fa <- i8042 (interrupt, aux, 12) [156] drivers/input/serio/i8042.c: d4 -> i8042 (command) [156] drivers/input/serio/i8042.c: f3 -> i8042 (parameter) [156] drivers/input/serio/i8042.c: fa <- i8042 (interrupt, aux, 12) [159] drivers/input/serio/i8042.c: d4 -> i8042 (command) [159] drivers/input/serio/i8042.c: c8 -> i8042 (parameter) [159] drivers/input/serio/i8042.c: fa <- i8042 (interrupt, aux, 12) [163] drivers/input/serio/i8042.c: d4 -> i8042 (command) [163] drivers/input/serio/i8042.c: e8 -> i8042 (parameter) [163] drivers/input/serio/i8042.c: fa <- i8042 (interrupt, aux, 12) [166] drivers/input/serio/i8042.c: d4 -> i8042 (command) [166] drivers/input/serio/i8042.c: 03 -> i8042 (parameter) [166] drivers/input/serio/i8042.c: fa <- i8042 (interrupt, aux, 12) [170] drivers/input/serio/i8042.c: d4 -> i8042 (command) [170] drivers/input/serio/i8042.c: e6 -> i8042 (parameter) [170] drivers/input/serio/i8042.c: fa <- i8042 (interrupt, aux, 12) [173] drivers/input/serio/i8042.c: d4 -> i8042 (command) [173] drivers/input/serio/i8042.c: ea -> i8042 (parameter) [173] drivers/input/serio/i8042.c: fa <- i8042 (interrupt, aux, 12) [176] drivers/input/serio/i8042.c: d4 -> i8042 (command) [176] drivers/input/serio/i8042.c: f4 -> i8042 (parameter) [176] drivers/input/serio/i8042.c: fa <- i8042 (interrupt, aux, 12) [180] serio: i8042 AUX port at 0x60,0x64 irq 12 drivers/input/serio/i8042.c: 60 -> i8042 (command) [180] drivers/input/serio/i8042.c: 46 -> i8042 (parameter) [180] drivers/input/serio/i8042.c: 60 -> i8042 (command) [180] drivers/input/serio/i8042.c: 47 -> i8042 (parameter) [180] drivers/input/serio/i8042.c: f2 -> i8042 (kbd-data) [180] drivers/input/serio/i8042.c: fa <- i8042 (interrupt, kbd, 1) [183] drivers/input/serio/i8042.c: ab <- i8042 (interrupt, kbd, 1) [184] drivers/input/serio/i8042.c: 41 <- i8042 (interrupt, kbd, 1) [185] drivers/input/serio/i8042.c: ed -> i8042 (kbd-data) [185] drivers/input/serio/i8042.c: fa <- i8042 (interrupt, kbd, 1) [188] drivers/input/serio/i8042.c: 00 -> i8042 (kbd-data) [188] drivers/input/serio/i8042.c: fa <- i8042 (interrupt, kbd, 1) [191] drivers/input/serio/i8042.c: f0 -> i8042 (kbd-data) [191] drivers/input/serio/i8042.c: fa <- i8042 (interrupt, kbd, 1) [194] drivers/input/serio/i8042.c: 02 -> i8042 (kbd-data) [194] drivers/input/serio/i8042.c: fa <- i8042 (interrupt, kbd, 1) [196] drivers/input/serio/i8042.c: f0 -> i8042 (kbd-data) [196] drivers/input/serio/i8042.c: fa <- i8042 (interrupt, kbd, 1) [199] drivers/input/serio/i8042.c: 00 -> i8042 (kbd-data) [199] drivers/input/serio/i8042.c: fa <- i8042 (interrupt, kbd, 1) [202] drivers/input/serio/i8042.c: 41 <- i8042 (interrupt, kbd, 1) [203] drivers/input/serio/i8042.c: f4 -> i8042 (kbd-data) [203] drivers/input/serio/i8042.c: fa <- i8042 (interrupt, kbd, 1) [206] input: AT Set 2 keyboard on isa0060/serio0 serio: i8042 KBD port at 0x60,0x64 irq 1 i2c /dev entries driver module version 2.7.0 (20021208) i2c-i801 version 2.7.0 (20021208) i2c-piix4 version 2.7.0 (20021208) drivers/input/serio/i8042.c: 41 <- i8042 (interrupt, kbd, 1) [207] registering 1-0290 oprofile: using NMI interrupt. NET: Registered protocol family 2 IP: routing cache hash table of 4096 buckets, 64Kbytes TCP: Hash tables configured (established 131072 bind 43690) Initializing IPsec netlink socket NET: Registered protocol family 1 NET: Registered protocol family 17 NET: Registered protocol family 15 BIOS EDD facility v0.09 2003-Jan-22, 2 devices found ACPI: (supports S0 S1 S4 S5) VFS: Mounted root (ext2 filesystem) readonly. Freeing unused kernel memory: 368k freed Adding 1959920k swap on /dev/hde2. Priority:-1 extents:1 Intel(R) PRO/1000 Network Driver - version 5.1.13-k2 Copyright (c) 1999-2003 Intel Corporation. eth0: Intel(R) PRO/1000 Network Connection e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: Another keyboard woes with 2.6.0... 2003-09-13 21:40 ` Petr Vandrovec @ 2003-09-14 10:13 ` Andries Brouwer 2003-09-14 10:34 ` Andries Brouwer 2003-09-19 11:38 ` Vojtech Pavlik 1 sibling, 1 reply; 20+ messages in thread From: Andries Brouwer @ 2003-09-14 10:13 UTC (permalink / raw) To: Petr Vandrovec; +Cc: Andries Brouwer, Zwane Mwaikambo, vojtech, linux-kernel On Sat, Sep 13, 2003 at 11:40:47PM +0200, Petr Vandrovec wrote: > From log it looks like that switch likes 0x41 a lot: it reports ID 0x41AB, > it reports current scan set 0x41, and when we enable it, it returns spurious > 0x41... And the last 0x41 is one which confuses everything. > > Linux version 2.6.0-test5-c1283 > [...] > drivers/usb/misc/usblcd.c: USBLCD Driver Version 1.04 (C) Adams IT Services http://www.usblcd.de > drivers/usb/misc/usblcd.c: USBLCD support registered. > mice: PS/2 mouse device common for all mice > input: PC Speaker Get keyboard controller command byte > i8042.c: 20 -> i8042 (command) [0] > i8042.c: 47 <- i8042 (return) [0] 47: XLATE, SYSF, MIE, KIE > i8042.c: 60 -> i8042 (command) [0] > i8042.c: 56 -> i8042 (parameter) [0] Disable keyboard and keyboard interrupt > i8042.c: d3 -> i8042 (command) [0] > i8042.c: f0 -> i8042 (parameter) [0] > i8042.c: 0f <- i8042 (return) [0] > i8042.c: d3 -> i8042 (command) [0] > i8042.c: 56 -> i8042 (parameter) [0] > i8042.c: a9 <- i8042 (return) [0] > i8042.c: d3 -> i8042 (command) [1] > i8042.c: a4 -> i8042 (parameter) [1] > i8042.c: 5b <- i8042 (return) [1] > i8042.c: d3 -> i8042 (command) [1] > i8042.c: 5a -> i8042 (parameter) [1] > i8042.c: a5 <- i8042 (return) [1] No special multiplexer in sight > i8042.c: a7 -> i8042 (command) [1] Disable mouse port > i8042.c: 20 -> i8042 (command) [1] > i8042.c: 76 <- i8042 (return) [1] XLATE, ME, KE, SYSF, MIE > i8042.c: a8 -> i8042 (command) [1] Enable mouse port > i8042.c: 20 -> i8042 (command) [1] > i8042.c: 56 <- i8042 (return) [1] XLATE, KE, SYSF, MIE > i8042.c: 60 -> i8042 (command) [1] > i8042.c: 74 -> i8042 (parameter) [1] > i8042.c: 60 -> i8042 (command) [1] > i8042.c: 54 -> i8042 (parameter) [1] > i8042.c: 60 -> i8042 (command) [2] > i8042.c: 56 -> i8042 (parameter) [2] After changing our minds twice we set XLATE, KE, SYSF, MIE (keyboard disabled, mouse enabled) > i8042.c: d4 -> i8042 (command) [2] > i8042.c: f2 -> i8042 (parameter) [2] > i8042.c: fa <- i8042 (interrupt, aux, 12) [5] > i8042.c: 00 <- i8042 (interrupt, aux, 12) [6] Read mouse ID. Get 0, as expected. > i8042.c: 60 -> i8042 (command) [6] > i8042.c: 54 -> i8042 (parameter) [6] > i8042.c: 60 -> i8042 (command) [6] > i8042.c: 56 -> i8042 (parameter) [6] Again some nonsense changes. Set XLATE, KE, SYSF, MIE > i8042.c: d4 -> i8042 (command) [7] > i8042.c: f2 -> i8042 (parameter) [7] > i8042.c: fa <- i8042 (interrupt, aux, 12) [10] > i8042.c: 00 <- i8042 (interrupt, aux, 12) [11] Read mouse ID again. Get 0, as expected. > i8042.c: d4 -> i8042 (command) [11] > i8042.c: f6 -> i8042 (parameter) [11] > i8042.c: fa <- i8042 (interrupt, aux, 12) [15] Set defaults. > i8042.c: d4 -> i8042 (command) [15] > i8042.c: e8 -> i8042 (parameter) [15] > i8042.c: fa <- i8042 (interrupt, aux, 12) [18] > i8042.c: d4 -> i8042 (command) [18] > i8042.c: 00 -> i8042 (parameter) [18] > i8042.c: fa <- i8042 (interrupt, aux, 12) [21] > i8042.c: d4 -> i8042 (command) [21] > i8042.c: e8 -> i8042 (parameter) [21] > i8042.c: fa <- i8042 (interrupt, aux, 12) [25] > i8042.c: d4 -> i8042 (command) [25] > i8042.c: 00 -> i8042 (parameter) [25] > i8042.c: fa <- i8042 (interrupt, aux, 12) [28] > i8042.c: d4 -> i8042 (command) [28] > i8042.c: e8 -> i8042 (parameter) [28] > i8042.c: fa <- i8042 (interrupt, aux, 12) [32] > i8042.c: d4 -> i8042 (command) [32] > i8042.c: 00 -> i8042 (parameter) [32] > i8042.c: fa <- i8042 (interrupt, aux, 12) [35] > i8042.c: d4 -> i8042 (command) [35] > i8042.c: e8 -> i8042 (parameter) [35] > i8042.c: fa <- i8042 (interrupt, aux, 12) [39] > i8042.c: d4 -> i8042 (command) [39] > i8042.c: 00 -> i8042 (parameter) [39] > i8042.c: fa <- i8042 (interrupt, aux, 12) [42] > i8042.c: d4 -> i8042 (command) [42] > i8042.c: e9 -> i8042 (parameter) [42] > i8042.c: fa <- i8042 (interrupt, aux, 12) [46] > i8042.c: 00 <- i8042 (interrupt, aux, 12) [47] > i8042.c: 00 <- i8042 (interrupt, aux, 12) [48] > i8042.c: 28 <- i8042 (interrupt, aux, 12) [49] Send the magic sequence e8 00 e8 00 e8 00 e8 00 e9 The middle byte of the reply does not have 47: no Touchpad > i8042.c: d4 -> i8042 (command) [49] > i8042.c: e8 -> i8042 (parameter) [49] > i8042.c: fa <- i8042 (interrupt, aux, 12) [53] > i8042.c: d4 -> i8042 (command) [53] > i8042.c: 03 -> i8042 (parameter) [53] > i8042.c: fa <- i8042 (interrupt, aux, 12) [56] > i8042.c: d4 -> i8042 (command) [56] > i8042.c: e6 -> i8042 (parameter) [56] > i8042.c: fa <- i8042 (interrupt, aux, 12) [60] > i8042.c: d4 -> i8042 (command) [60] > i8042.c: e6 -> i8042 (parameter) [60] > i8042.c: fa <- i8042 (interrupt, aux, 12) [63] > i8042.c: d4 -> i8042 (command) [63] > i8042.c: e6 -> i8042 (parameter) [63] > i8042.c: fa <- i8042 (interrupt, aux, 12) [67] > i8042.c: d4 -> i8042 (command) [67] > i8042.c: e9 -> i8042 (parameter) [67] > i8042.c: fa <- i8042 (interrupt, aux, 12) [70] > i8042.c: 00 <- i8042 (interrupt, aux, 12) [71] > i8042.c: 03 <- i8042 (interrupt, aux, 12) [72] > i8042.c: 28 <- i8042 (interrupt, aux, 12) [74] Send the magic sequence e8 03 e6 e6 e6 e9 No magic reaction > i8042.c: d4 -> i8042 (command) [74] > i8042.c: e8 -> i8042 (parameter) [74] > i8042.c: fa <- i8042 (interrupt, aux, 12) [77] > i8042.c: d4 -> i8042 (command) [77] > i8042.c: 00 -> i8042 (parameter) [77] > i8042.c: fa <- i8042 (interrupt, aux, 12) [81] > i8042.c: d4 -> i8042 (command) [81] > i8042.c: e6 -> i8042 (parameter) [81] > i8042.c: fa <- i8042 (interrupt, aux, 12) [84] > i8042.c: d4 -> i8042 (command) [84] > i8042.c: e6 -> i8042 (parameter) [84] > i8042.c: fa <- i8042 (interrupt, aux, 12) [87] > i8042.c: d4 -> i8042 (command) [87] > i8042.c: e6 -> i8042 (parameter) [87] > i8042.c: fa <- i8042 (interrupt, aux, 12) [91] > i8042.c: d4 -> i8042 (command) [91] > i8042.c: e9 -> i8042 (parameter) [91] > i8042.c: fa <- i8042 (interrupt, aux, 12) [94] > i8042.c: 00 <- i8042 (interrupt, aux, 12) [95] > i8042.c: 00 <- i8042 (interrupt, aux, 12) [97] > i8042.c: 28 <- i8042 (interrupt, aux, 12) [98] Send the magic sequence e8 00 e6 e6 e6 e9 (Identify Touchpad) No magic reaction > i8042.c: d4 -> i8042 (command) [98] > i8042.c: f3 -> i8042 (parameter) [98] > i8042.c: fa <- i8042 (interrupt, aux, 12) [101] > i8042.c: d4 -> i8042 (command) [101] > i8042.c: c8 -> i8042 (parameter) [101] > i8042.c: fa <- i8042 (interrupt, aux, 12) [105] > i8042.c: d4 -> i8042 (command) [105] > i8042.c: f3 -> i8042 (parameter) [105] > i8042.c: fa <- i8042 (interrupt, aux, 12) [108] > i8042.c: d4 -> i8042 (command) [108] > i8042.c: 64 -> i8042 (parameter) [108] > i8042.c: fa <- i8042 (interrupt, aux, 12) [112] > i8042.c: d4 -> i8042 (command) [112] > i8042.c: f3 -> i8042 (parameter) [112] > i8042.c: fa <- i8042 (interrupt, aux, 12) [115] > i8042.c: d4 -> i8042 (command) [115] > i8042.c: 50 -> i8042 (parameter) [115] > i8042.c: fa <- i8042 (interrupt, aux, 12) [119] Set sampling rate to 200, 100, 80 > i8042.c: d4 -> i8042 (command) [119] > i8042.c: f2 -> i8042 (parameter) [119] > i8042.c: fa <- i8042 (interrupt, aux, 12) [122] > i8042.c: 03 <- i8042 (interrupt, aux, 12) [123] Now ID has become 03: we recognise Intellimouse > i8042.c: d4 -> i8042 (command) [123] > i8042.c: f3 -> i8042 (parameter) [123] > i8042.c: fa <- i8042 (interrupt, aux, 12) [127] > i8042.c: d4 -> i8042 (command) [127] > i8042.c: c8 -> i8042 (parameter) [127] > i8042.c: fa <- i8042 (interrupt, aux, 12) [130] > i8042.c: d4 -> i8042 (command) [130] > i8042.c: f3 -> i8042 (parameter) [130] > i8042.c: fa <- i8042 (interrupt, aux, 12) [134] > i8042.c: d4 -> i8042 (command) [134] > i8042.c: c8 -> i8042 (parameter) [134] > i8042.c: fa <- i8042 (interrupt, aux, 12) [137] > i8042.c: d4 -> i8042 (command) [137] > i8042.c: f3 -> i8042 (parameter) [137] > i8042.c: fa <- i8042 (interrupt, aux, 12) [141] > i8042.c: d4 -> i8042 (command) [141] > i8042.c: 50 -> i8042 (parameter) [141] > i8042.c: fa <- i8042 (interrupt, aux, 12) [144] > i8042.c: d4 -> i8042 (command) [144] > i8042.c: f2 -> i8042 (parameter) [144] > i8042.c: fa <- i8042 (interrupt, aux, 12) [148] > i8042.c: 03 <- i8042 (interrupt, aux, 12) [149] After set sampling rate 200,200,80 the ID is still 03: Not an Explorer mouse > input: ImPS/2 Generic Wheel Mouse on isa0060/serio1 > i8042.c: d4 -> i8042 (command) [149] > i8042.c: f3 -> i8042 (parameter) [149] > i8042.c: fa <- i8042 (interrupt, aux, 12) [152] > i8042.c: d4 -> i8042 (command) [152] > i8042.c: 64 -> i8042 (parameter) [152] > i8042.c: fa <- i8042 (interrupt, aux, 12) [156] Set sampling rate 100 > i8042.c: d4 -> i8042 (command) [156] > i8042.c: f3 -> i8042 (parameter) [156] > i8042.c: fa <- i8042 (interrupt, aux, 12) [159] > i8042.c: d4 -> i8042 (command) [159] > i8042.c: c8 -> i8042 (parameter) [159] > i8042.c: fa <- i8042 (interrupt, aux, 12) [163] Set sampling rate 200 > i8042.c: d4 -> i8042 (command) [163] > i8042.c: e8 -> i8042 (parameter) [163] > i8042.c: fa <- i8042 (interrupt, aux, 12) [166] > i8042.c: d4 -> i8042 (command) [166] > i8042.c: 03 -> i8042 (parameter) [166] > i8042.c: fa <- i8042 (interrupt, aux, 12) [170] Set resolution 3 > i8042.c: d4 -> i8042 (command) [170] > i8042.c: e6 -> i8042 (parameter) [170] > i8042.c: fa <- i8042 (interrupt, aux, 12) [173] Set scaling 1:1 > i8042.c: d4 -> i8042 (command) [173] > i8042.c: ea -> i8042 (parameter) [173] > i8042.c: fa <- i8042 (interrupt, aux, 12) [176] Set stream mode > i8042.c: d4 -> i8042 (command) [176] > i8042.c: f4 -> i8042 (parameter) [176] > i8042.c: fa <- i8042 (interrupt, aux, 12) [180] Mouse enable > serio: i8042 AUX port at 0x60,0x64 irq 12 So far the mouse probing. Now the keyboard probing. > i8042.c: 60 -> i8042 (command) [180] > i8042.c: 46 -> i8042 (parameter) [180] > i8042.c: 60 -> i8042 (command) [180] > i8042.c: 47 -> i8042 (parameter) [180] We change our mind once more and set XLATE, SYSF, MIE, KIE > i8042.c: f2 -> i8042 (kbd-data) [180] > i8042.c: fa <- i8042 (interrupt, kbd, 1) [183] > i8042.c: ab <- i8042 (interrupt, kbd, 1) [184] > i8042.c: 41 <- i8042 (interrupt, kbd, 1) [185] Keyboard ID is as usual (translation of ab 83) > i8042.c: ed -> i8042 (kbd-data) [185] > i8042.c: fa <- i8042 (interrupt, kbd, 1) [188] > i8042.c: 00 -> i8042 (kbd-data) [188] > i8042.c: fa <- i8042 (interrupt, kbd, 1) [191] Set LEDs > i8042.c: f0 -> i8042 (kbd-data) [191] > i8042.c: fa <- i8042 (interrupt, kbd, 1) [194] > i8042.c: 02 -> i8042 (kbd-data) [194] > i8042.c: fa <- i8042 (interrupt, kbd, 1) [196] Set scancode set 2 > i8042.c: f0 -> i8042 (kbd-data) [196] > i8042.c: fa <- i8042 (interrupt, kbd, 1) [199] > i8042.c: 00 -> i8042 (kbd-data) [199] > i8042.c: fa <- i8042 (interrupt, kbd, 1) [202] > i8042.c: 41 <- i8042 (interrupt, kbd, 1) [203] Read scancode set. Get 41 (41 is translation of 02) > i8042.c: f4 -> i8042 (kbd-data) [203] > i8042.c: fa <- i8042 (interrupt, kbd, 1) [206] Keyboard enable > input: AT Set 2 keyboard on isa0060/serio0 > serio: i8042 KBD port at 0x60,0x64 irq 1 > i2c /dev entries driver module version 2.7.0 (20021208) > i2c-i801 version 2.7.0 (20021208) > i2c-piix4 version 2.7.0 (20021208) > i8042.c: 41 <- i8042 (interrupt, kbd, 1) [207] Surprise! An additional 41 nobody had asked for. As a scancode this is the scancode for the F7 function key. -------- > From log it looks like that switch likes 0x41 a lot: it reports ID 0x41AB, > it reports current scan set 0x41, and when we enable it, it returns spurious > 0x41... And the last 0x41 is one which confuses everything. Yes. ID is OK. Scancode set is OK. But the final one is unexpected. You say "confuses everything". Is it not treated as a keypress for the F7 key? Andries ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: Another keyboard woes with 2.6.0... 2003-09-14 10:13 ` Andries Brouwer @ 2003-09-14 10:34 ` Andries Brouwer 2003-09-14 19:52 ` Petr Vandrovec 0 siblings, 1 reply; 20+ messages in thread From: Andries Brouwer @ 2003-09-14 10:34 UTC (permalink / raw) To: Andries Brouwer; +Cc: Petr Vandrovec, Zwane Mwaikambo, vojtech, linux-kernel On Sun, Sep 14, 2003 at 12:13:23PM +0200, Andries Brouwer wrote: > > From log it looks like that switch likes 0x41 a lot: it reports ID 0x41AB, > > it reports current scan set 0x41, and when we enable it, it returns spurious > > 0x41... And the last 0x41 is one which confuses everything. > > Yes. ID is OK. Scancode set is OK. But the final one is unexpected. > > You say "confuses everything". > Is it not treated as a keypress for the F7 key? Hmm. Yes. An F7 that is never released. Is that what you see - an infinitely repeated F7 until you hit the next key? And the 0x41 is generated by this switch? And it also occurs on 2.4 but there nothing bad happens? ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: Another keyboard woes with 2.6.0... 2003-09-14 10:34 ` Andries Brouwer @ 2003-09-14 19:52 ` Petr Vandrovec 2003-09-14 22:10 ` Andries Brouwer 0 siblings, 1 reply; 20+ messages in thread From: Petr Vandrovec @ 2003-09-14 19:52 UTC (permalink / raw) To: Andries Brouwer; +Cc: Zwane Mwaikambo, vojtech, linux-kernel On Sun, Sep 14, 2003 at 12:34:44PM +0200, Andries Brouwer wrote: > On Sun, Sep 14, 2003 at 12:13:23PM +0200, Andries Brouwer wrote: > > > > From log it looks like that switch likes 0x41 a lot: it reports ID 0x41AB, > > > it reports current scan set 0x41, and when we enable it, it returns spurious > > > 0x41... And the last 0x41 is one which confuses everything. > > > > Yes. ID is OK. Scancode set is OK. But the final one is unexpected. > > > > You say "confuses everything". > > Is it not treated as a keypress for the F7 key? > > Hmm. Yes. An F7 that is never released. > Is that what you see - an infinitely repeated F7 until > you hit the next key? Yes. It is what I was trying to tell by "confuses everything". > And the 0x41 is generated by this switch? Yes. > And it also occurs on 2.4 but there nothing bad happens? It looks to me like that it does. We get one 0x41 when we send ED 00, and second time after enabling keyboard by F4, like 2.6.x does... But it is not that serious under 2.4.x... Full log, including reads from status (0x64) register under 2.4.x is at http://platan.vc.cvut.cz/cs1016-24.log. Petr Vandrovec Linux version 2.4.22-ac1 (root@placatec) (gcc version 3.3.2 20030908 (Debian prerelease)) #5 SMP Sun Sep 14 21:35:38 CEST 2003 ... Non-volatile memory driver v1.2 WOutput: ED RInput: FA WOutput: 00 RInput: FA RInput: 41 <<<<<<<<<<<<<<< FDC 0 is a post-1991 82077 RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize ... Adding Swap: 1959920k swap-space (priority -1) e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex WCmd: A8 WCmd: D4 WOutput: F4 WCmd: 60 RInput: FA WOutput: 47 WOutput: F4 RInput: FA RInput: 41 <<<<<<<<<<<<<<<<<<< WCmd: D4 WOutput: F6 RInput: FA WCmd: D4 WOutput: F3 WCmd: D4 RInput: FA WOutput: C8 RInput: FA WCmd: D4 WOutput: F3 WCmd: D4 RInput: FA WOutput: 64 RInput: FA WCmd: D4 WOutput: F3 WCmd: D4 RInput: FA WOutput: 50 RInput: FA WCmd: D4 WOutput: F3 WCmd: D4 RInput: FA WOutput: C8 RInput: FA WCmd: D4 WOutput: F3 WCmd: D4 RInput: FA WOutput: C8 RInput: FA WCmd: D4 WOutput: F3 WCmd: D4 RInput: FA WOutput: 50 RInput: FA WCmd: D4 WOutput: E6 RInput: FA WCmd: D4 WOutput: F3 WCmd: D4 RInput: FA WOutput: 64 RInput: FA WCmd: D4 WOutput: F2 RInput: FA WCmd: D4 WOutput: EA RInput: FA WCmd: D4 WOutput: F4 RInput: FA ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: Another keyboard woes with 2.6.0... 2003-09-14 19:52 ` Petr Vandrovec @ 2003-09-14 22:10 ` Andries Brouwer 0 siblings, 0 replies; 20+ messages in thread From: Andries Brouwer @ 2003-09-14 22:10 UTC (permalink / raw) To: Petr Vandrovec; +Cc: Andries Brouwer, Zwane Mwaikambo, vojtech, linux-kernel On Sun, Sep 14, 2003 at 09:52:16PM +0200, Petr Vandrovec wrote: > > Hmm. Yes. An F7 that is never released. > > Is that what you see - an infinitely repeated F7 until > > you hit the next key? > > Yes. It is what I was trying to tell by "confuses everything". > > > And the 0x41 is generated by this switch? > > Yes. > > > And it also occurs on 2.4 but there nothing bad happens? > > It looks to me like that it does. We get one 0x41 when we > send ED 00, and second time after enabling keyboard by F4, > like 2.6.x does... But it is not that serious under 2.4.x... No - it is sent only once (and, I suppose, gives a little bit of garbage to whatever process eats it in 2.4) but in 2.6 it is repeated. A separate micro project might be to find out precisely when this switch sends this code, and whether it can send other codes. To save this machine for 2.6 no doubt you can invent something most suitable for you. Replacing input.c:input_repeat_key() by a dummy routine kills all key repeat. The key that is repeated is dev->repeat_key, and we have the keycode there if I am not mistaken, not the scancode, but they are equal in this case, so you might also add if (dev->repeat_key == 65) return; at the start of input_repeat_key(). In the mean time we must invent a real solution instead of a stopgap. Andries ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: Another keyboard woes with 2.6.0... 2003-09-13 21:40 ` Petr Vandrovec 2003-09-14 10:13 ` Andries Brouwer @ 2003-09-19 11:38 ` Vojtech Pavlik 1 sibling, 0 replies; 20+ messages in thread From: Vojtech Pavlik @ 2003-09-19 11:38 UTC (permalink / raw) To: Petr Vandrovec; +Cc: Andries Brouwer, Zwane Mwaikambo, vojtech, linux-kernel On Sat, Sep 13, 2003 at 11:40:47PM +0200, Petr Vandrovec wrote: > On Sat, Sep 13, 2003 at 08:52:44PM +0200, Andries Brouwer wrote: > > On Fri, Sep 12, 2003 at 08:33:24PM +0200, Petr Vandrovec wrote: > > > > > Andries is already gathering info for this one. This problem (missed > > > key release) happens to me on all systems I have (Athlon + via, P3 + i440BX, > > > P4 + 845...), most often when I do alt+right-arrow for walking through > > > consoles (and for Andries: hitting key stops this, otherwise it > > > endlessly switches all VTs around, and while kernel thinks that key > > > is down, keyboard actually does not generate any IRQs, so keyboard knows > > > that all keys are released). > > > > OK. It seems to me the two main hypotheses are: (i) problem with timers, > > (ii) problem with keyboard. > > > > In other words: could you (and/or anybody else who can reproduce this > > at will) change the #undef DEBUG in i8042.c to #define DEBUG, recreate > > the problem, and post or mail the resulting file with keystrokes? > > > > [of course: cut away parts corresponding to login sequences etc.] > > > > This will probably allow us to decide whether the missing key release > > was never sent by the keyboard, or was lost by the kernel. > > Unfortunately I'm at home, while box is at work, so I could only reboot it, > and confirm that it happened again. Unfortunately I cannot go to the box > and hit any key to get some more data. But I'll enable this on my workstation, > and if I'll get some "unexpected keycode" or "keyboard reconnect" errors again, > I'll have more data in the hand. > > >From log it looks like that switch likes 0x41 a lot: it reports ID 0x41AB, > it reports current scan set 0x41, and when we enable it, it returns spurious > 0x41... And the last 0x41 is one which confuses everything. I've just sent a patch to Linus that should fix this. Please try ... (either get the patch from LKML or wait for next Linus's release). -- Vojtech Pavlik SuSE Labs, SuSE CR ^ permalink raw reply [flat|nested] 20+ messages in thread
end of thread, other threads:[~2003-10-14 21:27 UTC | newest] Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2003-09-12 16:50 Another keyboard woes with 2.6.0 Petr Vandrovec 2003-09-12 17:45 ` Zwane Mwaikambo 2003-09-16 21:23 ` Andries Brouwer 2003-09-16 22:45 ` Jamie Lokier 2003-09-16 22:49 ` Zwane Mwaikambo 2003-09-16 23:12 ` Zwane Mwaikambo 2003-09-16 23:18 ` Zwane Mwaikambo 2003-09-17 0:01 ` Andries Brouwer 2003-10-06 22:08 ` Petr Vandrovec 2003-10-14 18:16 ` Petr Vandrovec 2003-10-14 21:27 ` Andries Brouwer 2003-09-13 19:06 ` Pekka Pietikainen 2003-09-12 18:33 Petr Vandrovec 2003-09-13 18:52 ` Andries Brouwer 2003-09-13 21:40 ` Petr Vandrovec 2003-09-14 10:13 ` Andries Brouwer 2003-09-14 10:34 ` Andries Brouwer 2003-09-14 19:52 ` Petr Vandrovec 2003-09-14 22:10 ` Andries Brouwer 2003-09-19 11:38 ` Vojtech Pavlik
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.