On Fri, 5 Aug 2011, Chase Douglas wrote: > From: Joshua V. Dillon <jvdillon@xxxxxxxxx> > > Added USB device IDs for MacBookAir4,2 keyboard. Device constants were > copied from the MacBookAir3,2 constants. The 4,2 device specification is > reportedly unchanged from the 3,2 predecessor and seems to work well. > > Signed-off-by: Joshua V Dillon <jvdillon@xxxxxxxxx> > Signed-off-by: Chase Douglas <chase.douglas@xxxxxxxxxxxxx> > --- > I received this patch from Joshua. He preferred that I send it on his > behalf. I have compile tested the patch, and Joshua has runtime tested > it using a dkms package against 2.6.38. > > drivers/hid/hid-apple.c | 9 +++++++++ > drivers/hid/hid-ids.h | 3 +++ > 2 files changed, 12 insertions(+), 0 deletions(-) > > diff --git a/drivers/hid/hid-apple.c b/drivers/hid/hid-apple.c > index b85744f..8bfd87b 100644 > --- a/drivers/hid/hid-apple.c > +++ b/drivers/hid/hid-apple.c > @@ -183,6 +183,9 @@ static int hidinput_apple_event(struct hid_device *hid, struct input_dev *input, > if (hid->product >= USB_DEVICE_ID_APPLE_WELLSPRING4_ANSI && > hid->product <= USB_DEVICE_ID_APPLE_WELLSPRING4A_JIS) > table = macbookair_fn_keys; > + 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 < 0x21d || hid->product >= 0x300) > table = powerbook_fn_keys; > else > @@ -487,6 +490,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_WELLSPRING5_JIS), > .driver_data = APPLE_HAS_FN | APPLE_RDESC_JIS }, > + { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING6_ANSI), > + .driver_data = APPLE_HAS_FN }, > + { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING6_ISO), > + .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_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), > diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h > index ea2c338..a0d59d4 100644 > --- a/drivers/hid/hid-ids.h > +++ b/drivers/hid/hid-ids.h > @@ -109,6 +109,9 @@ > #define USB_DEVICE_ID_APPLE_WELLSPRING5_ANSI 0x0245 > #define USB_DEVICE_ID_APPLE_WELLSPRING5_ISO 0x0246 > #define USB_DEVICE_ID_APPLE_WELLSPRING5_JIS 0x0247 > +#define USB_DEVICE_ID_APPLE_WELLSPRING6_ANSI 0x024c > +#define USB_DEVICE_ID_APPLE_WELLSPRING6_ISO 0x024d > +#define USB_DEVICE_ID_APPLE_WELLSPRING6_JIS 0x024e > #define USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ANSI 0x0239 > #define USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ISO 0x023a > #define USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_JIS 0x023b The device needs to be added to hid_have_special_driver[] array, otherwise generic driver wouldn't unbind from it and wouldn't let hid-apple to take over. I have fixed that and applied the patch. -- Jiri Kosina SUSE Labs -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html