Merge "icnss: Delay Shutdown/reinit sequence for all cases"

This commit is contained in:
Linux Build Service Account 2017-08-08 09:02:10 -07:00 committed by Gerrit - the friendly Code Review server
commit 6757ffb0b5

View file

@ -266,7 +266,6 @@ struct icnss_msa_perm_list_t msa_perm_list[ICNSS_MSA_PERM_MAX] = {
struct icnss_event_pd_service_down_data {
bool crashed;
bool fw_rejuvenate;
bool wdog_bite;
};
struct icnss_driver_event {
@ -291,7 +290,6 @@ enum icnss_driver_state {
ICNSS_PD_RESTART,
ICNSS_MSA0_ASSIGNED,
ICNSS_WLFW_EXISTS,
ICNSS_WDOG_BITE,
ICNSS_SHUTDOWN_DONE,
ICNSS_HOST_TRIGGERED_PDR,
};
@ -2149,10 +2147,7 @@ static int icnss_pd_restart_complete(struct icnss_priv *priv)
icnss_pm_relax(priv);
if (test_bit(ICNSS_WDOG_BITE, &priv->state)) {
icnss_call_driver_shutdown(priv);
clear_bit(ICNSS_WDOG_BITE, &priv->state);
}
icnss_call_driver_shutdown(priv);
clear_bit(ICNSS_PD_RESTART, &priv->state);
@ -2302,8 +2297,7 @@ static int icnss_call_driver_remove(struct icnss_priv *priv)
static int icnss_fw_crashed(struct icnss_priv *priv,
struct icnss_event_pd_service_down_data *event_data)
{
icnss_pr_dbg("FW crashed, state: 0x%lx, wdog_bite: %d\n",
priv->state, event_data->wdog_bite);
icnss_pr_dbg("FW crashed, state: 0x%lx\n", priv->state);
set_bit(ICNSS_PD_RESTART, &priv->state);
clear_bit(ICNSS_FW_READY, &priv->state);
@ -2313,17 +2307,9 @@ static int icnss_fw_crashed(struct icnss_priv *priv,
if (test_bit(ICNSS_DRIVER_PROBED, &priv->state))
icnss_call_driver_uevent(priv, ICNSS_UEVENT_FW_CRASHED, NULL);
if (event_data->wdog_bite) {
set_bit(ICNSS_WDOG_BITE, &priv->state);
goto out;
}
icnss_call_driver_shutdown(priv);
if (event_data->fw_rejuvenate)
wlfw_rejuvenate_ack_send_sync_msg(priv);
out:
return 0;
}
@ -2520,9 +2506,6 @@ static int icnss_modem_notifier_nb(struct notifier_block *nb,
event_data->crashed = notif->crashed;
if (notif->crashed == CRASH_STATUS_WDOG_BITE)
event_data->wdog_bite = true;
fw_down_data.crashed = !!notif->crashed;
icnss_call_driver_uevent(priv, ICNSS_UEVENT_FW_DOWN, &fw_down_data);
@ -2612,7 +2595,6 @@ static int icnss_service_notifier_notify(struct notifier_block *nb,
switch (*state) {
case ROOT_PD_WDOG_BITE:
event_data->wdog_bite = true;
priv->stats.recovery.root_pd_crash++;
break;
case ROOT_PD_SHUTDOWN:
@ -3832,9 +3814,6 @@ static int icnss_stats_show_state(struct seq_file *s, struct icnss_priv *priv)
case ICNSS_WLFW_EXISTS:
seq_puts(s, "WLAN FW EXISTS");
continue;
case ICNSS_WDOG_BITE:
seq_puts(s, "MODEM WDOG BITE");
continue;
case ICNSS_SHUTDOWN_DONE:
seq_puts(s, "SHUTDOWN DONE");
continue;