1/* 2 * Copyright (c) 2008-2009 Atheros Communications Inc. 3 * 4 * Permission to use, copy, modify, and/or distribute this software for any 5 * purpose with or without fee is hereby granted, provided that the above 6 * copyright notice and this permission notice appear in all copies. 7 * 8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 11 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 12 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 13 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 14 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15 */ 16 17#ifndef ATH_DEBUG_H 18#define ATH_DEBUG_H 19 20#include "ath.h" 21 22/** 23 * enum ath_debug_level - atheros wireless debug level 24 * 25 * @ATH_DBG_RESET: reset processing 26 * @ATH_DBG_QUEUE: hardware queue management 27 * @ATH_DBG_EEPROM: eeprom processing 28 * @ATH_DBG_CALIBRATE: periodic calibration 29 * @ATH_DBG_INTERRUPT: interrupt processing 30 * @ATH_DBG_REGULATORY: regulatory processing 31 * @ATH_DBG_ANI: adaptive noise immunitive processing 32 * @ATH_DBG_XMIT: basic xmit operation 33 * @ATH_DBG_BEACON: beacon handling 34 * @ATH_DBG_CONFIG: configuration of the hardware 35 * @ATH_DBG_FATAL: fatal errors, this is the default, DBG_DEFAULT 36 * @ATH_DBG_PS: power save processing 37 * @ATH_DBG_HWTIMER: hardware timer handling 38 * @ATH_DBG_BTCOEX: bluetooth coexistance 39 * @ATH_DBG_ANY: enable all debugging 40 * 41 * The debug level is used to control the amount and type of debugging output 42 * we want to see. Each driver has its own method for enabling debugging and 43 * modifying debug level states -- but this is typically done through a 44 * module parameter 'debug' along with a respective 'debug' debugfs file 45 * entry. 46 */ 47enum ATH_DEBUG { 48 ATH_DBG_RESET = 0x00000001, 49 ATH_DBG_QUEUE = 0x00000002, 50 ATH_DBG_EEPROM = 0x00000004, 51 ATH_DBG_CALIBRATE = 0x00000008, 52 ATH_DBG_INTERRUPT = 0x00000010, 53 ATH_DBG_REGULATORY = 0x00000020, 54 ATH_DBG_ANI = 0x00000040, 55 ATH_DBG_XMIT = 0x00000080, 56 ATH_DBG_BEACON = 0x00000100, 57 ATH_DBG_CONFIG = 0x00000200, 58 ATH_DBG_FATAL = 0x00000400, 59 ATH_DBG_PS = 0x00000800, 60 ATH_DBG_HWTIMER = 0x00001000, 61 ATH_DBG_BTCOEX = 0x00002000, 62 ATH_DBG_WMI = 0x00004000, 63 ATH_DBG_ANY = 0xffffffff 64}; 65 66#define ATH_DBG_DEFAULT (ATH_DBG_FATAL) 67 68#ifdef CONFIG_ATH_DEBUG 69void ath_print(struct ath_common *common, int dbg_mask, const char *fmt, ...) 70 __attribute__ ((format (printf, 3, 4))); 71#else 72static inline void __attribute__ ((format (printf, 3, 4))) 73ath_print(struct ath_common *common, int dbg_mask, const char *fmt, ...) 74{ 75} 76#endif /* CONFIG_ATH_DEBUG */ 77 78#endif /* ATH_DEBUG_H */ 79