| 1 |
|
| 2 | |
| 3 | * This file is part of wl12xx
|
| 4 | *
|
| 5 | * Copyright (C) 2011 Texas Instruments. All rights reserved.
|
| 6 | * Copyright (C) 2008-2009 Nokia Corporation
|
| 7 | *
|
| 8 | * Contact: Luciano Coelho <[email protected]>
|
| 9 |
|
| 10 |
|
| 11 | #ifndef __DEBUG_H__
|
| 12 | #define __DEBUG_H__
|
| 13 |
|
| 14 | #include <linux/bitops.h>
|
| 15 | #include <linux/printk.h>
|
| 16 |
|
| 17 | #define DRIVER_NAME "wlcore"
|
| 18 | #define DRIVER_PREFIX DRIVER_NAME ": "
|
| 19 |
|
| 20 | enum {
|
| 21 | DEBUG_NONE = 0,
|
| 22 | DEBUG_IRQ = BIT(0),
|
| 23 | DEBUG_SPI = BIT(1),
|
| 24 | DEBUG_BOOT = BIT(2),
|
| 25 | DEBUG_MAILBOX = BIT(3),
|
| 26 | DEBUG_TESTMODE = BIT(4),
|
| 27 | DEBUG_EVENT = BIT(5),
|
| 28 | DEBUG_TX = BIT(6),
|
| 29 | DEBUG_RX = BIT(7),
|
| 30 | DEBUG_SCAN = BIT(8),
|
| 31 | DEBUG_CRYPT = BIT(9),
|
| 32 | DEBUG_PSM = BIT(10),
|
| 33 | DEBUG_MAC80211 = BIT(11),
|
| 34 | DEBUG_CMD = BIT(12),
|
| 35 | DEBUG_ACX = BIT(13),
|
| 36 | DEBUG_SDIO = BIT(14),
|
| 37 | DEBUG_FILTERS = BIT(15),
|
| 38 | DEBUG_ADHOC = BIT(16),
|
| 39 | DEBUG_AP = BIT(17),
|
| 40 | DEBUG_PROBE = BIT(18),
|
| 41 | DEBUG_IO = BIT(19),
|
| 42 | DEBUG_MASTER = (DEBUG_ADHOC | DEBUG_AP),
|
| 43 | DEBUG_ALL = ~0,
|
| 44 | };
|
| 45 |
|
| 46 | extern u32 wl12xx_debug_level;
|
| 47 |
|
| 48 | #define DEBUG_DUMP_LIMIT 1024
|
| 49 |
|
| 50 | #define wl1271_error(fmt, arg...) \
|
| 51 | pr_err(DRIVER_PREFIX "ERROR " fmt "\n", ##arg)
|
| 52 |
|
| 53 | #define wl1271_warning(fmt, arg...) \
|
| 54 | pr_warn(DRIVER_PREFIX "WARNING " fmt "\n", ##arg)
|
| 55 |
|
| 56 | #define wl1271_notice(fmt, arg...) \
|
| 57 | pr_info(DRIVER_PREFIX fmt "\n", ##arg)
|
| 58 |
|
| 59 | #define wl1271_info(fmt, arg...) \
|
| 60 | pr_info(DRIVER_PREFIX fmt "\n", ##arg)
|
| 61 |
|
| 62 |
|
| 63 | #if defined(CONFIG_DYNAMIC_DEBUG)
|
| 64 | #define wl1271_debug(level, fmt, arg...) \
|
| 65 | do { \
|
| 66 | if (unlikely(level & wl12xx_debug_level)) \
|
| 67 | dynamic_pr_debug(DRIVER_PREFIX fmt "\n", ##arg); \
|
| 68 | } while (0)
|
| 69 | #else
|
| 70 | #define wl1271_debug(level, fmt, arg...) \
|
| 71 | do { \
|
| 72 | if (unlikely(level & wl12xx_debug_level)) \
|
| 73 | printk(KERN_DEBUG pr_fmt(DRIVER_PREFIX fmt "\n"), \
|
| 74 | ##arg); \
|
| 75 | } while (0)
|
| 76 | #endif
|
| 77 |
|
| 78 | #define wl1271_dump(level, prefix, buf, len) \
|
| 79 | do { \
|
| 80 | if (level & wl12xx_debug_level) \
|
| 81 | print_hex_dump_debug(DRIVER_PREFIX prefix, \
|
| 82 | DUMP_PREFIX_OFFSET, 16, 1, \
|
| 83 | buf, \
|
| 84 | min_t(size_t, len, DEBUG_DUMP_LIMIT), \
|
| 85 | 0); \
|
| 86 | } while (0)
|
| 87 |
|
| 88 | #define wl1271_dump_ascii(level, prefix, buf, len) \
|
| 89 | do { \
|
| 90 | if (level & wl12xx_debug_level) \
|
| 91 | print_hex_dump_debug(DRIVER_PREFIX prefix, \
|
| 92 | DUMP_PREFIX_OFFSET, 16, 1, \
|
| 93 | buf, \
|
| 94 | min_t(size_t, len, DEBUG_DUMP_LIMIT), \
|
| 95 | true); \
|
| 96 | } while (0)
|
| 97 |
|
| 98 | #endif
|