Эх сурвалжийг харах

qcacmn: Correct the Frame control info valid in hal API

Instead of frame control info valid parameter data sequence
control parameter was passed, corrected it

Change-Id: Iccaeb286c1003cbb58c5ebcacf4b0d99c979cbbc
Anish Nataraj 6 жил өмнө
parent
commit
eb30aa7f83

+ 2 - 1
dp/inc/cdp_txrx_cmn_struct.h

@@ -1197,6 +1197,7 @@ struct cdp_tx_completion_msdu {
  * @length: PPDU length
  * @channel: Channel informartion
  * @lsig_A: L-SIG in 802.11 PHY header
+ * @frame_ctrl: frame control field
  */
 struct cdp_rx_indication_ppdu {
 	uint32_t ppdu_id;
@@ -1243,7 +1244,7 @@ struct cdp_rx_indication_ppdu {
 	uint32_t rx_byte_count;
 	uint8_t rx_ratecode;
 	uint8_t fcs_error_mpdus;
-
+	uint16_t frame_ctrl;
 };
 
 /**

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

@@ -56,6 +56,8 @@ dp_rx_populate_cdp_indication_ppdu(struct dp_pdev *pdev,
 
 	cdp_rx_ppdu->first_data_seq_ctrl =
 		ppdu_info->rx_status.first_data_seq_ctrl;
+	cdp_rx_ppdu->frame_ctrl =
+		ppdu_info->rx_status.frame_control;
 	cdp_rx_ppdu->ppdu_id = ppdu_info->com_info.ppdu_id;
 	cdp_rx_ppdu->length = ppdu_info->rx_status.ppdu_len;
 	cdp_rx_ppdu->duration = ppdu_info->rx_status.duration;

+ 12 - 3
hal/wifi3.0/hal_generic_api.h

@@ -324,11 +324,20 @@ hal_rx_status_get_tlv_info_generic(void *rx_tlv_hdr, void *ppduinfo,
 
 		ppdu_info->rx_status.frame_control_info_valid =
 			HAL_RX_GET(rx_tlv, RX_PPDU_END_USER_STATS_3,
-					DATA_SEQUENCE_CONTROL_INFO_VALID);
+					FRAME_CONTROL_INFO_VALID);
 
-		seq = HAL_RX_GET(rx_tlv, RX_PPDU_END_USER_STATS_5,
-					FIRST_DATA_SEQ_CTRL);
 		if (ppdu_info->rx_status.frame_control_info_valid)
+			ppdu_info->rx_status.frame_control =
+				 HAL_RX_GET(rx_tlv, RX_PPDU_END_USER_STATS_4,
+					    FRAME_CONTROL_FIELD);
+
+		ppdu_info->rx_status.data_sequence_control_info_valid =
+			HAL_RX_GET(rx_tlv, RX_PPDU_END_USER_STATS_3,
+				   DATA_SEQUENCE_CONTROL_INFO_VALID);
+
+		seq = HAL_RX_GET(rx_tlv, RX_PPDU_END_USER_STATS_5,
+				 FIRST_DATA_SEQ_CTRL);
+		if (ppdu_info->rx_status.data_sequence_control_info_valid)
 			ppdu_info->rx_status.first_data_seq_ctrl = seq;
 
 		ppdu_info->rx_status.preamble_type =

+ 7 - 2
qdf/inc/qdf_nbuf.h

@@ -191,7 +191,8 @@
  * @he_sig_b_common_RU[4]: HE (11ax) common RU assignment index
  * @rssi_comb: Combined RSSI
  * @duration: 802.11 Duration
- * @first_data_seq_ctrl: Sequence ctrl field of first data frame
+ * @frame_control_info_valid: field indicates if fc value is valid
+ * @frame_control: frame control field
  * @ast_index: AST table hash index
  * @tid: QoS traffic tid number
  * @rs_fcs_err: FCS error flag
@@ -218,6 +219,8 @@
  * function.
  * @device_id: Device ID coming from sub-system (PCI, AHB etc..)
  * @chan_noise_floor: Channel Noise Floor for the pdev
+ * @data_sequence_control_info_valid: field to indicate validity of seq control
+ * @first_data_seq_ctrl: Sequence ctrl field of first data frame
  */
 struct mon_rx_status {
 	uint64_t tsft;
@@ -263,7 +266,7 @@ struct mon_rx_status {
 	uint8_t  reception_type;
 	uint16_t duration;
 	uint8_t frame_control_info_valid;
-	int16_t first_data_seq_ctrl;
+	uint16_t frame_control;
 	uint32_t ast_index;
 	uint32_t tid;
 	uint8_t  rs_fcs_err;
@@ -290,6 +293,8 @@ struct mon_rx_status {
 	uint32_t device_id;
 	int16_t chan_noise_floor;
 	uint8_t monitor_direct_used;
+	uint8_t data_sequence_control_info_valid;
+	uint16_t first_data_seq_ctrl;
 };
 
 /**