Bug 1257500 - Qualcomm Atheros QCA6164 not working
Summary: Qualcomm Atheros QCA6164 not working
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: kernel
Version: 23
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Kernel Maintainer List
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
: 1257499 (view as bug list)
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2015-08-27 08:25 UTC by Susi Lehtola
Modified: 2016-07-13 03:18 UTC (History)
14 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2016-07-13 03:18:02 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)
dmesg output (64.90 KB, text/plain)
2015-08-28 01:29 UTC, Susi Lehtola
no flags Details
lshw output (20.11 KB, text/plain)
2015-08-28 01:30 UTC, Susi Lehtola
no flags Details
Quasiworking patch to kernel-4.1.6-200 (3.95 KB, patch)
2015-09-02 17:04 UTC, Susi Lehtola
no flags Details | Diff

Description Susi Lehtola 2015-08-27 08:25:24 UTC
I just got a new Lenovo U31 laptop for work, and was surprised to see that WiFi was not working out of the box.

The laptop has a 168c:0041 wlan card, which looks like a Qualcomm Atheros QCA6164 chipset.

The posting
 https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1436940/comments/26
leads me to believe a driver exists in the 4.2-rc series, and would only need to be backported into the F22 kernel.

As of now, dmesg does not containg any strings containing anything to do with ath(eros) or wlan.

Comment 1 Josh Boyer 2015-08-27 12:58:54 UTC
*** Bug 1257499 has been marked as a duplicate of this bug. ***

Comment 2 Josh Boyer 2015-08-27 19:22:15 UTC
The change in question is already in the 4.1.6 kernel, which is already available in Fedora 22.  If you load the module with skip_otp=y set, does it work with 4.1.6?

Comment 3 Susi Lehtola 2015-08-28 01:29:19 UTC
Hm, that doesn't even seem to be the issue. Still nothing after adding

$ cat /etc/modprobe.d/ath10k.conf 
options ath10k_core skip_otp=y

and reboot.


$ iwconfig
enp2s0    no wireless extensions.

virbr0-nic  no wireless extensions.

virbr0    no wireless extensions.

lo        no wireless extensions.

$ rfkill  list
0: ideapad_wlan: Wireless LAN
	Soft blocked: no
	Hard blocked: no
1: ideapad_bluetooth: Bluetooth
	Soft blocked: no
	Hard blocked: no
2: hci0: Bluetooth
	Soft blocked: no
	Hard blocked: no

Comment 4 Susi Lehtola 2015-08-28 01:29:53 UTC
Created attachment 1067886 [details]
dmesg output

Comment 5 Susi Lehtola 2015-08-28 01:30:14 UTC
Created attachment 1067887 [details]
lshw output

Comment 6 Susi Lehtola 2015-08-28 01:30:59 UTC
$ lspci -nn
00:00.0 Host bridge [0600]: Intel Corporation Broadwell-U Host Bridge -OPI [8086:1604] (rev 09)
00:02.0 VGA compatible controller [0300]: Intel Corporation Broadwell-U Integrated Graphics [8086:1616] (rev 09)
00:03.0 Audio device [0403]: Intel Corporation Broadwell-U Audio Controller [8086:160c] (rev 09)
00:14.0 USB controller [0c03]: Intel Corporation Wildcat Point-LP USB xHCI Controller [8086:9cb1] (rev 03)
00:16.0 Communication controller [0780]: Intel Corporation Wildcat Point-LP MEI Controller #1 [8086:9cba] (rev 03)
00:1b.0 Audio device [0403]: Intel Corporation Wildcat Point-LP High Definition Audio Controller [8086:9ca0] (rev 03)
00:1c.0 PCI bridge [0604]: Intel Corporation Wildcat Point-LP PCI Express Root Port #1 [8086:9c90] (rev e3)
00:1c.2 PCI bridge [0604]: Intel Corporation Wildcat Point-LP PCI Express Root Port #3 [8086:9c94] (rev e3)
00:1c.3 PCI bridge [0604]: Intel Corporation Wildcat Point-LP PCI Express Root Port #4 [8086:9c96] (rev e3)
00:1d.0 USB controller [0c03]: Intel Corporation Wildcat Point-LP USB EHCI Controller [8086:9ca6] (rev 03)
00:1f.0 ISA bridge [0601]: Intel Corporation Wildcat Point-LP LPC Controller [8086:9cc3] (rev 03)
00:1f.2 SATA controller [0106]: Intel Corporation Wildcat Point-LP SATA Controller [AHCI Mode] [8086:9c83] (rev 03)
00:1f.3 SMBus [0c05]: Intel Corporation Wildcat Point-LP SMBus Controller [8086:9ca2] (rev 03)
02:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 15)
03:00.0 Network controller [0280]: Qualcomm Atheros Device [168c:0041] (rev 20)

Comment 7 Susi Lehtola 2015-08-28 01:35:10 UTC
Also doesn't work with kernel-4.2.0-0.rc6.git0.2.fc23.x86_64.

Comment 8 Susi Lehtola 2015-09-01 21:23:53 UTC
So the problem is that the patch that introduces the support for this specific card

https://github.com/kvalo/ath/commit/36582e5d4daeccf68a8a3cef9bc37b60fb7d45b9

is still not in the kernel, even in 4.2-rc8.

Comment 10 Laura Abbott 2015-09-01 23:08:46 UTC
Thanks for doing the research. I'm guessing it was scheduled for 4.3 instead of 4.2 which is why it didn't get pulled. If you verify that the patch actually works we can make a decision about pulling this in.

Comment 11 Susi Lehtola 2015-09-01 23:24:34 UTC
I'm not sure how to do that since that patch would also need a more up-to-date ath10k tree.

Comment 12 Laura Abbott 2015-09-02 00:04:25 UTC
I'm missing something: what does the ath10k tree need? Is there something else in the ath10k tree that isn't present in linux-next?

Comment 13 Susi Lehtola 2015-09-02 03:01:47 UTC
I mean the patch against the drivers/net/wireless/ath/ath10k/ directory is based on a more recent version of the kernel than the 4.1 series.

I'll check if I can draft up a minimal patch along the lines of the ubuntu ticket.

Comment 14 Susi Lehtola 2015-09-02 17:04:36 UTC
Created attachment 1069561 [details]
Quasiworking patch to kernel-4.1.6-200

With this patch the kernel sees the card, but I haven't been able to get it to work yet due to firmware trouble.

Comment 15 Susi Lehtola 2015-09-02 17:46:16 UTC
So, installing the firmware as guided in
 https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1436940/comments/39
 https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1436940/comments/40

didn't yet yield success. dmesg from the patched kernel gives

[ 2520.459854] ath10k_pci 0000:03:00.0: Direct firmware load for ath10k/cal-pci-0000:03:00.0.bin failed with error -2
[ 2521.604247] ath10k_pci 0000:03:00.0: firmware crashed! (uuid 067189e6-3aa7-421e-a659-9e0b9246fa65)
[ 2521.604257] ath10k_pci 0000:03:00.0: qca6174 hw2.1 (0x05010000, 0x003405ff) fw atheros-12.0.0.102-fw api 4 htt 0.0 wmi 4 cal otp max_sta 32
[ 2521.604260] ath10k_pci 0000:03:00.0: debug 0 debugfs 1 tracing 0 dfs 0 testmode 0

The ubuntu thread at
 https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1436940/comments/44
suggests that it works in kernel 4.1.0 but failed to work in 4.2... so maybe something in 4.1.6 is not compatible?

Comment 16 Susi Lehtola 2015-09-10 01:01:49 UTC
Well, I grabbed a snapshot of linux-next, compiled and installed it, and the card works perfectly.

In case anyone else wants to replicate my success, here's what you need to do.

1. Get the kernel development tree, linux-next with
$ git clone git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git

2. Grab the Fedora kernel config that matches your machine from 
 http://pkgs.fedoraproject.org/cgit/kernel.git/tree/
which is 99% likely config-x86_64-generic.

3. Copy the config obtained in step 2 to linux-next/.config

4. Configure the development kernel with
$ cd linux-next
$ make oldconfig
(I just pressed enter in all the queries to choose the default values)

5. Build the kernel
$ make -j $(/usr/bin/getconf _NPROCESSORS_ONLN)

5. Continue from step 5 with the directions at
 http://radek.io/2012/02/12/custom-kernel-on-fedora/
but add a "sudo" to every command.

**

In addition you need the firmware to get the card to work.

Just grab the board.bin and firmware-5.bin files from

https://github.com/atondwal/ath10k-firmware/commit/88fca85ef59d708b9874e5b7885416b58aef9ee7

and install them into /lib/firmware/ath10k/QCA6174/hw2.1/


Boot into the new kernel, and the card should work flawlessly.

Comment 17 Susi Lehtola 2015-09-10 01:03:20 UTC
I have no idea why the firmware doesn't load with the 4.1 series kernel, and don't have the time to dig out how the firmware insertion works.

If someone here has time to look at it, I'll gladly test a patched kernel.

Comment 18 Susi Lehtola 2015-09-10 01:25:17 UTC
I'm only seeing a 1Mbps connection, though, even with the linux-next kernel.

Comment 19 Susi Lehtola 2015-09-17 17:48:09 UTC
Works with 4.3.0-0.rc1.git0.1.fc22.x86_64 kernel.

The connection speed is actually not a problem, it is just reported incorrectly by NetworkManager.

Comment 20 Justin M. Forbes 2015-10-20 19:43:56 UTC
*********** MASS BUG UPDATE **************

We apologize for the inconvenience.  There is a large number of bugs to go through and several of them have gone stale.  Due to this, we are doing a mass bug update across all of the Fedora 22 kernel bugs.

Fedora 22 has now been rebased to 4.2.3-200.fc22.  Please test this kernel update (or newer) and let us know if you issue has been resolved or if it is still present with the newer kernel.

If you have moved on to Fedora 23, and are still experiencing this issue, please change the version to Fedora 23.

If you experience different issues, please open a new bug report for those.

Comment 21 Susi Lehtola 2015-11-04 16:01:30 UTC
Bug persists on Fedora 23 as well, just need the update to kernel 4.3 (and the firmware).

Comment 22 g. artim 2015-11-21 00:27:00 UTC
fc23 4.2.6-300.fc23.x86_64, destop edition, firmware crash after coming out of suspend on cafe network:

[root@enzlaptop gartim]# cat wifi_crash.txt 
Nov 20 06:47:32 enzlaptop kernel: wlp1s0: RX AssocResp from 8a:15:14:b1:bf:e0 (capab=0x1101 status=0 aid=1)
Nov 20 06:47:32 enzlaptop kernel: ath10k_pci 0000:01:00.0: firmware crashed! (uuid 71c60df3-8ded-415c-9b79-76a3374a54f0)
Nov 20 06:47:32 enzlaptop kernel: ath10k_pci 0000:01:00.0: qca6174 hw2.1 (0x05010000, 0x003405ff, 168c:003e:144d:4125 fallback) fw WLAN.RM.1.1-00141 api 5 htt 3.1 wmi 4 cal otp max_sta 32
Nov 20 06:47:32 enzlaptop kernel: ath10k_pci 0000:01:00.0: debug 0 debugfs 1 tracing 0 dfs 0 testmode 0
Nov 20 06:47:32 enzlaptop kernel: ath10k_pci 0000:01:00.0: firmware register dump:
Nov 20 06:47:32 enzlaptop kernel: ath10k_pci 0000:01:00.0: [00]: 0x05010000 0x000015B3 0x00939797 0x00955B31
Nov 20 06:47:32 enzlaptop kernel: ath10k_pci 0000:01:00.0: [04]: 0x00939797 0x00060330 0x00000000 0x00000000
Nov 20 06:47:32 enzlaptop kernel: ath10k_pci 0000:01:00.0: [08]: 0x00413980 0x0000FFFF 0x00000000 0x00000000
Nov 20 06:47:32 enzlaptop kernel: ath10k_pci 0000:01:00.0: [12]: 0x00000009 0xFFFFFFFF 0x0096C09C 0x0096C0A7
Nov 20 06:47:32 enzlaptop kernel: ath10k_pci 0000:01:00.0: [16]: 0x0096BDBC 0x009287BD 0x00000000 0x009287BD
Nov 20 06:47:32 enzlaptop kernel: ath10k_pci 0000:01:00.0: [20]: 0x40939797 0x0041A700 0x00407124 0x00000000
Nov 20 06:47:32 enzlaptop kernel: ath10k_pci 0000:01:00.0: [24]: 0x8093D6C4 0x0041A760 0x004059D0 0xC0939797
Nov 20 06:47:32 enzlaptop kernel: ath10k_pci 0000:01:00.0: [28]: 0x8094777F 0x0041A780 0x0046D5D8 0x00000001
Nov 20 06:47:32 enzlaptop kernel: ath10k_pci 0000:01:00.0: [32]: 0x800AA427 0x0041A7B0 0x0046D5D8 0x00000001
Nov 20 06:47:32 enzlaptop kernel: ath10k_pci 0000:01:00.0: [36]: 0x800AA58E 0x0041A7D0 0x00424824 0x00000001
Nov 20 06:47:32 enzlaptop kernel: ath10k_pci 0000:01:00.0: [40]: 0x80994D90 0x0041A7F0 0x00424824 0x0041A838
Nov 20 06:47:32 enzlaptop kernel: ath10k_pci 0000:01:00.0: [44]: 0x80996DC6 0x0041A820 0x0046F888 0x00412984
Nov 20 06:47:32 enzlaptop kernel: ath10k_pci 0000:01:00.0: [48]: 0x800B43F5 0x0041A860 0x004222F8 0x00005008
Nov 20 06:47:32 enzlaptop kernel: ath10k_pci 0000:01:00.0: [52]: 0x809A6ACC 0x0041A8F0 0x0042930C 0x0042CA00
Nov 20 06:47:32 enzlaptop kernel: ath10k_pci 0000:01:00.0: [56]: 0x809A6120 0x0041A930 0x0041A958 0x00427110
Nov 20 06:47:32 enzlaptop NetworkManager[702]: <info>  (wlp1s0): supplicant interface state: authenticating -> associating
Nov 20 06:47:32 enzlaptop kernel: ath10k_pci 0000:01:00.0: failed to poke peer 8a:15:14:b1:bf:e0 param for ps workaround on vdev 0: -108
Nov 20 06:47:32 enzlaptop kernel: wlp1s0: associated

01:00.0 Network controller: Qualcomm Atheros QCA6174 802.11ac Wireless Network Adapter (rev 20)
	Subsystem: Samsung Electronics Co Ltd Device 4125
	Flags: bus master, fast devsel, latency 0, IRQ 48
	Memory at f7000000 (64-bit, non-prefetchable) [size=2M]
	Capabilities: <access denied>
	Kernel driver in use: ath10k_pci
	Kernel modules: ath10k_pci

want me to provide more...working clean at home, but dont see the N sid, just the G sid.

Comment 23 Susi Lehtola 2015-11-21 20:26:48 UTC
(In reply to g. artim from comment #22)
> fc23 4.2.6-300.fc23.x86_64, destop edition, firmware crash after coming out
> of suspend on cafe network:

Please don't hijack this bug. This is QC6164, not QCA6174.

Comment 24 g. artim 2015-11-21 20:34:32 UTC
sorry about that!

Comment 25 Susi Lehtola 2016-01-10 21:21:11 UTC
OK, works with kernel-4.3.3-200.fc23 which is currently in updates-testing.

Still need to manually replace the firware as in comment #16, though...

Comment 26 Daniel Lehrner 2016-01-13 08:19:20 UTC
Even with the latest kernel and manually replacing the firmware, it's still not working for me (Lenovo U31-70).

Comment 27 Yuan 2016-01-14 20:14:47 UTC
One Failed Case after following procedure updated on Jan 10, 2016 ;

http://paste.fedoraproject.org/310947/14528024

[root@mypc ~]# modprobe  ath10k_pci
[root@mypc ~]# dmesg 
[  578.424257] ath10k_pci 0000:03:00.0: pci irq msi-x interrupts 8 irq_mode 0 reset_mode 0
[  578.625658] ath10k_pci 0000:03:00.0: Direct firmware load for ath10k/cal-pci-0000:03:00.0.bin failed with error -2
[  578.625673] ath10k_pci 0000:03:00.0: Direct firmware load for ath10k/QCA6174/hw2.1/board-pci-168c:0041:17aa:3545.bin failed with error -2
[  578.625675] ath10k_pci 0000:03:00.0: failed to load spec board file, falling back to generic: -2
[  578.704754] ath10k_pci 0000:03:00.0: otp calibration failed: 3
[  578.704758] ath10k_pci 0000:03:00.0: failed to run otp: -22
[  578.704759] ath10k_pci 0000:03:00.0: could not init core (-22)
[  578.704786] ath10k_pci 0000:03:00.0: could not probe fw (-22)
[root@mypc ~]# cd /lib/firmware/ath10k/QCA6174/hw2.1/
[root@mypc hw2.1]# md5sum *.bin
e6adc90ecaf55edc656990c6c50193ac  board.bin
efdc519119f49892e16053bc5db47436  firmware-5.bin
[root@mypc hw2.1]#

Comment 28 Richard Ryniker 2016-01-17 17:33:01 UTC
I am pleased to report the QCA6164 device in my Lenovo Yoga 3 11-inch
laptop works well with the current 4.3.3-300.fc23.x86_64 kernel, after
the firmware.bin and board.bin files referenced in Comment #16 are
installed and /etc/modprobe.d/ath10k_core.conf is created with:

options ath10k_core skip_otp=y

More work may be needed to package the necessary parts so that
different hardware configurations work "out of the box" but it is
good to have an easy formula to get the native wifi hardware in
this platform to operate.

Comment 29 Daniel Lehrner 2016-01-17 17:57:56 UTC
(In reply to Richard Ryniker from comment #28)
> I am pleased to report the QCA6164 device in my Lenovo Yoga 3 11-inch
> laptop works well with the current 4.3.3-300.fc23.x86_64 kernel, after
> the firmware.bin and board.bin files referenced in Comment #16 are
> installed and /etc/modprobe.d/ath10k_core.conf is created with:
> 
> options ath10k_core skip_otp=y
> 
> More work may be needed to package the necessary parts so that
> different hardware configurations work "out of the box" but it is
> good to have an easy formula to get the native wifi hardware in
> this platform to operate.

Thank you very much! It works for me as well on my Lenovo U31-70. Creating ath10k_core.conf did the trick for me.

Comment 30 Daniel Lehrner 2016-03-02 09:07:42 UTC
The wifi card stopped working for me since the update to kernel-4.3.5-300.fc23. The recent version kernel-4.4.2-301.fc23 has the same problem.

Comment 31 Yuan 2016-03-02 09:35:24 UTC
4.3.5-300 worked for me as of UTC 0100 hrs, 2nd March 2016 

- Fedora23 x64
- This firmware failed at first ;
[root@mypc hw2.1]# md5sum *.bin
e6adc90ecaf55edc656990c6c50193ac  board.bin
efdc519119f49892e16053bc5db47436  firmware-5.bin
[root@mypc hw2.1]#

Can you please post ;
- md5sum /lib/firmware/ath10/QCA6174/hw2.1/*.bin
- cat /etc/selinux/config
- ls -Z /etc/modprobe.d/ath10k_core.conf
- ls -Z /lib/firmware/ath10/QCA6174/hw2.1/*.bin

This means I have to avoid updates at all costs now.

Comment 32 Daniel Lehrner 2016-03-02 10:06:17 UTC
I don't have a folder /lib/firmware/ath10/ but I have the folder /lib/firmware/ath10k/

md5sum /lib/firmware/ath10k/QCA6174/hw2.1/*.bin:
461e7f4b2f32f1c4ef50d26f76b715eb  /lib/firmware/ath10k/QCA6174/hw2.1/board.bin
8f5303e4b1afc818798425a700139133  /lib/firmware/ath10k/QCA6174/hw2.1/firmware-5.bin

cat /etc/selinux/config:
SELINUX=enforcing
SELINUXTYPE=targeted

ls -Z /etc/modprobe.d/ath10k_core.conf:
unconfined_u:object_r:modules_conf_t:s0 /etc/modprobe.d/ath10k_core.conf

ls -Z /lib/firmware/ath10k/QCA6174/hw2.1/*.bin:
system_u:object_r:lib_t:s0 /lib/firmware/ath10k/QCA6174/hw2.1/board.bin  system_u:object_r:lib_t:s0 /lib/firmware/ath10k/QCA6174/hw2.1/firmware-5.bin

Comment 33 Yuan 2016-03-02 11:05:12 UTC
I am not an expert. Will wait to learn. But ;
(1) My md5sums are different

board.bin = e6adc90ecaf55edc656990c6c50193ac
firmware-5.bin = efdc519119f49892e16053bc5db4743

(2) My ath10k_core.conf also has systerm_u

Comment 34 Yuan 2016-03-02 11:09:02 UTC
and I can confirm that i have default/old firmware files matching your md5sum ;

$ md5 board.bin 
MD5 (board.bin) = 461e7f4b2f32f1c4ef50d26f76b715eb
$ md5 firmware-5.bin 
MD5 (firmware-5.bin) = 8f5303e4b1afc818798425a700139133

Comment 35 Daniel Lehrner 2016-03-02 11:48:00 UTC
@Yuan Thank you for your help! I have now downloaded board.bin and firmware-5.bin from here:

https://github.com/atondwal/ath10k-firmware/tree/master/ath10k/QCA6164/hw2.1

And they seem to be the same as you have. After replacing them with the ones in /lib/firmware/ath10k/QCA6174/hw2.1/ and a restart, the wifi card is now working again.

Comment 36 Yuan 2016-03-02 12:05:11 UTC
Not me.
Problem solved by Comment #16.
Cheers.

Comment 37 Josh Boyer 2016-03-02 14:27:27 UTC
I've pinged the upstream firmware maintainer to see if there are plans to update the ath10k firmware in the linux-firmware repository soon.

Comment 38 Errorist 2016-06-08 03:55:44 UTC
Can i get it to work with CentOS 7?
sorry newbie to linux..

Comment 39 Susi Lehtola 2016-07-13 03:18:02 UTC
Works out of the box in Fedora 24.


Note You need to log in before you can comment on or make changes to this bug.