diff options
author | Linux Build Service Account <lnxbuild@localhost> | 2016-10-06 01:07:03 -0700 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2016-10-06 01:07:03 -0700 |
commit | ab2db18addfa20beb00eb1b6662a923434502ac2 (patch) | |
tree | 6eb52bbe973ed01a5ec02dd067b52e5891c6ef8f | |
parent | 9033361e55f97c2f411d10cfec5fee09d772d56a (diff) | |
parent | 71adcb319662d07e713f29e016ab823709ebfce8 (diff) |
Merge "icnss: Ignore PD down if WLAN FW doesn't exists"
-rw-r--r-- | drivers/soc/qcom/icnss.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/soc/qcom/icnss.c b/drivers/soc/qcom/icnss.c index 1feb7fcce48f..999e6f93e873 100644 --- a/drivers/soc/qcom/icnss.c +++ b/drivers/soc/qcom/icnss.c @@ -298,6 +298,7 @@ enum icnss_driver_state { ICNSS_PDR_ENABLED, ICNSS_PD_RESTART, ICNSS_MSA0_ASSIGNED, + ICNSS_WLFW_EXISTS, }; struct ce_irq_list { @@ -2218,6 +2219,8 @@ static int icnss_driver_event_server_arrive(void *data) if (!penv) return -ENODEV; + set_bit(ICNSS_WLFW_EXISTS, &penv->state); + penv->wlfw_clnt = qmi_handle_create(icnss_qmi_wlfw_clnt_notify, penv); if (!penv->wlfw_clnt) { icnss_pr_err("QMI client handle create failed\n"); @@ -2516,6 +2519,9 @@ static int icnss_driver_event_pd_service_down(struct icnss_priv *priv, int ret = 0; struct icnss_event_pd_service_down_data *event_data = data; + if (!test_bit(ICNSS_WLFW_EXISTS, &priv->state)) + return 0; + if (test_bit(ICNSS_PD_RESTART, &priv->state)) { icnss_pr_err("PD Down while recovery inprogress, crashed: %d, state: 0x%lx\n", event_data->crashed, priv->state); @@ -3836,6 +3842,8 @@ static int icnss_stats_show_state(struct seq_file *s, struct icnss_priv *priv) case ICNSS_MSA0_ASSIGNED: seq_puts(s, "MSA0 ASSIGNED"); continue; + case ICNSS_WLFW_EXISTS: + continue; } seq_printf(s, "UNKNOWN-%d", i); |