wlan-ap-Telecominfraproject/feeds/ipq95xx/mac80211/patches/qca/338-ath11k-fix-extended-array-buffer-display-in-htt-stat.patch
John Crispin b9b03a6e38 ipq95xx: add Qualcomm wifi-7 support
Signed-off-by: John Crispin <john@phrozen.org>
2023-04-10 14:25:48 +02:00

119 lines
5.5 KiB
Diff

From 91b6deeb1944e4b0bd297ea5a6e40ba81657935c Mon Sep 17 00:00:00 2001
From: Aditya Kumar Singh <quic_adisi@quicinc.com>
Date: Thu, 16 Dec 2021 11:19:57 +0530
Subject: [PATCH] ath11k: fix extended array buffer display in htt stats
ARRAY_TO_BUF macro loops from index 0 to len and prints the same
index to the buffer. However, for extended parameters like Tx
MCS Extended variable, there is requirement to loop from 0 to len
but print (index + MAX ARRAY LENGTH OF NON EXTENDED PARAMETER) to
the buffer. This was leading to index to roll over from start for
extended variable case. Hence, this macro can not be used.
Current Output:
tx_mcs = 0:0, 1:0, 2:0, 3:0, 4:0, 5:0, 6:26, 7:20, 8:21, 9:22, 10:196, 11:613, 0:0, 1:0,
Expected Output:
tx_mcs = 0:0, 1:0, 2:0, 3:0, 4:0, 5:0, 6:26, 7:20, 8:21, 9:22, 10:196, 11:613, 12:0, 13:0,
Add ARRAY_TO_BUF_EXT macro to print the extended variable array to
the buffer.
Signed-off-by: Aditya Kumar Singh <quic_adisi@quicinc.com>
---
.../net/wireless/ath/ath11k/debugfs_htt_stats.c | 56 +++++++++++++++-------
1 file changed, 38 insertions(+), 18 deletions(-)
--- a/drivers/net/wireless/ath/ath11k/debugfs_htt_stats.c
+++ b/drivers/net/wireless/ath/ath11k/debugfs_htt_stats.c
@@ -17,6 +17,17 @@
#define HTT_TLV_HDR_LEN 4
+#define ARRAY_TO_BUF_EXT(out, buflen, arr, len, ext_len) \
+ do { \
+ int index = 0; u8 i; \
+ for (i = 0; i < len; i++) { \
+ index += scnprintf((out + buflen) + index, \
+ (ATH11K_HTT_STATS_BUF_SIZE - buflen) - index, \
+ " %u:%u,", i + ext_len, arr[i]); \
+ } \
+ buflen += index; \
+ } while (0)
+
#define ARRAY_TO_BUF(out, buflen, arr, len) \
do { \
int index = 0; u8 i; \
@@ -3126,8 +3137,9 @@ static inline void htt_print_tx_pdev_rat
PRINT_ARRAY_TO_BUF(buf, len, htt_stats_buf->tx_mcs, "tx_mcs",
HTT_TX_PDEV_STATS_NUM_MCS_COUNTERS, "\n");
len += HTT_DBG_OUT(buf + len, buf_len - len, " ");
- ARRAY_TO_BUF(buf, len, htt_stats_buf->tx_mcs_ext,
- HTT_TX_PDEV_STATS_NUM_EXTRA_MCS_COUNTERS);
+ ARRAY_TO_BUF_EXT(buf, len, htt_stats_buf->tx_stbc_ext,
+ HTT_TX_PDEV_STATS_NUM_EXTRA_MCS_COUNTERS,
+ HTT_TX_PDEV_STATS_NUM_MCS_COUNTERS);
PRINT_ARRAY_TO_BUF(buf, len, htt_stats_buf->ac_mu_mimo_tx_mcs,
"ac_mu_mimo_tx_mcs", HTT_TX_PDEV_STATS_NUM_MCS_COUNTERS, "\n");
len += HTT_DBG_OUT(buf + len, buf_len - len, " ");
@@ -3141,8 +3153,9 @@ static inline void htt_print_tx_pdev_rat
PRINT_ARRAY_TO_BUF(buf, len, htt_stats_buf->ofdma_tx_mcs, "ofdma_tx_mcs",
HTT_TX_PDEV_STATS_NUM_MCS_COUNTERS, "\n");
len += HTT_DBG_OUT(buf + len, buf_len - len, " ");
- ARRAY_TO_BUF(buf, len, htt_stats_buf->ofdma_tx_mcs_ext,
- HTT_TX_PDEV_STATS_NUM_EXTRA_MCS_COUNTERS);
+ ARRAY_TO_BUF_EXT(buf, len, htt_stats_buf->tx_mcs_ext,
+ HTT_TX_PDEV_STATS_NUM_EXTRA_MCS_COUNTERS,
+ HTT_TX_PDEV_STATS_NUM_MCS_COUNTERS);
PRINT_ARRAY_TO_BUF(buf, len, htt_stats_buf->tx_nss, "tx_nss",
HTT_TX_PDEV_STATS_NUM_SPATIAL_STREAMS, "\n");
PRINT_ARRAY_TO_BUF(buf, len, htt_stats_buf->ac_mu_mimo_tx_nss,
@@ -3185,8 +3198,9 @@ static inline void htt_print_tx_pdev_rat
PRINT_ARRAY_TO_BUF(buf, len, htt_stats_buf->tx_gi[j], NULL,
HTT_TX_PDEV_STATS_NUM_MCS_COUNTERS, "\n");
len += HTT_DBG_OUT(buf + len, buf_len - len, " ");
- ARRAY_TO_BUF(buf, len, htt_stats_buf->tx_gi_ext[j],
- HTT_TX_PDEV_STATS_NUM_EXTRA_MCS_COUNTERS);
+ ARRAY_TO_BUF_EXT(buf, len, htt_stats_buf->tx_gi_ext[j],
+ HTT_TX_PDEV_STATS_NUM_EXTRA_MCS_COUNTERS,
+ HTT_TX_PDEV_STATS_NUM_MCS_COUNTERS);
}
/* AC MU-MIMO GI Stats */
@@ -3204,8 +3218,9 @@ static inline void htt_print_tx_pdev_rat
PRINT_ARRAY_TO_BUF(buf, len, htt_stats_buf->ax_mu_mimo_tx_gi[j],
NULL, HTT_TX_PDEV_STATS_NUM_MCS_COUNTERS, "\n");
len += HTT_DBG_OUT(buf + len, buf_len - len, " ");
- ARRAY_TO_BUF(buf, len, htt_stats_buf->ax_mu_mimo_tx_gi_ext[j],
- HTT_TX_PDEV_STATS_NUM_EXTRA_MCS_COUNTERS);
+ ARRAY_TO_BUF_EXT(buf, len, htt_stats_buf->ax_mu_mimo_tx_gi_ext[j],
+ HTT_TX_PDEV_STATS_NUM_EXTRA_MCS_COUNTERS,
+ HTT_TX_PDEV_STATS_NUM_MCS_COUNTERS);
}
/* DL OFDMA GI Stats */
@@ -3215,8 +3230,9 @@ static inline void htt_print_tx_pdev_rat
PRINT_ARRAY_TO_BUF(buf, len, htt_stats_buf->ofdma_tx_gi[j], NULL,
HTT_TX_PDEV_STATS_NUM_MCS_COUNTERS, "\n");
len += HTT_DBG_OUT(buf + len, buf_len - len, " ");
- ARRAY_TO_BUF(buf, len, htt_stats_buf->ofdma_tx_gi_ext[j],
- HTT_TX_PDEV_STATS_NUM_EXTRA_MCS_COUNTERS);
+ ARRAY_TO_BUF_EXT(buf, len, htt_stats_buf->ofdma_tx_gi_ext[j],
+ HTT_TX_PDEV_STATS_NUM_EXTRA_MCS_COUNTERS,
+ HTT_TX_PDEV_STATS_NUM_MCS_COUNTERS);
}
PRINT_ARRAY_TO_BUF(buf, len, htt_stats_buf->tx_dcm, "tx_dcm",
@@ -4297,6 +4313,11 @@ static inline void htt_print_ul_mumimo_t
htt_ul_mumimo_trig_stats_buf->ul_mumimo_rx_gi[j],
NULL, HTT_RX_PDEV_STATS_NUM_MCS_COUNTERS,
"\n");
+ len += scnprintf(buf + len, buf_len - len,
+ "ul_mumimo_rx_gi_ext[%u] = ", j);
+ ARRAY_TO_BUF_EXT(buf, len, htt_ul_mumimo_trig_stats_buf->ul_mumimo_rx_gi_ext[j],
+ HTT_RX_PDEV_STATS_NUM_EXTRA_MCS_COUNTERS,
+ HTT_RX_PDEV_STATS_NUM_MCS_COUNTERS);
}
PRINT_ARRAY_TO_BUF(buf, len,