| From 02d82120636b1d85d6fc2543874395ef7163a000 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Tue, 14 Jan 2020 12:35:21 +0800 |
| Subject: Revert "ath10k: fix DMA related firmware crashes on multiple devices" |
| |
| From: Zhi Chen <zhichen@codeaurora.org> |
| |
| [ Upstream commit a1769bb68a850508a492e3674ab1e5e479b11254 ] |
| |
| This reverts commit 76d164f582150fd0259ec0fcbc485470bcd8033e. |
| PCIe hung issue was observed on multiple platforms. The issue was reproduced |
| when DUT was configured as AP and associated with 50+ STAs. |
| |
| For QCA9984/QCA9888, the DMA_BURST_SIZE register controls the AXI burst size |
| of the RD/WR access to the HOST MEM. |
| 0 - No split , RAW read/write transfer size from MAC is put out on bus |
| as burst length |
| 1 - Split at 256 byte boundary |
| 2,3 - Reserved |
| |
| With PCIe protocol analyzer, we can see DMA Read crossing 4KB boundary when |
| issue happened. It broke PCIe spec and caused PCIe stuck. So revert |
| the default value from 0 to 1. |
| |
| Tested: IPQ8064 + QCA9984 with firmware 10.4-3.10-00047 |
| QCS404 + QCA9984 with firmware 10.4-3.9.0.2--00044 |
| Synaptics AS370 + QCA9888 with firmware 10.4-3.9.0.2--00040 |
| |
| Signed-off-by: Zhi Chen <zhichen@codeaurora.org> |
| Signed-off-by: Kalle Valo <kvalo@codeaurora.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/net/wireless/ath/ath10k/hw.h | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| diff --git a/drivers/net/wireless/ath/ath10k/hw.h b/drivers/net/wireless/ath/ath10k/hw.h |
| index 6038b7486f1db..e04e0260035ad 100644 |
| --- a/drivers/net/wireless/ath/ath10k/hw.h |
| +++ b/drivers/net/wireless/ath/ath10k/hw.h |
| @@ -558,7 +558,7 @@ ath10k_rx_desc_get_l3_pad_bytes(struct ath10k_hw_params *hw, |
| |
| #define TARGET_10_4_TX_DBG_LOG_SIZE 1024 |
| #define TARGET_10_4_NUM_WDS_ENTRIES 32 |
| -#define TARGET_10_4_DMA_BURST_SIZE 0 |
| +#define TARGET_10_4_DMA_BURST_SIZE 1 |
| #define TARGET_10_4_MAC_AGGR_DELIM 0 |
| #define TARGET_10_4_RX_SKIP_DEFRAG_TIMEOUT_DUP_DETECTION_CHECK 1 |
| #define TARGET_10_4_VOW_CONFIG 0 |
| -- |
| 2.25.1 |
| |