From 33038895577f9227ce04c62ec291376753bf72db Mon Sep 17 00:00:00 2001 From: sumedh baikady Date: Fri, 9 Feb 2018 15:09:53 -0800 Subject: [PATCH] qcacmn: Fix GI and LTF in radiotap field of HE Fix GI and LTF fields for HE SU PPDU and HE ER SU PPDU when DCM and STBC is 1. Change-Id: I2f1f6cf52a7ca4182541fe7e95bf27e560ad60b8 CRs-fixed: 2185322 --- hal/wifi3.0/hal_api_mon.h | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/hal/wifi3.0/hal_api_mon.h b/hal/wifi3.0/hal_api_mon.h index 8ee230114bf8..0376291c5af2 100644 --- a/hal/wifi3.0/hal_api_mon.h +++ b/hal/wifi3.0/hal_api_mon.h @@ -477,6 +477,8 @@ hal_rx_status_get_tlv_info(void *rx_tlv, struct hal_rx_ppdu_info *ppdu_info) { uint32_t tlv_tag, user_id, tlv_len, value; uint8_t group_id = 0; + uint8_t he_dcm = 0; + uint8_t he_stbc = 0; uint16_t he_gi = 0; uint16_t he_ltf = 0; @@ -789,6 +791,7 @@ hal_rx_status_get_tlv_info(void *rx_tlv, struct hal_rx_ppdu_info *ppdu_info) ppdu_info->rx_status.he_data3 |= value; value = HAL_RX_GET(he_sig_a_su_info, HE_SIG_A_SU_INFO_0, DCM); + he_dcm = value; value = value << QDF_MON_STATUS_DCM_SHIFT; ppdu_info->rx_status.he_data3 |= value; value = HAL_RX_GET(he_sig_a_su_info, @@ -802,6 +805,7 @@ hal_rx_status_get_tlv_info(void *rx_tlv, struct hal_rx_ppdu_info *ppdu_info) ppdu_info->rx_status.he_data3 |= value; value = HAL_RX_GET(he_sig_a_su_info, HE_SIG_A_SU_INFO_1, STBC); + he_stbc = value; value = value << QDF_MON_STATUS_STBC_SHIFT; ppdu_info->rx_status.he_data3 |= value; @@ -831,8 +835,13 @@ hal_rx_status_get_tlv_info(void *rx_tlv, struct hal_rx_ppdu_info *ppdu_info) he_ltf = HE_LTF_2_X; break; case 3: - he_gi = HE_GI_3_2; - he_ltf = HE_LTF_4_X; + if (he_dcm && he_stbc) { + he_gi = HE_GI_0_8; + he_ltf = HE_LTF_4_X; + } else { + he_gi = HE_GI_3_2; + he_ltf = HE_LTF_4_X; + } break; } ppdu_info->rx_status.sgi = he_gi;