From 0c89a0b5b2e67cdcdaaf6131174812301102a689 Mon Sep 17 00:00:00 2001 From: Anurag Chouhan Date: Fri, 19 Jan 2018 15:59:25 +0530 Subject: icnss: Avoid qmi exchange when fw is down Currently wlan Host driver call exported API's which invoke qmi exchanges irrespective of the firmware status which leads to QMI timeouts. To address this issue avoid sending qmi request to firmware when firmware is down. CRs-Fixed: 2175302 Change-Id: Ie5e340cebf7ee7f6143472e7dca0dfd9600d1b7d Signed-off-by: Anurag Chouhan --- drivers/soc/qcom/icnss.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/drivers/soc/qcom/icnss.c b/drivers/soc/qcom/icnss.c index 7f71824d9548..543eeaa1e7df 100644 --- a/drivers/soc/qcom/icnss.c +++ b/drivers/soc/qcom/icnss.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2015-2017, The Linux Foundation. All rights reserved. +/* Copyright (c) 2015-2018, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and @@ -3073,6 +3073,12 @@ int icnss_set_fw_log_mode(struct device *dev, uint8_t fw_log_mode) if (!dev) return -ENODEV; + if (test_bit(ICNSS_FW_DOWN, &penv->state)) { + icnss_pr_err("FW down, ignoring fw_log_mode state: 0x%lx\n", + penv->state); + return -EINVAL; + } + icnss_pr_dbg("FW log mode: %u\n", fw_log_mode); ret = wlfw_ini_send_sync_msg(fw_log_mode); @@ -3166,6 +3172,12 @@ int icnss_wlan_enable(struct device *dev, struct icnss_wlan_enable_cfg *config, if (!dev) return -ENODEV; + if (test_bit(ICNSS_FW_DOWN, &penv->state)) { + icnss_pr_err("FW down, ignoring wlan_enable state: 0x%lx\n", + penv->state); + return -EINVAL; + } + icnss_pr_dbg("Mode: %d, config: %p, host_version: %s\n", mode, config, host_version); -- cgit v1.2.3