|
@@ -82,6 +82,28 @@ static const struct apple_key_translation macbookair_fn_keys[] = {
|
|
|
{ }
|
|
|
};
|
|
|
|
|
|
+static const struct apple_key_translation macbookair4_fn_keys[] = {
|
|
|
+ { KEY_BACKSPACE, KEY_DELETE },
|
|
|
+ { KEY_ENTER, KEY_INSERT },
|
|
|
+ { KEY_F1, KEY_BRIGHTNESSDOWN, APPLE_FLAG_FKEY },
|
|
|
+ { KEY_F2, KEY_BRIGHTNESSUP, APPLE_FLAG_FKEY },
|
|
|
+ { KEY_F3, KEY_SCALE, APPLE_FLAG_FKEY },
|
|
|
+ { KEY_F4, KEY_DASHBOARD, APPLE_FLAG_FKEY },
|
|
|
+ { KEY_F5, KEY_KBDILLUMDOWN, APPLE_FLAG_FKEY },
|
|
|
+ { KEY_F6, KEY_KBDILLUMUP, APPLE_FLAG_FKEY },
|
|
|
+ { KEY_F7, KEY_PREVIOUSSONG, APPLE_FLAG_FKEY },
|
|
|
+ { KEY_F8, KEY_PLAYPAUSE, APPLE_FLAG_FKEY },
|
|
|
+ { KEY_F9, KEY_NEXTSONG, APPLE_FLAG_FKEY },
|
|
|
+ { KEY_F10, KEY_MUTE, APPLE_FLAG_FKEY },
|
|
|
+ { KEY_F11, KEY_VOLUMEDOWN, APPLE_FLAG_FKEY },
|
|
|
+ { KEY_F12, KEY_VOLUMEUP, APPLE_FLAG_FKEY },
|
|
|
+ { KEY_UP, KEY_PAGEUP },
|
|
|
+ { KEY_DOWN, KEY_PAGEDOWN },
|
|
|
+ { KEY_LEFT, KEY_HOME },
|
|
|
+ { KEY_RIGHT, KEY_END },
|
|
|
+ { }
|
|
|
+};
|
|
|
+
|
|
|
static const struct apple_key_translation apple_fn_keys[] = {
|
|
|
{ KEY_BACKSPACE, KEY_DELETE },
|
|
|
{ KEY_ENTER, KEY_INSERT },
|
|
@@ -186,6 +208,9 @@ static int hidinput_apple_event(struct hid_device *hid, struct input_dev *input,
|
|
|
else if (hid->product >= USB_DEVICE_ID_APPLE_WELLSPRING6_ANSI &&
|
|
|
hid->product <= USB_DEVICE_ID_APPLE_WELLSPRING6_JIS)
|
|
|
table = macbookair_fn_keys;
|
|
|
+ else if (hid->product >= USB_DEVICE_ID_APPLE_WELLSPRING6A_ANSI &&
|
|
|
+ hid->product <= USB_DEVICE_ID_APPLE_WELLSPRING6A_JIS)
|
|
|
+ table = macbookair4_fn_keys;
|
|
|
else if (hid->product < 0x21d || hid->product >= 0x300)
|
|
|
table = powerbook_fn_keys;
|
|
|
else
|
|
@@ -496,6 +521,12 @@ static const struct hid_device_id apple_devices[] = {
|
|
|
.driver_data = APPLE_HAS_FN | APPLE_ISO_KEYBOARD },
|
|
|
{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING6_JIS),
|
|
|
.driver_data = APPLE_HAS_FN | APPLE_RDESC_JIS },
|
|
|
+ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING6A_ANSI),
|
|
|
+ .driver_data = APPLE_HAS_FN },
|
|
|
+ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING6A_ISO),
|
|
|
+ .driver_data = APPLE_HAS_FN | APPLE_ISO_KEYBOARD },
|
|
|
+ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING6A_JIS),
|
|
|
+ .driver_data = APPLE_HAS_FN | APPLE_RDESC_JIS },
|
|
|
{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ANSI),
|
|
|
.driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN },
|
|
|
{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ISO),
|