Qualcomm Atheros QCA9377 sometimes doesnt work on Manjaro

Hello sometimes Qualcomm Atheros QCA9377 doesnt work in manjaro, or works and the device becomes unavailable after a while.

You can always do this

i installed linux-firmware-20181026.1cb4e51-1-any.pkg.tar.xz
and if i reboot a few times my wireless device is not ready.

rfkill list
0: acer-wireless: Wireless LAN
	Soft blocked: no
	Hard blocked: no
1: acer-bluetooth: Bluetooth
	Soft blocked: no
	Hard blocked: no
2: hci0: Bluetooth
	Soft blocked: no
	Hard blocked: no
3: phy0: Wireless LAN
	Soft blocked: no
	Hard blocked: no

Specs: Acer Aspire a315-41g, kernel 42.0/5.0

On gentoo a few days back i didnt have an issue with the latest firmware and kernels 4.20.

i found this in dmesg:

dmesg | grep ath
[   16.447342] ath10k_pci 0000:03:00.0: pci irq msi oper_irq_mode 2 irq_mode 0 reset_mode 0
[   16.793430] ath10k_pci 0000:03:00.0: qca9377 hw1.1 target 0x05020001 chip_id 0x003821ff sub 11ad:08a6
[   16.793433] ath10k_pci 0000:03:00.0: kconfig debug 1 debugfs 1 tracing 1 dfs 0 testmode 0
[   16.793950] ath10k_pci 0000:03:00.0: firmware ver WLAN.TF.2.1-00021-QCARMSWP-1 api 6 features wowlan,ignore-otp crc32 42e41877
[   17.205385] ath10k_pci 0000:03:00.0: board_file api 2 bmi_id N/A crc32 8aedfa4a
[   17.286869] ath10k_pci 0000:03:00.0: unsupported HTC service id: 1536
[   17.305564] 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
[   17.316371] ath10k_pci 0000:03:00.0: failed to read calibration data: -16
[   20.401914] ath10k_pci 0000:03:00.0: wmi command 16389 timeout, restarting hardware
[   23.601933] ath10k_pci 0000:03:00.0: wmi command 69633 timeout, restarting hardware
[   23.601937] ath10k_pci 0000:03:00.0: could not suspend target (-11)
[   23.602879] ath: EEPROM regdomain: 0x69
[   23.602880] ath: EEPROM indicates we should expect a direct regpair map
[   23.602881] ath: Country alpha2 being used: 00
[   23.602882] ath: Regpair used: 0x69
[   23.729911] ath10k_pci 0000:03:00.0 wlp3s0: renamed from wlan0
[   23.750750] ath10k_pci 0000:03:00.0: cannot restart a device that hasn't been started
[   25.232954] ath10k_pci 0000:03:00.0: Failed to get pcie state addr: -16
[   25.232958] ath10k_pci 0000:03:00.0: failed to setup init config: -16
[   25.233053] ath10k_pci 0000:03:00.0: Could not init hif: -16
[   25.386229] ath10k_pci 0000:03:00.0: Failed to get pcie state addr: -16
[   25.386232] ath10k_pci 0000:03:00.0: failed to setup init config: -16
[   25.386324] ath10k_pci 0000:03:00.0: Could not init hif: -16
[   25.546287] ath10k_pci 0000:03:00.0: Failed to get pcie state addr: -16
[   25.546289] ath10k_pci 0000:03:00.0: failed to setup init config: -16
[   25.546377] ath10k_pci 0000:03:00.0: Could not init hif: -16
[   25.699659] ath10k_pci 0000:03:00.0: Failed to get pcie state addr: -16
[   25.699662] ath10k_pci 0000:03:00.0: failed to setup init config: -16
[   25.699760] ath10k_pci 0000:03:00.0: Could not init hif: -16
[   36.476717] ath10k_pci 0000:03:00.0: Failed to get pcie state addr: -16
[   36.476720] ath10k_pci 0000:03:00.0: failed to setup init config: -16
[   36.476812] ath10k_pci 0000:03:00.0: Could not init hif: -16
[   36.629608] ath10k_pci 0000:03:00.0: Failed to get pcie state addr: -16
[   36.629610] ath10k_pci 0000:03:00.0: failed to setup init config: -16
[   36.629698] ath10k_pci 0000:03:00.0: Could not init hif: -16
[   47.476241] ath10k_pci 0000:03:00.0: Failed to get pcie state addr: -16
[   47.476246] ath10k_pci 0000:03:00.0: failed to setup init config: -16
[   47.476346] ath10k_pci 0000:03:00.0: Could not init hif: -16
[   47.632925] ath10k_pci 0000:03:00.0: Failed to get pcie state addr: -16
[   47.632928] ath10k_pci 0000:03:00.0: failed to setup init config: -16
[   47.633023] ath10k_pci 0000:03:00.0: Could not init hif: -16
[   58.476640] ath10k_pci 0000:03:00.0: Failed to get pcie state addr: -16
[   58.476644] ath10k_pci 0000:03:00.0: failed to setup init config: -16
[   58.476736] ath10k_pci 0000:03:00.0: Could not init hif: -16
[   58.629983] ath10k_pci 0000:03:00.0: Failed to get pcie state addr: -16
[   58.629986] ath10k_pci 0000:03:00.0: failed to setup init config: -16
[   58.630079] ath10k_pci 0000:03:00.0: Could not init hif: -16
[   69.472894] ath10k_pci 0000:03:00.0: Failed to get pcie state addr: -16
[   69.472896] ath10k_pci 0000:03:00.0: failed to setup init config: -16
[   69.472984] ath10k_pci 0000:03:00.0: Could not init hif: -16
[   69.626575] ath10k_pci 0000:03:00.0: Failed to get pcie state addr: -16
[   69.626577] ath10k_pci 0000:03:00.0: failed to setup init config: -16
[   69.626665] ath10k_pci 0000:03:00.0: Could not init hif: -16
[   80.473314] ath10k_pci 0000:03:00.0: Failed to get pcie state addr: -16
[   80.473318] ath10k_pci 0000:03:00.0: failed to setup init config: -16
[   80.473410] ath10k_pci 0000:03:00.0: Could not init hif: -16
[   80.626644] ath10k_pci 0000:03:00.0: Failed to get pcie state addr: -16
[   80.626647] ath10k_pci 0000:03:00.0: failed to setup init config: -16
[   80.626740] ath10k_pci 0000:03:00.0: Could not init hif: -16
[  600.526174] ath10k_pci 0000:03:00.0: Failed to get pcie state addr: -16
[  600.526177] ath10k_pci 0000:03:00.0: failed to setup init config: -16
[  600.526270] ath10k_pci 0000:03:00.0: Could not init hif: -16

when it works dmesg is:

dmesg | grep ath
[    9.939189] ath10k_pci 0000:03:00.0: pci irq msi oper_irq_mode 2 irq_mode 0 reset_mode 0
[   10.229739] ath10k_pci 0000:03:00.0: qca9377 hw1.1 target 0x05020001 chip_id 0x003821ff sub 11ad:08a6
[   10.229742] ath10k_pci 0000:03:00.0: kconfig debug 1 debugfs 1 tracing 1 dfs 0 testmode 0
[   10.230252] ath10k_pci 0000:03:00.0: firmware ver WLAN.TF.2.1-00021-QCARMSWP-1 api 6 features wowlan,ignore-otp crc32 42e41877
[   10.308172] ath10k_pci 0000:03:00.0: board_file api 2 bmi_id N/A crc32 8aedfa4a
[   10.384193] ath10k_pci 0000:03:00.0: unsupported HTC service id: 1536
[   10.402877] 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
[   10.404443] ath: EEPROM regdomain: 0x69
[   10.404444] ath: EEPROM indicates we should expect a direct regpair map
[   10.404445] ath: Country alpha2 being used: 00
[   10.404445] ath: Regpair used: 0x69
[   10.612880] ath10k_pci 0000:03:00.0 wlp3s0: renamed from wlan0
[   14.813185] ath10k_pci 0000:03:00.0: unsupported HTC service id: 1536
[   15.096431] ath10k_pci 0000:03:00.0: unsupported HTC service id: 1536

Firstly let me state there have been no end to issues with this adapter lately. You could have many different causes for your problem.

The first thing I would try is, anytime you boot up and Wi-Fi is not working put the computer into suspend. If your Wi-Fi is working after resuming then this is likely a kernel issue.

Unfortunately, testing older kernels with this adapter is complicated by firmware incompatibilities. The older kernels do not work with the newest firmware, so to test older kernels you must rename the newest firmware in /lib/firmware. I would also test out kernel 5 for improvements.

There is also a possibility your manufacturers wmi modules are causing problems from some of your errors. I would need to see a full “lsmod” output to identify any potentially problematic modules. Please post lsmod outputs from when the adapter is properly initialized and when it is not working.

It is also possible that your regulatory domain not being set properly is causing issues. Search “set regdom” for instructions on how to do this.

There is also a Redhat bug report from 5 days ago with very similar symptoms to your issue. The bug report suggests the most recent firmware version can solve the adapter being undetected issue.

Firmware source:

The bug report also suggests setting the regdom as I mentioned earlier.

There are many possibilities to investigate here as it could be any of numerous things causing this. Sorry to say, but this could be a lengthy process to fix this, depending on how good your troubleshooting skills are.

1 Like
iw reg get
global
country GR: DFS-ETSI
	(2402 - 2482 @ 40), (N/A, 20), (N/A)
	(5170 - 5250 @ 80), (N/A, 20), (N/A), AUTO-BW
	(5250 - 5330 @ 80), (N/A, 20), (0 ms), DFS, AUTO-BW
	(5490 - 5710 @ 160), (N/A, 27), (0 ms), DFS
	(57000 - 66000 @ 2160), (N/A, 40), (N/A)

i did set my regdom system-wide but

dmesg | grep ath
[    7.075194] systemd[1]: Reached target Paths.
[   11.256302] ath10k_pci 0000:03:00.0: pci irq msi oper_irq_mode 2 irq_mode 0 reset_mode 0
[   11.604008] ath10k_pci 0000:03:00.0: qca9377 hw1.1 target 0x05020001 chip_id 0x003821ff sub 11ad:08a6
[   11.604011] ath10k_pci 0000:03:00.0: kconfig debug 1 debugfs 1 tracing 1 dfs 0 testmode 0
[   11.604463] ath10k_pci 0000:03:00.0: firmware ver WLAN.TF.2.1-00021-QCARMSWP-1 api 6 features wowlan,ignore-otp crc32 42e41877
[   11.682582] ath10k_pci 0000:03:00.0: board_file api 2 bmi_id N/A crc32 8aedfa4a
[   11.758546] ath10k_pci 0000:03:00.0: unsupported HTC service id: 1536
[   11.777652] 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
[   11.795790] ath: EEPROM regdomain: 0x69
[   11.795792] ath: EEPROM indicates we should expect a direct regpair map
[   11.795794] ath: Country alpha2 being used: 00
[   11.795795] ath: Regpair used: 0x69
[   11.854216] ath10k_pci 0000:03:00.0 wlp3s0: renamed from wlan0
[   16.835156] ath10k_pci 0000:03:00.0: unsupported HTC service id: 1536
[   17.088560] ath10k_pci 0000:03:00.0: unsupported HTC service id: 1536
[   51.433067] ath10k_pci 0000:03:00.0: unsupported HTC service id: 1536

but no change in atheros is there a driver parameter to se this correctlyn in ath10k?

lsmod
Module                  Size  Used by
i2c_hid                32768  0
cmac                   16384  1
ccm                    20480  3
rfcomm                 86016  16
fuse                  131072  3
bnep                   28672  2
nls_iso8859_1          16384  1
nls_cp437              20480  1
vfat                   20480  1
fat                    81920  1 vfat
edac_mce_amd           28672  0
arc4                   16384  2
amdgpu               4022272  12
kvm_amd               106496  0
ccp                    98304  1 kvm_amd
ath10k_pci             61440  0
chash                  16384  1 amdgpu
amd_iommu_v2           20480  1 amdgpu
ath10k_core           552960  1 ath10k_pci
rng_core               16384  1 ccp
kvm                   749568  1 kvm_amd
gpu_sched              36864  1 amdgpu
i2c_algo_bit           16384  1 amdgpu
ath                    36864  1 ath10k_core
ttm                   114688  1 amdgpu
snd_hda_codec_realtek   122880  1
mac80211              950272  1 ath10k_core
snd_hda_codec_generic    90112  1 snd_hda_codec_realtek
snd_hda_codec_hdmi     65536  1
irqbypass              16384  1 kvm
drm_kms_helper        208896  1 amdgpu
ledtrig_audio          16384  2 snd_hda_codec_generic,snd_hda_codec_realtek
btusb                  57344  0
drm                   499712  9 gpu_sched,drm_kms_helper,amdgpu,ttm
snd_hda_intel          45056  4
snd_hda_codec         155648  4 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec_realtek
btrtl                  20480  1 btusb
crct10dif_pclmul       16384  1
btbcm                  16384  1 btusb
crc32_pclmul           16384  0
uvcvideo              114688  0
videobuf2_vmalloc      20480  1 uvcvideo
videobuf2_memops       20480  1 videobuf2_vmalloc
videobuf2_v4l2         28672  1 uvcvideo
videobuf2_common       57344  2 videobuf2_v4l2,uvcvideo
joydev                 28672  0
btintel                28672  1 btusb
ghash_clmulni_intel    16384  0
bluetooth             651264  41 btrtl,btintel,btbcm,bnep,btusb,rfcomm
aesni_intel           372736  4
aes_x86_64             20480  1 aesni_intel
videodev              229376  3 videobuf2_v4l2,uvcvideo,videobuf2_common
agpgart                53248  2 ttm,drm
snd_hda_core           98304  5 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek
ecdh_generic           24576  2 bluetooth
media                  57344  4 videodev,videobuf2_v4l2,uvcvideo,videobuf2_common
crypto_simd            16384  1 aesni_intel
syscopyarea            16384  1 drm_kms_helper
sysfillrect            16384  1 drm_kms_helper
sysimgblt              16384  1 drm_kms_helper
fb_sys_fops            16384  1 drm_kms_helper
crc16                  16384  1 bluetooth
cryptd                 28672  3 crypto_simd,ghash_clmulni_intel,aesni_intel
rtsx_pci_ms            24576  0
snd_hwdep              16384  1 snd_hda_codec
cfg80211              798720  3 ath,mac80211,ath10k_core
hid_multitouch         28672  0
snd_pcm               135168  4 snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_core
mousedev               24576  0
snd_timer              40960  1 snd_pcm
snd                   102400  16 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hwdep,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek,snd_timer,snd_pcm
acer_wmi               28672  0
wmi_bmof               16384  0
sp5100_tco             20480  0
glue_helper            16384  1 aesni_intel
sparse_keymap          16384  1 acer_wmi
input_leds             16384  0
soundcore              16384  1 snd
k10temp                16384  0
pcc_cpufreq            20480  0
battery                24576  0
r8168                 536576  0
memstick               20480  1 rtsx_pci_ms
ac                     16384  0
rfkill                 28672  8 acer_wmi,bluetooth,cfg80211
i2c_piix4              28672  0
acpi_cpufreq           28672  0
wmi                    32768  2 acer_wmi,wmi_bmof
pinctrl_amd            32768  1
acer_wireless          20480  0
evdev                  28672  18
mac_hid                16384  0
pcspkr                 16384  0
uinput                 20480  0
crypto_user            16384  0
ip_tables              32768  0
x_tables               49152  1 ip_tables
btrfs                1384448  2
libcrc32c              16384  1 btrfs
crc32c_generic         16384  0
xor                    24576  1 btrfs
raid6_pq              122880  1 btrfs
sd_mod                 57344  5
hid_generic            16384  0
usbhid                 61440  0
hid                   147456  4 i2c_hid,usbhid,hid_multitouch,hid_generic
rtsx_pci_sdmmc         32768  0
serio_raw              20480  0
mmc_core              176128  1 rtsx_pci_sdmmc
atkbd                  36864  0
libps2                 20480  1 atkbd
ahci                   40960  4
libahci                40960  1 ahci
libata                282624  2 libahci,ahci
scsi_mod              253952  2 sd_mod,libata
xhci_pci               20480  0
xhci_hcd              262144  1 xhci_pci
rtsx_pci               73728  2 rtsx_pci_sdmmc,rtsx_pci_ms
i8042                  32768  1 acer_wmi
serio                  28672  4 serio_raw,atkbd,i8042
crc32c_intel           24576  1

if i try to suspend when the ath10k doesnt work laptop freezes on a black screen.

after playing around with ath10 firmware i realised that 5.0 kernel loads firmware -5.bin instead of firmware-6.bin, why is this happening? Qualcomm Atheros QCA9377 supports firmware-6 on kernels 4.18+

i deleted firmware-5.bin from /lib/firmware/ath10k/QCA9377/hw1.0/ and renamed firmware-6.bin to firmware-5.bin to force load it and wireless seems to work perfectly fine. however this is just a dirty hack sth is wrong with the default manjaro configuration and modern kernels insist on loading firmware-5.bin for Qualcomm Atheros QCA9377.Please manjaro team fix this!!!

force loading firmware6 with kernel 5.0 didnt cut it, i ll test kernel 4.20 for a while and post back

finally fixed it!!!
Regardless of kernel or firmware i added in grub:

ipv6.disable=1

also added in a file ath10k.conf

options ath10k_core skip_otp=y

like you suggested in previous posts and it helped a lot more,but what does this option do really?

most of the problems with this adapter happen at startup,i disabled fast boot(works only with secure boot anyway) in my bios and will see if it helps some more.

ok after a couple of days of painful debugging i managed to completely resolve the issue,solution should work on all problematic acer laptops with atheros wireless chipsets.

OK if you have wireless problems first check your dmesg for errors like these:

[ 21.803636] r8169 0000:02:00.1 enp2s0f1: Link is Down
[ 21.809096] pcieport 0000:00:01.7: AER: Corrected error received: 0000:00:01.0
[ 21.809129] pcieport 0000:00:01.7: PCIe Bus Error: severity=Corrected, type=Data Link Layer, (Receiver ID)
[ 21.809131] pcieport 0000:00:01.7: device [1022:15d3] error status/mask=00000080/00006000
[ 21.809134] pcieport 0000:00:01.7: [ 7] BadDLLP
[ 21.847679] pcieport 0000:00:01.7: AER: Multiple Corrected error received: 0000:00:01.0
[ 21.847710] pcieport 0000:00:01.7: PCIe Bus Error: severity=Corrected, type=Data Link Layer, (Receiver ID)
[ 21.847713] pcieport 0000:00:01.7: device [1022:15d3] error status/mask=00000040/00006000
[ 21.847715] pcieport 0000:00:01.7: [ 6] BadTLP
[ 22.033999] ath10k_pci 0000:03:00.0: unsupported HTC service id: 1536
[ 22.067062] pcieport 0000:00:01.7: AER: Corrected error received: 0000:00:01.0
[ 22.067093] pcieport 0000:00:01.7: PCIe Bus Error: severity=Corrected, type=Data Link Layer, (Receiver ID)
[ 22.067095] pcieport 0000:00:01.7: device [1022:15d3] error status/mask=00000040/00006000
[ 22.067098] pcieport 0000:00:01.7: [ 6] BadTLP
[ 22.100974] pcieport 0000:00:01.7: AER: Corrected error received: 0000:00:01.0
[ 22.101001] pcieport 0000:00:01.7: PCIe Bus Error: severity=Corrected, type=Data Link Layer, (Receiver ID)
[ 22.101003] pcieport 0000:00:01.7: device [1022:15d3] error status/mask=00000040/00006000
[ 22.101013] pcieport 0000:00:01.7: [ 6] BadTLP

         if you get similar errors to mine then add in grub the parameter:

pcie_aspm=off

update grub and reboot now, the errors should be gone and your wireless will work reliably after every reboot.
This parameter disables pcie power saving,ath10k chipsets are of the pcie type and for some reason possibly because of a hardware or a firmware bug they dont work right with pcie power management enabled,at least for now.With this solution you dont have to disable ipv6 or use any other driver options.

Edit: i also checked the impact this parameter has on battery power saving and i only lost 8 minutes (estimated) so no big deal

3 Likes

How did you find out it was loading 5 instead of 6?

Same wireless adapter - I find using one dns server and ignoring all ipv6 is the only thing that consistently sticks, and haven't had issues with running 5.0 kernel since with a noticeable improvement in network performance

pcie_aspm=off solves everything

1 Like

Have you been able to narrow down if pcie_aspm=off is all that's required or if it should also be combined with ath10k.conf edit and ipv6.disable=1 as well?
Because I've added pcie_aspm=off but on its own it does not seem to solve the issue? I still get unsupported HTC service id: 1536 as well as WiFi dropping out...