All of lore.kernel.org
 help / color / mirror / Atom feed
* Keyboard and mouse issues on MacBook Air (4,2)
@ 2011-10-17 17:59 Nico Schottelius
  2011-10-17 18:16 ` Jiri Kosina
  0 siblings, 1 reply; 13+ messages in thread
From: Nico Schottelius @ 2011-10-17 17:59 UTC (permalink / raw)
  To: LKML

Hello LKML,

after several days of reading various forums and mailinglists,
it seems that keyboard and mouse support on the MacBook Air is
pretty broken:

- The fn key does not modify the cursor behaviour:
  FN+Cursor up should result in Page up,
  FN+Cursor down should result in Page down, etc.

  Actual result: Cursor keys are passed in as usual

- The multitouch trackpad only works if bcm5974 is loaded before usbhid
  -> otherwise only left click works

- If bcm5974 is loaded before usbhid, left moving the mouse while
  holding down the mouse button (i.e. the trackpad) does not work,
  but results in a right click

Anyone a pointer on how to fix these issues?

Cheers,

Nico

-- 
PGP key: 7ED9 F7D3 6B10 81D7 0EC5  5C09 D7DC C8E4 3187 7DF0

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

* Re: Keyboard and mouse issues on MacBook Air (4,2)
  2011-10-17 17:59 Keyboard and mouse issues on MacBook Air (4,2) Nico Schottelius
@ 2011-10-17 18:16 ` Jiri Kosina
  2011-10-17 21:40   ` Nico Schottelius
  0 siblings, 1 reply; 13+ messages in thread
From: Jiri Kosina @ 2011-10-17 18:16 UTC (permalink / raw)
  To: Nico Schottelius; +Cc: LKML

On Mon, 17 Oct 2011, Nico Schottelius wrote:

> Hello LKML,
> 
> after several days of reading various forums and mailinglists,
> it seems that keyboard and mouse support on the MacBook Air is
> pretty broken:
> 
> - The fn key does not modify the cursor behaviour:
>   FN+Cursor up should result in Page up,
>   FN+Cursor down should result in Page down, etc.
> 
>   Actual result: Cursor keys are passed in as usual
> 
> - The multitouch trackpad only works if bcm5974 is loaded before usbhid
>   -> otherwise only left click works
> 
> - If bcm5974 is loaded before usbhid, left moving the mouse while
>   holding down the mouse button (i.e. the trackpad) does not work,
>   but results in a right click
> 
> Anyone a pointer on how to fix these issues?

Please try with my hid.git tree, preferably for-next branch. Namely 
commit 4b086910ad1.

Thanks,

-- 
Jiri Kosina
SUSE Labs


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

* Re: Keyboard and mouse issues on MacBook Air (4,2)
  2011-10-17 18:16 ` Jiri Kosina
@ 2011-10-17 21:40   ` Nico Schottelius
  2011-10-17 21:49     ` Nico Schottelius
  2011-10-19 15:01     ` Nico Schottelius
  0 siblings, 2 replies; 13+ messages in thread
From: Nico Schottelius @ 2011-10-17 21:40 UTC (permalink / raw)
  To: Jiri Kosina; +Cc: Nico Schottelius, LKML

Hey Jiri,

Jiri Kosina [Mon, Oct 17, 2011 at 08:16:55PM +0200]:
> > [...]
> > - The fn key does not modify the cursor behaviour:
> >   FN+Cursor up should result in Page up,
> >   FN+Cursor down should result in Page down, etc.
> > 
> >   Actual result: Cursor keys are passed in as usual
> > 
> > - The multitouch trackpad only works if bcm5974 is loaded before usbhid
> >   -> otherwise only left click works
> > 
> > - If bcm5974 is loaded before usbhid, left moving the mouse while
> >   holding down the mouse button (i.e. the trackpad) does not work,
> >   but results in a right click
> > 
> > Anyone a pointer on how to fix these issues?
> 
> Please try with my hid.git tree, preferably for-next branch. Namely 
> commit 4b086910ad1.

Thanks a lot, fn works perfectly now!

If I switch fnmode to 2
(echo 2 > /sys/module/hid_apple/parameters/fnmode),
there are though some mis-mapping for the Multimedia Keys.

I've attached the xev output of fn+{F1-F12}.

F1-F4 are correct, though
  F3 = Expose on MacOS X (**)
  F4 = Dashboard (**)
F5: not mapped at all: Is KeyboardLightDecrease on MacOSX (*)
F6 is XF86AudioPrev incorrect: Should be  KeyboardLightIncrease (*)
F7 is XF86AudioPlay incorrect: Should be XF86AudioPrev
F8 is XF86AudioNext incorrect: Should be XF86AudioPlay
F9 is XF86AudioMute incorrect: Should be XF86AudioNext
F10 is XF86AudioLowerVolume incorrect: Should be XF86AudioMute
F11 is XF86AudioRaiseVolume incorrect: Should be XF86AudioLowerVolume 
F12 is XF86Eject incorrect: Should be  XF86AudioRaiseVolume 

Thus F7-12 are shifted by one to left in reality and as the MacBook Air
does not have an optical drive, there is no eject button.

One thing that does not work on the trackpad that works on MacOS X:

Having the thumb (or any other finger) on the trackpad (not moving)
and moving another finger to move the pointer does not work.

This always results in a scroll event, which is probably never
desired but only when two fingers are moved.

But in general, this looks like a great step towards usability on the
Macbook Air!

When can we expect this to be merged into Linus' tree? Imho this should
be moved there asap, to prevent other users to run into the same
trouble.

Cheers,

Nico

(*) If Xorg/Linux has something like this, if not it should be added
(**) XF86LaunchA/B work fine as well, but could be renamed for easier
     mapping

p.s.: Search for "mac book air manual" to see the actual keyboard
      mappings in the pdf, page 28.

-- 
PGP key: 7ED9 F7D3 6B10 81D7 0EC5  5C09 D7DC C8E4 3187 7DF0

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

* Re: Keyboard and mouse issues on MacBook Air (4,2)
  2011-10-17 21:40   ` Nico Schottelius
@ 2011-10-17 21:49     ` Nico Schottelius
  2011-10-19 15:01     ` Nico Schottelius
  1 sibling, 0 replies; 13+ messages in thread
From: Nico Schottelius @ 2011-10-17 21:49 UTC (permalink / raw)
  To: Nico Schottelius, Jiri Kosina, LKML

[-- Attachment #1: Type: text/plain, Size: 84 bytes --]

+ xev attachement.

-- 
PGP key: 7ED9 F7D3 6B10 81D7 0EC5  5C09 D7DC C8E4 3187 7DF0

[-- Attachment #2: xev --]
[-- Type: text/plain, Size: 7634 bytes --]

KeyPress event, serial 27, synthetic NO, window 0x1200001,
    root 0x131, subw 0x0, time 631172, (150,8), root:(794,419),
    state 0x0, keycode 232 (keysym 0x1008ff03, XF86MonBrightnessDown), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 27, synthetic NO, window 0x1200001,
    root 0x131, subw 0x0, time 631268, (150,8), root:(794,419),
    state 0x0, keycode 232 (keysym 0x1008ff03, XF86MonBrightnessDown), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyPress event, serial 27, synthetic NO, window 0x1200001,
    root 0x131, subw 0x0, time 631852, (150,8), root:(794,419),
    state 0x0, keycode 233 (keysym 0x1008ff02, XF86MonBrightnessUp), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 27, synthetic NO, window 0x1200001,
    root 0x131, subw 0x0, time 631972, (150,8), root:(794,419),
    state 0x0, keycode 233 (keysym 0x1008ff02, XF86MonBrightnessUp), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyPress event, serial 27, synthetic NO, window 0x1200001,
    root 0x131, subw 0x0, time 632660, (150,8), root:(794,419),
    state 0x0, keycode 128 (keysym 0x1008ff4a, XF86LaunchA), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 27, synthetic NO, window 0x1200001,
    root 0x131, subw 0x0, time 632772, (150,8), root:(794,419),
    state 0x0, keycode 128 (keysym 0x1008ff4a, XF86LaunchA), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyPress event, serial 27, synthetic NO, window 0x1200001,
    root 0x131, subw 0x0, time 633596, (150,8), root:(794,419),
    state 0x0, keycode 212 (keysym 0x1008ff4b, XF86LaunchB), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 27, synthetic NO, window 0x1200001,
    root 0x131, subw 0x0, time 633700, (150,8), root:(794,419),
    state 0x0, keycode 212 (keysym 0x1008ff4b, XF86LaunchB), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyPress event, serial 27, synthetic NO, window 0x1200001,
    root 0x131, subw 0x0, time 634636, (150,8), root:(794,419),
    state 0x0, keycode 71 (keysym 0xffc2, F5), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 27, synthetic NO, window 0x1200001,
    root 0x131, subw 0x0, time 634772, (150,8), root:(794,419),
    state 0x0, keycode 71 (keysym 0xffc2, F5), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyPress event, serial 27, synthetic NO, window 0x1200001,
    root 0x131, subw 0x0, time 635508, (150,8), root:(794,419),
    state 0x0, keycode 173 (keysym 0x1008ff16, XF86AudioPrev), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 27, synthetic NO, window 0x1200001,
    root 0x131, subw 0x0, time 635636, (150,8), root:(794,419),
    state 0x0, keycode 173 (keysym 0x1008ff16, XF86AudioPrev), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyPress event, serial 27, synthetic NO, window 0x1200001,
    root 0x131, subw 0x0, time 637308, (150,8), root:(794,419),
    state 0x0, keycode 172 (keysym 0x1008ff14, XF86AudioPlay), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 27, synthetic NO, window 0x1200001,
    root 0x131, subw 0x0, time 637428, (150,8), root:(794,419),
    state 0x0, keycode 172 (keysym 0x1008ff14, XF86AudioPlay), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyPress event, serial 27, synthetic NO, window 0x1200001,
    root 0x131, subw 0x0, time 638108, (150,8), root:(794,419),
    state 0x0, keycode 171 (keysym 0x1008ff17, XF86AudioNext), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 27, synthetic NO, window 0x1200001,
    root 0x131, subw 0x0, time 638252, (150,8), root:(794,419),
    state 0x0, keycode 171 (keysym 0x1008ff17, XF86AudioNext), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyPress event, serial 27, synthetic NO, window 0x1200001,
    root 0x131, subw 0x0, time 639316, (150,8), root:(794,419),
    state 0x0, keycode 121 (keysym 0x1008ff12, XF86AudioMute), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 27, synthetic NO, window 0x1200001,
    root 0x131, subw 0x0, time 639444, (150,8), root:(794,419),
    state 0x0, keycode 121 (keysym 0x1008ff12, XF86AudioMute), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyPress event, serial 27, synthetic NO, window 0x1200001,
    root 0x131, subw 0x0, time 641236, (150,8), root:(794,419),
    state 0x0, keycode 122 (keysym 0x1008ff11, XF86AudioLowerVolume), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 27, synthetic NO, window 0x1200001,
    root 0x131, subw 0x0, time 641340, (150,8), root:(794,419),
    state 0x0, keycode 122 (keysym 0x1008ff11, XF86AudioLowerVolume), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyPress event, serial 27, synthetic NO, window 0x1200001,
    root 0x131, subw 0x0, time 642788, (150,8), root:(794,419),
    state 0x0, keycode 123 (keysym 0x1008ff13, XF86AudioRaiseVolume), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 27, synthetic NO, window 0x1200001,
    root 0x131, subw 0x0, time 642892, (150,8), root:(794,419),
    state 0x0, keycode 123 (keysym 0x1008ff13, XF86AudioRaiseVolume), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyPress event, serial 27, synthetic NO, window 0x1200001,
    root 0x131, subw 0x0, time 644436, (150,8), root:(794,419),
    state 0x0, keycode 169 (keysym 0x1008ff2c, XF86Eject), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 27, synthetic NO, window 0x1200001,
    root 0x131, subw 0x0, time 644436, (150,8), root:(794,419),
    state 0x0, keycode 169 (keysym 0x1008ff2c, XF86Eject), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

MappingNotify event, serial 27, synthetic NO, window 0x0,
    request MappingKeyboard, first_keycode 8, count 248

KeyPress event, serial 27, synthetic NO, window 0x1200001,
    root 0x131, subw 0x0, time 648822, (150,8), root:(794,419),
    state 0x0, keycode 124 (keysym 0x1008ff2a, XF86PowerOff), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 27, synthetic NO, window 0x1200001,
    root 0x131, subw 0x0, time 648822, (150,8), root:(794,419),
    state 0x0, keycode 124 (keysym 0x1008ff2a, XF86PowerOff), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

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

* Re: Keyboard and mouse issues on MacBook Air (4,2)
  2011-10-17 21:40   ` Nico Schottelius
  2011-10-17 21:49     ` Nico Schottelius
@ 2011-10-19 15:01     ` Nico Schottelius
  2011-10-19 15:04       ` Jiri Kosina
  1 sibling, 1 reply; 13+ messages in thread
From: Nico Schottelius @ 2011-10-19 15:01 UTC (permalink / raw)
  To: Nico Schottelius, Jiri Kosina, LKML

Hey Jiri,

regarding the misplaced keys:

Nico Schottelius [Mon, Oct 17, 2011 at 11:40:50PM +0200]:
> [...] 
> I've attached the xev output of fn+{F1-F12}.
> 
> F1-F4 are correct, though
>   F3 = Expose on MacOS X (**)
>   F4 = Dashboard (**)
> F5: not mapped at all: Is KeyboardLightDecrease on MacOSX (*)
> F6 is XF86AudioPrev incorrect: Should be  KeyboardLightIncrease (*)
> F7 is XF86AudioPlay incorrect: Should be XF86AudioPrev
> F8 is XF86AudioNext incorrect: Should be XF86AudioPlay
> F9 is XF86AudioMute incorrect: Should be XF86AudioNext
> F10 is XF86AudioLowerVolume incorrect: Should be XF86AudioMute
> F11 is XF86AudioRaiseVolume incorrect: Should be XF86AudioLowerVolume 
> F12 is XF86Eject incorrect: Should be  XF86AudioRaiseVolume 
> 
> Thus F7-12 are shifted by one to left in reality and as the MacBook Air

if I want to correct these bugs, which tree should I use as the base?
And when I corrected those, to whom to submit?

I guess the general approach would be to branch out, if it's a mba4,2,
then apply the following mapping, correct?

Cheers,

Nico

-- 
PGP key: 7ED9 F7D3 6B10 81D7 0EC5  5C09 D7DC C8E4 3187 7DF0

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

* Re: Keyboard and mouse issues on MacBook Air (4,2)
  2011-10-19 15:01     ` Nico Schottelius
@ 2011-10-19 15:04       ` Jiri Kosina
  2011-10-19 21:07         ` Nico Schottelius
  0 siblings, 1 reply; 13+ messages in thread
From: Jiri Kosina @ 2011-10-19 15:04 UTC (permalink / raw)
  To: Nico Schottelius; +Cc: LKML

On Wed, 19 Oct 2011, Nico Schottelius wrote:

> > [...] 
> > I've attached the xev output of fn+{F1-F12}.
> > 
> > F1-F4 are correct, though
> >   F3 = Expose on MacOS X (**)
> >   F4 = Dashboard (**)
> > F5: not mapped at all: Is KeyboardLightDecrease on MacOSX (*)
> > F6 is XF86AudioPrev incorrect: Should be  KeyboardLightIncrease (*)
> > F7 is XF86AudioPlay incorrect: Should be XF86AudioPrev
> > F8 is XF86AudioNext incorrect: Should be XF86AudioPlay
> > F9 is XF86AudioMute incorrect: Should be XF86AudioNext
> > F10 is XF86AudioLowerVolume incorrect: Should be XF86AudioMute
> > F11 is XF86AudioRaiseVolume incorrect: Should be XF86AudioLowerVolume 
> > F12 is XF86Eject incorrect: Should be  XF86AudioRaiseVolume 
> > 
> > Thus F7-12 are shifted by one to left in reality and as the MacBook Air
> 
> if I want to correct these bugs, which tree should I use as the base?
> And when I corrected those, to whom to submit?

Hi,

please use hid tree, for-next branch. The tree is located on kernel.org.

> I guess the general approach would be to branch out, if it's a mba4,2,
> then apply the following mapping, correct?

Yes, there are mapping tables in hid-apple.c already, so just introduce a 
new one.

I am a bit surprised that they are needed though, the original report 
stated that the the table is identical to the one that is already there 
(apple_fn_keys[]).

-- 
Jiri Kosina
SUSE Labs

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

* Re: Keyboard and mouse issues on MacBook Air (4,2)
  2011-10-19 15:04       ` Jiri Kosina
@ 2011-10-19 21:07         ` Nico Schottelius
  2011-10-19 21:25           ` Nico Schottelius
                             ` (2 more replies)
  0 siblings, 3 replies; 13+ messages in thread
From: Nico Schottelius @ 2011-10-19 21:07 UTC (permalink / raw)
  To: Jiri Kosina; +Cc: Nico Schottelius, LKML

Hey Jiri,

Jiri Kosina [Wed, Oct 19, 2011 at 05:04:29PM +0200]:
> On Wed, 19 Oct 2011, Nico Schottelius wrote:
> 
> > > [...] 
> > > I've attached the xev output of fn+{F1-F12}.
> > > 
> > > F1-F4 are correct, though
> > >   F3 = Expose on MacOS X (**)
> > >   F4 = Dashboard (**)
> > > F5: not mapped at all: Is KeyboardLightDecrease on MacOSX (*)
> > > F6 is XF86AudioPrev incorrect: Should be  KeyboardLightIncrease (*)
> > > F7 is XF86AudioPlay incorrect: Should be XF86AudioPrev
> > > F8 is XF86AudioNext incorrect: Should be XF86AudioPlay
> > > F9 is XF86AudioMute incorrect: Should be XF86AudioNext
> > > F10 is XF86AudioLowerVolume incorrect: Should be XF86AudioMute
> > > F11 is XF86AudioRaiseVolume incorrect: Should be XF86AudioLowerVolume 
> > > F12 is XF86Eject incorrect: Should be  XF86AudioRaiseVolume 
> > > 
> > > Thus F7-12 are shifted by one to left in reality and as the MacBook Air
> > 
> > if I want to correct these bugs, which tree should I use as the base?
> > And when I corrected those, to whom to submit?
> 
> Hi,
> 
> please use hid tree, for-next branch. The tree is located on kernel.org.

Alright used that one, put my changes into the mba42-fixes branch [0].

As I cannot use your tree standalone due to the display problems, I've also
put it into the keyboardmappingfix of the tree that merges yours and the
one from Keith [1].

I've tested my patches, all keys are mapped correctly now, xev output
is attached. Please merge my patch from [0].

> > I guess the general approach would be to branch out, if it's a mba4,2,
> > then apply the following mapping, correct?
> 
> Yes, there are mapping tables in hid-apple.c already, so just introduce a 
> new one.
> 
> I am a bit surprised that they are needed though, the original report 
> stated that the the table is identical to the one that is already there 
> (apple_fn_keys[]).

Well, the fn-key works and it generates "different events" than without
the tree, but the mapping is not completly correct.

Looking at the code, I'm wondering if any MBA user has it correctly
working: The macbookair_fn_keys[] misses the F5 mapping (which is what
I see here) and I imagine there is no mba out there, that does not have
a special key on FN+F5.

And checking with the manuals I see on the net, it seems the keys have
not changed on the air, i.e. it should be wrong on all MacBook airs.

Cheers,

Nico

[0] http://git.schottelius.org/?p=foreign/linux-jiri-hid;a=summary
    git://git.schottelius.org/foreign/linux-jiri-hid

[1] http://git.schottelius.org/?p=foreign/linux-keith-jiri-mba;a=summary
    git://git.schottelius.org/foreign/linux-keith-jiri-mba

-- 
PGP key: 7ED9 F7D3 6B10 81D7 0EC5  5C09 D7DC C8E4 3187 7DF0

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

* Re: Keyboard and mouse issues on MacBook Air (4,2)
  2011-10-19 21:07         ` Nico Schottelius
@ 2011-10-19 21:25           ` Nico Schottelius
  2011-10-21 18:22           ` Nico Schottelius
  2011-10-22  2:02           ` Nico Schottelius
  2 siblings, 0 replies; 13+ messages in thread
From: Nico Schottelius @ 2011-10-19 21:25 UTC (permalink / raw)
  To: Nico Schottelius, Jiri Kosina, LKML

[-- Attachment #1: Type: text/plain, Size: 84 bytes --]

+ xev attachement.

-- 
PGP key: 7ED9 F7D3 6B10 81D7 0EC5  5C09 D7DC C8E4 3187 7DF0

[-- Attachment #2: xev-patched --]
[-- Type: text/plain, Size: 7838 bytes --]

KeyPress event, serial 27, synthetic NO, window 0xa00001,
    root 0xac, subw 0x0, time 1356328, (157,521), root:(1121,541),
    state 0x0, keycode 232 (keysym 0x1008ff03, XF86MonBrightnessDown), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 27, synthetic NO, window 0xa00001,
    root 0xac, subw 0x0, time 1356440, (157,521), root:(1121,541),
    state 0x0, keycode 232 (keysym 0x1008ff03, XF86MonBrightnessDown), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyPress event, serial 27, synthetic NO, window 0xa00001,
    root 0xac, subw 0x0, time 1358600, (157,521), root:(1121,541),
    state 0x0, keycode 233 (keysym 0x1008ff02, XF86MonBrightnessUp), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 27, synthetic NO, window 0xa00001,
    root 0xac, subw 0x0, time 1358704, (157,521), root:(1121,541),
    state 0x0, keycode 233 (keysym 0x1008ff02, XF86MonBrightnessUp), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyPress event, serial 27, synthetic NO, window 0xa00001,
    root 0xac, subw 0x0, time 1359352, (157,521), root:(1121,541),
    state 0x0, keycode 128 (keysym 0x1008ff4a, XF86LaunchA), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 27, synthetic NO, window 0xa00001,
    root 0xac, subw 0x0, time 1359464, (157,521), root:(1121,541),
    state 0x0, keycode 128 (keysym 0x1008ff4a, XF86LaunchA), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyPress event, serial 27, synthetic NO, window 0xa00001,
    root 0xac, subw 0x0, time 1359912, (157,521), root:(1121,541),
    state 0x0, keycode 212 (keysym 0x1008ff4b, XF86LaunchB), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

CreateNotify event, serial 27, synthetic NO, window 0xa00001,
    parent 0xa00001, window 0x400045, (157,521), width 1, height 1
border_width 0, override YES

MapNotify event, serial 27, synthetic NO, window 0xa00001,
    event 0xa00001, window 0x400045, override YES

LeaveNotify event, serial 27, synthetic NO, window 0xa00001,
    root 0xac, subw 0x0, time 1359967, (157,521), root:(1121,541),
    mode NotifyNormal, detail NotifyInferior, same_screen YES,
    focus YES, state 0

EnterNotify event, serial 27, synthetic YES, window 0xa00001,
    root 0xac, subw 0x0, time 0, (157,521), root:(1121,541),
    mode NotifyNormal, detail NotifyAncestor, same_screen YES,
    focus YES, state 0

KeyRelease event, serial 27, synthetic NO, window 0xa00001,
    root 0xac, subw 0x400045, time 1360040, (157,521), root:(1121,541),
    state 0x0, keycode 212 (keysym 0x1008ff4b, XF86LaunchB), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyPress event, serial 27, synthetic NO, window 0xa00001,
    root 0xac, subw 0x400045, time 1360568, (157,521), root:(1121,541),
    state 0x0, keycode 237 (keysym 0x1008ff06, XF86KbdBrightnessDown), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 27, synthetic NO, window 0xa00001,
    root 0xac, subw 0x400045, time 1360656, (157,521), root:(1121,541),
    state 0x0, keycode 237 (keysym 0x1008ff06, XF86KbdBrightnessDown), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyPress event, serial 27, synthetic NO, window 0xa00001,
    root 0xac, subw 0x400045, time 1361112, (157,521), root:(1121,541),
    state 0x0, keycode 238 (keysym 0x1008ff05, XF86KbdBrightnessUp), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 27, synthetic NO, window 0xa00001,
    root 0xac, subw 0x400045, time 1361208, (157,521), root:(1121,541),
    state 0x0, keycode 238 (keysym 0x1008ff05, XF86KbdBrightnessUp), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyPress event, serial 27, synthetic NO, window 0xa00001,
    root 0xac, subw 0x400045, time 1361608, (157,521), root:(1121,541),
    state 0x0, keycode 173 (keysym 0x1008ff16, XF86AudioPrev), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 27, synthetic NO, window 0xa00001,
    root 0xac, subw 0x400045, time 1361720, (157,521), root:(1121,541),
    state 0x0, keycode 173 (keysym 0x1008ff16, XF86AudioPrev), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyPress event, serial 27, synthetic NO, window 0xa00001,
    root 0xac, subw 0x400045, time 1362104, (157,521), root:(1121,541),
    state 0x0, keycode 172 (keysym 0x1008ff14, XF86AudioPlay), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 27, synthetic NO, window 0xa00001,
    root 0xac, subw 0x400045, time 1362208, (157,521), root:(1121,541),
    state 0x0, keycode 172 (keysym 0x1008ff14, XF86AudioPlay), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyPress event, serial 27, synthetic NO, window 0xa00001,
    root 0xac, subw 0x400045, time 1362608, (157,521), root:(1121,541),
    state 0x0, keycode 171 (keysym 0x1008ff17, XF86AudioNext), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 27, synthetic NO, window 0xa00001,
    root 0xac, subw 0x400045, time 1362712, (157,521), root:(1121,541),
    state 0x0, keycode 171 (keysym 0x1008ff17, XF86AudioNext), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyPress event, serial 27, synthetic NO, window 0xa00001,
    root 0xac, subw 0x400045, time 1363080, (157,521), root:(1121,541),
    state 0x0, keycode 121 (keysym 0x1008ff12, XF86AudioMute), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 27, synthetic NO, window 0xa00001,
    root 0xac, subw 0x400045, time 1363208, (157,521), root:(1121,541),
    state 0x0, keycode 121 (keysym 0x1008ff12, XF86AudioMute), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyPress event, serial 27, synthetic NO, window 0xa00001,
    root 0xac, subw 0x400045, time 1363776, (157,521), root:(1121,541),
    state 0x0, keycode 122 (keysym 0x1008ff11, XF86AudioLowerVolume), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 27, synthetic NO, window 0xa00001,
    root 0xac, subw 0x400045, time 1363864, (157,521), root:(1121,541),
    state 0x0, keycode 122 (keysym 0x1008ff11, XF86AudioLowerVolume), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyPress event, serial 27, synthetic NO, window 0xa00001,
    root 0xac, subw 0x400045, time 1364864, (157,521), root:(1121,541),
    state 0x0, keycode 123 (keysym 0x1008ff13, XF86AudioRaiseVolume), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 27, synthetic NO, window 0xa00001,
    root 0xac, subw 0x400045, time 1364968, (157,521), root:(1121,541),
    state 0x0, keycode 123 (keysym 0x1008ff13, XF86AudioRaiseVolume), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

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

* Re: Keyboard and mouse issues on MacBook Air (4,2)
  2011-10-19 21:07         ` Nico Schottelius
  2011-10-19 21:25           ` Nico Schottelius
@ 2011-10-21 18:22           ` Nico Schottelius
  2011-10-22  2:02           ` Nico Schottelius
  2 siblings, 0 replies; 13+ messages in thread
From: Nico Schottelius @ 2011-10-21 18:22 UTC (permalink / raw)
  To: Nico Schottelius, Jiri Kosina, LKML

Hey Jiri,

Nico Schottelius [Wed, Oct 19, 2011 at 11:07:42PM +0200]:
> [...] 
> I've tested my patches, all keys are mapped correctly now, xev output
> is attached. Please merge my patch from [0].

I've to correct myself, please do not merge currently:

The MacBook Air 3,1 indeed has such weired mappings, made a screenshot
of it today.

So I'll have to change my patch to use a different table on the MacBook
Air 4,2.

Will ping you, when I've updated the source.

Cheers,

Nico

-- 
PGP key: 7ED9 F7D3 6B10 81D7 0EC5  5C09 D7DC C8E4 3187 7DF0

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

* Re: Keyboard and mouse issues on MacBook Air (4,2)
  2011-10-19 21:07         ` Nico Schottelius
  2011-10-19 21:25           ` Nico Schottelius
  2011-10-21 18:22           ` Nico Schottelius
@ 2011-10-22  2:02           ` Nico Schottelius
  2011-10-22 10:24             ` Nico Schottelius
  2 siblings, 1 reply; 13+ messages in thread
From: Nico Schottelius @ 2011-10-22  2:02 UTC (permalink / raw)
  To: Nico Schottelius, Jiri Kosina, LKML

Hey Jiri,

I've found the problematic block in drivers/hid/hid-apple.c:180:

180    if (fnmode) {
181       int do_translate;
182 
183       if (hid->product >= USB_DEVICE_ID_APPLE_WELLSPRING4_ANSI &&
184             hid->product <= USB_DEVICE_ID_APPLE_WELLSPRING4A_JIS)
185          table = macbookair_fn_keys;
186       else if (hid->product >= USB_DEVICE_ID_APPLE_WELLSPRING6_ANSI &&
187             hid->product <= USB_DEVICE_ID_APPLE_WELLSPRING6_JIS)
188          table = macbookair_fn_keys;
189       else if (hid->product < 0x21d || hid->product >= 0x300)
190          table = powerbook_fn_keys;
191       else
192          table = apple_fn_keys;

The second range (186-188) specified matches my MacBookAir, which needs the new table I defined
in my previous commit: My device matches USB_DEVICE_ID_APPLE_WELLSPRING6_ISO (024D):

[    2.639063] apple 0003:05AC:024D.0001: input,hidraw0: USB HID v1.11 Keyboard [Apple Inc. Apple Internal Keyboard / Trackpad] on usb-0000:00:1a.7-1.2/input0
[    2.694742] usb 2-1.1: new high speed USB device number 3 using ehci_hcd
[    2.736895] apple 0003:05AC:024D.0002: hidraw1: USB HID v1.11 Device [Apple Inc. Apple Internal Keyboard / Trackpad] on usb-0000:00:1a.7-1.2/input1

The question for me is know, which range matches to the table I am using
and which range maps to the original table.

I know that the MacBook Air 3,1 must use the old table, so I IMAGINE this is
the first block (183-185).

So my next guess is that MBA 3,1 - 3,2 need to use the first table, while MBA 4,1 - 4,2 need
the second one.

Can you verify my assumption or do you have any hints on how the MacBook Airs and
the Keyboard layouts match? 

Cheers,

Nico

-- 
PGP key: 7ED9 F7D3 6B10 81D7 0EC5  5C09 D7DC C8E4 3187 7DF0

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

* Re: Keyboard and mouse issues on MacBook Air (4,2)
  2011-10-22  2:02           ` Nico Schottelius
@ 2011-10-22 10:24             ` Nico Schottelius
  2011-10-28 15:46               ` Jiri Kosina
  0 siblings, 1 reply; 13+ messages in thread
From: Nico Schottelius @ 2011-10-22 10:24 UTC (permalink / raw)
  To: Nico Schottelius, Jiri Kosina, LKML

I'm making progress in this issue:

I've just grabbed the whole list of manuals for all MacBook Airs from the Apple page
and had a look at the keyboard layout in the manual:

air 2008: new

13" air late 2010: old
11" air late 2010: old

11" air mid 2011: new
13" air mid 2011: new

table_new = with keyboard backlight keys, f5 mapped to backlight down -> apple_fn_keys
table_old = f5 has no fn-special meaning -> macbookair_fn_keys

Reviewing drivers/hid/hid-apple.c you were absolutely right, the
apple_fn_keys[] maps correctly.

The missing bit to correct my previous patch: To which device IDs do the devices 
named above match to? I.e. is USB_DEVICE_ID_APPLE_WELLSPRING6_* the
MacBook Air 4,2?

Cheers,

Nico

p.s.: sorry for the noise, was a bit confused.

-- 
PGP key: 7ED9 F7D3 6B10 81D7 0EC5  5C09 D7DC C8E4 3187 7DF0

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

* Re: Keyboard and mouse issues on MacBook Air (4,2)
  2011-10-22 10:24             ` Nico Schottelius
@ 2011-10-28 15:46               ` Jiri Kosina
  2011-10-31 22:37                 ` Nico Schottelius
  0 siblings, 1 reply; 13+ messages in thread
From: Jiri Kosina @ 2011-10-28 15:46 UTC (permalink / raw)
  To: Nico Schottelius; +Cc: LKML

On Sat, 22 Oct 2011, Nico Schottelius wrote:

> The missing bit to correct my previous patch: To which device IDs do the 
> devices named above match to? I.e. is USB_DEVICE_ID_APPLE_WELLSPRING6_* 
> the MacBook Air 4,2?

You need to check the USB IDs (lsusb will tell you) to see which quirk / 
translation table is getting used.

-- 
Jiri Kosina
SUSE Labs

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

* Re: Keyboard and mouse issues on MacBook Air (4,2)
  2011-10-28 15:46               ` Jiri Kosina
@ 2011-10-31 22:37                 ` Nico Schottelius
  0 siblings, 0 replies; 13+ messages in thread
From: Nico Schottelius @ 2011-10-31 22:37 UTC (permalink / raw)
  To: Jiri Kosina; +Cc: Nico Schottelius, LKML

Jiri Kosina [Fri, Oct 28, 2011 at 05:46:29PM +0200]:
> On Sat, 22 Oct 2011, Nico Schottelius wrote:
> 
> > The missing bit to correct my previous patch: To which device IDs do the 
> > devices named above match to? I.e. is USB_DEVICE_ID_APPLE_WELLSPRING6_* 
> > the MacBook Air 4,2?
> 
> You need to check the USB IDs (lsusb will tell you) to see which quirk / 
> translation table is getting used.

Alright, will prepare a better patch the next weeks (currently no access
to a 4,2 air). So far I've found three different keyboard layouts on the
Air:

2,1 has all keys from F1-F12 mapped, same as 4,2
3,1 has the quirk with missing F5 mapping

I've the usb ids for 2,1 and 4,2 right now and will try to get it
from 3,1 as well.

If anyone with a MacBook Air 3,2 or 4,1 (or any other version not listed
above) is reading this, can you send me an email with the output of
lsusb (or the system profiler from macosx) and which multimedia keys are
mapped to which F1-F12 keys?

Cheers,

Nico

-- 
PGP key: 7ED9 F7D3 6B10 81D7 0EC5  5C09 D7DC C8E4 3187 7DF0

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

end of thread, other threads:[~2011-10-31 22:37 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-10-17 17:59 Keyboard and mouse issues on MacBook Air (4,2) Nico Schottelius
2011-10-17 18:16 ` Jiri Kosina
2011-10-17 21:40   ` Nico Schottelius
2011-10-17 21:49     ` Nico Schottelius
2011-10-19 15:01     ` Nico Schottelius
2011-10-19 15:04       ` Jiri Kosina
2011-10-19 21:07         ` Nico Schottelius
2011-10-19 21:25           ` Nico Schottelius
2011-10-21 18:22           ` Nico Schottelius
2011-10-22  2:02           ` Nico Schottelius
2011-10-22 10:24             ` Nico Schottelius
2011-10-28 15:46               ` Jiri Kosina
2011-10-31 22:37                 ` Nico Schottelius

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.