From 334aa8de95d4d3117dda148783c00796cdcfb6dc Mon Sep 17 00:00:00 2001 From: Yeshwanth Sriram Guntuka Date: Mon, 20 Aug 2018 16:49:15 +0530 Subject: [PATCH] qcacld-3.0: Add MLME CFG items of FE_WLM and FE_RRM Add the following WLM and RRM ini configs to MLME cfg: CFG_LATENCY_ENABLE CFG_LATENCY_LEVEL CFG_LATENCY_FLAGS_NORMAL CFG_LATENCY_FLAGS_MOD CFG_LATENCY_FLAGS_LOW CFG_LATENCY_FLAGS_ULTLOW CFG_RRM_ENABLE CFG_RRM_MEAS_RAND_INTVL CFG_RM_CAPABILITY Change-Id: I714aca1e9bc6d3c330934753364d7f58d93a28d7 CRs-Fixed: 2353103 --- components/mlme/core/src/wlan_mlme_main.c | 48 +++ components/mlme/dispatcher/inc/cfg_mlme.h | 4 + .../mlme/dispatcher/inc/cfg_mlme_fe_rrm.h | 106 +++++++ .../mlme/dispatcher/inc/cfg_mlme_fe_wlm.h | 246 +++++++++++++++ .../mlme/dispatcher/inc/wlan_mlme_api.h | 10 + .../dispatcher/inc/wlan_mlme_public_struct.h | 31 ++ .../mlme/dispatcher/inc/wlan_mlme_ucfg_api.h | 14 + .../mlme/dispatcher/src/wlan_mlme_api.c | 15 + core/hdd/inc/wlan_hdd_cfg.h | 286 ------------------ core/hdd/src/wlan_hdd_cfg.c | 99 ------ core/hdd/src/wlan_hdd_wext.c | 7 +- core/sme/inc/csr_api.h | 4 - core/sme/inc/csr_internal.h | 3 - core/sme/inc/sme_rrm_api.h | 2 - core/sme/src/common/sme_api.c | 11 +- core/sme/src/csr/csr_api_roam.c | 17 -- core/sme/src/rrm/sme_rrm.c | 37 +-- 17 files changed, 501 insertions(+), 439 deletions(-) create mode 100644 components/mlme/dispatcher/inc/cfg_mlme_fe_rrm.h create mode 100644 components/mlme/dispatcher/inc/cfg_mlme_fe_wlm.h diff --git a/components/mlme/core/src/wlan_mlme_main.c b/components/mlme/core/src/wlan_mlme_main.c index bf16442766..9397b87488 100644 --- a/components/mlme/core/src/wlan_mlme_main.c +++ b/components/mlme/core/src/wlan_mlme_main.c @@ -25,6 +25,7 @@ #include "wmi_unified.h" #include "wlan_scan_public_structs.h" #include "wlan_vdev_mlme_api.h" +#include "wlan_mlme_api.h" #define NUM_OF_SOUNDING_DIMENSIONS 1 /*Nss - 1, (Nss = 2 for 2x2)*/ @@ -1857,6 +1858,51 @@ static void mlme_init_btm_cfg(struct wlan_mlme_btm *btm) btm->btm_sticky_time = cfg_default(CFG_BTM_STICKY_TIME); } +/** + * mlme_init_fe_wlm_in_cfg() - Populate WLM INI in MLME cfg + * @psoc: pointer to the psoc object + * @wlm_config: pointer to the MLME WLM cfg + * + * Return: None + */ +static void mlme_init_fe_wlm_in_cfg(struct wlan_objmgr_psoc *psoc, + struct wlan_mlme_fe_wlm *wlm_config) +{ + wlm_config->latency_enable = cfg_get(psoc, CFG_LATENCY_ENABLE); + wlm_config->latency_level = cfg_get(psoc, CFG_LATENCY_LEVEL); + wlm_config->latency_flags[0] = cfg_get(psoc, CFG_LATENCY_FLAGS_NORMAL); + wlm_config->latency_flags[1] = cfg_get(psoc, CFG_LATENCY_FLAGS_MOD); + wlm_config->latency_flags[2] = cfg_get(psoc, CFG_LATENCY_FLAGS_LOW); + wlm_config->latency_flags[3] = cfg_get(psoc, CFG_LATENCY_FLAGS_ULTLOW); +} + +/** + * mlme_init_fe_rrm_in_cfg() - Populate RRM INI in MLME cfg + * @psoc: pointer to the psoc object + * @rrm_config: pointer to the MLME RRM cfg + * + * Return: None + */ +static void mlme_init_fe_rrm_in_cfg(struct wlan_objmgr_psoc *psoc, + struct wlan_mlme_fe_rrm *rrm_config) +{ + qdf_size_t len; + + rrm_config->rrm_enabled = cfg_get(psoc, CFG_RRM_ENABLE); + rrm_config->rrm_rand_interval = cfg_get(psoc, CFG_RRM_MEAS_RAND_INTVL); + + qdf_uint8_array_parse(cfg_get(psoc, CFG_RM_CAPABILITY), + rrm_config->rm_capability, + sizeof(rrm_config->rm_capability), &len); + + if (len < MLME_RMENABLEDCAP_MAX_LEN) { + mlme_debug("Incorrect RM capability, using default"); + qdf_uint8_array_parse(cfg_default(CFG_RM_CAPABILITY), + rrm_config->rm_capability, + sizeof(rrm_config->rm_capability), &len); + } +} + QDF_STATUS mlme_cfg_on_psoc_enable(struct wlan_objmgr_psoc *psoc) { struct wlan_mlme_psoc_obj *mlme_obj; @@ -1900,6 +1946,8 @@ QDF_STATUS mlme_cfg_on_psoc_enable(struct wlan_objmgr_psoc *psoc) mlme_init_wifi_pos_cfg(psoc, &mlme_cfg->wifi_pos_cfg); mlme_init_wps_params_cfg(psoc, &mlme_cfg->wps_params); mlme_init_btm_cfg(&mlme_cfg->btm); + mlme_init_fe_wlm_in_cfg(psoc, &mlme_cfg->wlm_config); + mlme_init_fe_rrm_in_cfg(psoc, &mlme_cfg->rrm_config); return status; } diff --git a/components/mlme/dispatcher/inc/cfg_mlme.h b/components/mlme/dispatcher/inc/cfg_mlme.h index 9b428e188e..1c7f0f8272 100644 --- a/components/mlme/dispatcher/inc/cfg_mlme.h +++ b/components/mlme/dispatcher/inc/cfg_mlme.h @@ -52,6 +52,8 @@ #include "cfg_mlme_wep_params.h" #include "cfg_mlme_wifi_pos.h" #include "cfg_mlme_btm.h" +#include "cfg_mlme_fe_wlm.h" +#include "cfg_mlme_fe_rrm.h" /* Please Maintain Alphabetic Order here */ #define CFG_MLME_ALL \ @@ -60,6 +62,8 @@ CFG_CHAINMASK_ALL \ CFG_DFS_ALL \ CFG_EDCA_PARAMS_ALL \ + CFG_FE_RRM_ALL \ + CFG_FE_WLM_ALL \ CFG_FEATURE_FLAG_ALL \ CFG_GENERIC_ALL \ CFG_HT_CAPS_ALL \ diff --git a/components/mlme/dispatcher/inc/cfg_mlme_fe_rrm.h b/components/mlme/dispatcher/inc/cfg_mlme_fe_rrm.h new file mode 100644 index 0000000000..9a81b7a743 --- /dev/null +++ b/components/mlme/dispatcher/inc/cfg_mlme_fe_rrm.h @@ -0,0 +1,106 @@ +/* + * 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_FE_RRM_H +#define __CFG_MLME_FE_RRM_H + +/* + * + * gRrmEnable - Enable/Disable RRM + * @Min: 0 + * @Max: 1 + * @Default: 0 + * + * This ini is used to controls the capabilities (11 k) included + * in the capabilities field. + * + * Related: None. + * + * Supported Feature: 11k + * + * Usage: Internal/External + * + * + */ +#define CFG_RRM_ENABLE CFG_INI_BOOL("gRrmEnable", \ + 0, \ + "Enable/Disable RRM") + +/* + * + * gRrmRandnIntvl - Randomization interval + * @Min: 10 + * @Max: 100 + * @Default: 100 + * + * This ini is used to set randomization interval which is used to start a timer + * of a random value within randomization interval. Next RRM Scan request + * will be issued after the expiry of this random interval. + * + * Related: None. + * + * Supported Feature: 11k + * + * Usage: Internal/External + * + * + */ +#define CFG_RRM_MEAS_RAND_INTVL CFG_INI_UINT("gRrmRandnIntvl", \ + 10, \ + 100, \ + 100, \ + CFG_VALUE_OR_DEFAULT, \ + "RRM Randomization interval") + +/* + * + * rm_capability - Configure RM enabled capabilities IE + * @Default: 0x73,0x10,0x91,0x00,0x04 + * + * This ini is used to configure RM enabled capabilities IE. + * Using this INI, we can set/unset any of the bits in 5 bytes + * (last 4bytes are reserved). Bit details are updated as per + * Draft version of 11mc spec. (Draft P802.11REVmc_D4.2) + * + * Bitwise details are defined as bit mask in rrm_global.h + * Comma is used as a separator for each byte. + * + * Related: None. + * + * Supported Feature: 11k + * + * Usage: Internal/External + * + * + */ +#define CFG_RM_CAPABILITY CFG_INI_STRING("rm_capability", \ + 24, \ + 40, \ + "0x73,0x10,0x91,0x00,0x04", \ + "RM enabled capabilities IE") + +#define CFG_FE_RRM_ALL \ + CFG(CFG_RRM_ENABLE) \ + CFG(CFG_RRM_MEAS_RAND_INTVL) \ + CFG(CFG_RM_CAPABILITY) + +#endif /* __CFG_MLME_FE_RRM_H */ diff --git a/components/mlme/dispatcher/inc/cfg_mlme_fe_wlm.h b/components/mlme/dispatcher/inc/cfg_mlme_fe_wlm.h new file mode 100644 index 0000000000..701e9a7493 --- /dev/null +++ b/components/mlme/dispatcher/inc/cfg_mlme_fe_wlm.h @@ -0,0 +1,246 @@ +/* + * 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_FE_WLM_H +#define __CFG_MLME_FE_WLM_H + +/* + * + * wlm_latency_enable - WLM latency Enable + * + * @min: 0 + * @max: 1 + * @default: 0 + * + * 0 - disable + * 1 - enable + * + * + */ +#define CFG_LATENCY_ENABLE CFG_INI_BOOL("wlm_latency_enable", \ + 0, \ + "WLM latency Enable") + +/* + * + * wlm_latency_level - WLM latency level + * Define 4 latency level to gain latency + * + * @min: 0 + * @max: 3 + * @defalut: 0 + * + * 0 - normal + * 1 - moderate + * 2 - low + * 3 - ultralow + * + * + */ +#define CFG_LATENCY_LEVEL CFG_INI_UINT("wlm_latency_level", \ + 0, \ + 3, \ + 0, \ + CFG_VALUE_OR_DEFAULT, \ + "WLM latency level") + +/* + * + * wlm_latency_flags_normal - WLM flags setting for normal level + * + * @min: 0x0 + * @max: 0xffffffff + * @defalut: 0x0 + * + * |31 12| 11 | 10 |9 8|7 6|5 4|3 2| 1 | 0 | + * +------+------+------+------+------+------+------+-----+-----+ + * | RSVD | SSLP | CSLP | RSVD | Roam | RSVD | DWLT | DFS | SUP | + * +------+-------------+-------------+-------------------------+ + * | WAL | PS | Roam | Scan | + * + * bit 0: Avoid scan request from HLOS if setting + * bit 1: Skip DFS channel SCAN if setting + * bit 2-3: Define policy of dwell time/duration for each foreign channel + * (b2 b3) + * (0 0 ): Default scan dwell time + * (0 1 ): Reserve + * (1 0 ): Shrink off channel dwell time + * (1 1 ): Reserve + * bit 4-5: Reserve for scan + * bit 6-7: Define roaming policy + * (b6 b7) + * (0 0 ): Default roaming behavior, allow roaming in all scenarios + * (0 1 ): Disallow all roaming + * (1 0 ): Allow roaming when final bmissed + * (1 1 ): Reserve + * bit 8-9: Reserve for roaming + * bit 10: Disable css power collapse if setting + * bit 11: Disable sys sleep if setting + * bit 12-31: Reserve for future useage + * + * + */ +#define CFG_LATENCY_FLAGS_NORMAL CFG_INI_UINT("wlm_latency_flags_normal", \ + 0, \ + 0xffffffff, \ + 0, \ + CFG_VALUE_OR_DEFAULT, \ + "WLM flag setting for normal lvl") + +/* + * + * wlm_latency_flags_moderate - WLM flags setting for moderate level + * + * @min: 0x0 + * @max: 0xffffffff + * @defalut: 0x8 + * + * |31 12| 11 | 10 |9 8|7 6|5 4|3 2| 1 | 0 | + * +------+------+------+------+------+------+------+-----+-----+ + * | RSVD | SSLP | CSLP | RSVD | Roam | RSVD | DWLT | DFS | SUP | + * +------+-------------+-------------+-------------------------+ + * | WAL | PS | Roam | Scan | + * + * bit 0: Avoid scan request from HLOS if setting + * bit 1: Skip DFS channel SCAN if setting + * bit 2-3: Define policy of dwell time/duration for each foreign channel + * (b2 b3) + * (0 0 ): Default scan dwell time + * (0 1 ): Reserve + * (1 0 ): Shrink off channel dwell time + * (1 1 ): Reserve + * bit 4-5: Reserve for scan + * bit 6-7: Define roaming policy + * (b6 b7) + * (0 0 ): Default roaming behavior, allow roaming in all scenarios + * (0 1 ): Disallow all roaming + * (1 0 ): Allow roaming when final bmissed + * (1 1 ): Reserve + * bit 8-9: Reserve for roaming + * bit 10: Disable css power collapse if setting + * bit 11: Disable sys sleep if setting + * bit 12-31: Reserve for future useage + * + * + */ +#define CFG_LATENCY_FLAGS_MOD CFG_INI_UINT("wlm_latency_flags_moderate", \ + 0, \ + 0xffffffff, \ + 0x8, \ + CFG_VALUE_OR_DEFAULT, \ + "WLM flag setting for moderate lvl") + +/* + * + * wlm_latency_flags_low - WLM flags setting for low level + * + * @min: 0x0 + * @max: 0xffffffff + * @defalut: 0xa + * + * |31 12| 11 | 10 |9 8|7 6|5 4|3 2| 1 | 0 | + * +------+------+------+------+------+------+------+-----+-----+ + * | RSVD | SSLP | CSLP | RSVD | Roam | RSVD | DWLT | DFS | SUP | + * +------+-------------+-------------+-------------------------+ + * | WAL | PS | Roam | Scan | + * + * bit 0: Avoid scan request from HLOS if setting + * bit 1: Skip DFS channel SCAN if setting + * bit 2-3: Define policy of dwell time/duration for each foreign channel + * (b2 b3) + * (0 0 ): Default scan dwell time + * (0 1 ): Reserve + * (1 0 ): Shrink off channel dwell time + * (1 1 ): Reserve + * bit 4-5: Reserve for scan + * bit 6-7: Define roaming policy + * (b6 b7) + * (0 0 ): Default roaming behavior, allow roaming in all scenarios + * (0 1 ): Disallow all roaming + * (1 0 ): Allow roaming when final bmissed + * (1 1 ): Reserve + * bit 8-9: Reserve for roaming + * bit 10: Disable css power collapse if setting + * bit 11: Disable sys sleep if setting + * bit 12-31: Reserve for future useage + * + * + */ +#define CFG_LATENCY_FLAGS_LOW CFG_INI_UINT("wlm_latency_flags_low", \ + 0, \ + 0xffffffff, \ + 0xa, \ + CFG_VALUE_OR_DEFAULT, \ + "WLM flags setting for low level") + +/* + * + * wlm_latency_flags_ultralow - WLM flags setting for ultralow level + * + * @min: 0x0 + * @max: 0xffffffff + * @defalut: 0xc8a + * + * |31 12| 11 | 10 |9 8|7 6|5 4|3 2| 1 | 0 | + * +------+------+------+------+------+------+------+-----+-----+ + * | RSVD | SSLP | CSLP | RSVD | Roam | RSVD | DWLT | DFS | SUP | + * +------+-------------+-------------+-------------------------+ + * | WAL | PS | Roam | Scan | + * + * bit 0: Avoid scan request from HLOS if setting + * bit 1: Skip DFS channel SCAN if setting + * bit 2-3: Define policy of dwell time/duration for each foreign channel + * (b2 b3) + * (0 0 ): Default scan dwell time + * (0 1 ): Reserve + * (1 0 ): Shrink off channel dwell time + * (1 1 ): Reserve + * bit 4-5: Reserve for scan + * bit 6-7: Define roaming policy + * (b6 b7) + * (0 0 ): Default roaming behavior, allow roaming in all scenarios + * (0 1 ): Disallow all roaming + * (1 0 ): Allow roaming when final bmissed + * (1 1 ): Reserve + * bit 8-9: Reserve for roaming + * bit 10: Disable css power collapse if setting + * bit 11: Disable sys sleep if setting + * bit 12-31: Reserve for future useage + * + * + */ +#define CFG_LATENCY_FLAGS_ULTLOW CFG_INI_UINT("wlm_latency_flags_ultralow",\ + 0, \ + 0xffffffff, \ + 0xc8a, \ + CFG_VALUE_OR_DEFAULT, \ + "WLM flags for ultralow level") + +#define CFG_FE_WLM_ALL \ + CFG(CFG_LATENCY_ENABLE) \ + CFG(CFG_LATENCY_LEVEL) \ + CFG(CFG_LATENCY_FLAGS_NORMAL) \ + CFG(CFG_LATENCY_FLAGS_MOD) \ + CFG(CFG_LATENCY_FLAGS_LOW) \ + CFG(CFG_LATENCY_FLAGS_ULTLOW) + +#endif /* __CFG_MLME_FE_WLM_H */ diff --git a/components/mlme/dispatcher/inc/wlan_mlme_api.h b/components/mlme/dispatcher/inc/wlan_mlme_api.h index 055d7d4256..14e2483d6c 100644 --- a/components/mlme/dispatcher/inc/wlan_mlme_api.h +++ b/components/mlme/dispatcher/inc/wlan_mlme_api.h @@ -1963,4 +1963,14 @@ wlan_mlme_get_mcc_rts_cts_prot(struct wlan_objmgr_psoc *psoc, QDF_STATUS wlan_mlme_get_mcc_feature(struct wlan_objmgr_psoc *psoc, uint8_t *value); + +/** + * wlan_mlme_get_rrm_enabled() - Get the RRM enabled ini + * @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_rrm_enabled(struct wlan_objmgr_psoc *psoc, + bool *value); #endif /* _WLAN_MLME_API_H_ */ diff --git a/components/mlme/dispatcher/inc/wlan_mlme_public_struct.h b/components/mlme/dispatcher/inc/wlan_mlme_public_struct.h index ea2508f519..c6366d2162 100644 --- a/components/mlme/dispatcher/inc/wlan_mlme_public_struct.h +++ b/components/mlme/dispatcher/inc/wlan_mlme_public_struct.h @@ -265,6 +265,9 @@ struct wlan_mlme_edca_params { #define WLAN_CFG_MFR_PRODUCT_NAME_LEN (31) #define WLAN_CFG_MFR_PRODUCT_VERSION_LEN (31) +#define MLME_NUM_WLM_LATENCY_LEVEL 4 +#define MLME_RMENABLEDCAP_MAX_LEN 5 + /** * struct mlme_ht_capabilities_info - HT Capabilities Info * @l_sig_tx_op_protection: L-SIG TXOP Protection Mechanism support @@ -1699,6 +1702,30 @@ struct wlan_mlme_btm { uint32_t btm_sticky_time; }; +/** + * struct wlan_mlme_fe_wlm - WLM related configs + * @latency_enable: Flag to check if latency is enabled + * @latency_level: WLM latency level + * @latency_flags: WLM latency flags setting + */ +struct wlan_mlme_fe_wlm { + bool latency_enable; + uint8_t latency_level; + uint32_t latency_flags[MLME_NUM_WLM_LATENCY_LEVEL]; +}; + +/** + * struct wlan_mlme_fe_rrm - RRM related configs + * @rrm_enabled: Flag to check if RRM is enabled + * @rrm_rand_interval: RRM randomization interval + * @rm_capability: RM enabled capabilities IE + */ +struct wlan_mlme_fe_rrm { + bool rrm_enabled; + uint8_t rrm_rand_interval; + uint8_t rm_capability[MLME_RMENABLEDCAP_MAX_LEN]; +}; + /** * struct wlan_mlme_cfg - MLME config items * @chainmask_cfg: VHT chainmask related cfg items @@ -1731,6 +1758,8 @@ struct wlan_mlme_btm { * @wmm_params: WMM related CFG & INI Items * @wps_params: WPS related CFG itmes * @btm: BTM related CFG itmes + * @wlm_config: WLM related CFG items + * @rrm_config: RRM related CFG items */ struct wlan_mlme_cfg { struct wlan_mlme_chainmask chainmask_cfg; @@ -1765,6 +1794,8 @@ struct wlan_mlme_cfg { struct wlan_mlme_wmm_params wmm_params; struct wlan_mlme_wps_params wps_params; struct wlan_mlme_btm btm; + struct wlan_mlme_fe_wlm wlm_config; + struct wlan_mlme_fe_rrm rrm_config; }; #endif diff --git a/components/mlme/dispatcher/inc/wlan_mlme_ucfg_api.h b/components/mlme/dispatcher/inc/wlan_mlme_ucfg_api.h index 974ddce3a3..27d45e86ca 100644 --- a/components/mlme/dispatcher/inc/wlan_mlme_ucfg_api.h +++ b/components/mlme/dispatcher/inc/wlan_mlme_ucfg_api.h @@ -3194,4 +3194,18 @@ ucfg_mlme_get_mcc_feature(struct wlan_objmgr_psoc *psoc, { return wlan_mlme_get_mcc_feature(psoc, value); } + +/** + * ucfg_wlan_mlme_get_rrm_enabled() - Get the rrm enabled + * @psoc: pointer to psoc object + * @value: Value that needs to be get from the caller + * + * Return: QDF Status + */ +static inline +QDF_STATUS ucfg_wlan_mlme_get_rrm_enabled(struct wlan_objmgr_psoc *psoc, + bool *value) +{ + return wlan_mlme_get_rrm_enabled(psoc, value); +} #endif /* _WLAN_MLME_UCFG_API_H_ */ diff --git a/components/mlme/dispatcher/src/wlan_mlme_api.c b/components/mlme/dispatcher/src/wlan_mlme_api.c index 2906cb778f..5b6d93068b 100644 --- a/components/mlme/dispatcher/src/wlan_mlme_api.c +++ b/components/mlme/dispatcher/src/wlan_mlme_api.c @@ -3178,3 +3178,18 @@ QDF_STATUS wlan_mlme_set_sap_uapsd_flag(struct wlan_objmgr_psoc *psoc, return QDF_STATUS_SUCCESS; } + +QDF_STATUS wlan_mlme_get_rrm_enabled(struct wlan_objmgr_psoc *psoc, + bool *value) +{ + struct wlan_mlme_psoc_obj *mlme_obj; + + mlme_obj = mlme_get_psoc_obj(psoc); + if (!mlme_obj) { + mlme_err("Failed to get MLME Obj"); + return QDF_STATUS_E_FAILURE; + } + *value = mlme_obj->cfg.rrm_config.rrm_enabled; + + return QDF_STATUS_SUCCESS; +} diff --git a/core/hdd/inc/wlan_hdd_cfg.h b/core/hdd/inc/wlan_hdd_cfg.h index d070f2b87e..81f8491ce2 100644 --- a/core/hdd/inc/wlan_hdd_cfg.h +++ b/core/hdd/inc/wlan_hdd_cfg.h @@ -1268,209 +1268,6 @@ enum hdd_dot11_mode { #define CFG_IBSS_PS_1RX_CHAIN_IN_ATIM_WINDOW_MAX (1) #define CFG_IBSS_PS_1RX_CHAIN_IN_ATIM_WINDOW_DEFAULT (0) -/* - * - * wlm_latency_enable - WLM latency Enable - * - * @min: 0 - * @max: 1 - * @default: 0 - * - * 0 - disable - * 1 - enable - * - * - */ -#define CFG_LATENCY_ENABLE_NAME "wlm_latency_enable" -#define CFG_LATENCY_ENABLE_MIN (0) -#define CFG_LATENCY_ENABLE_MAX (1) -#define CFG_LATENCY_ENABLE_DEFAULT (0) - -/* - * - * wlm_latency_level - WLM latency level - * Define 4 latency level to gain latency - * - * @min: 0 - * @max: 3 - * @defalut: 0 - * - * 0 - normal - * 1 - moderate - * 2 - low - * 3 - ultralow - * - * - */ -#define CFG_LATENCY_LEVEL_NAME "wlm_latency_level" -#define CFG_LATENCY_LEVEL_MIN (0) -#define CFG_LATENCY_LEVEL_MAX (3) -#define CFG_LATENCY_LEVEL_DEFAULT (0) - -/* - * - * wlm_latency_flags_normal - WLM flags setting for normal level - * - * @min: 0x0 - * @max: 0xffffffff - * @defalut: 0x0 - * - * |31 12| 11 | 10 |9 8|7 6|5 4|3 2| 1 | 0 | - * +------+------+------+------+------+------+------+-----+-----+ - * | RSVD | SSLP | CSLP | RSVD | Roam | RSVD | DWLT | DFS | SUP | - * +------+-------------+-------------+-------------------------+ - * | WAL | PS | Roam | Scan | - * - * bit 0: Avoid scan request from HLOS if setting - * bit 1: Skip DFS channel SCAN if setting - * bit 2-3: Define policy of dwell time/duration for each foreign channel - * (b2 b3) - * (0 0 ): Default scan dwell time - * (0 1 ): Reserve - * (1 0 ): Shrink off channel dwell time - * (1 1 ): Reserve - * bit 4-5: Reserve for scan - * bit 6-7: Define roaming policy - * (b6 b7) - * (0 0 ): Default roaming behavior, allow roaming in all scenarios - * (0 1 ): Disallow all roaming - * (1 0 ): Allow roaming when final bmissed - * (1 1 ): Reserve - * bit 8-9: Reserve for roaming - * bit 10: Disable css power collapse if setting - * bit 11: Disable sys sleep if setting - * bit 12-31: Reserve for future useage - * - * - */ -#define CFG_LATENCY_FLAGS_NORMAL_NAME "wlm_latency_flags_normal" -#define CFG_LATENCY_FLAGS_NORMAL_MIN (0x0) -#define CFG_LATENCY_FLAGS_NORMAL_MAX (0xffffffff) -#define CFG_LATENCY_FLAGS_NORMAL_DEFAULT (0x0) - -/* - * - * wlm_latency_flags_moderate - WLM flags setting for moderate level - * - * @min: 0x0 - * @max: 0xffffffff - * @defalut: 0x8 - * - * |31 12| 11 | 10 |9 8|7 6|5 4|3 2| 1 | 0 | - * +------+------+------+------+------+------+------+-----+-----+ - * | RSVD | SSLP | CSLP | RSVD | Roam | RSVD | DWLT | DFS | SUP | - * +------+-------------+-------------+-------------------------+ - * | WAL | PS | Roam | Scan | - * - * bit 0: Avoid scan request from HLOS if setting - * bit 1: Skip DFS channel SCAN if setting - * bit 2-3: Define policy of dwell time/duration for each foreign channel - * (b2 b3) - * (0 0 ): Default scan dwell time - * (0 1 ): Reserve - * (1 0 ): Shrink off channel dwell time - * (1 1 ): Reserve - * bit 4-5: Reserve for scan - * bit 6-7: Define roaming policy - * (b6 b7) - * (0 0 ): Default roaming behavior, allow roaming in all scenarios - * (0 1 ): Disallow all roaming - * (1 0 ): Allow roaming when final bmissed - * (1 1 ): Reserve - * bit 8-9: Reserve for roaming - * bit 10: Disable css power collapse if setting - * bit 11: Disable sys sleep if setting - * bit 12-31: Reserve for future useage - * - * - */ -#define CFG_LATENCY_FLAGS_MODERATE_NAME "wlm_latency_flags_moderate" -#define CFG_LATENCY_FLAGS_MODERATE_MIN (0x0) -#define CFG_LATENCY_FLAGS_MODERATE_MAX (0xffffffff) -#define CFG_LATENCY_FLAGS_MODERATE_DEFAULT (0x8) - -/* - * - * wlm_latency_flags_low - WLM flags setting for low level - * - * @min: 0x0 - * @max: 0xffffffff - * @defalut: 0xa - * - * |31 12| 11 | 10 |9 8|7 6|5 4|3 2| 1 | 0 | - * +------+------+------+------+------+------+------+-----+-----+ - * | RSVD | SSLP | CSLP | RSVD | Roam | RSVD | DWLT | DFS | SUP | - * +------+-------------+-------------+-------------------------+ - * | WAL | PS | Roam | Scan | - * - * bit 0: Avoid scan request from HLOS if setting - * bit 1: Skip DFS channel SCAN if setting - * bit 2-3: Define policy of dwell time/duration for each foreign channel - * (b2 b3) - * (0 0 ): Default scan dwell time - * (0 1 ): Reserve - * (1 0 ): Shrink off channel dwell time - * (1 1 ): Reserve - * bit 4-5: Reserve for scan - * bit 6-7: Define roaming policy - * (b6 b7) - * (0 0 ): Default roaming behavior, allow roaming in all scenarios - * (0 1 ): Disallow all roaming - * (1 0 ): Allow roaming when final bmissed - * (1 1 ): Reserve - * bit 8-9: Reserve for roaming - * bit 10: Disable css power collapse if setting - * bit 11: Disable sys sleep if setting - * bit 12-31: Reserve for future useage - * - * - */ -#define CFG_LATENCY_FLAGS_LOW_NAME "wlm_latency_flags_low" -#define CFG_LATENCY_FLAGS_LOW_MIN (0x0) -#define CFG_LATENCY_FLAGS_LOW_MAX (0xffffffff) -#define CFG_LATENCY_FLAGS_LOW_DEFAULT (0xa) - -/* - * - * wlm_latency_flags_ultralow - WLM flags setting for ultralow level - * - * @min: 0x0 - * @max: 0xffffffff - * @defalut: 0xc83 - * - * |31 12| 11 | 10 |9 8|7 6|5 4|3 2| 1 | 0 | - * +------+------+------+------+------+------+------+-----+-----+ - * | RSVD | SSLP | CSLP | RSVD | Roam | RSVD | DWLT | DFS | SUP | - * +------+-------------+-------------+-------------------------+ - * | WAL | PS | Roam | Scan | - * - * bit 0: Avoid scan request from HLOS if setting - * bit 1: Skip DFS channel SCAN if setting - * bit 2-3: Define policy of dwell time/duration for each foreign channel - * (b2 b3) - * (0 0 ): Default scan dwell time - * (0 1 ): Reserve - * (1 0 ): Shrink off channel dwell time - * (1 1 ): Reserve - * bit 4-5: Reserve for scan - * bit 6-7: Define roaming policy - * (b6 b7) - * (0 0 ): Default roaming behavior, allow roaming in all scenarios - * (0 1 ): Disallow all roaming - * (1 0 ): Allow roaming when final bmissed - * (1 1 ): Reserve - * bit 8-9: Reserve for roaming - * bit 10: Disable css power collapse if setting - * bit 11: Disable sys sleep if setting - * bit 12-31: Reserve for future useage - * - * - */ -#define CFG_LATENCY_FLAGS_ULTRALOW_NAME "wlm_latency_flags_ultralow" -#define CFG_LATENCY_FLAGS_ULTRALOW_MIN (0x0) -#define CFG_LATENCY_FLAGS_ULTRALOW_MAX (0xffffffff) -#define CFG_LATENCY_FLAGS_ULTRALOW_DEFAULT (0xc83) - /* * * gDot11Mode - SAP phy mode @@ -1797,79 +1594,6 @@ enum hdd_dot11_mode { #define CFG_TL_DELAYED_TRGR_FRM_INT_MAX (4294967295UL) #define CFG_TL_DELAYED_TRGR_FRM_INT_DEFAULT 3000 -/* - * - * gRrmEnable - Enable/Disable RRM - * @Min: 0 - * @Max: 1 - * @Default: 0 - * - * This ini is used to controls the capabilities (11 k) included - * in the capabilities field. - * - * Related: None. - * - * Supported Feature: 11k - * - * Usage: Internal/External - * - * - */ -#define CFG_RRM_ENABLE_NAME "gRrmEnable" -#define CFG_RRM_ENABLE_MIN (0) -#define CFG_RRM_ENABLE_MAX (1) -#define CFG_RRM_ENABLE_DEFAULT (0) - -/* - * - * gRrmRandnIntvl - Randomization interval - * @Min: 10 - * @Max: 100 - * @Default: 100 - * - * This ini is used to set randomization interval which is used to start a timer - * of a random value within randomization interval. Next RRM Scan request - * will be issued after the expiry of this random interval. - * - * Related: None. - * - * Supported Feature: 11k - * - * Usage: Internal/External - * - * - */ -#define CFG_RRM_MEAS_RANDOMIZATION_INTVL_NAME "gRrmRandnIntvl" -#define CFG_RRM_MEAS_RANDOMIZATION_INTVL_MIN (10) -#define CFG_RRM_MEAS_RANDOMIZATION_INTVL_MAX (100) -#define CFG_RRM_MEAS_RANDOMIZATION_INTVL_DEFAULT (100) - -/* - * - * rm_capability - Configure RM enabled capabilities IE - * @Min: N/A - * @Max: N/A - * @Default: 73,10,91,00,04 - * - * This ini is used to configure RM enabled capabilities IE. - * Using this INI, we can set/unset any of the bits in 5 bytes - * (last 4bytes are reserved). Bit details are updated as per - * Draft version of 11mc spec. (Draft P802.11REVmc_D4.2) - * - * Bitwise details are defined as bit mask in rrm_global.h - * Comma is used as a separator for each byte. - * - * Related: None. - * - * Supported Feature: 11k - * - * Usage: Internal/External - * - * - */ -#define CFG_RM_CAPABILITY_NAME "rm_capability" -#define CFG_RM_CAPABILITY_DEFAULT "73,10,91,00,04" - /* * * gHwFilterMode - configure hardware filter for DTIM mode @@ -3855,10 +3579,6 @@ struct hdd_config { bool apProtEnabled; uint8_t nTxPowerCap; /* In dBm */ uint8_t disablePacketFilter; - bool fRrmEnable; - uint16_t nRrmRandnIntvl; - /* length includes separator */ - char rm_capability[3 * DOT11F_IE_RRMENABLEDCAP_MAX_LEN]; #ifdef FEATURE_WLAN_DYNAMIC_CVM /* Bitmap for operating voltage corner mode */ @@ -4059,12 +3779,6 @@ struct hdd_config { bool enable_lprx; uint32_t scan_11d_interval; bool is_bssid_hint_priority; - uint16_t wlm_latency_enable; - uint16_t wlm_latency_level; - uint32_t wlm_latency_flags_normal; - uint32_t wlm_latency_flags_moderate; - uint32_t wlm_latency_flags_low; - uint32_t wlm_latency_flags_ultralow; #ifdef WLAN_FEATURE_PACKET_FILTERING uint8_t packet_filters_bitmap; #endif diff --git a/core/hdd/src/wlan_hdd_cfg.c b/core/hdd/src/wlan_hdd_cfg.c index 742f695ce9..1d4481e1f6 100644 --- a/core/hdd/src/wlan_hdd_cfg.c +++ b/core/hdd/src/wlan_hdd_cfg.c @@ -255,25 +255,6 @@ struct reg_table_entry g_registry_table[] = { CFG_TL_DELAYED_TRGR_FRM_INT_MIN, CFG_TL_DELAYED_TRGR_FRM_INT_MAX), - REG_VARIABLE(CFG_RRM_ENABLE_NAME, WLAN_PARAM_Integer, - struct hdd_config, fRrmEnable, - VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT, - CFG_RRM_ENABLE_DEFAULT, - CFG_RRM_ENABLE_MIN, - CFG_RRM_ENABLE_MAX), - - REG_VARIABLE(CFG_RRM_MEAS_RANDOMIZATION_INTVL_NAME, WLAN_PARAM_Integer, - struct hdd_config, nRrmRandnIntvl, - VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT, - CFG_RRM_MEAS_RANDOMIZATION_INTVL_DEFAULT, - CFG_RRM_MEAS_RANDOMIZATION_INTVL_MIN, - CFG_RRM_MEAS_RANDOMIZATION_INTVL_MAX), - - REG_VARIABLE_STRING(CFG_RM_CAPABILITY_NAME, WLAN_PARAM_String, - struct hdd_config, rm_capability, - VAR_FLAGS_OPTIONAL, - (void *) CFG_RM_CAPABILITY_DEFAULT), - #ifdef FEATURE_WLAN_RA_FILTERING REG_VARIABLE(CFG_RA_RATE_LIMIT_INTERVAL_NAME, WLAN_PARAM_Integer, @@ -883,48 +864,6 @@ struct reg_table_entry g_registry_table[] = { CFG_IS_BSSID_HINT_PRIORITY_MIN, CFG_IS_BSSID_HINT_PRIORITY_MAX), - REG_VARIABLE(CFG_LATENCY_ENABLE_NAME, WLAN_PARAM_Integer, - struct hdd_config, wlm_latency_enable, - VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT, - CFG_LATENCY_ENABLE_DEFAULT, - CFG_LATENCY_ENABLE_MIN, - CFG_LATENCY_ENABLE_MAX), - - REG_VARIABLE(CFG_LATENCY_LEVEL_NAME, WLAN_PARAM_Integer, - struct hdd_config, wlm_latency_level, - VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT, - CFG_LATENCY_LEVEL_DEFAULT, - CFG_LATENCY_LEVEL_MIN, - CFG_LATENCY_LEVEL_MAX), - - REG_VARIABLE(CFG_LATENCY_FLAGS_NORMAL_NAME, WLAN_PARAM_HexInteger, - struct hdd_config, wlm_latency_flags_normal, - VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT, - CFG_LATENCY_FLAGS_NORMAL_DEFAULT, - CFG_LATENCY_FLAGS_NORMAL_MIN, - CFG_LATENCY_FLAGS_NORMAL_MAX), - - REG_VARIABLE(CFG_LATENCY_FLAGS_MODERATE_NAME, WLAN_PARAM_HexInteger, - struct hdd_config, wlm_latency_flags_moderate, - VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT, - CFG_LATENCY_FLAGS_MODERATE_DEFAULT, - CFG_LATENCY_FLAGS_MODERATE_MIN, - CFG_LATENCY_FLAGS_MODERATE_MAX), - - REG_VARIABLE(CFG_LATENCY_FLAGS_LOW_NAME, WLAN_PARAM_HexInteger, - struct hdd_config, wlm_latency_flags_low, - VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT, - CFG_LATENCY_FLAGS_LOW_DEFAULT, - CFG_LATENCY_FLAGS_LOW_MIN, - CFG_LATENCY_FLAGS_LOW_MAX), - - REG_VARIABLE(CFG_LATENCY_FLAGS_ULTRALOW_NAME, WLAN_PARAM_HexInteger, - struct hdd_config, wlm_latency_flags_ultralow, - VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT, - CFG_LATENCY_FLAGS_ULTRALOW_DEFAULT, - CFG_LATENCY_FLAGS_ULTRALOW_MIN, - CFG_LATENCY_FLAGS_ULTRALOW_MAX), - #ifdef WLAN_FEATURE_SAE REG_VARIABLE(CFG_IS_SAE_ENABLED_NAME, WLAN_PARAM_Integer, struct hdd_config, is_sae_enabled, @@ -2250,26 +2189,6 @@ static QDF_STATUS hdd_convert_string_to_array(char *str, uint8_t *array, return QDF_STATUS_SUCCESS; } -/** - * hdd_hex_string_to_u8_array() - used to convert hex string into u8 array - * @str: Hexadecimal string - * @hex_array: Array where converted value is stored - * @len: Length of the populated array - * @array_max_len: Maximum length of the array - * - * This API is called to convert hexadecimal string (each byte separated by - * a comma) into an u8 array - * - * Return: QDF_STATUS - */ -static QDF_STATUS hdd_hex_string_to_u8_array(char *str, uint8_t *hex_array, - uint8_t *len, - uint8_t array_max_len) -{ - return hdd_convert_string_to_array(str, hex_array, len, - array_max_len, true); -} - QDF_STATUS hdd_string_to_u8_array(char *str, uint8_t *array, uint8_t *len, uint16_t array_max_len) { @@ -2623,7 +2542,6 @@ QDF_STATUS hdd_set_sme_config(struct hdd_context *hdd_ctx) { QDF_STATUS status = QDF_STATUS_SUCCESS; tSmeConfigParams *smeConfig; - uint8_t rrm_capab_len; mac_handle_t mac_handle = hdd_ctx->mac_handle; bool roam_scan_enabled; #ifdef FEATURE_WLAN_ESE @@ -2674,11 +2592,6 @@ QDF_STATUS hdd_set_sme_config(struct hdd_context *hdd_ctx) smeConfig->csrConfig.nRestTimeConc = pConfig->nRestTimeConc; smeConfig->csrConfig.min_rest_time_conc = pConfig->min_rest_time_conc; smeConfig->csrConfig.idle_time_conc = pConfig->idle_time_conc; - smeConfig->rrmConfig.rrm_enabled = pConfig->fRrmEnable; - smeConfig->rrmConfig.max_randn_interval = pConfig->nRrmRandnIntvl; - hdd_hex_string_to_u8_array(pConfig->rm_capability, - smeConfig->rrmConfig.rm_capability, &rrm_capab_len, - DOT11F_IE_RRMENABLEDCAP_MAX_LEN); /* Remaining config params not obtained from registry * On RF EVB beacon using channel 1. */ @@ -2757,18 +2670,6 @@ QDF_STATUS hdd_set_sme_config(struct hdd_context *hdd_ctx) hdd_he_set_sme_config(smeConfig, pConfig); - smeConfig->csrConfig.wlm_latency_enable = - hdd_ctx->config->wlm_latency_enable; - smeConfig->csrConfig.wlm_latency_level = - hdd_ctx->config->wlm_latency_level; - smeConfig->csrConfig.wlm_latency_flags[0] = - hdd_ctx->config->wlm_latency_flags_normal; - smeConfig->csrConfig.wlm_latency_flags[1] = - hdd_ctx->config->wlm_latency_flags_moderate; - smeConfig->csrConfig.wlm_latency_flags[2] = - hdd_ctx->config->wlm_latency_flags_low; - smeConfig->csrConfig.wlm_latency_flags[3] = - hdd_ctx->config->wlm_latency_flags_ultralow; status = hdd_set_sme_cfgs_related_to_mlme(hdd_ctx, smeConfig); if (!QDF_IS_STATUS_SUCCESS(status)) hdd_err("hdd_set_sme_cfgs_related_to_mlme() fail: %d", status); diff --git a/core/hdd/src/wlan_hdd_wext.c b/core/hdd/src/wlan_hdd_wext.c index 0586ac0562..8216ce6212 100644 --- a/core/hdd/src/wlan_hdd_wext.c +++ b/core/hdd/src/wlan_hdd_wext.c @@ -5469,7 +5469,6 @@ static int __iw_setchar_getnone(struct net_device *dev, char *str_arg = NULL; struct hdd_adapter *adapter = (netdev_priv(dev)); struct hdd_context *hdd_ctx = WLAN_HDD_GET_CTX(adapter); - struct hdd_config *pConfig = hdd_ctx->config; struct iw_point s_priv_data; hdd_enter_dev(dev); @@ -5521,8 +5520,12 @@ static int __iw_setchar_getnone(struct net_device *dev, { tRrmNeighborReq neighborReq; tRrmNeighborRspCallbackInfo callbackInfo; + bool rrm_enabled = false; - if (pConfig->fRrmEnable) { + ucfg_wlan_mlme_get_rrm_enabled(hdd_ctx->psoc, + &rrm_enabled); + + if (rrm_enabled) { neighborReq.neighbor_report_offload = false; neighborReq.no_ssid = (s_priv_data.length - 1) ? false : true; diff --git a/core/sme/inc/csr_api.h b/core/sme/inc/csr_api.h index 91f6a3cf4e..b505c8c3e8 100644 --- a/core/sme/inc/csr_api.h +++ b/core/sme/inc/csr_api.h @@ -31,7 +31,6 @@ #include "wlan_scan_public_structs.h" #define CSR_INVALID_SCANRESULT_HANDLE (NULL) -#define CSR_NUM_WLM_LATENCY_LEVEL 4 typedef enum { /* never used */ @@ -1127,9 +1126,6 @@ typedef struct tagCsrConfigParam { bool enable_ul_ofdma; bool enable_ul_mimo; #endif - uint16_t wlm_latency_enable; - uint16_t wlm_latency_level; - uint32_t wlm_latency_flags[CSR_NUM_WLM_LATENCY_LEVEL]; bool is_force_1x1; uint8_t oce_feature_bitmap; uint32_t offload_11k_enable_bitmask; diff --git a/core/sme/inc/csr_internal.h b/core/sme/inc/csr_internal.h index 5e59aac503..2656711975 100644 --- a/core/sme/inc/csr_internal.h +++ b/core/sme/inc/csr_internal.h @@ -462,9 +462,6 @@ struct csr_config { bool enable_ul_mimo; #endif bool is_force_1x1; - uint16_t wlm_latency_enable; - uint16_t wlm_latency_level; - uint32_t wlm_latency_flags[CSR_NUM_WLM_LATENCY_LEVEL]; uint8_t oce_feature_bitmap; uint32_t offload_11k_enable_bitmask; bool wep_tkip_in_he; diff --git a/core/sme/inc/sme_rrm_api.h b/core/sme/inc/sme_rrm_api.h index 915ba296e3..9424f75e57 100644 --- a/core/sme/inc/sme_rrm_api.h +++ b/core/sme/inc/sme_rrm_api.h @@ -41,8 +41,6 @@ QDF_STATUS sme_rrm_msg_processor(struct mac_context *mac, uint16_t msg_type, void *pMsgBuf); QDF_STATUS rrm_close(struct mac_context *mac); QDF_STATUS rrm_open(struct mac_context *mac); -QDF_STATUS rrm_change_default_config_param(struct mac_context *mac, - struct rrm_config_param *rrm_config); QDF_STATUS sme_rrm_neighbor_report_request(struct mac_context *mac, uint8_t sessionId, tpRrmNeighborReq pNeighborReq, tpRrmNeighborRspCallbackInfo callbackInfo); diff --git a/core/sme/src/common/sme_api.c b/core/sme/src/common/sme_api.c index 540153d079..3ddd90ca3c 100644 --- a/core/sme/src/common/sme_api.c +++ b/core/sme/src/common/sme_api.c @@ -940,13 +940,6 @@ QDF_STATUS sme_update_config(mac_handle_t mac_handle, tpSmeConfigParams sme_err("csr_change_default_config_param failed status: %d", status); - status = rrm_change_default_config_param(mac, &pSmeConfigParams-> - rrmConfig); - - if (!QDF_IS_STATUS_SUCCESS(status)) - sme_err("rrm_change_default_config_param failed status: %d", - status); - /* For SOC, CFG is set before start We don't want to apply global CFG * in connect state because that may cause some side affect */ @@ -8710,7 +8703,7 @@ QDF_STATUS sme_set_wlm_latency_level(mac_handle_t mac_handle, if (!wma) return QDF_STATUS_E_FAILURE; - if (!mac_ctx->roam.configParam.wlm_latency_enable) { + if (!mac_ctx->mlme_cfg->wlm_config.latency_enable) { QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_ERROR, "%s: WLM latency level setting is disabled", __func__); @@ -8723,7 +8716,7 @@ QDF_STATUS sme_set_wlm_latency_level(mac_handle_t mac_handle, params.wlm_latency_level = latency_level; params.wlm_latency_flags = - mac_ctx->roam.configParam.wlm_latency_flags[latency_level]; + mac_ctx->mlme_cfg->wlm_config.latency_flags[latency_level]; params.vdev_id = session_id; status = wma_set_wlm_latency_level(wma, ¶ms); diff --git a/core/sme/src/csr/csr_api_roam.c b/core/sme/src/csr/csr_api_roam.c index 049ed3238b..4a43af80d0 100644 --- a/core/sme/src/csr/csr_api_roam.c +++ b/core/sme/src/csr/csr_api_roam.c @@ -2479,7 +2479,6 @@ QDF_STATUS csr_change_default_config_param(struct mac_context *mac, tCsrConfigParam *pParam) { QDF_STATUS status = QDF_STATUS_SUCCESS; - int i; if (pParam) { mac->roam.configParam.is_force_1x1 = @@ -2726,14 +2725,6 @@ QDF_STATUS csr_change_default_config_param(struct mac_context *mac, pParam->enable_bcast_probe_rsp; mac->roam.configParam.is_fils_enabled = pParam->is_fils_enabled; - mac->roam.configParam.wlm_latency_enable = - pParam->wlm_latency_enable; - mac->roam.configParam.wlm_latency_level = - pParam->wlm_latency_level; - for (i = 0; i < CSR_NUM_WLM_LATENCY_LEVEL; i++) { - mac->roam.configParam.wlm_latency_flags[i] = - pParam->wlm_latency_flags[i]; - } mac->roam.configParam.oce_feature_bitmap = pParam->oce_feature_bitmap; mac->roam.configParam.roam_force_rssi_trigger = @@ -2780,7 +2771,6 @@ void csr_get_11k_offload_config_param(struct csr_config *csr_config, QDF_STATUS csr_get_config_param(struct mac_context *mac, tCsrConfigParam *pParam) { - int i; struct csr_config *cfg_params = &mac->roam.configParam; if (!pParam) @@ -2886,13 +2876,6 @@ QDF_STATUS csr_get_config_param(struct mac_context *mac, tCsrConfigParam *pParam csr_get_11k_offload_config_param(&mac->roam.configParam, pParam); - pParam->wlm_latency_enable = mac->roam.configParam.wlm_latency_enable; - pParam->wlm_latency_level = mac->roam.configParam.wlm_latency_level; - for (i = 0; i < CSR_NUM_WLM_LATENCY_LEVEL; i++) { - pParam->wlm_latency_flags[i] = - mac->roam.configParam.wlm_latency_flags[i]; - } - return QDF_STATUS_SUCCESS; } diff --git a/core/sme/src/rrm/sme_rrm.c b/core/sme/src/rrm/sme_rrm.c index 9bf3ad2d6d..665730af1a 100644 --- a/core/sme/src/rrm/sme_rrm.c +++ b/core/sme/src/rrm/sme_rrm.c @@ -1408,6 +1408,24 @@ static void rrm_neighbor_rsp_timeout_handler(void *userData) rrm_indicate_neighbor_report_result(mac, QDF_STATUS_E_FAILURE); } +/** + * rrm_change_default_config_param() - Changing default config param to new + * @mac - The handle returned by mac_open. + * + * Return: None + */ +static void rrm_change_default_config_param(struct mac_context *mac) +{ + mac->rrm.rrmSmeContext.rrmConfig.rrm_enabled = + mac->mlme_cfg->rrm_config.rrm_enabled; + mac->rrm.rrmSmeContext.rrmConfig.max_randn_interval = + mac->mlme_cfg->rrm_config.rrm_rand_interval; + + qdf_mem_copy(&mac->rrm.rrmSmeContext.rrmConfig.rm_capability, + &mac->mlme_cfg->rrm_config.rm_capability, + RMENABLEDCAP_MAX_LEN); +} + /** * rrm_open() - Initialze all RRM module * @ mac: The handle returned by mac_open. @@ -1454,6 +1472,8 @@ QDF_STATUS rrm_open(struct mac_context *mac) return QDF_STATUS_E_FAILURE; } + rrm_change_default_config_param(mac); + return QDF_STATUS_SUCCESS; } @@ -1521,23 +1541,6 @@ QDF_STATUS rrm_close(struct mac_context *mac) } -/** - * rrm_change_default_config_param() - Changing default config param to new - * @mac - The handle returned by mac_open. - * param pRrmConfig - pointer to new rrm configs. - * - * Return: QDF_STATUS - * QDF_STATUS_SUCCESS success - */ -QDF_STATUS rrm_change_default_config_param(struct mac_context *mac, - struct rrm_config_param *rrm_config) -{ - qdf_mem_copy(&mac->rrm.rrmSmeContext.rrmConfig, rrm_config, - sizeof(struct rrm_config_param)); - - return QDF_STATUS_SUCCESS; -} - QDF_STATUS rrm_start(struct mac_context *mac_ctx) { tpRrmSMEContext smerrmctx = &mac_ctx->rrm.rrmSmeContext;