Luciano Coelho | 0f4e312 | 2011-10-07 11:02:42 +0300 | [diff] [blame] | 1 | /* |
| 2 | * This file is part of wl12xx |
| 3 | * |
| 4 | * Copyright (C) 2011 Texas Instruments. All rights reserved. |
| 5 | * Copyright (C) 2008-2009 Nokia Corporation |
| 6 | * |
| 7 | * Contact: Luciano Coelho <coelho@ti.com> |
| 8 | * |
| 9 | * This program is free software; you can redistribute it and/or |
| 10 | * modify it under the terms of the GNU General Public License |
| 11 | * version 2 as published by the Free Software Foundation. |
| 12 | * |
| 13 | * This program is distributed in the hope that it will be useful, but |
| 14 | * WITHOUT ANY WARRANTY; without even the implied warranty of |
| 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| 16 | * General Public License for more details. |
| 17 | * |
| 18 | * You should have received a copy of the GNU General Public License |
| 19 | * along with this program; if not, write to the Free Software |
| 20 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA |
| 21 | * 02110-1301 USA |
| 22 | * |
| 23 | */ |
| 24 | |
| 25 | #ifndef __DEBUG_H__ |
| 26 | #define __DEBUG_H__ |
| 27 | |
| 28 | #include <linux/bitops.h> |
| 29 | #include <linux/printk.h> |
| 30 | |
| 31 | #define DRIVER_NAME "wl12xx" |
| 32 | #define DRIVER_PREFIX DRIVER_NAME ": " |
| 33 | |
| 34 | enum { |
| 35 | DEBUG_NONE = 0, |
| 36 | DEBUG_IRQ = BIT(0), |
| 37 | DEBUG_SPI = BIT(1), |
| 38 | DEBUG_BOOT = BIT(2), |
| 39 | DEBUG_MAILBOX = BIT(3), |
| 40 | DEBUG_TESTMODE = BIT(4), |
| 41 | DEBUG_EVENT = BIT(5), |
| 42 | DEBUG_TX = BIT(6), |
| 43 | DEBUG_RX = BIT(7), |
| 44 | DEBUG_SCAN = BIT(8), |
| 45 | DEBUG_CRYPT = BIT(9), |
| 46 | DEBUG_PSM = BIT(10), |
| 47 | DEBUG_MAC80211 = BIT(11), |
| 48 | DEBUG_CMD = BIT(12), |
| 49 | DEBUG_ACX = BIT(13), |
| 50 | DEBUG_SDIO = BIT(14), |
| 51 | DEBUG_FILTERS = BIT(15), |
| 52 | DEBUG_ADHOC = BIT(16), |
| 53 | DEBUG_AP = BIT(17), |
Luciano Coelho | 30c5dbd | 2012-01-18 14:53:22 +0200 | [diff] [blame] | 54 | DEBUG_PROBE = BIT(18), |
Luciano Coelho | 25a43d7 | 2011-11-21 20:37:14 +0200 | [diff] [blame] | 55 | DEBUG_IO = BIT(19), |
Luciano Coelho | 0f4e312 | 2011-10-07 11:02:42 +0300 | [diff] [blame] | 56 | DEBUG_MASTER = (DEBUG_ADHOC | DEBUG_AP), |
| 57 | DEBUG_ALL = ~0, |
| 58 | }; |
| 59 | |
| 60 | extern u32 wl12xx_debug_level; |
| 61 | |
| 62 | #define DEBUG_DUMP_LIMIT 1024 |
| 63 | |
| 64 | #define wl1271_error(fmt, arg...) \ |
| 65 | pr_err(DRIVER_PREFIX "ERROR " fmt "\n", ##arg) |
| 66 | |
| 67 | #define wl1271_warning(fmt, arg...) \ |
| 68 | pr_warning(DRIVER_PREFIX "WARNING " fmt "\n", ##arg) |
| 69 | |
| 70 | #define wl1271_notice(fmt, arg...) \ |
| 71 | pr_info(DRIVER_PREFIX fmt "\n", ##arg) |
| 72 | |
| 73 | #define wl1271_info(fmt, arg...) \ |
| 74 | pr_info(DRIVER_PREFIX fmt "\n", ##arg) |
| 75 | |
| 76 | #define wl1271_debug(level, fmt, arg...) \ |
| 77 | do { \ |
| 78 | if (level & wl12xx_debug_level) \ |
| 79 | pr_debug(DRIVER_PREFIX fmt "\n", ##arg); \ |
| 80 | } while (0) |
| 81 | |
| 82 | /* TODO: use pr_debug_hex_dump when it becomes available */ |
| 83 | #define wl1271_dump(level, prefix, buf, len) \ |
| 84 | do { \ |
| 85 | if (level & wl12xx_debug_level) \ |
| 86 | print_hex_dump(KERN_DEBUG, DRIVER_PREFIX prefix, \ |
| 87 | DUMP_PREFIX_OFFSET, 16, 1, \ |
| 88 | buf, \ |
| 89 | min_t(size_t, len, DEBUG_DUMP_LIMIT), \ |
| 90 | 0); \ |
| 91 | } while (0) |
| 92 | |
| 93 | #define wl1271_dump_ascii(level, prefix, buf, len) \ |
| 94 | do { \ |
| 95 | if (level & wl12xx_debug_level) \ |
| 96 | print_hex_dump(KERN_DEBUG, DRIVER_PREFIX prefix, \ |
| 97 | DUMP_PREFIX_OFFSET, 16, 1, \ |
| 98 | buf, \ |
| 99 | min_t(size_t, len, DEBUG_DUMP_LIMIT), \ |
| 100 | true); \ |
| 101 | } while (0) |
| 102 | |
| 103 | #endif /* __DEBUG_H__ */ |