Commit 21b7618b authored by Tamizh chelvam's avatar Tamizh chelvam Committed by Greg Kroah-Hartman

ath10k: fix boot failure in UTF mode/testmode

commit cb428152 upstream.

Rx filter reset and the dynamic tx switch mode (EXT_RESOURCE_CFG)
configuration are causing the following errors when UTF firmware
is loaded to the target.

Error message 1:
[ 598.015629] ath10k_pci 0001:01:00.0: failed to ping firmware: -110
[ 598.020828] ath10k_pci 0001:01:00.0: failed to reset rx filter: -110
[ 598.141556] ath10k_pci 0001:01:00.0: failed to start core (testmode): -110

Error message 2:
[ 668.615839] ath10k_ahb a000000.wifi: failed to send ext resource cfg command : -95
[ 668.618902] ath10k_ahb a000000.wifi: failed to start core (testmode): -95

Avoiding these configurations while bringing the target in
testmode is solving the problem.
Signed-off-by: default avatarTamizh chelvam <c_traja@qti.qualcomm.com>
Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 8fbc1614
...@@ -1913,7 +1913,8 @@ int ath10k_core_start(struct ath10k *ar, enum ath10k_firmware_mode mode, ...@@ -1913,7 +1913,8 @@ int ath10k_core_start(struct ath10k *ar, enum ath10k_firmware_mode mode,
ath10k_dbg(ar, ATH10K_DBG_BOOT, "firmware %s booted\n", ath10k_dbg(ar, ATH10K_DBG_BOOT, "firmware %s booted\n",
ar->hw->wiphy->fw_version); ar->hw->wiphy->fw_version);
if (test_bit(WMI_SERVICE_EXT_RES_CFG_SUPPORT, ar->wmi.svc_map)) { if (test_bit(WMI_SERVICE_EXT_RES_CFG_SUPPORT, ar->wmi.svc_map) &&
mode == ATH10K_FIRMWARE_MODE_NORMAL) {
val = 0; val = 0;
if (ath10k_peer_stats_enabled(ar)) if (ath10k_peer_stats_enabled(ar))
val = WMI_10_4_PEER_STATS; val = WMI_10_4_PEER_STATS;
...@@ -1966,11 +1967,14 @@ int ath10k_core_start(struct ath10k *ar, enum ath10k_firmware_mode mode, ...@@ -1966,11 +1967,14 @@ int ath10k_core_start(struct ath10k *ar, enum ath10k_firmware_mode mode,
* possible to implicitly make it correct by creating a dummy vdev and * possible to implicitly make it correct by creating a dummy vdev and
* then deleting it. * then deleting it.
*/ */
if (mode == ATH10K_FIRMWARE_MODE_NORMAL) {
status = ath10k_core_reset_rx_filter(ar); status = ath10k_core_reset_rx_filter(ar);
if (status) { if (status) {
ath10k_err(ar, "failed to reset rx filter: %d\n", status); ath10k_err(ar,
"failed to reset rx filter: %d\n", status);
goto err_hif_stop; goto err_hif_stop;
} }
}
/* If firmware indicates Full Rx Reorder support it must be used in a /* If firmware indicates Full Rx Reorder support it must be used in a
* slightly different manner. Let HTT code know. * slightly different manner. Let HTT code know.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment