Hi Natanael, On Wed, Oct 17, 2018 at 4:52 PM Natanael Copa <ncopa@xxxxxxxxxxxxxxx> wrote: > > Commit ee3454924370 ("HID: add support for Apple Magic Keyboards") added > support for the Magic Keyboard over Bluetooth, but did not add the > BT_VENDOR_ID_APPLE to hid-quirks. Fix this so hid-apple driver is used > over hid-generic. > > This fixes the Fn key, which does not work at all with hid-generic. > > Fixes: ee3454924370 ("HID: add support for Apple Magic Keyboards") > Bugzilla-id: https://bugzilla.kernel.org/show_bug.cgi?id=99881 > Signed-off-by: Natanael Copa <ncopa@xxxxxxxxxxxxxxx> > --- > This should be backported to stable too. > > drivers/hid/hid-quirks.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/hid/hid-quirks.c b/drivers/hid/hid-quirks.c > index 249d49b6b16c..a3b3aecf8628 100644 > --- a/drivers/hid/hid-quirks.c > +++ b/drivers/hid/hid-quirks.c > @@ -270,6 +270,9 @@ static const struct hid_device_id hid_have_special_driver[] = { > { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2011_ISO) }, > { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2011_JIS) }, > { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_ANSI) }, > + { HID_BLUETOOTH_DEVICE(BT_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_ANSI) }, > + { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_NUMPAD_ANSI) }, > + { HID_BLUETOOTH_DEVICE(BT_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_NUMPAD_ANSI) }, NACK, this should not be required with kernels v4.17+ IIRC. If it doesn't work on a recent kernel, please raise the issue, but I am actually chasing down the new inclusions of these when we add new device support. There is even a high chance that we remove the list entirely as this would tremendously help the distributions to just have to ship hid-generic in the initramfs instead of a bunch of random hid drivers. By the way, if the driver is not autoloaded by udev, it is a problem in udev likely. Cheers, Benjamin > { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_FOUNTAIN_TP_ONLY) }, > { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER1_TP_ONLY) }, > #endif > -- > 2.19.1 >