mirror of
https://github.com/torvalds/linux.git
synced 2026-05-30 01:53:29 +02:00
ath11k: update missing MU-MIMO and OFDMA stats
Update the missing MU-MIMO/OFDMA info in PDEV RX, trigger and schedule stats. i.e HTT stats type 10, 12 and 17 respectively. Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.4-01209-QCAHKSWPL_SILICONZ-1 Signed-off-by: Sriram R <quic_srirrama@quicinc.com> Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com> Link: https://lore.kernel.org/r/1652152236-12038-1-git-send-email-quic_srirrama@quicinc.com
This commit is contained in:
parent
d93185a929
commit
fdb8fc34a6
|
|
@ -1,6 +1,7 @@
|
|||
// SPDX-License-Identifier: BSD-3-Clause-Clear
|
||||
/*
|
||||
* Copyright (c) 2018-2019 The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*/
|
||||
|
||||
#include <linux/vmalloc.h>
|
||||
|
|
@ -1403,6 +1404,8 @@ htt_print_tx_selfgen_ax_stats_tlv(const void *tag_buf,
|
|||
htt_stats_buf->ax_mu_mimo_brpoll_7);
|
||||
len += scnprintf(buf + len, buf_len - len, "ax_basic_trigger = %u\n",
|
||||
htt_stats_buf->ax_basic_trigger);
|
||||
len += scnprintf(buf + len, buf_len - len, "ax_ulmumimo_trigger = %u\n",
|
||||
htt_stats_buf->ax_ulmumimo_trigger);
|
||||
len += scnprintf(buf + len, buf_len - len, "ax_bsr_trigger = %u\n",
|
||||
htt_stats_buf->ax_bsr_trigger);
|
||||
len += scnprintf(buf + len, buf_len - len, "ax_mu_bar_trigger = %u\n",
|
||||
|
|
@ -1485,6 +1488,8 @@ htt_print_tx_selfgen_ax_err_stats_tlv(const void *tag_buf,
|
|||
htt_stats_buf->ax_mu_mimo_brp7_err);
|
||||
len += scnprintf(buf + len, buf_len - len, "ax_basic_trigger_err = %u\n",
|
||||
htt_stats_buf->ax_basic_trigger_err);
|
||||
len += scnprintf(buf + len, buf_len - len, "ax_ulmumimo_trigger_err = %u\n",
|
||||
htt_stats_buf->ax_ulmumimo_trigger_err);
|
||||
len += scnprintf(buf + len, buf_len - len, "ax_bsr_trigger_err = %u\n",
|
||||
htt_stats_buf->ax_bsr_trigger_err);
|
||||
len += scnprintf(buf + len, buf_len - len, "ax_mu_bar_trigger_err = %u\n",
|
||||
|
|
@ -1519,6 +1524,16 @@ htt_print_tx_pdev_mu_mimo_sch_stats_tlv(const void *tag_buf,
|
|||
len += scnprintf(buf + len, buf_len - len, "mu_mimo_ppdu_posted = %u\n\n",
|
||||
htt_stats_buf->mu_mimo_ppdu_posted);
|
||||
|
||||
for (i = 0; i < HTT_TX_PDEV_STATS_NUM_AC_MUMIMO_USER_STATS; i++)
|
||||
len += scnprintf(buf + len, buf_len - len,
|
||||
"ac_mu_mimo_sch_posted_per_group_index %u = %u\n",
|
||||
i, htt_stats_buf->ac_mu_mimo_sch_posted_per_grp_sz[i]);
|
||||
|
||||
for (i = 0; i < HTT_TX_PDEV_STATS_NUM_AX_MUMIMO_USER_STATS; i++)
|
||||
len += scnprintf(buf + len, buf_len - len,
|
||||
"ax_mu_mimo_sch_posted_per_group_index %u = %u\n",
|
||||
i, htt_stats_buf->ax_mu_mimo_sch_posted_per_grp_sz[i]);
|
||||
|
||||
len += scnprintf(buf + len, buf_len - len, "11ac MU_MIMO SCH STATS:\n");
|
||||
|
||||
for (i = 0; i < HTT_TX_PDEV_STATS_NUM_AC_MUMIMO_USER_STATS; i++)
|
||||
|
|
@ -1535,10 +1550,34 @@ htt_print_tx_pdev_mu_mimo_sch_stats_tlv(const void *tag_buf,
|
|||
|
||||
len += scnprintf(buf + len, buf_len - len, "\n11ax OFDMA SCH STATS:\n");
|
||||
|
||||
for (i = 0; i < HTT_TX_PDEV_STATS_NUM_OFDMA_USER_STATS; i++)
|
||||
for (i = 0; i < HTT_TX_PDEV_STATS_NUM_OFDMA_USER_STATS; i++) {
|
||||
len += scnprintf(buf + len, buf_len - len,
|
||||
"ax_ofdma_sch_nusers_%u = %u\n",
|
||||
i, htt_stats_buf->ax_ofdma_sch_nusers[i]);
|
||||
len += scnprintf(buf + len, buf_len - len,
|
||||
"ax_ul_ofdma_basic_sch_nusers_%u = %u\n",
|
||||
i, htt_stats_buf->ax_ul_ofdma_basic_sch_nusers[i]);
|
||||
len += scnprintf(buf + len, buf_len - len,
|
||||
"ax_ul_ofdma_bsr_sch_nusers_%u = %u\n",
|
||||
i, htt_stats_buf->ax_ul_ofdma_bsr_sch_nusers[i]);
|
||||
len += scnprintf(buf + len, buf_len - len,
|
||||
"ax_ul_ofdma_sch_bar_nusers_%u = %u\n",
|
||||
i, htt_stats_buf->ax_ul_ofdma_bar_sch_nusers[i]);
|
||||
len += scnprintf(buf + len, buf_len - len,
|
||||
"ax_ul_ofdma_brp_sch_nusers_%u = %u\n",
|
||||
i, htt_stats_buf->ax_ul_ofdma_brp_sch_nusers[i]);
|
||||
}
|
||||
|
||||
len += scnprintf(buf + len, buf_len - len, "\n11ax UL MUMIO SCH STATS:\n");
|
||||
|
||||
for (i = 0; i < HTT_TX_PDEV_STATS_NUM_UL_MUMIMO_USER_STATS; i++) {
|
||||
len += scnprintf(buf + len, buf_len - len,
|
||||
"ax_ul_mumimo_basic_sch_nusers_%u = %u\n",
|
||||
i, htt_stats_buf->ax_ul_mumimo_basic_sch_nusers[i]);
|
||||
len += scnprintf(buf + len, buf_len - len,
|
||||
"ax_ul_mumimo_brp_sch_nusers_%u = %u\n",
|
||||
i, htt_stats_buf->ax_ul_mumimo_brp_sch_nusers[i]);
|
||||
}
|
||||
|
||||
if (len >= buf_len)
|
||||
buf[buf_len - 1] = 0;
|
||||
|
|
@ -2933,6 +2972,21 @@ static inline void htt_print_rx_pdev_rate_stats_tlv(const void *tag_buf,
|
|||
len += scnprintf(buf + len, buf_len - len, "txbf = %u\n",
|
||||
htt_stats_buf->txbf);
|
||||
|
||||
len += scnprintf(buf + len, buf_len - len, "\nrx_su_ndpa = %u",
|
||||
htt_stats_buf->rx_su_ndpa);
|
||||
PRINT_ARRAY_TO_BUF(buf, len, htt_stats_buf->rx_11ax_su_txbf_mcs,
|
||||
"rx_11ax_su_txbf_mcs", HTT_RX_PDEV_STATS_NUM_MCS_COUNTERS,
|
||||
"\n");
|
||||
|
||||
len += scnprintf(buf + len, buf_len - len, "\nrx_mu_ndpa = %u",
|
||||
htt_stats_buf->rx_mu_ndpa);
|
||||
PRINT_ARRAY_TO_BUF(buf, len, htt_stats_buf->rx_11ax_mu_txbf_mcs,
|
||||
"rx_11ax_mu_txbf_mcs", HTT_RX_PDEV_STATS_NUM_MCS_COUNTERS,
|
||||
"\n");
|
||||
|
||||
len += scnprintf(buf + len, buf_len - len, "\nrx_br_poll = %u",
|
||||
htt_stats_buf->rx_br_poll);
|
||||
|
||||
PRINT_ARRAY_TO_BUF(buf, len, htt_stats_buf->rx_legacy_cck_rate,
|
||||
"rx_legacy_cck_rate",
|
||||
HTT_RX_PDEV_STATS_NUM_LEGACY_CCK_STATS, "\n");
|
||||
|
|
@ -2995,6 +3049,38 @@ static inline void htt_print_rx_pdev_rate_stats_tlv(const void *tag_buf,
|
|||
len += scnprintf(buf + len, buf_len - len, "\n");
|
||||
}
|
||||
|
||||
PRINT_ARRAY_TO_BUF(buf, len, htt_stats_buf->rx_ulofdma_non_data_nusers,
|
||||
"rx_ulofdma_non_data_nusers", HTT_RX_PDEV_MAX_OFDMA_NUM_USER,
|
||||
"\n");
|
||||
|
||||
PRINT_ARRAY_TO_BUF(buf, len, htt_stats_buf->rx_ulofdma_data_nusers,
|
||||
"rx_ulofdma_data_nusers", HTT_RX_PDEV_MAX_OFDMA_NUM_USER,
|
||||
"\n");
|
||||
|
||||
PRINT_ARRAY_TO_BUF(buf, len, htt_stats_buf->rx_11ax_dl_ofdma_mcs,
|
||||
"rx_11ax_dl_ofdma_mcs", HTT_RX_PDEV_STATS_NUM_MCS_COUNTERS,
|
||||
"\n");
|
||||
|
||||
PRINT_ARRAY_TO_BUF(buf, len, htt_stats_buf->rx_11ax_dl_ofdma_ru,
|
||||
"rx_11ax_dl_ofdma_ru", HTT_RX_PDEV_STATS_NUM_RU_SIZE_COUNTERS,
|
||||
"\n");
|
||||
|
||||
PRINT_ARRAY_TO_BUF(buf, len, htt_stats_buf->rx_ulmumimo_non_data_ppdu,
|
||||
"rx_ulmumimo_non_data_ppdu", HTT_RX_PDEV_MAX_ULMUMIMO_NUM_USER,
|
||||
"\n");
|
||||
|
||||
PRINT_ARRAY_TO_BUF(buf, len, htt_stats_buf->rx_ulmumimo_data_ppdu,
|
||||
"rx_ulmumimo_data_ppdu", HTT_RX_PDEV_MAX_ULMUMIMO_NUM_USER,
|
||||
"\n");
|
||||
|
||||
PRINT_ARRAY_TO_BUF(buf, len, htt_stats_buf->rx_ulmumimo_mpdu_ok,
|
||||
"rx_ulmumimo_mpdu_ok", HTT_RX_PDEV_MAX_ULMUMIMO_NUM_USER,
|
||||
"\n");
|
||||
|
||||
PRINT_ARRAY_TO_BUF(buf, len, htt_stats_buf->rx_ulmumimo_mpdu_fail,
|
||||
"rx_ulmumimo_mpdu_fail", HTT_RX_PDEV_MAX_ULMUMIMO_NUM_USER,
|
||||
"\n");
|
||||
|
||||
len += scnprintf(buf + len, buf_len - len, "per_chain_rssi_pkt_type = %#x\n",
|
||||
htt_stats_buf->per_chain_rssi_pkt_type);
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
/* SPDX-License-Identifier: BSD-3-Clause-Clear */
|
||||
/*
|
||||
* Copyright (c) 2018-2019 The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*/
|
||||
|
||||
#ifndef DEBUG_HTT_STATS_H
|
||||
|
|
@ -682,6 +683,7 @@ struct htt_tx_selfgen_ax_stats_tlv {
|
|||
u32 ax_bsr_trigger;
|
||||
u32 ax_mu_bar_trigger;
|
||||
u32 ax_mu_rts_trigger;
|
||||
u32 ax_ulmumimo_trigger;
|
||||
};
|
||||
|
||||
struct htt_tx_selfgen_ac_err_stats_tlv {
|
||||
|
|
@ -712,12 +714,14 @@ struct htt_tx_selfgen_ax_err_stats_tlv {
|
|||
u32 ax_bsr_trigger_err;
|
||||
u32 ax_mu_bar_trigger_err;
|
||||
u32 ax_mu_rts_trigger_err;
|
||||
u32 ax_ulmumimo_trigger_err;
|
||||
};
|
||||
|
||||
/* == TX MU STATS == */
|
||||
#define HTT_TX_PDEV_STATS_NUM_AC_MUMIMO_USER_STATS 4
|
||||
#define HTT_TX_PDEV_STATS_NUM_AX_MUMIMO_USER_STATS 8
|
||||
#define HTT_TX_PDEV_STATS_NUM_OFDMA_USER_STATS 74
|
||||
#define HTT_TX_PDEV_STATS_NUM_UL_MUMIMO_USER_STATS 8
|
||||
|
||||
struct htt_tx_pdev_mu_mimo_sch_stats_tlv {
|
||||
/* mu-mimo sw sched cmd stats */
|
||||
|
|
@ -734,6 +738,24 @@ struct htt_tx_pdev_mu_mimo_sch_stats_tlv {
|
|||
u32 ac_mu_mimo_sch_nusers[HTT_TX_PDEV_STATS_NUM_AC_MUMIMO_USER_STATS];
|
||||
u32 ax_mu_mimo_sch_nusers[HTT_TX_PDEV_STATS_NUM_AX_MUMIMO_USER_STATS];
|
||||
u32 ax_ofdma_sch_nusers[HTT_TX_PDEV_STATS_NUM_OFDMA_USER_STATS];
|
||||
u32 ax_ul_ofdma_basic_sch_nusers[HTT_TX_PDEV_STATS_NUM_OFDMA_USER_STATS];
|
||||
u32 ax_ul_ofdma_bsr_sch_nusers[HTT_TX_PDEV_STATS_NUM_OFDMA_USER_STATS];
|
||||
u32 ax_ul_ofdma_bar_sch_nusers[HTT_TX_PDEV_STATS_NUM_OFDMA_USER_STATS];
|
||||
u32 ax_ul_ofdma_brp_sch_nusers[HTT_TX_PDEV_STATS_NUM_OFDMA_USER_STATS];
|
||||
|
||||
/* UL MU-MIMO */
|
||||
/* ax_ul_mumimo_basic_sch_nusers[i] is the number of basic triggers sent
|
||||
* for (i+1) users
|
||||
*/
|
||||
u32 ax_ul_mumimo_basic_sch_nusers[HTT_TX_PDEV_STATS_NUM_UL_MUMIMO_USER_STATS];
|
||||
|
||||
/* ax_ul_mumimo_brp_sch_nusers[i] is the number of brp triggers sent
|
||||
* for (i+1) users
|
||||
*/
|
||||
u32 ax_ul_mumimo_brp_sch_nusers[HTT_TX_PDEV_STATS_NUM_UL_MUMIMO_USER_STATS];
|
||||
|
||||
u32 ac_mu_mimo_sch_posted_per_grp_sz[HTT_TX_PDEV_STATS_NUM_AC_MUMIMO_USER_STATS];
|
||||
u32 ax_mu_mimo_sch_posted_per_grp_sz[HTT_TX_PDEV_STATS_NUM_AX_MUMIMO_USER_STATS];
|
||||
};
|
||||
|
||||
struct htt_tx_pdev_mu_mimo_mpdu_stats_tlv {
|
||||
|
|
@ -1297,6 +1319,8 @@ struct htt_tx_pdev_rate_stats_tlv {
|
|||
#define HTT_RX_PDEV_STATS_NUM_PREAMBLE_TYPES HTT_STATS_PREAM_COUNT
|
||||
#define HTT_RX_PDEV_MAX_OFDMA_NUM_USER 8
|
||||
#define HTT_RX_PDEV_STATS_RXEVM_MAX_PILOTS_PER_NSS 16
|
||||
#define HTT_RX_PDEV_STATS_NUM_RU_SIZE_COUNTERS 6
|
||||
#define HTT_RX_PDEV_MAX_ULMUMIMO_NUM_USER 8
|
||||
|
||||
struct htt_rx_pdev_rate_stats_tlv {
|
||||
u32 mac_id__word;
|
||||
|
|
@ -1375,6 +1399,21 @@ struct htt_rx_pdev_rate_stats_tlv {
|
|||
u32 per_chain_rssi_pkt_type;
|
||||
s8 rx_per_chain_rssi_in_dbm[HTT_RX_PDEV_STATS_NUM_SPATIAL_STREAMS]
|
||||
[HTT_RX_PDEV_STATS_NUM_BW_COUNTERS];
|
||||
|
||||
u32 rx_su_ndpa;
|
||||
u32 rx_11ax_su_txbf_mcs[HTT_RX_PDEV_STATS_NUM_MCS_COUNTERS];
|
||||
u32 rx_mu_ndpa;
|
||||
u32 rx_11ax_mu_txbf_mcs[HTT_RX_PDEV_STATS_NUM_MCS_COUNTERS];
|
||||
u32 rx_br_poll;
|
||||
u32 rx_11ax_dl_ofdma_mcs[HTT_RX_PDEV_STATS_NUM_MCS_COUNTERS];
|
||||
u32 rx_11ax_dl_ofdma_ru[HTT_RX_PDEV_STATS_NUM_RU_SIZE_COUNTERS];
|
||||
|
||||
u32 rx_ulmumimo_non_data_ppdu[HTT_RX_PDEV_MAX_ULMUMIMO_NUM_USER];
|
||||
u32 rx_ulmumimo_data_ppdu[HTT_RX_PDEV_MAX_ULMUMIMO_NUM_USER];
|
||||
u32 rx_ulmumimo_mpdu_ok[HTT_RX_PDEV_MAX_ULMUMIMO_NUM_USER];
|
||||
u32 rx_ulmumimo_mpdu_fail[HTT_RX_PDEV_MAX_ULMUMIMO_NUM_USER];
|
||||
u32 rx_ulofdma_non_data_nusers[HTT_RX_PDEV_MAX_OFDMA_NUM_USER];
|
||||
u32 rx_ulofdma_data_nusers[HTT_RX_PDEV_MAX_OFDMA_NUM_USER];
|
||||
};
|
||||
|
||||
/* == RX PDEV/SOC STATS == */
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user