qcacld-3.0: Disable HI_RSSI_SCAN in few scenarios

qcacld-2.0 to qcacld-3.0 propagation

The HI_RSSI_SCAN feature is only meant to address the
scenario where user walks into a home which has dual band
AP and the 2.4G AP is visible initially and then the 5G AP
is visible later.
Disable the HI_RSSI_SCAN feature in the following cases:
1. Connection is a roaming connection
2. Connection is made with a 5G AP
3. Connection is made with a 2.4G AP, but the rssi is
   stronger than the hi_rssi_lookup_threshold

CRs-Fixed: 975401
Change-Id: I86c63d9f8b51b6bdccc804163241ffe5640baf4d
This commit is contained in:
Varun Reddy Yeturu 2016-04-25 17:03:56 -07:00 • committed by Gerrit - the friendly Code Review server
commit 7fc616d09a
2 changed files with 18 additions and 5 deletions

View file

@ -990,6 +990,7 @@ typedef struct tagCsrRoamSession {
bool ch_switch_in_progress;
bool roam_synch_in_progress;
bool supported_nss_1x1;
bool disable_hi_rssi;
} tCsrRoamSession;
typedef struct tagCsrRoamStruct {

View file

@ -13437,6 +13437,7 @@ QDF_STATUS csr_send_join_req_msg(tpAniSirGlobal pMac, uint32_t sessionId,
struct ps_global_info *ps_global_info = &pMac->sme.ps_global_info;
struct ps_params *ps_param = &ps_global_info->ps_params[sessionId];
uint8_t ese_config = 0;
tpCsrNeighborRoamControlInfo neigh_roam_info;
if (!pSession) {
@ -13448,6 +13449,20 @@ QDF_STATUS csr_send_join_req_msg(tpAniSirGlobal pMac, uint32_t sessionId,
sms_log(pMac, LOGE, FL(" pBssDescription is NULL"));
return QDF_STATUS_E_FAILURE;
}
neigh_roam_info = &pMac->roam.neighborRoamInfo[sessionId];
if ((eWNI_SME_REASSOC_REQ == messageType) ||
CDS_IS_CHANNEL_5GHZ(pBssDescription->channelId) ||
(abs(pBssDescription->rssi) <
(neigh_roam_info->cfgParams.neighborLookupThreshold +
neigh_roam_info->cfgParams.hi_rssi_scan_rssi_delta))) {
pSession->disable_hi_rssi = true;
sms_log(pMac, LOG1,
FL("Disabling HI_RSSI feature, AP channel=%d, rssi=%d"),
pBssDescription->channelId, pBssDescription->rssi);
} else {
pSession->disable_hi_rssi = false;
}
do {
pSession->joinFailStatusCode.statusCode = eSIR_SME_SUCCESS;
@ -16948,14 +16963,11 @@ csr_roam_offload_scan(tpAniSirGlobal mac_ctx, uint8_t session_id,
* is useful only if we are connected to a 2.4 GHz AP and we wish
* to connect to a better 5GHz AP is available.
*/
if (CDS_IS_CHANNEL_5GHZ(op_channel)) {
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
"Disabling HI_RSSI feature as connected AP is 5GHz");
if (session->disable_hi_rssi)
req_buf->hi_rssi_scan_rssi_delta = 0;
} else {
else
req_buf->hi_rssi_scan_rssi_delta =
roam_info->cfgParams.hi_rssi_scan_rssi_delta;
}
QDF_TRACE(QDF_MODULE_ID_SME, QDF_TRACE_LEVEL_DEBUG,
"hi_rssi:delta=%d, max_count=%d, delay=%d, ub=%d",
req_buf->hi_rssi_scan_rssi_delta,