From: Jiri Slaby <jirislaby@gmail.com>
To: Jeremy Huddleston <jeremyhu@freedesktop.org>
Cc: Jiri Kosina <jkosina@suse.cz>, linux-input@vger.kernel.org
Subject: Re: hid_apple bug: arrow keys interpreted as Fn
Date: Tue, 19 May 2009 22:57:37 +0200 [thread overview]
Message-ID: <4A131D41.3030305@gmail.com> (raw)
In-Reply-To: <C3870FA0-209F-4D40-8923-34D594B75EB1@freedesktop.org>
On 05/19/2009 07:13 AM, Jeremy Huddleston wrote:
> I'm sending this to you since you're the most recent maintainer listed
> in hid_apple.c ... please let me know if I should look somewhere else...
>
> I've found a weird issue using hid_apple in a recent linux-2.6 git.
> Pressing 3 arrow keys at once causes a problem whereby the third press
> and the first release are interpreted as Fn instead of the actual key.
>
> From evtest.c (http://people.freedesktop.org/~whot/evtest.c):
>
> # press right
> Event: time 1242708001.840682, type 4 (Misc), code 4 (ScanCode), value
> 7004f
> Event: time 1242708001.840700, type 1 (Key), code 106 (Right), value 1
> Event: time 1242708001.840704, -------------- Report Sync ------------
> Event: time 1242708002.089283, type 1 (Key), code 106 (Right), value 2
> ... REPEAT ...
> Event: time 1242708002.489293, type 1 (Key), code 106 (Right), value 2
> Event: time 1242708002.489302, -------------- Report Sync ------------
>
> press down
> Event: time 1242708002.496684, type 4 (Misc), code 4 (ScanCode), value
> 70051
> Event: time 1242708002.496699, type 1 (Key), code 108 (Down), value 1
> Event: time 1242708002.496704, -------------- Report Sync ------------
> Event: time 1242708002.745939, type 1 (Key), code 108 (Down), value 2
> ... REPEAT
> Event: time 1242708003.545937, type 1 (Key), code 108 (Down), value 2
> Event: time 1242708003.545945, -------------- Report Sync ------------
>
> press left
> Event: time 1242708003.568680, type 1 (Key), code 464 (?), value 1
> Event: time 1242708003.568690, -------------- Report Sync ------------
> Event: time 1242708003.815938, type 1 (Key), code 464 (?), value 2
> ... REPEAT
> Event: time 1242708004.582630, type 1 (Key), code 464 (?), value 2
> Event: time 1242708004.582639, -------------- Report Sync ------------
>
> release right (somehow this release is causing the Fn release and right
> never releases)
> Event: time 1242708004.592685, type 1 (Key), code 102 (Home), value 1
> Event: time 1242708004.592697, type 1 (Key), code 464 (?), value 0
> Event: time 1242708004.592699, -------------- Report Sync ------------
>
> release down
> Event: time 1242708009.040671, type 4 (Misc), code 4 (ScanCode), value
> 70051
> Event: time 1242708009.040685, type 1 (Key), code 108 (Down), value 0
> Event: time 1242708009.040689, -------------- Report Sync ------------
>
> release left
> Event: time 1242708013.568663, type 1 (Key), code 102 (Home), value 0
> Event: time 1242708013.568671, -------------- Report Sync ------------
Didn't you crop some 'type 4 (Misc)' lines from that output? It looks
like the kbd controller doesn't emit hid events for the releases. It all
looks like the controller got pretty crazy after pressing those 3
buttons at a time. Jiri, any ideas here?
I don't understand 'code 464' lines as well, how they did get there? I
would have suspected the autorepeat code if there hadn't been a 'value
1' entry. But this look like we get a mess from the keyboard.
What it is expected to output when you press fn+arrow?
> ---
>
> Bus 002 Device 003: ID 05ac:020e Apple, Inc. Internal Keyboard/Trackpad
> Device Descriptor:
> bLength 18
> bDescriptorType 1
> bcdUSB 2.00
> bDeviceClass 0 (Defined at Interface level)
> bDeviceSubClass 0
> bDeviceProtocol 0
> bMaxPacketSize0 8
> idVendor 0x05ac Apple, Inc.
> idProduct 0x020e Internal Keyboard/Trackpad
> bcdDevice 0.28
> iManufacturer 1 Apple Computer
> iProduct 2 Apple Internal Keyboard/Trackpad
> iSerial 0
> bNumConfigurations 1
> Configuration Descriptor:
> bLength 9
> bDescriptorType 2
> wTotalLength 21504
> bNumInterfaces 3
> bConfigurationValue 1
> iConfiguration 0
> bmAttributes 0xa0
> (Bus Powered)
> Remote Wakeup
> MaxPower 40mA
> Interface Descriptor:
> bLength 9
> bDescriptorType 4
> bInterfaceNumber 0
> bAlternateSetting 0
> bNumEndpoints 1
> bInterfaceClass 3 Human Interface Device
> bInterfaceSubClass 1 Boot Interface Subclass
> bInterfaceProtocol 1 Keyboard
> iInterface 5 Keyboard
> HID Device Descriptor:
> bLength 9
> bDescriptorType 33
> bcdHID 1.10
> bCountryCode 0 Not supported
> bNumDescriptors 1
> bDescriptorType 34 Report
> wDescriptorLength 73
> Report Descriptors:
> ** UNAVAILABLE **
> Endpoint Descriptor:
> bLength 7
> bDescriptorType 5
> bEndpointAddress 0x83 EP 3 IN
> bmAttributes 3
> Transfer Type Interrupt
> Synch Type None
> Usage Type Data
> wMaxPacketSize 0x0800 2x 0 bytes
> bInterval 10
> Interface Descriptor:
> bLength 9
> bDescriptorType 4
> bInterfaceNumber 1
> bAlternateSetting 0
> bNumEndpoints 1
> bInterfaceClass 3 Human Interface Device
> bInterfaceSubClass 1 Boot Interface Subclass
> bInterfaceProtocol 2 Mouse
> iInterface 6 Touchpad
> HID Device Descriptor:
> bLength 9
> bDescriptorType 33
> bcdHID 1.10
> bCountryCode 0 Not supported
> bNumDescriptors 1
> bDescriptorType 34 Report
> wDescriptorLength 35
> Report Descriptors:
> ** UNAVAILABLE **
> Endpoint Descriptor:
> bLength 7
> bDescriptorType 5
> bEndpointAddress 0x81 EP 1 IN
> bmAttributes 3
> Transfer Type Interrupt
> Synch Type None
> Usage Type Data
> wMaxPacketSize 0x2000 1x 0 bytes
> bInterval 1
> Interface Descriptor:
> bLength 9
> bDescriptorType 4
> bInterfaceNumber 2
> bAlternateSetting 0
> bNumEndpoints 1
> bInterfaceClass 3 Human Interface Device
> bInterfaceSubClass 0 No Subclass
> bInterfaceProtocol 0 None
> iInterface 7 Consumer
> HID Device Descriptor:
> bLength 9
> bDescriptorType 33
> bcdHID 1.10
> bCountryCode 0 Not supported
> bNumDescriptors 1
> bDescriptorType 34 Report
> wDescriptorLength 20
> Report Descriptors:
> ** UNAVAILABLE **
> Endpoint Descriptor:
> bLength 7
> bDescriptorType 5
> bEndpointAddress 0x84 EP 4 IN
> bmAttributes 3
> Transfer Type Interrupt
> Synch Type None
> Usage Type Data
> wMaxPacketSize 0x0100 1x 256 bytes
> bInterval 10
> Device Status: 0x0000
> (Bus Powered)
>
next parent reply other threads:[~2009-05-19 20:58 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <3E66E0E0-3B2B-4F78-9A62-87015A842A47@freedesktop.org>
[not found] ` <C3870FA0-209F-4D40-8923-34D594B75EB1@freedesktop.org>
2009-05-19 20:57 ` Jiri Slaby [this message]
2009-05-19 21:10 ` hid_apple bug: arrow keys interpreted as Fn Jiri Slaby
2009-05-19 22:31 ` Jeremy Huddleston
[not found] ` <4A132540.7070409@gmail.com>
2009-05-20 1:04 ` Jeremy Huddleston
2009-05-20 14:19 ` Jiri Kosina
2009-05-20 17:41 ` Jeremy Huddleston
2009-05-21 0:39 ` Jeremy Huddleston
2009-06-23 13:07 ` Jiri Kosina
2009-06-23 15:10 ` Jeremy Huddleston
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4A131D41.3030305@gmail.com \
--to=jirislaby@gmail.com \
--cc=jeremyhu@freedesktop.org \
--cc=jkosina@suse.cz \
--cc=linux-input@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.