debug.h 3.0 KB

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