mirror of
https://github.com/Telecominfraproject/wlan-ap.git
synced 2025-12-24 21:02:35 +00:00
80 lines
3.5 KiB
Diff
80 lines
3.5 KiB
Diff
From 53d1ec2c397765d18f187105761bf5582ba36ea5 Mon Sep 17 00:00:00 2001
|
|
From: Thiraviyam Mariyappan <quic_tmariyap@quicinc.com>
|
|
Date: Thu, 11 Aug 2022 16:05:57 +0530
|
|
Subject: [PATCH] ath12k: fix NSS value update in rx stats
|
|
|
|
Current code update NSS value to (n-1) spatial stream in ext_rx_stats. So that,
|
|
values for 4x4, 3x3, 2x2, 1x1 SS updated to 3x3, 2x2, 1x1 SS.
|
|
We can fix this issue by increment the nss value by 1 whi1e update the ppdu info.
|
|
|
|
Signed-off-by: Thiraviyam Mariyappan <quic_tmariyap@quicinc.com>
|
|
---
|
|
drivers/net/wireless/ath/ath12k/dp_mon.c | 12 ++++++------
|
|
1 file changed, 6 insertions(+), 6 deletions(-)
|
|
|
|
--- a/drivers/net/wireless/ath/ath12k/dp_mon.c
|
|
+++ b/drivers/net/wireless/ath/ath12k/dp_mon.c
|
|
@@ -105,7 +105,7 @@ static void ath12k_dp_mon_parse_vht_sig_
|
|
if (ppdu_info->is_stbc && nsts > 0)
|
|
nsts = ((nsts + 1) >> 1) - 1;
|
|
|
|
- ppdu_info->nss = u32_get_bits(nsts, VHT_SIG_SU_NSS_MASK);
|
|
+ ppdu_info->nss = u32_get_bits(nsts, VHT_SIG_SU_NSS_MASK) + 1;
|
|
ppdu_info->bw = u32_get_bits(info0, HAL_RX_VHT_SIG_A_INFO_INFO0_BW);
|
|
ppdu_info->beamformed = u32_get_bits(info1,
|
|
HAL_RX_VHT_SIG_A_INFO_INFO1_BEAMFORMED);
|
|
@@ -131,7 +131,7 @@ static void ath12k_dp_mon_parse_ht_sig(u
|
|
ppdu_info->is_stbc = u32_get_bits(info1, HAL_RX_HT_SIG_INFO_INFO1_STBC);
|
|
ppdu_info->ldpc = u32_get_bits(info1, HAL_RX_HT_SIG_INFO_INFO1_FEC_CODING);
|
|
ppdu_info->gi = u32_get_bits(info1, HAL_RX_HT_SIG_INFO_INFO1_GI);
|
|
- ppdu_info->nss = (ppdu_info->mcs >> 3);
|
|
+ ppdu_info->nss = (ppdu_info->mcs >> 3) + 1;
|
|
}
|
|
|
|
static void ath12k_dp_mon_parse_l_sig_b(u8 *tlv_data,
|
|
@@ -240,7 +240,7 @@ static void ath12k_dp_mon_parse_he_sig_b
|
|
value = value << HE_STA_ID_SHIFT;
|
|
ppdu_info->he_data4 |= value;
|
|
|
|
- ppdu_info->nss = u32_get_bits(info0, HAL_RX_HE_SIG_B2_OFDMA_INFO_INFO0_STA_NSTS);
|
|
+ ppdu_info->nss = u32_get_bits(info0, HAL_RX_HE_SIG_B2_OFDMA_INFO_INFO0_STA_NSTS) + 1;
|
|
ppdu_info->beamformed = u32_get_bits(info0,
|
|
HAL_RX_HE_SIG_B2_OFDMA_INFO_INFO0_STA_TXBF);
|
|
}
|
|
@@ -269,7 +269,7 @@ static void ath12k_dp_mon_parse_he_sig_b
|
|
value = value << HE_STA_ID_SHIFT;
|
|
ppdu_info->he_data4 |= value;
|
|
|
|
- ppdu_info->nss = u32_get_bits(info0, HAL_RX_HE_SIG_B2_MU_INFO_INFO0_STA_NSTS);
|
|
+ ppdu_info->nss = u32_get_bits(info0, HAL_RX_HE_SIG_B2_MU_INFO_INFO0_STA_NSTS) + 1;
|
|
}
|
|
|
|
static void ath12k_dp_mon_parse_he_sig_b1_mu(u8 *tlv_data,
|
|
@@ -565,7 +565,7 @@ static void ath12k_dp_mon_parse_he_sig_s
|
|
ppdu_info->is_stbc = u32_get_bits(info1, HAL_RX_HE_SIG_A_SU_INFO_INFO1_STBC);
|
|
ppdu_info->beamformed = u32_get_bits(info1, HAL_RX_HE_SIG_A_SU_INFO_INFO1_TXBF);
|
|
dcm = u32_get_bits(info0, HAL_RX_HE_SIG_A_SU_INFO_INFO0_DCM);
|
|
- ppdu_info->nss = u32_get_bits(info0, HAL_RX_HE_SIG_A_SU_INFO_INFO0_NSTS);
|
|
+ ppdu_info->nss = u32_get_bits(info0, HAL_RX_HE_SIG_A_SU_INFO_INFO0_NSTS) + 1;
|
|
ppdu_info->dcm = dcm;
|
|
}
|
|
|
|
@@ -1044,7 +1044,7 @@ ath12k_dp_mon_hal_rx_parse_eht_sig_non_m
|
|
nss = u32_get_bits(__le32_to_cpu(user_info->info0),
|
|
HAL_RX_EHT_SIG_NON_MUMIMO_USER_INFO0_NSS);
|
|
ppdu_info->eht_user_info[user_idx] |= (nss << EHT_USER_NSS_SHIFT);
|
|
- ppdu_info->nss = nss;
|
|
+ ppdu_info->nss = nss + 1;
|
|
|
|
beamformed = u32_get_bits(__le32_to_cpu(user_info->info0),
|
|
HAL_RX_EHT_SIG_NON_MUMIMO_USER_INFO0_BEAMFORMED);
|
|
@@ -1279,7 +1279,7 @@ ath12k_dp_mon_hal_rx_parse_receive_user_
|
|
ppdu_info->mcs = u32_get_bits(__le32_to_cpu(rx_usr_info->info1),
|
|
HAL_RX_USR_INFO1_MCS);
|
|
ppdu_info->nss = u32_get_bits(__le32_to_cpu(rx_usr_info->info2),
|
|
- HAL_RX_USR_INFO2_NSS);
|
|
+ HAL_RX_USR_INFO2_NSS) + 1;
|
|
|
|
if (user_id < HAL_MAX_UL_MU_USERS) {
|
|
mon_rx_user_status =
|