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