linux/drivers/staging/rtlwifi/debug.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2/******************************************************************************
   3 *
   4 * Copyright(c) 2009-2012  Realtek Corporation.
   5 *
   6 * Contact Information:
   7 * wlanfae <wlanfae@realtek.com>
   8 * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
   9 * Hsinchu 300, Taiwan.
  10 *
  11 * Larry Finger <Larry.Finger@lwfinger.net>
  12 *****************************************************************************/
  13
  14#ifndef __RTL_DEBUG_H__
  15#define __RTL_DEBUG_H__
  16
  17/*--------------------------------------------------------------
  18 *                      Debug level
  19 *------------------------------------------------------------
  20 *
  21 *Fatal bug.
  22 *For example, Tx/Rx/IO locked up,
  23 *memory access violation,
  24 *resource allocation failed,
  25 *unexpected HW behavior, HW BUG
  26 *and so on.
  27 */
  28/*#define DBG_EMERG                     0 */
  29
  30/*Abnormal, rare, or unexpected cases.
  31 *For example, Packet/IO Ctl canceled,
  32 *device surprisingly removed and so on.
  33 */
  34#define DBG_WARNING                     2
  35
  36/*Normal case driver developer should
  37 *open, we can see link status like
  38 *assoc/AddBA/DHCP/adapter start and
  39 *so on basic and useful infromations.
  40 */
  41#define DBG_DMESG                       3
  42
  43/*Normal case with useful information
  44 *about current SW or HW state.
  45 *For example, Tx/Rx descriptor to fill,
  46 *Tx/Rx descriptor completed status,
  47 *SW protocol state change, dynamic
  48 *mechanism state change and so on.
  49 */
  50#define DBG_LOUD                        4
  51
  52/*Normal case with detail execution
  53 *flow or information.
  54 */
  55#define DBG_TRACE                       5
  56
  57/*--------------------------------------------------------------
  58 *              Define the rt_trace components
  59 *--------------------------------------------------------------
  60 */
  61#define COMP_ERR                        BIT(0)
  62#define COMP_FW                         BIT(1)
  63#define COMP_INIT                       BIT(2)  /*For init/deinit */
  64#define COMP_RECV                       BIT(3)  /*For Rx. */
  65#define COMP_SEND                       BIT(4)  /*For Tx. */
  66#define COMP_MLME                       BIT(5)  /*For MLME. */
  67#define COMP_SCAN                       BIT(6)  /*For Scan. */
  68#define COMP_INTR                       BIT(7)  /*For interrupt Related. */
  69#define COMP_LED                        BIT(8)  /*For LED. */
  70#define COMP_SEC                        BIT(9)  /*For sec. */
  71#define COMP_BEACON                     BIT(10) /*For beacon. */
  72#define COMP_RATE                       BIT(11) /*For rate. */
  73#define COMP_RXDESC                     BIT(12) /*For rx desc. */
  74#define COMP_DIG                        BIT(13) /*For DIG */
  75#define COMP_TXAGC                      BIT(14) /*For Tx power */
  76#define COMP_HIPWR                      BIT(15) /*For High Power Mechanism */
  77#define COMP_POWER                      BIT(16) /*For lps/ips/aspm. */
  78#define COMP_POWER_TRACKING     BIT(17) /*For TX POWER TRACKING */
  79#define COMP_BB_POWERSAVING     BIT(18)
  80#define COMP_SWAS                       BIT(19) /*For SW Antenna Switch */
  81#define COMP_RF                         BIT(20) /*For RF. */
  82#define COMP_TURBO                      BIT(21) /*For EDCA TURBO. */
  83#define COMP_RATR                       BIT(22)
  84#define COMP_CMD                        BIT(23)
  85#define COMP_EFUSE                      BIT(24)
  86#define COMP_QOS                        BIT(25)
  87#define COMP_MAC80211           BIT(26)
  88#define COMP_REGD                       BIT(27)
  89#define COMP_CHAN                       BIT(28)
  90#define COMP_USB                        BIT(29)
  91#define COMP_EASY_CONCURRENT    COMP_USB /* reuse of this bit is OK */
  92#define COMP_BT_COEXIST                 BIT(30)
  93#define COMP_IQK                        BIT(31)
  94#define COMP_TX_REPORT                  BIT_ULL(32)
  95#define COMP_HALMAC                     BIT_ULL(34)
  96#define COMP_PHYDM                      BIT_ULL(35)
  97
  98/*--------------------------------------------------------------
  99 *              Define the rt_print components
 100 *--------------------------------------------------------------
 101 */
 102/* Define EEPROM and EFUSE  check module bit*/
 103#define EEPROM_W                        BIT(0)
 104#define EFUSE_PG                        BIT(1)
 105#define EFUSE_READ_ALL                  BIT(2)
 106
 107/* Define init check for module bit*/
 108#define INIT_EEPROM                     BIT(0)
 109#define INIT_TXPOWER                    BIT(1)
 110#define INIT_IQK                        BIT(2)
 111#define INIT_RF                         BIT(3)
 112
 113/* Define PHY-BB/RF/MAC check module bit */
 114#define PHY_BBR                         BIT(0)
 115#define PHY_BBW                         BIT(1)
 116#define PHY_RFR                         BIT(2)
 117#define PHY_RFW                         BIT(3)
 118#define PHY_MACR                        BIT(4)
 119#define PHY_MACW                        BIT(5)
 120#define PHY_ALLR                        BIT(6)
 121#define PHY_ALLW                        BIT(7)
 122#define PHY_TXPWR                       BIT(8)
 123#define PHY_PWRDIFF                     BIT(9)
 124
 125/* Define Dynamic Mechanism check module bit --> FDM */
 126#define WA_IOT                          BIT(0)
 127#define DM_PWDB                         BIT(1)
 128#define DM_MONITOR                      BIT(2)
 129#define DM_DIG                          BIT(3)
 130#define DM_EDCA_TURBO                   BIT(4)
 131
 132#define DM_PWDB                         BIT(1)
 133
 134enum dbgp_flag_e {
 135        FQOS = 0,
 136        FTX = 1,
 137        FRX = 2,
 138        FSEC = 3,
 139        FMGNT = 4,
 140        FMLME = 5,
 141        FRESOURCE = 6,
 142        FBEACON = 7,
 143        FISR = 8,
 144        FPHY = 9,
 145        FMP = 10,
 146        FEEPROM = 11,
 147        FPWR = 12,
 148        FDM = 13,
 149        FDBGCTRL = 14,
 150        FC2H = 15,
 151        FBT = 16,
 152        FINIT = 17,
 153        FIOCTL = 18,
 154        DBGP_TYPE_MAX
 155};
 156
 157#ifdef CONFIG_RTLWIFI_DEBUG_ST
 158
 159struct rtl_priv;
 160
 161__printf(4, 5)
 162void _rtl_dbg_trace(struct rtl_priv *rtlpriv, u64 comp, int level,
 163                    const char *fmt, ...);
 164
 165__printf(4, 5)
 166void _rtl_dbg_print(struct rtl_priv *rtlpriv, u64 comp, int level,
 167                    const char *fmt, ...);
 168
 169void _rtl_dbg_print_data(struct rtl_priv *rtlpriv, u64 comp, int level,
 170                         const char *titlestring,
 171                         const void *hexdata, int hexdatalen);
 172
 173#define RT_TRACE(rtlpriv, comp, level, fmt, ...)                        \
 174        _rtl_dbg_trace(rtlpriv, comp, level,                            \
 175                       fmt, ##__VA_ARGS__)
 176
 177#define RTPRINT(rtlpriv, dbgtype, dbgflag, fmt, ...)                    \
 178        _rtl_dbg_print(rtlpriv, dbgtype, dbgflag, fmt, ##__VA_ARGS__)
 179
 180#define RT_PRINT_DATA(rtlpriv, _comp, _level, _titlestring, _hexdata,   \
 181                      _hexdatalen)                                      \
 182        _rtl_dbg_print_data(rtlpriv, _comp, _level,                     \
 183                            _titlestring, _hexdata, _hexdatalen)
 184
 185#else
 186
 187struct rtl_priv;
 188
 189__printf(4, 5)
 190static inline void RT_TRACE(struct rtl_priv *rtlpriv,
 191                            u64 comp, int level,
 192                            const char *fmt, ...)
 193{
 194}
 195
 196__printf(4, 5)
 197static inline void RTPRINT(struct rtl_priv *rtlpriv,
 198                           int dbgtype, int dbgflag,
 199                           const char *fmt, ...)
 200{
 201}
 202
 203static inline void RT_PRINT_DATA(struct rtl_priv *rtlpriv,
 204                                 u64 comp, int level,
 205                                 const char *titlestring,
 206                                 const void *hexdata, size_t hexdatalen)
 207{
 208}
 209
 210#endif
 211
 212#ifdef CONFIG_RTLWIFI_DEBUG_ST
 213void rtl_debug_add_one(struct ieee80211_hw *hw);
 214void rtl_debug_remove_one(struct ieee80211_hw *hw);
 215void rtl_debugfs_add_topdir(void);
 216void rtl_debugfs_remove_topdir(void);
 217#else
 218#define rtl_debug_add_one(hw)
 219#define rtl_debug_remove_one(hw)
 220#define rtl_debugfs_add_topdir()
 221#define rtl_debugfs_remove_topdir()
 222#endif
 223#endif
 224