Bug 195487

Summary: Suspend hang, power LED remains lit.
Product: Drivers Reporter: Paul Ausbeck (paula)
Component: network-wirelessAssignee: drivers_network-wireless (drivers_network-wireless)
Status: NEW ---    
Severity: normal    
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 4.9.0-2-amd64 Subsystem:
Regression: No Bisected commit-id:

Description Paul Ausbeck 2017-04-21 23:10:05 UTC
I boot Debian Stretch on my Samsung Ativ Book 9 Ultrabook, Intel Core M-5y31 CPU. When I suspend the machine, the display turns off and the touchpad and keyboard become unresponsive, but the power LED remains on. From this state, the machine does not resume when the power button is pressed. The power button must be pressed and held for 10 seconds to recover the machine via a power-on reset.

This is a regression of sorts between kernel versions 4.9.0-1-amd64 and 4.9.0-2-amd64. I say of sorts, because the suspend hang that happens every time with kernel 4.9.0-2-amd64 happens every other time with kernel 4.9.0-1-amd64. I must go back to kernel version 4.8.0-2-amd64 to recover reliable suspend/resume.

The reason that I am filing this bug against the wireless networking driver is that if I keep the ath10k_pci driver from loading via a fake modprobe.d install directive, then suspend, and resume, work fine.

Below are ath10k messages extracted from a dmesg log containing a v4.8.0-2-amd suspend/resume cycle, including a firmware crash. I don't have any hard data for the v4.9x kernel, as the hang precludes obtaining a dmesg log.

[    2.088870] ath10k_pci 0000:01:00.0: enabling device (0000 -> 0002)
[    2.090907] ath10k_pci 0000:01:00.0: pci irq msi oper_irq_mode 2 irq_mode 0 reset_mode 0
[    2.379920] ath10k_pci 0000:01:00.0: firmware: failed to load ath10k/pre-cal-pci-0000:01:00.0.bin (-2)
[    2.379922] ath10k_pci 0000:01:00.0: Direct firmware load for ath10k/pre-cal-pci-0000:01:00.0.bin failed with error -2
[    2.379932] ath10k_pci 0000:01:00.0: firmware: failed to load ath10k/cal-pci-0000:01:00.0.bin (-2)
[    2.379933] ath10k_pci 0000:01:00.0: Direct firmware load for ath10k/cal-pci-0000:01:00.0.bin failed with error -2
[    2.381499] ath10k_pci 0000:01:00.0: firmware: direct-loading firmware ath10k/QCA6174/hw2.1/firmware-5.bin
[    2.381508] ath10k_pci 0000:01:00.0: qca6174 hw2.1 target 0x05010000 chip_id 0x003405ff sub 144d:4125
[    2.381510] ath10k_pci 0000:01:00.0: kconfig debug 0 debugfs 0 tracing 0 dfs 0 testmode 0
[    2.382220] ath10k_pci 0000:01:00.0: firmware ver SW_RM.1.1.1-00157-QCARMSWPZ-1 api 5 features ignore-otp,no-4addr-pad crc32 10bf8e08
[    2.446305] ath10k_pci 0000:01:00.0: firmware: direct-loading firmware ath10k/QCA6174/hw2.1/board-2.bin
[    2.446858] ath10k_pci 0000:01:00.0: board_file api 2 bmi_id N/A crc32 ae2e275a
[    3.666261] ath10k_pci 0000:01:00.0: htt-ver 3.1 wmi-op 4 htt-op 3 cal otp max-sta 32 raw 0 hwcrypto 1
[    3.760456] ath10k_pci 0000:01:00.0 wlp1s0: renamed from wlan0
[   11.505920] ath10k_pci 0000:01:00.0 wlp1s0: disabling HT as WMM/QoS is not supported by the AP
[   11.505925] ath10k_pci 0000:01:00.0 wlp1s0: disabling VHT as WMM/QoS is not supported by the AP
[   23.369777] ath10k_pci 0000:01:00.0: firmware crashed! (uuid n/a)
[   23.369784] ath10k_pci 0000:01:00.0: qca6174 hw2.1 target 0x05010000 chip_id 0x003405ff sub 144d:4125
[   23.369787] ath10k_pci 0000:01:00.0: kconfig debug 0 debugfs 0 tracing 0 dfs 0 testmode 0
[   23.370801] ath10k_pci 0000:01:00.0: firmware ver SW_RM.1.1.1-00157-QCARMSWPZ-1 api 5 features ignore-otp,no-4addr-pad crc32 10bf8e08
[   23.371332] ath10k_pci 0000:01:00.0: board_file api 2 bmi_id N/A crc32 ae2e275a
[   23.371336] ath10k_pci 0000:01:00.0: htt-ver 3.1 wmi-op 4 htt-op 3 cal otp max-sta 32 raw 0 hwcrypto 1
[   23.373476] ath10k_pci 0000:01:00.0: firmware register dump:
[   23.373478] ath10k_pci 0000:01:00.0: [00]: 0x05010000 0x00000000 0x0092E4DC 0xC94D83D9
[   23.373479] ath10k_pci 0000:01:00.0: [04]: 0x0092E4DC 0x00060130 0x00000018 0x0041A760
[   23.373480] ath10k_pci 0000:01:00.0: [08]: 0xC94D83C5 0x00400000 0x00000000 0x000A5C88
[   23.373481] ath10k_pci 0000:01:00.0: [12]: 0x00000009 0x00000000 0x0096C09C 0x0096C0A7
[   23.373481] ath10k_pci 0000:01:00.0: [16]: 0x0096BDBC 0x009286B6 0x00000000 0x009287BD
[   23.373482] ath10k_pci 0000:01:00.0: [20]: 0x4092E4DC 0x0041A710 0x00000000 0x0F000000
[   23.373483] ath10k_pci 0000:01:00.0: [24]: 0x809432A7 0x0041A770 0x0040D400 0xC092E4DC
[   23.373484] ath10k_pci 0000:01:00.0: [28]: 0x80942BC4 0x0041A790 0xC94D83C5 0x00400000
[   23.373485] ath10k_pci 0000:01:00.0: [32]: 0x80947BA7 0x0041A7B0 0x00404F18 0x00413980
[   23.373486] ath10k_pci 0000:01:00.0: [36]: 0x809BDECC 0x0041A7D0 0x00404F18 0x00413980
[   23.373487] ath10k_pci 0000:01:00.0: [40]: 0x8099638C 0x0041A7F0 0x00404F18 0x00000000
[   23.373488] ath10k_pci 0000:01:00.0: [44]: 0x80992076 0x0041A810 0x004084F0 0x00405244
[   23.373489] ath10k_pci 0000:01:00.0: [48]: 0x80996BD3 0x0041A830 0x004084F0 0x00000000
[   23.373490] ath10k_pci 0000:01:00.0: [52]: 0x800B4405 0x0041A850 0x00422318 0x00005002
[   23.373490] ath10k_pci 0000:01:00.0: [56]: 0x809A6C34 0x0041A8E0 0x0042932C 0x0042CA44
[   23.373528] ath10k_pci 0000:01:00.0: failed to delete WMI vdev 1: -108
[   23.373538] ath10k_pci 0000:01:00.0: could not suspend target (-108)
[   23.452427] ath10k_pci 0000:01:00.0: cannot restart a device that hasn't been started
[   26.418514] ath10k_pci 0000:01:00.0: no channel configured; ignoring frame(s)!
[   31.287162] ath10k_pci 0000:01:00.0 wlp1s0: disabling HT as WMM/QoS is not supported by the AP
[   31.287164] ath10k_pci 0000:01:00.0 wlp1s0: disabling VHT as WMM/QoS is not supported by the AP
Comment 1 Paul Ausbeck 2018-12-06 18:38:16 UTC
I recently re-tested the Samsung Ativ Book 9 with Debian Stretch, backports kernel 4.18, and the latest ath10k firmware. Suspend/Resume is still non-functional. With the above configuration, suspend hangs before the power LED turns off. Resume is not possible, a hard power-off is necessary to recover the machine. If the ath10k_pci driver is first unloaded, then suspend/resume works correctly. I strongly suspect the ath10k driver is to blame for the suspend instability.

I've opened the Ativ9 case to examine the possibility of replacing the Atheros WiFi subsystem. However the WiFi components are soldered to the main system motherboard.

In my personal opinion, the ath10k linux driver/firmware is not ready for prime time. I would guess with the Qualcomm purchase of Atheros not much can be expected in the way of future linux driver support. Further, I am disappointed that the Samsung Ativ9 WiFi components are not replaceable. Just to mention it as well, the Ativ9 DRAM is also soldered to the motherboard and not upgradeable/replaceble.

I would not recommend the Samsung Ativ Book 9 as a linux laptop. Also, I would do due linux diligence before future purchase of a consumer focused Ultrabook. Further, due to the I2C connected touchpad, the Ativ9 is not useable with Windows 7. Further, under Windows 10, the Ativ9 draws more idle power with the display off than with the display on.

In the current commercial climate, for serious work I recommend used purchase only. Wait for the price to be low enough that a machine can be purchased for experiment and written off if the annoyances are too much. Machines aren't getting much better year to year so what's the hurry?