summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbings <bings@codeaurora.org>2016-12-26 17:28:57 +0800
committerAshish kumar goswami <agoswa@codeaurora.org>2017-01-04 15:50:07 +0530
commitffbb3cd77c790e797d14cfbabfaae8ddb6153a55 (patch)
tree64cf3c9a85e56b1123dc8ac72923001b059ced6f
parent75e1e00d6b3cd4cb89fd5314a60c333aa0b03230 (diff)
qcacld-2.0: Do not set ACS flag if no ACS to be done
wlan_hdd_cfg80211_change_iface will abort if ACS_IN_PROGRESS is set, which causes iface type mismatch between hostapd and driver. When force SCC if same band is enabled, driver will not do ACS for the second AP. So do not set ACS_IN_PROGRESS if no ACS to be done. Change-Id: I2c975c89dc1cf0d11980ad11c8d0d256c680594d CRs-Fixed: 1105386
-rw-r--r--CORE/HDD/src/wlan_hdd_cfg80211.c3
-rw-r--r--CORE/SAP/inc/sapApi.h9
-rw-r--r--CORE/SAP/src/sapModule.c20
3 files changed, 32 insertions, 0 deletions
diff --git a/CORE/HDD/src/wlan_hdd_cfg80211.c b/CORE/HDD/src/wlan_hdd_cfg80211.c
index 7a42199f7f3b..1ad4ef2396fc 100644
--- a/CORE/HDD/src/wlan_hdd_cfg80211.c
+++ b/CORE/HDD/src/wlan_hdd_cfg80211.c
@@ -8948,6 +8948,9 @@ static int wlan_hdd_cfg80211_start_acs(hdd_adapter_t *adapter)
return -EINVAL;
}
sap_config->acs_cfg.acs_mode = true;
+#ifdef FEATURE_WLAN_MCC_TO_SCC_SWITCH
+ if (is_auto_channel_select(WLAN_HDD_GET_SAP_CTX_PTR(adapter)))
+#endif
set_bit(ACS_IN_PROGRESS, &hdd_ctx->g_event_flags);
return 0;
diff --git a/CORE/SAP/inc/sapApi.h b/CORE/SAP/inc/sapApi.h
index 9993edf1bc60..04b62e13b177 100644
--- a/CORE/SAP/inc/sapApi.h
+++ b/CORE/SAP/inc/sapApi.h
@@ -854,6 +854,15 @@ void sapCleanupChannelList(v_PVOID_t sapContext);
void sapCleanupAllChannelList(void);
+#ifdef FEATURE_WLAN_MCC_TO_SCC_SWITCH
+/**
+ * is_auto_channel_select() - is channel AUTO_CHANNEL_SELECT
+ * @p_vos_gctx: Pointer to ptSapContext
+ *
+ * Return: true on AUTO_CHANNEL_SELECT, false otherwise
+ */
+bool is_auto_channel_select(v_PVOID_t p_vos_gctx);
+#endif
/*==========================================================================
FUNCTION WLANSAP_Set_WpsIe
diff --git a/CORE/SAP/src/sapModule.c b/CORE/SAP/src/sapModule.c
index 607d7e08e395..84484f0bc8c8 100644
--- a/CORE/SAP/src/sapModule.c
+++ b/CORE/SAP/src/sapModule.c
@@ -3856,6 +3856,26 @@ void WLANSAP_PopulateDelStaParams(const v_U8_t *mac,
MAC_ADDR_ARRAY(pDelStaParams->peerMacAddr));
}
+#ifdef FEATURE_WLAN_MCC_TO_SCC_SWITCH
+/**
+ * is_auto_channel_select() - is channel AUTO_CHANNEL_SELECT
+ * @p_vos_gctx: Pointer to ptSapContext
+ *
+ * Return: true on AUTO_CHANNEL_SELECT, false otherwise
+ */
+bool is_auto_channel_select(v_PVOID_t p_vos_gctx)
+{
+ ptSapContext sapcontext = VOS_GET_SAP_CB(p_vos_gctx);
+
+ if (NULL == sapcontext) {
+ VOS_TRACE(VOS_MODULE_ID_SAP, VOS_TRACE_LEVEL_ERROR,
+ "%s: Invalid SAP pointer", __func__);
+ return 0;
+ }
+ return sapcontext->channel == AUTO_CHANNEL_SELECT;
+}
+#endif
+
/*==========================================================================
FUNCTION WLANSAP_ACS_CHSelect