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
76