mirror_ubuntu-kernels/drivers/net/wireless/ath/ath10k
Miaoqing Pan 08d80e4cd2 ath10k: fix fw crash by moving chip reset after napi disabled
On SMP platform, when continuously running wifi up/down, the napi
poll can be scheduled during chip reset, which will call
ath10k_pci_has_fw_crashed() to check the fw status. But in the reset
period, the value from FW_INDICATOR_ADDRESS register will return
0xdeadbeef, which also be treated as fw crash. Fix the issue by
moving chip reset after napi disabled.

ath10k_pci 0000:01:00.0: firmware crashed! (guid 73b30611-5b1e-4bdd-90b4-64c81eb947b6)
ath10k_pci 0000:01:00.0: qca9984/qca9994 hw1.0 target 0x01000000 chip_id 0x00000000 sub 168c:cafe
ath10k_pci 0000:01:00.0: htt-ver 2.2 wmi-op 6 htt-op 4 cal otp max-sta 512 raw 0 hwcrypto 1
ath10k_pci 0000:01:00.0: failed to get memcpy hi address for firmware address 4: -16
ath10k_pci 0000:01:00.0: failed to read firmware dump area: -16
ath10k_pci 0000:01:00.0: Copy Engine register dump:
ath10k_pci 0000:01:00.0: [00]: 0x0004a000   0   0   0   0
ath10k_pci 0000:01:00.0: [01]: 0x0004a400   0   0   0   0
ath10k_pci 0000:01:00.0: [02]: 0x0004a800   0   0   0   0
ath10k_pci 0000:01:00.0: [03]: 0x0004ac00   0   0   0   0
ath10k_pci 0000:01:00.0: [04]: 0x0004b000   0   0   0   0
ath10k_pci 0000:01:00.0: [05]: 0x0004b400   0   0   0   0
ath10k_pci 0000:01:00.0: [06]: 0x0004b800   0   0   0   0
ath10k_pci 0000:01:00.0: [07]: 0x0004bc00   1   0   1   0
ath10k_pci 0000:01:00.0: [08]: 0x0004c000   0   0   0   0
ath10k_pci 0000:01:00.0: [09]: 0x0004c400   0   0   0   0
ath10k_pci 0000:01:00.0: [10]: 0x0004c800   0   0   0   0
ath10k_pci 0000:01:00.0: [11]: 0x0004cc00   0   0   0   0

Tested HW: QCA9984,QCA9887,WCN3990

Signed-off-by: Miaoqing Pan <miaoqing@codeaurora.org>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2019-06-25 15:59:25 +03:00
..
ahb.c ath10k: initialise struct ath10k_bus params to zero 2019-04-23 16:23:54 +03:00
ahb.h ath10k: switch to use SPDX license identifiers 2019-02-20 10:33:00 +02:00
bmi.c ath10k: switch to use SPDX license identifiers 2019-02-20 10:33:00 +02:00
bmi.h ath10k: switch to use SPDX license identifiers 2019-02-20 10:33:00 +02:00
ce.c ath10k: perform crash dump collection in workqueue 2019-04-29 17:24:37 +03:00
ce.h ath10k: fix descriptor size in ce tx completion for WCN3990 2019-02-26 14:56:19 +02:00
core.c ath10k: enabling tx stats support over pktlog 2019-06-25 15:56:13 +03:00
core.h Merge ath-next from git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git 2019-05-27 15:15:29 +03:00
coredump.c Merge ath-next from git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git 2019-05-27 15:15:29 +03:00
coredump.h ath10k: switch to use SPDX license identifiers 2019-02-20 10:33:00 +02:00
debug.c ath10k: Add wrapper function to ath10k debug 2019-06-25 15:48:47 +03:00
debug.h ath10k: Add wrapper function to ath10k debug 2019-06-25 15:48:47 +03:00
debugfs_sta.c ath10k: Check tx_stats before use it 2019-05-07 17:03:47 +03:00
hif.h ath10k: switch to use SPDX license identifiers 2019-02-20 10:33:00 +02:00
htc.c ath10k: add initialization of HTC header 2019-04-23 16:26:09 +03:00
htc.h ath10k: switch to use SPDX license identifiers 2019-02-20 10:33:00 +02:00
htt_rx.c ath10k: acquire lock to fix lockdep's warning 2019-06-25 15:55:03 +03:00
htt_tx.c ath10k: add htt_h2t_aggr_cfg_msg op for high latency devices 2019-06-25 15:47:24 +03:00
htt.c ath10k: add inline wrapper for htt_h2t_aggr_cfg_msg 2019-06-25 15:47:15 +03:00
htt.h ath10k: add inline wrapper for htt_h2t_aggr_cfg_msg 2019-06-25 15:47:15 +03:00
hw.c ath10k: add support for ack rssi value of data tx packets 2019-02-26 14:58:06 +02:00
hw.h ath10k: enabling tx stats support over pktlog 2019-06-25 15:56:13 +03:00
Kconfig treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
mac.c ath10k: enabling tx stats support over pktlog 2019-06-25 15:56:13 +03:00
mac.h ath10k: switch to use SPDX license identifiers 2019-02-20 10:33:00 +02:00
Makefile ath10k: switch to use SPDX license identifiers 2019-02-20 10:33:00 +02:00
p2p.c ath10k: switch to use SPDX license identifiers 2019-02-20 10:33:00 +02:00
p2p.h ath10k: switch to use SPDX license identifiers 2019-02-20 10:33:00 +02:00
pci.c ath10k: fix fw crash by moving chip reset after napi disabled 2019-06-25 15:59:25 +03:00
pci.h ath10k: perform crash dump collection in workqueue 2019-04-29 17:24:37 +03:00
qmi_wlfw_v01.c ath10k: switch to use SPDX license identifiers 2019-02-20 10:33:00 +02:00
qmi_wlfw_v01.h ath10k: switch to use SPDX license identifiers 2019-02-20 10:33:00 +02:00
qmi.c ath10k: Move board id and fw version logging to info level 2019-05-07 16:38:37 +03:00
qmi.h ath10k: switch to use SPDX license identifiers 2019-02-20 10:33:00 +02:00
rx_desc.h ath10k: switch to use SPDX license identifiers 2019-02-20 10:33:00 +02:00
sdio.c ath10k: add missing error handling 2019-06-25 15:58:23 +03:00
sdio.h ath10k: switch to use SPDX license identifiers 2019-02-20 10:33:00 +02:00
snoc.c ath10k: Modify CE4 src buffer entries to 2048 for WCN3990 2019-05-07 16:39:28 +03:00
snoc.h ath10k: switch to use SPDX license identifiers 2019-02-20 10:33:00 +02:00
spectral.c ath10k: switch to use SPDX license identifiers 2019-02-20 10:33:00 +02:00
spectral.h ath10k: switch to use SPDX license identifiers 2019-02-20 10:33:00 +02:00
swap.c ath10k: switch to use SPDX license identifiers 2019-02-20 10:33:00 +02:00
swap.h ath10k: switch to use SPDX license identifiers 2019-02-20 10:33:00 +02:00
targaddrs.h ath10k: switch to use SPDX license identifiers 2019-02-20 10:33:00 +02:00
testmode_i.h ath10k: switch to use SPDX license identifiers 2019-02-20 10:33:00 +02:00
testmode.c ath10k: change firmware file name for UTF mode of SDIO/USB 2019-06-25 15:53:41 +03:00
testmode.h ath10k: switch to use SPDX license identifiers 2019-02-20 10:33:00 +02:00
thermal.c ath10k: switch to use SPDX license identifiers 2019-02-20 10:33:00 +02:00
thermal.h ath10k: switch to use SPDX license identifiers 2019-02-20 10:33:00 +02:00
trace.c ath10k: Add wrapper function to ath10k debug 2019-06-25 15:48:47 +03:00
trace.h ath10k: Add wrapper function to ath10k debug 2019-06-25 15:48:47 +03:00
txrx.c ath10k: add peer id check in ath10k_peer_find_by_id 2019-05-07 17:02:26 +03:00
txrx.h ath10k: switch to use SPDX license identifiers 2019-02-20 10:33:00 +02:00
usb.c ath10k: initialise struct ath10k_bus params to zero 2019-04-23 16:23:54 +03:00
usb.h ath10k: switch to use SPDX license identifiers 2019-02-20 10:33:00 +02:00
wmi-ops.h ath10k: switch to use SPDX license identifiers 2019-02-20 10:33:00 +02:00
wmi-tlv.c ath10k: Add wmi tlv vdev subtype for mesh in WCN3990 2019-05-07 17:01:20 +03:00
wmi-tlv.h ath10k: Add wmi tlv service map for mesh 11s 2019-05-07 17:01:39 +03:00
wmi.c ath10k: rx_duration update for fw_stats debugfs entry 2019-05-07 16:44:13 +03:00
wmi.h ath10k: Fix the wrong value of enums for wmi tlv stats id 2019-05-07 16:54:04 +03:00
wow.c ath10k: switch to use SPDX license identifiers 2019-02-20 10:33:00 +02:00
wow.h ath10k: switch to use SPDX license identifiers 2019-02-20 10:33:00 +02:00