From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Message-ID: <454F7267.9010409@baldauf.org> Date: Mon, 06 Nov 2006 18:35:35 +0100 From: =?ISO-8859-1?Q?Xu=E2n_Baldauf?= MIME-Version: 1.0 To: marcel@holtmann.org, maxk@qualcomm.com CC: bluez-devel@lists.sourceforge.net Subject: [patch] Broadcom BCM2045 SCO workaround Content-Type: multipart/mixed; boundary="------------040401040602000004010801" List-ID: This is a multi-part message in MIME format. --------------040401040602000004010801 Content-Type: multipart/alternative; boundary="------------090208060600070806030608" --------------090208060600070806030608 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit 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 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.






--------------090208060600070806030608--

--------------040401040602000004010801
Content-Type: text/x-patch;
 name="fix.BCM92045DG.SCOsendProblem.patch"
Content-Transfer-Encoding: 8bit
Content-Disposition: inline;
 filename="fix.BCM92045DG.SCOsendProblem.patch"

Signed-off-by: Xuân Baldauf 
--- drivers/bluetooth/hci_usb.c.orig.0	2006-10-21 16:53:17.000000000 +0200
+++ drivers/bluetooth/hci_usb.c	2006-11-04 02:35:48.000000000 +0100
@@ -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 },
 

--------------040401040602000004010801--