Bladeren bron

qcacmn: Update radiotap header with LTF symbol value

As per the updated spec, 11AX PPDU's HE SIG_A data-5 field has added
LTF symbol field which is 3bits in size.

Add logic to parse the TLV coming from hardware and update the
LTF symbol value.

Change-Id: I05e2ff8ece7e14dc22ce747e9a9b906bf130462f
CRs-Fixed: 2235233
Krunal Soni 7 jaren geleden
bovenliggende
commit
37bf7f4d22
2 gewijzigde bestanden met toevoegingen van 14 en 3 verwijderingen
  1. 12 2
      hal/wifi3.0/hal_api_mon.h
  2. 2 1
      qdf/inc/qdf_nbuf.h

+ 12 - 2
hal/wifi3.0/hal_api_mon.h

@@ -958,8 +958,13 @@ hal_rx_status_get_tlv_info(void *rx_tlv_hdr, struct hal_rx_ppdu_info *ppdu_info)
 		ppdu_info->rx_status.sgi = he_gi;
 		value = he_gi << QDF_MON_STATUS_GI_SHIFT;
 		ppdu_info->rx_status.he_data5 |= value;
-		value = he_ltf << QDF_MON_STATUS_HE_LTF_SHIFT;
+		value = he_ltf << QDF_MON_STATUS_HE_LTF_SIZE_SHIFT;
 		ppdu_info->rx_status.he_data5 |= value;
+
+		value = HAL_RX_GET(he_sig_a_su_info, HE_SIG_A_SU_INFO_0, NSTS);
+		value = (value << QDF_MON_STATUS_HE_LTF_SYM_SHIFT);
+		ppdu_info->rx_status.he_data5 |= value;
+
 		value = HAL_RX_GET(he_sig_a_su_info, HE_SIG_A_SU_INFO_1,
 							PACKET_EXTENSION_A_FACTOR);
 		value = value << QDF_MON_STATUS_PRE_FEC_PAD_SHIFT;
@@ -1078,7 +1083,12 @@ hal_rx_status_get_tlv_info(void *rx_tlv_hdr, struct hal_rx_ppdu_info *ppdu_info)
 		value = he_gi << QDF_MON_STATUS_GI_SHIFT;
 		ppdu_info->rx_status.he_data5 |= value;
 
-		value = he_ltf << QDF_MON_STATUS_HE_LTF_SHIFT;
+		value = he_ltf << QDF_MON_STATUS_HE_LTF_SIZE_SHIFT;
+		ppdu_info->rx_status.he_data5 |= value;
+
+		value = HAL_RX_GET(he_sig_a_mu_dl_info,
+				   HE_SIG_A_MU_DL_INFO_1, NUM_LTF_SYMBOLS);
+		value = (value << QDF_MON_STATUS_HE_LTF_SYM_SHIFT);
 		ppdu_info->rx_status.he_data5 |= value;
 
 		value = HAL_RX_GET(he_sig_a_mu_dl_info, HE_SIG_A_MU_DL_INFO_1,

+ 2 - 1
qdf/inc/qdf_nbuf.h

@@ -385,7 +385,8 @@ struct mon_rx_status {
 
 /* HE radiotap data5 */
 #define QDF_MON_STATUS_GI_SHIFT 4
-#define QDF_MON_STATUS_HE_LTF_SHIFT 8
+#define QDF_MON_STATUS_HE_LTF_SIZE_SHIFT 6
+#define QDF_MON_STATUS_HE_LTF_SYM_SHIFT 8
 #define QDF_MON_STATUS_TXBF_SHIFT 14
 #define QDF_MON_STATUS_PE_DISAMBIGUITY_SHIFT 15
 #define QDF_MON_STATUS_PRE_FEC_PAD_SHIFT 12