|
@@ -335,7 +335,8 @@ static int apple_input_mapping(struct hid_device *hdev, struct hid_input *hi,
|
|
|
struct hid_field *field, struct hid_usage *usage,
|
|
|
unsigned long **bit, int *max)
|
|
|
{
|
|
|
- if (usage->hid == (HID_UP_CUSTOM | 0x0003)) {
|
|
|
+ if (usage->hid == (HID_UP_CUSTOM | 0x0003) ||
|
|
|
+ usage->hid == (HID_UP_MSVENDOR | 0x0003)) {
|
|
|
/* The fn key on Apple USB keyboards */
|
|
|
set_bit(EV_REP, hi->input->evbit);
|
|
|
hid_map_usage_clear(hi, usage, bit, max, EV_KEY, KEY_FN);
|
|
@@ -472,6 +473,12 @@ static const struct hid_device_id apple_devices[] = {
|
|
|
.driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN },
|
|
|
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_ANSI),
|
|
|
.driver_data = APPLE_HAS_FN },
|
|
|
+ { HID_BLUETOOTH_DEVICE(BT_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_ANSI),
|
|
|
+ .driver_data = APPLE_HAS_FN },
|
|
|
+ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_NUMPAD_ANSI),
|
|
|
+ .driver_data = APPLE_HAS_FN },
|
|
|
+ { HID_BLUETOOTH_DEVICE(BT_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_NUMPAD_ANSI),
|
|
|
+ .driver_data = APPLE_HAS_FN },
|
|
|
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING_ANSI),
|
|
|
.driver_data = APPLE_HAS_FN },
|
|
|
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING_ISO),
|