SCAN-OFFLOAD: Changes required to process the scan results.
Changes required to process the probe response and beacons frames
when scan offload is enabled.
Change-Id: I5e94f2dd823c8c442100831c5c19d01753de80a6
CRs-fixed: 500914
diff --git a/CORE/MAC/src/pe/lim/limProcessBeaconFrame.c b/CORE/MAC/src/pe/lim/limProcessBeaconFrame.c
index bebfa11..45a2339 100644
--- a/CORE/MAC/src/pe/lim/limProcessBeaconFrame.c
+++ b/CORE/MAC/src/pe/lim/limProcessBeaconFrame.c
@@ -102,9 +102,11 @@
WDA_GET_RX_MPDU_LEN(pRxPacketInfo));
limPrintMacAddr(pMac, pHdr->sa, LOG2);)
- if (limDeactivateMinChannelTimerDuringScan(pMac) != eSIR_SUCCESS)
- return;
-
+ if (!pMac->fScanOffload)
+ {
+ if (limDeactivateMinChannelTimerDuringScan(pMac) != eSIR_SUCCESS)
+ return;
+ }
/**
* Expect Beacon only when
@@ -116,7 +118,9 @@
if ((pMac->lim.gLimMlmState == eLIM_MLM_WT_PROBE_RESP_STATE) ||
(pMac->lim.gLimMlmState == eLIM_MLM_PASSIVE_SCAN_STATE) ||
(pMac->lim.gLimMlmState == eLIM_MLM_LEARN_STATE) ||
- (psessionEntry->limMlmState == eLIM_MLM_WT_JOIN_BEACON_STATE))
+ (psessionEntry->limMlmState == eLIM_MLM_WT_JOIN_BEACON_STATE)
+ || pMac->fScanOffload
+ )
{
if(eHAL_STATUS_SUCCESS != palAllocateMemory(pMac->hHdd,
(void **)&pBeacon, sizeof(tSchBeaconStruct)))
@@ -153,6 +157,12 @@
MTRACE(macTrace(pMac, TRACE_CODE_RX_MGMT_TSF, 0, pBeacon->timeStamp[0]);)
MTRACE(macTrace(pMac, TRACE_CODE_RX_MGMT_TSF, 0, pBeacon->timeStamp[1]);)
+ if (pMac->fScanOffload)
+ {
+ limCheckAndAddBssDescription(pMac, pBeacon, pRxPacketInfo,
+ eANI_BOOLEAN_FALSE, eANI_BOOLEAN_TRUE);
+
+ }
if ((pMac->lim.gLimMlmState == eLIM_MLM_WT_PROBE_RESP_STATE) ||
(pMac->lim.gLimMlmState == eLIM_MLM_PASSIVE_SCAN_STATE))
@@ -169,7 +179,7 @@
else if (pMac->lim.gLimMlmState == eLIM_MLM_LEARN_STATE)
{
}
- else
+ else if (psessionEntry->limMlmState == eLIM_MLM_WT_JOIN_BEACON_STATE)
{
if( psessionEntry->beacon != NULL )
{
@@ -249,9 +259,11 @@
WDA_GET_RX_MPDU_LEN(pRxPacketInfo));
limPrintMacAddr(pMac, pHdr->sa, LOG2);
- if (limDeactivateMinChannelTimerDuringScan(pMac) != eSIR_SUCCESS)
- return;
-
+ if (!pMac->fScanOffload)
+ {
+ if (limDeactivateMinChannelTimerDuringScan(pMac) != eSIR_SUCCESS)
+ return;
+ }
/**
* No session has been established. Expect Beacon only when