← Back to team overview

kernel-packages team mailing list archive

[Bug 1065400] Re: Support for loading Broadcom bluetooth firmware

 

hi.
from the many previous posts I was able to decipher the procedure to use:
1) find in the windows driver .inf the hex file to use and convert
2) get and compile and use hex2hcd to convert file to firmware
3) place the file in /lib/firmware/bcrm/BCM43142A0-0a5c-21d7.hcd

and get in my /var/log/syslog, the line that says that the firmware is loaded
Nov  9 20:24:19 callisto kernel: [   23.061550] Bluetooth: hci0: BCM: firmware hci_ver=06 hci_rev=00b0 lmp_ver=06 lmp_subver=210b

until I found out some weeks later than, the firmware is not always
loaded when I boot, I don't know why. there is no error in the log but
the firmware is not loaded.

If I close the lid and reopen it to hibernate and wake-up then the
firmware is finally loaded !

but then I found out the lines
Nov 18 17:04:45 callisto kernel: [ 1769.978201] CPU: 0 PID: 5317 Comm: kworker/u17:0 Tainted: P           OE 3.16.0-24-generic #32-Ubuntu
Nov 18 17:04:45 callisto kernel: [ 1769.978202] Hardware name: Dell Inc. Inspiron 3521/06RYX8, BIOS A12 10/25/2013
Nov 18 17:04:45 callisto kernel: [ 1769.978216] Workqueue: hci0 hci_power_on [bluetooth]
Nov 18 17:04:45 callisto kernel: [ 1769.978219]  0000000000000009 ffff88020b097be8 ffffffff8177fcbc 0000000000000000
Nov 18 17:04:45 callisto kernel: [ 1769.978221]  ffff88020b097c20 ffffffff8106fd8d ffff88020b097d10 ffff880092794920
Nov 18 17:04:45 callisto kernel: [ 1769.978223]  ffff8802348bbb40 00000000fffffff5 0000000000000220 ffff88020b097c30
Nov 18 17:04:45 callisto kernel: [ 1769.978223] Call Trace:
Nov 18 17:04:45 callisto kernel: [ 1769.978229]  [<ffffffff8177fcbc>] dump_stack+0x45/0x56
Nov 18 17:04:45 callisto kernel: [ 1769.978232]  [<ffffffff8106fd8d>] warn_slowpath_common+0x7d/0xa0
Nov 18 17:04:45 callisto kernel: [ 1769.978235]  [<ffffffff8106fe6a>] warn_slowpath_null+0x1a/0x20
Nov 18 17:04:45 callisto kernel: [ 1769.978241]  [<ffffffff814e2be1>] _request_firmware+0x491/0xb20
Nov 18 17:04:45 callisto kernel: [ 1769.978244]  [<ffffffff814e32a1>] request_firmware+0x31/0x50
Nov 18 17:04:45 callisto kernel: [ 1769.978249]  [<ffffffffc057a923>] btusb_setup_bcm_patchram+0x83/0x450 [btusb]
Nov 18 17:04:45 callisto kernel: [ 1769.978252]  [<ffffffff814d9b86>] ? rpm_idle+0xd6/0x2b0
Nov 18 17:04:45 callisto kernel: [ 1769.978264]  [<ffffffffc04d3145>] hci_dev_do_open+0x235/0x930 [bluetooth]
Nov 18 17:04:45 callisto kernel: [ 1769.978268]  [<ffffffff810a26e9>] ? ttwu_do_wakeup+0x19/0xd0
Nov 18 17:04:45 callisto kernel: [ 1769.978278]  [<ffffffffc04d3e20>] hci_power_on+0x40/0x180 [bluetooth]
Nov 18 17:04:45 callisto kernel: [ 1769.978282]  [<ffffffff810a52ff>] ? try_to_wake_up+0x1ff/0x370
Nov 18 17:04:45 callisto kernel: [ 1769.978286]  [<ffffffff8108d8e2>] process_one_work+0x182/0x4e0
Nov 18 17:04:45 callisto kernel: [ 1769.978289]  [<ffffffff8108dcab>] worker_thread+0x6b/0x6a0
Nov 18 17:04:45 callisto kernel: [ 1769.978292]  [<ffffffff8108dc40>] ? process_one_work+0x4e0/0x4e0
Nov 18 17:04:45 callisto kernel: [ 1769.978296]  [<ffffffff81094aeb>] kthread+0xdb/0x100
Nov 18 17:04:45 callisto kernel: [ 1769.978300]  [<ffffffff81094a10>] ? kthread_create_on_node+0x1c0/0x1c0
Nov 18 17:04:45 callisto kernel: [ 1769.978304]  [<ffffffff81787c3c>] ret_from_fork+0x7c/0xb0
Nov 18 17:04:45 callisto kernel: [ 1769.978308]  [<ffffffff81094a10>] ? kthread_create_on_node+0x1c0/0x1c0
Nov 18 17:04:45 callisto kernel: [ 1769.978310] ---[ end trace 9b7c54cc7378b572 ]---
Nov 18 17:04:45 callisto kernel: [ 1769.978312] bluetooth hci0: firmware: brcm/BCM43142A0-0a5c-21d7.hcd will not be loaded
Nov 18 17:04:45 callisto kernel: [ 1769.978315] Bluetooth: hci0: BCM: patch brcm/BCM43142A0-0a5c-21d7.hcd not found

that's kind of confusing. Is it crashing because it tries to reload the
firmware whereas it has already been loaded ?

I got that dump stack before installing the firmware, but now the file
is there why does it tells it can't find the file ?

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/1065400

Title:
  Support for loading Broadcom bluetooth firmware

Status in “linux” package in Ubuntu:
  Fix Released
Status in “linux” source package in Precise:
  Fix Released
Status in “linux” source package in Quantal:
  Fix Released
Status in “linux” source package in Raring:
  Fix Released
Status in “linux” source package in Saucy:
  Fix Released

Bug description:
  Broadcom bluetooth chips require a tool called patchram uploader [1]
  to load firmware. This applies to at least BCM20702 and BCM43142.
  Although some of the devices have an OTPROM that contains required
  firmware, but it is found that these devices would not have HFP/HSP
  support unless a upgraded firmware is loaded via patchram uploader.

  This tool requires hci device to do the firmware loading, but this may
  cause some race condition between patchram tool and bluetoothd or
  something that also works on hci interface.

  Also it needs some hooks to make firmware loads after bootup, s3,  s4,
  rfkill, and device hotplug events. Implement this loader in kernel
  module would make things more easier.

  [1] http://marc.info/?l=linux-bluetooth&m=132039175324993&w=2

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1065400/+subscriptions