Jelajahi Sumber

qcacmn: Based on Preamble type setting flags value

1. Moving HT,VHT and HE flags setting into
WIFIRX_PPDU_END_USER_STATS_E case.
As this TLV already have preamble type populated.
2. NSS value wrongly populated in WIFIRX_PPDU_END_USER_STATS_E
case. It has been removed now.

Change-Id: I1c530385c585c0ea0dd14a07a6759a85b80e6a10
Keyur Parekh 7 tahun lalu
induk
melakukan
844e627170
1 mengubah file dengan 16 tambahan dan 19 penghapusan
  1. 16 19
      hal/wifi3.0/hal_api_mon.h

+ 16 - 19
hal/wifi3.0/hal_api_mon.h

@@ -421,23 +421,6 @@ void hal_rx_mon_hw_desc_get_mpdu_status(void *hw_desc_addr,
 	rs->nr_ant = HAL_RX_GET(rx_msdu_start, RX_MSDU_START_5, NSS);
 #endif
 
-	reg_value = HAL_RX_GET(rx_msdu_start, RX_MSDU_START_5, PKT_TYPE);
-	switch (reg_value) {
-	case HAL_RX_PKT_TYPE_11N:
-		rs->ht_flags = 1;
-		break;
-	case HAL_RX_PKT_TYPE_11AC:
-		rs->vht_flags = 1;
-		reg_value = HAL_RX_GET(rx_msdu_start, RX_MSDU_START_5,
-			RECEIVE_BANDWIDTH);
-		rs->vht_flag_values2 = reg_value;
-		break;
-	case HAL_RX_PKT_TYPE_11AX:
-		rs->he_flags = 1;
-		break;
-	default:
-		break;
-	}
 	reg_value = HAL_RX_GET(rx_msdu_start, RX_MSDU_START_5, RECEPTION_TYPE);
 	rs->beamformed = (reg_value == HAL_RX_RECEPTION_TYPE_MU_MIMO) ? 1 : 0;
 	/* TODO: rs->beamformed should be set for SU beamforming also */
@@ -570,8 +553,6 @@ hal_rx_status_get_tlv_info(void *rx_tlv, struct hal_rx_ppdu_info *ppdu_info)
 		ppdu_info->rx_status.other_msdu_count =
 			HAL_RX_GET(rx_tlv, RX_PPDU_END_USER_STATS_10,
 					OTHER_MSDU_COUNT);
-		ppdu_info->rx_status.nss =
-			HAL_RX_GET(rx_tlv, RX_PPDU_END_USER_STATS_1, NSS);
 
 		ppdu_info->rx_status.frame_control_info_valid =
 			HAL_RX_GET(rx_tlv, RX_PPDU_END_USER_STATS_3,
@@ -585,6 +566,20 @@ hal_rx_status_get_tlv_info(void *rx_tlv, struct hal_rx_ppdu_info *ppdu_info)
 		ppdu_info->rx_status.preamble_type =
 			HAL_RX_GET(rx_tlv, RX_PPDU_END_USER_STATS_3,
 						HT_CONTROL_FIELD_PKT_TYPE);
+		switch (ppdu_info->rx_status.preamble_type) {
+		case HAL_RX_PKT_TYPE_11N:
+			ppdu_info->rx_status.ht_flags = 1;
+			break;
+		case HAL_RX_PKT_TYPE_11AC:
+			ppdu_info->rx_status.vht_flags = 1;
+			break;
+		case HAL_RX_PKT_TYPE_11AX:
+			ppdu_info->rx_status.he_flags = 1;
+			break;
+		default:
+			break;
+		}
+
 		ppdu_info->com_info.mpdu_cnt_fcs_ok =
 			HAL_RX_GET(rx_tlv, RX_PPDU_END_USER_STATS_3,
 					MPDU_CNT_FCS_OK);
@@ -728,6 +723,8 @@ hal_rx_status_get_tlv_info(void *rx_tlv, struct hal_rx_ppdu_info *ppdu_info)
 				| ppdu_info->rx_status.nss);
 		ppdu_info->rx_status.bw = HAL_RX_GET(vht_sig_a_info,
 				VHT_SIG_A_INFO_0, BANDWIDTH);
+		ppdu_info->rx_status.vht_flag_values2 =
+			ppdu_info->rx_status.bw;
 
 		break;
 	}