PROBLEM: keyboard shift not registered under fast typing or auto-repeat
Summary: Keyboard shift state not registered under fast typing or autorepeat
If someone can help point me where to look at the code, I've already looked into ./drivers/char/keyboard.c but didn't see anything obvious. More specific help would be appreciated.
Kernel doesn't register shift state when typing quickly. Example, 'ls *' shows up as 'ls 8' when typed fast. Also, holding '-' key down, once it's repeating, shift key makes no difference. Interesting info:
keyboard delay settings of 500/30 allowed me to press shift key soon (8-10 chars) into the repeat and have it change to '_', while delay settings of 250/30 shortened that to the delay between the first and second character.
Holding shift key down first, allows the repeating '_' character to change to '-', but thereafter stays '-' regardless of shift state.
NB: This is not necessarily related to XFree86 at all. I logged in on console, behaviour is mostly identical with one caveat. When starting with '-', pressing the shift key before the repeating starts shows the next 2 '-' but stops the repeat. Pressing shift after it's started repeating does nothing. Otherwise, behaviour is identical
Kernel version: Linux version 2.6.0-test4 (gcc version 3.2.2 20030222 (RedHat Linux 3.2.2-5)
Also on kernel versions 2.4.20 (RedHat 9)) and 2.4.21 stock and 2.4.21 patched with acpi/laptop patches
No OOPS
No example scripts
Special note, this is a Compaq Presario X1000 Laptop.
processor : 0vendor_id : GenuineIntel
cpu family : 6
model : 9
model name : Intel(R) Pentium(R) M processor 1600MHz
stepping : 5
cpu MHz : 1594.909
cache size : 1024 KBfdiv_bug : nohlt_bug : nof00f_bug : nocoma_bug : no
fpu : yesfpu_exception : yes
cpuid level : 2
wp : yes
flags : fpu vme de pse tsc msr mce cx8 sep mtrr pge mca cmov pat
clflush dts acpi mmx fxsr sse sse2 tm pbe tm2 est
bogomips : 3153.92
autofs 15136 - - Live 0xe88e3000
0000-001f : dma1
0020-0021 : pic1
0040-005f : timer
0060-006f : keyboard
0070-0077 : rtc
0080-008f : dma page reg
00a0-00a1 : pic2
00c0-00df : dma2
00f0-00ff : fpu
0170-0177 : ide1
01f0-01f7 : ide0
0376-0376 : ide1
0378-037a : parport0
037b-037f : parport0
03c0-03df : vga+
03f6-03f6 : ide0
0cf8-0cff : PCI conf1
1000-10ff : PCI CardBus #03
1000-10ff : 0000:03:00.0
1400-14ff : PCI CardBus #03
15e0-15e3 : pc110pad
2000-20ff : 0000:02:01.0
2400-247f : 0000:02:00.0
3000-3fff : PCI Bus #01
3000-30ff : 0000:01:00.0
4000-40ff : 0000:00:1f.5
4400-44ff : 0000:00:1f.6
4800-487f : 0000:00:1f.6
4880-48bf : 0000:00:1f.5
48c0-48df : 0000:00:1d.0
48c0-48df : uhci-hcd
48e0-48ff : 0000:00:1d.1
48e0-48ff : uhci-hcd
4c00-4c1f : 0000:00:1d.2
4c00-4c1f : uhci-hcd
4c20-4c3f : 0000:00:1f.3
4c40-4c4f : 0000:00:1f.1
4c40-4c47 : ide0
4c48-4c4f : ide1
00000000-0009fbff : System RAM
0009fc00-0009ffff : reserved
000a0000-000bffff : Video RAM area
000c0000-000c7fff : Video ROM
000f0000-000fffff : System ROM
00100000-27fcffff : System RAM
00100000-0032f082 : Kernel code
0032f083-004105ff : Kernel data
27fd0000-27ff0bff : reserved
27ff0c00-27ffbfff : ACPI Non-volatile Storage
27ffc000-27ffffff : reserved
28000000-280003ff : 0000:00:1f.1
28400000-287fffff : PCI CardBus #03
28800000-28bfffff : PCI CardBus #03
28800000-288001ff : 0000:03:00.0
90000000-90000fff : 0000:02:02.0
90100000-90100fff : 0000:02:04.0
90100000-90100fff : yenta_socket
90200000-902007ff : 0000:02:00.0
90200000-902007ff : ohci1394
90300000-903000ff : 0000:02:01.0
90400000-904fffff : PCI Bus #01
90400000-9040ffff : 0000:01:00.0
98000000-9fffffff : PCI Bus #01
98000000-9fffffff : 0000:01:00.0
a0000000-a00003ff : 0000:00:1d.7
a0000000-a00003ff : ehci_hcd
a0200000-a02001ff : 0000:00:1f.5
a0300000-a03000ff : 0000:00:1f.5
b0000000-bfffffff : 0000:00:00.0
00:00.0 Host bridge: Intel Corp.: Unknown device 3340 (rev 03)
Subsystem: Compaq Computer Corporation: Unknown device 0860
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort-
<MAbort+ >SERR- <PERR-
Latency: 0 Region 0: Memory at b0000000 (32-bit, prefetchable) [size=256M] Capabilities: [e4] #09 [f104] Capabilities: [a0] AGP version 2.0 Status: RQ=31 SBA+ 64bit- FW+ Rate=x1,x2,x4 Command: RQ=0 SBA- AGP- 64bit- FW+ Rate=x1
00:01.0 PCI bridge: Intel Corp.: Unknown device 3341 (rev 03) (prog-if 00 [Normal decode])
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
Status: Cap- 66Mhz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort-
<MAbort- >SERR- <PERR-
Latency: 128 Bus: primary=00, secondary=01, subordinate=01, sec-latency=0 I/O behind bridge: 00003000-00003fff Memory behind bridge: 90400000-904fffff Prefetchable memory behind bridge: 98000000-9fffffff BridgeCtl: Parity- SERR- NoISA+ VGA+ MAbort- >Reset- FastB2B-
00:1d.0 USB Controller: Intel Corp. 82801DB USB (Hub #1) (rev 01) (prog-if 00 [UHCI])
Subsystem: Compaq Computer Corporation: Unknown device 0860
Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
Latency: 0 Interrupt: pin A routed to IRQ 10 Region 4: I/O ports at 48c0 [size=32]
00:1d.1 USB Controller: Intel Corp. 82801DB USB (Hub #2) (rev 01) (prog-if 00 [UHCI])
Subsystem: Compaq Computer Corporation: Unknown device 0860
Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
Latency: 0 Interrupt: pin B routed to IRQ 5 Region 4: I/O ports at 48e0 [size=32]
00:1d.2 USB Controller: Intel Corp. 82801DB USB (Hub #3) (rev 01) (prog-if 00 [UHCI])
Subsystem: Compaq Computer Corporation: Unknown device 0860
Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
Latency: 0 Interrupt: pin C routed to IRQ 10 Region 4: I/O ports at 4c00 [size=32]
00:1d.7 USB Controller: Intel Corp. 82801DB USB EHCI Controller (rev 01) (prog-if 20 [EHCI])
Subsystem: Compaq Computer Corporation: Unknown device 0860
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
Latency: 0
Interrupt: pin D routed to IRQ 5
Region 0: Memory at a0000000 (32-bit, non-prefetchable) [size=1K]
Capabilities: [50] Power Management version 2
Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mAPME(D0+,D1-,D2-,D3hot+,D3cold+)
Status: D0 PME-Enable- DSel=0 DScale=0 PME- Capabilities: [58] #0a [2080]
00:1e.0 PCI bridge: Intel Corp. 82801BAM/CAM PCI Bridge (rev 81) (prog-if 00 [Normal decode])
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR+ FastB2B-
Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort-
<MAbort- >SERR- <PERR+
Latency: 0 Bus: primary=00, secondary=02, subordinate=03, sec-latency=32 I/O behind bridge: 00002000-00002fff Memory behind bridge: 90000000-903fffff Prefetchable memory behind bridge: fff00000-000fffff BridgeCtl: Parity- SERR+ NoISA+ VGA- MAbort- >Reset- FastB2B-
00:1f.0 ISA bridge: Intel Corp.: Unknown device 24cc (rev 01)
Control: I/O+ Mem+ BusMaster+ SpecCycle+ MemWINV- VGASnoop- ParErr-
Stepping- SERR+ FastB2B-
Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
Latency: 0
00:1f.1 IDE interface: Intel Corp.: Unknown device 24ca (rev 01) (prog-if 8a [Master SecP PriP])
Subsystem: Compaq Computer Corporation: Unknown device 0860
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
Latency: 0
Interrupt: pin A routed to IRQ 10
Region 0: I/O ports at <unassigned>
Region 1: I/O ports at <unassigned>
Region 2: I/O ports at <unassigned>
Region 3: I/O ports at <unassigned>
Region 4: I/O ports at 4c40 [size=16]
Region 5: Memory at 28000000 (32-bit, non-prefetchable) [size=1K]
00:1f.3 SMBus: Intel Corp. 82801DB SMBus (rev 01)
Subsystem: Compaq Computer Corporation: Unknown device 0860
Control: I/O+ Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
Interrupt: pin B routed to IRQ 10 Region 4: I/O ports at 4c20 [size=32]
00:1f.5 Multimedia audio controller: Intel Corp. 82801DB AC'97 Audio (rev 01)
Subsystem: Compaq Computer Corporation: Unknown device 0860
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
Latency: 0 Interrupt: pin B routed to IRQ 10 Region 0: I/O ports at 4000 [size=256] Region 1: I/O ports at 4880 [size=64] Region 2: Memory at a0200000 (32-bit, non-prefetchable) [size=512] Region 3: Memory at a0300000 (32-bit, non-prefetchable) [size=256] Capabilities: [50] Power Management version 2 Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA
PME(D0+,D1-,D2-,D3hot+,D3cold+)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
00:1f.6 Modem: Intel Corp. 82801DB AC'97 Modem (rev 01) (prog-if 00 [Generic])
Subsystem: Compaq Computer Corporation: Unknown device 0860
Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
Latency: 0
Interrupt: pin B routed to IRQ 10
Region 0: I/O ports at 4400 [size=256]
Region 1: I/O ports at 4800 [size=128]
Capabilities: [50] Power Management version 2
Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mAPME(D0+,D1-,D2-,D3hot+,D3cold+)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
01:00.0 VGA compatible controller: ATI Technologies Inc Radeon R250 Lf [Radeon Mobility 9000] (rev 01) (prog-if 00 [VGA])
Subsystem: Compaq Computer Corporation: Unknown device 0860
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping+ SERR- FastB2B-
Status: Cap+ 66Mhz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
Latency: 128 (2000ns min), cache line size 08 Interrupt: pin A routed to IRQ 10 Region 0: Memory at 98000000 (32-bit, prefetchable) [size=128M] Region 1: I/O ports at 3000 [size=256] Region 2: Memory at 90400000 (32-bit, non-prefetchable) [size=64K] Expansion ROM at <unassigned> [disabled] [size=128K] Capabilities: [58] AGP version 2.0 Status: RQ=47 SBA+ 64bit- FW+ Rate=x1,x2,x4 Command: RQ=0 SBA+ AGP- 64bit- FW- Rate=<none> Capabilities: [50] Power Management version 2 Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA
PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
02:00.0 FireWire (IEEE 1394): VIA Technologies, Inc. IEEE 1394 Host Controller (rev 80) (prog-if 10 [OHCI])
Subsystem: VIA Technologies, Inc. IEEE 1394 Host Controller
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
Status: Cap+ 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
Latency: 128 (8000ns max), cache line size 08 Interrupt: pin A routed to IRQ 10 Region 0: Memory at 90200000 (32-bit, non-prefetchable) [size=2K] Region 1: I/O ports at 2400 [size=128] Capabilities: [50] Power Management version 2 Flags: PMEClk- DSI- D1- D2+ AuxCurrent=0mA
PME(D0-,D1-,D2+,D3hot+,D3cold+)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
02:01.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 20)
Subsystem: Compaq Computer Corporation: Unknown device 0860
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
Latency: 128 (8000ns min, 16000ns max), cache line size 08 Interrupt: pin A routed to IRQ 10 Region 0: I/O ports at 2000 [size=256] Region 1: Memory at 90300000 (32-bit, non-prefetchable) [size=256] Capabilities: [50] Power Management version 2 Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA
PME(D0-,D1+,D2+,D3hot+,D3cold+)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
02:02.0 Network controller: Intel Corp.: Unknown device 1043 (rev 04)
Subsystem: Intel Corp.: Unknown device 2527
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
Latency: 128 (500ns min, 8500ns max), cache line size 08
Interrupt: pin A routed to IRQ 5
Region 0: Memory at 90000000 (32-bit, non-prefetchable) [size=4K]
Capabilities: [dc] Power Management version 2
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mAPME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=1 PME-
02:04.0 CardBus bridge: ENE Technology Inc CB1410 Cardbus Controller
Subsystem: Compaq Computer Corporation: Unknown device 0860
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
Status: Cap+ 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
Latency: 168, cache line size 20 Interrupt: pin A routed to IRQ 10 Region 0: Memory at 90100000 (32-bit, non-prefetchable) [size=4K] Bus: primary=02, secondary=03, subordinate=06, sec-latency=176 Memory window 0: 28400000-287ff000 (prefetchable) Memory window 1: 28800000-28bff000 I/O window 0: 00001000-000010ff I/O window 1: 00001400-000014ff BridgeCtl: Parity- SERR- ISA- VGA- MAbort- >Reset- 16bInt- PostWrite+ 16-bit legacy interface ports at 0001
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd.: Unknown device 8180 (rev 20)
Subsystem: Netgear: Unknown device 4700
Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B-
Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
Interrupt: pin A routed to IRQ 10 Region 0: I/O ports at 1000 [disabled] [size=256] Region 1: Memory at 28800000 (32-bit, non-prefetchable) [disabled]
[size=512]
Capabilities: [50] Power Management version 2
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mAPME(D0+,D1+,D2+,D3hot+,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
Signature · 1 line
Carl Nygard <[email protected]>
Quoted 6 lines · Carl Nygard
Summary: Keyboard shift state not registered under fast typing or autorepeat
If someone can help point me where to look at the code, I've already looked into
./drivers/char/keyboard.cbut didn't see anything obvious. More specific help would be appreciated.
You must look at input/input.c at occurrences of repeat_key. (And afterwards at char/keyboard.c at kbd_event, kbd_keycode.)
You'll see that the current 2.6 code ignores a lot of what the keyboard is telling us and synthesizes its own events.
What happens in your autorepeat case:
- Press a key, repeat_key is set to its keycode.
If you keep it pressed then the keyboard repeats are ignored, but the kernel generates its own repeats using a timer.
- Press Shift, repeat_key is set to its keycode.
Now the timer repeat generates repeats of the Shift-down event, but that does not generate keyboard input.
But in your autorepeat case the kernel does precisely what the keyboard also would have done: repeat the last key that was pressed. Also the hardware keyboard does not send anything after Press A, Press Shift, Release Shift.
Incidentally, both add_keyboard_randomness() and add_mouse_randomness() are called - we invent more randomness than one might have thought at first.
Andries
Quoted 3 lines
Kernel doesn't register shift state when typing quickly. Example, 'ls *' shows up as 'ls 8' when typed fast. Also, holding '-' key down, once it's repeating, shift key makes no difference.
So, the first part of what you say, when true, would be a bug. But a bug difficult to distinguish from a finger coordination error. The second part is correct behaviour.
Quoted 2 lines · Andries Brouwer
On Tue, Aug 26, 2003 at 08:38:50PM -0400, Carl Nygard wrote:
Thanks for the pointers. I was about to argue about what proper behavior is, between what I see on my desktop 2.4.20 (RH9) and laptop 2.6.0, but then I saw what WinXP does, and some things clicked irrelevant. Anyway, thanks for the info...
Quoted 8 lines
Quoted 4 lines
Kernel doesn't register shift state when typing quickly. Example, 'ls *' shows up as 'ls 8' when typed fast. Also, holding '-' key down, once it's repeating, shift key makes no difference.
So, the first part of what you say, when true, would be a bug. But a bug difficult to distinguish from a finger coordination error. The second part is correct behaviour.
I don't believe any of this is coordination errors. Shown below is a log of some debug I added to my kernel (2.6.0-test4). I put debug stmt at the very top of input.c, before any possible return; and also in all the relevant if(...){ ...; return; } blocks in keyboard.c, as well as one or two general info statements in keyboard.c (if you need to see where, I'll post my patch, but I doubt it's necessary)
Here's the log, I did 'tail -f messages' and then typed 'ls <shift>8' in the window, so it's obvious at what point I'm typing:
Please note the bad version doesn't receive any notice of the shift-down event, but gets the shift-up event, proving that I really did press it;) The good version gets shift-down and shift-up properly.
My question: Is there anywhere else I can look, perhaps the code which calls input.c::input_event()? Or is this potentially a hardware problem (i.e. should I return my laptop, because this is too d*mn annoying)?
Thanks for the help
Regards,
Carl
Typing quickly:
lAug 29 15:54:34 traveler kernel: input.c: type: 1 code: 38:0x26 value: 1
Aug 29 15:54:34 traveler kernel: keyboard.c: shift_final: 0
Aug 29 15:54:34 traveler kernel: keyboard.c: raw_mode(1) && type(11) != KT_SPEC(2) && type != KT_SHIFT(7))
Aug 29 15:54:34 traveler kernel: input.c: type: 0 code: 0:0x0 value: 0
s 8Aug 29 15:54:34 traveler kernel: input.c: type: 1 code: 31:0x1f value: 1
Aug 29 15:54:34 traveler kernel: keyboard.c: shift_final: 0
Aug 29 15:54:34 traveler kernel: keyboard.c: raw_mode(1) && type(11) != KT_SPEC(2) && type != KT_SHIFT(7))
Aug 29 15:54:34 traveler kernel: input.c: type: 0 code: 0:0x0 value: 0
Aug 29 15:54:34 traveler kernel: input.c: type: 1 code: 38:0x26 value: 0
Aug 29 15:54:34 traveler kernel: keyboard.c: shift_final: 0
Aug 29 15:54:34 traveler kernel: keyboard.c: raw_mode(1) && type(11) != KT_SPEC(2) && type != KT_SHIFT(7))
Aug 29 15:54:34 traveler kernel: input.c: type: 0 code: 0:0x0 value: 0
Aug 29 15:54:34 traveler kernel: input.c: type: 1 code: 31:0x1f value: 0
Aug 29 15:54:34 traveler kernel: keyboard.c: shift_final: 0
Aug 29 15:54:34 traveler kernel: keyboard.c: raw_mode(1) && type(11) != KT_SPEC(2) && type != KT_SHIFT(7))
Aug 29 15:54:34 traveler kernel: input.c: type: 0 code: 0:0x0 value: 0
Aug 29 15:54:34 traveler kernel: input.c: type: 1 code: 57:0x39 value: 1
Aug 29 15:54:34 traveler kernel: keyboard.c: shift_final: 0
Aug 29 15:54:34 traveler kernel: keyboard.c: raw_mode(1) && type(0) != KT_SPEC(2) && type != KT_SHIFT(7))
Aug 29 15:54:34 traveler kernel: input.c: type: 0 code: 0:0x0 value: 0
Aug 29 15:54:34 traveler kernel: input.c: type: 1 code: 57:0x39 value: 0
Aug 29 15:54:34 traveler kernel: keyboard.c: shift_final: 0
Aug 29 15:54:34 traveler kernel: keyboard.c: raw_mode(1) && type(0) != KT_SPEC(2) && type != KT_SHIFT(7))
Aug 29 15:54:34 traveler kernel: input.c: type: 0 code: 0:0x0 value: 0
Aug 29 15:54:34 traveler kernel: input.c: type: 1 code: 9:0x9 value: 1
Aug 29 15:54:34 traveler kernel: keyboard.c: shift_final: 0
Aug 29 15:54:34 traveler kernel: keyboard.c: raw_mode(1) && type(0) != KT_SPEC(2) && type != KT_SHIFT(7))
Aug 29 15:54:34 traveler kernel: input.c: type: 0 code: 0:0x0 value: 0
Aug 29 15:54:34 traveler kernel: input.c: type: 1 code: 9:0x9 value: 0
Aug 29 15:54:34 traveler kernel: keyboard.c: shift_final: 0
Aug 29 15:54:34 traveler kernel: keyboard.c: raw_mode(1) && type(0) != KT_SPEC(2) && type != KT_SHIFT(7))
Aug 29 15:54:34 traveler kernel: input.c: type: 0 code: 0:0x0 value: 0
Aug 29 15:54:34 traveler kernel: input.c: type: 1 code: 54:0x36 value: 0
## ^--- Shift-up event
Aug 29 15:54:34 traveler kernel: input.c: type: 0 code: 0:0x0 value: 0
Aug 29 15:54:39 traveler kernel: input.c: type: 1 code: 29:0x1d value: 1
Aug 29 15:54:39 traveler kernel: keyboard.c: shift_final: 0typing slower, at least making sure the space <shift> are separated.
lsAug 29 15:55:07 traveler kernel: input.c: type: 1 code: 28:0x1c value: 0
Aug 29 15:55:07 traveler kernel: keyboard.c: shift_final: 0
Aug 29 15:55:07 traveler kernel: keyboard.c: handling keycode: 28 keysym 61953/1 down: 0
Aug 29 15:55:07 traveler kernel: input.c: type: 0 code: 0:0x0 value: 0
Aug 29 15:55:08 traveler kernel: input.c: type: 1 code: 38:0x26 value: 1
Aug 29 15:55:08 traveler kernel: keyboard.c: shift_final: 0
Aug 29 15:55:08 traveler kernel: keyboard.c: raw_mode(1) && type(11) != KT_SPEC(2) && type != KT_SHIFT(7))
Aug 29 15:55:08 traveler kernel: input.c: type: 0 code: 0:0x0 value: 0
Aug 29 15:55:08 traveler kernel: input.c: type: 1 code: 31:0x1f value: 1
Aug 29 15:55:08 traveler kernel: keyboard.c: shift_final: 0
Aug 29 15:55:08 traveler kernel: keyboard.c: raw_mode(1) && type(11) != KT_SPEC(2) && type != KT_SHIFT(7))
Aug 29 15:55:08 traveler kernel: input.c: type: 0 code: 0:0x0 value: 0
Aug 29 15:55:08 traveler kernel: input.c: type: 1 code: 38:0x26 value: 0
Aug 29 15:55:08 traveler kernel: keyboard.c: shift_final: 0
Aug 29 15:55:08 traveler kernel: keyboard.c: raw_mode(1) && type(11) != KT_SPEC(2) && type != KT_SHIFT(7))
Aug 29 15:55:08 traveler kernel: input.c: type: 0 code: 0:0x0 value: 0
*Aug 29 15:55:08 traveler kernel: input.c: type: 1 code: 31:0x1f value: 0
Aug 29 15:55:08 traveler kernel: keyboard.c: shift_final: 0
Aug 29 15:55:08 traveler kernel: keyboard.c: raw_mode(1) && type(11) != KT_SPEC(2) && type != KT_SHIFT(7))
Aug 29 15:55:08 traveler kernel: input.c: type: 0 code: 0:0x0 value: 0
Aug 29 15:55:08 traveler kernel: input.c: type: 1 code: 57:0x39 value: 1
Aug 29 15:55:08 traveler kernel: keyboard.c: shift_final: 0
Aug 29 15:55:08 traveler kernel: keyboard.c: raw_mode(1) && type(0) != KT_SPEC(2) && type != KT_SHIFT(7))
Aug 29 15:55:08 traveler kernel: input.c: type: 0 code: 0:0x0 value: 0
Aug 29 15:55:08 traveler kernel: input.c: type: 1 code: 57:0x39 value: 0
Aug 29 15:55:08 traveler kernel: keyboard.c: shift_final: 0
Aug 29 15:55:08 traveler kernel: keyboard.c: raw_mode(1) && type(0) != KT_SPEC(2) && type != KT_SHIFT(7))
Aug 29 15:55:08 traveler kernel: input.c: type: 0 code: 0:0x0 value: 0
Aug 29 15:55:08 traveler kernel: input.c: type: 1 code: 54:0x36 value: 1
## ^---- Shift-down event
Aug 29 15:55:08 traveler kernel: keyboard.c: shift_final: 0
Aug 29 15:55:08 traveler kernel: keyboard.c: handling keycode: 54 keysym 63232/0 down: 1
Aug 29 15:55:08 traveler kernel: input.c: type: 0 code: 0:0x0 value: 0
Aug 29 15:55:09 traveler kernel: input.c: type: 1 code: 9:0x9 value: 1
Aug 29 15:55:09 traveler kernel: keyboard.c: shift_final: 1
Aug 29 15:55:09 traveler kernel: keyboard.c: raw_mode(1) && type(0) != KT_SPEC(2) && type != KT_SHIFT(7))
Aug 29 15:55:09 traveler kernel: input.c: type: 0 code: 0:0x0 value: 0
Aug 29 15:55:09 traveler kernel: input.c: type: 1 code: 9:0x9 value: 0
Aug 29 15:55:09 traveler kernel: keyboard.c: shift_final: 1
Aug 29 15:55:09 traveler kernel: keyboard.c: raw_mode(1) && type(0) != KT_SPEC(2) && type != KT_SHIFT(7))
Aug 29 15:55:09 traveler kernel: input.c: type: 0 code: 0:0x0 value: 0
Aug 29 15:55:09 traveler kernel: input.c: type: 1 code: 54:0x36 value: 0
## ^---- Shift-up event
Aug 29 15:55:09 traveler kernel: keyboard.c: shift_final: 1
Aug 29 15:55:09 traveler kernel: keyboard.c: handling keycode: 54 keysym 63232/0 down: 0
Aug 29 15:55:09 traveler kernel: input.c: type: 0 code: 0:0x0 value: 0Signature · 1 line
Carl Nygard <[email protected]>
Quoted 8 lines · Carl Nygard
Quoted 2 lines
Quoted 2 lines
Kernel doesn't register shift state when typing quickly. Example, 'ls *' shows up as 'ls 8' when typed fast.
Typing quickly:
## ^--- Shift-up event(and the Shift-down event was never seen)
Quoted 7 lines
typing slower,
## ^---- Shift-down event ## ^---- Shift-up eventIs this potentially a hardware problem
(i.e. should I return my laptop, because this is too d*mn annoying)?
You can try to decide by running a 2.4 kernel on this laptop. If also 2.4 fails it may be hardware. If not, we must fix 2.6.
Quoted 12 lines · Andries Brouwer
Quoted 10 lines · Carl Nygard
Quoted 2 lines
Quoted 2 lines
Kernel doesn't register shift state when typing quickly. Example, 'ls *' shows up as 'ls 8' when typed fast.
Typing quickly:
## ^--- Shift-up event(and the Shift-down event was never seen)
typing slower,
Quoted 8 lines
Quoted 5 lines
## ^---- Shift-down event ## ^---- Shift-up eventIs this potentially a hardware problem
(i.e. should I return my laptop, because this is too d*mn annoying)?You can try to decide by running a 2.4 kernel on this laptop. If also 2.4 fails it may be hardware. If not, we must fix 2.6.
It was the same behavior on 2.4.20, 2.4.21, 2.6.0-test3/4, and also XP. It's a hardware problem, I'm sending the thing in for repair.
Sorry for the false alarm, but it helped to narrow down what was happening, so thanks for the pointers.
Signature · 1 line
Carl Nygard <[email protected]>