qcacld-3.0: Introduce lookup_threshold_5g_offset INI item
Introduce lookup_threshold_5g_offset in WCNSS_qcom_cfg.ini which will let the user to configure separate threshold for 5G band using this offset Change-Id: I4975f74095a5fec0657666ba864ee436cbaed604 CRs-Fixed: 2093368
Este commit está contenido en:

cometido por
snandini

padre
c701c4d9d2
commit
168134f94e
@@ -4135,6 +4135,39 @@ enum station_keepalive_method {
|
||||
#define CFG_NEIGHBOR_LOOKUP_RSSI_THRESHOLD_MAX (120)
|
||||
#define CFG_NEIGHBOR_LOOKUP_RSSI_THRESHOLD_DEFAULT (78)
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* lookup_threshold_5g_offset - Lookup Threshold offset for 5G band
|
||||
* @Min: -120
|
||||
* @Max: +120
|
||||
* @Default: 0
|
||||
*
|
||||
* This ini is used to set the 5G band lookup threshold for roaming.
|
||||
* It depends on another INI which is gNeighborLookupThreshold.
|
||||
* gNeighborLookupThreshold is a legacy INI item which will be used to
|
||||
* set the RSSI lookup threshold for both 2G and 5G bands. If the
|
||||
* user wants to setup a different threshold for a 5G band, then user
|
||||
* can use this offset value which will be summed up to the value of
|
||||
* gNeighborLookupThreshold and used for 5G
|
||||
* e.g: gNeighborLookupThreshold = -76dBm
|
||||
* lookup_threshold_5g_offset = 6dBm
|
||||
* Then the 5G band will be configured to -76+6 = -70dBm
|
||||
* A default value of Zero to lookup_threshold_5g_offset will keep the
|
||||
* thresholds same for both 2G and 5G bands
|
||||
*
|
||||
* Related: gNeighborLookupThreshold
|
||||
*
|
||||
* Supported Feature: Roaming
|
||||
*
|
||||
* Usage: Internal/External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_5G_RSSI_THRESHOLD_OFFSET_NAME "lookup_threshold_5g_offset"
|
||||
#define CFG_5G_RSSI_THRESHOLD_OFFSET_MIN (-120)
|
||||
#define CFG_5G_RSSI_THRESHOLD_OFFSET_MAX (120)
|
||||
#define CFG_5G_RSSI_THRESHOLD_OFFSET_DEFAULT (0)
|
||||
|
||||
#define CFG_DELAY_BEFORE_VDEV_STOP_NAME "gDelayBeforeVdevStop"
|
||||
#define CFG_DELAY_BEFORE_VDEV_STOP_MIN (2)
|
||||
#define CFG_DELAY_BEFORE_VDEV_STOP_MAX (200)
|
||||
@@ -11920,7 +11953,6 @@ struct hdd_config {
|
||||
uint16_t num_11b_tx_chains;
|
||||
uint16_t num_11ag_tx_chains;
|
||||
uint8_t ito_repeat_count;
|
||||
|
||||
/* LCA(Last connected AP) disallow configs */
|
||||
uint32_t disallow_duration;
|
||||
uint32_t rssi_channel_penalization;
|
||||
@@ -11940,6 +11972,7 @@ struct hdd_config {
|
||||
uint8_t upper_brssi_thresh;
|
||||
uint8_t lower_brssi_thresh;
|
||||
bool enable_dtim_1chrx;
|
||||
int8_t rssi_thresh_offset_5g;
|
||||
};
|
||||
|
||||
#define VAR_OFFSET(_Struct, _Var) (offsetof(_Struct, _Var))
|
||||
|
@@ -1315,6 +1315,14 @@ struct reg_table_entry g_registry_table[] = {
|
||||
CFG_NEIGHBOR_LOOKUP_RSSI_THRESHOLD_MAX,
|
||||
cb_notify_set_neighbor_lookup_rssi_threshold, 0),
|
||||
|
||||
REG_VARIABLE(CFG_5G_RSSI_THRESHOLD_OFFSET_NAME,
|
||||
WLAN_PARAM_SignedInteger, struct hdd_config,
|
||||
rssi_thresh_offset_5g,
|
||||
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
||||
CFG_5G_RSSI_THRESHOLD_OFFSET_DEFAULT,
|
||||
CFG_5G_RSSI_THRESHOLD_OFFSET_MIN,
|
||||
CFG_5G_RSSI_THRESHOLD_OFFSET_MAX),
|
||||
|
||||
REG_DYNAMIC_VARIABLE(CFG_OPPORTUNISTIC_SCAN_THRESHOLD_DIFF_NAME,
|
||||
WLAN_PARAM_Integer,
|
||||
struct hdd_config, nOpportunisticThresholdDiff,
|
||||
@@ -5648,6 +5656,9 @@ void hdd_cfg_print(hdd_context_t *pHddCtx)
|
||||
|
||||
hdd_debug("Name = [nNeighborLookupRssiThreshold] Value = [%u] ",
|
||||
pHddCtx->config->nNeighborLookupRssiThreshold);
|
||||
hdd_debug("Name = [%s] Value = [%d] ",
|
||||
CFG_5G_RSSI_THRESHOLD_OFFSET_NAME,
|
||||
pHddCtx->config->rssi_thresh_offset_5g);
|
||||
hdd_debug("Name = [delay_before_vdev_stop] Value = [%u] ",
|
||||
pHddCtx->config->delay_before_vdev_stop);
|
||||
hdd_debug("Name = [nOpportunisticThresholdDiff] Value = [%u] ",
|
||||
@@ -7636,6 +7647,8 @@ QDF_STATUS hdd_set_sme_config(hdd_context_t *pHddCtx)
|
||||
}
|
||||
smeConfig->csrConfig.neighborRoamConfig.nNeighborLookupRssiThreshold =
|
||||
pConfig->nNeighborLookupRssiThreshold;
|
||||
smeConfig->csrConfig.neighborRoamConfig.rssi_thresh_offset_5g =
|
||||
pConfig->rssi_thresh_offset_5g;
|
||||
smeConfig->csrConfig.neighborRoamConfig.delay_before_vdev_stop =
|
||||
pConfig->delay_before_vdev_stop;
|
||||
smeConfig->csrConfig.neighborRoamConfig.nOpportunisticThresholdDiff =
|
||||
|
@@ -3025,6 +3025,7 @@ typedef struct sSirRoamOffloadScanReq {
|
||||
bool RoamScanOffloadEnabled;
|
||||
bool MAWCEnabled;
|
||||
int8_t LookupThreshold;
|
||||
int8_t rssi_thresh_offset_5g;
|
||||
uint8_t delay_before_vdev_stop;
|
||||
uint8_t OpportunisticScanThresholdDiff;
|
||||
uint8_t RoamRescanRssiDiff;
|
||||
|
@@ -1060,6 +1060,7 @@ typedef struct tagCsrNeighborRoamConfigParams {
|
||||
uint32_t nNeighborScanTimerPeriod;
|
||||
uint32_t neighbor_scan_min_timer_period;
|
||||
uint8_t nNeighborLookupRssiThreshold;
|
||||
int8_t rssi_thresh_offset_5g;
|
||||
uint16_t nNeighborScanMinChanTime;
|
||||
uint16_t nNeighborScanMaxChanTime;
|
||||
sCsrChannel neighborScanChanList;
|
||||
|
@@ -431,6 +431,7 @@ typedef struct tagCsrNeighborRoamConfig {
|
||||
uint32_t nNeighborScanTimerPeriod;
|
||||
uint32_t neighbor_scan_min_timer_period;
|
||||
uint8_t nNeighborLookupRssiThreshold;
|
||||
int8_t rssi_thresh_offset_5g;
|
||||
uint16_t nNeighborScanMinChanTime;
|
||||
uint16_t nNeighborScanMaxChanTime;
|
||||
sCsrChannel neighborScanChanList;
|
||||
|
@@ -57,6 +57,7 @@ typedef struct sCsrNeighborRoamCfgParams {
|
||||
uint32_t neighbor_scan_min_period;
|
||||
tCsrChannelInfo channelInfo;
|
||||
uint8_t neighborLookupThreshold;
|
||||
int8_t rssi_thresh_offset_5g;
|
||||
uint8_t neighborReassocThreshold;
|
||||
uint32_t minChannelScanTime;
|
||||
uint32_t maxChannelScanTime;
|
||||
|
@@ -1460,6 +1460,7 @@ static void init_config_param(tpAniSirGlobal pMac)
|
||||
pMac->roam.configParam.neighborRoamConfig.nMaxNeighborRetries = 3;
|
||||
pMac->roam.configParam.neighborRoamConfig.nNeighborLookupRssiThreshold =
|
||||
120;
|
||||
pMac->roam.configParam.neighborRoamConfig.rssi_thresh_offset_5g = 0;
|
||||
pMac->roam.configParam.neighborRoamConfig.nOpportunisticThresholdDiff =
|
||||
30;
|
||||
pMac->roam.configParam.neighborRoamConfig.nRoamRescanRssiDiff = 5;
|
||||
@@ -2605,6 +2606,8 @@ QDF_STATUS csr_change_default_config_param(tpAniSirGlobal pMac,
|
||||
sme_debug("nNeighborLookupRssiThreshold: %d",
|
||||
pMac->roam.configParam.neighborRoamConfig.
|
||||
nNeighborLookupRssiThreshold);
|
||||
sme_debug("rssi_thresh_offset_5g: %d",
|
||||
pMac->roam.configParam.neighborRoamConfig.rssi_thresh_offset_5g);
|
||||
sme_debug("nOpportunisticThresholdDiff: %d",
|
||||
pMac->roam.configParam.neighborRoamConfig.
|
||||
nOpportunisticThresholdDiff);
|
||||
@@ -17996,6 +17999,9 @@ csr_roam_offload_scan(tpAniSirGlobal mac_ctx, uint8_t session_id,
|
||||
req_buf->LookupThreshold =
|
||||
(int8_t)roam_info->cfgParams.neighborLookupThreshold *
|
||||
(-1);
|
||||
req_buf->rssi_thresh_offset_5g =
|
||||
roam_info->cfgParams.rssi_thresh_offset_5g;
|
||||
sme_debug("5g offset threshold: %d", req_buf->rssi_thresh_offset_5g);
|
||||
qdf_mem_copy(roam_params_dst, roam_params_src,
|
||||
sizeof(struct roam_ext_params));
|
||||
/*
|
||||
|
@@ -1247,6 +1247,8 @@ QDF_STATUS csr_neighbor_roam_init(tpAniSirGlobal pMac, uint8_t sessionId)
|
||||
pNeighborRoamInfo->cfgParams.neighborLookupThreshold =
|
||||
pMac->roam.configParam.neighborRoamConfig.
|
||||
nNeighborLookupRssiThreshold;
|
||||
pNeighborRoamInfo->cfgParams.rssi_thresh_offset_5g =
|
||||
pMac->roam.configParam.neighborRoamConfig.rssi_thresh_offset_5g;
|
||||
pNeighborRoamInfo->cfgParams.delay_before_vdev_stop =
|
||||
pMac->roam.configParam.neighborRoamConfig.
|
||||
delay_before_vdev_stop;
|
||||
|
@@ -904,11 +904,14 @@ QDF_STATUS wma_roam_scan_offload_rssi_thresh(tp_wma_handle wma_handle,
|
||||
params.roam_earlystop_thres_min = 0;
|
||||
params.roam_earlystop_thres_max = 0;
|
||||
}
|
||||
params.rssi_thresh_offset_5g =
|
||||
roam_req->rssi_thresh_offset_5g;
|
||||
|
||||
WMA_LOGD("early_stop_thresholds en=%d, min=%d, max=%d",
|
||||
roam_req->early_stop_scan_enable,
|
||||
params.roam_earlystop_thres_min,
|
||||
params.roam_earlystop_thres_max);
|
||||
WMA_LOGD("rssi_thresh_offset_5g = %d", params.rssi_thresh_offset_5g);
|
||||
|
||||
status = wmi_unified_roam_scan_offload_rssi_thresh_cmd(
|
||||
wma_handle->wmi_handle, ¶ms);
|
||||
|
Referencia en una nueva incidencia
Block a user