Wifi/Bluetooth don't work together

Hello all, I have an interesting wifi issue that has been bothering me. I bought a new laptop recently (Lenovo C340, AMD version) that has a Qualcomm Atheros wifi/bluetooth chip (QCA9377). From what I understand this chip is known to cause problems with older kernels, but people report that it should work fine with the newer ones. I'm using a very new kernel. (5.7.0-1-MANJARO)

The jist of the issue is this: WiFi works fine on its own, but crawls to a halt if I also enable Bluetooth and start streaming audio to an external speaker. The same external speaker and wifi combination works fine with an older laptop (also a Lenovo, but much older). Running ping in the background shows massive ping latencies, upwards of 5 seconds when Bluetooth is active and music is streaming. (if there is an answer at all!) As far as I can tell, Bluetooth seems to work ok, it is only wifi that slows down.

Some people who have similar issues with WiFi/Bluetooth performance on intel cards have reported to have fixed the issue by playing with the bluetooth coexistence parameter on iwlwifi, but the driver for this card (ath10k) does not seem to have any options related to this. There is a reddit thread on a similar topic, but without an actionable answer: https://www.reddit.com/r/archlinux/comments/bj5wde/bluetooth_coexistence_option_for_ath10k_module/

Any ideas on how to remedy this? Some potentially useful debugging information is below.

[z@z-99n6 ~]$ inxi -Fx
System:    Host: z-99n6 Kernel: 5.7.0-1-MANJARO x86_64 bits: 64 compiler: gcc v: 9.3.0 
           Desktop: Xfce 4.14.2 Distro: Manjaro Linux 
Machine:   Type: Laptop System: LENOVO product: 81N6 v: Lenovo IdeaPad C340-14API 
           serial: <root required> 
           Mobo: LENOVO model: LNVNB161216 v: SDK0J40709 WIN serial: <root required> UEFI: LENOVO 
           v: AGCN24WW(V1.07) date: 09/16/2019 
Battery:   ID-1: BAT1 charge: 44.7 Wh condition: 45.1/45.0 Wh (100%) model: LENOVO PABAS0241231 
           status: Charging 
CPU:       Topology: Quad Core model: AMD Ryzen 7 3700U with Radeon Vega Mobile Gfx bits: 64 
           type: MT MCP arch: Zen+ rev: 1 L2 cache: 2048 KiB 
           flags: avx avx2 lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm bogomips: 36750 
           Speed: 1177 MHz min/max: 1400/2300 MHz Core speeds (MHz): 1: 1178 2: 1176 3: 2913 
           4: 2911 5: 1177 6: 1177 7: 1177 8: 1176 
Graphics:  Device-1: AMD Picasso vendor: Lenovo driver: amdgpu v: kernel bus ID: 04:00.0 
           Display: x11 server: X.Org 1.20.8 driver: amdgpu,ati unloaded: modesetting 
           resolution: 1920x1080~60Hz 
           OpenGL: renderer: AMD RAVEN (DRM 3.36.0 5.7.0-1-MANJARO LLVM 10.0.0) v: 4.6 Mesa 20.0.6 
           direct render: Yes 
Audio:     Device-1: AMD Raven/Raven2/Fenghuang HDMI/DP Audio vendor: Lenovo driver: snd_hda_intel 
           v: kernel bus ID: 04:00.1 
           Device-2: AMD Raven/Raven2/FireFlight/Renoir Audio Processor vendor: Lenovo driver: N/A 
           bus ID: 04:00.5 
           Device-3: AMD Family 17h HD Audio vendor: Lenovo driver: snd_hda_intel v: kernel 
           bus ID: 04:00.6 
           Sound Server: ALSA v: k5.7.0-1-MANJARO 
Network:   Device-1: Qualcomm Atheros QCA9377 802.11ac Wireless Network Adapter vendor: Lenovo 
           driver: ath10k_pci v: kernel bus ID: 02:00.0 
           IF: wlp2s0 state: up mac: 11:55:c9:fe:32:e9 
           Device-2: Qualcomm Atheros type: USB driver: btusb bus ID: 3-2:3 
           IF-ID-1: eth0 state: up speed: -1 duplex:  
Drives:    Local Storage: total: 953.87 GiB used: 34.65 GiB (3.6%) 
           ID-1: /dev/nvme0n1 vendor: Samsung model: MZVLB1T0HBLR-000L2 size: 953.87 GiB 
Partition: ID-1: / size: 36.42 GiB used: 7.99 GiB (22.0%) fs: ext4 dev: /dev/nvme0n1p6 
Sensors:   System Temperatures: cpu: 51.8 C mobo: N/A gpu: amdgpu temp: 51 C 
           Fan Speeds (RPM): N/A 
Info:      Processes: 240 Uptime: 1h 17m Memory: 5.81 GiB used: 2.31 GiB (39.7%) Init: systemd 
           Compilers: gcc: 9.3.0 Shell: bash v: 5.0.16 inxi: 3.0.37 

I’ve tried various kernels, including 5.4 and 5.6, but the behaviour was more or less identical.

1 Like

I'm also facing the same problem. if I'm not connected with bluetooth while using wifi, then wifi works fine but when I turn the both of this at the same time and connect with any bluetooth device then my wifi gets started struggle with low bandwith as well as very slow speed!!!!

1 Like

The strangest thing is that this does not happen when I connect the same speaker to my old laptop. The wifi adapter is doing something very funny here.

Another fun fact: my Fritz router plots the load on the wifi channels and I can see that the load on channel 1 (which I'm using) just skyrockets to 100% when I stream audio. It is likely that this brings down not only my wifi, but also any other device on the same channel.

what wifi/bluetooth chip do you have?

Make sure your bios is up to date.

Only use the 5 GHz band for wifi. Do not use the 2.4 GHz band that IS being shared with your BT.

Your best bet might be to disable the onboard BT chip and buy a dedicated BT dongle. Many combo chips have this problem. Physically separating the chips and the band used is sometimes the only thing that helps.

1 Like

It looks like my issue is very similar to: Enabling Bluetooth coexistence on ath10k Atheros QCA6174 ath10k does not support for bluetooth coexistance configuration like iwlwifi.

But it sounds like Qualcomm Atheros combined wifi/bluetooth chips are just terrible.

@tbg: why do you think updating bios might help? Firmware sure, but I was surprised by bios.

My router does not support 5GHz, but I might invest a little into a better one.

If it is an aftermarket USB wifi dongle then updating the bios will be of little use. However, if your wifi/bt chip is the original one that shipped with your laptop then a bios update may contain improvements for your networking components.

Updating the bios along with testing alternate kernels are the two most likely troubleshooting steps to bring improvements (if your hardware is not working properly). I would also suggest testing kernel 4.19.

After that, testing alternate firmware versions (or driver options) are the next most likely fixes. I would suggest testing the newest ath10k firmware from kvallo on Github. The Google ChromeOS ath10k firmware is often the most up to date developmental version available and may also be worth testing. Search the forum, Google, DDG, etc... for directions on how to do that.

Best of luck.

Original poster from the linked post here.

I searched through the ath10k driver and found that the option for coexistence was never exposed. I gave up and started using a cheap $3 USB bluetooth dongle.

In Windows I was using the QCA bluetooth for connecting to my Wiimote for play with Dolphin emulator. I was running into weird issues where the bluetooth would disconnect, and after having a chat with some Dolphin people they suggested the bluetooth module was rubbish, and they didn't have much good things to say about Qualcomm adapters.

I ended up taking the module out of my motherboard and replacing it with an Intel Wifi 6 module, and have found it far better in performance. And I have coexistence!

2 Likes

after having a chat with some Dolphin people they suggested the bluetooth module was rubbish, and they didn't have much good things to say about Qualcomm adapters.

I think this is what it boils downs to: don't buy Qualcomm Atheros

I ended up taking the module out of my motherboard and replacing it with an Intel Wifi 6 module, and have found it far better in performance. And I have coexistence!

I guess this is not an option for a laptop :smiley:

You guess wrong, friend. You'll find it'll likely be a M2 style module just like mine. They don't seem to be soldered modules these days. Open and have a look.

I've been having exactly same issue for quite a long time now. I'm 99% sure that the whole issue boils down to the bluetooth coexistance ( for ath10k) not being an added feature in any of the linux kernels that I've tested thus far despite it being supported by Qualcom. I'm running dual boot with windows 10, where bluetooth coexistance for this driver is supported and the problem is non existant, so I guess the only thing there is for us is to wait and hope that one day someone will add it in future version of linux kernel.

I think in the ath10k case that is more a driver issue. I believe the ath9k driver has the coexistence option, but it still suffers from this issue as do many other adapters.

I'm going to assume that your ath10k adapter is either a 9377 or 6174. Those are both just really bad adapters. You'd probably be better off with a replacement rather than waiting for any big improvement with either of those adapters.

Yes indeed, my adapter is QCA 9377. The internet is full of people complaining about this adapter and others that use ath10k. I should have done my research better before buying this laptop.

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

Forum kindly sponsored by