alistair23-linux/drivers/net/wireless/ath/ath10k
Rajkumar Manoharan 0628467f97 ath10k: fix copy engine 5 destination ring stuck
Firmware is running watchdog timer for tracking copy engine ring index
and write index. Whenever both indices are stuck at same location for
given duration, watchdog will be trigger to assert target. While
updating copy engine destination ring write index, driver ensures that
write index will not be same as read index by finding delta between these
two indices (CE_RING_DELTA).

HTT target to host copy engine (CE5) is special case where ring buffers
will be reused and delta check is not applied while updating write index.
In rare scenario, whenever CE5 ring is full, both indices will be referring
same location and this is causing CE ring stuck issue as explained
above. This issue is originally reported on IPQ4019 during long hour stress
testing and during veriwave max clients testsuites. The same issue is
also observed in other chips as well. Fix this by ensuring that write
index is one less than read index which means that full ring is
available for receiving data.

Cc: stable@vger.kernel.org
Tested-by: Tamizh chelvam <c_traja@qti.qualcomm.com>
Signed-off-by: Rajkumar Manoharan <rmanohar@qti.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
2016-09-28 12:48:35 +03:00
..
ahb.c ath10k: fix error return code in ahb 2016-09-28 12:41:04 +03:00
ahb.h ath10k: expose hif ops for ahb 2016-01-28 10:47:28 +02:00
bmi.c ath10k: hide kernel addresses from logs using %pK format specifier 2016-09-02 18:29:31 +03:00
bmi.h ath10k: select board data based on BMI chip id and board id 2015-10-14 08:58:35 +03:00
ce.c ath10k: fix copy engine 5 destination ring stuck 2016-09-28 12:48:35 +03:00
ce.h ath10k: fix checkpatch warnings related to spaces 2016-04-14 17:30:51 +03:00
core.c ath10k: support up to 64 vdevs 2016-09-27 15:18:33 +03:00
core.h ath10k: document cycle count related counters 2016-09-27 15:18:29 +03:00
debug.c ath10k: Added support for extended dbglog module id for 10.4 2016-09-02 18:55:55 +03:00
debug.h ath10k: add support for ath10k_sta_statistics support 2016-07-08 09:37:47 +03:00
debugfs_sta.c ath10k: remove debugfs support for Per STA total rx duration 2016-07-08 09:37:51 +03:00
hif.h ath10k: add board data download from target 2016-06-07 14:28:35 +03:00
htc.c ath10k: hide kernel addresses from logs using %pK format specifier 2016-09-02 18:29:31 +03:00
htc.h ath10k: remove unused <linux/semaphore.h> 2016-07-08 09:43:59 +03:00
htt.c ath10k: move htt_op_version to struct ath10k_fw_file 2016-04-20 20:00:27 +03:00
htt.h ath10k: spelling and miscellaneous neatening 2016-09-27 15:00:48 +03:00
htt_rx.c ath10k: fix rfc1042 header retrieval in QCA4019 with eth decap mode 2016-09-27 15:15:51 +03:00
htt_tx.c ath10k: implement NAPI support 2016-09-09 14:49:47 +03:00
hw.c ath10k: spelling and miscellaneous neatening 2016-09-27 15:00:48 +03:00
hw.h ath10k: fix rfc1042 header retrieval in QCA4019 with eth decap mode 2016-09-27 15:15:51 +03:00
Kconfig ath10k: add reset ctrl related functions in ahb 2016-01-28 10:47:24 +02:00
mac.c ath10k: fix typo in logging message 2016-09-27 15:18:24 +03:00
mac.h ath10k: add dynamic tx mode switch config support for qca4019 2016-04-19 18:10:46 +03:00
Makefile ath10k: add basic skeleton to support ahb 2016-01-28 10:47:19 +02:00
p2p.c
p2p.h
pci.c ath10k: remove unused variable ar_pci 2016-09-13 15:25:09 +03:00
pci.h ath10k: implement NAPI support 2016-09-09 14:49:47 +03:00
rx_desc.h ath10k: remove duplicate and unused rx rate flags 2016-06-14 14:56:00 +03:00
spectral.c ath10k: fix some typo in spectral code commments 2016-06-30 14:04:52 +03:00
spectral.h ath10k: refactor phyerr event handlers 2015-08-17 17:43:29 +03:00
swap.c ath10k: move firmware_swap_code_seg_info to ath10k_fw_file 2016-08-31 10:18:37 +03:00
swap.h ath10k: move firmware_swap_code_seg_info to ath10k_fw_file 2016-08-31 10:18:37 +03:00
targaddrs.h ath10k: spelling and miscellaneous neatening 2016-09-27 15:00:48 +03:00
testmode.c ath10k: hide kernel addresses from logs using %pK format specifier 2016-09-02 18:29:31 +03:00
testmode.h
testmode_i.h
thermal.c ath10k: replace config_enabled() with IS_REACHABLE() 2016-09-02 18:57:06 +03:00
thermal.h ath10k: fix checkpatch warnings related to spaces 2016-04-14 17:30:51 +03:00
trace.c
trace.h ath10k: add hw_rev to trace events to support pktlog 2016-03-03 19:20:00 +02:00
txrx.c ath10k: fix throughput regression in multi client mode 2016-09-09 15:07:11 +03:00
txrx.h ath10k: move mgmt descriptor limit handle under mgmt_tx 2016-03-18 09:52:27 +02:00
wmi-ops.h ath10k: Added support for extended dbglog module id for 10.4 2016-09-02 18:55:55 +03:00
wmi-tlv.c ath10k: Added support for extended dbglog module id for 10.4 2016-09-02 18:55:55 +03:00
wmi-tlv.h ath10k: fix checkpatch warnings related to spaces 2016-04-14 17:30:51 +03:00
wmi.c ath10k: Ignore SWBA event for a vif if its marked for no beacon 2016-09-28 12:47:14 +03:00
wmi.h ath10k: document cycle count related counters 2016-09-27 15:18:29 +03:00
wow.c ath10k: move fw_features to struct ath10k_fw_file 2016-04-20 20:00:25 +03:00
wow.h