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
diff --git a/hal/wifi3.0/hal_api_mon.h b/hal/wifi3.0/hal_api_mon.h
index a429d92..c309204 100644
--- a/hal/wifi3.0/hal_api_mon.h
+++ b/hal/wifi3.0/hal_api_mon.h
@@ -958,8 +958,13 @@
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 @@
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,
diff --git a/qdf/inc/qdf_nbuf.h b/qdf/inc/qdf_nbuf.h
index 4c7c7d8..a399b78 100644
--- a/qdf/inc/qdf_nbuf.h
+++ b/qdf/inc/qdf_nbuf.h
@@ -385,7 +385,8 @@
/* 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