| From d79749f7716d9dc32fa2d5075f6ec29aac63c76d Mon Sep 17 00:00:00 2001 |
| From: Miaoqing Pan <miaoqing@codeaurora.org> |
| Date: Thu, 29 Aug 2019 10:45:12 +0800 |
| Subject: ath10k: fix latency issue for QCA988x |
| |
| From: Miaoqing Pan <miaoqing@codeaurora.org> |
| |
| commit d79749f7716d9dc32fa2d5075f6ec29aac63c76d upstream. |
| |
| (kvalo: cherry picked from commit 1340cc631bd00431e2f174525c971f119df9efa1 in |
| wireless-drivers-next to wireless-drivers as this a frequently reported |
| regression) |
| |
| 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> |
| Signed-off-by: Kalle Valo <kvalo@codeaurora.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.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 |
| @@ -2118,12 +2118,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; |