summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHema Aparna Medicharla <haparna@qti.qualcomm.com>2015-07-21 11:07:45 +0530
committerGerrit - the friendly Code Review server <code-review@localhost>2015-08-18 03:03:14 -0700
commitcbc5bbe8afa55c493e30938c2d6fe1453caf989a (patch)
tree1d9dc31b4684a9bd8a59eda1a2012bd1feb38570
parentaa2cba1343f07fa0ea6efa56eee0e889a442d1d5 (diff)
qcacld-2.0: Donot defer Rx frames processing if ADD TS request sent
prima to qcacld-2.0 propagation Current implementation defers all the received frames when ADD TS request is sent out over the air. This, in addition, to check for pMac->lim.gLimAddtsSent incurs delay, till ADD TS response timeout, in processing of the ADD TS response received if SET_LIM_PROCESS_DEFD_MESGS is set to FALSE. As there is no rationale defer processing of Rx frames while waiting for ADDTS response, changes are made to not defer processing of RX frames for the same. Change-Id: I1d1a41a0e3555ae19548a0cabf3b9569af775f72 CRs-Fixed: 839546
-rw-r--r--CORE/MAC/src/pe/lim/limProcessMessageQueue.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/CORE/MAC/src/pe/lim/limProcessMessageQueue.c b/CORE/MAC/src/pe/lim/limProcessMessageQueue.c
index 0a9c3f4db405..829f4e1f8f68 100644
--- a/CORE/MAC/src/pe/lim/limProcessMessageQueue.c
+++ b/CORE/MAC/src/pe/lim/limProcessMessageQueue.c
@@ -138,8 +138,12 @@ defMsgDecision(tpAniSirGlobal pMac, tpSirMsgQ limMsg)
#ifdef FEATURE_OEM_DATA_SUPPORT
(limMsg->type != WDA_START_OEM_DATA_RSP) &&
#endif
- (limMsg->type != WDA_ADD_TS_RSP))
- {
+ (limMsg->type != WDA_ADD_TS_RSP) &&
+ /* Allow processing of RX frames while awaiting reception of
+ ADD TS response over the air. This logic particularly handles the
+ case when host sends ADD BA request to FW after ADD TS request
+ is sent over the air and ADD TS response received over the air */
+ !(limMsg->type == SIR_BB_XPORT_MGMT_MSG && pMac->lim.gLimAddtsSent)) {
PELOG1(limLog(pMac, LOG1, FL("Defer the current message type %d , gLimProcessDefdMsgs is false and system is not in scan/learn mode"),
limMsg->type);)
@@ -2206,7 +2210,8 @@ limProcessDeferredMessageQueue(tpAniSirGlobal pMac)
limProcessMessages(pMac, &limMsg);
if((limIsSystemInScanState(pMac)) || (true != GET_LIM_PROCESS_DEFD_MESGS(pMac)) ||
- (pMac->lim.gLimSystemInScanLearnMode))
+ (pMac->lim.gLimSystemInScanLearnMode) ||
+ pMac->lim.gLimAddtsSent)
break;
}
}