ath10k: fix hw reconfig on wow failure
When WoWLAN resume fails with retval 1 mac80211 will attempt to reconfig the device in a similar manner when hw restart is requested. This wasn't handled properly and yielded call trace warnings and the device ended up not working. Signed-off-by: Michal Kazior <michal.kazior@tieto.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
This commit is contained in:
Родитель
84e3df60f0
Коммит
6f7429c29b
|
@ -301,8 +301,26 @@ int ath10k_wow_op_resume(struct ieee80211_hw *hw)
|
|||
ath10k_warn(ar, "failed to wakeup from wow: %d\n", ret);
|
||||
|
||||
exit:
|
||||
if (ret) {
|
||||
switch (ar->state) {
|
||||
case ATH10K_STATE_ON:
|
||||
ar->state = ATH10K_STATE_RESTARTING;
|
||||
ret = 1;
|
||||
break;
|
||||
case ATH10K_STATE_OFF:
|
||||
case ATH10K_STATE_RESTARTING:
|
||||
case ATH10K_STATE_RESTARTED:
|
||||
case ATH10K_STATE_UTF:
|
||||
case ATH10K_STATE_WEDGED:
|
||||
ath10k_warn(ar, "encountered unexpected device state %d on resume, cannot recover\n",
|
||||
ar->state);
|
||||
ret = -EIO;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
mutex_unlock(&ar->conf_mutex);
|
||||
return ret ? 1 : 0;
|
||||
return ret;
|
||||
}
|
||||
|
||||
int ath10k_wow_init(struct ath10k *ar)
|
||||
|
|
Загрузка…
Ссылка в новой задаче