Bug 217472

Summary: Patch to Support Broadcom Bluetooth Adapter
Product: [Fedora] Fedora Reporter: Jonathan Steffan <jonathansteffan>
Component: kernelAssignee: Kernel Maintainer List <kernel-maint>
Status: CLOSED WORKSFORME QA Contact: Brian Brock <bbrock>
Severity: medium Docs Contact:
Priority: medium    
Version: 6CC: dwmw2, marcel, wtogami
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
URL: http://bluetooth-alsa.cvs.sourceforge.net/bluetooth-alsa/btsco/README?view=markup
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2006-12-22 11:18:52 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Jonathan Steffan 2006-11-28 02:15:29 UTC
Description of problem:
Broadcom bluetooth adaptor not working with bluetooth-alsa

Version-Release number of selected component (if applicable):
btsco 0.42
Built from:
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=200499
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=200498

How reproducible:
Always

Steps to Reproduce:
1. Setup btsco
2. Try to use device
  
Actual results:
Only the microphone works. No audio is able to be sent to device. I am able to
make the device ring, and use the device to adjust the volume level, etc.

Expected results:
Audio will make it to the device.

Additional info:
The suggested patch was pulled from the sourceforge site. I don't know why, so I
pulled the patch from google cache:

--- linux/net/bluetooth/hci_event.c	2006-01-31 07:52:07.000000000 +0100
+++ linux/net/bluetooth/hci_event.c	2006-02-13 10:46:30.000000000 +0100
@@ -320,9 +320,9 @@
 		}
 
 		hdev->acl_mtu  = __le16_to_cpu(bs->acl_mtu);
-		hdev->sco_mtu  = bs->sco_mtu ? bs->sco_mtu : 64;
+		hdev->sco_mtu  = (bs->sco_mtu < 64) ? 64 : bs->sco_mtu;
 		hdev->acl_pkts = hdev->acl_cnt = __le16_to_cpu(bs->acl_max_pkt);
-		hdev->sco_pkts = hdev->sco_cnt = __le16_to_cpu(bs->sco_max_pkt);
+		hdev->sco_pkts = hdev->sco_cnt = bs->sco_max_pkt ?
__le16_to_cpu(bs->sco_max_pkt) : 8;
 
 		BT_DBG("%s mtu: acl %d, sco %d max_pkt: acl %d, sco %d", hdev->name,
 			hdev->acl_mtu, hdev->sco_mtu, hdev->acl_pkts, hdev->sco_pkts);

Comment 1 Jonathan Steffan 2006-11-28 02:17:20 UTC
Just to make the README more apparent:

http://bluetooth-alsa.cvs.sourceforge.net/bluetooth-alsa/btsco/README?view=markup

Comment 2 Marcel Holtmann 2006-11-28 02:39:24 UTC
This fix wasn't accepted upstream and never will be. Most Broadcom based
adapters have a quirk to fix their SCO MTU. If this adapter is not in the list,
you can use the force_scofix module parameter of the hci_usb driver to activate it.


Comment 3 Jonathan Steffan 2006-11-28 20:33:51 UTC
Ok, how do I test this module parameter?

Comment 4 Jonathan Steffan 2006-12-22 11:18:52 UTC
Well, using force_scofix does work. For the record:

Add the following to /etc/modprobe.conf:

options hci_usb force_scofix=1