Merge "icnss: Add support to handle SSR within SSR"

This commit is contained in:
Linux Build Service Account 2017-04-28 11:12:24 -07:00 committed by Gerrit - the friendly Code Review server
commit 1d0a503de0

View file

@ -202,6 +202,7 @@ enum icnss_driver_state {
ICNSS_MSA0_ASSIGNED, ICNSS_MSA0_ASSIGNED,
ICNSS_WLFW_EXISTS, ICNSS_WLFW_EXISTS,
ICNSS_WDOG_BITE, ICNSS_WDOG_BITE,
ICNSS_SHUTDOWN_DONE,
}; };
struct ce_irq_list { struct ce_irq_list {
@ -1990,9 +1991,13 @@ static int icnss_call_driver_shutdown(struct icnss_priv *priv)
if (!priv->ops || !priv->ops->shutdown) if (!priv->ops || !priv->ops->shutdown)
goto out; goto out;
if (test_bit(ICNSS_SHUTDOWN_DONE, &penv->state))
goto out;
icnss_pr_dbg("Calling driver shutdown state: 0x%lx\n", priv->state); icnss_pr_dbg("Calling driver shutdown state: 0x%lx\n", priv->state);
priv->ops->shutdown(&priv->pdev->dev); priv->ops->shutdown(&priv->pdev->dev);
set_bit(ICNSS_SHUTDOWN_DONE, &penv->state);
out: out:
return 0; return 0;
@ -2030,6 +2035,7 @@ static int icnss_pd_restart_complete(struct icnss_priv *priv)
} }
out: out:
clear_bit(ICNSS_SHUTDOWN_DONE, &penv->state);
return 0; return 0;
call_probe: call_probe:
@ -3667,6 +3673,9 @@ static int icnss_stats_show_state(struct seq_file *s, struct icnss_priv *priv)
case ICNSS_WDOG_BITE: case ICNSS_WDOG_BITE:
seq_puts(s, "MODEM WDOG BITE"); seq_puts(s, "MODEM WDOG BITE");
continue; continue;
case ICNSS_SHUTDOWN_DONE:
seq_puts(s, "SHUTDOWN DONE");
continue;
} }
seq_printf(s, "UNKNOWN-%d", i); seq_printf(s, "UNKNOWN-%d", i);