Here is a new version of the patch that just adds the entries to
hidp_blacklist using your suggested style. I'm leaving the USB HID's
table alone based on Phil Endecott's remarks regarding HID proxy mode,
so now this patch only touches Bluetooth code.
bluetooth: fix Fn on Apple Wireless Keyboard
Enable the HID quirks for Apple Wireless Keyboards, based on the quirk
table entries in the USB HID. With this patch applied the Fn key on my
keyboard now functions as expected.
diff --git a/net/bluetooth/hidp/core.c b/net/bluetooth/hidp/core.c
index 519cdb9..62f174a 100644
--- a/net/bluetooth/hidp/core.c
+++ b/net/bluetooth/hidp/core.c
@@ -676,6 +676,12 @@ static const struct {
__u16 idProduct;
unsigned quirks;
} hidp_blacklist[] = {
+ /* Apple Wireless Keyboard, ANSI layout */
+ { 0x05ac, 0x022c, HID_QUIRK_APPLE_NUMLOCK_EMULATION | HID_QUIRK_APPLE_HAS_FN },
+ /* Apple Wireless Keyboard, ISO layout */
+ { 0x05ac, 0x022d, HID_QUIRK_APPLE_NUMLOCK_EMULATION | HID_QUIRK_APPLE_HAS_FN | HID_QUIRK_APPLE_ISO_KEYBOARD },
+ /* Apple Wireless Keyboard, JIS layout */
+ { 0x05ac, 0x022e, HID_QUIRK_APPLE_NUMLOCK_EMULATION | HID_QUIRK_APPLE_HAS_FN },
/* Apple wireless Mighty Mouse */
{ 0x05ac, 0x030c, HID_QUIRK_MIGHTYMOUSE | HID_QUIRK_INVERT_HWHEEL },