mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2025-01-13 09:15:02 +08:00
ath10k: sdio: workaround firmware UART pin configuration bug
On QCA6174 SDIO devices the SDIO interrupt will fail if UART is disabled from ath10k. SDIO firmware enables UART printouts by default. If ath10k will try to enable UART again the firmware will configure it's GPIO line incorrectly and SDIO interrupts won't work anymore. The workaround is to set UART pin again (19 for QCA6174 SDIO) if uart_print is 0. Tested with QCA6174 SDIO with firmware WLAN.RMH.4.4.1-00007-QCARMSWP-1. Signed-off-by: Wen Gong <wgong@codeaurora.org> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
This commit is contained in:
parent
db5e323feb
commit
4504f0e5b5
@ -2065,8 +2065,16 @@ static int ath10k_init_uart(struct ath10k *ar)
|
||||
return ret;
|
||||
}
|
||||
|
||||
if (!uart_print)
|
||||
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;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
ret = ath10k_bmi_write32(ar, hi_dbg_uart_txpin, ar->hw_params.uart_pin);
|
||||
if (ret) {
|
||||
|
@ -606,6 +606,11 @@ struct ath10k_hw_params {
|
||||
|
||||
/* target supporting fw download via diag ce */
|
||||
bool fw_diag_ce_download;
|
||||
|
||||
/* need to set uart pin if disable uart print, workaround for a
|
||||
* firmware bug
|
||||
*/
|
||||
bool uart_pin_workaround;
|
||||
};
|
||||
|
||||
struct htt_rx_desc;
|
||||
|
Loading…
Reference in New Issue
Block a user