Browse Source

qcacmn: Fix wait count calculation

Return wait count as zero when all the frames of a given link are
processed by host SW. Also initialize the management packet counter of
host snapshot to 65535.

CRs-Fixed: 3166064
Change-Id: I88e757981e09640be93df8d3a583c6f14b2781b9
Edayilliam Jayadev 3 years ago
parent
commit
62833eadc8

+ 5 - 4
umac/cmn_services/mgmt_txrx/core/src/wlan_mgmt_txrx_rx_reo.c

@@ -827,9 +827,10 @@ wlan_mgmt_rx_reo_algo_calculate_wait_count(
 					host_ss->mgmt_pkt_ctr);
 		qdf_assert_always(frames_pending >= 0);
 
-		if (mgmt_rx_reo_compare_global_timestamps_gte(
-					mac_hw_ss->global_timestamp,
-					in_frame_params->global_timestamp)) {
+		if (frames_pending &&
+		    mgmt_rx_reo_compare_global_timestamps_gte
+					(mac_hw_ss->global_timestamp,
+					 in_frame_params->global_timestamp)) {
 			/**
 			 * Last frame seen at MAC HW has timestamp greater than
 			 * or equal to incoming frame's timestamp. So no need to
@@ -4431,7 +4432,7 @@ wlan_mgmt_rx_reo_initialize_snapshot_params(
 			struct mgmt_rx_reo_snapshot_params *snapshot_params)
 {
 	snapshot_params->valid = false;
-	snapshot_params->mgmt_pkt_ctr = 0;
+	snapshot_params->mgmt_pkt_ctr = MGMT_RX_REO_MGMT_PKT_CTR_INITIAL_VALUE;
 	snapshot_params->global_timestamp = 0;
 }
 

+ 1 - 0
umac/cmn_services/mgmt_txrx/core/src/wlan_mgmt_txrx_rx_reo_i.h

@@ -36,6 +36,7 @@
 #include <wlan_objmgr_psoc_obj.h>
 #include <wlan_mlo_mgr_public_structs.h>
 
+#define MGMT_RX_REO_MGMT_PKT_CTR_INITIAL_VALUE   ((1 << 16) - 1)
 #define MGMT_RX_REO_LIST_MAX_SIZE             (100)
 #define MGMT_RX_REO_LIST_TIMEOUT_US           (500 * USEC_PER_MSEC)
 #define MGMT_RX_REO_AGEOUT_TIMER_PERIOD_MS    (250)