From 37bf7f4d22c5367afcad923815aa3780579facaa Mon Sep 17 00:00:00 2001 From: Krunal Soni Date: Fri, 4 May 2018 18:18:22 -0700 Subject: [PATCH] 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 --- hal/wifi3.0/hal_api_mon.h | 14 ++++++++++++-- qdf/inc/qdf_nbuf.h | 3 ++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/hal/wifi3.0/hal_api_mon.h b/hal/wifi3.0/hal_api_mon.h index a429d92a8af3..c309204c0a57 100644 --- a/hal/wifi3.0/hal_api_mon.h +++ b/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, diff --git a/qdf/inc/qdf_nbuf.h b/qdf/inc/qdf_nbuf.h index 4c7c7d875fcd..a399b7841d9d 100644 --- a/qdf/inc/qdf_nbuf.h +++ b/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