diff mbox series

HID: Add quirk for Apple Magic Keyboard over Bluetooth

Message ID 20200130192126.GA101099@ariel (mailing list archive)
State Rejected
Delegated to: Jiri Kosina
Headers show
Series HID: Add quirk for Apple Magic Keyboard over Bluetooth | expand

Commit Message

Daniel Lockyer Jan. 30, 2020, 7:21 p.m. UTC
The Apple Magic Keyboard works flawlessly over USB but has weird bugs
over Bluetooth. This patch adds the missing quirk.

Signed-off-by: Daniel Lockyer <hi@daniellockyer.com>
---
 drivers/hid/hid-quirks.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Benjamin Tissoires Jan. 31, 2020, 9:18 a.m. UTC | #1
Hi Daniel,

On Thu, Jan 30, 2020 at 8:31 PM Daniel Lockyer <hi@daniellockyer.com> wrote:
>
> The Apple Magic Keyboard works flawlessly over USB but has weird bugs
> over Bluetooth. This patch adds the missing quirk.
>
> Signed-off-by: Daniel Lockyer <hi@daniellockyer.com>
> ---
>  drivers/hid/hid-quirks.c | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/drivers/hid/hid-quirks.c b/drivers/hid/hid-quirks.c
> index 0e7b2d998395..6d68a9201e1d 100644
> --- a/drivers/hid/hid-quirks.c
> +++ b/drivers/hid/hid-quirks.c
> @@ -280,6 +280,7 @@ static const struct hid_device_id hid_have_special_driver[] = {
>         { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2011_ANSI) },
>         { 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_BLUETOOTH_DEVICE(BT_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_ANSI) },

That is weird. The whole purpose of this list (which I'd like to
remove in the future) is to prevent hid-generic to ever bind to those
devices. This can be problematic in situations where you do not have
the corresponding driver, in the initrd for instance.

Can you share your dmesg before and after applying this patch so I get
a grasp on why you need that change?

Cheers,
Benjamin

>         { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_ANSI) },
>         { 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) },
> --
> 2.25.0
>
Daniel Lockyer Jan. 31, 2020, 3:15 p.m. UTC | #2
Hi Benjamin,

Please ignore my patch. I was experiencing weird things with the hid-generic driver constantly binding over the hid-apple one, but can't seem to reproduce it now.

The actual fix for my issue was posted by Mansour Behabadi to this mailing list on January 29th - "HID: apple: Add support for recent firmware". I have tested this locally and it works great.

Kind regards,
Daniel

On Fri, 31 Jan 2020, at 09:18, Benjamin Tissoires wrote:
> Hi Daniel,
> 
> On Thu, Jan 30, 2020 at 8:31 PM Daniel Lockyer <hi@daniellockyer.com> wrote:
> >
> > The Apple Magic Keyboard works flawlessly over USB but has weird bugs
> > over Bluetooth. This patch adds the missing quirk.
> >
> > Signed-off-by: Daniel Lockyer <hi@daniellockyer.com>
> > ---
> >  drivers/hid/hid-quirks.c | 1 +
> >  1 file changed, 1 insertion(+)
> >
> > diff --git a/drivers/hid/hid-quirks.c b/drivers/hid/hid-quirks.c
> > index 0e7b2d998395..6d68a9201e1d 100644
> > --- a/drivers/hid/hid-quirks.c
> > +++ b/drivers/hid/hid-quirks.c
> > @@ -280,6 +280,7 @@ static const struct hid_device_id hid_have_special_driver[] = {
> >         { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2011_ANSI) },
> >         { 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_BLUETOOTH_DEVICE(BT_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_ANSI) },
> 
> That is weird. The whole purpose of this list (which I'd like to
> remove in the future) is to prevent hid-generic to ever bind to those
> devices. This can be problematic in situations where you do not have
> the corresponding driver, in the initrd for instance.
> 
> Can you share your dmesg before and after applying this patch so I get
> a grasp on why you need that change?
> 
> Cheers,
> Benjamin
> 
> >         { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_ANSI) },
> >         { 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) },
> > --
> > 2.25.0
> >
> 
>
diff mbox series

Patch

diff --git a/drivers/hid/hid-quirks.c b/drivers/hid/hid-quirks.c
index 0e7b2d998395..6d68a9201e1d 100644
--- a/drivers/hid/hid-quirks.c
+++ b/drivers/hid/hid-quirks.c
@@ -280,6 +280,7 @@  static const struct hid_device_id hid_have_special_driver[] = {
 	{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2011_ANSI) },
 	{ 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_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_ANSI) },
 	{ 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) },