wil6210: Do no schedule firmware recovery during reset flow
During reset flow, ignore firmware errors detected prior to the actual hardware reset as the recovery flow would make additional unnecessary reset. Signed-off-by: Hamad Kadmany <qca_hkadmany@qca.qualcomm.com> Signed-off-by: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
This commit is contained in:
parent
7dc47258a0
commit
f13e063082
|
@ -767,6 +767,8 @@ int wil_reset(struct wil6210_priv *wil, bool load_fw)
|
||||||
if (wil->hw_version == HW_VER_UNKNOWN)
|
if (wil->hw_version == HW_VER_UNKNOWN)
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
|
|
||||||
|
set_bit(wil_status_resetting, wil->status);
|
||||||
|
|
||||||
cancel_work_sync(&wil->disconnect_worker);
|
cancel_work_sync(&wil->disconnect_worker);
|
||||||
wil6210_disconnect(wil, NULL, WLAN_REASON_DEAUTH_LEAVING, false);
|
wil6210_disconnect(wil, NULL, WLAN_REASON_DEAUTH_LEAVING, false);
|
||||||
wil_bcast_fini(wil);
|
wil_bcast_fini(wil);
|
||||||
|
@ -853,6 +855,12 @@ int wil_reset(struct wil6210_priv *wil, bool load_fw)
|
||||||
void wil_fw_error_recovery(struct wil6210_priv *wil)
|
void wil_fw_error_recovery(struct wil6210_priv *wil)
|
||||||
{
|
{
|
||||||
wil_dbg_misc(wil, "starting fw error recovery\n");
|
wil_dbg_misc(wil, "starting fw error recovery\n");
|
||||||
|
|
||||||
|
if (test_bit(wil_status_resetting, wil->status)) {
|
||||||
|
wil_info(wil, "Reset already in progress\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
wil->recovery_state = fw_recovery_pending;
|
wil->recovery_state = fw_recovery_pending;
|
||||||
schedule_work(&wil->fw_error_worker);
|
schedule_work(&wil->fw_error_worker);
|
||||||
}
|
}
|
||||||
|
|
|
@ -409,6 +409,7 @@ enum { /* for wil6210_priv.status */
|
||||||
wil_status_reset_done,
|
wil_status_reset_done,
|
||||||
wil_status_irqen, /* FIXME: interrupts enabled - for debug */
|
wil_status_irqen, /* FIXME: interrupts enabled - for debug */
|
||||||
wil_status_napi_en, /* NAPI enabled protected by wil->mutex */
|
wil_status_napi_en, /* NAPI enabled protected by wil->mutex */
|
||||||
|
wil_status_resetting, /* reset in progress */
|
||||||
wil_status_last /* keep last */
|
wil_status_last /* keep last */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue