1 /* -----------------------------------------------------------------------------
2  * Copyright (c) 2011 Ozmo Inc
3  * Released under the GNU General Public License Version 2 (GPLv2).
4  * ---------------------------------------------------------------------------*/
5 
6 #ifndef _OZDBG_H
7 #define _OZDBG_H
8 
9 #define OZ_WANT_DBG 0
10 #define OZ_WANT_VERBOSE_DBG 1
11 
12 #define OZ_DBG_ON		0x0
13 #define OZ_DBG_STREAM		0x1
14 #define OZ_DBG_URB		0x2
15 #define OZ_DBG_CTRL_DETAIL	0x4
16 #define OZ_DBG_HUB		0x8
17 #define OZ_DBG_RX_FRAMES	0x10
18 #define OZ_DBG_TX_FRAMES	0x20
19 
20 #define OZ_DEFAULT_DBG_MASK			\
21 	(					\
22 	/* OZ_DBG_STREAM | */			\
23 	/* OZ_DBG_URB | */			\
24 	/* OZ_DBG_CTRL_DETAIL | */		\
25 	OZ_DBG_HUB |				\
26 	/* OZ_DBG_RX_FRAMES | */		\
27 	/* OZ_DBG_TX_FRAMES | */		\
28 	0)
29 
30 extern unsigned int oz_dbg_mask;
31 
32 #define oz_want_dbg(mask)						\
33 	((OZ_WANT_DBG && (OZ_DBG_##mask == OZ_DBG_ON)) ||		\
34 	 (OZ_WANT_VERBOSE_DBG && (OZ_DBG_##mask & oz_dbg_mask)))
35 
36 #define oz_dbg(mask, fmt, ...)						\
37 do {									\
38 	if (oz_want_dbg(mask))						\
39 		pr_debug(fmt, ##__VA_ARGS__);				\
40 } while (0)
41 
42 #define oz_cdev_dbg(cdev, mask, fmt, ...)				\
43 do {									\
44 	if (oz_want_dbg(mask))						\
45 		netdev_dbg((cdev)->dev, fmt, ##__VA_ARGS__);		\
46 } while (0)
47 
48 #define oz_pd_dbg(pd, mask, fmt, ...)					\
49 do {									\
50 	if (oz_want_dbg(mask))						\
51 		pr_debug(fmt, ##__VA_ARGS__);				\
52 } while (0)
53 
54 #endif /* _OZDBG_H */
55