From 49609806bc118a1e2af2962e721e5b50ad668335 Mon Sep 17 00:00:00 2001 From: Anurag Chouhan Date: Mon, 13 Mar 2017 18:51:11 +0530 Subject: [PATCH] icnss: Fix condition for trigger recovery With the change 'commit 443b19badd47 ("icnss: Trigger recovery only if PDR enabled")', wrong condition used to check if PD restart not enabled. Correct the condition before sending PD restart request. Change-Id: I0729cebeb42d2c2b8e68f210ee9065f71a30cfad CRs-fixed: 2018631 Signed-off-by: Anurag Chouhan --- drivers/soc/qcom/icnss.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/drivers/soc/qcom/icnss.c b/drivers/soc/qcom/icnss.c index 2fcd1a4c636c..958221f0a325 100644 --- a/drivers/soc/qcom/icnss.c +++ b/drivers/soc/qcom/icnss.c @@ -2517,7 +2517,7 @@ static int icnss_pd_restart_enable(struct icnss_priv *priv) return 0; out: - icnss_pr_err("PD restart not enabled: %d\n", ret); + icnss_pr_err("Failed to enable PD restart: %d\n", ret); return ret; } @@ -3130,22 +3130,23 @@ int icnss_trigger_recovery(struct device *dev) goto out; } - if (test_bit(ICNSS_PDR_ENABLED, &priv->state)) { - icnss_pr_err("PD restart not enabled: state: 0x%lx\n", + if (!test_bit(ICNSS_PDR_ENABLED, &priv->state)) { + icnss_pr_err("PD restart not enabled to trigger recovery: state: 0x%lx\n", priv->state); ret = -EOPNOTSUPP; goto out; } - if (!priv->service_notifier[0].handle) { + if (!priv->service_notifier || !priv->service_notifier[0].handle) { icnss_pr_err("Invalid handle during recovery, state: 0x%lx\n", priv->state); ret = -EINVAL; goto out; } - icnss_pr_dbg("Initiate PD restart at WLAN FW, state: 0x%lx\n", - priv->state); + WARN_ON(1); + icnss_pr_warn("Initiate PD restart at WLAN FW, state: 0x%lx\n", + priv->state); priv->stats.trigger_recovery++; /* @@ -3343,6 +3344,7 @@ static int icnss_fw_debug_show(struct seq_file *s, void *data) seq_puts(s, " VAL: 0 (Test mode disable)\n"); seq_puts(s, " VAL: 1 (WLAN FW test)\n"); seq_puts(s, " VAL: 2 (CCPM test)\n"); + seq_puts(s, " VAL: 3 (Trigger Recovery)\n"); seq_puts(s, "\nCMD: dynamic_feature_mask\n"); seq_puts(s, " VAL: (64 bit feature mask)\n");