rtlwifi: Create _rtl_dbg_trace function to reduce RT_TRACE code size
[cascardo/linux.git] / drivers / net / wireless / realtek / rtlwifi / debug.c
1 /******************************************************************************
2  *
3  * Copyright(c) 2009-2012  Realtek Corporation.
4  *
5  * This program is free software; you can redistribute it and/or modify it
6  * under the terms of version 2 of the GNU General Public License as
7  * published by the Free Software Foundation.
8  *
9  * This program is distributed in the hope that it will be useful, but WITHOUT
10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
12  * more details.
13  *
14  * The full GNU General Public License is included in this distribution in the
15  * file called LICENSE.
16  *
17  * Contact Information:
18  * wlanfae <wlanfae@realtek.com>
19  * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
20  * Hsinchu 300, Taiwan.
21  *
22  * Larry Finger <Larry.Finger@lwfinger.net>
23  *****************************************************************************/
24
25 #include "wifi.h"
26
27 #include <linux/moduleparam.h>
28
29 void rtl_dbgp_flag_init(struct ieee80211_hw *hw)
30 {
31         struct rtl_priv *rtlpriv = rtl_priv(hw);
32         u8 i;
33
34         rtlpriv->dbg.global_debugcomponents =
35             COMP_ERR | COMP_FW | COMP_INIT | COMP_RECV | COMP_SEND |
36             COMP_MLME | COMP_SCAN | COMP_INTR | COMP_LED | COMP_SEC |
37             COMP_BEACON | COMP_RATE | COMP_RXDESC | COMP_DIG | COMP_TXAGC |
38             COMP_POWER | COMP_POWER_TRACKING | COMP_BB_POWERSAVING | COMP_SWAS |
39             COMP_RF | COMP_TURBO | COMP_RATR | COMP_CMD |
40             COMP_EFUSE | COMP_QOS | COMP_MAC80211 | COMP_REGD | COMP_CHAN |
41             COMP_EASY_CONCURRENT | COMP_EFUSE | COMP_QOS | COMP_MAC80211 |
42             COMP_REGD | COMP_CHAN | COMP_BT_COEXIST;
43
44
45         for (i = 0; i < DBGP_TYPE_MAX; i++)
46                 rtlpriv->dbg.dbgp_type[i] = 0;
47
48         /*Init Debug flag enable condition */
49 }
50 EXPORT_SYMBOL_GPL(rtl_dbgp_flag_init);
51
52 #ifdef CONFIG_RTLWIFI_DEBUG
53 void _rtl_dbg_trace(struct rtl_priv *rtlpriv, int comp, int level,
54                     const char *modname, const char *fmt, ...)
55 {
56         if (unlikely((comp & rtlpriv->dbg.global_debugcomponents) &&
57                      (level <= rtlpriv->dbg.global_debuglevel))) {
58                 struct va_format vaf;
59                 va_list args;
60
61                 va_start(args, fmt);
62
63                 vaf.fmt = fmt;
64                 vaf.va = &args;
65
66                 printk(KERN_DEBUG "%s:%ps:<%lx-%x> %pV",
67                        modname, __builtin_return_address(0),
68                        in_interrupt(), in_atomic(),
69                        &vaf);
70
71                 va_end(args);
72         }
73 }
74 EXPORT_SYMBOL_GPL(_rtl_dbg_trace);
75 #endif