From 5e1f302b2647f9ddccb2f7939b238568e759b727 Mon Sep 17 00:00:00 2001 From: Hema Aparna Medicharla Date: Mon, 24 Aug 2015 11:22:29 +0530 Subject: [PATCH] qcacld-3.0: Donot defer Rx frames processing if ADD TS request sent qcacld-2.0 to qcacld-3.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 --- core/mac/src/pe/lim/lim_process_message_queue.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/core/mac/src/pe/lim/lim_process_message_queue.c b/core/mac/src/pe/lim/lim_process_message_queue.c index bdd66b31434a..bacb031ed16c 100644 --- a/core/mac/src/pe/lim/lim_process_message_queue.c +++ b/core/mac/src/pe/lim/lim_process_message_queue.c @@ -287,7 +287,14 @@ uint8_t static def_msg_decision(tpAniSirGlobal pMac, tpSirMsgQ limMsg) #ifdef FEATURE_OEM_DATA_SUPPORT (limMsg->type != WMA_START_OEM_DATA_RSP) && #endif - (limMsg->type != WMA_ADD_TS_RSP)) { + (limMsg->type != WMA_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(lim_log (pMac, LOG1, FL @@ -1890,7 +1897,8 @@ void lim_process_deferred_message_queue(tpAniSirGlobal pMac) if ((lim_is_system_in_scan_state(pMac)) || (true != GET_LIM_PROCESS_DEFD_MESGS(pMac)) - || (pMac->lim.gLimSystemInScanLearnMode)) + || (pMac->lim.gLimSystemInScanLearnMode) + || pMac->lim.gLimAddtsSent) break; } }