mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-14 08:36:12 -04:00
Merge "qcacld-3.0: Add new ini param for min rest time during roaming scan" into wlan-cld3.driver.lnx.2.0-dev
This commit is contained in:
commit
0a40c2ac36
11 changed files with 130 additions and 2 deletions
|
|
@ -412,6 +412,31 @@ enum hdd_dot11_mode {
|
|||
#define CFG_NEIGHBOR_SCAN_TIMER_PERIOD_MAX (300)
|
||||
#define CFG_NEIGHBOR_SCAN_TIMER_PERIOD_DEFAULT (200)
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* gRoamRestTimeMin - Set min neighbor scan timer period
|
||||
* @Min: 3
|
||||
* @Max: 300
|
||||
* @Default: 200
|
||||
*
|
||||
* This is the min rest time after which firmware will check for traffic
|
||||
* and if there no traffic it will move to a new channel to scan
|
||||
* else it will stay on the home channel till gNeighborScanTimerPeriod time
|
||||
* and then will move to a new channel to scan.
|
||||
*
|
||||
* Related: None
|
||||
*
|
||||
* Supported Feature: LFR Scan
|
||||
*
|
||||
* Usage: External
|
||||
*
|
||||
* </ini>
|
||||
*/
|
||||
#define CFG_NEIGHBOR_SCAN_MIN_TIMER_PERIOD_NAME "gRoamRestTimeMin"
|
||||
#define CFG_NEIGHBOR_SCAN_MIN_TIMER_PERIOD_MIN (3)
|
||||
#define CFG_NEIGHBOR_SCAN_MIN_TIMER_PERIOD_MAX (300)
|
||||
#define CFG_NEIGHBOR_SCAN_MIN_TIMER_PERIOD_DEFAULT (200)
|
||||
|
||||
/*
|
||||
* <ini>
|
||||
* gOpportunisticThresholdDiff - Set oppurtunistic threshold diff
|
||||
|
|
@ -10611,6 +10636,7 @@ struct hdd_config {
|
|||
bool fFTResourceReqSupported;
|
||||
|
||||
uint16_t nNeighborScanPeriod;
|
||||
uint16_t neighbor_scan_min_period;
|
||||
uint8_t nNeighborLookupRssiThreshold;
|
||||
uint8_t delay_before_vdev_stop;
|
||||
uint8_t nOpportunisticThresholdDiff;
|
||||
|
|
|
|||
|
|
@ -175,6 +175,25 @@ cb_notify_set_neighbor_scan_period(hdd_context_t *pHddCtx,
|
|||
pHddCtx->config->nNeighborScanPeriod);
|
||||
}
|
||||
|
||||
/*
|
||||
* cb_notify_set_neighbor_scan_min_period() - configure min rest
|
||||
* time during roaming scan
|
||||
*
|
||||
* @hdd_ctx: HDD context data structure
|
||||
* @notify_id: Identifies 1 of the 4 parameters to be modified
|
||||
*
|
||||
* Picks up the value from hdd configuration and passes it to SME.
|
||||
* Return: void
|
||||
*/
|
||||
static void
|
||||
cb_notify_set_neighbor_scan_min_period(hdd_context_t *pHddCtx,
|
||||
unsigned long notifyId)
|
||||
{
|
||||
sme_set_neighbor_scan_min_period(pHddCtx->hHal, 0,
|
||||
pHddCtx->config->
|
||||
neighbor_scan_min_period);
|
||||
}
|
||||
|
||||
static void
|
||||
cb_notify_set_neighbor_results_refresh_period(hdd_context_t *pHddCtx,
|
||||
unsigned long notifyId)
|
||||
|
|
@ -1275,6 +1294,16 @@ struct reg_table_entry g_registry_table[] = {
|
|||
CFG_NEIGHBOR_SCAN_TIMER_PERIOD_MAX,
|
||||
cb_notify_set_neighbor_scan_period, 0),
|
||||
|
||||
REG_DYNAMIC_VARIABLE(CFG_NEIGHBOR_SCAN_MIN_TIMER_PERIOD_NAME,
|
||||
WLAN_PARAM_Integer,
|
||||
struct hdd_config, neighbor_scan_min_period,
|
||||
VAR_FLAGS_OPTIONAL |
|
||||
VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
|
||||
CFG_NEIGHBOR_SCAN_MIN_TIMER_PERIOD_DEFAULT,
|
||||
CFG_NEIGHBOR_SCAN_MIN_TIMER_PERIOD_MIN,
|
||||
CFG_NEIGHBOR_SCAN_MIN_TIMER_PERIOD_MAX,
|
||||
cb_notify_set_neighbor_scan_min_period, 0),
|
||||
|
||||
REG_DYNAMIC_VARIABLE(CFG_NEIGHBOR_LOOKUP_RSSI_THRESHOLD_NAME,
|
||||
WLAN_PARAM_Integer,
|
||||
struct hdd_config, nNeighborLookupRssiThreshold,
|
||||
|
|
@ -5522,6 +5551,8 @@ void hdd_cfg_print(hdd_context_t *pHddCtx)
|
|||
pHddCtx->config->nMaxNeighborReqTries);
|
||||
hdd_info("Name = [nNeighborScanPeriod] Value = [%u] ",
|
||||
pHddCtx->config->nNeighborScanPeriod);
|
||||
hdd_info("Name = [n_neighbor_scan_min_period] Value = [%u] ",
|
||||
pHddCtx->config->neighbor_scan_min_period);
|
||||
hdd_info("Name = [nNeighborScanResultsRefreshPeriod] Value = [%u] ",
|
||||
pHddCtx->config->nNeighborResultsRefreshPeriod);
|
||||
hdd_info("Name = [nEmptyScanRefreshPeriod] Value = [%u] ",
|
||||
|
|
@ -7484,6 +7515,9 @@ QDF_STATUS hdd_set_sme_config(hdd_context_t *pHddCtx)
|
|||
pConfig->nNeighborScanMinChanTime;
|
||||
smeConfig->csrConfig.neighborRoamConfig.nNeighborScanTimerPeriod =
|
||||
pConfig->nNeighborScanPeriod;
|
||||
smeConfig->csrConfig.neighborRoamConfig.
|
||||
neighbor_scan_min_timer_period =
|
||||
pConfig->neighbor_scan_min_period;
|
||||
smeConfig->csrConfig.neighborRoamConfig.nMaxNeighborRetries =
|
||||
pConfig->nMaxNeighborReqTries;
|
||||
smeConfig->csrConfig.neighborRoamConfig.nNeighborResultsRefreshPeriod =
|
||||
|
|
|
|||
|
|
@ -3028,6 +3028,7 @@ typedef struct sSirRoamOffloadScanReq {
|
|||
uint8_t Command;
|
||||
uint8_t reason;
|
||||
uint16_t NeighborScanTimerPeriod;
|
||||
uint16_t neighbor_scan_min_timer_period;
|
||||
uint16_t NeighborRoamScanRefreshPeriod;
|
||||
uint16_t NeighborScanChannelMinTime;
|
||||
uint16_t NeighborScanChannelMaxTime;
|
||||
|
|
|
|||
|
|
@ -1058,6 +1058,7 @@ typedef struct tagCsr11rConfigParams {
|
|||
typedef struct tagCsrNeighborRoamConfigParams {
|
||||
|
||||
uint32_t nNeighborScanTimerPeriod;
|
||||
uint32_t neighbor_scan_min_timer_period;
|
||||
uint8_t nNeighborLookupRssiThreshold;
|
||||
uint16_t nNeighborScanMinChanTime;
|
||||
uint16_t nNeighborScanMaxChanTime;
|
||||
|
|
|
|||
|
|
@ -429,6 +429,7 @@ typedef struct tagCsr11rConfig {
|
|||
|
||||
typedef struct tagCsrNeighborRoamConfig {
|
||||
uint32_t nNeighborScanTimerPeriod;
|
||||
uint32_t neighbor_scan_min_timer_period;
|
||||
uint8_t nNeighborLookupRssiThreshold;
|
||||
uint16_t nNeighborScanMinChanTime;
|
||||
uint16_t nNeighborScanMaxChanTime;
|
||||
|
|
|
|||
|
|
@ -54,6 +54,7 @@ typedef enum {
|
|||
typedef struct sCsrNeighborRoamCfgParams {
|
||||
uint8_t maxNeighborRetries;
|
||||
uint32_t neighborScanPeriod;
|
||||
uint32_t neighbor_scan_min_period;
|
||||
tCsrChannelInfo channelInfo;
|
||||
uint8_t neighborLookupThreshold;
|
||||
uint8_t neighborReassocThreshold;
|
||||
|
|
|
|||
|
|
@ -640,6 +640,8 @@ uint16_t sme_get_neighbor_scan_max_chan_time(tHalHandle hHal,
|
|||
QDF_STATUS sme_set_neighbor_scan_period(tHalHandle hHal, uint8_t sessionId,
|
||||
const uint16_t nNeighborScanPeriod);
|
||||
uint16_t sme_get_neighbor_scan_period(tHalHandle hHal, uint8_t sessionId);
|
||||
QDF_STATUS sme_set_neighbor_scan_min_period(tHalHandle h_hal,
|
||||
uint8_t session_id, const uint16_t neighbor_scan_min_period);
|
||||
QDF_STATUS sme_set_roam_bmiss_first_bcnt(tHalHandle hHal,
|
||||
uint8_t sessionId, const uint8_t nRoamBmissFirstBcnt);
|
||||
uint8_t sme_get_roam_bmiss_first_bcnt(tHalHandle hHal);
|
||||
|
|
|
|||
|
|
@ -8957,7 +8957,55 @@ uint16_t sme_get_neighbor_scan_period(tHalHandle hHal, uint8_t sessionId)
|
|||
neighborScanPeriod;
|
||||
}
|
||||
|
||||
/**
|
||||
* sme_set_neighbor_scan_min_period() - Update neighbor_scan_min_period
|
||||
* This function is called through dynamic setConfig callback function
|
||||
* to configure neighbor_scan_min_period
|
||||
*
|
||||
* @hal - HAL handle for device
|
||||
* @session_id - Session Identifier
|
||||
* @neighbor_scan_min_period - neighbor scan min period
|
||||
*
|
||||
* Return - QDF_STATUS
|
||||
*/
|
||||
QDF_STATUS sme_set_neighbor_scan_min_period(tHalHandle hal,
|
||||
uint8_t session_id,
|
||||
const uint16_t
|
||||
neighbor_scan_min_period)
|
||||
{
|
||||
tpAniSirGlobal pmac = PMAC_STRUCT(hal);
|
||||
QDF_STATUS status = QDF_STATUS_SUCCESS;
|
||||
tCsrNeighborRoamConfig *p_neighbor_roam_config = NULL;
|
||||
tpCsrNeighborRoamControlInfo p_neighbor_roam_info = NULL;
|
||||
|
||||
if (session_id >= CSR_ROAM_SESSION_MAX) {
|
||||
sme_err("Invalid sme session id: %d", session_id);
|
||||
return QDF_STATUS_E_INVAL;
|
||||
}
|
||||
|
||||
status = sme_acquire_global_lock(&pmac->sme);
|
||||
if (QDF_IS_STATUS_SUCCESS(status)) {
|
||||
p_neighbor_roam_config =
|
||||
&pmac->roam.configParam.neighborRoamConfig;
|
||||
p_neighbor_roam_info = &pmac->
|
||||
roam.neighborRoamInfo[session_id];
|
||||
sme_debug("LFR:set neighbor scan min period, old:%d, "
|
||||
"new: %d, state: %s",
|
||||
pmac->roam.configParam.neighborRoamConfig.
|
||||
neighbor_scan_min_timer_period,
|
||||
neighbor_scan_min_period,
|
||||
mac_trace_get_neighbour_roam_state(pmac->roam.
|
||||
neighborRoamInfo[session_id].
|
||||
neighborRoamState));
|
||||
p_neighbor_roam_config->neighbor_scan_min_timer_period =
|
||||
neighbor_scan_min_period;
|
||||
p_neighbor_roam_info->cfgParams.neighbor_scan_min_period =
|
||||
neighbor_scan_min_period;
|
||||
sme_release_global_lock(&pmac->sme);
|
||||
}
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------
|
||||
\brief sme_get_roam_rssi_diff() - get Roam rssi diff
|
||||
|
|
|
|||
|
|
@ -1428,6 +1428,8 @@ static void init_config_param(tpAniSirGlobal pMac)
|
|||
pMac->roam.configParam.neighborRoamConfig.nNeighborScanMaxChanTime = 40;
|
||||
pMac->roam.configParam.neighborRoamConfig.nNeighborScanTimerPeriod =
|
||||
200;
|
||||
pMac->roam.configParam.neighborRoamConfig.
|
||||
neighbor_scan_min_timer_period = 200;
|
||||
pMac->roam.configParam.neighborRoamConfig.neighborScanChanList.
|
||||
numChannels = 3;
|
||||
pMac->roam.configParam.neighborRoamConfig.neighborScanChanList.
|
||||
|
|
@ -2558,6 +2560,9 @@ QDF_STATUS csr_change_default_config_param(tpAniSirGlobal pMac,
|
|||
sme_debug("nNeighborScanTimerPerioid: %d",
|
||||
pMac->roam.configParam.neighborRoamConfig.
|
||||
nNeighborScanTimerPeriod);
|
||||
sme_debug("neighbor_scan_min_timer_period: %d",
|
||||
pMac->roam.configParam.neighborRoamConfig.
|
||||
neighbor_scan_min_timer_period);
|
||||
sme_debug("nNeighborLookupRssiThreshold: %d",
|
||||
pMac->roam.configParam.neighborRoamConfig.
|
||||
nNeighborLookupRssiThreshold);
|
||||
|
|
@ -17146,6 +17151,8 @@ csr_create_roam_scan_offload_request(tpAniSirGlobal mac_ctx,
|
|||
req_buf->reason = reason;
|
||||
req_buf->NeighborScanTimerPeriod =
|
||||
roam_info->cfgParams.neighborScanPeriod;
|
||||
req_buf->neighbor_scan_min_timer_period =
|
||||
roam_info->cfgParams.neighbor_scan_min_period;
|
||||
req_buf->NeighborRoamScanRefreshPeriod =
|
||||
roam_info->cfgParams.neighborResultsRefreshPeriod;
|
||||
req_buf->NeighborScanChannelMinTime =
|
||||
|
|
|
|||
|
|
@ -1264,6 +1264,9 @@ QDF_STATUS csr_neighbor_roam_init(tpAniSirGlobal pMac, uint8_t sessionId)
|
|||
pNeighborRoamInfo->cfgParams.neighborScanPeriod =
|
||||
pMac->roam.configParam.neighborRoamConfig.
|
||||
nNeighborScanTimerPeriod;
|
||||
pNeighborRoamInfo->cfgParams.neighbor_scan_min_period =
|
||||
pMac->roam.configParam.neighborRoamConfig.
|
||||
neighbor_scan_min_timer_period;
|
||||
pNeighborRoamInfo->cfgParams.neighborResultsRefreshPeriod =
|
||||
pMac->roam.configParam.neighborRoamConfig.
|
||||
nNeighborResultsRefreshPeriod;
|
||||
|
|
|
|||
|
|
@ -1398,9 +1398,12 @@ void wma_roam_scan_fill_scan_params(tp_wma_handle wma_handle,
|
|||
__func__,
|
||||
roam_req->NeighborScanChannelMinTime,
|
||||
roam_req->NeighborScanChannelMaxTime);
|
||||
WMA_LOGD("%s: NeighborScanTimerPeriod: %d HomeAwayTime: %d nProbes: %d",
|
||||
WMA_LOGD("%s: NeighborScanTimerPeriod: %d "
|
||||
"neighbor_scan_min_timer_period %d "
|
||||
"HomeAwayTime: %d nProbes: %d",
|
||||
__func__,
|
||||
roam_req->NeighborScanTimerPeriod,
|
||||
roam_req->neighbor_scan_min_timer_period,
|
||||
roam_req->HomeAwayTime, roam_req->nProbes);
|
||||
|
||||
/*
|
||||
|
|
@ -1476,7 +1479,8 @@ void wma_roam_scan_fill_scan_params(tp_wma_handle wma_handle,
|
|||
QDF_MAX(scan_params->burst_duration,
|
||||
scan_params->dwell_time_passive);
|
||||
}
|
||||
scan_params->min_rest_time = roam_req->NeighborScanTimerPeriod;
|
||||
scan_params->min_rest_time =
|
||||
roam_req->neighbor_scan_min_timer_period;
|
||||
scan_params->max_rest_time = roam_req->NeighborScanTimerPeriod;
|
||||
scan_params->repeat_probe_time = (roam_req->nProbes > 0) ?
|
||||
QDF_MAX(scan_params->dwell_time_active /
|
||||
|
|
|
|||
Loading…
Reference in a new issue