All of lore.kernel.org
 help / color / mirror / Atom feed
* 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 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 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-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

* 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-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 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-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-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-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-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

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.