9 #include <linux/string.h>
21 #define DBG_TYPE_INITEXIT (1 << 0) // 1
22 #define DBG_TYPE_TX (1 << 1) // 2
23 #define DBG_TYPE_RX (1 << 2) // 4
24 #define DBG_TYPE_OTHERS (1 << 3) // 8
26 #define NUMTYPES 4 // careful!
35 #define MP_SEND (TX<<0)
36 #define NEXT_SEND (TX<<1)
37 #define TX_FIFO (TX<<2)
38 #define TX_CONTROL (TX<<3)
41 #define IP_ADDR (TX<<4)
42 #define ARP_REQ (TX<<5)
43 #define ARP_RESP (TX<<6)
46 #define TOKEN_COUNTS (TX<<8)
47 #define CHECK_TOKENS (TX<<9)
48 #define TX_PACKETS (TX<<10)
49 #define TIMER (TX<<11)
53 #define QUEUE_INDEX (QOS<<12)
54 #define IPV4_DBG (QOS<<13)
55 #define IPV6_DBG (QOS<<14)
56 #define PRUNE_QUEUE (QOS<<15)
57 #define SEND_QUEUE (QOS<<16)
60 #define TX_OSAL_DBG (TX<<17)
67 #define DRV_ENTRY (MP<<0)
68 #define MP_INIT (MP<<1)
69 #define READ_REG (MP<<3)
70 #define DISPATCH (MP<<2)
71 #define CLAIM_ADAP (MP<<4)
72 #define REG_IO_PORT (MP<<5)
73 #define INIT_DISP (MP<<6)
74 #define RX_INIT (MP<<7)
81 #define RX_DPC (RX<<0)
82 #define RX_CTRL (RX<<3)
83 #define RX_DATA (RX<<4)
84 #define MP_RETURN (RX<<1)
85 #define LINK_MSG (RX<<2)
96 #define MP_DPC (ISR<<0)
100 #define MP_HALT (HALT<<1)
101 #define CHECK_HANG (HALT<<2)
102 #define MP_RESET (HALT<<3)
103 #define MP_SHUTDOWN (HALT<<4)
107 #define MP_PNP (PNP<<5)
111 #define DUMP_INFO (MISC<<6)
112 #define CLASSIFY (MISC<<7)
113 #define LINK_UP_MSG (MISC<<8)
114 #define CP_CTRL_PKT (MISC<<9)
115 #define DUMP_CONTROL (MISC<<10)
116 #define LED_DUMP_INFO (MISC<<11)
119 #define CMHOST OTHERS
122 #define SERIAL (OTHERS<<12)
123 #define IDLE_MODE (OTHERS<<13)
125 #define WRM (OTHERS<<14)
126 #define RDM (OTHERS<<15)
129 #define PHS_SEND (OTHERS<<16)
130 #define PHS_RECEIVE (OTHERS<<17)
131 #define PHS_MODULE (OTHERS<<18)
133 #define INTF_INIT (OTHERS<<19)
134 #define INTF_ERR (OTHERS<<20)
135 #define INTF_WARN (OTHERS<<21)
136 #define INTF_NORM (OTHERS<<22)
138 #define IRP_COMPLETION (OTHERS<<23)
139 #define SF_DESCRIPTOR_CNTS (OTHERS<<24)
140 #define PHS_DISPATCH (OTHERS << 25)
141 #define OSAL_DBG (OTHERS << 26)
142 #define NVM_RW (OTHERS << 27)
144 #define HOST_MIBS (OTHERS << 28)
145 #define CONN_MSG (CMHOST << 29)
179 #define DBG_LVL_CURR (BCM_ALL)
180 #define DBG_LVL_ALL BCM_ALL
207 #define DBG_NO_FUNC_PRINT 1 << 31
208 #define DBG_LVL_BITMASK 0xFF
211 #define DBG_TYPE_PRINTK 3
213 #define BCM_DEBUG_PRINT(Adapter, Type, SubType, dbg_level, string, args...) \
215 if (DBG_TYPE_PRINTK == Type) \
216 pr_info("%s:" string, __func__, ##args); \
217 else if (Adapter && \
218 (dbg_level & DBG_LVL_BITMASK) <= Adapter->stDebugState.debug_level && \
219 (Type & Adapter->stDebugState.type) && \
220 (SubType & Adapter->stDebugState.subtype[Type])) { \
221 if (dbg_level & DBG_NO_FUNC_PRINT) \
222 printk(KERN_DEBUG string, ##args); \
224 printk(KERN_DEBUG "%s:" string, __func__, ##args); \
228 #define BCM_DEBUG_PRINT_BUFFER(Adapter, Type, SubType, dbg_level, buffer, bufferlen) do { \
229 if (DBG_TYPE_PRINTK == Type || \
231 (dbg_level & DBG_LVL_BITMASK) <= Adapter->stDebugState.debug_level && \
232 (Type & Adapter->stDebugState.type) && \
233 (SubType & Adapter->stDebugState.subtype[Type]))) { \
234 printk(KERN_DEBUG "%s:\n", __func__); \
235 print_hex_dump(KERN_DEBUG, " ", DUMP_PREFIX_OFFSET, \
236 16, 1, buffer, bufferlen, false); \
241 #define BCM_SHOW_DEBUG_BITMAP(Adapter) do { \
243 for (i=0; i<(NUMTYPES*2)+1; i++) { \
244 if ((i == 1) || (i == 2) || (i == 4) || (i == 8)) { \
247 BCM_DEBUG_PRINT (Adapter, DBG_TYPE_PRINTK, 0, 0, "subtype[%d] = 0x%08x\n", \
248 i, Adapter->stDebugState.subtype[i]); \