2012-08-25 17:28:06

by Henrik Rydberg

[permalink] [raw]
Subject: [PATCH] Bluetooth: Add support for Apple vendor-specific devices

As pointed out by Gustavo and Marcel, all Apple-specific Broadcom
devices seen so far have the same interface class, subclass and
protocol numbers. This patch adds an entry which matches all of them,
using the new USB_VENDOR_AND_INTERFACE_INFO() macro.

In particular, this patch adds support for the MacBook Pro Retina
(05ac:8286), which is not in the present list.

Signed-off-by: Henrik Rydberg <[email protected]>
---
Hi Gustavo,

here is a patch for the Apple devices, utilizing commit d81a5d19, for
3.6. Tested on the MacBookPro10,1 (Retina). If you want, I can
follow-up with a patch for 3.7 which removes the specific entries. I
have verified the lsusb output of all of them, except MacMini5,1.

Thanks,
Henrik

drivers/bluetooth/btusb.c | 3 +++
1 file changed, 3 insertions(+)

diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
index 12075ad..1fae607 100644
--- a/drivers/bluetooth/btusb.c
+++ b/drivers/bluetooth/btusb.c
@@ -52,6 +52,9 @@ static struct usb_device_id btusb_table[] = {
/* Generic Bluetooth USB device */
{ USB_DEVICE_INFO(0xe0, 0x01, 0x01) },

+ /* Apple-specific (Broadcom) devices */
+ { USB_VENDOR_AND_INTERFACE_INFO(0x05ac, 0xff, 0x01, 0x01) },
+
/* Broadcom SoftSailing reporting vendor specific */
{ USB_DEVICE(0x0a5c, 0x21e1) },

--
1.7.12



2012-08-27 13:38:22

by Gustavo Padovan

[permalink] [raw]
Subject: Re: [PATCH] Bluetooth: Add support for Apple vendor-specific devices

Hi Henrik,

* Henrik Rydberg <[email protected]> [2012-08-25 19:28:06 +0200]:

> As pointed out by Gustavo and Marcel, all Apple-specific Broadcom
> devices seen so far have the same interface class, subclass and
> protocol numbers. This patch adds an entry which matches all of them,
> using the new USB_VENDOR_AND_INTERFACE_INFO() macro.
>
> In particular, this patch adds support for the MacBook Pro Retina
> (05ac:8286), which is not in the present list.
>
> Signed-off-by: Henrik Rydberg <[email protected]>
> ---
> Hi Gustavo,
>
> here is a patch for the Apple devices, utilizing commit d81a5d19, for
> 3.6. Tested on the MacBookPro10,1 (Retina). If you want, I can
> follow-up with a patch for 3.7 which removes the specific entries. I
> have verified the lsusb output of all of them, except MacMini5,1.
>
> Thanks,
> Henrik
>
> drivers/bluetooth/btusb.c | 3 +++
> 1 file changed, 3 insertions(+)

Patch has been applied to the bluetooth tree. Thanks.

Gustavo

2012-08-26 17:08:50

by Marcel Holtmann

[permalink] [raw]
Subject: Re: [PATCH] Bluetooth: Add support for Apple vendor-specific devices

Hi Henrik,

> As pointed out by Gustavo and Marcel, all Apple-specific Broadcom
> devices seen so far have the same interface class, subclass and
> protocol numbers. This patch adds an entry which matches all of them,
> using the new USB_VENDOR_AND_INTERFACE_INFO() macro.
>
> In particular, this patch adds support for the MacBook Pro Retina
> (05ac:8286), which is not in the present list.
>
> Signed-off-by: Henrik Rydberg <[email protected]>
> ---
> Hi Gustavo,
>
> here is a patch for the Apple devices, utilizing commit d81a5d19, for
> 3.6. Tested on the MacBookPro10,1 (Retina). If you want, I can
> follow-up with a patch for 3.7 which removes the specific entries. I
> have verified the lsusb output of all of them, except MacMini5,1.
>
> Thanks,
> Henrik
>
> drivers/bluetooth/btusb.c | 3 +++
> 1 file changed, 3 insertions(+)

Acked-by: Marcel Holtmann <[email protected]>

Regards

Marcel



2012-08-25 19:04:11

by Shea Levy

[permalink] [raw]
Subject: Re: [PATCH] Bluetooth: Add support for Apple vendor-specific devices

On 08/25/2012 01:28 PM, Henrik Rydberg wrote:
> As pointed out by Gustavo and Marcel, all Apple-specific Broadcom
> devices seen so far have the same interface class, subclass and
> protocol numbers. This patch adds an entry which matches all of them,
> using the new USB_VENDOR_AND_INTERFACE_INFO() macro.
>
> In particular, this patch adds support for the MacBook Pro Retina
> (05ac:8286), which is not in the present list.
>
> Signed-off-by: Henrik Rydberg<[email protected]>
> ---
> Hi Gustavo,
>
> here is a patch for the Apple devices, utilizing commit d81a5d19, for
> 3.6. Tested on the MacBookPro10,1 (Retina). If you want, I can
> follow-up with a patch for 3.7 which removes the specific entries. I
> have verified the lsusb output of all of them, except MacMini5,1.
>
> Thanks,
> Henrik
>
> drivers/bluetooth/btusb.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
> index 12075ad..1fae607 100644
> --- a/drivers/bluetooth/btusb.c
> +++ b/drivers/bluetooth/btusb.c
> @@ -52,6 +52,9 @@ static struct usb_device_id btusb_table[] = {
> /* Generic Bluetooth USB device */
> { USB_DEVICE_INFO(0xe0, 0x01, 0x01) },
>
> + /* Apple-specific (Broadcom) devices */
> + { USB_VENDOR_AND_INTERFACE_INFO(0x05ac, 0xff, 0x01, 0x01) },
> +
> /* Broadcom SoftSailing reporting vendor specific */
> { USB_DEVICE(0x0a5c, 0x21e1) },
>

Tested on my Macbook Pro 9,2, usb-devices output:

T: Bus=04 Lev=04 Prnt=04 Port=02 Cnt=01 Dev#= 9 Spd=12 MxCh= 0
D: Ver= 2.00 Cls=ff(vend.) Sub=01 Prot=01 MxPS=64 #Cfgs= 1
P: Vendor=05ac ProdID=821d Rev=00.86
S: Manufacturer=Apple Inc.
S: Product=Bluetooth USB Host Controller
C: #Ifs= 4 Cfg#= 1 Atr=e0 MxPwr=0mA
I: If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
I: If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
I: If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
I: If#= 3 Alt= 0 #EPs= 0 Cls=fe(app. ) Sub=01 Prot=01 Driver=(none)

So:

Tested-by: Shea Levy <[email protected]>

2012-08-25 18:35:43

by Henrik Rydberg

[permalink] [raw]
Subject: Re: [PATCH] Bluetooth: Add support for Apple vendor-specific devices

> I'm getting a build error due to lack of
> USB_VENDOR_AND_INTERFACE_INFO macro when patching 3.5.2 with that
> patch. Which kernel tree should I patch with this patch to test?

The macro is in the pipe to 3.5.x, probably only a couple of days
away. The patch is for 3.6, as stated, meaning it applies on top of
Linus's tree.

Henrik

2012-08-25 18:21:17

by Shea Levy

[permalink] [raw]
Subject: Re: [PATCH] Bluetooth: Add support for Apple vendor-specific devices

Hi

On 08/25/2012 01:43 PM, Henrik Rydberg wrote:
> On Sat, Aug 25, 2012 at 01:28:52PM -0400, Shea Levy wrote:
>> Hello,
>>
>> On 08/25/2012 01:28 PM, Henrik Rydberg wrote:
>>> + /* Apple-specific (Broadcom) devices */
>>> + { USB_VENDOR_AND_INTERFACE_INFO(0x05ac, 0xff, 0x01, 0x01) },
>>> +
>>>
>> Would this subsume https://lkml.org/lkml/2012/8/22/689 ?
> Yes, it will make 05ac:821d work as well. If you are able to test it
> successfully, we can append the commit message and add your Tested-by.

I'm getting a build error due to lack of USB_VENDOR_AND_INTERFACE_INFO
macro when patching 3.5.2 with that patch. Which kernel tree should I
patch with this patch to test?

> Thanks,
> Henrik
> --
> To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html

Thanks,
Shea

2012-08-25 17:43:42

by Henrik Rydberg

[permalink] [raw]
Subject: Re: [PATCH] Bluetooth: Add support for Apple vendor-specific devices

On Sat, Aug 25, 2012 at 01:28:52PM -0400, Shea Levy wrote:
> Hello,
>
> On 08/25/2012 01:28 PM, Henrik Rydberg wrote:
> >+ /* Apple-specific (Broadcom) devices */
> >+ { USB_VENDOR_AND_INTERFACE_INFO(0x05ac, 0xff, 0x01, 0x01) },
> >+
> >
>
> Would this subsume https://lkml.org/lkml/2012/8/22/689 ?

Yes, it will make 05ac:821d work as well. If you are able to test it
successfully, we can append the commit message and add your Tested-by.

Thanks,
Henrik

2012-08-25 17:28:52

by Shea Levy

[permalink] [raw]
Subject: Re: [PATCH] Bluetooth: Add support for Apple vendor-specific devices

Hello,

On 08/25/2012 01:28 PM, Henrik Rydberg wrote:
> + /* Apple-specific (Broadcom) devices */
> + { USB_VENDOR_AND_INTERFACE_INFO(0x05ac, 0xff, 0x01, 0x01) },
> +
>

Would this subsume https://lkml.org/lkml/2012/8/22/689 ?

Thanks,
Shea Levy