diff options
author | David Bauer <mail@david-bauer.net> | 2019-10-04 22:28:15 +0200 |
---|---|---|
committer | David Bauer <mail@david-bauer.net> | 2019-10-06 21:28:49 +0200 |
commit | 97c37f8dd067fd4750a64bcaa639e6d08462060d (patch) | |
tree | acb0625e1af066a75c0ccb3e175b7e79fe71983e /package/kernel/mac80211/patches | |
parent | 34e2526f9fcc4d528a65d264775e989425eb253c (diff) | |
download | upstream-97c37f8dd067fd4750a64bcaa639e6d08462060d.tar.gz upstream-97c37f8dd067fd4750a64bcaa639e6d08462060d.tar.bz2 upstream-97c37f8dd067fd4750a64bcaa639e6d08462060d.zip |
mac80211: ath10k: fix latency issue for QCA988x
This backport fixes high latency (>100ms) on the WiFi link when using a
QCA988x Wave 1 radio. The ath10k-ct driver is not affected by this bug
from my testing, hence why it hasn't been discovered earlier.
Signed-off-by: David Bauer <mail@david-bauer.net>
Diffstat (limited to 'package/kernel/mac80211/patches')
-rw-r--r-- | package/kernel/mac80211/patches/ath/982-ath10k-fix-latency-issue-for-QCA988x.patch | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/package/kernel/mac80211/patches/ath/982-ath10k-fix-latency-issue-for-QCA988x.patch b/package/kernel/mac80211/patches/ath/982-ath10k-fix-latency-issue-for-QCA988x.patch new file mode 100644 index 0000000000..3702abb412 --- /dev/null +++ b/package/kernel/mac80211/patches/ath/982-ath10k-fix-latency-issue-for-QCA988x.patch @@ -0,0 +1,42 @@ +From: Miaoqing Pan <miaoqing@codeaurora.org> +Subject: [PATCH] ath10k: fix latency issue for QCA988x +Date: Thu, 29 Aug 2019 10:45:12 +0800 + +Bad latency is found on QCA988x, the issue was introduced by +commit 4504f0e5b571 ("ath10k: sdio: workaround firmware UART +pin configuration bug"). If uart_pin_workaround is false, this +change will set uart pin even if uart_print is false. + +Tested HW: QCA9880 +Tested FW: 10.2.4-1.0-00037 + +Fixes: 4504f0e5b571 ("ath10k: sdio: workaround firmware UART pin configuration bug") +Signed-off-by: Miaoqing Pan <miaoqing@codeaurora.org> +--- + drivers/net/wireless/ath/ath10k/core.c | 15 +++++++++------ + 1 file changed, 9 insertions(+), 6 deletions(-) + +--- a/drivers/net/wireless/ath/ath10k/core.c ++++ b/drivers/net/wireless/ath/ath10k/core.c +@@ -2124,12 +2124,15 @@ static int ath10k_init_uart(struct ath10 + return ret; + } + +- if (!uart_print && ar->hw_params.uart_pin_workaround) { +- ret = ath10k_bmi_write32(ar, hi_dbg_uart_txpin, +- ar->hw_params.uart_pin); +- if (ret) { +- ath10k_warn(ar, "failed to set UART TX pin: %d", ret); +- return ret; ++ if (!uart_print) { ++ if (ar->hw_params.uart_pin_workaround) { ++ ret = ath10k_bmi_write32(ar, hi_dbg_uart_txpin, ++ ar->hw_params.uart_pin); ++ if (ret) { ++ ath10k_warn(ar, "failed to set UART TX pin: %d", ++ ret); ++ return ret; ++ } + } + + return 0; |