iwl-debug.h 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. /******************************************************************************
  2. *
  3. * Copyright(c) 2003 - 2007 Intel Corporation. All rights reserved.
  4. *
  5. * Portions of this file are derived from the ipw3945 project.
  6. *
  7. * This program is free software; you can redistribute it and/or modify it
  8. * under the terms of version 2 of the GNU General Public License as
  9. * published by the Free Software Foundation.
  10. *
  11. * This program is distributed in the hope that it will be useful, but WITHOUT
  12. * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13. * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
  14. * more details.
  15. *
  16. * You should have received a copy of the GNU General Public License along with
  17. * this program; if not, write to the Free Software Foundation, Inc.,
  18. * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
  19. *
  20. * The full GNU General Public License is included in this distribution in the
  21. * file called LICENSE.
  22. *
  23. * Contact Information:
  24. * James P. Ketrenos <ipw2100-admin@linux.intel.com>
  25. * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497
  26. *
  27. *****************************************************************************/
  28. #ifndef __iwl_debug_h__
  29. #define __iwl_debug_h__
  30. #ifdef CONFIG_IWLWIFI_DEBUG
  31. extern u32 iwl_debug_level;
  32. #define IWL_DEBUG(level, fmt, args...) \
  33. do { if (iwl_debug_level & (level)) \
  34. printk(KERN_ERR DRV_NAME": %c %s " fmt, \
  35. in_interrupt() ? 'I' : 'U', __FUNCTION__ , ## args); } while (0)
  36. #define IWL_DEBUG_LIMIT(level, fmt, args...) \
  37. do { if ((iwl_debug_level & (level)) && net_ratelimit()) \
  38. printk(KERN_ERR DRV_NAME": %c %s " fmt, \
  39. in_interrupt() ? 'I' : 'U', __FUNCTION__ , ## args); } while (0)
  40. #else
  41. static inline void IWL_DEBUG(int level, const char *fmt, ...)
  42. {
  43. }
  44. static inline void IWL_DEBUG_LIMIT(int level, const char *fmt, ...)
  45. {
  46. }
  47. #endif /* CONFIG_IWLWIFI_DEBUG */
  48. /*
  49. * To use the debug system;
  50. *
  51. * If you are defining a new debug classification, simply add it to the #define
  52. * list here in the form of:
  53. *
  54. * #define IWL_DL_xxxx VALUE
  55. *
  56. * shifting value to the left one bit from the previous entry. xxxx should be
  57. * the name of the classification (for example, WEP)
  58. *
  59. * You then need to either add a IWL_xxxx_DEBUG() macro definition for your
  60. * classification, or use IWL_DEBUG(IWL_DL_xxxx, ...) whenever you want
  61. * to send output to that classification.
  62. *
  63. * To add your debug level to the list of levels seen when you perform
  64. *
  65. * % cat /proc/net/iwl/debug_level
  66. *
  67. * you simply need to add your entry to the iwl_debug_levels array.
  68. *
  69. * If you do not see debug_level in /proc/net/iwl then you do not have
  70. * CONFIG_IWLWIFI_DEBUG defined in your kernel configuration
  71. *
  72. */
  73. #define IWL_DL_INFO (1<<0)
  74. #define IWL_DL_MAC80211 (1<<1)
  75. #define IWL_DL_HOST_COMMAND (1<<2)
  76. #define IWL_DL_STATE (1<<3)
  77. #define IWL_DL_RADIO (1<<7)
  78. #define IWL_DL_POWER (1<<8)
  79. #define IWL_DL_TEMP (1<<9)
  80. #define IWL_DL_NOTIF (1<<10)
  81. #define IWL_DL_SCAN (1<<11)
  82. #define IWL_DL_ASSOC (1<<12)
  83. #define IWL_DL_DROP (1<<13)
  84. #define IWL_DL_TXPOWER (1<<14)
  85. #define IWL_DL_AP (1<<15)
  86. #define IWL_DL_FW (1<<16)
  87. #define IWL_DL_RF_KILL (1<<17)
  88. #define IWL_DL_FW_ERRORS (1<<18)
  89. #define IWL_DL_LED (1<<19)
  90. #define IWL_DL_RATE (1<<20)
  91. #define IWL_DL_CALIB (1<<21)
  92. #define IWL_DL_WEP (1<<22)
  93. #define IWL_DL_TX (1<<23)
  94. #define IWL_DL_RX (1<<24)
  95. #define IWL_DL_ISR (1<<25)
  96. #define IWL_DL_HT (1<<26)
  97. #define IWL_DL_IO (1<<27)
  98. #define IWL_DL_11H (1<<28)
  99. #define IWL_DL_STATS (1<<29)
  100. #define IWL_DL_TX_REPLY (1<<30)
  101. #define IWL_DL_QOS (1<<31)
  102. #define IWL_ERROR(f, a...) printk(KERN_ERR DRV_NAME ": " f, ## a)
  103. #define IWL_WARNING(f, a...) printk(KERN_WARNING DRV_NAME ": " f, ## a)
  104. #define IWL_DEBUG_INFO(f, a...) IWL_DEBUG(IWL_DL_INFO, f, ## a)
  105. #define IWL_DEBUG_MAC80211(f, a...) IWL_DEBUG(IWL_DL_MAC80211, f, ## a)
  106. #define IWL_DEBUG_TEMP(f, a...) IWL_DEBUG(IWL_DL_TEMP, f, ## a)
  107. #define IWL_DEBUG_SCAN(f, a...) IWL_DEBUG(IWL_DL_SCAN, f, ## a)
  108. #define IWL_DEBUG_RX(f, a...) IWL_DEBUG(IWL_DL_RX, f, ## a)
  109. #define IWL_DEBUG_TX(f, a...) IWL_DEBUG(IWL_DL_TX, f, ## a)
  110. #define IWL_DEBUG_ISR(f, a...) IWL_DEBUG(IWL_DL_ISR, f, ## a)
  111. #define IWL_DEBUG_LED(f, a...) IWL_DEBUG(IWL_DL_LED, f, ## a)
  112. #define IWL_DEBUG_WEP(f, a...) IWL_DEBUG(IWL_DL_WEP, f, ## a)
  113. #define IWL_DEBUG_HC(f, a...) IWL_DEBUG(IWL_DL_HOST_COMMAND, f, ## a)
  114. #define IWL_DEBUG_CALIB(f, a...) IWL_DEBUG(IWL_DL_CALIB, f, ## a)
  115. #define IWL_DEBUG_FW(f, a...) IWL_DEBUG(IWL_DL_FW, f, ## a)
  116. #define IWL_DEBUG_RF_KILL(f, a...) IWL_DEBUG(IWL_DL_RF_KILL, f, ## a)
  117. #define IWL_DEBUG_DROP(f, a...) IWL_DEBUG(IWL_DL_DROP, f, ## a)
  118. #define IWL_DEBUG_DROP_LIMIT(f, a...) IWL_DEBUG_LIMIT(IWL_DL_DROP, f, ## a)
  119. #define IWL_DEBUG_AP(f, a...) IWL_DEBUG(IWL_DL_AP, f, ## a)
  120. #define IWL_DEBUG_TXPOWER(f, a...) IWL_DEBUG(IWL_DL_TXPOWER, f, ## a)
  121. #define IWL_DEBUG_IO(f, a...) IWL_DEBUG(IWL_DL_IO, f, ## a)
  122. #define IWL_DEBUG_RATE(f, a...) IWL_DEBUG(IWL_DL_RATE, f, ## a)
  123. #define IWL_DEBUG_RATE_LIMIT(f, a...) IWL_DEBUG_LIMIT(IWL_DL_RATE, f, ## a)
  124. #define IWL_DEBUG_NOTIF(f, a...) IWL_DEBUG(IWL_DL_NOTIF, f, ## a)
  125. #define IWL_DEBUG_ASSOC(f, a...) IWL_DEBUG(IWL_DL_ASSOC | IWL_DL_INFO, f, ## a)
  126. #define IWL_DEBUG_ASSOC_LIMIT(f, a...) \
  127. IWL_DEBUG_LIMIT(IWL_DL_ASSOC | IWL_DL_INFO, f, ## a)
  128. #define IWL_DEBUG_HT(f, a...) IWL_DEBUG(IWL_DL_HT, f, ## a)
  129. #define IWL_DEBUG_STATS(f, a...) IWL_DEBUG(IWL_DL_STATS, f, ## a)
  130. #define IWL_DEBUG_TX_REPLY(f, a...) IWL_DEBUG(IWL_DL_TX_REPLY, f, ## a)
  131. #define IWL_DEBUG_QOS(f, a...) IWL_DEBUG(IWL_DL_QOS, f, ## a)
  132. #define IWL_DEBUG_RADIO(f, a...) IWL_DEBUG(IWL_DL_RADIO, f, ## a)
  133. #define IWL_DEBUG_POWER(f, a...) IWL_DEBUG(IWL_DL_POWER, f, ## a)
  134. #define IWL_DEBUG_11H(f, a...) IWL_DEBUG(IWL_DL_11H, f, ## a)
  135. #endif