wl18xx: add diversity statistics
authorGuy Mishol <guym@ti.com>
Tue, 11 Aug 2015 07:02:57 +0000 (10:02 +0300)
committerKalle Valo <kvalo@codeaurora.org>
Tue, 18 Aug 2015 06:06:06 +0000 (09:06 +0300)
Add diversity statistics and sync the driver
statistics acx and debugfs representation
with the current fw api.

Signed-off-by: Guy Mishol <guym@ti.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/ti/wl18xx/acx.h
drivers/net/wireless/ti/wl18xx/debugfs.c

index 6c5fef3..342a299 100644 (file)
@@ -112,20 +112,6 @@ struct wl18xx_acx_error_stats {
        u32 tbc_exch_mismatch;
 } __packed;
 
-struct wl18xx_acx_debug_stats {
-       u32 debug1;
-       u32 debug2;
-       u32 debug3;
-       u32 debug4;
-       u32 debug5;
-       u32 debug6;
-} __packed;
-
-struct wl18xx_acx_ring_stats {
-       u32 prepared_descs;
-       u32 tx_cmplt;
-} __packed;
-
 #define NUM_OF_RATES_INDEXES 30
 struct wl18xx_acx_tx_stats {
        u32 tx_prepared_descs;
@@ -215,21 +201,6 @@ struct wl18xx_acx_pwr_stats {
        u32 ap_sleep_counter;
 } __packed;
 
-struct wl18xx_acx_event_stats {
-       u32 calibration;
-       u32 rx_mismatch;
-       u32 rx_mem_empty;
-} __packed;
-
-struct wl18xx_acx_ps_poll_stats {
-       u32 ps_poll_timeouts;
-       u32 upsd_timeouts;
-       u32 upsd_max_ap_turn;
-       u32 ps_poll_max_ap_turn;
-       u32 ps_poll_utilization;
-       u32 upsd_utilization;
-} __packed;
-
 struct wl18xx_acx_rx_filter_stats {
        u32 beacon_filter;
        u32 arp_filter;
@@ -260,8 +231,6 @@ struct wl18xx_acx_aggr_stats {
 struct wl18xx_acx_pipeline_stats {
        u32 hs_tx_stat_fifo_int;
        u32 hs_rx_stat_fifo_int;
-       u32 tcp_tx_stat_fifo_int;
-       u32 tcp_rx_stat_fifo_int;
        u32 enc_tx_stat_fifo_int;
        u32 enc_rx_stat_fifo_int;
        u32 rx_complete_stat_fifo_int;
@@ -269,22 +238,19 @@ struct wl18xx_acx_pipeline_stats {
        u32 post_proc_swi;
        u32 sec_frag_swi;
        u32 pre_to_defrag_swi;
-       u32 defrag_to_csum_swi;
-       u32 csum_to_rx_xfer_swi;
+       u32 defrag_to_rx_xfer_swi;
        u32 dec_packet_in;
        u32 dec_packet_in_fifo_full;
        u32 dec_packet_out;
-       u32 cs_rx_packet_in;
-       u32 cs_rx_packet_out;
        u16 pipeline_fifo_full[PIPE_STATS_HW_FIFO];
        u16 padding;
 } __packed;
 
-struct wl18xx_acx_mem_stats {
-       u32 rx_free_mem_blks;
-       u32 tx_free_mem_blks;
-       u32 fwlog_free_mem_blks;
-       u32 fw_gen_free_mem_blks;
+#define DIVERSITY_STATS_NUM_OF_ANT     2
+
+struct wl18xx_acx_diversity_stats {
+       u32 num_of_packets_per_ant[DIVERSITY_STATS_NUM_OF_ANT];
+       u32 total_num_of_toggles;
 } __packed;
 
 struct wl18xx_acx_thermal_stats {
@@ -322,6 +288,7 @@ struct wl18xx_acx_statistics {
        struct wl18xx_acx_rx_rate_stats         rx_rate;
        struct wl18xx_acx_aggr_stats            aggr_size;
        struct wl18xx_acx_pipeline_stats        pipeline;
+       struct wl18xx_acx_diversity_stats       diversity;
        struct wl18xx_acx_thermal_stats         thermal;
        struct wl18xx_acx_calib_failure_stats   calib;
        struct wl18xx_roaming_stats             roaming;
index cf71005..4edfe28 100644 (file)
@@ -153,8 +153,6 @@ WL18XX_DEBUGFS_FWSTATS_FILE_ARRAY(aggr_size, rx_size,
                                  AGGR_STATS_RX_SIZE_LEN);
 
 WL18XX_DEBUGFS_FWSTATS_FILE(pipeline, hs_tx_stat_fifo_int, "%u");
-WL18XX_DEBUGFS_FWSTATS_FILE(pipeline, tcp_tx_stat_fifo_int, "%u");
-WL18XX_DEBUGFS_FWSTATS_FILE(pipeline, tcp_rx_stat_fifo_int, "%u");
 WL18XX_DEBUGFS_FWSTATS_FILE(pipeline, enc_tx_stat_fifo_int, "%u");
 WL18XX_DEBUGFS_FWSTATS_FILE(pipeline, enc_rx_stat_fifo_int, "%u");
 WL18XX_DEBUGFS_FWSTATS_FILE(pipeline, rx_complete_stat_fifo_int, "%u");
@@ -162,17 +160,18 @@ WL18XX_DEBUGFS_FWSTATS_FILE(pipeline, pre_proc_swi, "%u");
 WL18XX_DEBUGFS_FWSTATS_FILE(pipeline, post_proc_swi, "%u");
 WL18XX_DEBUGFS_FWSTATS_FILE(pipeline, sec_frag_swi, "%u");
 WL18XX_DEBUGFS_FWSTATS_FILE(pipeline, pre_to_defrag_swi, "%u");
-WL18XX_DEBUGFS_FWSTATS_FILE(pipeline, defrag_to_csum_swi, "%u");
-WL18XX_DEBUGFS_FWSTATS_FILE(pipeline, csum_to_rx_xfer_swi, "%u");
+WL18XX_DEBUGFS_FWSTATS_FILE(pipeline, defrag_to_rx_xfer_swi, "%u");
 WL18XX_DEBUGFS_FWSTATS_FILE(pipeline, dec_packet_in, "%u");
 WL18XX_DEBUGFS_FWSTATS_FILE(pipeline, dec_packet_in_fifo_full, "%u");
 WL18XX_DEBUGFS_FWSTATS_FILE(pipeline, dec_packet_out, "%u");
-WL18XX_DEBUGFS_FWSTATS_FILE(pipeline, cs_rx_packet_in, "%u");
-WL18XX_DEBUGFS_FWSTATS_FILE(pipeline, cs_rx_packet_out, "%u");
 
 WL18XX_DEBUGFS_FWSTATS_FILE_ARRAY(pipeline, pipeline_fifo_full,
                                  PIPE_STATS_HW_FIFO);
 
+WL18XX_DEBUGFS_FWSTATS_FILE_ARRAY(diversity, num_of_packets_per_ant,
+                                 DIVERSITY_STATS_NUM_OF_ANT);
+WL18XX_DEBUGFS_FWSTATS_FILE(diversity, total_num_of_toggles, "%u");
+
 WL18XX_DEBUGFS_FWSTATS_FILE(thermal, irq_thr_low, "%u");
 WL18XX_DEBUGFS_FWSTATS_FILE(thermal, irq_thr_high, "%u");
 WL18XX_DEBUGFS_FWSTATS_FILE(thermal, tx_stop, "%u");
@@ -478,8 +477,6 @@ int wl18xx_debugfs_add_files(struct wl1271 *wl,
        DEBUGFS_FWSTATS_ADD(aggr_size, rx_size);
 
        DEBUGFS_FWSTATS_ADD(pipeline, hs_tx_stat_fifo_int);
-       DEBUGFS_FWSTATS_ADD(pipeline, tcp_tx_stat_fifo_int);
-       DEBUGFS_FWSTATS_ADD(pipeline, tcp_rx_stat_fifo_int);
        DEBUGFS_FWSTATS_ADD(pipeline, enc_tx_stat_fifo_int);
        DEBUGFS_FWSTATS_ADD(pipeline, enc_rx_stat_fifo_int);
        DEBUGFS_FWSTATS_ADD(pipeline, rx_complete_stat_fifo_int);
@@ -487,15 +484,15 @@ int wl18xx_debugfs_add_files(struct wl1271 *wl,
        DEBUGFS_FWSTATS_ADD(pipeline, post_proc_swi);
        DEBUGFS_FWSTATS_ADD(pipeline, sec_frag_swi);
        DEBUGFS_FWSTATS_ADD(pipeline, pre_to_defrag_swi);
-       DEBUGFS_FWSTATS_ADD(pipeline, defrag_to_csum_swi);
-       DEBUGFS_FWSTATS_ADD(pipeline, csum_to_rx_xfer_swi);
+       DEBUGFS_FWSTATS_ADD(pipeline, defrag_to_rx_xfer_swi);
        DEBUGFS_FWSTATS_ADD(pipeline, dec_packet_in);
        DEBUGFS_FWSTATS_ADD(pipeline, dec_packet_in_fifo_full);
        DEBUGFS_FWSTATS_ADD(pipeline, dec_packet_out);
-       DEBUGFS_FWSTATS_ADD(pipeline, cs_rx_packet_in);
-       DEBUGFS_FWSTATS_ADD(pipeline, cs_rx_packet_out);
        DEBUGFS_FWSTATS_ADD(pipeline, pipeline_fifo_full);
 
+       DEBUGFS_FWSTATS_ADD(diversity, num_of_packets_per_ant);
+       DEBUGFS_FWSTATS_ADD(diversity, total_num_of_toggles);
+
        DEBUGFS_FWSTATS_ADD(thermal, irq_thr_low);
        DEBUGFS_FWSTATS_ADD(thermal, irq_thr_high);
        DEBUGFS_FWSTATS_ADD(thermal, tx_stop);