diff --git a/drivers/staging/qcacld-3.0/components/cmn_services/policy_mgr/src/wlan_policy_mgr_action.c b/drivers/staging/qcacld-3.0/components/cmn_services/policy_mgr/src/wlan_policy_mgr_action.c index e4030175a1cc..766179c53fa3 100644 --- a/drivers/staging/qcacld-3.0/components/cmn_services/policy_mgr/src/wlan_policy_mgr_action.c +++ b/drivers/staging/qcacld-3.0/components/cmn_services/policy_mgr/src/wlan_policy_mgr_action.c @@ -35,7 +35,6 @@ #include "wlan_nan_api.h" #include "nan_ucfg_api.h" #include "sap_api.h" -#include "wlan_mlme_api.h" enum policy_mgr_conc_next_action (*policy_mgr_get_current_pref_hw_mode_ptr) (struct wlan_objmgr_psoc *psoc); @@ -1941,22 +1940,6 @@ QDF_STATUS policy_mgr_valid_sap_conc_channel_check( uint32_t temp_ch_freq = 0; struct policy_mgr_psoc_priv_obj *pm_ctx; bool sta_sap_scc_on_dfs_chan; - struct wlan_objmgr_vdev *vdev; - enum QDF_OPMODE vdev_opmode; - bool enable_srd_channel; - - vdev = wlan_objmgr_get_vdev_by_id_from_psoc(psoc, sap_vdev_id, - WLAN_POLICY_MGR_ID); - if (!vdev) { - policy_mgr_err("vdev is NULL"); - return QDF_STATUS_E_INVAL; - } - - vdev_opmode = wlan_vdev_mlme_get_opmode(vdev); - wlan_objmgr_vdev_release_ref(vdev, WLAN_POLICY_MGR_ID); - - wlan_mlme_get_srd_master_mode_for_vdev(psoc, vdev_opmode, - &enable_srd_channel); pm_ctx = policy_mgr_get_context(psoc); if (!pm_ctx) { @@ -1998,7 +1981,8 @@ QDF_STATUS policy_mgr_valid_sap_conc_channel_check( ch_freq) || !(policy_mgr_sta_sap_scc_on_lte_coex_chan(psoc) || policy_mgr_is_safe_channel(psoc, ch_freq)) || - (!enable_srd_channel && + (!wlan_reg_is_etsi13_srd_chan_allowed_master_mode( + pm_ctx->pdev) && wlan_reg_is_etsi13_srd_chan_for_freq(pm_ctx->pdev, ch_freq))) { if (wlan_reg_is_dfs_for_freq(pm_ctx->pdev, ch_freq) && diff --git a/drivers/staging/qcacld-3.0/components/cmn_services/policy_mgr/src/wlan_policy_mgr_core.c b/drivers/staging/qcacld-3.0/components/cmn_services/policy_mgr/src/wlan_policy_mgr_core.c index 8b17d4c23069..a94030dc9751 100644 --- a/drivers/staging/qcacld-3.0/components/cmn_services/policy_mgr/src/wlan_policy_mgr_core.c +++ b/drivers/staging/qcacld-3.0/components/cmn_services/policy_mgr/src/wlan_policy_mgr_core.c @@ -2116,6 +2116,7 @@ QDF_STATUS policy_mgr_get_channel_list(struct wlan_objmgr_psoc *psoc, uint32_t sbs_num_channels = 0; uint32_t chan_index_24 = 0, chan_index_5 = 0, chan_index_6 = 0; bool skip_dfs_channel = false; + bool is_etsi13_srd_chan_allowed_in_mas_mode = true; uint32_t i = 0, j = 0; struct policy_mgr_psoc_priv_obj *pm_ctx; bool sta_sap_scc_on_dfs_chan; @@ -2179,6 +2180,9 @@ QDF_STATUS policy_mgr_get_channel_list(struct wlan_objmgr_psoc *psoc, policy_mgr_debug("skip DFS ch from pcl for SAP/Go"); skip_dfs_channel = true; } + is_etsi13_srd_chan_allowed_in_mas_mode = + wlan_reg_is_etsi13_srd_chan_allowed_master_mode(pm_ctx-> + pdev); } /* Let's divide the list in 2.4 & 5 Ghz lists */ @@ -2191,6 +2195,11 @@ QDF_STATUS policy_mgr_get_channel_list(struct wlan_objmgr_psoc *psoc, channel_list[i])) continue; + if (!is_etsi13_srd_chan_allowed_in_mas_mode && + wlan_reg_is_etsi13_srd_chan_for_freq( + pm_ctx->pdev, channel_list[i])) + continue; + channel_list_5[chan_index_5++] = channel_list[i]; } else if (wlan_reg_is_6ghz_chan_freq(channel_list[i])) { /* Add to 5G list untill 6G conc support is enabled */ diff --git a/drivers/staging/qcacld-3.0/components/cmn_services/policy_mgr/src/wlan_policy_mgr_pcl.c b/drivers/staging/qcacld-3.0/components/cmn_services/policy_mgr/src/wlan_policy_mgr_pcl.c index 707a3a84a6f5..2c3eecfd967e 100644 --- a/drivers/staging/qcacld-3.0/components/cmn_services/policy_mgr/src/wlan_policy_mgr_pcl.c +++ b/drivers/staging/qcacld-3.0/components/cmn_services/policy_mgr/src/wlan_policy_mgr_pcl.c @@ -545,12 +545,18 @@ policy_mgr_modify_pcl_based_on_srd(struct wlan_objmgr_psoc *psoc, uint32_t pcl_list[NUM_CHANNELS]; uint8_t weight_list[NUM_CHANNELS]; struct policy_mgr_psoc_priv_obj *pm_ctx; + bool is_etsi13_srd_chan_allowed_in_mas_mode = true; pm_ctx = policy_mgr_get_context(psoc); if (!pm_ctx) { policy_mgr_err("Invalid Context"); return QDF_STATUS_E_FAILURE; } + is_etsi13_srd_chan_allowed_in_mas_mode = + wlan_reg_is_etsi13_srd_chan_allowed_master_mode(pm_ctx->pdev); + + if (is_etsi13_srd_chan_allowed_in_mas_mode) + return QDF_STATUS_SUCCESS; if (*pcl_len_org > NUM_CHANNELS) { policy_mgr_err("Invalid PCL List Length %d", *pcl_len_org); @@ -583,7 +589,6 @@ static QDF_STATUS policy_mgr_pcl_modification_for_sap( bool nol_modified_pcl = false; bool dfs_modified_pcl = false; bool modified_final_pcl = false; - bool srd_chan_enabled; if (policy_mgr_is_sap_mandatory_channel_set(psoc)) { status = policy_mgr_modify_sap_pcl_based_on_mandatory_channel( @@ -612,18 +617,12 @@ static QDF_STATUS policy_mgr_pcl_modification_for_sap( } dfs_modified_pcl = true; - wlan_mlme_get_srd_master_mode_for_vdev(psoc, QDF_SAP_MODE, - &srd_chan_enabled); - - if (!srd_chan_enabled) { - status = policy_mgr_modify_pcl_based_on_srd - (psoc, pcl_channels, pcl_weight, len); - if (QDF_IS_STATUS_ERROR(status)) { - policy_mgr_err("Failed to modify SRD in pcl for SAP"); - return status; - } + status = policy_mgr_modify_pcl_based_on_srd + (psoc, pcl_channels, pcl_weight, len); + if (QDF_IS_STATUS_ERROR(status)) { + policy_mgr_err("failed to get srd modified pcl for SAP"); + return status; } - modified_final_pcl = true; policy_mgr_debug(" %d %d %d %d", mandatory_modified_pcl, @@ -641,7 +640,6 @@ static QDF_STATUS policy_mgr_pcl_modification_for_p2p_go( { QDF_STATUS status = QDF_STATUS_E_FAILURE; struct policy_mgr_psoc_priv_obj *pm_ctx; - bool srd_chan_enabled; pm_ctx = policy_mgr_get_context(psoc); if (!pm_ctx) { @@ -656,18 +654,12 @@ static QDF_STATUS policy_mgr_pcl_modification_for_p2p_go( return status; } - wlan_mlme_get_srd_master_mode_for_vdev(psoc, QDF_P2P_GO_MODE, - &srd_chan_enabled); - - if (!srd_chan_enabled) { - status = policy_mgr_modify_pcl_based_on_srd - (psoc, pcl_channels, pcl_weight, len); - if (QDF_IS_STATUS_ERROR(status)) { - policy_mgr_err("Failed to modify SRD in pcl for GO"); - return status; - } + status = policy_mgr_modify_pcl_based_on_srd + (psoc, pcl_channels, pcl_weight, len); + if (QDF_IS_STATUS_ERROR(status)) { + policy_mgr_err("failed to get srd modified pcl for P2P-GO"); + return status; } - policy_mgr_dump_channel_list(*len, pcl_channels, pcl_weight); return QDF_STATUS_SUCCESS; diff --git a/drivers/staging/qcacld-3.0/components/mlme/core/src/wlan_mlme_main.c b/drivers/staging/qcacld-3.0/components/mlme/core/src/wlan_mlme_main.c index cf3c709cc8bf..2400b97ae341 100644 --- a/drivers/staging/qcacld-3.0/components/mlme/core/src/wlan_mlme_main.c +++ b/drivers/staging/qcacld-3.0/components/mlme/core/src/wlan_mlme_main.c @@ -2337,8 +2337,8 @@ static void mlme_init_reg_cfg(struct wlan_objmgr_psoc *psoc, struct wlan_objmgr_pdev *pdev = NULL; reg->self_gen_frm_pwr = cfg_get(psoc, CFG_SELF_GEN_FRM_PWR); - reg->etsi_srd_chan_in_master_mode = - cfg_get(psoc, CFG_ETSI_SRD_CHAN_IN_MASTER_MODE); + reg->etsi13_srd_chan_in_master_mode = + cfg_get(psoc, CFG_ETSI13_SRD_CHAN_IN_MASTER_MODE); reg->restart_beaconing_on_ch_avoid = cfg_get(psoc, CFG_RESTART_BEACONING_ON_CH_AVOID); reg->indoor_channel_support = cfg_get(psoc, CFG_INDOOR_CHANNEL_SUPPORT); @@ -2359,9 +2359,6 @@ static void mlme_init_reg_cfg(struct wlan_objmgr_psoc *psoc, &valid_channel_list_num); reg->valid_channel_list_num = (uint8_t)valid_channel_list_num; - reg->enable_nan_on_indoor_channels = - cfg_get(psoc, CFG_INDOOR_CHANNEL_SUPPORT_FOR_NAN); - pdev = wlan_objmgr_get_pdev_by_id(psoc, 0, WLAN_MLME_NB_ID); if (!pdev) { mlme_legacy_err("null pdev"); diff --git a/drivers/staging/qcacld-3.0/components/mlme/dispatcher/inc/cfg_mlme_reg.h b/drivers/staging/qcacld-3.0/components/mlme/dispatcher/inc/cfg_mlme_reg.h index 4da66ab7aa7f..4b0629b0b887 100644 --- a/drivers/staging/qcacld-3.0/components/mlme/dispatcher/inc/cfg_mlme_reg.h +++ b/drivers/staging/qcacld-3.0/components/mlme/dispatcher/inc/cfg_mlme_reg.h @@ -73,20 +73,14 @@ /* * - * etsi_srd_chan_in_master_mode - Enable/disable ETSI SRD channels in + * etsi13_srd_chan_in_master_mode - Enable/disable ETSI SRD channels in * master mode PCL and ACS functionality * @Min: 0 - * @Max: 0xFF - * @Default: 6 + * @Max: 1 + * @Default: 0 * - * etsi_srd_chan_in_master_mode is to enable/disable ETSI SRD channels in + * etsi13_srd_chan_in_master_mode is to enable/disable ETSI SRD channels in * master mode PCL and ACS functionality - * Bit map for enabling the SRD mode in various modes are as follows:- - * BIT 0:- Enable/Disable SRD channels for SAP. - * BIT 1:- Enable/Disable SRD channels for P2P-GO. - * BIT 2:- Enable/Disable SRD channels for NAN. - * Rest of the bits are currently reserved for future SRD channel support for - * other vdevs. * * Related: None * @@ -96,37 +90,11 @@ * * */ -#define CFG_ETSI_SRD_CHAN_IN_MASTER_MODE CFG_INI_UINT( \ +#define CFG_ETSI13_SRD_CHAN_IN_MASTER_MODE CFG_INI_BOOL( \ "etsi13_srd_chan_in_master_mode", \ 0, \ - 0xff, \ - 6, \ - CFG_VALUE_OR_DEFAULT, \ "enable/disable ETSI SRD channels in master mode") -/* - * - * enable_nan_indoor_channel - Enable Indoor channels for NAN - * @Min: 0 - * @Max: 1 - * @Default: 0 - * - * This ini is used to support to indoor channels for NAN interface - * Customer can config this item to enable/disable NAN in indoor channel - * - * Related: None - * - * Supported Feature: NAN - * - * Usage: External - * - * - */ -#define CFG_INDOOR_CHANNEL_SUPPORT_FOR_NAN CFG_INI_BOOL( \ - "enable_nan_indoor_channel", \ - 0, \ - "enable/disable indoor channels for NAN") - #ifdef SAP_AVOID_ACS_FREQ_LIST #define SAP_AVOID_ACS_FREQ_LIST_DEFAULT "" @@ -356,8 +324,7 @@ CFG(CFG_SELF_GEN_FRM_PWR) \ CFG(CFG_ENABLE_PENDING_CHAN_LIST_REQ) \ CFG(CFG_ENABLE_11D_IN_WORLD_MODE) \ - CFG(CFG_ETSI_SRD_CHAN_IN_MASTER_MODE) \ - CFG(CFG_INDOOR_CHANNEL_SUPPORT_FOR_NAN) \ + CFG(CFG_ETSI13_SRD_CHAN_IN_MASTER_MODE) \ CFG(CFG_RESTART_BEACONING_ON_CH_AVOID) \ CFG(CFG_INDOOR_CHANNEL_SUPPORT) \ CFG(CFG_SCAN_11D_INTERVAL) \ diff --git a/drivers/staging/qcacld-3.0/components/mlme/dispatcher/inc/wlan_mlme_api.h b/drivers/staging/qcacld-3.0/components/mlme/dispatcher/inc/wlan_mlme_api.h index 6139aface233..00dbd2c4de9e 100644 --- a/drivers/staging/qcacld-3.0/components/mlme/dispatcher/inc/wlan_mlme_api.h +++ b/drivers/staging/qcacld-3.0/components/mlme/dispatcher/inc/wlan_mlme_api.h @@ -1913,30 +1913,6 @@ QDF_STATUS wlan_mlme_get_vht_tx_mcs_2x2(struct wlan_objmgr_psoc *psoc, QDF_STATUS wlan_mlme_get_vht20_mcs9(struct wlan_objmgr_psoc *psoc, bool *value); -/** - * wlan_mlme_get_srd_master_mode_for_vdev - Get SRD master mode for vdev - * @psoc: pointer to psoc object - * @vdev_opmode: vdev operating mode - * @value: pointer to the value which will be filled for the caller - * - * Return: QDF Status - */ -QDF_STATUS -wlan_mlme_get_srd_master_mode_for_vdev(struct wlan_objmgr_psoc *psoc, - enum QDF_OPMODE vdev_opmode, - bool *value); - -/** - * wlan_mlme_get_indoor_support_for_nan - Get indoor channel support for NAN - * @psoc: pointer to psoc object - * @value: pointer to the value which will be filled for the caller - * - * Return: QDF Status - */ -QDF_STATUS -wlan_mlme_get_indoor_support_for_nan(struct wlan_objmgr_psoc *psoc, - bool *value); - /** * wlan_mlme_get_vht_enable2x2() - Enables/disables VHT Tx/Rx MCS values for 2x2 * @psoc: psoc context diff --git a/drivers/staging/qcacld-3.0/components/mlme/dispatcher/inc/wlan_mlme_public_struct.h b/drivers/staging/qcacld-3.0/components/mlme/dispatcher/inc/wlan_mlme_public_struct.h index d8f3376e8cb4..8c5a05c1e52d 100644 --- a/drivers/staging/qcacld-3.0/components/mlme/dispatcher/inc/wlan_mlme_public_struct.h +++ b/drivers/staging/qcacld-3.0/components/mlme/dispatcher/inc/wlan_mlme_public_struct.h @@ -2223,23 +2223,11 @@ struct wlan_mlme_mwc { }; #endif -/** - * enum mlme_reg_srd_master_modes - Bitmap of SRD master modes supported - * @MLME_SRD_MASTER_MODE_SAP: SRD master mode for SAP - * @MLME_SRD_MASTER_MODE_P2P_GO: SRD master mode for P2P-GO - * @MLME_SRD_MASTER_MODE_NAN: SRD master mode for NAN - */ -enum mlme_reg_srd_master_modes { - MLME_SRD_MASTER_MODE_SAP = 1, - MLME_SRD_MASTER_MODE_P2P_GO = 2, - MLME_SRD_MASTER_MODE_NAN = 4, -}; - /** * struct wlan_mlme_reg - REG related configs * @self_gen_frm_pwr: self-generated frame power in tx chain mask * for CCK rates - * @etsi_srd_chan_in_master_mode: etsi srd chan in master mode + * @etsi13_srd_chan_in_master_mode: etsi13 srd chan in master mode * @restart_beaconing_on_ch_avoid: restart beaconing on ch avoid * @indoor_channel_support: indoor channel support * @scan_11d_interval: scan 11d interval @@ -2255,11 +2243,10 @@ enum mlme_reg_srd_master_modes { * @enable_pending_chan_list_req: enables/disables scan channel * list command to FW till the current scan is complete. * @retain_nol_across_regdmn_update: Retain the NOL list across the regdomain. - * @enable_nan_on_indoor_channels: Enable nan on Indoor channels */ struct wlan_mlme_reg { uint32_t self_gen_frm_pwr; - uint8_t etsi_srd_chan_in_master_mode; + bool etsi13_srd_chan_in_master_mode; enum restart_beaconing_on_ch_avoid_rule restart_beaconing_on_ch_avoid; bool indoor_channel_support; @@ -2276,7 +2263,6 @@ struct wlan_mlme_reg { bool ignore_fw_reg_offload_ind; bool enable_pending_chan_list_req; bool retain_nol_across_regdmn_update; - bool enable_nan_on_indoor_channels; }; /** diff --git a/drivers/staging/qcacld-3.0/components/mlme/dispatcher/inc/wlan_mlme_ucfg_api.h b/drivers/staging/qcacld-3.0/components/mlme/dispatcher/inc/wlan_mlme_ucfg_api.h index 35830ed93e86..d19b2678d0d9 100644 --- a/drivers/staging/qcacld-3.0/components/mlme/dispatcher/inc/wlan_mlme_ucfg_api.h +++ b/drivers/staging/qcacld-3.0/components/mlme/dispatcher/inc/wlan_mlme_ucfg_api.h @@ -3766,7 +3766,7 @@ ucfg_mlme_get_mws_coex_scc_channel_avoid_delay(struct wlan_objmgr_psoc *psoc, #endif /** - * ucfg_mlme_get_etsi_srd_chan_in_master_mode - get etsi srd chan + * ucfg_mlme_get_etsi13_srd_chan_in_master_mode - get etsi13 srd chan * in master mode * @psoc: pointer to psoc object * @value: pointer to the value which will be filled for the caller @@ -3774,21 +3774,8 @@ ucfg_mlme_get_mws_coex_scc_channel_avoid_delay(struct wlan_objmgr_psoc *psoc, * Return: QDF Status */ QDF_STATUS -ucfg_mlme_get_etsi_srd_chan_in_master_mode(struct wlan_objmgr_psoc *psoc, - uint8_t *value); - -/** - * ucfg_mlme_get_srd_master_mode_for_vdev() - Get SRD master mode for vdev - * @psoc: pointer to psoc object - * @vdev_opmode: vdev opmode - * @value: pointer to the value which will be filled for the caller - * - * Return: QDF Status - */ -QDF_STATUS -ucfg_mlme_get_srd_master_mode_for_vdev(struct wlan_objmgr_psoc *psoc, - enum QDF_OPMODE vdev_opmode, - bool *value); +ucfg_mlme_get_etsi13_srd_chan_in_master_mode(struct wlan_objmgr_psoc *psoc, + bool *value); #ifdef SAP_AVOID_ACS_FREQ_LIST /** diff --git a/drivers/staging/qcacld-3.0/components/mlme/dispatcher/src/wlan_mlme_api.c b/drivers/staging/qcacld-3.0/components/mlme/dispatcher/src/wlan_mlme_api.c index ba7694e78860..32a43ec926b7 100644 --- a/drivers/staging/qcacld-3.0/components/mlme/dispatcher/src/wlan_mlme_api.c +++ b/drivers/staging/qcacld-3.0/components/mlme/dispatcher/src/wlan_mlme_api.c @@ -2985,59 +2985,6 @@ wlan_mlme_get_vht20_mcs9(struct wlan_objmgr_psoc *psoc, bool *value) return QDF_STATUS_SUCCESS; } -QDF_STATUS -wlan_mlme_get_indoor_support_for_nan(struct wlan_objmgr_psoc *psoc, - bool *value) -{ - struct wlan_mlme_psoc_ext_obj *mlme_obj; - - mlme_obj = mlme_get_psoc_ext_obj(psoc); - if (!mlme_obj) { - *value = false; - mlme_legacy_err("Failed to get MLME Obj"); - return QDF_STATUS_E_INVAL; - } - - *value = mlme_obj->cfg.reg.enable_nan_on_indoor_channels; - - return QDF_STATUS_SUCCESS; -} - -QDF_STATUS -wlan_mlme_get_srd_master_mode_for_vdev(struct wlan_objmgr_psoc *psoc, - enum QDF_OPMODE vdev_opmode, - bool *value) -{ - struct wlan_mlme_psoc_ext_obj *mlme_obj; - - mlme_obj = mlme_get_psoc_ext_obj(psoc); - if (!mlme_obj) { - *value = false; - mlme_legacy_err("Failed to get MLME Obj"); - return QDF_STATUS_E_INVAL; - } - - switch (vdev_opmode) { - case QDF_SAP_MODE: - *value = mlme_obj->cfg.reg.etsi_srd_chan_in_master_mode & - MLME_SRD_MASTER_MODE_SAP; - break; - case QDF_P2P_GO_MODE: - *value = mlme_obj->cfg.reg.etsi_srd_chan_in_master_mode & - MLME_SRD_MASTER_MODE_P2P_GO; - break; - case QDF_NAN_DISC_MODE: - *value = mlme_obj->cfg.reg.etsi_srd_chan_in_master_mode & - MLME_SRD_MASTER_MODE_NAN; - break; - default: - mlme_legacy_err("Unexpected opmode %d", vdev_opmode); - *value = false; - } - - return QDF_STATUS_SUCCESS; -} - QDF_STATUS wlan_mlme_get_vht_enable2x2(struct wlan_objmgr_psoc *psoc, bool *value) { diff --git a/drivers/staging/qcacld-3.0/components/mlme/dispatcher/src/wlan_mlme_ucfg_api.c b/drivers/staging/qcacld-3.0/components/mlme/dispatcher/src/wlan_mlme_ucfg_api.c index 114b98ed51df..19910b21e64f 100644 --- a/drivers/staging/qcacld-3.0/components/mlme/dispatcher/src/wlan_mlme_ucfg_api.c +++ b/drivers/staging/qcacld-3.0/components/mlme/dispatcher/src/wlan_mlme_ucfg_api.c @@ -1537,31 +1537,23 @@ ucfg_mlme_get_mws_coex_scc_channel_avoid_delay(struct wlan_objmgr_psoc *psoc, #endif QDF_STATUS -ucfg_mlme_get_etsi_srd_chan_in_master_mode(struct wlan_objmgr_psoc *psoc, - uint8_t *value) +ucfg_mlme_get_etsi13_srd_chan_in_master_mode(struct wlan_objmgr_psoc *psoc, + bool *value) { struct wlan_mlme_psoc_ext_obj *mlme_obj; mlme_obj = mlme_get_psoc_ext_obj(psoc); if (!mlme_obj) { - *value = cfg_default(CFG_ETSI_SRD_CHAN_IN_MASTER_MODE); + *value = cfg_default(CFG_ETSI13_SRD_CHAN_IN_MASTER_MODE); mlme_legacy_err("Failed to get MLME Obj"); return QDF_STATUS_E_INVAL; } - *value = mlme_obj->cfg.reg.etsi_srd_chan_in_master_mode; + *value = mlme_obj->cfg.reg.etsi13_srd_chan_in_master_mode; return QDF_STATUS_SUCCESS; } -QDF_STATUS -ucfg_mlme_get_srd_master_mode_for_vdev(struct wlan_objmgr_psoc *psoc, - enum QDF_OPMODE vdev_opmode, - bool *value) -{ - return wlan_mlme_get_srd_master_mode_for_vdev(psoc, vdev_opmode, value); -} - #ifdef SAP_AVOID_ACS_FREQ_LIST QDF_STATUS ucfg_mlme_get_acs_avoid_freq_list(struct wlan_objmgr_psoc *psoc, diff --git a/drivers/staging/qcacld-3.0/components/nan/core/inc/wlan_nan_api.h b/drivers/staging/qcacld-3.0/components/nan/core/inc/wlan_nan_api.h index 9cba0fffd401..d7d84eeb9294 100644 --- a/drivers/staging/qcacld-3.0/components/nan/core/inc/wlan_nan_api.h +++ b/drivers/staging/qcacld-3.0/components/nan/core/inc/wlan_nan_api.h @@ -207,18 +207,6 @@ bool wlan_nan_get_sap_conc_support(struct wlan_objmgr_psoc *psoc); * Return: Cleanup NAN state upon NAN disable */ QDF_STATUS nan_disable_cleanup(struct wlan_objmgr_psoc *psoc); - -/** - * wlan_is_nan_allowed_on_freq() - Check if NAN is allowed on given freq - * @pdev: pdev context - * @freq: Frequency to be checked - * - * Check if NAN/NDP can be enabled on given frequency. - * - * Return: True if NAN is allowed on the given frequency - */ -bool wlan_is_nan_allowed_on_freq(struct wlan_objmgr_pdev *pdev, uint32_t freq); - #else /* WLAN_FEATURE_NAN */ static inline QDF_STATUS nan_init(void) { @@ -264,11 +252,5 @@ QDF_STATUS nan_disable_cleanup(struct wlan_objmgr_psoc *psoc) { return QDF_STATUS_E_FAILURE; } - -static inline -bool wlan_is_nan_allowed_on_freq(struct wlan_objmgr_pdev *pdev, uint32_t freq) -{ - return false; -} #endif /* WLAN_FEATURE_NAN */ #endif /* _WLAN_NAN_API_H_ */ diff --git a/drivers/staging/qcacld-3.0/components/nan/core/src/nan_api.c b/drivers/staging/qcacld-3.0/components/nan/core/src/nan_api.c index 64c3bd3aaaf5..769c4722b02e 100644 --- a/drivers/staging/qcacld-3.0/components/nan/core/src/nan_api.c +++ b/drivers/staging/qcacld-3.0/components/nan/core/src/nan_api.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2021 The Linux Foundation. All rights reserved. + * Copyright (c) 2016-2020 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 @@ -30,7 +30,6 @@ #include "wlan_objmgr_pdev_obj.h" #include "wlan_objmgr_vdev_obj.h" #include "nan_ucfg_api.h" -#include static QDF_STATUS nan_psoc_obj_created_notification( struct wlan_objmgr_psoc *psoc, void *arg_list) @@ -415,24 +414,3 @@ QDF_STATUS nan_psoc_disable(struct wlan_objmgr_psoc *psoc) return QDF_STATUS_SUCCESS; } - -bool wlan_is_nan_allowed_on_freq(struct wlan_objmgr_pdev *pdev, uint32_t freq) -{ - bool nan_allowed = true; - - /* Check for SRD channels */ - if (wlan_reg_is_etsi13_srd_chan_for_freq(pdev, freq)) - wlan_mlme_get_srd_master_mode_for_vdev(wlan_pdev_get_psoc(pdev), - QDF_NAN_DISC_MODE, - &nan_allowed); - - /* Check for Indoor channels */ - if (wlan_reg_is_freq_indoor(pdev, freq)) - wlan_mlme_get_indoor_support_for_nan(wlan_pdev_get_psoc(pdev), - &nan_allowed); - /* Check for dfs only if channel is not indoor */ - else if (wlan_reg_is_dfs_for_freq(pdev, freq)) - nan_allowed = false; - - return nan_allowed; -} diff --git a/drivers/staging/qcacld-3.0/components/nan/dispatcher/inc/nan_ucfg_api.h b/drivers/staging/qcacld-3.0/components/nan/dispatcher/inc/nan_ucfg_api.h index 4504b592acce..23317241807b 100644 --- a/drivers/staging/qcacld-3.0/components/nan/dispatcher/inc/nan_ucfg_api.h +++ b/drivers/staging/qcacld-3.0/components/nan/dispatcher/inc/nan_ucfg_api.h @@ -455,19 +455,6 @@ bool ucfg_is_nan_vdev(struct wlan_objmgr_vdev *vdev); * Return: QDF_STATUS */ QDF_STATUS ucfg_nan_disable_ind_to_userspace(struct wlan_objmgr_psoc *psoc); - -/** - * ucfg_is_nan_allowed_on_freq() - Check if NAN is allowed on given freq - * @pdev: pdev context - * @freq: Frequency to be checked - * - * Check if NAN/NDP can be enabled on given frequency. - * Validate SRD channels based on the ini and reg domain. Assume rest of the - * channels support NAN/NDP for now. - * - * Return: True if NAN is allowed on the given frequency - */ -bool ucfg_is_nan_allowed_on_freq(struct wlan_objmgr_pdev *pdev, uint32_t freq); #else /* WLAN_FEATURE_NAN */ static inline @@ -575,11 +562,5 @@ QDF_STATUS ucfg_nan_disable_ind_to_userspace(struct wlan_objmgr_psoc *psoc) { return QDF_STATUS_SUCCESS; } - -static inline -bool ucfg_is_nan_allowed_on_freq(struct wlan_objmgr_pdev *pdev, uint32_t freq) -{ - return false; -} #endif /* WLAN_FEATURE_NAN */ #endif /* _NAN_UCFG_API_H_ */ diff --git a/drivers/staging/qcacld-3.0/components/nan/dispatcher/src/nan_ucfg_api.c b/drivers/staging/qcacld-3.0/components/nan/dispatcher/src/nan_ucfg_api.c index 5c150af68f73..769784e702ef 100644 --- a/drivers/staging/qcacld-3.0/components/nan/dispatcher/src/nan_ucfg_api.c +++ b/drivers/staging/qcacld-3.0/components/nan/dispatcher/src/nan_ucfg_api.c @@ -32,7 +32,6 @@ #include "wlan_policy_mgr_api.h" #include "cfg_ucfg_api.h" #include "cfg_nan.h" -#include "wlan_mlme_api.h" struct wlan_objmgr_psoc; struct wlan_objmgr_vdev; @@ -1273,8 +1272,3 @@ QDF_STATUS ucfg_nan_disable_ind_to_userspace(struct wlan_objmgr_psoc *psoc) qdf_mem_free(disable_ind); return QDF_STATUS_SUCCESS; } - -bool ucfg_is_nan_allowed_on_freq(struct wlan_objmgr_pdev *pdev, uint32_t freq) -{ - return wlan_is_nan_allowed_on_freq(pdev, freq); -} diff --git a/drivers/staging/qcacld-3.0/core/hdd/src/wlan_hdd_hostapd.c b/drivers/staging/qcacld-3.0/core/hdd/src/wlan_hdd_hostapd.c index 4a8e9de3701b..16adcadbb214 100644 --- a/drivers/staging/qcacld-3.0/core/hdd/src/wlan_hdd_hostapd.c +++ b/drivers/staging/qcacld-3.0/core/hdd/src/wlan_hdd_hostapd.c @@ -6356,8 +6356,6 @@ static int __wlan_hdd_cfg80211_start_ap(struct wiphy *wiphy, struct cfg80211_chan_def new_chandef; struct cfg80211_chan_def *chandef; uint16_t sap_ch; - bool srd_channel_allowed; - enum QDF_OPMODE vdev_opmode; hdd_enter(); @@ -6462,15 +6460,9 @@ static int __wlan_hdd_cfg80211_start_ap(struct wiphy *wiphy, hdd_err("SAP not allowed on DFS channel if no dfs master capability!!"); return -EINVAL; } - - vdev_opmode = wlan_vdev_mlme_get_opmode(adapter->vdev); - ucfg_mlme_get_srd_master_mode_for_vdev(hdd_ctx->psoc, vdev_opmode, - &srd_channel_allowed); - - if (!srd_channel_allowed && + if (!wlan_reg_is_etsi13_srd_chan_allowed_master_mode(hdd_ctx->pdev) && wlan_reg_is_etsi13_srd_chan(hdd_ctx->pdev, channel)) { - hdd_err("vdev opmode %d not allowed on SRD channel.", - vdev_opmode); + hdd_err("SAP not allowed on SRD channel."); return -EINVAL; } if (cds_is_sub_20_mhz_enabled()) { diff --git a/drivers/staging/qcacld-3.0/core/hdd/src/wlan_hdd_regulatory.c b/drivers/staging/qcacld-3.0/core/hdd/src/wlan_hdd_regulatory.c index 3bc1b0a86e88..5257244051ff 100644 --- a/drivers/staging/qcacld-3.0/core/hdd/src/wlan_hdd_regulatory.c +++ b/drivers/staging/qcacld-3.0/core/hdd/src/wlan_hdd_regulatory.c @@ -212,7 +212,7 @@ static void reg_program_config_vars(struct hdd_context *hdd_ctx, uint32_t band_capability = 0, scan_11d_interval = 0; bool indoor_chan_enabled = false; uint32_t restart_beaconing = 0; - uint8_t enable_srd_chan; + bool enable_srd_chan = false; QDF_STATUS status; bool country_priority = 0; bool value = false; @@ -258,8 +258,8 @@ static void reg_program_config_vars(struct hdd_context *hdd_ctx, &restart_beaconing); config_vars->restart_beaconing = restart_beaconing; - ucfg_mlme_get_etsi_srd_chan_in_master_mode(hdd_ctx->psoc, - &enable_srd_chan); + ucfg_mlme_get_etsi13_srd_chan_in_master_mode(hdd_ctx->psoc, + &enable_srd_chan); config_vars->enable_srd_chan_in_master_mode = enable_srd_chan; ucfg_mlme_get_11d_in_world_mode(hdd_ctx->psoc, diff --git a/drivers/staging/qcacld-3.0/core/mac/inc/sir_api.h b/drivers/staging/qcacld-3.0/core/mac/inc/sir_api.h index e9c073c61ea3..8f2eae634b2e 100644 --- a/drivers/staging/qcacld-3.0/core/mac/inc/sir_api.h +++ b/drivers/staging/qcacld-3.0/core/mac/inc/sir_api.h @@ -2557,7 +2557,6 @@ typedef struct sSirScanOffloadEvent { * @dfsSet: is dfs supported or not * @half_rate: is the channel operating at 10MHz * @quarter_rate: is the channel operating at 5MHz - * @nan_disabled: is NAN disabled on @freq */ typedef struct sSirUpdateChanParam { uint32_t freq; @@ -2565,7 +2564,6 @@ typedef struct sSirUpdateChanParam { bool dfsSet; bool half_rate; bool quarter_rate; - bool nan_disabled; } tSirUpdateChanParam, *tpSirUpdateChanParam; typedef struct sSirUpdateChan { diff --git a/drivers/staging/qcacld-3.0/core/sap/src/sap_fsm.c b/drivers/staging/qcacld-3.0/core/sap/src/sap_fsm.c index ea42d05f7c14..40a77eaaef58 100644 --- a/drivers/staging/qcacld-3.0/core/sap/src/sap_fsm.c +++ b/drivers/staging/qcacld-3.0/core/sap/src/sap_fsm.c @@ -3390,8 +3390,6 @@ static QDF_STATUS sap_get_freq_list(struct sap_context *sap_ctx, struct acs_weight_range *range_list; bool freq_present_in_list = false; uint8_t i; - bool srd_chan_enabled; - enum QDF_OPMODE vdev_opmode; mac_ctx = sap_get_mac_context(); if (!mac_ctx) { @@ -3510,19 +3508,15 @@ static QDF_STATUS sap_get_freq_list(struct sap_context *sap_ctx, mac_ctx->mlme_cfg->acs.np_chan_weightage); freq_present_in_list = true; } - - vdev_opmode = wlan_vdev_mlme_get_opmode(sap_ctx->vdev); - wlan_mlme_get_srd_master_mode_for_vdev(mac_ctx->psoc, - vdev_opmode, - &srd_chan_enabled); - - if (!srd_chan_enabled && - wlan_reg_is_etsi13_srd_chan_for_freq(mac_ctx->pdev, - WLAN_REG_CH_TO_FREQ(loop_count))) { - sap_debug("vdev opmode %d not allowed on SRD freq %d", - vdev_opmode, WLAN_REG_CH_TO_FREQ(loop_count)); + /* Dont scan ETSI13 SRD channels if the ETSI13 SRD channels + * are not enabled in master mode + */ + if (!wlan_reg_is_etsi13_srd_chan_allowed_master_mode(mac_ctx-> + pdev) && + wlan_reg_is_etsi13_srd_chan_for_freq( + mac_ctx->pdev, + WLAN_REG_CH_TO_FREQ(loop_count))) continue; - } /* Check if the freq is present in range list */ for (i = 0; i < mac_ctx->mlme_cfg->acs.num_weight_range; i++) { diff --git a/drivers/staging/qcacld-3.0/core/sme/src/csr/csr_api_roam.c b/drivers/staging/qcacld-3.0/core/sme/src/csr/csr_api_roam.c index ee56af75a18d..5db129d2d307 100644 --- a/drivers/staging/qcacld-3.0/core/sme/src/csr/csr_api_roam.c +++ b/drivers/staging/qcacld-3.0/core/sme/src/csr/csr_api_roam.c @@ -67,7 +67,6 @@ #include "wlan_scan_utils_api.h" #include "wlan_p2p_cfg_api.h" #include "cfg_nan_api.h" -#include "nan_ucfg_api.h" #include @@ -1548,12 +1547,11 @@ QDF_STATUS csr_update_channel_list(struct mac_context *mac) } } - if (!ucfg_is_nan_allowed_on_freq(mac->pdev, - pChanList->chanParam[num_channel].freq)) - pChanList->chanParam[num_channel].nan_disabled = - true; - if (CHANNEL_STATE_ENABLE != channel_state) + if (CHANNEL_STATE_ENABLE == channel_state) + pChanList->chanParam[num_channel].dfsSet = + false; + else pChanList->chanParam[num_channel].dfsSet = true; diff --git a/drivers/staging/qcacld-3.0/core/wma/src/wma_scan_roam.c b/drivers/staging/qcacld-3.0/core/wma/src/wma_scan_roam.c index 6900530d1aa8..3efd72ebdefc 100644 --- a/drivers/staging/qcacld-3.0/core/wma/src/wma_scan_roam.c +++ b/drivers/staging/qcacld-3.0/core/wma/src/wma_scan_roam.c @@ -168,9 +168,6 @@ QDF_STATUS wma_update_channel_list(WMA_HANDLE handle, chan_p->dfs_set = 1; } - if (chan_list->chanParam[i].nan_disabled) - chan_p->nan_disabled = 1; - if (chan_p->mhz < WMA_2_4_GHZ_MAX_FREQ) { chan_p->phy_mode = MODE_11G; if (chan_list->vht_en && chan_list->vht_24_en)