瀏覽代碼

qcacmn: Change the BW mapping on host side according to FW

Stats counters for BW were not updated correctly
due to difference in mapping of BW on host and FW

Also fix the Rx Stats to account for TCP Ack count

Change-Id: I7e844a7032e7968c110c7a0f8c45b0349a5cb818
Pranita Solanke 7 年之前
父節點
當前提交
d7e10baaa9
共有 4 個文件被更改,包括 15 次插入13 次删除
  1. 9 9
      dp/inc/cdp_txrx_cmn_struct.h
  2. 2 2
      dp/wifi3.0/dp_main.c
  3. 1 1
      dp/wifi3.0/dp_types.h
  4. 3 1
      hal/wifi3.0/hal_api_mon.h

+ 9 - 9
dp/inc/cdp_txrx_cmn_struct.h

@@ -56,7 +56,7 @@
 /* 1 additional GI is for invalid values */
 #define MAX_GI (4 + 1)
 #define SS_COUNT 8
-#define MAX_BW 4
+#define MAX_BW 7
 #define MAX_RECEPTION_TYPES 4
 
 /* Options for Dump Statistics */
@@ -1117,10 +1117,10 @@ struct cdp_pdev_stats {
  * @he_re: he_re (range extension)
  * @txbf: txbf
  * @bw: Transmission bandwidth
- *       <enum 0 transmit_bw_20_MHz>
- *       <enum 1 transmit_bw_40_MHz>
- *       <enum 2 transmit_bw_80_MHz>
- *       <enum 3 transmit_bw_160_MHz>
+ *       <enum 2 transmit_bw_20_MHz>
+ *       <enum 3 transmit_bw_40_MHz>
+ *       <enum 4 transmit_bw_80_MHz>
+ *       <enum 5 transmit_bw_160_MHz>
  * @nss: NSS 1,2, ...8
  * @mcs: MCS index
  * @preamble: preamble
@@ -1217,10 +1217,10 @@ struct cdp_tx_completion_ppdu {
 /**
  * struct cdp_rate_stats - Tx/Rx Rate statistics
  * @bw: Indicates the BW of the upcoming transmission -
- *       <enum 0 transmit_bw_20_MHz>
- *       <enum 1 transmit_bw_40_MHz>
- *       <enum 2 transmit_bw_80_MHz>
- *       <enum 3 transmit_bw_160_MHz>
+ *       <enum 2 transmit_bw_20_MHz>
+ *       <enum 3 transmit_bw_40_MHz>
+ *       <enum 4 transmit_bw_80_MHz>
+ *       <enum 5 transmit_bw_160_MHz>
  * @pkt_type: Transmit Packet Type
  * @stbc: When set, STBC transmission rate was used
  * @ldpc: When set, use LDPC transmission rates

+ 2 - 2
dp/wifi3.0/dp_main.c

@@ -4606,8 +4606,8 @@ static inline void dp_print_peer_stats(struct dp_peer *peer)
 			peer->stats.tx.sgi_count[2],
 			peer->stats.tx.sgi_count[3]);
 	DP_PRINT_STATS("BW Counts = 20MHZ %d 40MHZ %d 80MHZ %d 160MHZ %d\n",
-			peer->stats.tx.bw[0], peer->stats.tx.bw[1],
-			peer->stats.tx.bw[2], peer->stats.tx.bw[3]);
+			peer->stats.tx.bw[2], peer->stats.tx.bw[3],
+			peer->stats.tx.bw[4], peer->stats.tx.bw[5]);
 
 	DP_PRINT_STATS("Aggregation:");
 	DP_PRINT_STATS("	Number of Msdu's Part of Amsdu = %d",

+ 1 - 1
dp/wifi3.0/dp_types.h

@@ -48,7 +48,7 @@
 #include <hal_api_mon.h>
 #include "hal_rx.h"
 
-#define MAX_BW 4
+#define MAX_BW 7
 #define MAX_RETRIES 4
 #define MAX_RECEPTION_TYPES 4
 

+ 3 - 1
hal/wifi3.0/hal_api_mon.h

@@ -538,7 +538,9 @@ hal_rx_status_get_tlv_info(void *rx_tlv, struct hal_rx_ppdu_info *ppdu_info)
 						MCS);
 		ppdu_info->rx_status.tcp_msdu_count =
 			HAL_RX_GET(rx_tlv, RX_PPDU_END_USER_STATS_9,
-						TCP_MSDU_COUNT);
+					TCP_MSDU_COUNT) +
+			HAL_RX_GET(rx_tlv, RX_PPDU_END_USER_STATS_10,
+					TCP_ACK_MSDU_COUNT);
 		ppdu_info->rx_status.udp_msdu_count =
 			HAL_RX_GET(rx_tlv, RX_PPDU_END_USER_STATS_9,
 						UDP_MSDU_COUNT);