Skip to contentSkip to conversation

Bluetooth: Add support for Broadcom BCM20702A0.

PATCH In review Jesse Sung 4 participants 10 messages Sep 20, 2011 – Nov 8, 2011 Bluetooth drivers

lore
Share & tools
lore

Jesse Sung

author
#0 lore raw

PATCH 1/1 Bluetooth: Add support for Broadcom BCM20702A0.

Add a new entry (413c:8197) to device ID table.

---
 drivers/bluetooth/btusb.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)
drivers/bluetooth/btusb.c +3 -0
index 91d13a9..d786bb8 100644
@@ -91,6 +91,9 @@ static struct usb_device_id btusb_table[] = {
 	/* Canyon CN-BTU1 with HID interfaces */
 	{ USB_DEVICE(0x0c10, 0x0000) },
 
+	/* Broadcom BCM20702A0 */
+	{ USB_DEVICE(0x413c, 0x8197) },
+
 	{ }	/* Terminating entry */
 };
 
Signature · 1 line
1.7.6.3
maintainer
#1 lore raw

Hi Jesse,

Quoted 12 lines

Add a new entry (413c:8197) to device ID table.

---
  drivers/bluetooth/btusb.c |    3 +++
  1 files changed, 3 insertions(+), 0 deletions(-)
drivers/bluetooth/btusb.c +0 -0
index 91d13a9..d786bb8 100644

drivers/bluetooth/btusb.c static struct usb_device_id btusb_table[] = { · line 96

Quoted 6 lines
drivers/bluetooth/btusb.c +3 -0
@@ -91,6 +91,9 @@ static struct usb_device_id btusb_table[] = {
  	/* Canyon CN-BTU1 with HID interfaces */
  	{ USB_DEVICE(0x0c10, 0x0000) },
 
+	/* Broadcom BCM20702A0 */
+	{ USB_DEVICE(0x413c, 0x8197) },
+

please prove that this is needed. What does usb-devices tell you about this device?

Regards

Marcel

author
#2 lore raw
Quoted 17 lines · Marcel Holtmann

Hi Jesse,

Quoted 15 lines

Add a new entry (413c:8197) to device ID table.

---
   drivers/bluetooth/btusb.c |    3 +++
   1 files changed, 3 insertions(+), 0 deletions(-)
drivers/bluetooth/btusb.c +0 -0
index 91d13a9..d786bb8 100644
@@ -91,6 +91,9 @@ static struct usb_device_id btusb_table[] = {
   	/* Canyon CN-BTU1 with HID interfaces */
   	{ USB_DEVICE(0x0c10, 0x0000) },
 
Quoted 6 lines

drivers/bluetooth/btusb.c static struct usb_device_id btusb_table[] = { · line 96

Quoted 3 lines
drivers/bluetooth/btusb.c +3 -0
+	/* Broadcom BCM20702A0 */
+	{ USB_DEVICE(0x413c, 0x8197) },
+

please prove that this is needed. What does usb-devices tell you about this device?

Hi Marcel,

Currently I only have the output of lsusb -v at hand:

Bus 001 Device 003: ID 413c:8197 Dell Computer Corp. Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 255 Vendor Specific Class
bDeviceSubClass 1
bDeviceProtocol 1
bMaxPacketSize0 64
idVendor 0x413c Dell Computer Corp.
idProduct 0x8197
bcdDevice 1.12

  iManufacturer           1 Broadcom Corp
  iProduct                2 BCM20702A0
  iSerial                 3 D0DF9AA9C513
  bNumConfigurations      1

Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 218
bNumInterfaces 4
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xe0
Self Powered
Remote Wakeup
MaxPower 0mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 3
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 1
bInterfaceProtocol 1
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0010 1x 16 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 1
bInterfaceProtocol 1
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0000 1x 0 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0000 1x 0 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 1
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 1
bInterfaceProtocol 1
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0009 1x 9 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0009 1x 9 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 2
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 1
bInterfaceProtocol 1
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0011 1x 17 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0011 1x 17 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 3
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 1
bInterfaceProtocol 1
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0019 1x 25 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0019 1x 25 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 4
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 1
bInterfaceProtocol 1
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0021 1x 33 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0021 1x 33 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 5
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 1
bInterfaceProtocol 1
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0031 1x 49 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 1
Transfer Type Isochronous
Synch Type None
Usage Type Data
wMaxPacketSize 0x0031 1x 49 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 255 Vendor Specific Subclass
bInterfaceProtocol 255 Vendor Specific Protocol
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x84 EP 4 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0020 1x 32 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x04 EP 4 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0020 1x 32 bytes
bInterval 1
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 3
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 254 Application Specific Interface
bInterfaceSubClass 1 Device Firmware Update
bInterfaceProtocol 1
iInterface 0
Device Firmware Upgrade Interface Descriptor:
bLength 9
bDescriptorType 33
bmAttributes 5
Will Not Detach
Manifestation Tolerant
Upload Unsupported
Download Supported
wDetachTimeout 5000 milliseconds
wTransferSize 64 bytes
bcdDFUVersion 1.10
Device Status: 0x0001
Self Powered

btusb would not take care of this device without its id in the table.

If the output of usb-devices is still needed, please let me know.

Thanks,
Jesse

maintainer
#3 lore raw

Hi Jesse,

Quoted 3 lines

btusb would not take care of this device without its id in the table.

If the output of usb-devices is still needed, please let me know.

yes, I just wanna see usb-devices and not go through 3 pages of verbose lsusb output since that is not helping me.

Regards

Marcel

author
#4 lore raw
Quoted 8 lines · Marcel Holtmann

Hi Jesse,

Quoted 3 lines

btusb would not take care of this device without its id in the table.

If the output of usb-devices is still needed, please let me know.

yes, I just wanna see usb-devices and not go through 3 pages of verbose lsusb output since that is not helping me.

Hi Marcel,

usb-devices output:

T:  Bus=01 Lev=02 Prnt=02 Port=03 Cnt=01 Dev#=  3 Spd=12  MxCh= 0
D:  Ver= 2.00 Cls=ff(vend.) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=413c ProdID=8197 Rev=01.12
S:  Manufacturer=Broadcom Corp
S:  Product=BCM20702A0
S:  SerialNumber=D0DF9AA9C9F1
C:  #Ifs= 4 Cfg#= 1 Atr=e0 MxPwr=0mA
I:  If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
I:  If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
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)

Thanks,
Jesse

author
#5 lore raw
Quoted 26 lines · Jesse Sung
Quoted 8 lines · Marcel Holtmann

Hi Jesse,

Quoted 3 lines

btusb would not take care of this device without its id in the table.

If the output of usb-devices is still needed, please let me know.

yes, I just wanna see usb-devices and not go through 3 pages of verbose lsusb output since that is not helping me.

Hi Marcel,

usb-devices output:

T: Bus=01 Lev=02 Prnt=02 Port=03 Cnt=01 Dev#= 3 Spd=12 MxCh= 0
D: Ver= 2.00 Cls=ff(vend.) Sub=01 Prot=01 MxPS=64 #Cfgs= 1
P: Vendor=413c ProdID=8197 Rev=01.12
S: Manufacturer=Broadcom Corp
S: Product=BCM20702A0
S: SerialNumber=D0DF9AA9C9F1
C: #Ifs= 4 Cfg#= 1 Atr=e0 MxPwr=0mA
I: If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
I: If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
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)

Quoted 2 lines

Thanks,
Jesse

Hi Marcel,

If there's any other info needed, please kindly let me know.

Thanks,
Jesse

#6 lore raw
In reply to Jesse Sung

Am Mittwoch, 21. September 2011, 03:39:03 schrieb Jesse Sung:

Quoted 21 lines
Quoted 2 lines

please prove that this is needed. What does usb-devices tell you about this device?

=20
Hi Marcel,
=20
Currently I only have the output of lsusb -v at hand:
=20
Bus 001 Device 003: ID 413c:8197 Dell Computer Corp. Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 255 Vendor Specific Class
bDeviceSubClass 1
bDeviceProtocol 1
bMaxPacketSize0 64
idVendor 0x413c Dell Computer Corp.
idProduct 0x8197
bcdDevice 1.12
iManufacturer 1 Broadcom Corp
iProduct 2 BCM20702A0

[..]

Quoted 7 lines

Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 3
bInterfaceClass 255 Vendor Specific Class

Hi,

this is really all you need. As soon as it reports that class, you need to = have
the vendor:device in the driver to bind. Otherwise usbcore won't even probe.

Regards
Oliver

=2D-=20
=2D - -=20
SUSE LINUX Products GmbH, GF: Jeff Hawn, Jennifer Guild, Felix Imend=C3=B6r= ffer, HRB 16746 (AG N=C3=BCrnberg)=20
Maxfeldstra=C3=9Fe 5 =20
90409 N=C3=BCrnberg=20
Germany=20
=2D - -=20

#7 lore raw
In reply to Jesse Sung

Hi Jesse,

Quoted 1 line · Jesse Sung

Add a new entry (413c:8197) to device ID table.

Can I get the output of usbdevices in the commit message, please. Then we can prove that adding it to the device ID table is really necessary.

Gustavo

author
#8 lore raw
Quoted 10 lines · Gustavo Padovan

Hi Jesse,

Quoted 1 line · Jesse Sung

Add a new entry (413c:8197) to device ID table.

Can I get the output of usbdevices in the commit message, please. Then we can prove that adding it to the device ID table is really necessary.

Gustavo

Hi Gustavo,

Sure! Modified patch attached. :)

Thanks,
Jesse

Quoted 1 line

From 7ced2be26f17eadc63c6b7fe0d37f948d4fef87c Mon Sep 17 00:00:00 2001

From: Wen-chien Jesse Sung <[email protected]>
Date: Tue, 8 Nov 2011 14:30:22 +0800
Subject: [PATCH] Bluetooth: Add support for Broadcom BCM20702A0

Since this device declares itself as vendor specific, must add a new entry to device ID table to support it.

usb-device output of this device:

T:  Bus=01 Lev=02 Prnt=02 Port=03 Cnt=01 Dev#=  3 Spd=12  MxCh= 0
D:  Ver= 2.00 Cls=ff(vend.) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=413c ProdID=8197 Rev=01.12
S:  Manufacturer=Broadcom Corp
S:  Product=BCM20702A0
S:  SerialNumber=D0DF9AA9C9F1
C:  #Ifs= 4 Cfg#= 1 Atr=e0 MxPwr=0mA
I:  If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
I:  If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
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)
---
 drivers/bluetooth/btusb.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)
drivers/bluetooth/btusb.c +3 -0
index 9db2476..151a2d2 100644
@@ -100,6 +100,9 @@ static struct usb_device_id btusb_table[] = {
 	/* Canyon CN-BTU1 with HID interfaces */
 	{ USB_DEVICE(0x0c10, 0x0000) },
 
+	/* Broadcom BCM20702A0 */
+	{ USB_DEVICE(0x413c, 0x8197) },
+
 	{ }	/* Terminating entry */
 };
 
Signature · 1 line
1.7.7.1
#9 lore raw

Hi Jesse,

Quoted 7 lines · Jesse Sung
Quoted 6 lines · Gustavo Padovan

Hi Jesse,

Quoted 1 line · Jesse Sung

Add a new entry (413c:8197) to device ID table.

Quoted 8 lines
Quoted 4 lines

Can I get the output of usbdevices in the commit message, please. Then we can prove that adding it to the device ID table is really necessary.

Gustavo

Hi Gustavo,

Sure! Modified patch attached. :)

It's applied, thanks.

Gustavo