linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* PROBLEM: keyboard shift not registered under fast typing or auto-repeat
@ 2003-08-27  0:38 Carl Nygard
  2003-08-27 10:50 ` Andries Brouwer
  0 siblings, 1 reply; 5+ messages in thread
From: Carl Nygard @ 2003-08-27  0:38 UTC (permalink / raw)
  To: linux-kernel


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	: 0
vendor_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 KB
fdiv_bug	: no
hlt_bug		: no
f00f_bug	: no
coma_bug	: no
fpu		: yes
fpu_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=375mA
PME(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=375mA
PME(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=0mA
PME(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=0mA
PME(D0+,D1+,D2+,D3hot+,D3cold-)
		Status: D0 PME-Enable- DSel=0 DScale=0 PME-




-- 
Carl Nygard <cjnygard@fast.net>


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: PROBLEM: keyboard shift not registered under fast typing or auto-repeat
  2003-08-27  0:38 PROBLEM: keyboard shift not registered under fast typing or auto-repeat Carl Nygard
@ 2003-08-27 10:50 ` Andries Brouwer
  2003-08-29 23:56   ` Carl Nygard
  0 siblings, 1 reply; 5+ messages in thread
From: Andries Brouwer @ 2003-08-27 10:50 UTC (permalink / raw)
  To: Carl Nygard; +Cc: linux-kernel

On Tue, Aug 26, 2003 at 08:38:50PM -0400, Carl Nygard wrote:

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

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


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


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: PROBLEM: keyboard shift not registered under fast typing or auto-repeat
  2003-08-27 10:50 ` Andries Brouwer
@ 2003-08-29 23:56   ` Carl Nygard
  2003-08-30 20:15     ` Andries Brouwer
  0 siblings, 1 reply; 5+ messages in thread
From: Carl Nygard @ 2003-08-29 23:56 UTC (permalink / raw)
  To: Andries Brouwer; +Cc: linux-kernel

On Wed, 2003-08-27 at 06:50, Andries Brouwer wrote:
> 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...
> 
> > 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: 0
                                                                                                                
typing 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: 0
                                                                                                                

-- 
Carl Nygard <cjnygard@fast.net>


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: PROBLEM: keyboard shift not registered under fast typing or auto-repeat
  2003-08-29 23:56   ` Carl Nygard
@ 2003-08-30 20:15     ` Andries Brouwer
  2003-08-31  5:03       ` Carl Nygard
  0 siblings, 1 reply; 5+ messages in thread
From: Andries Brouwer @ 2003-08-30 20:15 UTC (permalink / raw)
  To: Carl Nygard; +Cc: Andries Brouwer, linux-kernel

On Fri, Aug 29, 2003 at 07:56:22PM -0400, Carl Nygard wrote:

> > > 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,
> 
>     ## ^---- Shift-down event
>     ## ^---- Shift-up event
>
> Is 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.




^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: PROBLEM: keyboard shift not registered under fast typing or auto-repeat
  2003-08-30 20:15     ` Andries Brouwer
@ 2003-08-31  5:03       ` Carl Nygard
  0 siblings, 0 replies; 5+ messages in thread
From: Carl Nygard @ 2003-08-31  5:03 UTC (permalink / raw)
  To: Andries Brouwer; +Cc: linux-kernel

On Sat, 2003-08-30 at 16:15, Andries Brouwer wrote:
> On Fri, Aug 29, 2003 at 07:56:22PM -0400, Carl Nygard wrote:
> 
> > > > 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,
> > 
> >     ## ^---- Shift-down event
> >     ## ^---- Shift-up event
> >
> > Is 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.

-- 
Carl Nygard <cjnygard@fast.net>


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2003-08-31  5:22 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-08-27  0:38 PROBLEM: keyboard shift not registered under fast typing or auto-repeat Carl Nygard
2003-08-27 10:50 ` Andries Brouwer
2003-08-29 23:56   ` Carl Nygard
2003-08-30 20:15     ` Andries Brouwer
2003-08-31  5:03       ` Carl Nygard

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).