1 /* 2 * Copyright (c) 2008-2011 Atheros Communications Inc. 3 * Copyright (c) 2011 Neratec Solutions AG 4 * 5 * Permission to use, copy, modify, and/or distribute this software for any 6 * purpose with or without fee is hereby granted, provided that the above 7 * copyright notice and this permission notice appear in all copies. 8 * 9 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 10 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 12 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 15 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16 */ 17 18 19 #ifndef ATH9K_DFS_DEBUG_H 20 #define ATH9K_DFS_DEBUG_H 21 22 #include "hw.h" 23 24 /** 25 * struct ath_dfs_stats - DFS Statistics per wiphy 26 * @pulses_total: pulses reported by HW 27 * @pulses_no_dfs: pulses wrongly reported as DFS 28 * @pulses_detected: pulses detected so far 29 * @datalen_discards: pulses discarded due to invalid datalen 30 * @rssi_discards: pulses discarded due to invalid RSSI 31 * @bwinfo_discards: pulses discarded due to invalid BW info 32 * @pri_phy_errors: pulses reported for primary channel 33 * @ext_phy_errors: pulses reported for extension channel 34 * @dc_phy_errors: pulses reported for primary + extension channel 35 * @pulses_processed: pulses forwarded to detector 36 * @radar_detected: radars detected 37 */ 38 struct ath_dfs_stats { 39 /* pulse stats */ 40 u32 pulses_total; 41 u32 pulses_no_dfs; 42 u32 pulses_detected; 43 u32 datalen_discards; 44 u32 rssi_discards; 45 u32 bwinfo_discards; 46 u32 pri_phy_errors; 47 u32 ext_phy_errors; 48 u32 dc_phy_errors; 49 /* pattern detection stats */ 50 u32 pulses_processed; 51 u32 radar_detected; 52 }; 53 54 #if defined(CONFIG_ATH9K_DFS_DEBUGFS) 55 56 #define DFS_STAT_INC(sc, c) (sc->debug.stats.dfs_stats.c++) 57 void ath9k_dfs_init_debug(struct ath_softc *sc); 58 59 extern struct ath_dfs_pool_stats global_dfs_pool_stats; 60 61 #else 62 63 #define DFS_STAT_INC(sc, c) do { } while (0) 64 static inline void ath9k_dfs_init_debug(struct ath_softc *sc) { } 65 66 #endif /* CONFIG_ATH9K_DFS_DEBUGFS */ 67 68 #endif /* ATH9K_DFS_DEBUG_H */ 69