Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1/* SPDX-License-Identifier: BSD-3-Clause-Clear */
2/*
3 * Copyright (c) 2018-2021 The Linux Foundation. All rights reserved.
4 * Copyright (c) 2021-2025 Qualcomm Innovation Center, Inc. All rights reserved.
5 */
6
7#ifndef _ATH12K_DEBUGFS_H_
8#define _ATH12K_DEBUGFS_H_
9
10#ifdef CONFIG_ATH12K_DEBUGFS
11void ath12k_debugfs_soc_create(struct ath12k_base *ab);
12void ath12k_debugfs_soc_destroy(struct ath12k_base *ab);
13void ath12k_debugfs_register(struct ath12k *ar);
14void ath12k_debugfs_unregister(struct ath12k *ar);
15void ath12k_debugfs_op_vif_add(struct ieee80211_hw *hw,
16 struct ieee80211_vif *vif);
17void ath12k_debugfs_pdev_create(struct ath12k_base *ab);
18
19static inline bool ath12k_debugfs_is_extd_rx_stats_enabled(struct ath12k *ar)
20{
21 return ar->debug.extd_rx_stats;
22}
23
24static inline int ath12k_debugfs_rx_filter(struct ath12k *ar)
25{
26 return ar->debug.rx_filter;
27}
28
29#define ATH12K_CCK_RATES 4
30#define ATH12K_OFDM_RATES 8
31#define ATH12K_HT_RATES 8
32#define ATH12K_VHT_RATES 12
33#define ATH12K_HE_RATES 12
34#define ATH12K_HE_RATES_WITH_EXTRA_MCS 14
35#define ATH12K_EHT_RATES 16
36#define HE_EXTRA_MCS_SUPPORT GENMASK(31, 16)
37#define ATH12K_NSS_1 1
38#define ATH12K_NSS_4 4
39#define ATH12K_NSS_8 8
40#define ATH12K_HW_NSS(_rcode) (((_rcode) >> 5) & 0x7)
41#define TPC_STATS_WAIT_TIME (1 * HZ)
42#define MAX_TPC_PREAM_STR_LEN 7
43#define TPC_INVAL -128
44#define TPC_MAX 127
45#define TPC_STATS_WAIT_TIME (1 * HZ)
46#define TPC_STATS_TOT_ROW 700
47#define TPC_STATS_TOT_COLUMN 100
48#define MODULATION_LIMIT 126
49
50#define ATH12K_TPC_STATS_BUF_SIZE (TPC_STATS_TOT_ROW * TPC_STATS_TOT_COLUMN)
51
52enum wmi_tpc_pream_bw {
53 WMI_TPC_PREAM_CCK,
54 WMI_TPC_PREAM_OFDM,
55 WMI_TPC_PREAM_HT20,
56 WMI_TPC_PREAM_HT40,
57 WMI_TPC_PREAM_VHT20,
58 WMI_TPC_PREAM_VHT40,
59 WMI_TPC_PREAM_VHT80,
60 WMI_TPC_PREAM_VHT160,
61 WMI_TPC_PREAM_HE20,
62 WMI_TPC_PREAM_HE40,
63 WMI_TPC_PREAM_HE80,
64 WMI_TPC_PREAM_HE160,
65 WMI_TPC_PREAM_EHT20,
66 WMI_TPC_PREAM_EHT40,
67 WMI_TPC_PREAM_EHT60,
68 WMI_TPC_PREAM_EHT80,
69 WMI_TPC_PREAM_EHT120,
70 WMI_TPC_PREAM_EHT140,
71 WMI_TPC_PREAM_EHT160,
72 WMI_TPC_PREAM_EHT200,
73 WMI_TPC_PREAM_EHT240,
74 WMI_TPC_PREAM_EHT280,
75 WMI_TPC_PREAM_EHT320,
76 WMI_TPC_PREAM_MAX
77};
78
79enum ath12k_debug_tpc_stats_ctl_mode {
80 ATH12K_TPC_STATS_CTL_MODE_LEGACY_5GHZ_6GHZ,
81 ATH12K_TPC_STATS_CTL_MODE_HT_VHT20_5GHZ_6GHZ,
82 ATH12K_TPC_STATS_CTL_MODE_HE_EHT20_5GHZ_6GHZ,
83 ATH12K_TPC_STATS_CTL_MODE_HT_VHT40_5GHZ_6GHZ,
84 ATH12K_TPC_STATS_CTL_MODE_HE_EHT40_5GHZ_6GHZ,
85 ATH12K_TPC_STATS_CTL_MODE_VHT80_5GHZ_6GHZ,
86 ATH12K_TPC_STATS_CTL_MODE_HE_EHT80_5GHZ_6GHZ,
87 ATH12K_TPC_STATS_CTL_MODE_VHT160_5GHZ_6GHZ,
88 ATH12K_TPC_STATS_CTL_MODE_HE_EHT160_5GHZ_6GHZ,
89 ATH12K_TPC_STATS_CTL_MODE_HE_EHT320_5GHZ_6GHZ,
90 ATH12K_TPC_STATS_CTL_MODE_CCK_2GHZ,
91 ATH12K_TPC_STATS_CTL_MODE_LEGACY_2GHZ,
92 ATH12K_TPC_STATS_CTL_MODE_HT20_2GHZ,
93 ATH12K_TPC_STATS_CTL_MODE_HT40_2GHZ,
94
95 ATH12K_TPC_STATS_CTL_MODE_EHT80_SU_PUNC20 = 23,
96 ATH12K_TPC_STATS_CTL_MODE_EHT160_SU_PUNC20,
97 ATH12K_TPC_STATS_CTL_MODE_EHT320_SU_PUNC40,
98 ATH12K_TPC_STATS_CTL_MODE_EHT320_SU_PUNC80,
99 ATH12K_TPC_STATS_CTL_MODE_EHT320_SU_PUNC120
100};
101
102enum ath12k_debug_tpc_stats_support_modes {
103 ATH12K_TPC_STATS_SUPPORT_160 = 0,
104 ATH12K_TPC_STATS_SUPPORT_320,
105 ATH12K_TPC_STATS_SUPPORT_AX,
106 ATH12K_TPC_STATS_SUPPORT_AX_EXTRA_MCS,
107 ATH12K_TPC_STATS_SUPPORT_BE,
108 ATH12K_TPC_STATS_SUPPORT_BE_PUNC,
109};
110#else
111static inline void ath12k_debugfs_soc_create(struct ath12k_base *ab)
112{
113}
114
115static inline void ath12k_debugfs_soc_destroy(struct ath12k_base *ab)
116{
117}
118
119static inline void ath12k_debugfs_register(struct ath12k *ar)
120{
121}
122
123static inline void ath12k_debugfs_unregister(struct ath12k *ar)
124{
125}
126
127static inline bool ath12k_debugfs_is_extd_rx_stats_enabled(struct ath12k *ar)
128{
129 return false;
130}
131
132static inline int ath12k_debugfs_rx_filter(struct ath12k *ar)
133{
134 return 0;
135}
136
137static inline void ath12k_debugfs_op_vif_add(struct ieee80211_hw *hw,
138 struct ieee80211_vif *vif)
139{
140}
141
142static inline void ath12k_debugfs_pdev_create(struct ath12k_base *ab)
143{
144}
145#endif /* CONFIG_ATH12K_DEBUGFS */
146
147#endif /* _ATH12K_DEBUGFS_H_ */