Bug 99371

Summary: ath3k Bluetooth adapter not loading: [0cf3:3004] Atheros Communications, Inc. AR3012 Bluetooth 4.0
Product: Drivers Reporter: Sumit Khanna (notify)
Component: BluetoothAssignee: linux-bluetooth (linux-bluetooth)
Status: NEW ---    
Severity: normal CC: alexandre, calamandrei, shijialeo, tycho
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 4.0.4 Subsystem:
Regression: No Bisected commit-id:
Attachments: dmesg output from linux-4.0.5-gentoo
patch for bluetooth with QCA6174 wifi on Eurocom P5

Description Sumit Khanna 2015-06-03 09:41:46 UTC
I'm currently using an MSI WS60 laptop which contains the following
Bluetooth controller (from lsusb):

Bus 003 Device 003: ID 0cf3:3004 Atheros Communications, Inc. AR3012
Bluetooth 4.0

and the more detailed version:

Bus 003 Device 003: ID 0cf3:3004 Atheros Communications, Inc. AR3012
Bluetooth 4.0
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass          224 Wireless
  bDeviceSubClass         1 Radio Frequency
  bDeviceProtocol         1 Bluetooth
  bMaxPacketSize0        64
  idVendor           0x0cf3 Atheros Communications, Inc.
  idProduct          0x3004 AR3012 Bluetooth 4.0
  bcdDevice            0.01
  iManufacturer           0
  iProduct                0
  iSerial                 0
  bNumConfigurations      1
  Configuration Descriptor:


In my kernel logs I see the following:

$dmesg | grep -i bluetooth

[    0.334727] Bluetooth: Core ver 2.20
[    0.334734] Bluetooth: HCI device and connection manager initialized
[    0.334736] Bluetooth: HCI socket layer initialized
[    0.334738] Bluetooth: L2CAP socket layer initialized
[    0.334740] Bluetooth: SCO socket layer initialized
[    0.604281] Bluetooth: HCI UART driver ver 2.2
[    0.604283] Bluetooth: HCI H4 protocol initialized
[    0.604285] Bluetooth: HCI BCSP protocol initialized
[    0.604286] Bluetooth: HCILL protocol initialized
[    0.604288] Bluetooth: HCIATH3K protocol initialized
[    0.615125] Bluetooth: RFCOMM TTY layer initialized
[    0.615129] Bluetooth: RFCOMM socket layer initialized
[    0.615132] Bluetooth: RFCOMM ver 1.11
[    0.615136] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[    0.615138] Bluetooth: BNEP filters: protocol multicast
[    0.615141] Bluetooth: BNEP socket layer initialized
[    0.615144] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
[    0.615146] Bluetooth: HIDP socket layer initialized
[    1.358547] Bluetooth: Patch file not found ar3k/AthrBT_0x00000200.dfu
[    1.358548] Bluetooth: Loading patch file failed

I did a search for this issue and only found other bugs indicating that
this should be reported upstream:

  https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1451689

A mailing list message:

  http://www.spinics.net/lists/linux-wireless/msg135868.html

And a possible duplicate:

  http://www.spinics.net/lists/linux-wireless/msg135869.html

My /proc/version:

  Linux version 4.0.0-wl-ath+ (root@catelyn) (gcc version 4.8.4 (Gentoo
4.8.4 p1.5, pie-0.6.1) ) #14 SMP Thu May 7 18:26:16 AEST 2015

I am running the ath+ branch because my Wi-Fi will not work on the
current kernel (attempted linux-4.0.4-gentoo and Wi-Fi failed to load
firmware, bluetooth had exact same message in kernel logs as reported
above). I'm running commit 4b9abafd of the kvalo/ath fork with the
atk10k firmware files from my own sumdog/ath10k-firmware fork.

Will reboot later and get the dmesg from 4.0.4 as well. I have also tried building ath3k as a module, blacklisting it on boot and loading it manually and I still get the same result (firmware error), so it doesn't appear to be the xHCI issue (the 4.0.0-wl-ath+ branch I'm running seems to have the xHCI patch in it).
Comment 1 Sumit Khanna 2015-06-08 14:24:13 UTC
Created attachment 179101 [details]
dmesg output from linux-4.0.5-gentoo
Comment 2 Sumit Khanna 2015-06-15 12:03:09 UTC
In addition, here is the device listing in /sys/kernel/debug/usb/devices:

T:  Bus=03 Lev=02 Prnt=02 Port=02 Cnt=01 Dev#=  3 Spd=12   MxCh= 0
D:  Ver= 1.10 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=0cf3 ProdID=3004 Rev= 0.01
C:* #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=100mA
I:* If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=(none)
E:  Ad=81(I) Atr=03(Int.) MxPS=  16 Ivl=1ms
E:  Ad=82(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=02(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
I:* If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=(none)
E:  Ad=83(I) Atr=01(Isoc) MxPS=   0 Ivl=1ms
E:  Ad=03(O) Atr=01(Isoc) MxPS=   0 Ivl=1ms
I:  If#= 1 Alt= 1 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=(none)
E:  Ad=83(I) Atr=01(Isoc) MxPS=   9 Ivl=1ms
E:  Ad=03(O) Atr=01(Isoc) MxPS=   9 Ivl=1ms
I:  If#= 1 Alt= 2 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=(none)
E:  Ad=83(I) Atr=01(Isoc) MxPS=  17 Ivl=1ms
E:  Ad=03(O) Atr=01(Isoc) MxPS=  17 Ivl=1ms
I:  If#= 1 Alt= 3 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=(none)
E:  Ad=83(I) Atr=01(Isoc) MxPS=  25 Ivl=1ms
E:  Ad=03(O) Atr=01(Isoc) MxPS=  25 Ivl=1ms
I:  If#= 1 Alt= 4 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=(none)
E:  Ad=83(I) Atr=01(Isoc) MxPS=  33 Ivl=1ms
E:  Ad=03(O) Atr=01(Isoc) MxPS=  33 Ivl=1ms
I:  If#= 1 Alt= 5 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=(none)
E:  Ad=83(I) Atr=01(Isoc) MxPS=  49 Ivl=1ms
E:  Ad=03(O) Atr=01(Isoc) MxPS=  49 Ivl=1ms
Comment 3 Lapo Calamandrei 2015-08-26 12:16:43 UTC
Exact same issue here with 4.2.0-rc6 on an alienware 17 r2 sporting the very same bt hw.
Comment 4 TyHo 2015-11-13 17:18:57 UTC
Still issue using 4.2.0-18-generic

[    8.720655] usb 3-1.3: Direct firmware load for ar3k/AthrBT_0x00000200.dfu failed with error -2
[    8.720659] Bluetooth: Patch file not found ar3k/AthrBT_0x00000200.dfu
[    8.720661] Bluetooth: Loading patch file failed
[    8.720666] ath3k: probe of 3-1.3:1.0 failed with error -2
[    8.720691] usbcore: registered new interface driver ath3k
Comment 5 TyHo 2015-12-11 12:49:04 UTC
Still issue using 4.2.0-21-generic
Comment 6 Tony 2015-12-11 14:13:12 UTC
There does not seem to be proper firmware support for the chip. 
According to mainline code, it should be loading firmware 
ar3k/AthrBT_0x01020200.dfu. But the firmware download times-out.

Not sure whether setting "driver_info = BTUSB_QCA_ROME" as suggested in
http://marc.info/?l=linux-bluetooth&m=144633933801493&w=2
would work either. The rom version returned by this chip is 0x1020200. 
This version is not present in qca_devices_table, which again will 
result in error.



On 11/12/15 12:49, bugzilla-daemon@bugzilla.kernel.org wrote:
> https://bugzilla.kernel.org/show_bug.cgi?id=99371
>
> --- Comment #5 from TyHo <tycho@mediaspectrum.nl> ---
> Still issue using 4.2.0-21-generic
>
Comment 7 Sumit Khanna 2015-12-11 21:30:39 UTC
I wish the bluetooth kernel mailing list had a nice mailman thread view so I could like to the massive thread about this (maybe it does and I just can't find it).

Anyway, here was the last e-mail I sent about this:

http://permalink.gmane.org/gmane.linux.bluez.kernel/63192

and then I gave up and bought and external bluetooth dongle...which broke last week. So I finally replied to that e-mail.

So according to that thread, I don't actually have an ath3k card. It's uses the same USB ID number, but it's actually a QCA Rome chipset. So that patch tries to get the kernel to ignore the ath3k match and instead load the QCA firmware. 

On my MSI WS-60, it loads the firmware, then fails when I try to run "power on" within the "bluetoothctl" command line app (same if I use hciconfig instead as started in a previous e-mail in that thread).

[   11.128970] Bluetooth: hci0: using rampatch file: qca/rampatch_usb_00000200.bin
[   11.128972] Bluetooth: hci0: QCA: patch rome 0x200 build 0x299, firmware rome 0x200 build 0x111
[   11.184335] Bluetooth: hci0: using NVM file: qca/nvm_usb_00000200.bin
[ 6886.445648] Bluetooth: hci0: using rampatch file: qca/rampatch_usb_00000200.bin
[ 6886.445656] Bluetooth: hci0: QCA: patch rome 0x200 build 0x299, firmware rome 0x200 build 0x111
[ 6886.499929] Bluetooth: hci0: using NVM file: qca/nvm_usb_00000200.bin

and after trying to turn it on:

[10052.098236] Bluetooth: hci0: Failed to access otp area (-108)

According to the label on the bottom of my laptop: 

RF Module inside:
Qualcomm Atheros QCNFA34AC

...but I don't know if that's just the Wi-Fi or Wi-Fi+BT. (Wi-fi works fine in stock 4.3.0 with ath10k_pci)
Comment 8 ALexandre Maloteaux 2015-12-20 12:42:27 UTC
Hi 

I have an Eurocom P5 with the same hardware and the fix provided in the previous link works perfectly. I join it here; 

Best Regards
Comment 9 ALexandre Maloteaux 2015-12-20 12:44:13 UTC
Created attachment 197861 [details]
patch for bluetooth with QCA6174 wifi on Eurocom P5
Comment 10 Leonidas 2018-01-27 05:10:31 UTC
(In reply to ALexandre Maloteaux from comment #9)
> Created attachment 197861 [details]
> patch for bluetooth with QCA6174 wifi on Eurocom P5

could you please explain a bit more how to apply the patch? thank you