wifi: renew patch drivers/net/wireless
[firefly-linux-kernel-4.4.55.git] / drivers / net / wireless / rtl8188eu / include / rtw_debug.h
1 /******************************************************************************
2  *
3  * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
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  * You should have received a copy of the GNU General Public License along with
15  * this program; if not, write to the Free Software Foundation, Inc.,
16  * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
17  *
18  *
19  ******************************************************************************/
20 #ifndef __RTW_DEBUG_H__
21 #define __RTW_DEBUG_H__
22
23
24 #define _drv_always_            1
25 #define _drv_emerg_                     2
26 #define _drv_alert_                     3
27 #define _drv_crit_                      4
28 #define _drv_err_                       5
29 #define _drv_warning_           6
30 #define _drv_notice_            7
31 #define _drv_info_                      8
32 #define _drv_dump_                      9
33 #define _drv_debug_                     10
34
35
36 #define _module_rtl871x_xmit_c_         BIT(0)
37 #define _module_xmit_osdep_c_           BIT(1)
38 #define _module_rtl871x_recv_c_         BIT(2)
39 #define _module_recv_osdep_c_           BIT(3)
40 #define _module_rtl871x_mlme_c_         BIT(4)
41 #define _module_mlme_osdep_c_           BIT(5)
42 #define _module_rtl871x_sta_mgt_c_              BIT(6)
43 #define _module_rtl871x_cmd_c_                  BIT(7)
44 #define _module_cmd_osdep_c_            BIT(8)
45 #define _module_rtl871x_io_c_                           BIT(9)
46 #define _module_io_osdep_c_             BIT(10)
47 #define _module_os_intfs_c_                     BIT(11)
48 #define _module_rtl871x_security_c_             BIT(12)
49 #define _module_rtl871x_eeprom_c_                       BIT(13)
50 #define _module_hal_init_c_             BIT(14)
51 #define _module_hci_hal_init_c_         BIT(15)
52 #define _module_rtl871x_ioctl_c_                BIT(16)
53 #define _module_rtl871x_ioctl_set_c_            BIT(17)
54 #define _module_rtl871x_ioctl_query_c_  BIT(18)
55 #define _module_rtl871x_pwrctrl_c_                      BIT(19)
56 #define _module_hci_intfs_c_                    BIT(20)
57 #define _module_hci_ops_c_                      BIT(21)
58 #define _module_osdep_service_c_                        BIT(22)
59 #define _module_mp_                     BIT(23)
60 #define _module_hci_ops_os_c_                   BIT(24)
61 #define _module_rtl871x_ioctl_os_c              BIT(25)
62 #define _module_rtl8712_cmd_c_          BIT(26)
63 //#define _module_efuse_                        BIT(27)
64 #define _module_rtl8192c_xmit_c_ BIT(28)
65 #define _module_hal_xmit_c_     BIT(28)
66 #define _module_efuse_                  BIT(29)
67 #define _module_rtl8712_recv_c_         BIT(30)
68 #define _module_rtl8712_led_c_          BIT(31)
69
70 #undef _MODULE_DEFINE_
71
72 #if defined _RTW_XMIT_C_
73         #define _MODULE_DEFINE_ _module_rtl871x_xmit_c_
74 #elif defined _XMIT_OSDEP_C_
75         #define _MODULE_DEFINE_ _module_xmit_osdep_c_
76 #elif defined _RTW_RECV_C_
77         #define _MODULE_DEFINE_ _module_rtl871x_recv_c_
78 #elif defined _RECV_OSDEP_C_
79         #define _MODULE_DEFINE_ _module_recv_osdep_c_
80 #elif defined _RTW_MLME_C_
81         #define _MODULE_DEFINE_ _module_rtl871x_mlme_c_
82 #elif defined _MLME_OSDEP_C_
83         #define _MODULE_DEFINE_ _module_mlme_osdep_c_
84 #elif defined _RTW_MLME_EXT_C_
85         #define _MODULE_DEFINE_ 1
86 #elif defined _RTW_STA_MGT_C_
87         #define _MODULE_DEFINE_ _module_rtl871x_sta_mgt_c_
88 #elif defined _RTW_CMD_C_
89         #define _MODULE_DEFINE_ _module_rtl871x_cmd_c_
90 #elif defined _CMD_OSDEP_C_
91         #define _MODULE_DEFINE_ _module_cmd_osdep_c_
92 #elif defined _RTW_IO_C_
93         #define _MODULE_DEFINE_ _module_rtl871x_io_c_
94 #elif defined _IO_OSDEP_C_
95         #define _MODULE_DEFINE_ _module_io_osdep_c_
96 #elif defined _OS_INTFS_C_
97         #define _MODULE_DEFINE_ _module_os_intfs_c_
98 #elif defined _RTW_SECURITY_C_
99         #define _MODULE_DEFINE_ _module_rtl871x_security_c_
100 #elif defined _RTW_EEPROM_C_
101         #define _MODULE_DEFINE_ _module_rtl871x_eeprom_c_
102 #elif defined _HAL_INTF_C_
103         #define _MODULE_DEFINE_ _module_hal_init_c_
104 #elif (defined _HCI_HAL_INIT_C_) || (defined _SDIO_HALINIT_C_)
105         #define _MODULE_DEFINE_ _module_hci_hal_init_c_
106 #elif defined _RTL871X_IOCTL_C_
107         #define _MODULE_DEFINE_ _module_rtl871x_ioctl_c_
108 #elif defined _RTL871X_IOCTL_SET_C_
109         #define _MODULE_DEFINE_ _module_rtl871x_ioctl_set_c_
110 #elif defined _RTL871X_IOCTL_QUERY_C_
111         #define _MODULE_DEFINE_ _module_rtl871x_ioctl_query_c_
112 #elif defined _RTL871X_PWRCTRL_C_
113         #define _MODULE_DEFINE_ _module_rtl871x_pwrctrl_c_
114 #elif defined _RTW_PWRCTRL_C_
115         #define _MODULE_DEFINE_ 1
116 #elif defined _HCI_INTF_C_
117         #define _MODULE_DEFINE_ _module_hci_intfs_c_
118 #elif defined _HCI_OPS_C_
119         #define _MODULE_DEFINE_ _module_hci_ops_c_
120 #elif defined _SDIO_OPS_C_
121         #define _MODULE_DEFINE_ 1
122 #elif defined _OSDEP_HCI_INTF_C_
123         #define _MODULE_DEFINE_ _module_hci_intfs_c_
124 #elif defined _OSDEP_SERVICE_C_
125         #define _MODULE_DEFINE_ _module_osdep_service_c_
126 #elif defined _HCI_OPS_OS_C_
127         #define _MODULE_DEFINE_ _module_hci_ops_os_c_
128 #elif defined _RTL871X_IOCTL_LINUX_C_
129         #define _MODULE_DEFINE_ _module_rtl871x_ioctl_os_c
130 #elif defined _RTL8712_CMD_C_
131         #define _MODULE_DEFINE_ _module_rtl8712_cmd_c_
132 #elif defined _RTL8192C_XMIT_C_
133         #define _MODULE_DEFINE_ 1
134 #elif defined _RTL8723AS_XMIT_C_
135         #define _MODULE_DEFINE_ 1
136 #elif defined _RTL8712_RECV_C_
137         #define _MODULE_DEFINE_ _module_rtl8712_recv_c_
138 #elif defined _RTL8192CU_RECV_C_
139         #define _MODULE_DEFINE_ _module_rtl8712_recv_c_
140 #elif defined _RTL871X_MLME_EXT_C_
141         #define _MODULE_DEFINE_ _module_mlme_osdep_c_
142 #elif defined _RTW_MP_C_
143         #define _MODULE_DEFINE_ _module_mp_
144 #elif defined _RTW_MP_IOCTL_C_
145         #define _MODULE_DEFINE_ _module_mp_
146 #elif defined _RTW_EFUSE_C_
147         #define _MODULE_DEFINE_ _module_efuse_
148 #endif
149
150 #ifdef PLATFORM_OS_CE
151 extern void rtl871x_cedbg(const char *fmt, ...);
152 #endif
153
154 #define RT_TRACE(_Comp, _Level, Fmt) do{}while(0)
155 #define _func_enter_ do{}while(0)
156 #define _func_exit_ do{}while(0)
157 #define RT_PRINT_DATA(_Comp, _Level, _TitleString, _HexData, _HexDataLen) do{}while(0)
158
159 #ifdef PLATFORM_WINDOWS
160         #define DBG_871X do {} while(0)
161         #define MSG_8192C do {} while(0)
162         #define DBG_8192C do {} while(0)
163         #define DBG_871X_LEVEL do {} while(0)
164 #else
165         #define DBG_871X(x, ...) do {} while(0)
166         #define MSG_8192C(x, ...) do {} while(0)
167         #define DBG_8192C(x,...) do {} while(0)
168         #define DBG_871X_LEVEL(x,...) do {} while(0)
169 #endif
170
171 #undef _dbgdump
172 #undef _seqdump
173
174 #ifndef _RTL871X_DEBUG_C_
175         extern u32 GlobalDebugLevel;
176         extern u64 GlobalDebugComponents;
177 #endif
178
179 #if defined(PLATFORM_WINDOWS) && defined(PLATFORM_OS_XP)
180         #define _dbgdump DbgPrint
181         #define _seqdump(sel, fmt, arg...) _dbgdump(fmt, ##arg)
182 #elif defined(PLATFORM_WINDOWS) && defined(PLATFORM_OS_CE)
183         #define _dbgdump rtl871x_cedbg
184         #define _seqdump(sel, fmt, arg...) _dbgdump(fmt, ##arg)
185 #elif defined PLATFORM_LINUX
186         #define _dbgdump printk
187         #define _seqdump seq_printf
188 #elif defined PLATFORM_FREEBSD
189         #define _dbgdump printf
190         #define _seqdump(sel, fmt, arg...) _dbgdump(fmt, ##arg)
191 #endif
192
193 #define DRIVER_PREFIX "RTL871X: "
194
195 #if defined(_dbgdump)
196
197 /* with driver-defined prefix */
198 #undef DBG_871X_LEVEL
199 #define DBG_871X_LEVEL(level, fmt, arg...)     \
200         do {\
201                 if (level <= GlobalDebugLevel) {\
202                         if (level <= _drv_err_ && level > _drv_always_) \
203                                 _dbgdump(DRIVER_PREFIX"ERROR " fmt, ##arg);\
204                         else \
205                                 _dbgdump(DRIVER_PREFIX fmt, ##arg);\
206                 }\
207         }while(0)
208
209 /* without driver-defined prefix */
210 #undef _DBG_871X_LEVEL
211 #define _DBG_871X_LEVEL(level, fmt, arg...)        \
212         do {\
213                 if (level <= GlobalDebugLevel) {\
214                         if (level <= _drv_err_ && level > _drv_always_) \
215                                 _dbgdump("ERROR " fmt, ##arg);\
216                         else \
217                                 _dbgdump(fmt, ##arg);\
218                 }\
219         }while(0)
220
221 #if defined(_seqdump)
222 #define RTW_DBGDUMP 0 /* 'stream' for _dbgdump */
223
224 /* dump message to selected 'stream' */
225 #define DBG_871X_SEL(sel, fmt, arg...) \
226         do {\
227                 if (sel == RTW_DBGDUMP)\
228                         _DBG_871X_LEVEL(_drv_always_, fmt, ##arg); \
229                 else {\
230                         if(_seqdump(sel, fmt, ##arg)) /*rtw_warn_on(1)*/; \
231                 } \
232         }while(0)
233
234 /* dump message to selected 'stream' with driver-defined prefix */
235 #define DBG_871X_SEL_NL(sel, fmt, arg...) \
236         do {\
237                 if (sel == RTW_DBGDUMP)\
238                         DBG_871X_LEVEL(_drv_always_, fmt, ##arg); \
239                 else {\
240                         if(_seqdump(sel, fmt, ##arg)) /*rtw_warn_on(1)*/; \
241                 } \
242         }while(0)
243
244 #endif /* defined(_seqdump) */
245
246 #endif /* defined(_dbgdump) */
247
248 #ifdef CONFIG_DEBUG
249 #if     defined(_dbgdump)
250         #undef DBG_871X
251         #define DBG_871X(...)     do {\
252                 _dbgdump(DRIVER_PREFIX __VA_ARGS__);\
253         }while(0)
254
255         #undef MSG_8192C
256         #define MSG_8192C(...)     do {\
257                 _dbgdump(DRIVER_PREFIX __VA_ARGS__);\
258         }while(0)
259
260         #undef DBG_8192C
261         #define DBG_8192C(...)     do {\
262                 _dbgdump(DRIVER_PREFIX __VA_ARGS__);\
263         }while(0)
264 #endif /* defined(_dbgdump) */
265 #endif /* CONFIG_DEBUG */
266
267 #ifdef CONFIG_DEBUG_RTL871X
268
269 #if     defined(_dbgdump) && defined(_MODULE_DEFINE_)
270
271         #undef RT_TRACE
272         #define RT_TRACE(_Comp, _Level, Fmt)\
273         do {\
274                 if((_Comp & GlobalDebugComponents) && (_Level <= GlobalDebugLevel)) {\
275                         _dbgdump("%s [0x%08x,%d]", DRIVER_PREFIX, (unsigned int)_Comp, _Level);\
276                         _dbgdump Fmt;\
277                 }\
278         }while(0)
279
280 #endif /* defined(_dbgdump) && defined(_MODULE_DEFINE_) */
281
282
283 #if     defined(_dbgdump)
284         #undef  _func_enter_
285         #define _func_enter_ \
286         do {    \
287                 if (GlobalDebugLevel >= _drv_debug_) \
288                 {                                                                                                                                       \
289                         _dbgdump("\n %s : %s enters at %d\n", DRIVER_PREFIX, __FUNCTION__, __LINE__);\
290                 }               \
291         } while(0)
292
293         #undef  _func_exit_
294         #define _func_exit_ \
295         do {    \
296                 if (GlobalDebugLevel >= _drv_debug_) \
297                 {                                                                                                                                       \
298                         _dbgdump("\n %s : %s exits at %d\n", DRIVER_PREFIX, __FUNCTION__, __LINE__); \
299                 }       \
300         } while(0)
301
302         #undef RT_PRINT_DATA
303         #define RT_PRINT_DATA(_Comp, _Level, _TitleString, _HexData, _HexDataLen)                       \
304                 if(((_Comp) & GlobalDebugComponents) && (_Level <= GlobalDebugLevel))   \
305                 {                                                                       \
306                         int __i;                                                                \
307                         u8      *ptr = (u8 *)_HexData;                          \
308                         _dbgdump("%s", DRIVER_PREFIX);                                          \
309                         _dbgdump(_TitleString);                                         \
310                         for( __i=0; __i<(int)_HexDataLen; __i++ )                               \
311                         {                                                               \
312                                 _dbgdump("%02X%s", ptr[__i], (((__i + 1) % 4) == 0)?"  ":" ");  \
313                                 if (((__i + 1) % 16) == 0)      _dbgdump("\n");                 \
314                         }                                                               \
315                         _dbgdump("\n");                                                 \
316                 }
317 #endif /* defined(_dbgdump) */
318 #endif /* CONFIG_DEBUG_RTL871X */
319
320 void dump_drv_version(void *sel);
321 void dump_log_level(void *sel);
322
323 #ifdef CONFIG_SDIO_HCI
324 void sd_f0_reg_dump(void *sel, _adapter *adapter);
325 #endif /* CONFIG_SDIO_HCI */
326
327 void mac_reg_dump(void *sel, _adapter *adapter);
328 void bb_reg_dump(void *sel, _adapter *adapter);
329 void rf_reg_dump(void *sel, _adapter *adapter);
330
331 #ifdef CONFIG_PROC_DEBUG
332 ssize_t proc_set_write_reg(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data);
333 int proc_get_read_reg(struct seq_file *m, void *v);
334 ssize_t proc_set_read_reg(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data);
335
336 int proc_get_fwstate(struct seq_file *m, void *v);
337 int proc_get_sec_info(struct seq_file *m, void *v);
338 int proc_get_mlmext_state(struct seq_file *m, void *v);
339 #ifdef CONFIG_LAYER2_ROAMING
340 int proc_get_roam_flags(struct seq_file *m, void *v);
341 ssize_t proc_set_roam_flags(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data);
342 int proc_get_roam_param(struct seq_file *m, void *v);
343 ssize_t proc_set_roam_param(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data);
344 ssize_t proc_set_roam_tgt_addr(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data);
345 #endif /* CONFIG_LAYER2_ROAMING */
346 int proc_get_qos_option(struct seq_file *m, void *v);
347 int proc_get_ht_option(struct seq_file *m, void *v);
348 int proc_get_rf_info(struct seq_file *m, void *v);
349 int proc_get_survey_info(struct seq_file *m, void *v);
350 int proc_get_ap_info(struct seq_file *m, void *v);
351 int proc_get_adapter_state(struct seq_file *m, void *v);
352 int proc_get_trx_info(struct seq_file *m, void *v);
353 int proc_get_rate_ctl(struct seq_file *m, void *v);
354 ssize_t proc_set_rate_ctl(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data);
355 int proc_get_suspend_resume_info(struct seq_file *m, void *v);
356
357 ssize_t proc_set_fwdl_test_case(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data);
358 ssize_t proc_set_wait_hiq_empty(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data);
359
360 #ifdef CONFIG_AP_MODE
361 int proc_get_all_sta_info(struct seq_file *m, void *v);
362 #endif /* CONFIG_AP_MODE */
363
364 #ifdef DBG_MEMORY_LEAK
365 int proc_get_malloc_cnt(struct seq_file *m, void *v);
366 #endif /* DBG_MEMORY_LEAK */
367
368 #ifdef CONFIG_FIND_BEST_CHANNEL
369 int proc_get_best_channel(struct seq_file *m, void *v);
370 ssize_t proc_set_best_channel(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data);
371 #endif /* CONFIG_FIND_BEST_CHANNEL */
372
373 int proc_get_rx_signal(struct seq_file *m, void *v);
374 ssize_t proc_set_rx_signal(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data);
375 int proc_get_hw_status(struct seq_file *m, void *v);
376
377 #ifdef CONFIG_80211N_HT
378 int proc_get_ht_enable(struct seq_file *m, void *v);
379 ssize_t proc_set_ht_enable(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data);
380
381 int proc_get_bw_mode(struct seq_file *m, void *v);
382 ssize_t proc_set_bw_mode(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data);
383
384 int proc_get_ampdu_enable(struct seq_file *m, void *v);
385 ssize_t proc_set_ampdu_enable(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data);
386
387 int proc_get_rx_ampdu(struct seq_file *m, void *v);
388 ssize_t proc_set_rx_ampdu(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data);
389
390 int proc_get_rx_stbc(struct seq_file *m, void *v);
391 ssize_t proc_set_rx_stbc(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data);
392 #endif /* CONFIG_80211N_HT */
393
394 int proc_get_en_fwps(struct seq_file *m, void *v);
395 ssize_t proc_set_en_fwps(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data);
396
397 //int proc_get_two_path_rssi(struct seq_file *m, void *v);
398 int proc_get_rssi_disp(struct seq_file *m, void *v);
399 ssize_t proc_set_rssi_disp(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data);
400
401 #ifdef CONFIG_BT_COEXIST
402 int proc_get_btcoex_dbg(struct seq_file *m, void *v);
403 ssize_t proc_set_btcoex_dbg(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data);
404 int proc_get_btcoex_info(struct seq_file *m, void *v);
405 #endif /* CONFIG_BT_COEXIST */
406
407 #if defined(DBG_CONFIG_ERROR_DETECT)
408 int proc_get_sreset(struct seq_file *m, void *v);
409 ssize_t proc_set_sreset(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data);
410 #endif /* DBG_CONFIG_ERROR_DETECT */
411
412 int proc_get_odm_dbg_comp(struct seq_file *m, void *v);
413 ssize_t proc_set_odm_dbg_comp(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data);
414 int proc_get_odm_dbg_level(struct seq_file *m, void *v);
415 ssize_t proc_set_odm_dbg_level(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data);
416
417 int proc_get_odm_adaptivity(struct seq_file *m, void *v);
418 ssize_t proc_set_odm_adaptivity(struct file *file, const char __user *buffer, size_t count, loff_t *pos, void *data);
419
420 #endif /* CONFIG_PROC_DEBUG */
421
422 #endif  //__RTW_DEBUG_H__
423