소스 검색

qcacmn: Added field to get valid sequence number

sequence number populated from tlv are incorrect for some frames.
Firmware populate correct sequence number for management and control
frame either in payload or tlv itself.

added field to get valid sequence number.

Change-Id: I21b1c34c0d66cb46c3a0baaaa231c952de065534
nobelj 4 년 전
부모
커밋
5144f963ef
2개의 변경된 파일7개의 추가작업 그리고 1개의 파일을 삭제
  1. 5 1
      dp/inc/cdp_txrx_cmn_struct.h
  2. 2 0
      dp/wifi3.0/dp_htt.c

+ 5 - 1
dp/inc/cdp_txrx_cmn_struct.h

@@ -1645,6 +1645,9 @@ struct cdp_delayed_tx_completion_ppdu_user {
  * @ppdu_type: SU/MU_MIMO/MU_OFDMA/MU_MIMO_OFDMA/UL_TRIG/BURST_BCN/UL_BSR_RESP/
  * @pream_punct: Preamble Punctured PPDU
  * UL_BSR_TRIG/UNKNOWN
+ * @is_seq_num_valid:
+ *       1 - stats tlv has valid sequence number
+ *       0 - payload has valid sequence number
  * @ba_seq_no: Block Ack sequence number
  * @ba_bitmap: Block Ack bitmap
  * @start_seqa: Sequence number of first MPDU
@@ -1695,7 +1698,8 @@ struct cdp_tx_completion_ppdu_user {
 		 tx_ratecode:16,
 		 is_ampdu:1,
 		 ppdu_type:5,
-		 pream_punct:1;
+		 pream_punct:1,
+		 is_seq_num_valid:1;
 	uint32_t success_bytes;
 	uint32_t retry_bytes;
 	uint32_t failed_bytes;

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

@@ -2521,6 +2521,8 @@ static void dp_process_ppdu_stats_user_common_tlv(
 		HTT_PPDU_STATS_USER_COMMON_TLV_MPDUS_TRIED_GET(*tag_buf);
 	}
 
+	ppdu_user_desc->is_seq_num_valid =
+	HTT_PPDU_STATS_USER_COMMON_TLV_IS_SQNUM_VALID_IN_BUFFER_GET(*tag_buf);
 	tag_buf++;
 
 	ppdu_user_desc->qos_ctrl =