10c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger/****************************************************************************** 20c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger * 3a8d760668eebc98915383481cb3d9eaf74c2a615Larry Finger * Copyright(c) 2009-2012 Realtek Corporation. 40c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger * 5f3a97e93814aeac3f13e857a0071726acc9bd626Larry Finger * This program is free software; you can redistribute it and/or modify it 60c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger * under the terms of version 2 of the GNU General Public License as 70c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger * published by the Free Software Foundation. 80c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger * 9f3a97e93814aeac3f13e857a0071726acc9bd626Larry Finger * This program is distributed in the hope that it will be useful, but WITHOUT 100c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 110c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 120c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger * more details. 130c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger * 14f3a97e93814aeac3f13e857a0071726acc9bd626Larry Finger * The full GNU General Public License is included in this distribution in the 150c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger * file called LICENSE. 160c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger * 170c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger * Contact Information: 180c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger * wlanfae <wlanfae@realtek.com> 190c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, 200c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger * Hsinchu 300, Taiwan. 210c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger * 220c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger * Larry Finger <Larry.Finger@lwfinger.net> 230c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger *****************************************************************************/ 240c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger 250c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#ifndef __RTL_DEBUG_H__ 260c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define __RTL_DEBUG_H__ 270c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger 280c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger/*-------------------------------------------------------------- 290c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger Debug level 300c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger--------------------------------------------------------------*/ 310c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger/* 320c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger *Fatal bug. 330c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger *For example, Tx/Rx/IO locked up, 340c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger *memory access violation, 350c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger *resource allocation failed, 360c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger *unexpected HW behavior, HW BUG 370c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger *and so on. 380c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger */ 390c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define DBG_EMERG 0 400c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger 410c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger/* 420c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger *Abnormal, rare, or unexpeted cases. 430c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger *For example, Packet/IO Ctl canceled, 440c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger *device suprisely unremoved and so on. 450c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger */ 460c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define DBG_WARNING 2 470c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger 480c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger/* 490c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger *Normal case driver developer should 500c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger *open, we can see link status like 510c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger *assoc/AddBA/DHCP/adapter start and 520c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger *so on basic and useful infromations. 530c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger */ 540c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define DBG_DMESG 3 550c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger 560c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger/* 570c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger *Normal case with useful information 580c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger *about current SW or HW state. 590c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger *For example, Tx/Rx descriptor to fill, 600c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger *Tx/Rx descriptor completed status, 610c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger *SW protocol state change, dynamic 620c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger *mechanism state change and so on. 630c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger */ 640c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define DBG_LOUD 4 650c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger 660c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger/* 670c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger *Normal case with detail execution 680c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger *flow or information. 690c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger */ 700c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define DBG_TRACE 5 710c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger 720c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger/*-------------------------------------------------------------- 730c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger Define the rt_trace components 740c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger--------------------------------------------------------------*/ 750c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define COMP_ERR BIT(0) 760c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define COMP_FW BIT(1) 770c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define COMP_INIT BIT(2) /*For init/deinit */ 780c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define COMP_RECV BIT(3) /*For Rx. */ 790c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define COMP_SEND BIT(4) /*For Tx. */ 800c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define COMP_MLME BIT(5) /*For MLME. */ 810c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define COMP_SCAN BIT(6) /*For Scan. */ 820c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define COMP_INTR BIT(7) /*For interrupt Related. */ 830c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define COMP_LED BIT(8) /*For LED. */ 840c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define COMP_SEC BIT(9) /*For sec. */ 850c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define COMP_BEACON BIT(10) /*For beacon. */ 860c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define COMP_RATE BIT(11) /*For rate. */ 870c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define COMP_RXDESC BIT(12) /*For rx desc. */ 880c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define COMP_DIG BIT(13) /*For DIG */ 890c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define COMP_TXAGC BIT(14) /*For Tx power */ 900c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define COMP_HIPWR BIT(15) /*For High Power Mechanism */ 910c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define COMP_POWER BIT(16) /*For lps/ips/aspm. */ 920c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define COMP_POWER_TRACKING BIT(17) /*For TX POWER TRACKING */ 930c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define COMP_BB_POWERSAVING BIT(18) 940c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define COMP_SWAS BIT(19) /*For SW Antenna Switch */ 950c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define COMP_RF BIT(20) /*For RF. */ 960c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define COMP_TURBO BIT(21) /*For EDCA TURBO. */ 970c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define COMP_RATR BIT(22) 980c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define COMP_CMD BIT(23) 990c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define COMP_EFUSE BIT(24) 1000c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define COMP_QOS BIT(25) 1010c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define COMP_MAC80211 BIT(26) 1020c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define COMP_REGD BIT(27) 1030c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define COMP_CHAN BIT(28) 10462e63975f47fcc0ebcaca04669098fe3ca7b20a2Larry Finger#define COMP_USB BIT(29) 105a29059359dea80065559cd4d56149cbe10350cf9Larry Finger#define COMP_EASY_CONCURRENT COMP_USB /* reuse of this bit is OK */ 106a29059359dea80065559cd4d56149cbe10350cf9Larry Finger#define COMP_BT_COEXIST BIT(30) 10721e4b0726dc671c423e2dc9a85364716219c4502Larry Finger#define COMP_IQK BIT(31) 1080c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger 1090c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger/*-------------------------------------------------------------- 1100c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger Define the rt_print components 1110c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger--------------------------------------------------------------*/ 1120c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger/* Define EEPROM and EFUSE check module bit*/ 1130c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define EEPROM_W BIT(0) 1140c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define EFUSE_PG BIT(1) 115e6deaf810cc4b6437d55179660776e131ac059dfLarry Finger#define EFUSE_READ_ALL BIT(2) 1160c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger 1170c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger/* Define init check for module bit*/ 1180c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define INIT_EEPROM BIT(0) 119e6deaf810cc4b6437d55179660776e131ac059dfLarry Finger#define INIT_TXPOWER BIT(1) 1200c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define INIT_IQK BIT(2) 1210c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define INIT_RF BIT(3) 1220c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger 1230c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger/* Define PHY-BB/RF/MAC check module bit */ 1240c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define PHY_BBR BIT(0) 1250c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define PHY_BBW BIT(1) 1260c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define PHY_RFR BIT(2) 1270c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define PHY_RFW BIT(3) 1280c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define PHY_MACR BIT(4) 1290c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define PHY_MACW BIT(5) 1300c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define PHY_ALLR BIT(6) 1310c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define PHY_ALLW BIT(7) 1320c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define PHY_TXPWR BIT(8) 1330c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#define PHY_PWRDIFF BIT(9) 1340c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger 13526634c4b1868323f49f8cd24c3493b57819867fdLarry Finger/* Define Dynamic Mechanism check module bit --> FDM */ 13626634c4b1868323f49f8cd24c3493b57819867fdLarry Finger#define WA_IOT BIT(0) 13726634c4b1868323f49f8cd24c3493b57819867fdLarry Finger#define DM_PWDB BIT(1) 13826634c4b1868323f49f8cd24c3493b57819867fdLarry Finger#define DM_MONITOR BIT(2) 13926634c4b1868323f49f8cd24c3493b57819867fdLarry Finger#define DM_DIG BIT(3) 14026634c4b1868323f49f8cd24c3493b57819867fdLarry Finger#define DM_EDCA_TURBO BIT(4) 14126634c4b1868323f49f8cd24c3493b57819867fdLarry Finger 142e6deaf810cc4b6437d55179660776e131ac059dfLarry Finger#define DM_PWDB BIT(1) 143e6deaf810cc4b6437d55179660776e131ac059dfLarry Finger 1440c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Fingerenum dbgp_flag_e { 1450c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger FQOS = 0, 1460c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger FTX = 1, 1470c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger FRX = 2, 1480c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger FSEC = 3, 1490c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger FMGNT = 4, 1500c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger FMLME = 5, 1510c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger FRESOURCE = 6, 1520c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger FBEACON = 7, 1530c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger FISR = 8, 1540c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger FPHY = 9, 1550c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger FMP = 10, 1560c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger FEEPROM = 11, 1570c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger FPWR = 12, 1580c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger FDM = 13, 1590c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger FDBGCtrl = 14, 1600c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger FC2H = 15, 1610c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger FBT = 16, 1620c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger FINIT = 17, 1630c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger FIOCTL = 18, 1640c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger DBGP_TYPE_MAX 1650c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger}; 1660c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger 167481b9606ec7276401c7f746fe37873855c49d1b8Joe Perches#ifdef CONFIG_RTLWIFI_DEBUG 168481b9606ec7276401c7f746fe37873855c49d1b8Joe Perches 1699d833ed752e91c71792dd8ebfd0f865e6a568a37Joe Perches#define RT_ASSERT(_exp, fmt, ...) \ 170884dd24499df823f5c167223c7ae93bd764e2e4fJoe Perchesdo { \ 171884dd24499df823f5c167223c7ae93bd764e2e4fJoe Perches if (!(_exp)) { \ 1729d833ed752e91c71792dd8ebfd0f865e6a568a37Joe Perches printk(KERN_DEBUG KBUILD_MODNAME ":%s(): " fmt, \ 1739d833ed752e91c71792dd8ebfd0f865e6a568a37Joe Perches __func__, ##__VA_ARGS__); \ 174884dd24499df823f5c167223c7ae93bd764e2e4fJoe Perches } \ 175884dd24499df823f5c167223c7ae93bd764e2e4fJoe Perches} while (0) 176884dd24499df823f5c167223c7ae93bd764e2e4fJoe Perches 177f30d7507a8116e2099a9135c873411db8c0a3dc6Joe Perches#define RT_TRACE(rtlpriv, comp, level, fmt, ...) \ 178884dd24499df823f5c167223c7ae93bd764e2e4fJoe Perchesdo { \ 179884dd24499df823f5c167223c7ae93bd764e2e4fJoe Perches if (unlikely(((comp) & rtlpriv->dbg.global_debugcomponents) && \ 180884dd24499df823f5c167223c7ae93bd764e2e4fJoe Perches ((level) <= rtlpriv->dbg.global_debuglevel))) { \ 181f56e7eb4dd3124d53a5200ff093bc6bcbae671e9Joe Perches printk(KERN_DEBUG KBUILD_MODNAME ":%s():<%lx-%x> " fmt, \ 182f56e7eb4dd3124d53a5200ff093bc6bcbae671e9Joe Perches __func__, in_interrupt(), in_atomic(), \ 183f56e7eb4dd3124d53a5200ff093bc6bcbae671e9Joe Perches ##__VA_ARGS__); \ 184884dd24499df823f5c167223c7ae93bd764e2e4fJoe Perches } \ 185884dd24499df823f5c167223c7ae93bd764e2e4fJoe Perches} while (0) 186884dd24499df823f5c167223c7ae93bd764e2e4fJoe Perches 1874c48869f5d6e4ee4a773fd67a01e1b934faa57f8Joe Perches#define RTPRINT(rtlpriv, dbgtype, dbgflag, fmt, ...) \ 188884dd24499df823f5c167223c7ae93bd764e2e4fJoe Perchesdo { \ 189884dd24499df823f5c167223c7ae93bd764e2e4fJoe Perches if (unlikely(rtlpriv->dbg.dbgp_type[dbgtype] & dbgflag)) { \ 1904c48869f5d6e4ee4a773fd67a01e1b934faa57f8Joe Perches printk(KERN_DEBUG KBUILD_MODNAME ": " fmt, \ 1914c48869f5d6e4ee4a773fd67a01e1b934faa57f8Joe Perches ##__VA_ARGS__); \ 192884dd24499df823f5c167223c7ae93bd764e2e4fJoe Perches } \ 193884dd24499df823f5c167223c7ae93bd764e2e4fJoe Perches} while (0) 194884dd24499df823f5c167223c7ae93bd764e2e4fJoe Perches 195884dd24499df823f5c167223c7ae93bd764e2e4fJoe Perches#define RT_PRINT_DATA(rtlpriv, _comp, _level, _titlestring, _hexdata, \ 196884dd24499df823f5c167223c7ae93bd764e2e4fJoe Perches _hexdatalen) \ 197884dd24499df823f5c167223c7ae93bd764e2e4fJoe Perchesdo { \ 198884dd24499df823f5c167223c7ae93bd764e2e4fJoe Perches if (unlikely(((_comp) & rtlpriv->dbg.global_debugcomponents) && \ 199884dd24499df823f5c167223c7ae93bd764e2e4fJoe Perches (_level <= rtlpriv->dbg.global_debuglevel))) { \ 200af08687b4e6d44dcdb04b519e718eb58ecb99050Joe Perches printk(KERN_DEBUG "%s: In process \"%s\" (pid %i): %s\n", \ 201af08687b4e6d44dcdb04b519e718eb58ecb99050Joe Perches KBUILD_MODNAME, current->comm, current->pid, \ 202af08687b4e6d44dcdb04b519e718eb58ecb99050Joe Perches _titlestring); \ 203884dd24499df823f5c167223c7ae93bd764e2e4fJoe Perches print_hex_dump_bytes("", DUMP_PREFIX_NONE, \ 204884dd24499df823f5c167223c7ae93bd764e2e4fJoe Perches _hexdata, _hexdatalen); \ 205884dd24499df823f5c167223c7ae93bd764e2e4fJoe Perches } \ 206884dd24499df823f5c167223c7ae93bd764e2e4fJoe Perches} while (0) 2070c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger 208481b9606ec7276401c7f746fe37873855c49d1b8Joe Perches#else 209481b9606ec7276401c7f746fe37873855c49d1b8Joe Perches 210481b9606ec7276401c7f746fe37873855c49d1b8Joe Perchesstruct rtl_priv; 211481b9606ec7276401c7f746fe37873855c49d1b8Joe Perches 212481b9606ec7276401c7f746fe37873855c49d1b8Joe Perches__printf(2, 3) 213481b9606ec7276401c7f746fe37873855c49d1b8Joe Perchesstatic inline void RT_ASSERT(int exp, const char *fmt, ...) 214481b9606ec7276401c7f746fe37873855c49d1b8Joe Perches{ 215481b9606ec7276401c7f746fe37873855c49d1b8Joe Perches} 216481b9606ec7276401c7f746fe37873855c49d1b8Joe Perches 217481b9606ec7276401c7f746fe37873855c49d1b8Joe Perches__printf(4, 5) 218481b9606ec7276401c7f746fe37873855c49d1b8Joe Perchesstatic inline void RT_TRACE(struct rtl_priv *rtlpriv, 219481b9606ec7276401c7f746fe37873855c49d1b8Joe Perches int comp, int level, 220481b9606ec7276401c7f746fe37873855c49d1b8Joe Perches const char *fmt, ...) 221481b9606ec7276401c7f746fe37873855c49d1b8Joe Perches{ 222481b9606ec7276401c7f746fe37873855c49d1b8Joe Perches} 223481b9606ec7276401c7f746fe37873855c49d1b8Joe Perches 224481b9606ec7276401c7f746fe37873855c49d1b8Joe Perches__printf(4, 5) 225481b9606ec7276401c7f746fe37873855c49d1b8Joe Perchesstatic inline void RTPRINT(struct rtl_priv *rtlpriv, 226481b9606ec7276401c7f746fe37873855c49d1b8Joe Perches int dbgtype, int dbgflag, 227481b9606ec7276401c7f746fe37873855c49d1b8Joe Perches const char *fmt, ...) 228481b9606ec7276401c7f746fe37873855c49d1b8Joe Perches{ 229481b9606ec7276401c7f746fe37873855c49d1b8Joe Perches} 230481b9606ec7276401c7f746fe37873855c49d1b8Joe Perches 231481b9606ec7276401c7f746fe37873855c49d1b8Joe Perchesstatic inline void RT_PRINT_DATA(struct rtl_priv *rtlpriv, 232481b9606ec7276401c7f746fe37873855c49d1b8Joe Perches int comp, int level, 233481b9606ec7276401c7f746fe37873855c49d1b8Joe Perches const char *titlestring, 234481b9606ec7276401c7f746fe37873855c49d1b8Joe Perches const void *hexdata, size_t hexdatalen) 235481b9606ec7276401c7f746fe37873855c49d1b8Joe Perches{ 236481b9606ec7276401c7f746fe37873855c49d1b8Joe Perches} 237481b9606ec7276401c7f746fe37873855c49d1b8Joe Perches 238481b9606ec7276401c7f746fe37873855c49d1b8Joe Perches#endif 239481b9606ec7276401c7f746fe37873855c49d1b8Joe Perches 2400c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Fingervoid rtl_dbgp_flag_init(struct ieee80211_hw *hw); 2410c8173385e549f95cd80c3fff5aab87b4f881d8dLarry Finger#endif 242