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 24struct ath_softc; 25 26/** 27 * struct ath_dfs_stats - DFS Statistics per wiphy 28 * @pulses_total: pulses reported by HW 29 * @pulses_no_dfs: pulses wrongly reported as DFS 30 * @pulses_detected: pulses detected so far 31 * @datalen_discards: pulses discarded due to invalid datalen 32 * @rssi_discards: pulses discarded due to invalid RSSI 33 * @bwinfo_discards: pulses discarded due to invalid BW info 34 * @pri_phy_errors: pulses reported for primary channel 35 * @ext_phy_errors: pulses reported for extension channel 36 * @dc_phy_errors: pulses reported for primary + extension channel 37 * @pulses_processed: pulses forwarded to detector 38 * @radar_detected: radars detected 39 */ 40struct ath_dfs_stats { 41 /* pulse stats */ 42 u32 pulses_total; 43 u32 pulses_no_dfs; 44 u32 pulses_detected; 45 u32 datalen_discards; 46 u32 rssi_discards; 47 u32 bwinfo_discards; 48 u32 pri_phy_errors; 49 u32 ext_phy_errors; 50 u32 dc_phy_errors; 51 /* pattern detection stats */ 52 u32 pulses_processed; 53 u32 radar_detected; 54}; 55 56#if defined(CONFIG_ATH9K_DFS_DEBUGFS) 57 58#define DFS_STAT_INC(sc, c) (sc->debug.stats.dfs_stats.c++) 59void ath9k_dfs_init_debug(struct ath_softc *sc); 60 61extern struct ath_dfs_pool_stats global_dfs_pool_stats; 62 63#else 64 65#define DFS_STAT_INC(sc, c) do { } while (0) 66static inline void ath9k_dfs_init_debug(struct ath_softc *sc) { } 67 68#endif /* CONFIG_ATH9K_DFS_DEBUGFS */ 69 70#endif /* ATH9K_DFS_DEBUG_H */ 71