Re: hid_apple bug: arrow keys interpreted as Fn

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On Jun 23, 2009, at 06:07, Jiri Kosina wrote:

On Wed, 20 May 2009, Jeremy Huddleston wrote:

press right:
May 19 18:01:14 aeris kernel: [ 256.453247] drivers/hid/hid- core.c: report
(size 8) (unnumbered)
May 19 18:01:14 aeris kernel: [ 256.453259] drivers/hid/hid- core.c: report
0 (size 8) =  00 00 4f 00 00 00 00 00
[ ... ]
press down:
May 19 18:01:17 aeris kernel: [ 259.429256] drivers/hid/hid- core.c: report
(size 8) (unnumbered)
May 19 18:01:17 aeris kernel: [ 259.429268] drivers/hid/hid- core.c: report
0 (size 8) =  00 00 4f 51 00 00 00 00
[ ... ]
press left:
May 19 18:01:20 aeris kernel: [ 262.469256] drivers/hid/hid- core.c: report
(size 8) (unnumbered)
May 19 18:01:20 aeris kernel: [ 262.469269] drivers/hid/hid- core.c: report
0 (size 8) =  00 00 01 01 01 01 01 01
[ ... ]
release right:
May 19 18:01:22 aeris kernel: [ 264.981247] drivers/hid/hid- core.c: report
(size 8) (unnumbered)
May 19 18:01:22 aeris kernel: [ 264.981258] drivers/hid/hid- core.c: report
0 (size 8) =  00 00 51 50 00 00 00 00
[ ... ]
release down:
May 19 18:01:25 aeris kernel: [ 267.405254] drivers/hid/hid- core.c: report
(size 8) (unnumbered)
May 19 18:01:25 aeris kernel: [ 267.405267] drivers/hid/hid- core.c: report
0 (size 8) =  00 00 50 00 00 00 00 00
[ ... ]
release left:
May 19 18:01:26 aeris kernel: [ 269.277246] drivers/hid/hid- core.c: report
(size 8) (unnumbered)
May 19 18:01:26 aeris kernel: [ 269.277258] drivers/hid/hid- core.c: report
0 (size 8) =  00 00 00 00 00 00 00 00
Do you have any chance to verify whether this works properly in a
different operating system? It would require very specific handling
violating the standard.
So in OSX, I certainly don't see the Fn misinterpretation. There is another odd behavior in OSX that is probably related to an underlying hardware quirk
that OSX just deals with more elegantly.

In OSX, I see this behavior:

press right:
 event received that right arrow pressed
press down:
 event received that down arrow pressed
press left:
 no event
release right:
 event received that right arrow released
 event received that left arrow pressed
release down:
 event received that down arrow released
release left:
 event received that left arrow released

In fact, in your "press left" report, there is

drivers/hid/hid-core.c: report (size 8) (unnumbered)
drivers/hid/hid-core.c: report 0 (size 8) =  00 00 01 01 01 01 01 01
hid-debug: input Keyboard.00e0 = 0
hid-debug: input Keyboard.00e1 = 0
hid-debug: input Keyboard.00e2 = 0
hid-debug: input Keyboard.00e3 = 0
hid-debug: input Keyboard.00e4 = 0
hid-debug: input Keyboard.00e5 = 0
hid-debug: input Keyboard.00e6 = 0
hid-debug: input Keyboard.00e7 = 0
hid-debug: input 00ff.0003 = 1

Which signalizes that the keyboard thinks that "Fn" key has been pressed. Can you please verify that pressing right-down-left-<something> works in a
same way as fn-<something>?

When I have right-down-left pressed, no other keys pressed generate any event that I can see by running evtest. However, the

Yes. I'm sorry that hasn't been clear in my description, but on OSX I do not see the misbehavior of the third arrow being seen as "Fn". I see exactly the (expected) behavior listed in my quoted text and copied here.

So in short:

===OSX (correct, based on HW limitations)===
press right:
 event received that right arrow pressed
press down:
 event received that down arrow pressed
press left:
 no event (atleast as far as applications are told)
release right:
 event received that right arrow released
 event received that left arrow pressed
release down:
 event received that down arrow released
release left:
 event received that left arrow released


===Linux (wrong)===
press right:
 event received that right arrow pressed
press down:
 event received that down arrow pressed
press left:
 ### ERROR ### event received that Fn pressed
release right:
 event received that home pressed ## NOTE: Fn+left is home
### ERROR ### event that Fn released (so "right arrow" is still seen in a pressed state)
release down:
 event received that down arrow released
release left:
 event received that home released


--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux