Comment 0 for bug 1394368

Wallcom (wallcom) wrote :

This is (kind of) a duplicate of:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1024884
(please read)

I can't use Bluetooth with my AR9462 WLAN/BT-Combo.
In the link above, it has been fixed, but not for my Adapter ID/Firmware:

System:
Ubuntu 14.10 utopic 64bit - 3.16.0-24-generic x86_64

lspci -nnk
02:00.0 Network controller [0280]: Qualcomm Atheros AR9462
Wireless Network Adapter [168c:0034] (rev 01)
 Subsystem: Lite-On Communications Inc Device [11ad:0802]
 Kernel driver in use: ath9k

lsusb (identified Bluetooth Device)
Bus 002 Device 003: ID 04ca:300d Lite-On Technology Corp.

ath9k.conf
options ath9k btcoex_enable=1

The "04ca:300d" ID is not in the Kernel, so i added it via dkms.

I took ath3k.c and btusb.c out of the 3.16.0-24-generic source files and changed them:

diff -urN ./linux-3.16.0/drivers/bluetooth/ath3k.c /usr/src/ar9462-1.5.1/ath3k.c
--- ./linux-3.16.0/drivers/bluetooth/ath3k.c 2014-08-04 00:25:02.000000000 +0200
+++ /usr/src/ar9462-1.5.1/ath3k.c 2014-11-19 21:12:46.646265890 +0100
@@ -85,6 +85,7 @@
  { USB_DEVICE(0x04CA, 0x3007) },
  { USB_DEVICE(0x04CA, 0x3008) },
  { USB_DEVICE(0x04CA, 0x300b) },
+ { USB_DEVICE(0x04CA, 0x300d) },
  { USB_DEVICE(0x0930, 0x0219) },
  { USB_DEVICE(0x0930, 0x0220) },
  { USB_DEVICE(0x0b05, 0x17d0) },
@@ -134,6 +135,7 @@
  { USB_DEVICE(0x04ca, 0x3007), .driver_info = BTUSB_ATH3012 },
  { USB_DEVICE(0x04ca, 0x3008), .driver_info = BTUSB_ATH3012 },
  { USB_DEVICE(0x04ca, 0x300b), .driver_info = BTUSB_ATH3012 },
+ { USB_DEVICE(0x04ca, 0x300d), .driver_info = BTUSB_ATH3012 },
  { USB_DEVICE(0x0930, 0x0219), .driver_info = BTUSB_ATH3012 },
  { USB_DEVICE(0x0930, 0x0220), .driver_info = BTUSB_ATH3012 },
  { USB_DEVICE(0x0b05, 0x17d0), .driver_info = BTUSB_ATH3012 },

diff -urN ./linux-3.16.0/drivers/bluetooth/btusb.c /usr/src/ar9462-1.5.1/btusb.c
--- ./linux-3.16.0/drivers/bluetooth/btusb.c 2014-08-04 00:25:02.000000000 +0200
+++ /usr/src/ar9462-1.5.1/btusb.c 2014-11-19 21:12:46.646265890 +0100
@@ -157,6 +157,7 @@
  { USB_DEVICE(0x04ca, 0x3007), .driver_info = BTUSB_ATH3012 },
  { USB_DEVICE(0x04ca, 0x3008), .driver_info = BTUSB_ATH3012 },
  { USB_DEVICE(0x04ca, 0x300b), .driver_info = BTUSB_ATH3012 },
+ { USB_DEVICE(0x04ca, 0x300d), .driver_info = BTUSB_ATH3012 },
  { USB_DEVICE(0x0930, 0x0219), .driver_info = BTUSB_ATH3012 },
  { USB_DEVICE(0x0930, 0x0220), .driver_info = BTUSB_ATH3012 },
  { USB_DEVICE(0x0b05, 0x17d0), .driver_info = BTUSB_ATH3012 },

sudo dkms add -m ar9462 -v 1.5.1
sudo dkms build -m ar9462 -v 1.5.1
sudo dkms install -m ar9462 -v 1.5.1 --force

NOTE: Since i didn't change the Version in the 2 Files, you have to use --force when installing.
Because of this, the attached deb package (in the same style/versioning as in the bug report above)
doesn't work with autoinstall.

dkms status
ar9462, 1.5.1, 3.16.0-24-generic, x86_64: installed

Now the new output:

dmesg | egrep 'ath3|ar3|Bluet'
[ 2.787819] Bluetooth: Core ver 2.19
[ 2.787833] Bluetooth: HCI device and connection manager initialized
[ 2.787839] Bluetooth: HCI socket layer initialized
[ 2.787842] Bluetooth: L2CAP socket layer initialized
[ 2.787848] Bluetooth: SCO socket layer initialized
[ 2.793551] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 2.793554] Bluetooth: BNEP filters: protocol multicast
[ 2.793561] Bluetooth: BNEP socket layer initialized
[ 3.130779] Bluetooth: Patch file not found ar3k/AthrBT_0x11020100.dfu
[ 3.130783] Bluetooth: Loading patch file failed
[ 3.130788] ath3k: probe of 2-5:1.0 failed with error -12
[ 3.130823] usbcore: registered new interface driver ath3k
[ 9.776503] Bluetooth: RFCOMM TTY layer initialized
[ 9.776512] Bluetooth: RFCOMM socket layer initialized
[ 9.776517] Bluetooth: RFCOMM ver 1.11

My patch work, but just like in the bug report above, a Firmware file is missing:
AthrBT_0x11020100.dfu

I didn't find it neither in linux-firmware (http://git.kernel.org/cgit/linux/kernel/git/firmware/linux-firmware.git/tree/ar3k)
nor elsewhere.