summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHanumanth Reddy Pothula <c_hpothu@codeaurora.org>2016-12-20 23:35:46 +0530
committerAshish kumar goswami <agoswa@codeaurora.org>2016-12-21 19:26:33 +0530
commit3540b7b77baf62ea17b9f016d0af7dd8997af2ed (patch)
tree8f20d34c5f4b6e720ce2e26cabdb9b13b84a76c2
parentf680b1345146d26bb9a84d9c335b6cb87a7d4351 (diff)
qcacld-2.0: Don't do carrier off on channel avoid indication
Presently, driver is doing carrier off while it is performing SAP restart, this may lead to framework to reload driver, which is not intended. Don't do carrier off in case driver is performing SAP restart, so that framework won't do SAP reload. Change-Id: If1aa6267455b389b3662c049b733430b9e1b716c CRs-Fixed: 1103575
-rw-r--r--CORE/HDD/src/wlan_hdd_hostapd.c14
-rw-r--r--CORE/HDD/src/wlan_hdd_main.c12
2 files changed, 22 insertions, 4 deletions
diff --git a/CORE/HDD/src/wlan_hdd_hostapd.c b/CORE/HDD/src/wlan_hdd_hostapd.c
index 24f3c22f5644..795273400571 100644
--- a/CORE/HDD/src/wlan_hdd_hostapd.c
+++ b/CORE/HDD/src/wlan_hdd_hostapd.c
@@ -2455,7 +2455,19 @@ stopbss :
/* Stop the pkts from n/w stack as we are going to free all of
* the TX WMM queues for all STAID's */
- hdd_hostapd_stop(dev);
+
+ /*
+ * If channel avoidance is in progress means driver is performing SAP
+ * restart. So don't do carrier off, which may lead framework to do
+ * driver reload.
+ */
+ hddLog(LOG1, FL("ch avoid in progress: %d"),
+ pHddCtx->is_ch_avoid_in_progress);
+ if (pHddCtx->is_ch_avoid_in_progress)
+ wlan_hdd_netif_queue_control(pHostapdAdapter, WLAN_NETIF_TX_DISABLE,
+ WLAN_CONTROL_PATH);
+ else
+ hdd_hostapd_stop(dev);
/* reclaim all resources allocated to the BSS */
vos_status = hdd_softap_stop_bss(pHostapdAdapter);
diff --git a/CORE/HDD/src/wlan_hdd_main.c b/CORE/HDD/src/wlan_hdd_main.c
index 14d4c6a51134..4ad7bbd7e3b8 100644
--- a/CORE/HDD/src/wlan_hdd_main.c
+++ b/CORE/HDD/src/wlan_hdd_main.c
@@ -17150,11 +17150,17 @@ void hdd_unsafe_channel_restart_sap(hdd_context_t *hdd_ctx)
NULL,
0);
- hdd_hostapd_stop(adapter->dev);
-
- if (hdd_ctx->cfg_ini->sap_restrt_ch_avoid)
+ hddLog(LOG1, FL("driver to start sap: %d"),
+ hdd_ctx->cfg_ini->sap_restrt_ch_avoid);
+ if (hdd_ctx->cfg_ini->sap_restrt_ch_avoid) {
+ wlan_hdd_netif_queue_control(adapter,
+ WLAN_NETIF_TX_DISABLE,
+ WLAN_CONTROL_PATH);
schedule_work(
&hdd_ctx->sap_start_work);
+ }
+ else
+ hdd_hostapd_stop(adapter->dev);
return;
}