31 static const char *fmt_value =
" %-30s %10u\n";
32 static const char *fmt_table =
" %-30s %10u %10u %10u %10u\n";
33 static const char *fmt_header =
34 "%-32s current cumulative delta max\n";
37 il4965_stats_flag(
struct il_priv *il,
char *
buf,
int bufsz)
44 p +=
scnprintf(buf + p, bufsz - p,
"Statistics Flag(0x%X):\n", flag);
47 "\tStatistics have been cleared\n");
48 p +=
scnprintf(buf + p, bufsz - p,
"\tOperational Frequency: %s\n",
51 p +=
scnprintf(buf + p, bufsz - p,
"\tTGj Narrow Band: %s\n",
60 size_t count, loff_t *ppos)
81 IL_ERR(
"Can not allocate Buffer\n");
90 ofdm = &il->_4965.stats.rx.ofdm;
91 cck = &il->_4965.stats.rx.cck;
92 general = &il->_4965.stats.rx.general;
93 ht = &il->_4965.stats.rx.ofdm_ht;
94 accum_ofdm = &il->_4965.accum_stats.rx.ofdm;
95 accum_cck = &il->_4965.accum_stats.rx.cck;
96 accum_general = &il->_4965.accum_stats.rx.general;
97 accum_ht = &il->_4965.accum_stats.rx.ofdm_ht;
98 delta_ofdm = &il->_4965.delta_stats.rx.ofdm;
99 delta_cck = &il->_4965.delta_stats.rx.cck;
100 delta_general = &il->_4965.delta_stats.rx.general;
101 delta_ht = &il->_4965.delta_stats.rx.ofdm_ht;
102 max_ofdm = &il->_4965.max_delta.rx.ofdm;
103 max_cck = &il->_4965.max_delta.rx.cck;
104 max_general = &il->_4965.max_delta.rx.general;
105 max_ht = &il->_4965.max_delta.rx.ofdm_ht;
107 pos += il4965_stats_flag(il, buf, bufsz);
109 scnprintf(buf + pos, bufsz - pos, fmt_header,
110 "Statistics_Rx - OFDM:");
112 scnprintf(buf + pos, bufsz - pos, fmt_table,
"ina_cnt:",
116 scnprintf(buf + pos, bufsz - pos, fmt_table,
"fina_cnt:",
120 scnprintf(buf + pos, bufsz - pos, fmt_table,
"plcp_err:",
124 scnprintf(buf + pos, bufsz - pos, fmt_table,
"crc32_err:",
128 scnprintf(buf + pos, bufsz - pos, fmt_table,
"overrun_err:",
132 scnprintf(buf + pos, bufsz - pos, fmt_table,
"early_overrun_err:",
138 scnprintf(buf + pos, bufsz - pos, fmt_table,
"crc32_good:",
142 scnprintf(buf + pos, bufsz - pos, fmt_table,
"false_alarm_cnt:",
147 scnprintf(buf + pos, bufsz - pos, fmt_table,
"fina_sync_err_cnt:",
153 scnprintf(buf + pos, bufsz - pos, fmt_table,
"sfd_timeout:",
157 scnprintf(buf + pos, bufsz - pos, fmt_table,
"fina_timeout:",
161 scnprintf(buf + pos, bufsz - pos, fmt_table,
"unresponded_rts:",
166 scnprintf(buf + pos, bufsz - pos, fmt_table,
"rxe_frame_lmt_ovrun:",
172 scnprintf(buf + pos, bufsz - pos, fmt_table,
"sent_ack_cnt:",
176 scnprintf(buf + pos, bufsz - pos, fmt_table,
"sent_cts_cnt:",
180 scnprintf(buf + pos, bufsz - pos, fmt_table,
"sent_ba_rsp_cnt:",
185 scnprintf(buf + pos, bufsz - pos, fmt_table,
"dsp_self_kill:",
190 scnprintf(buf + pos, bufsz - pos, fmt_table,
"mh_format_err:",
195 scnprintf(buf + pos, bufsz - pos, fmt_table,
196 "re_acq_main_rssi_sum:",
203 scnprintf(buf + pos, bufsz - pos, fmt_header,
204 "Statistics_Rx - CCK:");
206 scnprintf(buf + pos, bufsz - pos, fmt_table,
"ina_cnt:",
210 scnprintf(buf + pos, bufsz - pos, fmt_table,
"fina_cnt:",
214 scnprintf(buf + pos, bufsz - pos, fmt_table,
"plcp_err:",
218 scnprintf(buf + pos, bufsz - pos, fmt_table,
"crc32_err:",
222 scnprintf(buf + pos, bufsz - pos, fmt_table,
"overrun_err:",
226 scnprintf(buf + pos, bufsz - pos, fmt_table,
"early_overrun_err:",
231 scnprintf(buf + pos, bufsz - pos, fmt_table,
"crc32_good:",
235 scnprintf(buf + pos, bufsz - pos, fmt_table,
"false_alarm_cnt:",
240 scnprintf(buf + pos, bufsz - pos, fmt_table,
"fina_sync_err_cnt:",
245 scnprintf(buf + pos, bufsz - pos, fmt_table,
"sfd_timeout:",
249 scnprintf(buf + pos, bufsz - pos, fmt_table,
"fina_timeout:",
253 scnprintf(buf + pos, bufsz - pos, fmt_table,
"unresponded_rts:",
258 scnprintf(buf + pos, bufsz - pos, fmt_table,
"rxe_frame_lmt_ovrun:",
264 scnprintf(buf + pos, bufsz - pos, fmt_table,
"sent_ack_cnt:",
268 scnprintf(buf + pos, bufsz - pos, fmt_table,
"sent_cts_cnt:",
272 scnprintf(buf + pos, bufsz - pos, fmt_table,
"sent_ba_rsp_cnt:",
277 scnprintf(buf + pos, bufsz - pos, fmt_table,
"dsp_self_kill:",
281 scnprintf(buf + pos, bufsz - pos, fmt_table,
"mh_format_err:",
285 scnprintf(buf + pos, bufsz - pos, fmt_table,
286 "re_acq_main_rssi_sum:",
293 scnprintf(buf + pos, bufsz - pos, fmt_header,
294 "Statistics_Rx - GENERAL:");
296 scnprintf(buf + pos, bufsz - pos, fmt_table,
"bogus_cts:",
300 scnprintf(buf + pos, bufsz - pos, fmt_table,
"bogus_ack:",
304 scnprintf(buf + pos, bufsz - pos, fmt_table,
"non_bssid_frames:",
310 scnprintf(buf + pos, bufsz - pos, fmt_table,
"filtered_frames:",
316 scnprintf(buf + pos, bufsz - pos, fmt_table,
"non_channel_beacons:",
322 scnprintf(buf + pos, bufsz - pos, fmt_table,
"channel_beacons:",
328 scnprintf(buf + pos, bufsz - pos, fmt_table,
"num_missed_bcon:",
334 scnprintf(buf + pos, bufsz - pos, fmt_table,
335 "adc_rx_saturation_time:",
341 scnprintf(buf + pos, bufsz - pos, fmt_table,
342 "ina_detect_search_tm:",
348 scnprintf(buf + pos, bufsz - pos, fmt_table,
349 "beacon_silence_rssi_a:",
355 scnprintf(buf + pos, bufsz - pos, fmt_table,
356 "beacon_silence_rssi_b:",
362 scnprintf(buf + pos, bufsz - pos, fmt_table,
363 "beacon_silence_rssi_c:",
369 scnprintf(buf + pos, bufsz - pos, fmt_table,
370 "interference_data_flag:",
376 scnprintf(buf + pos, bufsz - pos, fmt_table,
"channel_load:",
381 scnprintf(buf + pos, bufsz - pos, fmt_table,
"dsp_false_alarms:",
387 scnprintf(buf + pos, bufsz - pos, fmt_table,
"beacon_rssi_a:",
392 scnprintf(buf + pos, bufsz - pos, fmt_table,
"beacon_rssi_b:",
397 scnprintf(buf + pos, bufsz - pos, fmt_table,
"beacon_rssi_c:",
402 scnprintf(buf + pos, bufsz - pos, fmt_table,
"beacon_energy_a:",
408 scnprintf(buf + pos, bufsz - pos, fmt_table,
"beacon_energy_b:",
414 scnprintf(buf + pos, bufsz - pos, fmt_table,
"beacon_energy_c:",
421 scnprintf(buf + pos, bufsz - pos, fmt_header,
422 "Statistics_Rx - OFDM_HT:");
424 scnprintf(buf + pos, bufsz - pos, fmt_table,
"plcp_err:",
428 scnprintf(buf + pos, bufsz - pos, fmt_table,
"overrun_err:",
432 scnprintf(buf + pos, bufsz - pos, fmt_table,
"early_overrun_err:",
437 scnprintf(buf + pos, bufsz - pos, fmt_table,
"crc32_good:",
441 scnprintf(buf + pos, bufsz - pos, fmt_table,
"crc32_err:",
445 scnprintf(buf + pos, bufsz - pos, fmt_table,
"mh_format_err:",
449 scnprintf(buf + pos, bufsz - pos, fmt_table,
"agg_crc32_good:",
453 scnprintf(buf + pos, bufsz - pos, fmt_table,
"agg_mpdu_cnt:",
457 scnprintf(buf + pos, bufsz - pos, fmt_table,
"agg_cnt:",
461 scnprintf(buf + pos, bufsz - pos, fmt_table,
"unsupport_mcs:",
472 size_t count, loff_t *ppos)
477 int bufsz = (
sizeof(
struct stats_tx) * 48) + 250;
479 struct stats_tx *
tx, *accum_tx, *delta_tx, *max_tx;
481 if (!il_is_alive(il))
486 IL_ERR(
"Can not allocate Buffer\n");
494 tx = &il->_4965.stats.tx;
495 accum_tx = &il->_4965.accum_stats.tx;
496 delta_tx = &il->_4965.delta_stats.tx;
497 max_tx = &il->_4965.max_delta.tx;
499 pos += il4965_stats_flag(il, buf, bufsz);
500 pos +=
scnprintf(buf + pos, bufsz - pos, fmt_header,
"Statistics_Tx:");
502 scnprintf(buf + pos, bufsz - pos, fmt_table,
"preamble:",
506 scnprintf(buf + pos, bufsz - pos, fmt_table,
"rx_detected_cnt:",
511 scnprintf(buf + pos, bufsz - pos, fmt_table,
"bt_prio_defer_cnt:",
516 scnprintf(buf + pos, bufsz - pos, fmt_table,
"bt_prio_kill_cnt:",
521 scnprintf(buf + pos, bufsz - pos, fmt_table,
"few_bytes_cnt:",
525 scnprintf(buf + pos, bufsz - pos, fmt_table,
"cts_timeout:",
529 scnprintf(buf + pos, bufsz - pos, fmt_table,
"ack_timeout:",
533 scnprintf(buf + pos, bufsz - pos, fmt_table,
"expected_ack_cnt:",
538 scnprintf(buf + pos, bufsz - pos, fmt_table,
"actual_ack_cnt:",
542 scnprintf(buf + pos, bufsz - pos, fmt_table,
"dump_msdu_cnt:",
546 scnprintf(buf + pos, bufsz - pos, fmt_table,
547 "abort_nxt_frame_mismatch:",
553 scnprintf(buf + pos, bufsz - pos, fmt_table,
554 "abort_missing_nxt_frame:",
560 scnprintf(buf + pos, bufsz - pos, fmt_table,
561 "cts_timeout_collision:",
567 scnprintf(buf + pos, bufsz - pos, fmt_table,
568 "ack_ba_timeout_collision:",
574 scnprintf(buf + pos, bufsz - pos, fmt_table,
"agg ba_timeout:",
576 delta_tx->
agg.ba_timeout, max_tx->
agg.ba_timeout);
578 scnprintf(buf + pos, bufsz - pos, fmt_table,
579 "agg ba_resched_frames:",
581 accum_tx->
agg.ba_reschedule_frames,
582 delta_tx->
agg.ba_reschedule_frames,
583 max_tx->
agg.ba_reschedule_frames);
585 scnprintf(buf + pos, bufsz - pos, fmt_table,
586 "agg scd_query_agg_frame:",
588 accum_tx->
agg.scd_query_agg_frame_cnt,
589 delta_tx->
agg.scd_query_agg_frame_cnt,
590 max_tx->
agg.scd_query_agg_frame_cnt);
592 scnprintf(buf + pos, bufsz - pos, fmt_table,
593 "agg scd_query_no_agg:",
595 accum_tx->
agg.scd_query_no_agg,
596 delta_tx->
agg.scd_query_no_agg,
597 max_tx->
agg.scd_query_no_agg);
599 scnprintf(buf + pos, bufsz - pos, fmt_table,
"agg scd_query_agg:",
601 accum_tx->
agg.scd_query_agg, delta_tx->
agg.scd_query_agg,
602 max_tx->
agg.scd_query_agg);
604 scnprintf(buf + pos, bufsz - pos, fmt_table,
605 "agg scd_query_mismatch:",
607 accum_tx->
agg.scd_query_mismatch,
608 delta_tx->
agg.scd_query_mismatch,
609 max_tx->
agg.scd_query_mismatch);
611 scnprintf(buf + pos, bufsz - pos, fmt_table,
"agg frame_not_ready:",
613 accum_tx->
agg.frame_not_ready,
614 delta_tx->
agg.frame_not_ready,
615 max_tx->
agg.frame_not_ready);
617 scnprintf(buf + pos, bufsz - pos, fmt_table,
"agg underrun:",
619 delta_tx->
agg.underrun, max_tx->
agg.underrun);
621 scnprintf(buf + pos, bufsz - pos, fmt_table,
"agg bt_prio_kill:",
623 accum_tx->
agg.bt_prio_kill, delta_tx->
agg.bt_prio_kill,
624 max_tx->
agg.bt_prio_kill);
626 scnprintf(buf + pos, bufsz - pos, fmt_table,
"agg rx_ba_rsp_cnt:",
628 accum_tx->
agg.rx_ba_rsp_cnt, delta_tx->
agg.rx_ba_rsp_cnt,
629 max_tx->
agg.rx_ba_rsp_cnt);
638 size_t count, loff_t *ppos)
647 struct stats_dbg *
dbg, *accum_dbg, *delta_dbg, *max_dbg;
648 struct stats_div *
div, *accum_div, *delta_div, *max_div;
650 if (!il_is_alive(il))
655 IL_ERR(
"Can not allocate Buffer\n");
663 general = &il->_4965.stats.general.common;
664 dbg = &il->_4965.stats.general.common.dbg;
665 div = &il->_4965.stats.general.common.div;
666 accum_general = &il->_4965.accum_stats.general.common;
667 accum_dbg = &il->_4965.accum_stats.general.common.dbg;
668 accum_div = &il->_4965.accum_stats.general.common.div;
669 delta_general = &il->_4965.delta_stats.general.common;
670 max_general = &il->_4965.max_delta.general.common;
671 delta_dbg = &il->_4965.delta_stats.general.common.dbg;
672 max_dbg = &il->_4965.max_delta.general.common.dbg;
673 delta_div = &il->_4965.delta_stats.general.common.div;
674 max_div = &il->_4965.max_delta.general.common.div;
676 pos += il4965_stats_flag(il, buf, bufsz);
678 scnprintf(buf + pos, bufsz - pos, fmt_header,
679 "Statistics_General:");
681 scnprintf(buf + pos, bufsz - pos, fmt_value,
"temperature:",
684 scnprintf(buf + pos, bufsz - pos, fmt_value,
"ttl_timestamp:",
687 scnprintf(buf + pos, bufsz - pos, fmt_table,
"burst_check:",
691 scnprintf(buf + pos, bufsz - pos, fmt_table,
"burst_count:",
695 scnprintf(buf + pos, bufsz - pos, fmt_table,
696 "wait_for_silence_timeout_count:",
702 scnprintf(buf + pos, bufsz - pos, fmt_table,
"sleep_time:",
707 scnprintf(buf + pos, bufsz - pos, fmt_table,
"slots_out:",
711 scnprintf(buf + pos, bufsz - pos, fmt_table,
"slots_idle:",
716 scnprintf(buf + pos, bufsz - pos, fmt_table,
"tx_on_a:",
720 scnprintf(buf + pos, bufsz - pos, fmt_table,
"tx_on_b:",
724 scnprintf(buf + pos, bufsz - pos, fmt_table,
"exec_time:",
728 scnprintf(buf + pos, bufsz - pos, fmt_table,
"probe_time:",
732 scnprintf(buf + pos, bufsz - pos, fmt_table,
"rx_enable_counter:",
738 scnprintf(buf + pos, bufsz - pos, fmt_table,
"num_of_sos_states:",