All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] Bluetooth: btusb: add support for 0bb4:0306
@ 2017-02-10  0:31 Christoph Haag
  2017-02-10 11:23 ` Marcel Holtmann
  0 siblings, 1 reply; 9+ messages in thread
From: Christoph Haag @ 2017-02-10  0:31 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: marcel, gustavo, johan.hedberg, Christoph Haag

It's a custom USB ID for the broadcom bt adapter in the HTC Vive.

T:  Bus=01 Lev=02 Prnt=02 Port=01 Cnt=02 Dev#=  7 Spd=12  MxCh= 0
D:  Ver= 2.00 Cls=ff(vend.) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=0bb4 ProdID=0306 Rev=01.12
S:  Manufacturer=Broadcom Corp
S:  Product=BCM2045A0
S:  SerialNumber=AC3743E110CE
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=ff(vend.) 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)

Signed-off-by: Christoph Haag <haagch@frickel.club>
---
 drivers/bluetooth/btusb.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
index 2f633df9f4e6..afb48aebe9c5 100644
--- a/drivers/bluetooth/btusb.c
+++ b/drivers/bluetooth/btusb.c
@@ -124,6 +124,9 @@ static const struct usb_device_id btusb_table[] = {
 	/* Broadcom BCM20702A0 */
 	{ USB_DEVICE(0x413c, 0x8197) },
 
+	/* Broadcom BCM2045A0 found in the HTC Vive */
+	{ USB_DEVICE(0x0bb4, 0x0306) },
+
 	/* Broadcom BCM20702B0 (Dynex/Insignia) */
 	{ USB_DEVICE(0x19ff, 0x0239), .driver_info = BTUSB_BCM_PATCHRAM },
 
-- 
2.11.1

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH] Bluetooth: btusb: add support for 0bb4:0306
  2017-02-10  0:31 [PATCH] Bluetooth: btusb: add support for 0bb4:0306 Christoph Haag
@ 2017-02-10 11:23 ` Marcel Holtmann
  2017-02-10 12:02   ` Christoph Haag
  2017-02-10 12:09   ` [PATCH] " Christoph Haag
  0 siblings, 2 replies; 9+ messages in thread
From: Marcel Holtmann @ 2017-02-10 11:23 UTC (permalink / raw)
  To: Christoph Haag; +Cc: linux-bluetooth, Gustavo F. Padovan, Johan Hedberg

Hi Christoph,

> It's a custom USB ID for the broadcom bt adapter in the HTC Vive.
> 
> T:  Bus=01 Lev=02 Prnt=02 Port=01 Cnt=02 Dev#=  7 Spd=12  MxCh= 0
> D:  Ver= 2.00 Cls=ff(vend.) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
> P:  Vendor=0bb4 ProdID=0306 Rev=01.12
> S:  Manufacturer=Broadcom Corp
> S:  Product=BCM2045A0
> S:  SerialNumber=AC3743E110CE
> 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=ff(vend.) 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)
> 
> Signed-off-by: Christoph Haag <haagch@frickel.club>
> ---
> drivers/bluetooth/btusb.c | 3 +++
> 1 file changed, 3 insertions(+)
> 
> diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
> index 2f633df9f4e6..afb48aebe9c5 100644
> --- a/drivers/bluetooth/btusb.c
> +++ b/drivers/bluetooth/btusb.c
> @@ -124,6 +124,9 @@ static const struct usb_device_id btusb_table[] = {
> 	/* Broadcom BCM20702A0 */
> 	{ USB_DEVICE(0x413c, 0x8197) },
> 
> +	/* Broadcom BCM2045A0 found in the HTC Vive */
> +	{ USB_DEVICE(0x0bb4, 0x0306) },
> +

actually you want to use USB_VENDOR_AND_INTERFACE_INFO like we do for all the other Broadcom based devices. So that all HTC devices that have the Broadcom ff:01:01 interface description are covered.

And if you can add /sys/kernel/debug/usb/devices to have to the full descriptors, that would be great. If this works with the BTUSB_BCM_PATCHRAM quirk, then there is also some extra debug info in dmesg that you might want to include.

Regards

Marcel


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] Bluetooth: btusb: add support for 0bb4:0306
  2017-02-10 11:23 ` Marcel Holtmann
@ 2017-02-10 12:02   ` Christoph Haag
  2017-02-10 12:02     ` Christoph Haag
  2017-02-10 12:09   ` [PATCH] " Christoph Haag
  1 sibling, 1 reply; 9+ messages in thread
From: Christoph Haag @ 2017-02-10 12:02 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: marcel, gustavo, johan.hedberg


Thanks,
I wasn't aware of this because I know next to nothing about the bluetooth stack.

Also it didn't work right.
With this new patch I can actually pair and use gatttool,
and lsusb says says BCM920703 now in lsusb.

dmesg says

Bluetooth: hci0: BCM: chip id 102
Bluetooth: hci0: c-l
Bluetooth: hci0: BCM (001.001.005) build 0000
Bluetooth: hci0: BCM (001.001.005) build 0481
Bluetooth: hci0: BCM20703A1 Generic USB 20Mhz fcbga_BU

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH] Bluetooth: btusb: add support for 0bb4:0306
  2017-02-10 12:02   ` Christoph Haag
@ 2017-02-10 12:02     ` Christoph Haag
  2017-02-10 13:02       ` [PATCH v2] " Christoph Haag
  0 siblings, 1 reply; 9+ messages in thread
From: Christoph Haag @ 2017-02-10 12:02 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: marcel, gustavo, johan.hedberg, Christoph Haag

It's a custom USB ID for the broadcom bt adapter in the HTC Vive.

T:  Bus=01 Lev=02 Prnt=02 Port=01 Cnt=02 Dev#=  6 Spd=12   MxCh= 0
D:  Ver= 2.00 Cls=ff(vend.) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=0bb4 ProdID=0306 Rev= 1.12
S:  Manufacturer=Broadcom Corp
S:  Product=BCM2045A0
S:  SerialNumber=AC3743E110CE
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
E:  Ad=81(I) Atr=03(Int.) MxPS=  16 Ivl=1ms
E:  Ad=82(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=02(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
I:* If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
E:  Ad=83(I) Atr=01(Isoc) MxPS=   0 Ivl=1ms
E:  Ad=03(O) Atr=01(Isoc) MxPS=   0 Ivl=1ms
I:  If#= 1 Alt= 1 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
E:  Ad=83(I) Atr=01(Isoc) MxPS=   9 Ivl=1ms
E:  Ad=03(O) Atr=01(Isoc) MxPS=   9 Ivl=1ms
I:  If#= 1 Alt= 2 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
E:  Ad=83(I) Atr=01(Isoc) MxPS=  17 Ivl=1ms
E:  Ad=03(O) Atr=01(Isoc) MxPS=  17 Ivl=1ms
I:  If#= 1 Alt= 3 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
E:  Ad=83(I) Atr=01(Isoc) MxPS=  25 Ivl=1ms
E:  Ad=03(O) Atr=01(Isoc) MxPS=  25 Ivl=1ms
I:  If#= 1 Alt= 4 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
E:  Ad=83(I) Atr=01(Isoc) MxPS=  33 Ivl=1ms
E:  Ad=03(O) Atr=01(Isoc) MxPS=  33 Ivl=1ms
I:  If#= 1 Alt= 5 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
E:  Ad=83(I) Atr=01(Isoc) MxPS=  49 Ivl=1ms
E:  Ad=03(O) Atr=01(Isoc) MxPS=  49 Ivl=1ms
I:* If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=btusb
E:  Ad=84(I) Atr=02(Bulk) MxPS=  32 Ivl=0ms
E:  Ad=04(O) Atr=02(Bulk) MxPS=  32 Ivl=0ms
I:* If#= 3 Alt= 0 #EPs= 0 Cls=fe(app. ) Sub=01 Prot=01 Driver=(none)

Signed-off-by: Christoph Haag <haagch@frickel.club>
---
 drivers/bluetooth/btusb.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
index 2f633df9f4e6..fa4d9313442e 100644
--- a/drivers/bluetooth/btusb.c
+++ b/drivers/bluetooth/btusb.c
@@ -130,6 +130,10 @@ static const struct usb_device_id btusb_table[] = {
 	/* Broadcom BCM43142A0 (Foxconn/Lenovo) */
 	{ USB_DEVICE(0x105b, 0xe065), .driver_info = BTUSB_BCM_PATCHRAM },
 
+	/* Broadcom BCM920703 (HTC Vive) */
+	{ USB_VENDOR_AND_INTERFACE_INFO(0x0bb4, 0xff, 0x01, 0x01),
+	  .driver_info = BTUSB_BCM_PATCHRAM },
+
 	/* Foxconn - Hon Hai */
 	{ USB_VENDOR_AND_INTERFACE_INFO(0x0489, 0xff, 0x01, 0x01),
 	  .driver_info = BTUSB_BCM_PATCHRAM },
-- 
2.11.1

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH] Bluetooth: btusb: add support for 0bb4:0306
  2017-02-10 11:23 ` Marcel Holtmann
  2017-02-10 12:02   ` Christoph Haag
@ 2017-02-10 12:09   ` Christoph Haag
  2017-02-10 12:27     ` Marcel Holtmann
  1 sibling, 1 reply; 9+ messages in thread
From: Christoph Haag @ 2017-02-10 12:09 UTC (permalink / raw)
  To: Marcel Holtmann; +Cc: linux-bluetooth, Gustavo F. Padovan, Johan Hedberg

Hi Marcel.

I've sent a new version but it seems my message was not included, so here it is.

Thanks for the comment.
It did not work right with the first patch anyway, was probably missing some stuff.

With this new patch I can actually pair and use gatttool.
lsusb says BCM920703 now.

dmesg says

Bluetooth: hci0: BCM: chip id 102
Bluetooth: hci0: c-l
Bluetooth: hci0: BCM (001.001.005) build 0000
Bluetooth: hci0: BCM (001.001.005) build 0481
Bluetooth: hci0: BCM20703A1 Generic USB 20Mhz fcbga_BU

Would this be useful for the commit message?

Christoph

On 10.02.2017 12:23, Marcel Holtmann wrote:
> Hi Christoph,
>
>> It's a custom USB ID for the broadcom bt adapter in the HTC Vive.
>>
>> T:  Bus=01 Lev=02 Prnt=02 Port=01 Cnt=02 Dev#=  7 Spd=12  MxCh= 0
>> D:  Ver= 2.00 Cls=ff(vend.) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
>> P:  Vendor=0bb4 ProdID=0306 Rev=01.12
>> S:  Manufacturer=Broadcom Corp
>> S:  Product=BCM2045A0
>> S:  SerialNumber=AC3743E110CE
>> 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=ff(vend.) 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)
>>
>> Signed-off-by: Christoph Haag <haagch@frickel.club>
>> ---
>> drivers/bluetooth/btusb.c | 3 +++
>> 1 file changed, 3 insertions(+)
>>
>> diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
>> index 2f633df9f4e6..afb48aebe9c5 100644
>> --- a/drivers/bluetooth/btusb.c
>> +++ b/drivers/bluetooth/btusb.c
>> @@ -124,6 +124,9 @@ static const struct usb_device_id btusb_table[] = {
>> 	/* Broadcom BCM20702A0 */
>> 	{ USB_DEVICE(0x413c, 0x8197) },
>>
>> +	/* Broadcom BCM2045A0 found in the HTC Vive */
>> +	{ USB_DEVICE(0x0bb4, 0x0306) },
>> +
> actually you want to use USB_VENDOR_AND_INTERFACE_INFO like we do for all the other Broadcom based devices. So that all HTC devices that have the Broadcom ff:01:01 interface description are covered.
>
> And if you can add /sys/kernel/debug/usb/devices to have to the full descriptors, that would be great. If this works with the BTUSB_BCM_PATCHRAM quirk, then there is also some extra debug info in dmesg that you might want to include.
>
> Regards
>
> Marcel
>

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] Bluetooth: btusb: add support for 0bb4:0306
  2017-02-10 12:09   ` [PATCH] " Christoph Haag
@ 2017-02-10 12:27     ` Marcel Holtmann
  2017-02-10 12:54       ` Christoph Haag
  0 siblings, 1 reply; 9+ messages in thread
From: Marcel Holtmann @ 2017-02-10 12:27 UTC (permalink / raw)
  To: Christoph Haag; +Cc: linux-bluetooth, Gustavo F. Padovan, Johan Hedberg

Hi Christoph,

> I've sent a new version but it seems my message was not included, so here it is.
> 
> Thanks for the comment.
> It did not work right with the first patch anyway, was probably missing some stuff.
> 
> With this new patch I can actually pair and use gatttool.
> lsusb says BCM920703 now.
> 
> dmesg says
> 
> Bluetooth: hci0: BCM: chip id 102
> Bluetooth: hci0: c-l
> Bluetooth: hci0: BCM (001.001.005) build 0000
> Bluetooth: hci0: BCM (001.001.005) build 0481
> Bluetooth: hci0: BCM20703A1 Generic USB 20Mhz fcbga_BU
> 
> Would this be useful for the commit message?

yes, please include it in the commit message.

Just for my personal curiosity, can you run btmon and capture the HCI Version Information, HCI Supported Features, HCI Supported Commands and HCI LE Supported Features commands. It sounds like this is a Bluetooth 4.1 capable chip.

Regards

Marcel


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] Bluetooth: btusb: add support for 0bb4:0306
  2017-02-10 12:27     ` Marcel Holtmann
@ 2017-02-10 12:54       ` Christoph Haag
  0 siblings, 0 replies; 9+ messages in thread
From: Christoph Haag @ 2017-02-10 12:54 UTC (permalink / raw)
  To: Marcel Holtmann; +Cc: linux-bluetooth, Gustavo F. Padovan, Johan Hedberg

Hi Marcel
> Hi Christoph,
>
>> I've sent a new version but it seems my message was not included, so here it is.
>>
>> Thanks for the comment.
>> It did not work right with the first patch anyway, was probably missing some stuff.
>>
>> With this new patch I can actually pair and use gatttool.
>> lsusb says BCM920703 now.
>>
>> dmesg says
>>
>> Bluetooth: hci0: BCM: chip id 102
>> Bluetooth: hci0: c-l
>> Bluetooth: hci0: BCM (001.001.005) build 0000
>> Bluetooth: hci0: BCM (001.001.005) build 0481
>> Bluetooth: hci0: BCM20703A1 Generic USB 20Mhz fcbga_BU
>>
>> Would this be useful for the commit message?
> yes, please include it in the commit message.
>
> Just for my personal curiosity, can you run btmon and capture the HCI Version Information, HCI Supported Features, HCI Supported Commands and HCI LE Supported Features commands. It sounds like this is a Bluetooth 4.1 capable chip.
>
> Regards
>
> Marcel

Yes, it supports Bluetooth LE.
The Basestations that come with the Vive *only* support Bluetooth LE. I need the bluetooth adapter in the Vive because the USB bluetooth adapters I have here are all too old and cheap to support LE.

I don't know how to do this best with just btmon. Does hciconfig output suffice?

$ hciconfig hci0 version
hci0:   Type: Primary  Bus: USB
        BD Address: AC:37:43:E1:10:CE  ACL MTU: 1021:8  SCO MTU: 64:1
        HCI Version: 4.1 (0x7)  Revision: 0x11e1
        LMP Version: 4.1 (0x7)  Subversion: 0x2105
        Manufacturer: Broadcom Corporation (15)
$ hciconfig hci0 features
hci0:   Type: Primary  Bus: USB
        BD Address: AC:37:43:E1:10:CE  ACL MTU: 1021:8  SCO MTU: 64:1
        Features page 0: 0xbf 0xfe 0xcf 0xfe 0xdb 0xff 0x7b 0x87
                <3-slot packets> <5-slot packets> <encryption> <slot offset>
                <timing accuracy> <role switch> <sniff mode> <RSSI>
                <channel quality> <SCO link> <HV2 packets> <HV3 packets>
                <u-law log> <A-law log> <CVSD> <paging scheme> <power control>
                <transparent SCO> <broadcast encrypt> <EDR ACL 2 Mbps>
                <EDR ACL 3 Mbps> <enhanced iscan> <interlaced iscan>
                <interlaced pscan> <inquiry with RSSI> <extended SCO>
                <EV4 packets> <EV5 packets> <AFH cap. slave>
                <AFH class. slave> <LE support> <3-slot EDR ACL>
                <5-slot EDR ACL> <sniff subrating> <pause encryption>
                <AFH cap. master> <AFH class. master> <EDR eSCO 2 Mbps>
                <EDR eSCO 3 Mbps> <3-slot EDR eSCO> <extended inquiry>
                <LE and BR/EDR> <simple pairing> <encapsulated PDU>
                <err. data report> <non-flush flag> <LSTO> <inquiry TX power>
                <EPC> <extended features>
        Features page 1: 0x0b 0x00 0x00 0x00 0x00 0x00 0x00 0x00
        Features page 2: 0x3f 0x0b 0x00 0x00 0x00 0x00 0x00 0x00
$ hciconfig hci0 commands
hci0:   Type: Primary  Bus: USB
        BD Address: AC:37:43:E1:10:CE  ACL MTU: 1021:8  SCO MTU: 64:1
        Commands: Octet 0  = 0xff (Bit 0 1 2 3 4 5 6 7)
                  Octet 1  = 0xff (Bit 0 1 2 3 4 5 6 7)
                  Octet 2  = 0xff (Bit 0 1 2 3 4 5 6 7)
                  Octet 3  = 0x03 (Bit 0 1)
                  Octet 4  = 0xcc (Bit 2 3 6 7)
                  Octet 5  = 0xff (Bit 0 1 2 3 4 5 6 7)
                  Octet 6  = 0xef (Bit 0 1 2 3 5 6 7)
                  Octet 7  = 0xff (Bit 0 1 2 3 4 5 6 7)
                  Octet 8  = 0xff (Bit 0 1 2 3 4 5 6 7)
                  Octet 9  = 0xff (Bit 0 1 2 3 4 5 6 7)
                  Octet 10 = 0xec (Bit 2 3 5 6 7)
                  Octet 11 = 0x1f (Bit 0 1 2 3 4)
                  Octet 12 = 0xf2 (Bit 1 4 5 6 7)
                  Octet 13 = 0x0f (Bit 0 1 2 3)
                  Octet 14 = 0xe8 (Bit 3 5 6 7)
                  Octet 15 = 0xfe (Bit 1 2 3 4 5 6 7)
                  Octet 16 = 0x3f (Bit 0 1 2 3 4 5)
                  Octet 17 = 0xf7 (Bit 0 1 2 4 5 6 7)
                  Octet 18 = 0x8f (Bit 0 1 2 3 7)
                  Octet 19 = 0xff (Bit 0 1 2 3 4 5 6 7)
                  Octet 20 = 0x1c (Bit 2 3 4)
                  Octet 22 = 0x04 (Bit 2)
                  Octet 24 = 0x61 (Bit 0 5 6)
                  Octet 25 = 0xf7 (Bit 0 1 2 4 5 6 7)
                  Octet 26 = 0xff (Bit 0 1 2 3 4 5 6 7)
                  Octet 27 = 0xff (Bit 0 1 2 3 4 5 6 7)
                  Octet 28 = 0x7f (Bit 0 1 2 3 4 5 6)
                  Octet 29 = 0xf8 (Bit 3 4 5 6 7)
                  Octet 30 = 0xff (Bit 0 1 2 3 4 5 6 7)
                  Octet 31 = 0xff (Bit 0 1 2 3 4 5 6 7)
                  Octet 32 = 0xff (Bit 0 1 2 3 4 5 6 7)
                  Octet 33 = 0x3f (Bit 0 1 2 3 4 5)
        'Inquiry' 'Inquiry Cancel' 'Periodic Inquiry Mode'
        'Exit Periodic Inquiry Mode' 'Create Connection' 'Disconnect'
        'Add SCO Connection' 'Cancel Create Connection'
        'Accept Connection Request' 'Reject Connection Request'
        'Link Key Request Reply' 'Link Key Request Negative Reply'
        'PIN Code Request Reply' 'PIN Code Request Negative Reply'
        'Change Connection Packet Type' 'Authentication Requested'
        'Set Connection Encryption' 'Change Connection Link Key'
        'Master Link Key' 'Remote Name Request' 'Cancel Remote Name Request'
        'Read Remote Supported Features' 'Read Remote Extended Features'
        'Read Remote Version Information' 'Read Clock Offset'
        'Read LMP Handle' 'Sniff Mode' 'Exit Sniff Mode' 'QoS Setup'
        'Role Discovery' 'Switch Role' 'Read Link Policy Settings'
        'Write Link Policy Settings' 'Read Default Link Policy Settings'
        'Write Default Link Policy Settings' 'Flow Specification'
        'Set Event Mask' 'Reset' 'Set Event Filter' 'Flush' 'Read PIN Type'
        'Write PIN Type' 'Read Stored Link Key' 'Write Stored Link Key'
        'Delete Stored Link Key' 'Write Local Name' 'Read Local Name'
        'Read Connection Accept Timeout' 'Write Connection Accept Timeout'
        'Read Page Timeout' 'Write Page Timeout' 'Read Scan Enable'
        'Write Scan Enable' 'Read Page Scan Activity'
        'Write Page Scan Activity' 'Read Inquiry Scan Activity'
        'Write Inquiry Scan Activity' 'Read Authentication Enable'
        'Write Authentication Enable' 'Read Encryption Mode'
        'Write Encryption Mode' 'Read Class Of Device' 'Write Class Of Device'
        'Read Voice Setting' 'Write Voice Setting'
        'Read Automatic Flush Timeout' 'Write Automatic Flush Timeout'
        'Read Num Broadcast Retransmissions'
        'Write Num Broadcast Retransmissions' 'Read Transmit Power Level'
        'Read Synchronous Flow Control Enable'
        'Set Host Controller To Host Flow Control' 'Host Buffer Size'
        'Host Number Of Completed Packets' 'Read Link Supervision Timeout'
        'Write Link Supervision Timeout' 'Read Number of Supported IAC'
        'Read Current IAC LAP' 'Write Current IAC LAP'
        'Set AFH Channel Classification' 'Read Inquiry Scan Type'
        'Write Inquiry Scan Type' 'Read Inquiry Mode' 'Write Inquiry Mode'
        'Read Page Scan Type' 'Write Page Scan Type'
        'Read AFH Channel Assessment Mode' 'Write AFH Channel Assessment Mode'
        'Read Local Version Information' 'Read Local Supported Features'
        'Read Local Extended Features' 'Read Buffer Size' 'Read BD ADDR'
        'Read Failed Contact Counter' 'Reset Failed Contact Counter'
        'Get Link Quality' 'Read RSSI' 'Read AFH Channel Map' 'Read BD Clock'
        'Read Loopback Mode' 'Write Loopback Mode'
        'Enable Device Under Test Mode' 'Setup Synchronous Connection'
        'Accept Synchronous Connection' 'Reject Synchronous Connection'
        'Read Extended Inquiry Response' 'Write Extended Inquiry Response'
        'Refresh Encryption Key' 'Sniff Subrating' 'Read Simple Pairing Mode'
        'Write Simple Pairing Mode' 'Read Local OOB Data'
        'Read Inquiry Response Transmit Power Level'
        'Write Inquiry Transmit Power Level'
        'Read Default Erroneous Data Reporting'
        'Write Default Erroneous Data Reporting' 'IO Capability Request Reply'
        'User Confirmation Request Reply'
        'User Confirmation Request Negative Reply'
        'User Passkey Request Reply' 'User Passkey Request Negative Reply'
        'Remote OOB Data Request Reply' 'Write Simple Pairing Debug Mode'
        'Enhanced Flush' 'Remote OOB Data Request Negative Reply'
        'Send Keypress Notification' 'IO Capability Request Negative Reply'
        'Read Encryption Key Size' 'Set Event Mask Page 2'
        'Read Enhanced Transmit Power Level' 'Read LE Host Support'
        'Write LE Host Support' 'LE Set Event Mask' 'LE Read Buffer Size'
        'LE Read Local Supported Features' 'LE Set Random Address'
        'LE Set Advertising Parameters' 'LE Read Advertising Channel TX Power'
        'LE Set Advertising Data' 'LE Set Scan Response Data'
        'LE Set Advertise Enable' 'LE Set Scan Parameters'
        'LE Set Scan Enable' 'LE Create Connection'
        'LE Create Connection Cancel' 'LE Read White List Size'
        'LE Clear White List' 'LE Add Device To White List'
        'LE Remove Device From White List' 'LE Connection Update'
        'LE Set Host Channel Classification' 'LE Read Channel Map'
        'LE Read Remote Used Features' 'LE Encrypt' 'LE Rand'
        'LE Start Encryption' 'LE Long Term Key Request Reply'
        'LE Long Term Key Request Negative Reply' 'LE Read Supported States'
        'LE Receiver Test' 'LE Transmitter Test' 'LE Test End'

Christoph

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH v2] Bluetooth: btusb: add support for 0bb4:0306
  2017-02-10 12:02     ` Christoph Haag
@ 2017-02-10 13:02       ` Christoph Haag
  2017-02-16 16:17         ` Marcel Holtmann
  0 siblings, 1 reply; 9+ messages in thread
From: Christoph Haag @ 2017-02-10 13:02 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: marcel, gustavo, johan.hedberg, Christoph Haag

It's a custom USB ID for the broadcom bt adapter in the HTC Vive.

T:  Bus=01 Lev=02 Prnt=02 Port=01 Cnt=02 Dev#=  6 Spd=12   MxCh= 0
D:  Ver= 2.00 Cls=ff(vend.) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=0bb4 ProdID=0306 Rev= 1.12
S:  Manufacturer=Broadcom Corp
S:  Product=BCM2045A0
S:  SerialNumber=AC3743E110CE
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
E:  Ad=81(I) Atr=03(Int.) MxPS=  16 Ivl=1ms
E:  Ad=82(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=02(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
I:* If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
E:  Ad=83(I) Atr=01(Isoc) MxPS=   0 Ivl=1ms
E:  Ad=03(O) Atr=01(Isoc) MxPS=   0 Ivl=1ms
I:  If#= 1 Alt= 1 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
E:  Ad=83(I) Atr=01(Isoc) MxPS=   9 Ivl=1ms
E:  Ad=03(O) Atr=01(Isoc) MxPS=   9 Ivl=1ms
I:  If#= 1 Alt= 2 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
E:  Ad=83(I) Atr=01(Isoc) MxPS=  17 Ivl=1ms
E:  Ad=03(O) Atr=01(Isoc) MxPS=  17 Ivl=1ms
I:  If#= 1 Alt= 3 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
E:  Ad=83(I) Atr=01(Isoc) MxPS=  25 Ivl=1ms
E:  Ad=03(O) Atr=01(Isoc) MxPS=  25 Ivl=1ms
I:  If#= 1 Alt= 4 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
E:  Ad=83(I) Atr=01(Isoc) MxPS=  33 Ivl=1ms
E:  Ad=03(O) Atr=01(Isoc) MxPS=  33 Ivl=1ms
I:  If#= 1 Alt= 5 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
E:  Ad=83(I) Atr=01(Isoc) MxPS=  49 Ivl=1ms
E:  Ad=03(O) Atr=01(Isoc) MxPS=  49 Ivl=1ms
I:* If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=btusb
E:  Ad=84(I) Atr=02(Bulk) MxPS=  32 Ivl=0ms
E:  Ad=04(O) Atr=02(Bulk) MxPS=  32 Ivl=0ms
I:* If#= 3 Alt= 0 #EPs= 0 Cls=fe(app. ) Sub=01 Prot=01 Driver=(none)

dmesg:
Bluetooth: hci0: BCM: chip id 102
Bluetooth: hci0: c-l
Bluetooth: hci0: BCM (001.001.005) build 0000
Bluetooth: hci0: BCM (001.001.005) build 0481
Bluetooth: hci0: BCM20703A1 Generic USB 20Mhz fcbga_BU

Signed-off-by: Christoph Haag <haagch@frickel.club>
---
Changes from v1:
 * include dmesg output in commit message

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

diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
index 2f633df9f4e6..fa4d9313442e 100644
--- a/drivers/bluetooth/btusb.c
+++ b/drivers/bluetooth/btusb.c
@@ -130,6 +130,10 @@ static const struct usb_device_id btusb_table[] = {
 	/* Broadcom BCM43142A0 (Foxconn/Lenovo) */
 	{ USB_DEVICE(0x105b, 0xe065), .driver_info = BTUSB_BCM_PATCHRAM },
 
+	/* Broadcom BCM920703 (HTC Vive) */
+	{ USB_VENDOR_AND_INTERFACE_INFO(0x0bb4, 0xff, 0x01, 0x01),
+	  .driver_info = BTUSB_BCM_PATCHRAM },
+
 	/* Foxconn - Hon Hai */
 	{ USB_VENDOR_AND_INTERFACE_INFO(0x0489, 0xff, 0x01, 0x01),
 	  .driver_info = BTUSB_BCM_PATCHRAM },
-- 
2.11.1

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH v2] Bluetooth: btusb: add support for 0bb4:0306
  2017-02-10 13:02       ` [PATCH v2] " Christoph Haag
@ 2017-02-16 16:17         ` Marcel Holtmann
  0 siblings, 0 replies; 9+ messages in thread
From: Marcel Holtmann @ 2017-02-16 16:17 UTC (permalink / raw)
  To: Christoph Haag; +Cc: linux-bluetooth, Gustavo F. Padovan, Johan Hedberg

Hi Christoph,

> It's a custom USB ID for the broadcom bt adapter in the HTC Vive.
> 
> T:  Bus=01 Lev=02 Prnt=02 Port=01 Cnt=02 Dev#=  6 Spd=12   MxCh= 0
> D:  Ver= 2.00 Cls=ff(vend.) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
> P:  Vendor=0bb4 ProdID=0306 Rev= 1.12
> S:  Manufacturer=Broadcom Corp
> S:  Product=BCM2045A0
> S:  SerialNumber=AC3743E110CE
> 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
> E:  Ad=81(I) Atr=03(Int.) MxPS=  16 Ivl=1ms
> E:  Ad=82(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
> E:  Ad=02(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
> I:* If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
> E:  Ad=83(I) Atr=01(Isoc) MxPS=   0 Ivl=1ms
> E:  Ad=03(O) Atr=01(Isoc) MxPS=   0 Ivl=1ms
> I:  If#= 1 Alt= 1 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
> E:  Ad=83(I) Atr=01(Isoc) MxPS=   9 Ivl=1ms
> E:  Ad=03(O) Atr=01(Isoc) MxPS=   9 Ivl=1ms
> I:  If#= 1 Alt= 2 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
> E:  Ad=83(I) Atr=01(Isoc) MxPS=  17 Ivl=1ms
> E:  Ad=03(O) Atr=01(Isoc) MxPS=  17 Ivl=1ms
> I:  If#= 1 Alt= 3 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
> E:  Ad=83(I) Atr=01(Isoc) MxPS=  25 Ivl=1ms
> E:  Ad=03(O) Atr=01(Isoc) MxPS=  25 Ivl=1ms
> I:  If#= 1 Alt= 4 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
> E:  Ad=83(I) Atr=01(Isoc) MxPS=  33 Ivl=1ms
> E:  Ad=03(O) Atr=01(Isoc) MxPS=  33 Ivl=1ms
> I:  If#= 1 Alt= 5 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
> E:  Ad=83(I) Atr=01(Isoc) MxPS=  49 Ivl=1ms
> E:  Ad=03(O) Atr=01(Isoc) MxPS=  49 Ivl=1ms
> I:* If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=btusb
> E:  Ad=84(I) Atr=02(Bulk) MxPS=  32 Ivl=0ms
> E:  Ad=04(O) Atr=02(Bulk) MxPS=  32 Ivl=0ms
> I:* If#= 3 Alt= 0 #EPs= 0 Cls=fe(app. ) Sub=01 Prot=01 Driver=(none)
> 
> dmesg:
> Bluetooth: hci0: BCM: chip id 102
> Bluetooth: hci0: c-l
> Bluetooth: hci0: BCM (001.001.005) build 0000
> Bluetooth: hci0: BCM (001.001.005) build 0481
> Bluetooth: hci0: BCM20703A1 Generic USB 20Mhz fcbga_BU
> 
> Signed-off-by: Christoph Haag <haagch@frickel.club>
> ---
> Changes from v1:
> * include dmesg output in commit message
> 
> drivers/bluetooth/btusb.c | 4 ++++
> 1 file changed, 4 insertions(+)

patch has been applied to bluetooth-next tree.

Regards

Marcel


^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2017-02-16 16:17 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-02-10  0:31 [PATCH] Bluetooth: btusb: add support for 0bb4:0306 Christoph Haag
2017-02-10 11:23 ` Marcel Holtmann
2017-02-10 12:02   ` Christoph Haag
2017-02-10 12:02     ` Christoph Haag
2017-02-10 13:02       ` [PATCH v2] " Christoph Haag
2017-02-16 16:17         ` Marcel Holtmann
2017-02-10 12:09   ` [PATCH] " Christoph Haag
2017-02-10 12:27     ` Marcel Holtmann
2017-02-10 12:54       ` Christoph Haag

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.