aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorLuciano Coelho <coelho@ti.com>2012-05-10 05:14:22 -0400
committerLuciano Coelho <coelho@ti.com>2012-06-05 08:59:10 -0400
commitc5d94169e8189d02dfbd6143411908357865d777 (patch)
treeca1eaa077b1c2c8c0c8c1c4b905f9ae9950454a5 /drivers
parent3507efa08417f416a8b8a64ab701ad5df37ae077 (diff)
wl18xx: use new fw stats structures
Some of the structures were updated, other structures had a few missing values and a few new ones were added. Change the driver structs accordingly. Signed-off-by: Luciano Coelho <coelho@ti.com> Signed-off-by: Arik Nemtsov <arik@wizery.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/wireless/ti/wl18xx/acx.h156
-rw-r--r--drivers/net/wireless/ti/wl18xx/debugfs.c248
2 files changed, 169 insertions, 235 deletions
diff --git a/drivers/net/wireless/ti/wl18xx/acx.h b/drivers/net/wireless/ti/wl18xx/acx.h
index c2ccf70bcfb3..cb6fd85d077f 100644
--- a/drivers/net/wireless/ti/wl18xx/acx.h
+++ b/drivers/net/wireless/ti/wl18xx/acx.h
@@ -71,13 +71,8 @@ struct wl18xx_acx_debug_stats {
71} __packed; 71} __packed;
72 72
73struct wl18xx_acx_ring_stats { 73struct wl18xx_acx_ring_stats {
74 u32 tx_procs;
75 u32 prepared_descs; 74 u32 prepared_descs;
76 u32 tx_xfr;
77 u32 tx_dma;
78 u32 tx_cmplt; 75 u32 tx_cmplt;
79 u32 rx_procs;
80 u32 rx_data;
81} __packed; 76} __packed;
82 77
83struct wl18xx_acx_tx_stats { 78struct wl18xx_acx_tx_stats {
@@ -98,60 +93,53 @@ struct wl18xx_acx_tx_stats {
98 u32 tx_retry_data; 93 u32 tx_retry_data;
99 u32 tx_exch_pending; 94 u32 tx_exch_pending;
100 u32 tx_exch_expiry; 95 u32 tx_exch_expiry;
101 u32 tx_exch_mismatch;
102 u32 tx_done_template; 96 u32 tx_done_template;
103 u32 tx_done_data; 97 u32 tx_done_data;
104 u32 tx_done_int_template; 98 u32 tx_done_int_template;
105 u32 tx_pre_xfr; 99 u32 tx_frame_checksum;
106 u32 tx_xfr; 100 u32 tx_checksum_result;
107 u32 tx_xfr_out_of_mem; 101 u32 frag_called;
108 u32 tx_dma_programmed; 102 u32 frag_mpdu_alloc_failed;
109 u32 tx_dma_done; 103 u32 frag_init_called;
104 u32 frag_in_process_called;
105 u32 frag_tkip_called;
106 u32 frag_key_not_found;
107 u32 frag_need_fragmentation;
108 u32 frag_bad_mblk_num;
109 u32 frag_failed;
110 u32 frag_cache_hit;
111 u32 frag_cache_miss;
110} __packed; 112} __packed;
111 113
112struct wl18xx_acx_rx_stats { 114struct wl18xx_acx_rx_stats {
113 u32 rx_out_of_mem; 115 u32 rx_out_of_mem;
114 u32 rx_hdr_overflow; 116 u32 rx_hdr_overflow;
115 u32 rx_hw_stuck;
116 u32 rx_dropped_frame; 117 u32 rx_dropped_frame;
117 u32 rx_complete_dropped_frame; 118 u32 rx_done_stage;
118 u32 rx_alloc_frame;
119 u32 rx_done_queue;
120 u32 rx_done; 119 u32 rx_done;
121 u32 rx_defrag; 120 u32 rx_defrag;
122 u32 rx_defrag_end; 121 u32 rx_defrag_end;
123 u32 rx_mic;
124 u32 rx_mic_end;
125 u32 rx_xfr;
126 u32 rx_xfr_end;
127 u32 rx_cmplt; 122 u32 rx_cmplt;
128 u32 rx_pre_complt; 123 u32 rx_pre_complt;
129 u32 rx_cmplt_task; 124 u32 rx_cmplt_task;
130 u32 rx_phy_hdr; 125 u32 rx_phy_hdr;
131 u32 rx_timeout; 126 u32 rx_timeout;
132} __packed; 127 u32 rx_frame_checksum;
133 128 u32 rx_checksum_result;
134struct wl18xx_acx_dma_stats { 129 u32 defrag_called;
135 u32 rx_dma_errors; 130 u32 defrag_init_called;
136 u32 tx_dma_errors; 131 u32 defrag_in_process_called;
132 u32 defrag_tkip_called;
133 u32 defrag_need_defrag;
134 u32 defrag_decrypt_failed;
135 u32 decrypt_key_not_found;
136 u32 defrag_need_decrypt;
137} __packed; 137} __packed;
138 138
139struct wl18xx_acx_isr_stats { 139struct wl18xx_acx_isr_stats {
140 u32 irqs; 140 u32 irqs;
141} __packed; 141} __packed;
142 142
143struct wl18xx_acx_wep_stats {
144 u32 wep_add_key_count;
145 u32 wep_default_key_count;
146 u32 wep_key_not_found;
147 u32 wep_decrypt_fail;
148 u32 wep_encrypt_fail;
149 u32 wep_dec_packets;
150 u32 wep_dec_interrupt;
151 u32 wep_enc_packets;
152 u32 wep_enc_interrupts;
153} __packed;
154
155#define PWR_STAT_MAX_CONT_MISSED_BCNS_SPREAD 10 143#define PWR_STAT_MAX_CONT_MISSED_BCNS_SPREAD 10
156 144
157struct wl18xx_acx_pwr_stats { 145struct wl18xx_acx_pwr_stats {
@@ -162,29 +150,6 @@ struct wl18xx_acx_pwr_stats {
162 u32 rcvd_awake_bcns_cnt; 150 u32 rcvd_awake_bcns_cnt;
163} __packed; 151} __packed;
164 152
165struct wl18xx_acx_mic_stats {
166 u32 mic_rx_pkts;
167 u32 mic_calc_failure;
168} __packed;
169
170struct wl18xx_acx_aes_stats {
171 u32 aes_encrypt_fail;
172 u32 aes_decrypt_fail;
173 u32 aes_encrypt_packets;
174 u32 aes_decrypt_packets;
175 u32 aes_encrypt_interrupt;
176 u32 aes_decrypt_interrupt;
177} __packed;
178
179struct wl18xx_acx_gem_stats {
180 u32 gem_encrypt_fail;
181 u32 gem_decrypt_fail;
182 u32 gem_encrypt_packets;
183 u32 gem_decrypt_packets;
184 u32 gem_encrypt_interrupt;
185 u32 gem_decrypt_interrupt;
186} __packed;
187
188struct wl18xx_acx_event_stats { 153struct wl18xx_acx_event_stats {
189 u32 calibration; 154 u32 calibration;
190 u32 rx_mismatch; 155 u32 rx_mismatch;
@@ -210,31 +175,44 @@ struct wl18xx_acx_rx_filter_stats {
210 u32 protection_filter; 175 u32 protection_filter;
211} __packed; 176} __packed;
212 177
213struct wl18xx_acx_calibration_stats { 178struct wl18xx_acx_rx_rate_stats {
214 u32 init_cal_total; 179 u32 rx_frames_per_rates[50];
215 u32 init_radio_bands_fail; 180} __packed;
216 u32 init_set_params; 181
217 u32 init_tx_clpc_fail; 182#define AGGR_STATS_TX_SIZE_LEN 11
218 u32 init_rx_iw_mm_fail; 183#define AGGR_STATS_RX_SIZE_LEN 11
219 u32 tune_cal_total; 184
220 u32 tune_drpw_rtrim_fail; 185struct wl18xx_acx_aggr_stats {
221 u32 tune_drpw_pd_buf_fail; 186 u32 tx_size[AGGR_STATS_TX_SIZE_LEN];
222 u32 tune_drpw_tx_mix_freq_fail; 187 u32 rx_size[AGGR_STATS_RX_SIZE_LEN];
223 u32 tune_drpw_ta_cal; 188} __packed;
224 u32 tune_drpw_rx_if_2_gain; 189
225 u32 tune_drpw_rx_dac; 190struct wl18xx_acx_pipeline_stats {
226 u32 tune_drpw_chan_tune; 191 u32 hs_tx_stat_fifo_int;
227 u32 tune_drpw_rx_tx_lpf; 192 u32 hs_rx_stat_fifo_int;
228 u32 tune_drpw_lna_tank; 193 u32 tcp_tx_stat_fifo_int;
229 u32 tune_tx_lo_leak_fail; 194 u32 tcp_rx_stat_fifo_int;
230 u32 tune_tx_iq_mm_fail; 195 u32 enc_tx_stat_fifo_int;
231 u32 tune_tx_pdet_fail; 196 u32 enc_rx_stat_fifo_int;
232 u32 tune_tx_ppa_fail; 197 u32 rx_complete_stat_fifo_int;
233 u32 tune_tx_clpc_fail; 198 u32 pre_proc_swi;
234 u32 tune_rx_ana_dc_fail; 199 u32 post_proc_swi;
235 u32 tune_rx_dig_dc_fail; /* check if this is needed */ 200 u32 sec_frag_swi;
236 u32 tune_rx_iq_mm_fail; 201 u32 pre_to_defrag_swi;
237 u32 cal_state_fail; 202 u32 defrag_to_csum_swi;
203 u32 csum_to_rx_xfer_swi;
204 u32 dec_packet_in;
205 u32 dec_packet_in_fifo_full;
206 u32 dec_packet_out;
207 u32 cs_rx_packet_in;
208 u32 cs_rx_packet_out;
209} __packed;
210
211struct wl18xx_acx_mem_stats {
212 u32 rx_free_mem_blks;
213 u32 tx_free_mem_blks;
214 u32 fwlog_free_mem_blks;
215 u32 fw_gen_free_mem_blks;
238} __packed; 216} __packed;
239 217
240struct wl18xx_acx_statistics { 218struct wl18xx_acx_statistics {
@@ -244,17 +222,15 @@ struct wl18xx_acx_statistics {
244 struct wl18xx_acx_debug_stats debug; 222 struct wl18xx_acx_debug_stats debug;
245 struct wl18xx_acx_tx_stats tx; 223 struct wl18xx_acx_tx_stats tx;
246 struct wl18xx_acx_rx_stats rx; 224 struct wl18xx_acx_rx_stats rx;
247 struct wl18xx_acx_dma_stats dma;
248 struct wl18xx_acx_isr_stats isr; 225 struct wl18xx_acx_isr_stats isr;
249 struct wl18xx_acx_wep_stats wep;
250 struct wl18xx_acx_pwr_stats pwr; 226 struct wl18xx_acx_pwr_stats pwr;
251 struct wl18xx_acx_aes_stats aes;
252 struct wl18xx_acx_mic_stats mic;
253 struct wl18xx_acx_event_stats event; 227 struct wl18xx_acx_event_stats event;
254 struct wl18xx_acx_ps_poll_stats ps_poll; 228 struct wl18xx_acx_ps_poll_stats ps_poll;
255 struct wl18xx_acx_rx_filter_stats rx_filter; 229 struct wl18xx_acx_rx_filter_stats rx_filter;
256 struct wl18xx_acx_calibration_stats calibration; 230 struct wl18xx_acx_rx_rate_stats rx_rate;
257 struct wl18xx_acx_gem_stats gem; 231 struct wl18xx_acx_aggr_stats aggr_size;
232 struct wl18xx_acx_pipeline_stats pipeline;
233 struct wl18xx_acx_mem_stats mem;
258} __packed; 234} __packed;
259 235
260int wl18xx_acx_host_if_cfg_bitmap(struct wl1271 *wl, u32 host_cfg_bitmap, 236int wl18xx_acx_host_if_cfg_bitmap(struct wl1271 *wl, u32 host_cfg_bitmap,
diff --git a/drivers/net/wireless/ti/wl18xx/debugfs.c b/drivers/net/wireless/ti/wl18xx/debugfs.c
index f4127bfb9642..93c625b23a2f 100644
--- a/drivers/net/wireless/ti/wl18xx/debugfs.c
+++ b/drivers/net/wireless/ti/wl18xx/debugfs.c
@@ -32,6 +32,7 @@
32#define WL18XX_DEBUGFS_FWSTATS_FILE_ARRAY(a, b, c) \ 32#define WL18XX_DEBUGFS_FWSTATS_FILE_ARRAY(a, b, c) \
33 DEBUGFS_FWSTATS_FILE_ARRAY(a, b, c, wl18xx_acx_statistics) 33 DEBUGFS_FWSTATS_FILE_ARRAY(a, b, c, wl18xx_acx_statistics)
34 34
35
35WL18XX_DEBUGFS_FWSTATS_FILE(debug, debug1, "%u"); 36WL18XX_DEBUGFS_FWSTATS_FILE(debug, debug1, "%u");
36WL18XX_DEBUGFS_FWSTATS_FILE(debug, debug2, "%u"); 37WL18XX_DEBUGFS_FWSTATS_FILE(debug, debug2, "%u");
37WL18XX_DEBUGFS_FWSTATS_FILE(debug, debug3, "%u"); 38WL18XX_DEBUGFS_FWSTATS_FILE(debug, debug3, "%u");
@@ -39,13 +40,8 @@ WL18XX_DEBUGFS_FWSTATS_FILE(debug, debug4, "%u");
39WL18XX_DEBUGFS_FWSTATS_FILE(debug, debug5, "%u"); 40WL18XX_DEBUGFS_FWSTATS_FILE(debug, debug5, "%u");
40WL18XX_DEBUGFS_FWSTATS_FILE(debug, debug6, "%u"); 41WL18XX_DEBUGFS_FWSTATS_FILE(debug, debug6, "%u");
41 42
42WL18XX_DEBUGFS_FWSTATS_FILE(ring, tx_procs, "%u");
43WL18XX_DEBUGFS_FWSTATS_FILE(ring, prepared_descs, "%u"); 43WL18XX_DEBUGFS_FWSTATS_FILE(ring, prepared_descs, "%u");
44WL18XX_DEBUGFS_FWSTATS_FILE(ring, tx_xfr, "%u");
45WL18XX_DEBUGFS_FWSTATS_FILE(ring, tx_dma, "%u");
46WL18XX_DEBUGFS_FWSTATS_FILE(ring, tx_cmplt, "%u"); 44WL18XX_DEBUGFS_FWSTATS_FILE(ring, tx_cmplt, "%u");
47WL18XX_DEBUGFS_FWSTATS_FILE(ring, rx_procs, "%u");
48WL18XX_DEBUGFS_FWSTATS_FILE(ring, rx_data, "%u");
49 45
50WL18XX_DEBUGFS_FWSTATS_FILE(tx, tx_template_prepared, "%u"); 46WL18XX_DEBUGFS_FWSTATS_FILE(tx, tx_template_prepared, "%u");
51WL18XX_DEBUGFS_FWSTATS_FILE(tx, tx_data_prepared, "%u"); 47WL18XX_DEBUGFS_FWSTATS_FILE(tx, tx_data_prepared, "%u");
@@ -64,51 +60,47 @@ WL18XX_DEBUGFS_FWSTATS_FILE(tx, tx_retry_template, "%u");
64WL18XX_DEBUGFS_FWSTATS_FILE(tx, tx_retry_data, "%u"); 60WL18XX_DEBUGFS_FWSTATS_FILE(tx, tx_retry_data, "%u");
65WL18XX_DEBUGFS_FWSTATS_FILE(tx, tx_exch_pending, "%u"); 61WL18XX_DEBUGFS_FWSTATS_FILE(tx, tx_exch_pending, "%u");
66WL18XX_DEBUGFS_FWSTATS_FILE(tx, tx_exch_expiry, "%u"); 62WL18XX_DEBUGFS_FWSTATS_FILE(tx, tx_exch_expiry, "%u");
67WL18XX_DEBUGFS_FWSTATS_FILE(tx, tx_exch_mismatch, "%u");
68WL18XX_DEBUGFS_FWSTATS_FILE(tx, tx_done_template, "%u"); 63WL18XX_DEBUGFS_FWSTATS_FILE(tx, tx_done_template, "%u");
69WL18XX_DEBUGFS_FWSTATS_FILE(tx, tx_done_data, "%u"); 64WL18XX_DEBUGFS_FWSTATS_FILE(tx, tx_done_data, "%u");
70WL18XX_DEBUGFS_FWSTATS_FILE(tx, tx_done_int_template, "%u"); 65WL18XX_DEBUGFS_FWSTATS_FILE(tx, tx_done_int_template, "%u");
71WL18XX_DEBUGFS_FWSTATS_FILE(tx, tx_pre_xfr, "%u"); 66WL18XX_DEBUGFS_FWSTATS_FILE(tx, tx_frame_checksum, "%u");
72WL18XX_DEBUGFS_FWSTATS_FILE(tx, tx_xfr, "%u"); 67WL18XX_DEBUGFS_FWSTATS_FILE(tx, tx_checksum_result, "%u");
73WL18XX_DEBUGFS_FWSTATS_FILE(tx, tx_xfr_out_of_mem, "%u"); 68WL18XX_DEBUGFS_FWSTATS_FILE(tx, frag_called, "%u");
74WL18XX_DEBUGFS_FWSTATS_FILE(tx, tx_dma_programmed, "%u"); 69WL18XX_DEBUGFS_FWSTATS_FILE(tx, frag_mpdu_alloc_failed, "%u");
75WL18XX_DEBUGFS_FWSTATS_FILE(tx, tx_dma_done, "%u"); 70WL18XX_DEBUGFS_FWSTATS_FILE(tx, frag_init_called, "%u");
71WL18XX_DEBUGFS_FWSTATS_FILE(tx, frag_in_process_called, "%u");
72WL18XX_DEBUGFS_FWSTATS_FILE(tx, frag_tkip_called, "%u");
73WL18XX_DEBUGFS_FWSTATS_FILE(tx, frag_key_not_found, "%u");
74WL18XX_DEBUGFS_FWSTATS_FILE(tx, frag_need_fragmentation, "%u");
75WL18XX_DEBUGFS_FWSTATS_FILE(tx, frag_bad_mblk_num, "%u");
76WL18XX_DEBUGFS_FWSTATS_FILE(tx, frag_failed, "%u");
77WL18XX_DEBUGFS_FWSTATS_FILE(tx, frag_cache_hit, "%u");
78WL18XX_DEBUGFS_FWSTATS_FILE(tx, frag_cache_miss, "%u");
76 79
77WL18XX_DEBUGFS_FWSTATS_FILE(rx, rx_out_of_mem, "%u"); 80WL18XX_DEBUGFS_FWSTATS_FILE(rx, rx_out_of_mem, "%u");
78WL18XX_DEBUGFS_FWSTATS_FILE(rx, rx_hdr_overflow, "%u"); 81WL18XX_DEBUGFS_FWSTATS_FILE(rx, rx_hdr_overflow, "%u");
79WL18XX_DEBUGFS_FWSTATS_FILE(rx, rx_hw_stuck, "%u");
80WL18XX_DEBUGFS_FWSTATS_FILE(rx, rx_dropped_frame, "%u"); 82WL18XX_DEBUGFS_FWSTATS_FILE(rx, rx_dropped_frame, "%u");
81WL18XX_DEBUGFS_FWSTATS_FILE(rx, rx_complete_dropped_frame, "%u");
82WL18XX_DEBUGFS_FWSTATS_FILE(rx, rx_alloc_frame, "%u");
83WL18XX_DEBUGFS_FWSTATS_FILE(rx, rx_done_queue, "%u");
84WL18XX_DEBUGFS_FWSTATS_FILE(rx, rx_done, "%u"); 83WL18XX_DEBUGFS_FWSTATS_FILE(rx, rx_done, "%u");
85WL18XX_DEBUGFS_FWSTATS_FILE(rx, rx_defrag, "%u"); 84WL18XX_DEBUGFS_FWSTATS_FILE(rx, rx_defrag, "%u");
86WL18XX_DEBUGFS_FWSTATS_FILE(rx, rx_defrag_end, "%u"); 85WL18XX_DEBUGFS_FWSTATS_FILE(rx, rx_defrag_end, "%u");
87WL18XX_DEBUGFS_FWSTATS_FILE(rx, rx_mic, "%u");
88WL18XX_DEBUGFS_FWSTATS_FILE(rx, rx_mic_end, "%u");
89WL18XX_DEBUGFS_FWSTATS_FILE(rx, rx_xfr, "%u");
90WL18XX_DEBUGFS_FWSTATS_FILE(rx, rx_xfr_end, "%u");
91WL18XX_DEBUGFS_FWSTATS_FILE(rx, rx_cmplt, "%u"); 86WL18XX_DEBUGFS_FWSTATS_FILE(rx, rx_cmplt, "%u");
92WL18XX_DEBUGFS_FWSTATS_FILE(rx, rx_pre_complt, "%u"); 87WL18XX_DEBUGFS_FWSTATS_FILE(rx, rx_pre_complt, "%u");
93WL18XX_DEBUGFS_FWSTATS_FILE(rx, rx_cmplt_task, "%u"); 88WL18XX_DEBUGFS_FWSTATS_FILE(rx, rx_cmplt_task, "%u");
94WL18XX_DEBUGFS_FWSTATS_FILE(rx, rx_phy_hdr, "%u"); 89WL18XX_DEBUGFS_FWSTATS_FILE(rx, rx_phy_hdr, "%u");
95WL18XX_DEBUGFS_FWSTATS_FILE(rx, rx_timeout, "%u"); 90WL18XX_DEBUGFS_FWSTATS_FILE(rx, rx_timeout, "%u");
96 91WL18XX_DEBUGFS_FWSTATS_FILE(rx, rx_frame_checksum, "%u");
97WL18XX_DEBUGFS_FWSTATS_FILE(dma, rx_dma_errors, "%u"); 92WL18XX_DEBUGFS_FWSTATS_FILE(rx, rx_checksum_result, "%u");
98WL18XX_DEBUGFS_FWSTATS_FILE(dma, tx_dma_errors, "%u"); 93WL18XX_DEBUGFS_FWSTATS_FILE(rx, defrag_called, "%u");
94WL18XX_DEBUGFS_FWSTATS_FILE(rx, defrag_init_called, "%u");
95WL18XX_DEBUGFS_FWSTATS_FILE(rx, defrag_in_process_called, "%u");
96WL18XX_DEBUGFS_FWSTATS_FILE(rx, defrag_tkip_called, "%u");
97WL18XX_DEBUGFS_FWSTATS_FILE(rx, defrag_need_defrag, "%u");
98WL18XX_DEBUGFS_FWSTATS_FILE(rx, defrag_decrypt_failed, "%u");
99WL18XX_DEBUGFS_FWSTATS_FILE(rx, decrypt_key_not_found, "%u");
100WL18XX_DEBUGFS_FWSTATS_FILE(rx, defrag_need_decrypt, "%u");
99 101
100WL18XX_DEBUGFS_FWSTATS_FILE(isr, irqs, "%u"); 102WL18XX_DEBUGFS_FWSTATS_FILE(isr, irqs, "%u");
101 103
102WL18XX_DEBUGFS_FWSTATS_FILE(wep, wep_add_key_count, "%u");
103WL18XX_DEBUGFS_FWSTATS_FILE(wep, wep_default_key_count, "%u");
104WL18XX_DEBUGFS_FWSTATS_FILE(wep, wep_key_not_found, "%u");
105WL18XX_DEBUGFS_FWSTATS_FILE(wep, wep_decrypt_fail, "%u");
106WL18XX_DEBUGFS_FWSTATS_FILE(wep, wep_encrypt_fail, "%u");
107WL18XX_DEBUGFS_FWSTATS_FILE(wep, wep_dec_packets, "%u");
108WL18XX_DEBUGFS_FWSTATS_FILE(wep, wep_dec_interrupt, "%u");
109WL18XX_DEBUGFS_FWSTATS_FILE(wep, wep_enc_packets, "%u");
110WL18XX_DEBUGFS_FWSTATS_FILE(wep, wep_enc_interrupts, "%u");
111
112WL18XX_DEBUGFS_FWSTATS_FILE(pwr, missing_bcns_cnt, "%u"); 104WL18XX_DEBUGFS_FWSTATS_FILE(pwr, missing_bcns_cnt, "%u");
113WL18XX_DEBUGFS_FWSTATS_FILE(pwr, rcvd_bcns_cnt, "%u"); 105WL18XX_DEBUGFS_FWSTATS_FILE(pwr, rcvd_bcns_cnt, "%u");
114WL18XX_DEBUGFS_FWSTATS_FILE(pwr, connection_out_of_sync, "%u"); 106WL18XX_DEBUGFS_FWSTATS_FILE(pwr, connection_out_of_sync, "%u");
@@ -116,22 +108,6 @@ WL18XX_DEBUGFS_FWSTATS_FILE_ARRAY(pwr, cont_miss_bcns_spread,
116 PWR_STAT_MAX_CONT_MISSED_BCNS_SPREAD); 108 PWR_STAT_MAX_CONT_MISSED_BCNS_SPREAD);
117WL18XX_DEBUGFS_FWSTATS_FILE(pwr, rcvd_awake_bcns_cnt, "%u"); 109WL18XX_DEBUGFS_FWSTATS_FILE(pwr, rcvd_awake_bcns_cnt, "%u");
118 110
119WL18XX_DEBUGFS_FWSTATS_FILE(mic, mic_rx_pkts, "%u");
120WL18XX_DEBUGFS_FWSTATS_FILE(mic, mic_calc_failure, "%u");
121
122WL18XX_DEBUGFS_FWSTATS_FILE(aes, aes_encrypt_fail, "%u");
123WL18XX_DEBUGFS_FWSTATS_FILE(aes, aes_decrypt_fail, "%u");
124WL18XX_DEBUGFS_FWSTATS_FILE(aes, aes_encrypt_packets, "%u");
125WL18XX_DEBUGFS_FWSTATS_FILE(aes, aes_decrypt_packets, "%u");
126WL18XX_DEBUGFS_FWSTATS_FILE(aes, aes_encrypt_interrupt, "%u");
127WL18XX_DEBUGFS_FWSTATS_FILE(aes, aes_decrypt_interrupt, "%u");
128
129WL18XX_DEBUGFS_FWSTATS_FILE(gem, gem_encrypt_fail, "%u");
130WL18XX_DEBUGFS_FWSTATS_FILE(gem, gem_decrypt_fail, "%u");
131WL18XX_DEBUGFS_FWSTATS_FILE(gem, gem_encrypt_packets, "%u");
132WL18XX_DEBUGFS_FWSTATS_FILE(gem, gem_decrypt_packets, "%u");
133WL18XX_DEBUGFS_FWSTATS_FILE(gem, gem_encrypt_interrupt, "%u");
134WL18XX_DEBUGFS_FWSTATS_FILE(gem, gem_decrypt_interrupt, "%u");
135 111
136WL18XX_DEBUGFS_FWSTATS_FILE(event, calibration, "%u"); 112WL18XX_DEBUGFS_FWSTATS_FILE(event, calibration, "%u");
137WL18XX_DEBUGFS_FWSTATS_FILE(event, rx_mismatch, "%u"); 113WL18XX_DEBUGFS_FWSTATS_FILE(event, rx_mismatch, "%u");
@@ -152,30 +128,35 @@ WL18XX_DEBUGFS_FWSTATS_FILE(rx_filter, data_filter, "%u");
152WL18XX_DEBUGFS_FWSTATS_FILE(rx_filter, ibss_filter, "%u"); 128WL18XX_DEBUGFS_FWSTATS_FILE(rx_filter, ibss_filter, "%u");
153WL18XX_DEBUGFS_FWSTATS_FILE(rx_filter, protection_filter, "%u"); 129WL18XX_DEBUGFS_FWSTATS_FILE(rx_filter, protection_filter, "%u");
154 130
155WL18XX_DEBUGFS_FWSTATS_FILE(calibration, init_cal_total, "%u"); 131WL18XX_DEBUGFS_FWSTATS_FILE(rx_rate, rx_frames_per_rates, "%u");
156WL18XX_DEBUGFS_FWSTATS_FILE(calibration, init_radio_bands_fail, "%u"); 132
157WL18XX_DEBUGFS_FWSTATS_FILE(calibration, init_set_params, "%u"); 133WL18XX_DEBUGFS_FWSTATS_FILE_ARRAY(aggr_size, tx_size,
158WL18XX_DEBUGFS_FWSTATS_FILE(calibration, init_tx_clpc_fail, "%u"); 134 AGGR_STATS_TX_SIZE_LEN);
159WL18XX_DEBUGFS_FWSTATS_FILE(calibration, init_rx_iw_mm_fail, "%u"); 135WL18XX_DEBUGFS_FWSTATS_FILE_ARRAY(aggr_size, rx_size,
160WL18XX_DEBUGFS_FWSTATS_FILE(calibration, tune_cal_total, "%u"); 136 AGGR_STATS_RX_SIZE_LEN);
161WL18XX_DEBUGFS_FWSTATS_FILE(calibration, tune_drpw_rtrim_fail, "%u"); 137
162WL18XX_DEBUGFS_FWSTATS_FILE(calibration, tune_drpw_pd_buf_fail, "%u"); 138WL18XX_DEBUGFS_FWSTATS_FILE(pipeline, hs_tx_stat_fifo_int, "%u");
163WL18XX_DEBUGFS_FWSTATS_FILE(calibration, tune_drpw_tx_mix_freq_fail, "%u"); 139WL18XX_DEBUGFS_FWSTATS_FILE(pipeline, tcp_tx_stat_fifo_int, "%u");
164WL18XX_DEBUGFS_FWSTATS_FILE(calibration, tune_drpw_ta_cal, "%u"); 140WL18XX_DEBUGFS_FWSTATS_FILE(pipeline, tcp_rx_stat_fifo_int, "%u");
165WL18XX_DEBUGFS_FWSTATS_FILE(calibration, tune_drpw_rx_if_2_gain, "%u"); 141WL18XX_DEBUGFS_FWSTATS_FILE(pipeline, enc_tx_stat_fifo_int, "%u");
166WL18XX_DEBUGFS_FWSTATS_FILE(calibration, tune_drpw_rx_dac, "%u"); 142WL18XX_DEBUGFS_FWSTATS_FILE(pipeline, enc_rx_stat_fifo_int, "%u");
167WL18XX_DEBUGFS_FWSTATS_FILE(calibration, tune_drpw_chan_tune, "%u"); 143WL18XX_DEBUGFS_FWSTATS_FILE(pipeline, rx_complete_stat_fifo_int, "%u");
168WL18XX_DEBUGFS_FWSTATS_FILE(calibration, tune_drpw_rx_tx_lpf, "%u"); 144WL18XX_DEBUGFS_FWSTATS_FILE(pipeline, pre_proc_swi, "%u");
169WL18XX_DEBUGFS_FWSTATS_FILE(calibration, tune_drpw_lna_tank, "%u"); 145WL18XX_DEBUGFS_FWSTATS_FILE(pipeline, post_proc_swi, "%u");
170WL18XX_DEBUGFS_FWSTATS_FILE(calibration, tune_tx_lo_leak_fail, "%u"); 146WL18XX_DEBUGFS_FWSTATS_FILE(pipeline, sec_frag_swi, "%u");
171WL18XX_DEBUGFS_FWSTATS_FILE(calibration, tune_tx_iq_mm_fail, "%u"); 147WL18XX_DEBUGFS_FWSTATS_FILE(pipeline, pre_to_defrag_swi, "%u");
172WL18XX_DEBUGFS_FWSTATS_FILE(calibration, tune_tx_pdet_fail, "%u"); 148WL18XX_DEBUGFS_FWSTATS_FILE(pipeline, defrag_to_csum_swi, "%u");
173WL18XX_DEBUGFS_FWSTATS_FILE(calibration, tune_tx_ppa_fail, "%u"); 149WL18XX_DEBUGFS_FWSTATS_FILE(pipeline, csum_to_rx_xfer_swi, "%u");
174WL18XX_DEBUGFS_FWSTATS_FILE(calibration, tune_tx_clpc_fail, "%u"); 150WL18XX_DEBUGFS_FWSTATS_FILE(pipeline, dec_packet_in, "%u");
175WL18XX_DEBUGFS_FWSTATS_FILE(calibration, tune_rx_ana_dc_fail, "%u"); 151WL18XX_DEBUGFS_FWSTATS_FILE(pipeline, dec_packet_in_fifo_full, "%u");
176WL18XX_DEBUGFS_FWSTATS_FILE(calibration, tune_rx_dig_dc_fail, "%u"); 152WL18XX_DEBUGFS_FWSTATS_FILE(pipeline, dec_packet_out, "%u");
177WL18XX_DEBUGFS_FWSTATS_FILE(calibration, tune_rx_iq_mm_fail, "%u"); 153WL18XX_DEBUGFS_FWSTATS_FILE(pipeline, cs_rx_packet_in, "%u");
178WL18XX_DEBUGFS_FWSTATS_FILE(calibration, cal_state_fail, "%u"); 154WL18XX_DEBUGFS_FWSTATS_FILE(pipeline, cs_rx_packet_out, "%u");
155
156WL18XX_DEBUGFS_FWSTATS_FILE(mem, rx_free_mem_blks, "%u");
157WL18XX_DEBUGFS_FWSTATS_FILE(mem, tx_free_mem_blks, "%u");
158WL18XX_DEBUGFS_FWSTATS_FILE(mem, fwlog_free_mem_blks, "%u");
159WL18XX_DEBUGFS_FWSTATS_FILE(mem, fw_gen_free_mem_blks, "%u");
179 160
180int wl18xx_debugfs_add_files(struct wl1271 *wl, 161int wl18xx_debugfs_add_files(struct wl1271 *wl,
181 struct dentry *rootdir) 162 struct dentry *rootdir)
@@ -202,13 +183,8 @@ int wl18xx_debugfs_add_files(struct wl1271 *wl,
202 DEBUGFS_FWSTATS_ADD(debug, debug5); 183 DEBUGFS_FWSTATS_ADD(debug, debug5);
203 DEBUGFS_FWSTATS_ADD(debug, debug6); 184 DEBUGFS_FWSTATS_ADD(debug, debug6);
204 185
205 DEBUGFS_FWSTATS_ADD(ring, tx_procs);
206 DEBUGFS_FWSTATS_ADD(ring, prepared_descs); 186 DEBUGFS_FWSTATS_ADD(ring, prepared_descs);
207 DEBUGFS_FWSTATS_ADD(ring, tx_xfr);
208 DEBUGFS_FWSTATS_ADD(ring, tx_dma);
209 DEBUGFS_FWSTATS_ADD(ring, tx_cmplt); 187 DEBUGFS_FWSTATS_ADD(ring, tx_cmplt);
210 DEBUGFS_FWSTATS_ADD(ring, rx_procs);
211 DEBUGFS_FWSTATS_ADD(ring, rx_data);
212 188
213 DEBUGFS_FWSTATS_ADD(tx, tx_template_prepared); 189 DEBUGFS_FWSTATS_ADD(tx, tx_template_prepared);
214 DEBUGFS_FWSTATS_ADD(tx, tx_data_prepared); 190 DEBUGFS_FWSTATS_ADD(tx, tx_data_prepared);
@@ -227,74 +203,53 @@ int wl18xx_debugfs_add_files(struct wl1271 *wl,
227 DEBUGFS_FWSTATS_ADD(tx, tx_retry_data); 203 DEBUGFS_FWSTATS_ADD(tx, tx_retry_data);
228 DEBUGFS_FWSTATS_ADD(tx, tx_exch_pending); 204 DEBUGFS_FWSTATS_ADD(tx, tx_exch_pending);
229 DEBUGFS_FWSTATS_ADD(tx, tx_exch_expiry); 205 DEBUGFS_FWSTATS_ADD(tx, tx_exch_expiry);
230 DEBUGFS_FWSTATS_ADD(tx, tx_exch_mismatch);
231 DEBUGFS_FWSTATS_ADD(tx, tx_done_template); 206 DEBUGFS_FWSTATS_ADD(tx, tx_done_template);
232 DEBUGFS_FWSTATS_ADD(tx, tx_done_data); 207 DEBUGFS_FWSTATS_ADD(tx, tx_done_data);
233 DEBUGFS_FWSTATS_ADD(tx, tx_done_int_template); 208 DEBUGFS_FWSTATS_ADD(tx, tx_done_int_template);
234 DEBUGFS_FWSTATS_ADD(tx, tx_pre_xfr); 209 DEBUGFS_FWSTATS_ADD(tx, tx_frame_checksum);
235 DEBUGFS_FWSTATS_ADD(tx, tx_xfr); 210 DEBUGFS_FWSTATS_ADD(tx, tx_checksum_result);
236 DEBUGFS_FWSTATS_ADD(tx, tx_xfr_out_of_mem); 211 DEBUGFS_FWSTATS_ADD(tx, frag_called);
237 DEBUGFS_FWSTATS_ADD(tx, tx_dma_programmed); 212 DEBUGFS_FWSTATS_ADD(tx, frag_mpdu_alloc_failed);
238 DEBUGFS_FWSTATS_ADD(tx, tx_dma_done); 213 DEBUGFS_FWSTATS_ADD(tx, frag_init_called);
214 DEBUGFS_FWSTATS_ADD(tx, frag_in_process_called);
215 DEBUGFS_FWSTATS_ADD(tx, frag_tkip_called);
216 DEBUGFS_FWSTATS_ADD(tx, frag_key_not_found);
217 DEBUGFS_FWSTATS_ADD(tx, frag_need_fragmentation);
218 DEBUGFS_FWSTATS_ADD(tx, frag_bad_mblk_num);
219 DEBUGFS_FWSTATS_ADD(tx, frag_failed);
220 DEBUGFS_FWSTATS_ADD(tx, frag_cache_hit);
221 DEBUGFS_FWSTATS_ADD(tx, frag_cache_miss);
239 222
240 DEBUGFS_FWSTATS_ADD(rx, rx_out_of_mem); 223 DEBUGFS_FWSTATS_ADD(rx, rx_out_of_mem);
241 DEBUGFS_FWSTATS_ADD(rx, rx_hdr_overflow); 224 DEBUGFS_FWSTATS_ADD(rx, rx_hdr_overflow);
242 DEBUGFS_FWSTATS_ADD(rx, rx_hw_stuck);
243 DEBUGFS_FWSTATS_ADD(rx, rx_dropped_frame); 225 DEBUGFS_FWSTATS_ADD(rx, rx_dropped_frame);
244 DEBUGFS_FWSTATS_ADD(rx, rx_complete_dropped_frame);
245 DEBUGFS_FWSTATS_ADD(rx, rx_alloc_frame);
246 DEBUGFS_FWSTATS_ADD(rx, rx_done_queue);
247 DEBUGFS_FWSTATS_ADD(rx, rx_done); 226 DEBUGFS_FWSTATS_ADD(rx, rx_done);
248 DEBUGFS_FWSTATS_ADD(rx, rx_defrag); 227 DEBUGFS_FWSTATS_ADD(rx, rx_defrag);
249 DEBUGFS_FWSTATS_ADD(rx, rx_defrag_end); 228 DEBUGFS_FWSTATS_ADD(rx, rx_defrag_end);
250 DEBUGFS_FWSTATS_ADD(rx, rx_mic);
251 DEBUGFS_FWSTATS_ADD(rx, rx_mic_end);
252 DEBUGFS_FWSTATS_ADD(rx, rx_xfr);
253 DEBUGFS_FWSTATS_ADD(rx, rx_xfr_end);
254 DEBUGFS_FWSTATS_ADD(rx, rx_cmplt); 229 DEBUGFS_FWSTATS_ADD(rx, rx_cmplt);
255 DEBUGFS_FWSTATS_ADD(rx, rx_pre_complt); 230 DEBUGFS_FWSTATS_ADD(rx, rx_pre_complt);
256 DEBUGFS_FWSTATS_ADD(rx, rx_cmplt_task); 231 DEBUGFS_FWSTATS_ADD(rx, rx_cmplt_task);
257 DEBUGFS_FWSTATS_ADD(rx, rx_phy_hdr); 232 DEBUGFS_FWSTATS_ADD(rx, rx_phy_hdr);
258 DEBUGFS_FWSTATS_ADD(rx, rx_timeout); 233 DEBUGFS_FWSTATS_ADD(rx, rx_timeout);
259 234 DEBUGFS_FWSTATS_ADD(rx, rx_frame_checksum);
260 DEBUGFS_FWSTATS_ADD(dma, rx_dma_errors); 235 DEBUGFS_FWSTATS_ADD(rx, rx_checksum_result);
261 DEBUGFS_FWSTATS_ADD(dma, tx_dma_errors); 236 DEBUGFS_FWSTATS_ADD(rx, defrag_called);
237 DEBUGFS_FWSTATS_ADD(rx, defrag_init_called);
238 DEBUGFS_FWSTATS_ADD(rx, defrag_in_process_called);
239 DEBUGFS_FWSTATS_ADD(rx, defrag_tkip_called);
240 DEBUGFS_FWSTATS_ADD(rx, defrag_need_defrag);
241 DEBUGFS_FWSTATS_ADD(rx, defrag_decrypt_failed);
242 DEBUGFS_FWSTATS_ADD(rx, decrypt_key_not_found);
243 DEBUGFS_FWSTATS_ADD(rx, defrag_need_decrypt);
262 244
263 DEBUGFS_FWSTATS_ADD(isr, irqs); 245 DEBUGFS_FWSTATS_ADD(isr, irqs);
264 246
265 DEBUGFS_FWSTATS_ADD(wep, wep_add_key_count);
266 DEBUGFS_FWSTATS_ADD(wep, wep_default_key_count);
267 DEBUGFS_FWSTATS_ADD(wep, wep_key_not_found);
268 DEBUGFS_FWSTATS_ADD(wep, wep_decrypt_fail);
269 DEBUGFS_FWSTATS_ADD(wep, wep_encrypt_fail);
270 DEBUGFS_FWSTATS_ADD(wep, wep_dec_packets);
271 DEBUGFS_FWSTATS_ADD(wep, wep_dec_interrupt);
272 DEBUGFS_FWSTATS_ADD(wep, wep_enc_packets);
273 DEBUGFS_FWSTATS_ADD(wep, wep_enc_interrupts);
274
275 DEBUGFS_FWSTATS_ADD(pwr, missing_bcns_cnt); 247 DEBUGFS_FWSTATS_ADD(pwr, missing_bcns_cnt);
276 DEBUGFS_FWSTATS_ADD(pwr, rcvd_bcns_cnt); 248 DEBUGFS_FWSTATS_ADD(pwr, rcvd_bcns_cnt);
277 DEBUGFS_FWSTATS_ADD(pwr, connection_out_of_sync); 249 DEBUGFS_FWSTATS_ADD(pwr, connection_out_of_sync);
278 DEBUGFS_FWSTATS_ADD(pwr, cont_miss_bcns_spread); 250 DEBUGFS_FWSTATS_ADD(pwr, cont_miss_bcns_spread);
279 DEBUGFS_FWSTATS_ADD(pwr, rcvd_awake_bcns_cnt); 251 DEBUGFS_FWSTATS_ADD(pwr, rcvd_awake_bcns_cnt);
280 252
281 DEBUGFS_FWSTATS_ADD(mic, mic_rx_pkts);
282 DEBUGFS_FWSTATS_ADD(mic, mic_calc_failure);
283
284 DEBUGFS_FWSTATS_ADD(aes, aes_encrypt_fail);
285 DEBUGFS_FWSTATS_ADD(aes, aes_decrypt_fail);
286 DEBUGFS_FWSTATS_ADD(aes, aes_encrypt_packets);
287 DEBUGFS_FWSTATS_ADD(aes, aes_decrypt_packets);
288 DEBUGFS_FWSTATS_ADD(aes, aes_encrypt_interrupt);
289 DEBUGFS_FWSTATS_ADD(aes, aes_decrypt_interrupt);
290
291 DEBUGFS_FWSTATS_ADD(gem, gem_encrypt_fail);
292 DEBUGFS_FWSTATS_ADD(gem, gem_decrypt_fail);
293 DEBUGFS_FWSTATS_ADD(gem, gem_encrypt_packets);
294 DEBUGFS_FWSTATS_ADD(gem, gem_decrypt_packets);
295 DEBUGFS_FWSTATS_ADD(gem, gem_encrypt_interrupt);
296 DEBUGFS_FWSTATS_ADD(gem, gem_decrypt_interrupt);
297
298 DEBUGFS_FWSTATS_ADD(event, calibration); 253 DEBUGFS_FWSTATS_ADD(event, calibration);
299 DEBUGFS_FWSTATS_ADD(event, rx_mismatch); 254 DEBUGFS_FWSTATS_ADD(event, rx_mismatch);
300 DEBUGFS_FWSTATS_ADD(event, rx_mem_empty); 255 DEBUGFS_FWSTATS_ADD(event, rx_mem_empty);
@@ -314,30 +269,33 @@ int wl18xx_debugfs_add_files(struct wl1271 *wl,
314 DEBUGFS_FWSTATS_ADD(rx_filter, ibss_filter); 269 DEBUGFS_FWSTATS_ADD(rx_filter, ibss_filter);
315 DEBUGFS_FWSTATS_ADD(rx_filter, protection_filter); 270 DEBUGFS_FWSTATS_ADD(rx_filter, protection_filter);
316 271
317 DEBUGFS_FWSTATS_ADD(calibration, init_cal_total); 272 DEBUGFS_FWSTATS_ADD(rx_rate, rx_frames_per_rates);
318 DEBUGFS_FWSTATS_ADD(calibration, init_radio_bands_fail); 273
319 DEBUGFS_FWSTATS_ADD(calibration, init_set_params); 274 DEBUGFS_FWSTATS_ADD(aggr_size, tx_size);
320 DEBUGFS_FWSTATS_ADD(calibration, init_tx_clpc_fail); 275 DEBUGFS_FWSTATS_ADD(aggr_size, rx_size);
321 DEBUGFS_FWSTATS_ADD(calibration, init_rx_iw_mm_fail); 276
322 DEBUGFS_FWSTATS_ADD(calibration, tune_cal_total); 277 DEBUGFS_FWSTATS_ADD(pipeline, hs_tx_stat_fifo_int);
323 DEBUGFS_FWSTATS_ADD(calibration, tune_drpw_rtrim_fail); 278 DEBUGFS_FWSTATS_ADD(pipeline, tcp_tx_stat_fifo_int);
324 DEBUGFS_FWSTATS_ADD(calibration, tune_drpw_pd_buf_fail); 279 DEBUGFS_FWSTATS_ADD(pipeline, tcp_rx_stat_fifo_int);
325 DEBUGFS_FWSTATS_ADD(calibration, tune_drpw_tx_mix_freq_fail); 280 DEBUGFS_FWSTATS_ADD(pipeline, enc_tx_stat_fifo_int);
326 DEBUGFS_FWSTATS_ADD(calibration, tune_drpw_ta_cal); 281 DEBUGFS_FWSTATS_ADD(pipeline, enc_rx_stat_fifo_int);
327 DEBUGFS_FWSTATS_ADD(calibration, tune_drpw_rx_if_2_gain); 282 DEBUGFS_FWSTATS_ADD(pipeline, rx_complete_stat_fifo_int);
328 DEBUGFS_FWSTATS_ADD(calibration, tune_drpw_rx_dac); 283 DEBUGFS_FWSTATS_ADD(pipeline, pre_proc_swi);
329 DEBUGFS_FWSTATS_ADD(calibration, tune_drpw_chan_tune); 284 DEBUGFS_FWSTATS_ADD(pipeline, post_proc_swi);
330 DEBUGFS_FWSTATS_ADD(calibration, tune_drpw_rx_tx_lpf); 285 DEBUGFS_FWSTATS_ADD(pipeline, sec_frag_swi);
331 DEBUGFS_FWSTATS_ADD(calibration, tune_drpw_lna_tank); 286 DEBUGFS_FWSTATS_ADD(pipeline, pre_to_defrag_swi);
332 DEBUGFS_FWSTATS_ADD(calibration, tune_tx_lo_leak_fail); 287 DEBUGFS_FWSTATS_ADD(pipeline, defrag_to_csum_swi);
333 DEBUGFS_FWSTATS_ADD(calibration, tune_tx_iq_mm_fail); 288 DEBUGFS_FWSTATS_ADD(pipeline, csum_to_rx_xfer_swi);
334 DEBUGFS_FWSTATS_ADD(calibration, tune_tx_pdet_fail); 289 DEBUGFS_FWSTATS_ADD(pipeline, dec_packet_in);
335 DEBUGFS_FWSTATS_ADD(calibration, tune_tx_ppa_fail); 290 DEBUGFS_FWSTATS_ADD(pipeline, dec_packet_in_fifo_full);
336 DEBUGFS_FWSTATS_ADD(calibration, tune_tx_clpc_fail); 291 DEBUGFS_FWSTATS_ADD(pipeline, dec_packet_out);
337 DEBUGFS_FWSTATS_ADD(calibration, tune_rx_ana_dc_fail); 292 DEBUGFS_FWSTATS_ADD(pipeline, cs_rx_packet_in);
338 DEBUGFS_FWSTATS_ADD(calibration, tune_rx_dig_dc_fail); 293 DEBUGFS_FWSTATS_ADD(pipeline, cs_rx_packet_out);
339 DEBUGFS_FWSTATS_ADD(calibration, tune_rx_iq_mm_fail); 294
340 DEBUGFS_FWSTATS_ADD(calibration, cal_state_fail); 295 DEBUGFS_FWSTATS_ADD(mem, rx_free_mem_blks);
296 DEBUGFS_FWSTATS_ADD(mem, tx_free_mem_blks);
297 DEBUGFS_FWSTATS_ADD(mem, fwlog_free_mem_blks);
298 DEBUGFS_FWSTATS_ADD(mem, fw_gen_free_mem_blks);
341 299
342 return 0; 300 return 0;
343 301