Input: Add newer Apple keyboards to hid quirks table
PATCH 1/1 Input: Add newer Apple keyboards to hid quirks table
The keyboards in recent Apple hardware are still not properly supported by Linux due to them not being in the hid quirks table. This patch adds the current hardware. Device IDs come from the Mactel Linux project.
---
Would be nice to get these in for 2.6.26 if possible - I just spent some time trying to work out why my brightness keys didnt work, before finally realising that it was just the kernel being awkward.
drivers/hid/usbhid/hid-quirks.c +13 -0
@@ -69,12 +69,19 @@#define USB_DEVICE_ID_APPLE_ALU_ANSI 0x0220#define USB_DEVICE_ID_APPLE_ALU_ISO 0x0221#define USB_DEVICE_ID_APPLE_ALU_JIS 0x0222 +#define USB_DEVICE_ID_APPLE_WELLSPRING_ANSI 0x0223 +#define USB_DEVICE_ID_APPLE_WELLSPRING_ISO 0x0224 +#define USB_DEVICE_ID_APPLE_WELLSPRING_JIS 0x0225#define USB_DEVICE_ID_APPLE_GEYSER4_HF_ANSI 0x0229#define USB_DEVICE_ID_APPLE_GEYSER4_HF_ISO 0x022a#define USB_DEVICE_ID_APPLE_GEYSER4_HF_JIS 0x022b#define USB_DEVICE_ID_APPLE_ALU_WIRELESS_ANSI 0x022c#define USB_DEVICE_ID_APPLE_ALU_WIRELESS_ISO 0x022d#define USB_DEVICE_ID_APPLE_ALU_WIRELESS_JIS 0x022e +#define USB_DEVICE_ID_APPLE_WELLSPRING2_ANSI 0x0230 +#define USB_DEVICE_ID_APPLE_WELLSPRING2_ISO 0x0231 +#define USB_DEVICE_ID_APPLE_WELLSPRING2_JIS 0x0232 +#define USB_DEVICE_ID_APPLE_FOUNTAIN_TP_ONLY 0x030a#define USB_DEVICE_ID_APPLE_GEYSER1_TP_ONLY 0x030b#define USB_DEVICE_ID_APPLE_IRCONTROL4 0x8242
@@ -644,6 +651,12 @@ static const struct hid_blacklist { { USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_JIS, HID_QUIRK_APPLE_NUMLOCK_EMULATION | HID_QUIRK_APPLE_HAS_FN }, { USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_FOUNTAIN_TP_ONLY, HID_QUIRK_APPLE_NUMLOCK_EMULATION | HID_QUIRK_APPLE_HAS_FN | HID_QUIRK_IGNORE_MOUSE }, { USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER1_TP_ONLY, HID_QUIRK_APPLE_NUMLOCK_EMULATION | HID_QUIRK_APPLE_HAS_FN | HID_QUIRK_IGNORE_MOUSE }, + { USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING_ANSI, HID_QUIRK_APPLE_NUMLOCK_EMULATION | HID_QUIRK_APPLE_HAS_FN }, + { USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING_ISO, HID_QUIRK_APPLE_NUMLOCK_EMULATION | HID_QUIRK_APPLE_HAS_FN | HID_QUIRK_APPLE_ISO_KEYBOARD }, + { USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING_JIS, HID_QUIRK_APPLE_NUMLOCK_EMULATION | HID_QUIRK_APPLE_HAS_FN }, + { USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING2_ANSI, HID_QUIRK_APPLE_NUMLOCK_EMULATION | HID_QUIRK_APPLE_HAS_FN }, + { USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING2_ISO, HID_QUIRK_APPLE_NUMLOCK_EMULATION | HID_QUIRK_APPLE_HAS_FN | HID_QUIRK_APPLE_ISO_KEYBOARD }, + { USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING2_JIS, HID_QUIRK_APPLE_NUMLOCK_EMULATION | HID_QUIRK_APPLE_HAS_FN }, { USB_VENDOR_ID_DELL, USB_DEVICE_ID_DELL_W7658, HID_QUIRK_RESET_LEDS }, { USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_KBD, HID_QUIRK_RESET_LEDS },
Signature · 1 line
Matthew Garrett | [email protected]
Quoted 3 lines · Matthew Garrett
The keyboards in recent Apple hardware are still not properly supported by Linux due to them not being in the hid quirks table. This patch adds the current hardware. Device IDs come from the Mactel Linux project.
Hi Matthew,
the patch adding these product IDs is already queued in my 'upstream-fixes' branch.
However ...
drivers/hid/usbhid/hid-quirks.c static const struct hid_blacklist { · line 659
Quoted 6 lines
drivers/hid/usbhid/hid-quirks.c +6
-0+ { USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING_ANSI, HID_QUIRK_APPLE_NUMLOCK_EMULATION | HID_QUIRK_APPLE_HAS_FN }, + { USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING_ISO, HID_QUIRK_APPLE_NUMLOCK_EMULATION | HID_QUIRK_APPLE_HAS_FN | HID_QUIRK_APPLE_ISO_KEYBOARD }, + { USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING_JIS, HID_QUIRK_APPLE_NUMLOCK_EMULATION | HID_QUIRK_APPLE_HAS_FN }, + { USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING2_ANSI, HID_QUIRK_APPLE_NUMLOCK_EMULATION | HID_QUIRK_APPLE_HAS_FN }, + { USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING2_ISO, HID_QUIRK_APPLE_NUMLOCK_EMULATION | HID_QUIRK_APPLE_HAS_FN | HID_QUIRK_APPLE_ISO_KEYBOARD }, + { USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING2_JIS, HID_QUIRK_APPLE_NUMLOCK_EMULATION | HID_QUIRK_APPLE_HAS_FN },
Alexandre's original patch is missing the HID_QUIRK_APPLE_NUMLOCK_EMULATION quirk ... Alexandre, was this intentional?
Thanks,
Signature · 2 lines
Jiri Kosina SUSE Labs
Hi Jiri,
The Macbook Pro 4,1 has no numlock key. I am not sure what the HID_QUIRK_APPLE_NUMLOCK_EMULATION flag does.
On a somewhat related note, the function key secondary functionality has also changed in the new Macbook Pro/Air models; this requires the "powerbook_fn_keys" lookup table in drivers/hid/hid-input.c to be updated accordingly. The new key layout is detailed here:
http://support.apple.com/kb/HT1117
Regards,
Alex
Quoted 26 lines · Jiri Kosina
Quoted 3 lines · Matthew Garrett
The keyboards in recent Apple hardware are still not properly supported by Linux due to them not being in the hid quirks table. This patch adds the current hardware. Device IDs come from the Mactel Linux project.
Hi Matthew,
the patch adding these product IDs is already queued in my 'upstream-fixes' branch.
However ...
drivers/hid/usbhid/hid-quirks.c static const struct hid_blacklist { · line 659
Quoted 6 lines
drivers/hid/usbhid/hid-quirks.c +6
-0+ { USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING_ANSI, HID_QUIRK_APPLE_NUMLOCK_EMULATION | HID_QUIRK_APPLE_HAS_FN }, + { USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING_ISO, HID_QUIRK_APPLE_NUMLOCK_EMULATION | HID_QUIRK_APPLE_HAS_FN | HID_QUIRK_APPLE_ISO_KEYBOARD }, + { USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING_JIS, HID_QUIRK_APPLE_NUMLOCK_EMULATION | HID_QUIRK_APPLE_HAS_FN }, + { USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING2_ANSI, HID_QUIRK_APPLE_NUMLOCK_EMULATION | HID_QUIRK_APPLE_HAS_FN }, + { USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING2_ISO, HID_QUIRK_APPLE_NUMLOCK_EMULATION | HID_QUIRK_APPLE_HAS_FN | HID_QUIRK_APPLE_ISO_KEYBOARD }, + { USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING2_JIS, HID_QUIRK_APPLE_NUMLOCK_EMULATION | HID_QUIRK_APPLE_HAS_FN },Alexandre's original patch is missing the
HID_QUIRK_APPLE_NUMLOCK_EMULATIONquirk ... Alexandre, was this intentional?Thanks,