diff options
| -rw-r--r-- | CORE/MAC/inc/sirApi.h | 1 | ||||
| -rw-r--r-- | CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c | 15 | ||||
| -rw-r--r-- | CORE/SERVICES/WMA/wma.c | 10 |
3 files changed, 23 insertions, 3 deletions
diff --git a/CORE/MAC/inc/sirApi.h b/CORE/MAC/inc/sirApi.h index 1e5acbf90b20..dcf95a9fd012 100644 --- a/CORE/MAC/inc/sirApi.h +++ b/CORE/MAC/inc/sirApi.h @@ -4580,6 +4580,7 @@ typedef struct sSirScanOffloadReq { tANI_U16 uIEFieldLen; tANI_U16 uIEFieldOffset; + uint32_t burst_scan_duration; uint32_t enable_scan_randomization; uint8_t mac_addr[VOS_MAC_ADDR_SIZE]; uint8_t mac_addr_mask[VOS_MAC_ADDR_SIZE]; diff --git a/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c b/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c index 84a733d59034..5bd3baf325bb 100644 --- a/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c +++ b/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c @@ -82,6 +82,10 @@ #define DEFAULT_PASSIVE_MAX_CHANNEL_TIME 110 // in msecs #define CONV_MS_TO_US 1024 //conversion factor from ms to us + +#define BEACON_INTERVAL_THRESHOLD 50 /* in msecs */ +#define STA_BURST_SCAN_DURATION 120 /* in msecs */ + // SME REQ processing function templates static void __limProcessSmeStartReq(tpAniSirGlobal, tANI_U32 *); static tANI_BOOLEAN __limProcessSmeSysReadyInd(tpAniSirGlobal, tANI_U32 *); @@ -1315,7 +1319,16 @@ static eHalStatus limSendHalStartScanOffloadReq(tpAniSirGlobal pMac, pScanOffloadReq->min_rest_time= pScanReq->min_rest_time; pScanOffloadReq->idle_time= pScanReq->idle_time; - + for (i = 0; i < pMac->lim.maxBssId; i++) { + tpPESession session_entry = peFindSessionBySessionId(pMac,i); + if (session_entry && + (eLIM_MLM_LINK_ESTABLISHED_STATE == session_entry->limMlmState) && + (session_entry->beaconParams.beaconInterval + < BEACON_INTERVAL_THRESHOLD)) { + pScanOffloadReq->burst_scan_duration = STA_BURST_SCAN_DURATION; + break; + } + } /* for normal scan, the value for p2pScanType should be 0 always */ if (pScanReq->p2pSearch) diff --git a/CORE/SERVICES/WMA/wma.c b/CORE/SERVICES/WMA/wma.c index 698e823cbc8f..f961b489dc4c 100644 --- a/CORE/SERVICES/WMA/wma.c +++ b/CORE/SERVICES/WMA/wma.c @@ -10610,8 +10610,14 @@ VOS_STATUS wma_get_buf_start_scan_cmd(tp_wma_handle wma_handle, } if (wma_is_STA_active(wma_handle) || wma_is_P2P_CLI_active(wma_handle)) { - /* Typical background scan. Disable burst scan for now. */ - cmd->burst_duration = 0; + if (scan_req->burst_scan_duration) + cmd->burst_duration = + scan_req->burst_scan_duration; + else + /* Typical background scan. + * Disable burst scan for now. + */ + cmd->burst_duration = 0; break; } } while (0); |
