Skip to contentSkip to conversation

Broadcom BCM2045 SCO workaround

PATCH In review Xuân Baldauf 2 participants 3 messages Nov 6, 2006 Bluetooth drivers

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Broadcom BCM2045 SCO workaround

Hello,

The Broadcom BCM2045 chipset seems to be also one of those chipsets which report the SCO maximum packet incorrectly. The attached patch works around this problem. With this workaround, a bluetooth USB dongle with this chipset is able to send SCO data correctly.

The fix was verified using this USB dongle (MSI StarKey 2.0 (Ver 222-BW))

Bus 002 Device 004: ID 0a5c:2101 Broadcom Corp. Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 224 Wireless
bDeviceSubClass 1 Radio Frequency
bDeviceProtocol 1 Bluetooth
bMaxPacketSize0 64
idVendor 0x0a5c Broadcom Corp.
idProduct 0x2101
bcdDevice 0.00
iManufacturer 1 Broadcom Corp
iProduct 2 BCM92045DG Non-UHE
iSerial 0
bNumConfigurations 1

and a Plantronics Explorer 320:

Device Name: 320 Plantronics
LMP Version: 1.2 (0x2) LMP Subversion: 0x8d1
Manufacturer: Cambridge Silicon Radio (10)
Features: 0xbc 0xe8 0x01 0x00 0x08 0x08 0x00 0x00
<encryption> <slot offset> <timing accuracy> <role
switch>
<sniff mode> <SCO link> <HV3 packets> <u-law log>
<A-law log>
<CVSD> <AFH cap. slave> <AFH cap. master

ciao,
Xuân.

P.S.: Maybe it is possible to leave out the "HCI_RESET" part of the .driver_info field.

bluetooth/hci_usb.c renamed from bluetooth/hci_usb.c.orig.0 +3 -0
@@ -115,6 +115,9 @@
 	{ USB_DEVICE(0x0a5c, 0x200a), .driver_info = HCI_RESET | HCI_WRONG_SCO_MTU },
 	{ USB_DEVICE(0x0a5c, 0x2009), .driver_info = HCI_BCM92035 },
 
+	/* Broadcom BCM2045 */
+	{ USB_DEVICE(0x0a5c, 0x2101), .driver_info = HCI_RESET | HCI_WRONG_SCO_MTU },
+	
 	/* IBM/Lenovo ThinkPad with Broadcom chip */
 	{ USB_DEVICE(0x0a5c, 0x201e), .driver_info = HCI_WRONG_SCO_MTU },
 
maintainer
#1 lore raw

Hi Xuan,

Quoted 15 lines

The Broadcom BCM2045 chipset seems to be also one of those chipsets which report the SCO maximum packet incorrectly. The attached patch works around this problem. With this workaround, a bluetooth USB dongle with this chipset is able to send SCO data correctly.

The fix was verified using this USB dongle (MSI StarKey 2.0 (Ver 222-BW))
Bus 002 Device 004: ID 0a5c:2101 Broadcom Corp. Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 224 Wireless
bDeviceSubClass 1 Radio Frequency
bDeviceProtocol 1 Bluetooth

Quoted 8 lines

bMaxPacketSize0 64
idVendor 0x0a5c Broadcom Corp.
idProduct 0x2101
bcdDevice 0.00
iManufacturer 1 Broadcom Corp
iProduct 2 BCM92045DG Non-UHE
iSerial 0
bNumConfigurations 1

is this a dongle with HID proxy support or not. If yes, then you need the HCI_RESET quirk otherwise you don't. So please check if it still works after not including the HCI_RESET quirk.

Regards

Marcel

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Bluez-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-devel

#2 lore raw
Quoted 2 lines · Marcel Holtmann

Hi Xuan,

Hello Marcel,

Quoted 26 lines
Quoted 16 lines

The Broadcom BCM2045 chipset seems to be also one of those chipsets which report the SCO maximum packet incorrectly. The attached patch works around this problem. With this workaround, a bluetooth USB dongle with this chipset is able to send SCO data correctly.

The fix was verified using this USB dongle (MSI StarKey 2.0 (Ver 222-BW))
Bus 002 Device 004: ID 0a5c:2101 Broadcom Corp. Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 224 Wireless
bDeviceSubClass 1 Radio Frequency
bDeviceProtocol 1 Bluetooth

Quoted 9 lines

bMaxPacketSize0 64
idVendor 0x0a5c Broadcom Corp.
idProduct 0x2101
bcdDevice 0.00
iManufacturer 1 Broadcom Corp
iProduct 2 BCM92045DG Non-UHE
iSerial 0
bNumConfigurations 1

Quoted 4 lines

is this a dongle with HID proxy support or not. If yes, then you need the HCI_RESET quirk otherwise you don't. So please check if it still works after not including the HCI_RESET quirk.

It seems that HCI_RESET is not needed. (Interestingly, during testing, I now encounter in about 20% of the cases very loud noise. This seems like wrong data being played (like a synchronization error). However, this problem happens both with and without HCI_RESET.)

Quoted 5 lines

Regards

Marcel

ciao,
Xuân.