1*692ad7caSAdrian Chadd /*- 2*692ad7caSAdrian Chadd * Copyright (c) 2006,2007 3*692ad7caSAdrian Chadd * Damien Bergamini <damien.bergamini@free.fr> 4*692ad7caSAdrian Chadd * Benjamin Close <Benjamin.Close@clearchain.com> 5*692ad7caSAdrian Chadd * 6*692ad7caSAdrian Chadd * Permission to use, copy, modify, and distribute this software for any 7*692ad7caSAdrian Chadd * purpose with or without fee is hereby granted, provided that the above 8*692ad7caSAdrian Chadd * copyright notice and this permission notice appear in all copies. 9*692ad7caSAdrian Chadd * 10*692ad7caSAdrian Chadd * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 11*692ad7caSAdrian Chadd * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 12*692ad7caSAdrian Chadd * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 13*692ad7caSAdrian Chadd * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 14*692ad7caSAdrian Chadd * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 15*692ad7caSAdrian Chadd * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 16*692ad7caSAdrian Chadd * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 17*692ad7caSAdrian Chadd * 18*692ad7caSAdrian Chadd * $FreeBSD$ 19*692ad7caSAdrian Chadd */ 20*692ad7caSAdrian Chadd 21*692ad7caSAdrian Chadd #ifndef __IF_WPI_DEBUG_H__ 22*692ad7caSAdrian Chadd #define __IF_WPI_DEBUG_H__ 23*692ad7caSAdrian Chadd 24*692ad7caSAdrian Chadd #ifdef WPI_DEBUG 25*692ad7caSAdrian Chadd enum { 26*692ad7caSAdrian Chadd WPI_DEBUG_XMIT = 0x00000001, /* basic xmit operation */ 27*692ad7caSAdrian Chadd WPI_DEBUG_RECV = 0x00000002, /* basic recv operation */ 28*692ad7caSAdrian Chadd WPI_DEBUG_STATE = 0x00000004, /* 802.11 state transitions */ 29*692ad7caSAdrian Chadd WPI_DEBUG_HW = 0x00000008, /* Stage 1 (eeprom) debugging */ 30*692ad7caSAdrian Chadd WPI_DEBUG_RESET = 0x00000010, /* reset processing */ 31*692ad7caSAdrian Chadd WPI_DEBUG_FIRMWARE = 0x00000020, /* firmware(9) loading debug */ 32*692ad7caSAdrian Chadd WPI_DEBUG_BEACON = 0x00000040, /* beacon handling */ 33*692ad7caSAdrian Chadd WPI_DEBUG_WATCHDOG = 0x00000080, /* watchdog timeout */ 34*692ad7caSAdrian Chadd WPI_DEBUG_INTR = 0x00000100, /* ISR */ 35*692ad7caSAdrian Chadd WPI_DEBUG_SCAN = 0x00000200, /* Scan related operations */ 36*692ad7caSAdrian Chadd WPI_DEBUG_NOTIFY = 0x00000400, /* State 2 Notif intr debug */ 37*692ad7caSAdrian Chadd WPI_DEBUG_TEMP = 0x00000800, /* TXPower/Temp Calibration */ 38*692ad7caSAdrian Chadd WPI_DEBUG_CMD = 0x00001000, /* cmd submission */ 39*692ad7caSAdrian Chadd WPI_DEBUG_TRACE = 0x00002000, /* Print begin and start driver function */ 40*692ad7caSAdrian Chadd WPI_DEBUG_PWRSAVE = 0x00004000, /* Power save operations */ 41*692ad7caSAdrian Chadd WPI_DEBUG_EEPROM = 0x00008000, /* EEPROM info */ 42*692ad7caSAdrian Chadd WPI_DEBUG_KEY = 0x00010000, /* node key management */ 43*692ad7caSAdrian Chadd WPI_DEBUG_EDCA = 0x00020000, /* WME info */ 44*692ad7caSAdrian Chadd WPI_DEBUG_ANY = 0xffffffff 45*692ad7caSAdrian Chadd }; 46*692ad7caSAdrian Chadd 47*692ad7caSAdrian Chadd #define DPRINTF(sc, m, ...) do { \ 48*692ad7caSAdrian Chadd if (sc->sc_debug & (m)) \ 49*692ad7caSAdrian Chadd printf(__VA_ARGS__); \ 50*692ad7caSAdrian Chadd } while (0) 51*692ad7caSAdrian Chadd 52*692ad7caSAdrian Chadd #define TRACE_STR_BEGIN "->%s: begin\n" 53*692ad7caSAdrian Chadd #define TRACE_STR_DOING "->Doing %s\n" 54*692ad7caSAdrian Chadd #define TRACE_STR_END "->%s: end\n" 55*692ad7caSAdrian Chadd #define TRACE_STR_END_ERR "->%s: end in error\n" 56*692ad7caSAdrian Chadd 57*692ad7caSAdrian Chadd static const char *wpi_cmd_str(int cmd) 58*692ad7caSAdrian Chadd { 59*692ad7caSAdrian Chadd switch (cmd) { 60*692ad7caSAdrian Chadd /* Notifications */ 61*692ad7caSAdrian Chadd case WPI_UC_READY: return "UC_READY"; 62*692ad7caSAdrian Chadd case WPI_RX_DONE: return "RX_DONE"; 63*692ad7caSAdrian Chadd case WPI_START_SCAN: return "START_SCAN"; 64*692ad7caSAdrian Chadd case WPI_SCAN_RESULTS: return "SCAN_RESULTS"; 65*692ad7caSAdrian Chadd case WPI_STOP_SCAN: return "STOP_SCAN"; 66*692ad7caSAdrian Chadd case WPI_BEACON_SENT: return "BEACON_SENT"; 67*692ad7caSAdrian Chadd case WPI_RX_STATISTICS: return "RX_STATS"; 68*692ad7caSAdrian Chadd case WPI_BEACON_STATISTICS: return "BEACON_STATS"; 69*692ad7caSAdrian Chadd case WPI_STATE_CHANGED: return "STATE_CHANGED"; 70*692ad7caSAdrian Chadd case WPI_BEACON_MISSED: return "BEACON_MISSED"; 71*692ad7caSAdrian Chadd 72*692ad7caSAdrian Chadd /* Command notifications */ 73*692ad7caSAdrian Chadd case WPI_CMD_RXON: return "WPI_CMD_RXON"; 74*692ad7caSAdrian Chadd case WPI_CMD_RXON_ASSOC: return "WPI_CMD_RXON_ASSOC"; 75*692ad7caSAdrian Chadd case WPI_CMD_EDCA_PARAMS: return "WPI_CMD_EDCA_PARAMS"; 76*692ad7caSAdrian Chadd case WPI_CMD_TIMING: return "WPI_CMD_TIMING"; 77*692ad7caSAdrian Chadd case WPI_CMD_ADD_NODE: return "WPI_CMD_ADD_NODE"; 78*692ad7caSAdrian Chadd case WPI_CMD_DEL_NODE: return "WPI_CMD_DEL_NODE"; 79*692ad7caSAdrian Chadd case WPI_CMD_TX_DATA: return "WPI_CMD_TX_DATA"; 80*692ad7caSAdrian Chadd case WPI_CMD_MRR_SETUP: return "WPI_CMD_MRR_SETUP"; 81*692ad7caSAdrian Chadd case WPI_CMD_SET_LED: return "WPI_CMD_SET_LED"; 82*692ad7caSAdrian Chadd case WPI_CMD_SET_POWER_MODE: return "WPI_CMD_SET_POWER_MODE"; 83*692ad7caSAdrian Chadd case WPI_CMD_SCAN: return "WPI_CMD_SCAN"; 84*692ad7caSAdrian Chadd case WPI_CMD_SET_BEACON: return "WPI_CMD_SET_BEACON"; 85*692ad7caSAdrian Chadd case WPI_CMD_TXPOWER: return "WPI_CMD_TXPOWER"; 86*692ad7caSAdrian Chadd case WPI_CMD_BT_COEX: return "WPI_CMD_BT_COEX"; 87*692ad7caSAdrian Chadd 88*692ad7caSAdrian Chadd default: 89*692ad7caSAdrian Chadd KASSERT(1, ("Unknown Command: %d\n", cmd)); 90*692ad7caSAdrian Chadd return "UNKNOWN CMD"; 91*692ad7caSAdrian Chadd } 92*692ad7caSAdrian Chadd } 93*692ad7caSAdrian Chadd 94*692ad7caSAdrian Chadd #else 95*692ad7caSAdrian Chadd #define DPRINTF(sc, m, ...) do { (void) sc; } while (0) 96*692ad7caSAdrian Chadd #endif 97*692ad7caSAdrian Chadd 98*692ad7caSAdrian Chadd #endif /* __IF_WPI_DEBUG_H__ */ 99