mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-01-16 03:46:19 +07:00
ath10k: start recovery process when read int status fail for sdio
When running simulate crash stress test, it happened "failed to read from address 0x800: -110". Test steps: 1. Run command continuous echo soft > /sys/kernel/debug/ieee80211/phy0/ath10k/simulate_fw_crash 2. error happened and it did not begin recovery for long time. [74377.334846] ath10k_sdio mmc1:0001:1: simulating soft firmware crash [74378.378217] ath10k_sdio mmc1:0001:1: failed to read from address 0x800: -110 [74378.378371] ath10k_sdio mmc1:0001:1: failed to process pending SDIO interrupts: -110 It has sdio errors since it can not read MBOX_HOST_INT_STATUS_ADDRESS, then it has to do recovery process to recovery ath10k. Tested with QCA6174 SDIO with firmware WLAN.RMH.4.4.1-00042. Signed-off-by: Wen Gong <wgong@codeaurora.org> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
This commit is contained in:
parent
6e51b0e491
commit
37b7ecb756
@ -953,8 +953,11 @@ static int ath10k_sdio_mbox_read_int_status(struct ath10k *ar,
|
||||
*/
|
||||
ret = ath10k_sdio_read(ar, MBOX_HOST_INT_STATUS_ADDRESS,
|
||||
irq_proc_reg, sizeof(*irq_proc_reg));
|
||||
if (ret)
|
||||
if (ret) {
|
||||
queue_work(ar->workqueue, &ar->restart_work);
|
||||
ath10k_warn(ar, "read int status fail, start recovery\n");
|
||||
goto out;
|
||||
}
|
||||
|
||||
/* Update only those registers that are enabled */
|
||||
*host_int_status = irq_proc_reg->host_int_status &
|
||||
|
Loading…
Reference in New Issue
Block a user