mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-14 10:02:33 -04:00
wifi: ath12k: Support SoC Common Stats
Add support to request SoC stat from firmware through HTT stat type 38. This stat gives drop count of SoC. Note: MCC firmware version - WLAN.HMT.1.0-03427-QCAHMTSWPL_V1.0_V2.0_SILICONZ-1.15378.4 does not support tag HTT_STATS_SOC_TXRX_STATS_COMMON_TAG(125). Sample output: ------------- echo 38 > /sys/kernel/debug/ath12k/pci-0000\:06\:00.0/mac0/htt_stats_type cat /sys/kernel/debug/ath12k/pci-0000\:06\:00.0/mac0/htt_stats HTT_SOC_COMMON_STATS_TLV: soc_drop_count = 0x0000000000000000 Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.0.1-00029-QCAHKSWPL_SILICONZ-1 Signed-off-by: Dinesh Karthikeyan <quic_dinek@quicinc.com> Signed-off-by: Roopni Devanathan <quic_rdevanat@quicinc.com> Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com> Acked-by: Kalle Valo <kvalo@kernel.org> Link: https://patch.msgid.link/20241115062854.1919672-4-quic_rdevanat@quicinc.com Signed-off-by: Jeff Johnson <quic_jjohnson@quicinc.com>
This commit is contained in:
committed by
Jeff Johnson
parent
c3527cdfcd
commit
3a660e7fa4
@@ -2858,6 +2858,29 @@ ath12k_htt_print_phy_tpc_stats_tlv(const void *tag_buf, u16 tag_len,
|
||||
stats_req->buf_len = len;
|
||||
}
|
||||
|
||||
static void
|
||||
ath12k_htt_print_soc_txrx_stats_common_tlv(const void *tag_buf, u16 tag_len,
|
||||
struct debug_htt_stats_req *stats_req)
|
||||
{
|
||||
const struct ath12k_htt_t2h_soc_txrx_stats_common_tlv *htt_stats_buf = tag_buf;
|
||||
u64 drop_count;
|
||||
u32 len = stats_req->buf_len;
|
||||
u32 buf_len = ATH12K_HTT_STATS_BUF_SIZE;
|
||||
u8 *buf = stats_req->buf;
|
||||
|
||||
if (tag_len < sizeof(*htt_stats_buf))
|
||||
return;
|
||||
|
||||
drop_count = ath12k_le32hilo_to_u64(htt_stats_buf->inv_peers_msdu_drop_count_hi,
|
||||
htt_stats_buf->inv_peers_msdu_drop_count_lo);
|
||||
|
||||
len += scnprintf(buf + len, buf_len - len, "HTT_SOC_COMMON_STATS_TLV:\n");
|
||||
len += scnprintf(buf + len, buf_len - len, "soc_drop_count = %llu\n\n",
|
||||
drop_count);
|
||||
|
||||
stats_req->buf_len = len;
|
||||
}
|
||||
|
||||
static void
|
||||
ath12k_htt_print_dmac_reset_stats_tlv(const void *tag_buf, u16 tag_len,
|
||||
struct debug_htt_stats_req *stats_req)
|
||||
@@ -3202,6 +3225,9 @@ static int ath12k_dbg_htt_ext_stats_parse(struct ath12k_base *ab,
|
||||
case HTT_STATS_PHY_TPC_STATS_TAG:
|
||||
ath12k_htt_print_phy_tpc_stats_tlv(tag_buf, len, stats_req);
|
||||
break;
|
||||
case HTT_STATS_SOC_TXRX_STATS_COMMON_TAG:
|
||||
ath12k_htt_print_soc_txrx_stats_common_tlv(tag_buf, len, stats_req);
|
||||
break;
|
||||
case HTT_STATS_DMAC_RESET_STATS_TAG:
|
||||
ath12k_htt_print_dmac_reset_stats_tlv(tag_buf, len, stats_req);
|
||||
break;
|
||||
|
||||
@@ -137,6 +137,7 @@ enum ath12k_dbg_htt_ext_stats_type {
|
||||
ATH12K_DBG_HTT_EXT_STATS_PDEV_OBSS_PD_STATS = 23,
|
||||
ATH12K_DBG_HTT_EXT_STATS_DLPAGER_STATS = 36,
|
||||
ATH12K_DBG_HTT_EXT_PHY_COUNTERS_AND_PHY_STATS = 37,
|
||||
ATH12K_DBG_HTT_EXT_VDEVS_TXRX_STATS = 38,
|
||||
ATH12K_DBG_HTT_EXT_STATS_SOC_ERROR = 45,
|
||||
ATH12K_DBG_HTT_EXT_STATS_PDEV_SCHED_ALGO = 49,
|
||||
ATH12K_DBG_HTT_EXT_STATS_MANDATORY_MUOFDMA = 51,
|
||||
@@ -201,6 +202,7 @@ enum ath12k_dbg_htt_tlv_tag {
|
||||
HTT_STATS_PHY_STATS_TAG = 122,
|
||||
HTT_STATS_PHY_RESET_COUNTERS_TAG = 123,
|
||||
HTT_STATS_PHY_RESET_STATS_TAG = 124,
|
||||
HTT_STATS_SOC_TXRX_STATS_COMMON_TAG = 125,
|
||||
HTT_STATS_MU_PPDU_DIST_TAG = 129,
|
||||
HTT_STATS_TX_PDEV_MUMIMO_GRP_STATS_TAG = 130,
|
||||
HTT_STATS_TX_PDEV_RATE_STATS_BE_OFDMA_TAG = 135,
|
||||
@@ -1183,6 +1185,11 @@ struct ath12k_htt_phy_tpc_stats_tlv {
|
||||
__le32 sub_band_txpower[ATH12K_HTT_MAX_CH_PWR_INFO_SIZE];
|
||||
} __packed;
|
||||
|
||||
struct ath12k_htt_t2h_soc_txrx_stats_common_tlv {
|
||||
__le32 inv_peers_msdu_drop_count_hi;
|
||||
__le32 inv_peers_msdu_drop_count_lo;
|
||||
} __packed;
|
||||
|
||||
struct ath12k_htt_dmac_reset_stats_tlv {
|
||||
__le32 reset_count;
|
||||
__le32 reset_time_lo_ms;
|
||||
|
||||
Reference in New Issue
Block a user