Back to home page

OSCL-LXR

 
 

    


0001 /*
0002  * Copyright (c) 2008-2011 Atheros Communications Inc.
0003  * Copyright (c) 2011 Neratec Solutions AG
0004  *
0005  * Permission to use, copy, modify, and/or distribute this software for any
0006  * purpose with or without fee is hereby granted, provided that the above
0007  * copyright notice and this permission notice appear in all copies.
0008  *
0009  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
0010  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
0011  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
0012  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
0013  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
0014  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
0015  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
0016  */
0017 
0018 
0019 #ifndef ATH9K_DFS_DEBUG_H
0020 #define ATH9K_DFS_DEBUG_H
0021 
0022 #include "hw.h"
0023 
0024 struct ath_softc;
0025 
0026 /**
0027  * struct ath_dfs_stats - DFS Statistics per wiphy
0028  * @pulses_total:     pulses reported by HW
0029  * @pulses_no_dfs:    pulses wrongly reported as DFS
0030  * @pulses_detected:  pulses detected so far
0031  * @datalen_discards: pulses discarded due to invalid datalen
0032  * @rssi_discards:    pulses discarded due to invalid RSSI
0033  * @bwinfo_discards:  pulses discarded due to invalid BW info
0034  * @pri_phy_errors:   pulses reported for primary channel
0035  * @ext_phy_errors:   pulses reported for extension channel
0036  * @dc_phy_errors:    pulses reported for primary + extension channel
0037  * @pulses_processed: pulses forwarded to detector
0038  * @radar_detected:   radars detected
0039  */
0040 struct ath_dfs_stats {
0041     /* pulse stats */
0042     u32 pulses_total;
0043     u32 pulses_no_dfs;
0044     u32 pulses_detected;
0045     u32 datalen_discards;
0046     u32 rssi_discards;
0047     u32 bwinfo_discards;
0048     u32 pri_phy_errors;
0049     u32 ext_phy_errors;
0050     u32 dc_phy_errors;
0051     /* pattern detection stats */
0052     u32 pulses_processed;
0053     u32 radar_detected;
0054 };
0055 
0056 #if defined(CONFIG_ATH9K_DFS_DEBUGFS)
0057 
0058 #define DFS_STAT_INC(sc, c) (sc->debug.stats.dfs_stats.c++)
0059 void ath9k_dfs_init_debug(struct ath_softc *sc);
0060 
0061 extern struct ath_dfs_pool_stats global_dfs_pool_stats;
0062 
0063 #else
0064 
0065 #define DFS_STAT_INC(sc, c) do { } while (0)
0066 static inline void ath9k_dfs_init_debug(struct ath_softc *sc) { }
0067 
0068 #endif /* CONFIG_ATH9K_DFS_DEBUGFS */
0069 
0070 #endif /* ATH9K_DFS_DEBUG_H */