diff options
| author | CNSS_WLAN Service <cnssbldsw@qualcomm.com> | 2018-05-30 02:12:31 -0700 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2018-05-30 02:12:31 -0700 |
| commit | e521139b8c7d0fe81fa361df04ca64defeffe3c2 (patch) | |
| tree | 7663f979d139ab9e9600d9bb4f03e93ad1f198b2 | |
| parent | 21f376fced96beac75d8cb13becaf6732c377e12 (diff) | |
| parent | 7e30c67dfd97d100de0b13e9f6f15a9fbeb6b290 (diff) | |
Merge "qcacld-2.0: Improve empty beacon fix in 802.11k" into wlan-cld2.driver.lnx.1.0
| -rw-r--r-- | CORE/SME/src/rrm/sme_rrm.c | 37 |
1 files changed, 21 insertions, 16 deletions
diff --git a/CORE/SME/src/rrm/sme_rrm.c b/CORE/SME/src/rrm/sme_rrm.c index 6f090be694d1..cec781bd13e4 100644 --- a/CORE/SME/src/rrm/sme_rrm.c +++ b/CORE/SME/src/rrm/sme_rrm.c @@ -474,6 +474,7 @@ static eHalStatus sme_RrmSendScanResult( tpAniSirGlobal pMac, tpRrmSMEContext pSmeRrmContext = &pMac->rrm.rrmSmeContext; tANI_U32 sessionId; tCsrRoamInfo *roam_info; + tSirScanType scan_type; #if defined WLAN_VOWIFI_DEBUG smsLog( pMac, LOGE, "Send scan result to PE "); @@ -591,31 +592,35 @@ static eHalStatus sme_RrmSendScanResult( tpAniSirGlobal pMac, #endif /*FEATURE_WLAN_ESE_UPLOAD*/ status = sme_RrmSendBeaconReportXmitInd( pMac, NULL, measurementDone, 0 ); } + if (eRRM_MSG_SOURCE_ESE_UPLOAD == pSmeRrmContext->msgSource || + eRRM_MSG_SOURCE_LEGACY_ESE == pSmeRrmContext->msgSource) + scan_type = pSmeRrmContext->measMode[pSmeRrmContext->currentIndex]; + else + scan_type = pSmeRrmContext->measMode[0]; counter=0; while (pScanResult) { /* - * If scan results containing connected BSS, "pScanResult->timer >= RRM_scan_timer" - * is not suitable for the scan timer of connected BSS is unchangable. + * In passive scan, sta listens beacon. Connected AP beacon + * is offloaded to firmware. Firmware will discard + * connected AP beacon except that special IE exists. + * Connected AP beacon will not be sent to host. Hence, timer + * of connected AP in scan results is not updated and can + * not meet "pScanResult->timer >= RRM_scan_timer". */ - uint8_t i; tCsrRoamSession *session; uint8_t is_conn_bss_found = false; - for (i = 0; i < CSR_ROAM_SESSION_MAX; i++) - { - if (CSR_IS_SESSION_VALID(pMac, i)) - { - session = CSR_GET_SESSION(pMac, i); - if (csrIsConnStateConnectedInfra(pMac, i) && (NULL != session->pConnectBssDesc) && - (csrIsDuplicateBssDescription(pMac, &pScanResult->BssDescriptor, - session->pConnectBssDesc, NULL, FALSE))) - { - is_conn_bss_found = true; - break; - } - } + if (scan_type == eSIR_PASSIVE_SCAN) { + session = CSR_GET_SESSION(pMac, sessionId); + if (csrIsConnStateConnectedInfra(pMac, sessionId) && + (NULL != session->pConnectBssDesc) && + (csrIsDuplicateBssDescription(pMac, &pScanResult->BssDescriptor, + session->pConnectBssDesc, NULL, FALSE))) { + is_conn_bss_found = true; + smsLog(pMac, LOG1, "Connected BSS in scan results"); + } } pNextResult = sme_ScanResultGetNext(pMac, pResult); smsLog(pMac, LOG1, "Scan res timer:%lu, rrm scan timer:%lu", |
