summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2016-10-06 01:07:03 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2016-10-06 01:07:03 -0700
commitab2db18addfa20beb00eb1b6662a923434502ac2 (patch)
tree6eb52bbe973ed01a5ec02dd067b52e5891c6ef8f
parent9033361e55f97c2f411d10cfec5fee09d772d56a (diff)
parent71adcb319662d07e713f29e016ab823709ebfce8 (diff)
Merge "icnss: Ignore PD down if WLAN FW doesn't exists"
-rw-r--r--drivers/soc/qcom/icnss.c8
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);