Enabling Bluetooth coexistence on ath10k Atheros QCA6174

Hi all,

I have been having issues using Wifi and my Bluetooth headphones at the same time. Wifi will consistently lose connection for a number of seconds and have to reconnect. This occurs while the headphone are connected via bluetooth. After a bit of googling I found similar issues (https://forums.linuxmint.com/viewtopic.php?t=190118) that were fixed by enabling bluetooth coexistence on the wifi driver.

The hardware is this module https://wikidevi.com/wiki/Qualcomm_Atheros_QCNFA364A which is a Atheros QCA6174 wifi chip, which uses the ath10k driver. I have been trying to find the module parameter to turn on to get it working but I haven't had any luck. I have looked in the driver code https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git/tree/drivers/net/wireless/ath/ath10k and there are mentions of bluetooth coexistence but only in a debug context.

I can confirm the hardware does work in harmony in Windows 10 with no wifi or bluetooth drop outs.

I'm not quite sure where to go from here. Any help would really be appreciated. Thank you.

uname -a

Linux sherlock 5.0.5-1-MANJARO #1 SMP PREEMPT Wed Mar 27 19:15:04 UTC 2019 x86_64 GNU/Linux

lspci output:

00:00.0 Host bridge: Intel Corporation Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers (rev 05)
00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor PCIe Controller (x16) (rev 05)
00:14.0 USB controller: Intel Corporation 200 Series/Z370 Chipset Family USB 3.0 xHCI Controller
00:16.0 Communication controller: Intel Corporation 200 Series PCH CSME HECI #1
00:17.0 SATA controller: Intel Corporation 200 Series PCH SATA controller [AHCI mode]
00:1b.0 PCI bridge: Intel Corporation 200 Series PCH PCI Express Root Port #17 (rev f0)
00:1b.3 PCI bridge: Intel Corporation 200 Series PCH PCI Express Root Port #20 (rev f0)
00:1b.4 PCI bridge: Intel Corporation 200 Series PCH PCI Express Root Port #21 (rev f0)
00:1c.0 PCI bridge: Intel Corporation 200 Series PCH PCI Express Root Port #1 (rev f0)
00:1c.4 PCI bridge: Intel Corporation 200 Series PCH PCI Express Root Port #5 (rev f0)
00:1d.0 PCI bridge: Intel Corporation 200 Series PCH PCI Express Root Port #9 (rev f0)
00:1f.0 ISA bridge: Intel Corporation 200 Series PCH LPC Controller (Z270)
00:1f.2 Memory controller: Intel Corporation 200 Series/Z370 Chipset Family Power Management Controller
00:1f.3 Audio device: Intel Corporation 200 Series PCH HD Audio
00:1f.4 SMBus: Intel Corporation 200 Series/Z370 Chipset Family SMBus Controller
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (2) I219-V
01:00.0 VGA compatible controller: NVIDIA Corporation GP104 [GeForce GTX 1080] (rev a1)
01:00.1 Audio device: NVIDIA Corporation GP104 High Definition Audio Controller (rev a1)
03:00.0 Network controller: Qualcomm Atheros QCA6174 802.11ac Wireless Network Adapter (rev 32)
04:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller SM961/PM961
06:00.0 USB controller: ASMedia Technology Inc. ASM2142 USB 3.1 Host Controller
07:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller SM961/PM961

lsusb output:

Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 001 Device 003: ID 0b05:1825 ASUSTek Computer, Inc. Qualcomm Bluetooth 4.1
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

dmesg output:

[    2.844450] ath10k_pci 0000:03:00.0: enabling device (0000 -> 0002)
[    2.844665] ath10k_pci 0000:03:00.0: pci irq msi oper_irq_mode 2 irq_mode 0 reset_mode 0
[    3.092616] ath10k_pci 0000:03:00.0: qca6174 hw3.2 target 0x05030000 chip_id 0x00340aff sub 1043:86cd
[    3.092618] ath10k_pci 0000:03:00.0: kconfig debug 1 debugfs 1 tracing 1 dfs 0 testmode 0
[    3.092933] ath10k_pci 0000:03:00.0: firmware ver RM.4.4.1.c2-00057-QCARMSWP-1 api 6 features wowlan,ignore-otp,no-4addr-pad,raw-mode crc32 e061250a
[    3.157036] ath10k_pci 0000:03:00.0: board_file api 2 bmi_id N/A crc32 4ed3569e
[    3.225385] ath10k_pci 0000:03:00.0: unsupported HTC service id: 1536
[    3.243421] ath10k_pci 0000:03:00.0: htt-ver 3.56 wmi-op 4 htt-op 3 cal otp max-sta 32 raw 0 hwcrypto 1
[    3.313760] ath: EEPROM regdomain: 0x6c
[    3.313761] ath: EEPROM indicates we should expect a direct regpair map
[    3.313762] ath: Country alpha2 being used: 00
[    3.313762] ath: Regpair used: 0x6c
[    3.342338] ath10k_pci 0000:03:00.0 wlp3s0: renamed from wlan0
[    3.907172] ath10k_pci 0000:03:00.0: unsupported HTC service id: 1536
[    4.221086] ath10k_pci 0000:03:00.0: unsupported HTC service id: 1536

1 Like

If your computer will run on kernel 4.14 give it a try. 4.14 is reported to have better bluetooth performance with your chip. Just FYI, this adapter has lots of issues currently. It is one of intels most problematic wifi/bt chips.

Plesae post:

inxi -Fxxxz

Thanks! Kernel 4.14 downloading as we speak, will give it a try.

It is one of intels most problematic wifi/bt chips.

I trust you mean Atheros's chips?

➜  ~ inxi -Fxxxz
System:    Host: sherlock Kernel: 5.0.5-1-MANJARO x86_64 bits: 64 compiler: gcc v: 8.2.1 Desktop: Xfce 4.13.3 tk: Gtk 3.24.5 
           info: xfce4-panel wm: xfwm4 dm: LightDM 1.28.0 Distro: Manjaro Linux 
Machine:   Type: Desktop Mobo: ASUSTeK model: STRIX Z270I GAMING v: Rev X.0x serial: <filter> UEFI: American Megatrends 
           v: 0812 date: 08/21/2017 
Battery:   Device-1: hidpp_battery_0 model: Logitech K800 serial: <filter> charge: 70% (should be ignored) rechargeable: yes 
           status: Discharging 
           Device-2: hidpp_battery_1 model: Logitech Performance MX serial: <filter> charge: 55% (should be ignored) 
           rechargeable: yes status: Discharging 
CPU:       Topology: Quad Core model: Intel Core i7-7700K bits: 64 type: MT MCP arch: Kaby Lake rev: 9 L2 cache: 8192 KiB 
           flags: lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx bogomips: 67224 
           Speed: 800 MHz min/max: 800/4500 MHz Core speeds (MHz): 1: 800 2: 800 3: 801 4: 800 5: 800 6: 801 7: 800 8: 800 
Graphics:  Device-1: NVIDIA GP104 [GeForce GTX 1080] vendor: ASUSTeK driver: nvidia v: 418.43 bus ID: 01:00.0 
           chip ID: 10de:1b80 
           Display: x11 server: X.Org 1.20.4 driver: nvidia resolution: 1920x1200~60Hz 
           OpenGL: renderer: GeForce GTX 1080/PCIe/SSE2 v: 4.6.0 NVIDIA 418.43 direct render: Yes 
Audio:     Device-1: Intel 200 Series PCH HD Audio vendor: ASUSTeK driver: snd_hda_intel v: kernel bus ID: 00:1f.3 
           chip ID: 8086:a2f0 
           Device-2: NVIDIA GP104 High Definition Audio vendor: ASUSTeK driver: snd_hda_intel v: kernel bus ID: 01:00.1 
           chip ID: 10de:10f0 
           Sound Server: ALSA v: k5.0.5-1-MANJARO 
Network:   Device-1: Intel Ethernet I219-V vendor: ASUSTeK driver: e1000e v: 3.2.6-k port: f000 bus ID: 00:1f.6 
           chip ID: 8086:15b8 
           IF: enp0s31f6 state: down mac: <filter> 
           Device-2: Qualcomm Atheros QCA6174 802.11ac Wireless Network Adapter vendor: ASUSTeK driver: ath10k_pci v: kernel 
           port: e000 bus ID: 03:00.0 chip ID: 168c:003e 
           IF: wlp3s0 state: up mac: <filter> 
           IF-ID-1: docker0 state: down mac: <filter> 
Drives:    Local Storage: total: 232.89 GiB used: 219.34 GiB (94.2%) 
           ID-1: /dev/nvme0n1 vendor: Samsung model: SSD 960 EVO 250GB size: 232.89 GiB speed: 31.6 Gb/s lanes: 4 
           serial: <filter> rev: 2B7QCXE7 scheme: GPT 
           ID-2: /dev/nvme1n1 vendor: Samsung model: SSD 960 EVO 500GB size: 465.76 GiB speed: 31.6 Gb/s lanes: 4 
           serial: <filter> rev: 3B7QCXE7 scheme: MBR 
Partition: ID-1: / size: 230.73 GiB used: 219.24 GiB (95.0%) fs: btrfs dev: /dev/nvme0n1p1 
           ID-2: /boot size: 196.9 MiB used: 99.8 MiB (50.7%) fs: vfat dev: /dev/nvme0n1p3 
           ID-3: /home size: 230.73 GiB used: 219.24 GiB (95.0%) fs: btrfs dev: /dev/nvme0n1p1 
Sensors:   System Temperatures: cpu: 29.8 C mobo: 27.8 C gpu: nvidia temp: 43 C 
           Fan Speeds (RPM): cpu: 0 gpu: nvidia fan: 0% 
Info:      Processes: 266 Uptime: 2h 09m Memory: 15.60 GiB used: 2.35 GiB (15.1%) Init: systemd v: 241 Compilers: gcc: 8.2.1 
           clang: 7.0.1 Shell: zsh v: 5.7.1 running in: xfce4-terminal inxi: 3.0.32 

Yes of course, my bad. :slight_smile:

I just tried kernel 4.14 and found the issues are still there.

  ~ uname -a
Linux sherlock 4.14.109-1-MANJARO #1 SMP PREEMPT Wed Mar 27 18:51:38 UTC 2019 x86_64 GNU/Linux

When listening to a song on youtube with the bluetooth headset you can see this:

64 bytes from 192.168.1.1: icmp_seq=41 ttl=64 time=2.89 ms
64 bytes from 192.168.1.1: icmp_seq=43 ttl=64 time=42.10 ms
64 bytes from 192.168.1.1: icmp_seq=44 ttl=64 time=2.72 ms
64 bytes from 192.168.1.1: icmp_seq=42 ttl=64 time=2772 ms
64 bytes from 192.168.1.1: icmp_seq=46 ttl=64 time=11.3 ms
64 bytes from 192.168.1.1: icmp_seq=45 ttl=64 time=8853 ms
64 bytes from 192.168.1.1: icmp_seq=47 ttl=64 time=16862 ms
64 bytes from 192.168.1.1: icmp_seq=48 ttl=64 time=15865 ms
64 bytes from 192.168.1.1: icmp_seq=54 ttl=64 time=9787 ms
64 bytes from 192.168.1.1: icmp_seq=55 ttl=64 time=23812 ms
64 bytes from 192.168.1.1: icmp_seq=56 ttl=64 time=22812 ms
64 bytes from 192.168.1.1: icmp_seq=57 ttl=64 time=21786 ms
64 bytes from 192.168.1.1: icmp_seq=64 ttl=64 time=14708 ms
64 bytes from 192.168.1.1: icmp_seq=65 ttl=64 time=13708 ms
From 192.168.1.106 icmp_seq=108 Destination Host Unreachable
From 192.168.1.106 icmp_seq=109 Destination Host Unreachable
From 192.168.1.106 icmp_seq=110 Destination Host Unreachable

No luck I am afraid.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.

Forum kindly sponsored by