qcacld-3.0: Refactor CFG_ENABLE_DFS_MASTER_CAPABILITY cfg

Refactor CFG_ENABLE_DFS_MASTER_CAPABILITY cfg item.

Change-Id: I19b52c6848bd04feca4213aad64138d5c55b9a1f
CRs-Fixed: 2327917
This commit is contained in:
Arif Hussain
2018-09-26 16:12:24 -07:00
committed by nshrivas
parent c5a9556365
commit 88d1fddd0b
16 changed files with 127 additions and 77 deletions

View File

@@ -549,6 +549,13 @@ static void mlme_init_rates_in_cfg(struct wlan_objmgr_psoc *psoc,
CFG_INI_DISABLE_HIGH_HT_RX_MCS_2x2); CFG_INI_DISABLE_HIGH_HT_RX_MCS_2x2);
} }
static void mlme_init_dfs_cfg(struct wlan_objmgr_psoc *psoc,
struct wlan_mlme_dfs_cfg *dfs_cfg)
{
dfs_cfg->dfs_master_capable = cfg_get(psoc,
CFG_ENABLE_DFS_MASTER_CAPABILITY);
}
static void mlme_init_feature_flag_in_cfg( static void mlme_init_feature_flag_in_cfg(
struct wlan_objmgr_psoc *psoc, struct wlan_objmgr_psoc *psoc,
struct wlan_mlme_feature_flag *feature_flags) struct wlan_mlme_feature_flag *feature_flags)
@@ -1169,6 +1176,7 @@ QDF_STATUS mlme_cfg_on_psoc_enable(struct wlan_objmgr_psoc *psoc)
mlme_init_mbo_cfg(psoc, &mlme_cfg->mbo_cfg); mlme_init_mbo_cfg(psoc, &mlme_cfg->mbo_cfg);
mlme_init_qos_cfg(psoc, &mlme_cfg->qos_mlme_params); mlme_init_qos_cfg(psoc, &mlme_cfg->qos_mlme_params);
mlme_init_rates_in_cfg(psoc, &mlme_cfg->rates); mlme_init_rates_in_cfg(psoc, &mlme_cfg->rates);
mlme_init_dfs_cfg(psoc, &mlme_cfg->dfs_cfg);
mlme_init_sap_protection_cfg(psoc, &mlme_cfg->sap_protection_cfg); mlme_init_sap_protection_cfg(psoc, &mlme_cfg->sap_protection_cfg);
mlme_init_vht_cap_cfg(psoc, &mlme_cfg->vht_caps.vht_cap_info); mlme_init_vht_cap_cfg(psoc, &mlme_cfg->vht_caps.vht_cap_info);
mlme_init_chainmask_cfg(psoc, &mlme_cfg->chainmask_cfg); mlme_init_chainmask_cfg(psoc, &mlme_cfg->chainmask_cfg);

View File

@@ -31,6 +31,7 @@
#include "cfg_mlme_he_caps.h" #include "cfg_mlme_he_caps.h"
#include "cfg_mlme_lfr.h" #include "cfg_mlme_lfr.h"
#include "cfg_mlme_obss_ht40.h" #include "cfg_mlme_obss_ht40.h"
#include "cfg_mlme_dfs.h"
#include "cfg_mlme_mbo.h" #include "cfg_mlme_mbo.h"
#include "cfg_mlme_vht_caps.h" #include "cfg_mlme_vht_caps.h"
#include "cfg_qos.h" #include "cfg_qos.h"
@@ -51,6 +52,7 @@
#define CFG_MLME_ALL \ #define CFG_MLME_ALL \
CFG_ACS_ALL \ CFG_ACS_ALL \
CFG_CHAINMASK_ALL \ CFG_CHAINMASK_ALL \
CFG_DFS_ALL \
CFG_EDCA_PARAMS_ALL \ CFG_EDCA_PARAMS_ALL \
CFG_FEATURE_FLAG_ALL \ CFG_FEATURE_FLAG_ALL \
CFG_GENERIC_ALL \ CFG_GENERIC_ALL \

View File

@@ -0,0 +1,52 @@
/*
* Copyright (c) 2012-2018 The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
* above copyright notice and this permission notice appear in all
* copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
* WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
* AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
* DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
* PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
/**
* DOC: This file contains centralized definitions of converged configuration.
*/
#ifndef __CFG_MLME_DFS_H
#define __CFG_MLME_DFS_H
/*
* <ini>
* gEnableDFSMasterCap - Enable DFS master capability
* @Min: 0
* @Max: 1
* @Default: 0
*
* This ini is used to enable/disable the DFS master capability.
* Disabling it will cause driver to not advertise the spectrum
* management capability
* Related: NA.
*
* upported Feature: DFS
*
* Usage: Internal/External
*
* </ini>
*/
#define CFG_ENABLE_DFS_MASTER_CAPABILITY CFG_INI_BOOL( \
"gEnableDFSMasterCap", \
0, \
"DFS master mode capability")
#define CFG_DFS_ALL \
CFG(CFG_ENABLE_DFS_MASTER_CAPABILITY)
#endif /* __CFG_MLME_DFS_H */

View File

@@ -266,6 +266,14 @@ struct wlan_mlme_cfg_sap {
uint8_t reduced_beacon_interval; uint8_t reduced_beacon_interval;
}; };
/**
* struct wlan_mlme_dfs_cfg - DFS Capabilities related config items
* @dfs_master_capable: Is DFS master mode support enabled
*/
struct wlan_mlme_dfs_cfg {
bool dfs_master_capable;
};
/** /**
* struct wlan_mlme_mbo - Multiband Operation related ini configs * struct wlan_mlme_mbo - Multiband Operation related ini configs
* @mbo_candidate_rssi_thres: * @mbo_candidate_rssi_thres:
@@ -1096,6 +1104,7 @@ struct wlan_mlme_wep_cfg {
* @qos_mlme_params: QOS CFG Items * @qos_mlme_params: QOS CFG Items
* @rates: Rates related cfg items * @rates: Rates related cfg items
* @product_details: product details related CFG Items * @product_details: product details related CFG Items
* @dfs_cfg: DFS related CFG Items
* @sap_protection_cfg: SAP erp protection related CFG items * @sap_protection_cfg: SAP erp protection related CFG items
* @sap_cfg: sap CFG items * @sap_cfg: sap CFG items
* @sta: sta CFG Items * @sta: sta CFG Items
@@ -1121,6 +1130,7 @@ struct wlan_mlme_cfg {
struct wlan_mlme_qos qos_mlme_params; struct wlan_mlme_qos qos_mlme_params;
struct wlan_mlme_rates rates; struct wlan_mlme_rates rates;
struct wlan_mlme_product_details_cfg product_details; struct wlan_mlme_product_details_cfg product_details;
struct wlan_mlme_dfs_cfg dfs_cfg;
struct wlan_mlme_sap_protection sap_protection_cfg; struct wlan_mlme_sap_protection sap_protection_cfg;
struct wlan_mlme_cfg_sap sap_cfg; struct wlan_mlme_cfg_sap sap_cfg;
struct wlan_mlme_sta_cfg sta; struct wlan_mlme_sta_cfg sta;

View File

@@ -524,6 +524,17 @@ QDF_STATUS
ucfg_mlme_get_sta_keep_alive_period(struct wlan_objmgr_psoc *psoc, ucfg_mlme_get_sta_keep_alive_period(struct wlan_objmgr_psoc *psoc,
uint32_t *val); uint32_t *val);
/*
* ucfg_mlme_get_dfs_master_capability() - Get the dfs master capability
* @psoc: pointer to psoc object
* @val: Pointer to the value which will be filled for the caller
*
* Return: QDF Status
*/
QDF_STATUS
ucfg_mlme_get_dfs_master_capability(struct wlan_objmgr_psoc *psoc,
bool *val);
/** /**
* ucfg_mlme_get_pmkid_modes() - Get PMKID modes * ucfg_mlme_get_pmkid_modes() - Get PMKID modes
* @psoc: pointer to psoc object * @psoc: pointer to psoc object

View File

@@ -121,6 +121,24 @@ ucfg_mlme_get_sta_keep_alive_period(struct wlan_objmgr_psoc *psoc,
return QDF_STATUS_SUCCESS; return QDF_STATUS_SUCCESS;
} }
QDF_STATUS
ucfg_mlme_get_dfs_master_capability(struct wlan_objmgr_psoc *psoc,
bool *val)
{
struct wlan_mlme_psoc_obj *mlme_obj;
mlme_obj = mlme_get_psoc_obj(psoc);
if (!mlme_obj) {
*val = cfg_default(CFG_ENABLE_DFS_MASTER_CAPABILITY);
mlme_err("mlme obj null");
return QDF_STATUS_E_INVAL;
}
*val = mlme_obj->cfg.dfs_cfg.dfs_master_capable;
return QDF_STATUS_SUCCESS;
}
QDF_STATUS QDF_STATUS
ucfg_mlme_get_pmkid_modes(struct wlan_objmgr_psoc *psoc, ucfg_mlme_get_pmkid_modes(struct wlan_objmgr_psoc *psoc,
uint32_t *val) uint32_t *val)

View File

@@ -3705,29 +3705,6 @@ enum hdd_link_speed_rpt_type {
#define CFG_DISABLE_DFS_CH_SWITCH_MAX (1) #define CFG_DISABLE_DFS_CH_SWITCH_MAX (1)
#define CFG_DISABLE_DFS_CH_SWITCH_DEFAULT (0) #define CFG_DISABLE_DFS_CH_SWITCH_DEFAULT (0)
/*
* <ini>
* gEnableDFSMasterCap - Enable DFS master capability
* @Min: 0
* @Max: 1
* @Default: 0
*
* This ini is used to enable/disable the DFS master capability.
* Disabling it will cause driver to not advertise the spectrum
* management capability
* Related: NA.
*
* Supported Feature: DFS
*
* Usage: Internal/External
*
* </ini>
*/
#define CFG_ENABLE_DFS_MASTER_CAPABILITY "gEnableDFSMasterCap"
#define CFG_ENABLE_DFS_MASTER_CAPABILITY_MIN (0)
#define CFG_ENABLE_DFS_MASTER_CAPABILITY_MAX (1)
#define CFG_ENABLE_DFS_MASTER_CAPABILITY_DEFAULT (0)
/* /*
* <ini> * <ini>
* gSapPreferredChanLocation - Restrict channel switches between ondoor and * gSapPreferredChanLocation - Restrict channel switches between ondoor and
@@ -8942,7 +8919,6 @@ struct hdd_config {
uint32_t WlanMccToSccSwitchMode; uint32_t WlanMccToSccSwitchMode;
#endif #endif
uint8_t disableDFSChSwitch; uint8_t disableDFSChSwitch;
uint8_t enableDFSMasterCap;
uint32_t TxPower2g; uint32_t TxPower2g;
uint32_t TxPower5g; uint32_t TxPower5g;
bool fDfsPhyerrFilterOffload; bool fDfsPhyerrFilterOffload;

View File

@@ -1661,13 +1661,6 @@ struct reg_table_entry g_registry_table[] = {
CFG_DISABLE_DFS_CH_SWITCH_MIN, CFG_DISABLE_DFS_CH_SWITCH_MIN,
CFG_DISABLE_DFS_CH_SWITCH_MAX), CFG_DISABLE_DFS_CH_SWITCH_MAX),
REG_VARIABLE(CFG_ENABLE_DFS_MASTER_CAPABILITY, WLAN_PARAM_Integer,
struct hdd_config, enableDFSMasterCap,
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
CFG_ENABLE_DFS_MASTER_CAPABILITY_DEFAULT,
CFG_ENABLE_DFS_MASTER_CAPABILITY_MIN,
CFG_ENABLE_DFS_MASTER_CAPABILITY_MAX),
REG_DYNAMIC_VARIABLE(CFG_SAP_PREFERRED_CHANNEL_LOCATION, REG_DYNAMIC_VARIABLE(CFG_SAP_PREFERRED_CHANNEL_LOCATION,
WLAN_PARAM_Integer, WLAN_PARAM_Integer,
struct hdd_config, gSapPreferredChanLocation, struct hdd_config, gSapPreferredChanLocation,
@@ -4857,13 +4850,6 @@ bool hdd_update_config_cfg(struct hdd_context *hdd_ctx)
hdd_err("Couldn't pass on WNI_CFG_11D_ENABLED to CFG"); hdd_err("Couldn't pass on WNI_CFG_11D_ENABLED to CFG");
} }
if (sme_cfg_set_int(mac_handle, WNI_CFG_DFS_MASTER_ENABLED,
config->enableDFSMasterCap) ==
QDF_STATUS_E_FAILURE) {
status = false;
hdd_err("Failure: Couldn't set value for WNI_CFG_DFS_MASTER_ENABLED");
}
if (sme_cfg_set_int(mac_handle, WNI_CFG_ENABLE_MCC_ADAPTIVE_SCHED, if (sme_cfg_set_int(mac_handle, WNI_CFG_ENABLE_MCC_ADAPTIVE_SCHED,
config->enableMCCAdaptiveScheduler) == config->enableMCCAdaptiveScheduler) ==
QDF_STATUS_E_FAILURE) { QDF_STATUS_E_FAILURE) {

View File

@@ -12313,9 +12313,6 @@ int wlan_hdd_cfg80211_init(struct device *dev,
ARRAY_SIZE(wlan_hdd_cfg80211_vendor_events); ARRAY_SIZE(wlan_hdd_cfg80211_vendor_events);
} }
if (pCfg->enableDFSMasterCap)
wlan_hdd_cfg80211_set_dfs_offload_feature(wiphy);
#ifdef QCA_HT_2040_COEX #ifdef QCA_HT_2040_COEX
wiphy->features |= NL80211_FEATURE_AP_MODE_CHAN_WIDTH_CHANGE; wiphy->features |= NL80211_FEATURE_AP_MODE_CHAN_WIDTH_CHANGE;
#endif #endif
@@ -12484,6 +12481,7 @@ void wlan_hdd_update_wiphy(struct hdd_context *hdd_ctx)
{ {
int value; int value;
bool fils_enabled; bool fils_enabled;
bool dfs_master_capable = true;
QDF_STATUS status; QDF_STATUS status;
ucfg_mlme_get_sap_max_peers(hdd_ctx->psoc, &value); ucfg_mlme_get_sap_max_peers(hdd_ctx->psoc, &value);
@@ -12498,6 +12496,11 @@ void wlan_hdd_update_wiphy(struct hdd_context *hdd_ctx)
hdd_err("could not get fils enabled info"); hdd_err("could not get fils enabled info");
if (fils_enabled) if (fils_enabled)
wlan_hdd_cfg80211_set_wiphy_fils_feature(hdd_ctx->wiphy); wlan_hdd_cfg80211_set_wiphy_fils_feature(hdd_ctx->wiphy);
status = ucfg_mlme_get_dfs_master_capability(hdd_ctx->psoc,
&dfs_master_capable);
if (QDF_IS_STATUS_SUCCESS(status) && dfs_master_capable)
wlan_hdd_cfg80211_set_dfs_offload_feature(hdd_ctx->wiphy);
} }
/** /**

View File

@@ -2000,9 +2000,12 @@ static int __iw_get_channel_list(struct net_device *dev,
if (hostapd_adapter->device_mode == QDF_STA_MODE && if (hostapd_adapter->device_mode == QDF_STA_MODE &&
hdd_ctx->config->enableDFSChnlScan) { hdd_ctx->config->enableDFSChnlScan) {
is_dfs_mode_enabled = true; is_dfs_mode_enabled = true;
} else if (hostapd_adapter->device_mode == QDF_SAP_MODE && } else if (hostapd_adapter->device_mode == QDF_SAP_MODE) {
hdd_ctx->config->enableDFSMasterCap) { if (QDF_STATUS_SUCCESS != ucfg_mlme_get_dfs_master_capability(
is_dfs_mode_enabled = true; hdd_ctx->psoc, &is_dfs_mode_enabled)) {
hdd_err("Fail to get dfs master mode capability");
return -EINVAL;
}
} }
hdd_debug("curBand = %d, StartChannel = %hu, EndChannel = %hu is_dfs_mode_enabled = %d ", hdd_debug("curBand = %d, StartChannel = %hu, EndChannel = %hu is_dfs_mode_enabled = %d ",

View File

@@ -420,6 +420,7 @@ __wlan_hdd_cfg80211_conditional_chan_switch(struct wiphy *wiphy,
uint32_t freq_len, i; uint32_t freq_len, i;
uint32_t *freq; uint32_t *freq;
uint8_t chans[QDF_MAX_NUM_CHAN] = {0}; uint8_t chans[QDF_MAX_NUM_CHAN] = {0};
bool is_dfs_mode_enabled = false;
hdd_enter_dev(dev); hdd_enter_dev(dev);
@@ -427,7 +428,13 @@ __wlan_hdd_cfg80211_conditional_chan_switch(struct wiphy *wiphy,
if (ret) if (ret)
return ret; return ret;
if (!hdd_ctx->config->enableDFSMasterCap) { if (QDF_STATUS_SUCCESS != ucfg_mlme_get_dfs_master_capability(
hdd_ctx->psoc, &is_dfs_mode_enabled)) {
hdd_err("Failed to get dfs master capability");
return -EINVAL;
}
if (!is_dfs_mode_enabled) {
hdd_err("DFS master capability is not present in the driver"); hdd_err("DFS master capability is not present in the driver");
return -EINVAL; return -EINVAL;
} }

View File

@@ -117,7 +117,6 @@ enum {
WNI_CFG_DISABLE_LDPC_WITH_TXBF_AP, WNI_CFG_DISABLE_LDPC_WITH_TXBF_AP,
WNI_CFG_RMC_ACTION_PERIOD_FREQUENCY, WNI_CFG_RMC_ACTION_PERIOD_FREQUENCY,
WNI_CFG_IBSS_ATIM_WIN_SIZE, WNI_CFG_IBSS_ATIM_WIN_SIZE,
WNI_CFG_DFS_MASTER_ENABLED,
WNI_CFG_VHT_ENABLE_TXBF_20MHZ, WNI_CFG_VHT_ENABLE_TXBF_20MHZ,
WNI_CFG_MAX_HT_MCS_TX_DATA, WNI_CFG_MAX_HT_MCS_TX_DATA,
WNI_CFG_DISABLE_ABG_RATE_FOR_TX_DATA, WNI_CFG_DISABLE_ABG_RATE_FOR_TX_DATA,
@@ -899,10 +898,6 @@ enum {
#define WNI_CFG_IBSS_ATIM_WIN_SIZE_STAMAX 100 #define WNI_CFG_IBSS_ATIM_WIN_SIZE_STAMAX 100
#define WNI_CFG_IBSS_ATIM_WIN_SIZE_STADEF 0 #define WNI_CFG_IBSS_ATIM_WIN_SIZE_STADEF 0
#define WNI_CFG_DFS_MASTER_ENABLED_STAMIN 0
#define WNI_CFG_DFS_MASTER_ENABLED_STAMAX 1
#define WNI_CFG_DFS_MASTER_ENABLED_STADEF 0
#define WNI_CFG_VHT_ENABLE_TXBF_20MHZ_STAMIN 0 #define WNI_CFG_VHT_ENABLE_TXBF_20MHZ_STAMIN 0
#define WNI_CFG_VHT_ENABLE_TXBF_20MHZ_STAMAX 1 #define WNI_CFG_VHT_ENABLE_TXBF_20MHZ_STAMAX 1
#define WNI_CFG_VHT_ENABLE_TXBF_20MHZ_STADEF 0 #define WNI_CFG_VHT_ENABLE_TXBF_20MHZ_STADEF 0

View File

@@ -131,7 +131,6 @@ const char *cfg_get_string(uint16_t cfg_id)
CASE_RETURN_STRING(WNI_CFG_DISABLE_LDPC_WITH_TXBF_AP); CASE_RETURN_STRING(WNI_CFG_DISABLE_LDPC_WITH_TXBF_AP);
CASE_RETURN_STRING(WNI_CFG_RMC_ACTION_PERIOD_FREQUENCY); CASE_RETURN_STRING(WNI_CFG_RMC_ACTION_PERIOD_FREQUENCY);
CASE_RETURN_STRING(WNI_CFG_IBSS_ATIM_WIN_SIZE); CASE_RETURN_STRING(WNI_CFG_IBSS_ATIM_WIN_SIZE);
CASE_RETURN_STRING(WNI_CFG_DFS_MASTER_ENABLED);
CASE_RETURN_STRING(WNI_CFG_VHT_ENABLE_TXBF_20MHZ); CASE_RETURN_STRING(WNI_CFG_VHT_ENABLE_TXBF_20MHZ);
CASE_RETURN_STRING(WNI_CFG_MAX_HT_MCS_TX_DATA); CASE_RETURN_STRING(WNI_CFG_MAX_HT_MCS_TX_DATA);
CASE_RETURN_STRING(WNI_CFG_DISABLE_ABG_RATE_FOR_TX_DATA); CASE_RETURN_STRING(WNI_CFG_DISABLE_ABG_RATE_FOR_TX_DATA);

View File

@@ -525,11 +525,6 @@ cgstatic cfg_static[CFG_PARAM_MAX_NUM] = {
WNI_CFG_IBSS_ATIM_WIN_SIZE_STAMIN, WNI_CFG_IBSS_ATIM_WIN_SIZE_STAMIN,
WNI_CFG_IBSS_ATIM_WIN_SIZE_STAMAX, WNI_CFG_IBSS_ATIM_WIN_SIZE_STAMAX,
WNI_CFG_IBSS_ATIM_WIN_SIZE_STADEF}, WNI_CFG_IBSS_ATIM_WIN_SIZE_STADEF},
{WNI_CFG_DFS_MASTER_ENABLED,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
WNI_CFG_DFS_MASTER_ENABLED_STAMIN,
WNI_CFG_DFS_MASTER_ENABLED_STAMAX,
WNI_CFG_DFS_MASTER_ENABLED_STADEF},
{WNI_CFG_VHT_ENABLE_TXBF_20MHZ, {WNI_CFG_VHT_ENABLE_TXBF_20MHZ,
CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT, CFG_CTL_VALID | CFG_CTL_RE | CFG_CTL_WE | CFG_CTL_INT,
WNI_CFG_VHT_ENABLE_TXBF_20MHZ_STAMIN, WNI_CFG_VHT_ENABLE_TXBF_20MHZ_STAMIN,

View File

@@ -1036,15 +1036,10 @@ __lim_handle_sme_start_bss_request(tpAniSirGlobal mac_ctx, uint32_t *msg_buf)
if (session->lim11hEnable && if (session->lim11hEnable &&
(eSIR_INFRA_AP_MODE == (eSIR_INFRA_AP_MODE ==
mlm_start_req->bssType)) { mlm_start_req->bssType)) {
qdf_status = session->lim11hEnable =
wlan_cfg_get_int(mac_ctx, mac_ctx->mlme_cfg->
WNI_CFG_DFS_MASTER_ENABLED, dfs_cfg.dfs_master_capable;
&val);
session->lim11hEnable = val;
} }
if (QDF_IS_STATUS_ERROR(qdf_status))
/* Failed get CFG WNI_CFG_DFS_MASTER_ENABLED */
pe_err("Get Fail, CFG DFS ENABLE");
} }
if (!session->lim11hEnable) { if (!session->lim11hEnable) {

View File

@@ -589,7 +589,6 @@ static bool sap_chan_sel_init(tHalHandle halHandle,
#ifdef FEATURE_WLAN_CH_AVOID #ifdef FEATURE_WLAN_CH_AVOID
uint16_t i; uint16_t i;
#endif #endif
uint32_t dfs_master_cap_enabled;
bool include_dfs_ch = true; bool include_dfs_ch = true;
uint8_t chan_num; uint8_t chan_num;
bool sta_sap_scc_on_dfs_chan = bool sta_sap_scc_on_dfs_chan =
@@ -622,9 +621,7 @@ static bool sap_chan_sel_init(tHalHandle halHandle,
if (sap_ctx->dfs_ch_disable == true) if (sap_ctx->dfs_ch_disable == true)
include_dfs_ch = false; include_dfs_ch = false;
#endif #endif
sme_cfg_get_int(halHandle, WNI_CFG_DFS_MASTER_ENABLED, if (!pMac->mlme_cfg->dfs_cfg.dfs_master_capable ||
&dfs_master_cap_enabled);
if (dfs_master_cap_enabled == 0 ||
ACS_DFS_MODE_DISABLE == sap_ctx->dfs_mode) ACS_DFS_MODE_DISABLE == sap_ctx->dfs_mode)
include_dfs_ch = false; include_dfs_ch = false;
@@ -2559,7 +2556,6 @@ static uint8_t sap_select_channel_no_scan_result(tHalHandle hal,
{ {
enum channel_state ch_type; enum channel_state ch_type;
uint8_t i, first_safe_ch_in_range = SAP_CHANNEL_NOT_SELECTED; uint8_t i, first_safe_ch_in_range = SAP_CHANNEL_NOT_SELECTED;
uint32_t dfs_master_cap_enabled;
uint32_t start_ch_num = sap_ctx->acs_cfg->start_ch; uint32_t start_ch_num = sap_ctx->acs_cfg->start_ch;
uint32_t end_ch_num = sap_ctx->acs_cfg->end_ch; uint32_t end_ch_num = sap_ctx->acs_cfg->end_ch;
tpAniSirGlobal mac_ctx = NULL; tpAniSirGlobal mac_ctx = NULL;
@@ -2569,12 +2565,6 @@ static uint8_t sap_select_channel_no_scan_result(tHalHandle hal,
QDF_TRACE(QDF_MODULE_ID_SAP, QDF_TRACE_LEVEL_INFO_HIGH, QDF_TRACE(QDF_MODULE_ID_SAP, QDF_TRACE_LEVEL_INFO_HIGH,
FL("start - end: %d - %d"), start_ch_num, end_ch_num); FL("start - end: %d - %d"), start_ch_num, end_ch_num);
sme_cfg_get_int(hal, WNI_CFG_DFS_MASTER_ENABLED,
&dfs_master_cap_enabled);
QDF_TRACE(QDF_MODULE_ID_SAP, QDF_TRACE_LEVEL_INFO_HIGH,
"%s: dfs_master %x", __func__, dfs_master_cap_enabled);
/* get a channel in PCL and within the range */ /* get a channel in PCL and within the range */
for (i = 0; i < sap_ctx->acs_cfg->pcl_ch_count; i++) { for (i = 0; i < sap_ctx->acs_cfg->pcl_ch_count; i++) {
if ((sap_ctx->acs_cfg->pcl_channels[i] < start_ch_num) || if ((sap_ctx->acs_cfg->pcl_channels[i] < start_ch_num) ||
@@ -2599,8 +2589,8 @@ static uint8_t sap_select_channel_no_scan_result(tHalHandle hal,
if ((ch_type == CHANNEL_STATE_DISABLE) || if ((ch_type == CHANNEL_STATE_DISABLE) ||
(ch_type == CHANNEL_STATE_INVALID)) (ch_type == CHANNEL_STATE_INVALID))
continue; continue;
if ((!dfs_master_cap_enabled) && if ((!mac_ctx->mlme_cfg->dfs_cfg.dfs_master_capable) &&
(CHANNEL_STATE_DFS == ch_type)) { (CHANNEL_STATE_DFS == ch_type)) {
QDF_TRACE(QDF_MODULE_ID_SAP, QDF_TRACE_LEVEL_INFO_HIGH, QDF_TRACE(QDF_MODULE_ID_SAP, QDF_TRACE_LEVEL_INFO_HIGH,
"%s: DFS master mode disabled. Skip DFS channel %d", "%s: DFS master mode disabled. Skip DFS channel %d",
__func__, safe_channels[i].channelNumber); __func__, safe_channels[i].channelNumber);