Browse Source

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
Hema Aparna Medicharla 9 years ago
parent
commit
5e1f302b26
1 changed files with 10 additions and 2 deletions
  1. 10 2
      core/mac/src/pe/lim/lim_process_message_queue.c

+ 10 - 2
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;
 		}
 	}