qcacld-3.0: Add new ini param for min rest time during roaming scan
Currently both min and max rest time use the same ini param gNeighborScanTimerPeriod. Add a new ini param gRoamRestTimeMin for min rest time during channel scan. Change-Id: Ifbb0fcc736e81b292639c6f2ad3119b451bec4f2 CRs-Fixed: 2060095
This commit is contained in:
@@ -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;
|
||||
|
Reference in New Issue
Block a user