mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-09 21:59:12 -04:00
qcacld-3.0: Add INI param to ignore HT op mode of peer AP
qcacld-2.0 to qcacld-3.0 propagation Currently even if peer AP is in Legacy mode, driver can enable 11g protection, even though there is no 11g AP in vicinity. As a part of fix, add an INI param which will enable 11g protection only when there is a 11g AP in vicinity. Change-Id: Ic76e6070b02f92ef33934a0e5158fa4ef6c3e45b CRs-Fixed: 897755
This commit is contained in:
parent
b3264f0358
commit
165bc60022
6 changed files with 31 additions and 2 deletions
|
|
@ -2929,6 +2929,15 @@ enum dot11p_mode {
|
|||
#define CFG_ROAM_DENSE_RSSI_THRE_OFFSET_MAX (20)
|
||||
#define CFG_ROAM_DENSE_RSSI_THRE_OFFSET_DEFAULT (0)
|
||||
|
||||
/*
|
||||
* Enabling gignore_peer_ht_opmode will enable 11g
|
||||
* protection only when there is a 11g AP in vicinity.
|
||||
*/
|
||||
#define CFG_IGNORE_PEER_HT_MODE_NAME "gignore_peer_ht_opmode"
|
||||
#define CFG_IGNORE_PEER_HT_MODE_MIN (0)
|
||||
#define CFG_IGNORE_PEER_HT_MODE_MAX (1)
|
||||
#define CFG_IGNORE_PEER_HT_MODE_DEFAULT (0)
|
||||
|
||||
/*
|
||||
* Dense Roam Min APs
|
||||
* minimum number of AP required for dense roam
|
||||
|
|
@ -3530,6 +3539,7 @@ struct hdd_config {
|
|||
#endif
|
||||
uint32_t roam_dense_traffic_thresh;
|
||||
uint32_t roam_dense_rssi_thresh_offset;
|
||||
bool ignore_peer_ht_opmode;
|
||||
uint32_t roam_dense_min_aps;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -3711,6 +3711,14 @@ REG_TABLE_ENTRY g_registry_table[] = {
|
|||
CFG_ROAM_DENSE_RSSI_THRE_OFFSET_MIN,
|
||||
CFG_ROAM_DENSE_RSSI_THRE_OFFSET_MAX),
|
||||
|
||||
REG_VARIABLE(CFG_IGNORE_PEER_HT_MODE_NAME, WLAN_PARAM_Integer,
|
||||
struct hdd_config, ignore_peer_ht_opmode,
|
||||
VAR_FLAGS_OPTIONAL |
|
||||
VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
||||
CFG_IGNORE_PEER_HT_MODE_DEFAULT,
|
||||
CFG_IGNORE_PEER_HT_MODE_MIN,
|
||||
CFG_IGNORE_PEER_HT_MODE_MAX),
|
||||
|
||||
REG_VARIABLE(CFG_ROAM_DENSE_MIN_APS, WLAN_PARAM_Integer,
|
||||
struct hdd_config, roam_dense_min_aps,
|
||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
||||
|
|
@ -5301,6 +5309,9 @@ void hdd_cfg_print(hdd_context_t *pHddCtx)
|
|||
hdd_info("Name = [%s] Value = [%u]",
|
||||
CFG_ROAM_DENSE_RSSI_THRE_OFFSET,
|
||||
pHddCtx->config->roam_dense_rssi_thresh_offset);
|
||||
hdd_info("Name = [%s] Value = [%u]",
|
||||
CFG_IGNORE_PEER_HT_MODE_NAME,
|
||||
pHddCtx->config->ignore_peer_ht_opmode);
|
||||
hdd_info("Name = [%s] Value = [%u]",
|
||||
CFG_ROAM_DENSE_MIN_APS,
|
||||
pHddCtx->config->roam_dense_min_aps);
|
||||
|
|
@ -6745,6 +6756,8 @@ QDF_STATUS hdd_set_sme_config(hdd_context_t *pHddCtx)
|
|||
pHddCtx->config->obss_active_dwelltime;
|
||||
smeConfig->csrConfig.obss_passive_dwelltime =
|
||||
pHddCtx->config->obss_passive_dwelltime;
|
||||
smeConfig->csrConfig.ignore_peer_ht_opmode =
|
||||
pConfig->ignore_peer_ht_opmode;
|
||||
|
||||
status = sme_update_config(pHddCtx->hHal, smeConfig);
|
||||
if (!QDF_IS_STATUS_SUCCESS(status)) {
|
||||
|
|
|
|||
|
|
@ -199,7 +199,8 @@ ap_beacon_process_24_ghz(tpAniSirGlobal mac_ctx, uint8_t *rx_pkt_info,
|
|||
* 11b because if that's needed then our operating mode would have
|
||||
* already been set to legacy in the previous blocks.
|
||||
*/
|
||||
if (eSIR_HT_OP_MODE_OVERLAP_LEGACY == bcn_struct->HTInfo.opMode) {
|
||||
if ((eSIR_HT_OP_MODE_OVERLAP_LEGACY == bcn_struct->HTInfo.opMode) &&
|
||||
!mac_ctx->roam.configParam.ignore_peer_ht_opmode) {
|
||||
if (eSIR_HT_OP_MODE_OVERLAP_LEGACY == mac_ctx->lim.gHTOperMode
|
||||
|| eSIR_HT_OP_MODE_MIXED == mac_ctx->lim.gHTOperMode)
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -1219,6 +1219,7 @@ typedef struct tagCsrConfigParam {
|
|||
uint32_t obss_width_interval;
|
||||
uint32_t obss_active_dwelltime;
|
||||
uint32_t obss_passive_dwelltime;
|
||||
bool ignore_peer_ht_opmode;
|
||||
} tCsrConfigParam;
|
||||
|
||||
/* Tush */
|
||||
|
|
|
|||
|
|
@ -638,6 +638,7 @@ typedef struct tagCsrConfig {
|
|||
uint32_t obss_width_interval;
|
||||
uint32_t obss_active_dwelltime;
|
||||
uint32_t obss_passive_dwelltime;
|
||||
bool ignore_peer_ht_opmode;
|
||||
} tCsrConfig;
|
||||
|
||||
typedef struct tagCsrChannelPowerInfo {
|
||||
|
|
|
|||
|
|
@ -2343,7 +2343,8 @@ QDF_STATUS csr_change_default_config_param(tpAniSirGlobal pMac,
|
|||
|
||||
pMac->sme.ps_global_info.ps_enabled =
|
||||
pParam->is_ps_enabled;
|
||||
|
||||
pMac->roam.configParam.ignore_peer_ht_opmode =
|
||||
pParam->ignore_peer_ht_opmode;
|
||||
pMac->policy_manager_enabled = pParam->policy_manager_enabled;
|
||||
pMac->fine_time_meas_cap = pParam->fine_time_meas_cap;
|
||||
pMac->dual_mac_feature_disable =
|
||||
|
|
@ -2534,6 +2535,8 @@ QDF_STATUS csr_get_config_param(tpAniSirGlobal pMac, tCsrConfigParam *pParam)
|
|||
pMac->roam.configParam.obss_active_dwelltime;
|
||||
pParam->obss_passive_dwelltime =
|
||||
pMac->roam.configParam.obss_passive_dwelltime;
|
||||
pParam->ignore_peer_ht_opmode =
|
||||
pMac->roam.configParam.ignore_peer_ht_opmode;
|
||||
pParam->enableHtSmps = pMac->roam.configParam.enableHtSmps;
|
||||
pParam->htSmps = pMac->roam.configParam.htSmps;
|
||||
pParam->send_smps_action = pMac->roam.configParam.send_smps_action;
|
||||
|
|
|
|||
Loading…
Reference in a new issue