1dd3f92deSKalle Valo /** 2dd3f92deSKalle Valo * This header file contains global constant/enum definitions, 3dd3f92deSKalle Valo * global variable declaration. 4dd3f92deSKalle Valo */ 5dd3f92deSKalle Valo #ifndef _LBS_DEB_DEFS_H_ 6dd3f92deSKalle Valo #define _LBS_DEB_DEFS_H_ 7dd3f92deSKalle Valo 8dd3f92deSKalle Valo #ifndef DRV_NAME 9dd3f92deSKalle Valo #define DRV_NAME "libertas_tf" 10dd3f92deSKalle Valo #endif 11dd3f92deSKalle Valo 12dd3f92deSKalle Valo #include <linux/spinlock.h> 13dd3f92deSKalle Valo 14dd3f92deSKalle Valo #ifdef CONFIG_LIBERTAS_THINFIRM_DEBUG 15dd3f92deSKalle Valo #define DEBUG 16dd3f92deSKalle Valo #define PROC_DEBUG 17dd3f92deSKalle Valo #endif 18dd3f92deSKalle Valo 19dd3f92deSKalle Valo #define LBTF_DEB_ENTER 0x00000001 20dd3f92deSKalle Valo #define LBTF_DEB_LEAVE 0x00000002 21dd3f92deSKalle Valo #define LBTF_DEB_MAIN 0x00000004 22dd3f92deSKalle Valo #define LBTF_DEB_NET 0x00000008 23dd3f92deSKalle Valo #define LBTF_DEB_MESH 0x00000010 24dd3f92deSKalle Valo #define LBTF_DEB_WEXT 0x00000020 25dd3f92deSKalle Valo #define LBTF_DEB_IOCTL 0x00000040 26dd3f92deSKalle Valo #define LBTF_DEB_SCAN 0x00000080 27dd3f92deSKalle Valo #define LBTF_DEB_ASSOC 0x00000100 28dd3f92deSKalle Valo #define LBTF_DEB_JOIN 0x00000200 29dd3f92deSKalle Valo #define LBTF_DEB_11D 0x00000400 30dd3f92deSKalle Valo #define LBTF_DEB_DEBUGFS 0x00000800 31dd3f92deSKalle Valo #define LBTF_DEB_ETHTOOL 0x00001000 32dd3f92deSKalle Valo #define LBTF_DEB_HOST 0x00002000 33dd3f92deSKalle Valo #define LBTF_DEB_CMD 0x00004000 34dd3f92deSKalle Valo #define LBTF_DEB_RX 0x00008000 35dd3f92deSKalle Valo #define LBTF_DEB_TX 0x00010000 36dd3f92deSKalle Valo #define LBTF_DEB_USB 0x00020000 37dd3f92deSKalle Valo #define LBTF_DEB_CS 0x00040000 38dd3f92deSKalle Valo #define LBTF_DEB_FW 0x00080000 39dd3f92deSKalle Valo #define LBTF_DEB_THREAD 0x00100000 40dd3f92deSKalle Valo #define LBTF_DEB_HEX 0x00200000 41dd3f92deSKalle Valo #define LBTF_DEB_SDIO 0x00400000 42dd3f92deSKalle Valo #define LBTF_DEB_MACOPS 0x00800000 43dd3f92deSKalle Valo 44dd3f92deSKalle Valo extern unsigned int lbtf_debug; 45dd3f92deSKalle Valo 46dd3f92deSKalle Valo 47dd3f92deSKalle Valo #ifdef DEBUG 48dd3f92deSKalle Valo #define LBTF_DEB_LL(grp, grpnam, fmt, args...) \ 49dd3f92deSKalle Valo do { if ((lbtf_debug & (grp)) == (grp)) \ 50dd3f92deSKalle Valo printk(KERN_DEBUG DRV_NAME grpnam "%s: " fmt, \ 51dd3f92deSKalle Valo in_interrupt() ? " (INT)" : "", ## args); } while (0) 52dd3f92deSKalle Valo #else 53dd3f92deSKalle Valo #define LBTF_DEB_LL(grp, grpnam, fmt, args...) do {} while (0) 54dd3f92deSKalle Valo #endif 55dd3f92deSKalle Valo 56dd3f92deSKalle Valo #define lbtf_deb_enter(grp) \ 57dd3f92deSKalle Valo LBTF_DEB_LL(grp | LBTF_DEB_ENTER, " enter", "%s()\n", __func__); 58dd3f92deSKalle Valo #define lbtf_deb_enter_args(grp, fmt, args...) \ 59dd3f92deSKalle Valo LBTF_DEB_LL(grp | LBTF_DEB_ENTER, " enter", "%s(" fmt ")\n", __func__, ## args); 60dd3f92deSKalle Valo #define lbtf_deb_leave(grp) \ 61dd3f92deSKalle Valo LBTF_DEB_LL(grp | LBTF_DEB_LEAVE, " leave", "%s()\n", __func__); 62dd3f92deSKalle Valo #define lbtf_deb_leave_args(grp, fmt, args...) \ 63dd3f92deSKalle Valo LBTF_DEB_LL(grp | LBTF_DEB_LEAVE, " leave", "%s(), " fmt "\n", \ 64dd3f92deSKalle Valo __func__, ##args); 65dd3f92deSKalle Valo #define lbtf_deb_main(fmt, args...) LBTF_DEB_LL(LBTF_DEB_MAIN, " main", fmt, ##args) 66dd3f92deSKalle Valo #define lbtf_deb_net(fmt, args...) LBTF_DEB_LL(LBTF_DEB_NET, " net", fmt, ##args) 67dd3f92deSKalle Valo #define lbtf_deb_mesh(fmt, args...) LBTF_DEB_LL(LBTF_DEB_MESH, " mesh", fmt, ##args) 68dd3f92deSKalle Valo #define lbtf_deb_wext(fmt, args...) LBTF_DEB_LL(LBTF_DEB_WEXT, " wext", fmt, ##args) 69dd3f92deSKalle Valo #define lbtf_deb_ioctl(fmt, args...) LBTF_DEB_LL(LBTF_DEB_IOCTL, " ioctl", fmt, ##args) 70dd3f92deSKalle Valo #define lbtf_deb_scan(fmt, args...) LBTF_DEB_LL(LBTF_DEB_SCAN, " scan", fmt, ##args) 71dd3f92deSKalle Valo #define lbtf_deb_assoc(fmt, args...) LBTF_DEB_LL(LBTF_DEB_ASSOC, " assoc", fmt, ##args) 72dd3f92deSKalle Valo #define lbtf_deb_join(fmt, args...) LBTF_DEB_LL(LBTF_DEB_JOIN, " join", fmt, ##args) 73dd3f92deSKalle Valo #define lbtf_deb_11d(fmt, args...) LBTF_DEB_LL(LBTF_DEB_11D, " 11d", fmt, ##args) 74dd3f92deSKalle Valo #define lbtf_deb_debugfs(fmt, args...) LBTF_DEB_LL(LBTF_DEB_DEBUGFS, " debugfs", fmt, ##args) 75dd3f92deSKalle Valo #define lbtf_deb_ethtool(fmt, args...) LBTF_DEB_LL(LBTF_DEB_ETHTOOL, " ethtool", fmt, ##args) 76dd3f92deSKalle Valo #define lbtf_deb_host(fmt, args...) LBTF_DEB_LL(LBTF_DEB_HOST, " host", fmt, ##args) 77dd3f92deSKalle Valo #define lbtf_deb_cmd(fmt, args...) LBTF_DEB_LL(LBTF_DEB_CMD, " cmd", fmt, ##args) 78dd3f92deSKalle Valo #define lbtf_deb_rx(fmt, args...) LBTF_DEB_LL(LBTF_DEB_RX, " rx", fmt, ##args) 79dd3f92deSKalle Valo #define lbtf_deb_tx(fmt, args...) LBTF_DEB_LL(LBTF_DEB_TX, " tx", fmt, ##args) 80dd3f92deSKalle Valo #define lbtf_deb_fw(fmt, args...) LBTF_DEB_LL(LBTF_DEB_FW, " fw", fmt, ##args) 81dd3f92deSKalle Valo #define lbtf_deb_usb(fmt, args...) LBTF_DEB_LL(LBTF_DEB_USB, " usb", fmt, ##args) 82dd3f92deSKalle Valo #define lbtf_deb_usbd(dev, fmt, args...) LBTF_DEB_LL(LBTF_DEB_USB, " usbd", "%s:" fmt, dev_name(dev), ##args) 83dd3f92deSKalle Valo #define lbtf_deb_cs(fmt, args...) LBTF_DEB_LL(LBTF_DEB_CS, " cs", fmt, ##args) 84dd3f92deSKalle Valo #define lbtf_deb_thread(fmt, args...) LBTF_DEB_LL(LBTF_DEB_THREAD, " thread", fmt, ##args) 85dd3f92deSKalle Valo #define lbtf_deb_sdio(fmt, args...) LBTF_DEB_LL(LBTF_DEB_SDIO, " thread", fmt, ##args) 86dd3f92deSKalle Valo #define lbtf_deb_macops(fmt, args...) LBTF_DEB_LL(LBTF_DEB_MACOPS, " thread", fmt, ##args) 87dd3f92deSKalle Valo 88dd3f92deSKalle Valo #ifdef DEBUG 89dd3f92deSKalle Valo static inline void lbtf_deb_hex(unsigned int grp, const char *prompt, u8 *buf, int len) 90dd3f92deSKalle Valo { 91dd3f92deSKalle Valo char newprompt[32]; 92dd3f92deSKalle Valo 93dd3f92deSKalle Valo if (len && 94dd3f92deSKalle Valo (lbtf_debug & LBTF_DEB_HEX) && 95dd3f92deSKalle Valo (lbtf_debug & grp)) { 96dd3f92deSKalle Valo snprintf(newprompt, sizeof(newprompt), DRV_NAME " %s: ", prompt); 97dd3f92deSKalle Valo print_hex_dump_bytes(prompt, DUMP_PREFIX_NONE, buf, len); 98dd3f92deSKalle Valo } 99dd3f92deSKalle Valo } 100dd3f92deSKalle Valo #else 101dd3f92deSKalle Valo #define lbtf_deb_hex(grp, prompt, buf, len) do {} while (0) 102dd3f92deSKalle Valo #endif 103dd3f92deSKalle Valo 104dd3f92deSKalle Valo #endif 105