Bug 67701 - Atheros Bluetooth Adapter AR3011 with SFLASH configuration does not work
Summary: Atheros Bluetooth Adapter AR3011 with SFLASH configuration does not work
Status: NEW
Alias: None
Product: Drivers
Classification: Unclassified
Component: Bluetooth (show other bugs)
Hardware: x86-64 Linux
: P1 normal
Assignee: other_modules
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-12-25 18:08 UTC by Günther Jakob
Modified: 2019-01-06 18:52 UTC (History)
4 users (show)

See Also:
Kernel Version: All
Subsystem:
Regression: No
Bisected commit-id:


Attachments

Description Günther Jakob 2013-12-25 18:08:00 UTC
The firmware file "ath3k-1.fw" that is contained in the official kernel git has a md5sum value of 1211fa34c09e10ba48381586b7c3883d. In combination with the corresponding kernel drivers btusb and ath3k, the kernel produces the following error message when it tries to initialise the device during bootup:

kernel: Bluetooth: Can't change to loading configuration err
kernel: ath3k: probe of 1-1.5:1.0 failed with error -110

As a result, the Bluetooth adapter does not work. The vendor ID of this device is 0x0cf3 with the product ID of 0x3002 - at least as long as no firmware is loaded that modifies any of these IDs ;-). These two IDs indicate it as Bluetooth adapter with SFLASH configuration. E.g. my MSI Z77 MPower mainboard is shipped with this device as built-in adapter.

I am using Scientific Linux 6.4, which I run with the kernel-lt-3.10.25-1.el6.elrepo.x86_64 package, which - to my understanding - is an unpatched 3.10.25 vanilla-kernel. The only way I got this adapter "properly" working with this RHEL6 clone so far was to replace the above-mentioned ath3k-1.fw file from the kernel git with the corresponding file shipped as part of e.g. the Ubuntu LTS 12.04 distribution. The firmware file contained therein has a md5sum value of 24cfee59a24f336dfae838a0de6445a0 and provides the "feature" that it modifies the product ID of the device once it has been loaded. The corresponding patch applied to this firmware file is documented with http://comments.gmane.org/gmane.linux.kernel/1262485. At least in my case, the product ID of my device changes from originally 0x3002 to 0x3005 once the firmware is loaded.
However, in contrast to the firmware file provided by the kernel git, the Bluetooth adapter works with that firmware!

The firmware file "AtherosBT.bin" that is contained in the latest Windows 8.x driver installation package has a md5sum value of 70cd3caab9ce1c6b3bd4199bd98ee6d2. This firmware file does also (as the one currently provided by the kernel git) not change the product ID of the device. However, it also does not work with the linux kernel, if it's located as /lib/firmware/ath3k-1.fw...

So there are two options of getting the Atheros AR3011 Bluetooth adapter with SFlash configuration to work: Either the above-mentioned firmware file from the Ubuntu distribution is used - I would call this as a "quick and dirty" workaround - or (as a better solution) the corresponding kernel drivers ath3k and/or btusb should be adapted (i.e. bug fixed) such that the kernel can properly handle the device with "original" firmware as provided by the manufacturer.
Comment 1 Günther Jakob 2013-12-26 08:22:52 UTC
When directly after power-up, the System is first booted with MS Windows that already loads the firmware into the bluetooth adapter with the installed driver package and afterwards a "soft reboot" is made with the SL 6.4 OS, the bluetooth device is not working and the kernel also reports

kernel: Bluetooth: Can't change to loading configuration err
kernel: ath3k: probe of 1-1.5:1.0 failed with error -110

ALTHOUGH the ath3k-1-fw file is installed, which changes the product ID of the device after being loaded.
Since the product ID is not changed by the firmware download performed by the Windows system, this observation means to me that the kernel and corresponding drivers always "think" that they have to download the firmware whenever a product ID value of 0x3002 is determined. If - as in this case - the firmware is already loaded any consecutive download attempts fail resulting in the above-mentioned error message...
So obviously, the solution provided by the Ubuntu / Debian people who just adapted the firmware file to get the device working with the currently available kernel versions does not properly work either under all circumstances, i.e. a bug fix in the kernel drivers seems to be mandatory in my opinion.
The kernel needs to be able to distinguish between a device which has its firmware already loaded and another which has it not yet by other means than just via the different product IDs...
Comment 2 Artiom Neganov 2019-01-06 18:41:36 UTC
Warm embraces from 2019, where Bluetooth doesn't work yet.. 

I ran into problems with my matured PC which has Qualcomm Atheros AR9285 Wireless Network Adapter on-board (ASUS P9X79 DELUXE motherboard).

I have different IDs though:

$ lspci:
08:00.0 Network controller [0280]: Qualcomm Atheros AR9285 Wireless Network Adapter (PCI-Express) [168c:002b] (rev 01)
        Subsystem: AzureWave AW-NB037H 802.11bgn Wireless Half-size Mini PCIe Card [AR9002WB-1NGCD] [1a3b:2c37]
        Kernel driver in use: ath9k
        Kernel modules: ath9k

$ lsusb:
Bus 002 Device 004: ID 13d3:3304 IMC Networks Asus Integrated Bluetooth module [AR3011]

So it is originally = [1a3b:2c37]

However, those who report the same device working say it should change IDs to [0cf3:3005] upon ath3k module loading (see: https://ubuntuforums.org/showthread.php?t=2409703&p=13828829#post13828829)

My PC is dual-boot with Windows so probably I can play a little bit more with warm/cold restart and probably it will fix my problem.

As for the firmware, here on Ubuntu 18.04 it has md5sum value of 24cfee59a24f336dfae838a0de6445a0
Comment 3 Artiom Neganov 2019-01-06 18:52:22 UTC
Ok, I've just checked. It doesn't depend on whether I boot Linux after Windows or not, it cannot load firmware at all.

I blacklisted ath3k to load it manually, so when I issue: modprobe ath3k there goes 5-6 seconds delay and "Bluetooth: Can't change to loading configuration err" error in dmesg:

[   41.776857] NET: Registered protocol family 31
[   41.776857] Bluetooth: HCI device and connection manager initialized
[   41.776860] Bluetooth: HCI socket layer initialized
[   41.776861] Bluetooth: L2CAP socket layer initialized
[   41.776865] Bluetooth: SCO socket layer initialized
[   46.833889] Bluetooth: Can't change to loading configuration err
[   46.833926] ath3k: probe of 2-1.5:1.0 failed with error -110
[   46.834023] usbcore: registered new interface driver ath3k


Kernel version: 4.15.0-13

Should I report it as a new bug?

Note You need to log in before you can comment on or make changes to this bug.