129942bc1SZefir Kurtisi /* 229942bc1SZefir Kurtisi * Copyright (c) 2008-2011 Atheros Communications Inc. 329942bc1SZefir Kurtisi * Copyright (c) 2011 Neratec Solutions AG 429942bc1SZefir Kurtisi * 529942bc1SZefir Kurtisi * Permission to use, copy, modify, and/or distribute this software for any 629942bc1SZefir Kurtisi * purpose with or without fee is hereby granted, provided that the above 729942bc1SZefir Kurtisi * copyright notice and this permission notice appear in all copies. 829942bc1SZefir Kurtisi * 929942bc1SZefir Kurtisi * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 1029942bc1SZefir Kurtisi * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 1129942bc1SZefir Kurtisi * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 1229942bc1SZefir Kurtisi * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 1329942bc1SZefir Kurtisi * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 1429942bc1SZefir Kurtisi * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 1529942bc1SZefir Kurtisi * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 1629942bc1SZefir Kurtisi */ 1729942bc1SZefir Kurtisi 1829942bc1SZefir Kurtisi 19092fadb0SLuis R. Rodriguez #ifndef ATH9K_DFS_DEBUG_H 20092fadb0SLuis R. Rodriguez #define ATH9K_DFS_DEBUG_H 2129942bc1SZefir Kurtisi 2229942bc1SZefir Kurtisi #include "hw.h" 2329942bc1SZefir Kurtisi 24*9e495a26SSujith Manoharan struct ath_softc; 25*9e495a26SSujith Manoharan 2629942bc1SZefir Kurtisi /** 27b96f20b3SZefir Kurtisi * struct ath_dfs_stats - DFS Statistics per wiphy 28b96f20b3SZefir Kurtisi * @pulses_total: pulses reported by HW 29b96f20b3SZefir Kurtisi * @pulses_no_dfs: pulses wrongly reported as DFS 30b96f20b3SZefir Kurtisi * @pulses_detected: pulses detected so far 31b96f20b3SZefir Kurtisi * @datalen_discards: pulses discarded due to invalid datalen 32b96f20b3SZefir Kurtisi * @rssi_discards: pulses discarded due to invalid RSSI 33b96f20b3SZefir Kurtisi * @bwinfo_discards: pulses discarded due to invalid BW info 34b96f20b3SZefir Kurtisi * @pri_phy_errors: pulses reported for primary channel 35b96f20b3SZefir Kurtisi * @ext_phy_errors: pulses reported for extension channel 36b96f20b3SZefir Kurtisi * @dc_phy_errors: pulses reported for primary + extension channel 37b96f20b3SZefir Kurtisi * @pulses_processed: pulses forwarded to detector 38b96f20b3SZefir Kurtisi * @radar_detected: radars detected 3929942bc1SZefir Kurtisi */ 4029942bc1SZefir Kurtisi struct ath_dfs_stats { 41b96f20b3SZefir Kurtisi /* pulse stats */ 42b96f20b3SZefir Kurtisi u32 pulses_total; 43b96f20b3SZefir Kurtisi u32 pulses_no_dfs; 4429942bc1SZefir Kurtisi u32 pulses_detected; 4529942bc1SZefir Kurtisi u32 datalen_discards; 4629942bc1SZefir Kurtisi u32 rssi_discards; 4729942bc1SZefir Kurtisi u32 bwinfo_discards; 4829942bc1SZefir Kurtisi u32 pri_phy_errors; 4929942bc1SZefir Kurtisi u32 ext_phy_errors; 5029942bc1SZefir Kurtisi u32 dc_phy_errors; 51b96f20b3SZefir Kurtisi /* pattern detection stats */ 52b96f20b3SZefir Kurtisi u32 pulses_processed; 53b96f20b3SZefir Kurtisi u32 radar_detected; 5429942bc1SZefir Kurtisi }; 5529942bc1SZefir Kurtisi 5629942bc1SZefir Kurtisi #if defined(CONFIG_ATH9K_DFS_DEBUGFS) 5729942bc1SZefir Kurtisi 5829942bc1SZefir Kurtisi #define DFS_STAT_INC(sc, c) (sc->debug.stats.dfs_stats.c++) 5929942bc1SZefir Kurtisi void ath9k_dfs_init_debug(struct ath_softc *sc); 6029942bc1SZefir Kurtisi 61b96f20b3SZefir Kurtisi extern struct ath_dfs_pool_stats global_dfs_pool_stats; 62b96f20b3SZefir Kurtisi 6329942bc1SZefir Kurtisi #else 6429942bc1SZefir Kurtisi 6529942bc1SZefir Kurtisi #define DFS_STAT_INC(sc, c) do { } while (0) 6629942bc1SZefir Kurtisi static inline void ath9k_dfs_init_debug(struct ath_softc *sc) { } 6729942bc1SZefir Kurtisi 6829942bc1SZefir Kurtisi #endif /* CONFIG_ATH9K_DFS_DEBUGFS */ 6929942bc1SZefir Kurtisi 70092fadb0SLuis R. Rodriguez #endif /* ATH9K_DFS_DEBUG_H */ 71