xref: /OK3568_Linux_fs/external/rkwifibt/drivers/rtl8188fu/include/drv_conf.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1 /******************************************************************************
2  *
3  * Copyright(c) 2007 - 2019 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  *****************************************************************************/
15 #ifndef __DRV_CONF_H__
16 #define __DRV_CONF_H__
17 #include "autoconf.h"
18 #include "hal_ic_cfg.h"
19 
20 #define CONFIG_RSSI_PRIORITY
21 
22 /*
23  * RTW_BUSY_DENY_SCAN control if scan would be denied by busy traffic.
24  * When this defined, BUSY_TRAFFIC_SCAN_DENY_PERIOD would be used to judge if
25  * scan request coming from scan UI. Scan request from scan UI would be
26  * exception and never be denied by busy traffic.
27  */
28 #define RTW_BUSY_DENY_SCAN
29 
30 #ifdef CONFIG_RTW_REPEATER_SON
31 	#ifndef CONFIG_AP
32 		#define CONFIG_AP
33 	#endif
34 	#ifndef CONFIG_CONCURRENT_MODE
35 		#define CONFIG_CONCURRENT_MODE
36 	#endif
37 	#ifndef CONFIG_BR_EXT
38 		#define CONFIG_BR_EXT
39 	#endif
40 	#ifndef CONFIG_RTW_REPEATER_SON_ID
41 		#define CONFIG_RTW_REPEATER_SON_ID			0x02040608
42 	#endif
43 	//#define CONFIG_RTW_REPEATER_SON_ROOT
44 	#ifndef CONFIG_RTW_REPEATER_SON_ROOT
45 		#define CONFIG_LAYER2_ROAMING_ACTIVE
46 	#endif
47 	#undef CONFIG_POWER_SAVING
48 #endif
49 
50 #if defined(CONFIG_MCC_MODE) && (!defined(CONFIG_CONCURRENT_MODE))
51 
52 	#error "Enable CONCURRENT_MODE before enable MCC MODE\n"
53 
54 #endif
55 
56 #if defined(CONFIG_MCC_MODE) && defined(CONFIG_BT_COEXIST)
57 
58 	#error "Disable BT COEXIST before enable MCC MODE\n"
59 
60 #endif
61 
62 #if defined(CONFIG_MCC_MODE) && defined(CONFIG_TDLS)
63 
64 	#error "Disable TDLS before enable MCC MODE\n"
65 
66 #endif
67 
68 #if defined(CONFIG_RTW_80211R) && !defined(CONFIG_LAYER2_ROAMING)
69 
70 	#error "Enable CONFIG_LAYER2_ROAMING before enable CONFIG_RTW_80211R\n"
71 
72 #endif
73 
74 /* Default enable single wiphy if driver ver >= 5.9 */
75 #define RTW_SINGLE_WIPHY
76 
77 #ifdef CONFIG_RTW_ANDROID
78 
79 	#include <linux/version.h>
80 
81 	#ifndef CONFIG_IOCTL_CFG80211
82 	#define CONFIG_IOCTL_CFG80211
83 	#endif
84 
85 	#ifndef RTW_USE_CFG80211_STA_EVENT
86 	#define RTW_USE_CFG80211_STA_EVENT
87 	#endif
88 
89 	#if (CONFIG_RTW_ANDROID > 4)
90 	#ifndef CONFIG_RADIO_WORK
91 	#define CONFIG_RADIO_WORK
92 	#endif
93 	#endif
94 
95 	#if (CONFIG_RTW_ANDROID <= 7)
96 		#ifdef RTW_SINGLE_WIPHY
97 		#undef RTW_SINGLE_WIPHY
98 		#endif
99 	#endif
100 
101 	#if (CONFIG_RTW_ANDROID >= 8)
102 		#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,18,0))
103 		#ifndef CONFIG_RTW_WIFI_HAL
104 		#define CONFIG_RTW_WIFI_HAL
105 		#endif
106 		#else
107  		#error "Linux kernel version is too old\n"
108 		#endif
109 	#endif
110 
111 	#ifdef CONFIG_RTW_WIFI_HAL
112 	#ifndef CONFIG_RTW_WIFI_HAL_DEBUG
113 	//#define CONFIG_RTW_WIFI_HAL_DEBUG
114 	#endif
115 	#ifndef CONFIG_RTW_CFGVENDOR_LLSTATS
116 	#define CONFIG_RTW_CFGVENDOR_LLSTATS
117 	#endif
118 	#if (CONFIG_RTW_ANDROID < 11)
119 	#ifndef CONFIG_RTW_CFGVENDOR_RANDOM_MAC_OUI
120 	#define CONFIG_RTW_CFGVENDOR_RANDOM_MAC_OUI
121 	#endif
122 	#endif
123 	#ifndef CONFIG_RTW_CFGVENDOR_RSSIMONITOR
124 	#define CONFIG_RTW_CFGVENDOR_RSSIMONITOR
125 	#endif
126 	#ifndef CONFIG_RTW_CFGVENDOR_WIFI_LOGGER
127 	#define CONFIG_RTW_CFGVENDOR_WIFI_LOGGER
128 	#endif
129 	#if (CONFIG_RTW_ANDROID >= 10)
130 	#ifndef CONFIG_RTW_CFGVENDOR_WIFI_OFFLOAD
131 	//#define CONFIG_RTW_CFGVENDOR_WIFI_OFFLOAD
132 	#endif
133 	#ifndef CONFIG_RTW_HOSTAPD_ACS
134 	#define CONFIG_RTW_HOSTAPD_ACS
135 	#endif
136 	#ifndef CONFIG_KERNEL_PATCH_EXTERNAL_AUTH
137 	#define CONFIG_KERNEL_PATCH_EXTERNAL_AUTH
138 	#endif
139 	#ifndef CONFIG_RTW_ABORT_SCAN
140 	#define CONFIG_RTW_ABORT_SCAN
141 	#endif
142 	#endif
143 	#endif // CONFIG_RTW_WIFI_HAL
144 
145 
146 	/* Some Android build will restart the UI while non-printable ascii is passed
147 	* between java and c/c++ layer (JNI). We force CONFIG_VALIDATE_SSID
148 	* for Android here. If you are sure there is no risk on your system about this,
149 	* mask this macro define to support non-printable ascii ssid.
150 	* #define CONFIG_VALIDATE_SSID */
151 
152 	/* Android expect dbm as the rx signal strength unit */
153 	#define CONFIG_SIGNAL_DISPLAY_DBM
154 #endif // CONFIG_RTW_ANDROID
155 
156 /*
157 #if defined(CONFIG_HAS_EARLYSUSPEND) && defined(CONFIG_RESUME_IN_WORKQUEUE)
158 	#warning "You have CONFIG_HAS_EARLYSUSPEND enabled in your system, we disable CONFIG_RESUME_IN_WORKQUEUE automatically"
159 	#undef CONFIG_RESUME_IN_WORKQUEUE
160 #endif
161 
162 #if defined(CONFIG_ANDROID_POWER) && defined(CONFIG_RESUME_IN_WORKQUEUE)
163 	#warning "You have CONFIG_ANDROID_POWER enabled in your system, we disable CONFIG_RESUME_IN_WORKQUEUE automatically"
164 	#undef CONFIG_RESUME_IN_WORKQUEUE
165 #endif
166 */
167 
168 #ifdef CONFIG_RESUME_IN_WORKQUEUE /* this can be removed, because there is no case for this... */
169 	#if !defined(CONFIG_WAKELOCK) && !defined(CONFIG_ANDROID_POWER)
170 		#error "enable CONFIG_RESUME_IN_WORKQUEUE without CONFIG_WAKELOCK or CONFIG_ANDROID_POWER will suffer from the danger of wifi's unfunctionality..."
171 		#error "If you still want to enable CONFIG_RESUME_IN_WORKQUEUE in this case, mask this preprossor checking and GOOD LUCK..."
172 	#endif
173 #endif
174 
175 /* About USB VENDOR REQ */
176 #if defined(CONFIG_USB_VENDOR_REQ_BUFFER_PREALLOC) && !defined(CONFIG_USB_VENDOR_REQ_MUTEX)
177 	#warning "define CONFIG_USB_VENDOR_REQ_MUTEX for CONFIG_USB_VENDOR_REQ_BUFFER_PREALLOC automatically"
178 	#define CONFIG_USB_VENDOR_REQ_MUTEX
179 #endif
180 #if defined(CONFIG_VENDOR_REQ_RETRY) &&  !defined(CONFIG_USB_VENDOR_REQ_MUTEX)
181 	#warning "define CONFIG_USB_VENDOR_REQ_MUTEX for CONFIG_VENDOR_REQ_RETRY automatically"
182 	#define CONFIG_USB_VENDOR_REQ_MUTEX
183 #endif
184 
185 #ifdef CONFIG_WIFI_MONITOR
186 	/*	#define CONFIG_MONITOR_MODE_XMIT	*/
187 #endif
188 
189 #ifdef CONFIG_CUSTOMER_ALIBABA_GENERAL
190 	#ifndef CONFIG_WIFI_MONITOR
191 		#define CONFIG_WIFI_MONITOR
192 	#endif
193 	#ifdef CONFIG_POWER_SAVING
194 		#undef CONFIG_POWER_SAVING
195 	#endif
196 #endif
197 
198 #ifdef CONFIG_CUSTOMER01_SMART_ANTENNA
199 	#ifdef CONFIG_POWER_SAVING
200 		#undef CONFIG_POWER_SAVING
201 	#endif
202 	#ifdef CONFIG_BEAMFORMING
203 		#undef CONFIG_BEAMFORMING
204 	#endif
205 #endif
206 
207 #ifndef CONFIG_RTW_DATA_BMC_TO_UC
208 #define CONFIG_RTW_DATA_BMC_TO_UC 0
209 #endif
210 
211 #ifdef CONFIG_AP_MODE
212 	#define CONFIG_LIMITED_AP_NUM 1
213 
214 	#ifndef CONFIG_RTW_AP_DATA_BMC_TO_UC
215 	#define CONFIG_RTW_AP_DATA_BMC_TO_UC 1
216 	#endif
217 	#if CONFIG_RTW_AP_DATA_BMC_TO_UC
218 	#undef CONFIG_RTW_DATA_BMC_TO_UC
219 	#define CONFIG_RTW_DATA_BMC_TO_UC 1
220 	#endif
221 	#ifndef CONFIG_RTW_AP_SRC_B2U_FLAGS
222 	#define CONFIG_RTW_AP_SRC_B2U_FLAGS 0x8 /* see RTW_AP_B2U_XXX */
223 	#endif
224 	#ifndef CONFIG_RTW_AP_FWD_B2U_FLAGS
225 	#define CONFIG_RTW_AP_FWD_B2U_FLAGS 0x8 /* see RTW_AP_B2U_XXX */
226 	#endif
227 #endif
228 
229 #ifdef CONFIG_RTW_MULTI_AP
230 	#ifndef CONFIG_AP_MODE
231 	#error "enable CONFIG_RTW_MULTI_AP without CONFIG_AP_MODE"
232 	#endif
233 	#ifndef CONFIG_RTW_WDS
234 	#define CONFIG_RTW_WDS
235 	#endif
236 	#ifndef CONFIG_RTW_UNASOC_STA_MODE_OF_STYPE
237 	#define CONFIG_RTW_UNASOC_STA_MODE_OF_STYPE {2, 1} /* BMC:2 for all, NMY_UC:1 for interested target */
238 	#endif
239 	#ifndef CONFIG_RTW_NLRTW
240 	#define CONFIG_RTW_NLRTW
241 	#endif
242 	#ifndef CONFIG_RTW_WNM
243 	#define CONFIG_RTW_WNM
244 	#endif
245 	#ifndef CONFIG_RTW_80211K
246 	#define CONFIG_RTW_80211K
247 	#endif
248 #endif
249 
250 #ifdef CONFIG_RTW_MESH
251 	#ifndef CONFIG_RTW_MESH_ACNODE_PREVENT
252 	#define CONFIG_RTW_MESH_ACNODE_PREVENT 1
253 	#endif
254 
255 	#ifndef CONFIG_RTW_MESH_OFFCH_CAND
256 	#define CONFIG_RTW_MESH_OFFCH_CAND 1
257 	#endif
258 
259 	#ifndef CONFIG_RTW_MESH_PEER_BLACKLIST
260 	#define CONFIG_RTW_MESH_PEER_BLACKLIST 1
261 	#endif
262 
263 	#ifndef CONFIG_RTW_MESH_CTO_MGATE_BLACKLIST
264 	#define CONFIG_RTW_MESH_CTO_MGATE_BLACKLIST 1
265 	#endif
266 	#ifndef CONFIG_RTW_MESH_CTO_MGATE_CARRIER
267 	#define CONFIG_RTW_MESH_CTO_MGATE_CARRIER CONFIG_RTW_MESH_CTO_MGATE_BLACKLIST
268 	#endif
269 
270 	#ifndef CONFIG_RTW_MPM_TX_IES_SYNC_BSS
271 	#define CONFIG_RTW_MPM_TX_IES_SYNC_BSS 1
272 	#endif
273 	#if CONFIG_RTW_MPM_TX_IES_SYNC_BSS
274 		#ifndef CONFIG_RTW_MESH_AEK
275 		#define CONFIG_RTW_MESH_AEK
276 		#endif
277 	#endif
278 
279 	#ifndef CONFIG_RTW_MESH_DATA_BMC_TO_UC
280 	#define CONFIG_RTW_MESH_DATA_BMC_TO_UC 1
281 	#endif
282 	#if CONFIG_RTW_MESH_DATA_BMC_TO_UC
283 	#undef CONFIG_RTW_DATA_BMC_TO_UC
284 	#define CONFIG_RTW_DATA_BMC_TO_UC 1
285 	#endif
286 	#ifndef CONFIG_RTW_MSRC_B2U_FLAGS
287 	#define CONFIG_RTW_MSRC_B2U_FLAGS 0x0 /* see RTW_MESH_B2U_XXX */
288 	#endif
289 	#ifndef CONFIG_RTW_MFWD_B2U_FLAGS
290 	#define CONFIG_RTW_MFWD_B2U_FLAGS 0x2 /* see RTW_MESH_B2U_XXX */
291 	#endif
292 #endif
293 
294 #if !defined(CONFIG_SCAN_BACKOP) && defined(CONFIG_AP_MODE)
295 #define CONFIG_SCAN_BACKOP
296 #endif
297 
298 #define RTW_SCAN_SPARSE_MIRACAST 1
299 #define RTW_SCAN_SPARSE_BG 0
300 #define RTW_SCAN_SPARSE_ROAMING_ACTIVE 1
301 
302 #ifndef CONFIG_TX_AC_LIFETIME
303 #define CONFIG_TX_AC_LIFETIME 1
304 #endif
305 #ifndef CONFIG_TX_ACLT_FLAGS
306 #define CONFIG_TX_ACLT_FLAGS 0x00
307 #endif
308 #ifndef CONFIG_TX_ACLT_CONF_DEFAULT
309 #define CONFIG_TX_ACLT_CONF_DEFAULT {0x0, 1024 * 1000, 1024 * 1000}
310 #endif
311 #ifndef CONFIG_TX_ACLT_CONF_AP_M2U
312 #define CONFIG_TX_ACLT_CONF_AP_M2U {0xF, 256 * 1000, 256 * 1000}
313 #endif
314 #ifndef CONFIG_TX_ACLT_CONF_MESH
315 #define CONFIG_TX_ACLT_CONF_MESH {0xF, 256 * 1000, 256 * 1000}
316 #endif
317 
318 #ifndef CONFIG_RTW_HIQ_FILTER
319 	#define CONFIG_RTW_HIQ_FILTER 1
320 #endif
321 
322 #ifndef CONFIG_RTW_ADAPTIVITY_EN
323 	#define CONFIG_RTW_ADAPTIVITY_EN 0
324 #endif
325 
326 #ifndef CONFIG_RTW_ADAPTIVITY_MODE
327 	#define CONFIG_RTW_ADAPTIVITY_MODE 0
328 #endif
329 
330 #ifndef CONFIG_RTW_ADAPTIVITY_TH_L2H_INI
331 	#define CONFIG_RTW_ADAPTIVITY_TH_L2H_INI 0
332 #endif
333 
334 #ifndef CONFIG_RTW_ADAPTIVITY_TH_EDCCA_HL_DIFF
335 	#define CONFIG_RTW_ADAPTIVITY_TH_EDCCA_HL_DIFF 0
336 #endif
337 
338 #ifndef CONFIG_RTW_EXCL_CHS
339 	#define CONFIG_RTW_EXCL_CHS {0}
340 #endif
341 
342 #ifndef CONFIG_IEEE80211_BAND_5GHZ
343 	#if defined(CONFIG_RTL8821A) || defined(CONFIG_RTL8821C) \
344 		|| defined(CONFIG_RTL8812A) || defined(CONFIG_RTL8822B) || defined(CONFIG_RTL8822C) \
345 		|| defined(CONFIG_RTL8814A) || defined(CONFIG_RTL8814B)
346 	#define CONFIG_IEEE80211_BAND_5GHZ 1
347 	#else
348 	#define CONFIG_IEEE80211_BAND_5GHZ 0
349 	#endif
350 #endif
351 
352 #ifndef CONFIG_DFS
353 #define CONFIG_DFS 1
354 #endif
355 
356 #if CONFIG_IEEE80211_BAND_5GHZ && CONFIG_DFS && defined(CONFIG_AP_MODE)
357 	#if !defined(CONFIG_DFS_SLAVE_WITH_RADAR_DETECT)
358 	#define CONFIG_DFS_SLAVE_WITH_RADAR_DETECT 0
359 	#endif
360 	#if !defined(CONFIG_DFS_MASTER) || CONFIG_DFS_SLAVE_WITH_RADAR_DETECT
361 	#define CONFIG_DFS_MASTER
362 	#endif
363 	#if defined(CONFIG_DFS_MASTER) && !defined(CONFIG_RTW_DFS_REGION_DOMAIN)
364 	#define CONFIG_RTW_DFS_REGION_DOMAIN 0
365 	#endif
366 #else
367 	#undef CONFIG_DFS_MASTER
368 	#undef CONFIG_RTW_DFS_REGION_DOMAIN
369 	#define CONFIG_RTW_DFS_REGION_DOMAIN 0
370 	#undef CONFIG_DFS_SLAVE_WITH_RADAR_DETECT
371 	#define CONFIG_DFS_SLAVE_WITH_RADAR_DETECT 0
372 #endif
373 
374 #ifndef CONFIG_TXPWR_BY_RATE_EN
375 #define CONFIG_TXPWR_BY_RATE_EN 2 /* by efuse */
376 #endif
377 #ifndef CONFIG_TXPWR_LIMIT_EN
378 #define CONFIG_TXPWR_LIMIT_EN 2 /* by efuse */
379 #endif
380 
381 #ifndef CONFIG_RTW_CHPLAN
382 #define CONFIG_RTW_CHPLAN 0xFF /* RTW_CHPLAN_UNSPECIFIED */
383 #endif
384 
385 /* compatible with old fashion configuration */
386 #if defined(CONFIG_CALIBRATE_TX_POWER_BY_REGULATORY)
387 	#undef CONFIG_TXPWR_BY_RATE_EN
388 	#undef CONFIG_TXPWR_LIMIT_EN
389 	#define CONFIG_TXPWR_BY_RATE_EN 1
390 	#define CONFIG_TXPWR_LIMIT_EN 1
391 #elif defined(CONFIG_CALIBRATE_TX_POWER_TO_MAX)
392 	#undef CONFIG_TXPWR_BY_RATE_EN
393 	#undef CONFIG_TXPWR_LIMIT_EN
394 	#define CONFIG_TXPWR_BY_RATE_EN 1
395 	#define CONFIG_TXPWR_LIMIT_EN 0
396 #endif
397 
398 #ifndef RTW_DEF_MODULE_REGULATORY_CERT
399 	#define RTW_DEF_MODULE_REGULATORY_CERT 0
400 #endif
401 
402 #if RTW_DEF_MODULE_REGULATORY_CERT
403 	/* force enable TX power by rate and TX power limit */
404 	#undef CONFIG_TXPWR_BY_RATE_EN
405 	#undef CONFIG_TXPWR_LIMIT_EN
406 	#define CONFIG_TXPWR_BY_RATE_EN 1
407 	#define CONFIG_TXPWR_LIMIT_EN 1
408 #endif
409 
410 #if !CONFIG_TXPWR_LIMIT && CONFIG_TXPWR_LIMIT_EN
411 	#undef CONFIG_TXPWR_LIMIT
412 	#define CONFIG_TXPWR_LIMIT 1
413 #endif
414 
415 #define CONFIG_IOCTL_WEXT
416 
417 #ifdef CONFIG_RTW_IPCAM_APPLICATION
418 	#undef CONFIG_TXPWR_BY_RATE_EN
419 	#define CONFIG_TXPWR_BY_RATE_EN 1
420 	#define CONFIG_RTW_CUSTOMIZE_BEEDCA		0x0000431C
421 	#define CONFIG_RTW_CUSTOMIZE_BWMODE		0x00
422 	#define CONFIG_RTW_CUSTOMIZE_RLSTA		0x30
423 	#ifdef CONFIG_CUSTOMER_EZVIZ_CHIME2
424 		#undef CONFIG_ACTIVE_KEEP_ALIVE_CHECK
425 	#endif
426 #if defined(CONFIG_RTL8192E) || defined(CONFIG_RTL8192F) || defined(CONFIG_RTL8822B)
427 	#define CONFIG_RTW_TX_NPATH_EN		/*	mutually incompatible with STBC_TX & Beamformer	*/
428 #endif
429 #endif
430 /* #define CONFIG_RTW_TOKEN_BASED_XMIT */
431 #ifdef CONFIG_RTW_TOKEN_BASED_XMIT
432 	#define NR_TBTX_SLOT			4
433 	#define NR_MAXSTA_INSLOT		5
434 	#define TBTX_TX_DURATION		30
435 
436 	#define MAX_TXPAUSE_DURATION	(TBTX_TX_DURATION*NR_TBTX_SLOT)
437 #endif
438 
439 /*#define CONFIG_EXTEND_LOWRATE_TXOP			*/
440 
441 #ifndef CONFIG_RTW_RX_AMPDU_SZ_LIMIT_1SS
442 	#define CONFIG_RTW_RX_AMPDU_SZ_LIMIT_1SS {0xFF, 0xFF, 0xFF, 0xFF}
443 #endif
444 #ifndef CONFIG_RTW_RX_AMPDU_SZ_LIMIT_2SS
445 	#define CONFIG_RTW_RX_AMPDU_SZ_LIMIT_2SS {0xFF, 0xFF, 0xFF, 0xFF}
446 #endif
447 #ifndef CONFIG_RTW_RX_AMPDU_SZ_LIMIT_3SS
448 	#define CONFIG_RTW_RX_AMPDU_SZ_LIMIT_3SS {0xFF, 0xFF, 0xFF, 0xFF}
449 #endif
450 #ifndef CONFIG_RTW_RX_AMPDU_SZ_LIMIT_4SS
451 	#define CONFIG_RTW_RX_AMPDU_SZ_LIMIT_4SS {0xFF, 0xFF, 0xFF, 0xFF}
452 #endif
453 
454 #ifndef CONFIG_RTW_TARGET_TX_PWR_2G_A
455 	#define CONFIG_RTW_TARGET_TX_PWR_2G_A {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1}
456 #endif
457 
458 #ifndef CONFIG_RTW_TARGET_TX_PWR_2G_B
459 	#define CONFIG_RTW_TARGET_TX_PWR_2G_B {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1}
460 #endif
461 
462 #ifndef CONFIG_RTW_TARGET_TX_PWR_2G_C
463 	#define CONFIG_RTW_TARGET_TX_PWR_2G_C {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1}
464 #endif
465 
466 #ifndef CONFIG_RTW_TARGET_TX_PWR_2G_D
467 	#define CONFIG_RTW_TARGET_TX_PWR_2G_D {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1}
468 #endif
469 
470 #ifndef CONFIG_RTW_TARGET_TX_PWR_5G_A
471 	#define CONFIG_RTW_TARGET_TX_PWR_5G_A {-1, -1, -1, -1, -1, -1, -1, -1, -1}
472 #endif
473 
474 #ifndef CONFIG_RTW_TARGET_TX_PWR_5G_B
475 	#define CONFIG_RTW_TARGET_TX_PWR_5G_B {-1, -1, -1, -1, -1, -1, -1, -1, -1}
476 #endif
477 
478 #ifndef CONFIG_RTW_TARGET_TX_PWR_5G_C
479 	#define CONFIG_RTW_TARGET_TX_PWR_5G_C {-1, -1, -1, -1, -1, -1, -1, -1, -1}
480 #endif
481 
482 #ifndef CONFIG_RTW_TARGET_TX_PWR_5G_D
483 	#define CONFIG_RTW_TARGET_TX_PWR_5G_D {-1, -1, -1, -1, -1, -1, -1, -1, -1}
484 #endif
485 
486 #ifndef CONFIG_RTW_AMPLIFIER_TYPE_2G
487 	#define CONFIG_RTW_AMPLIFIER_TYPE_2G 0
488 #endif
489 
490 #ifndef CONFIG_RTW_AMPLIFIER_TYPE_5G
491 	#define CONFIG_RTW_AMPLIFIER_TYPE_5G 0
492 #endif
493 
494 #ifndef CONFIG_RTW_RFE_TYPE
495 	#define CONFIG_RTW_RFE_TYPE 64
496 #endif
497 
498 #ifndef CONFIG_RTW_GLNA_TYPE
499 	#define CONFIG_RTW_GLNA_TYPE 0
500 #endif
501 
502 #ifndef CONFIG_RTW_PLL_REF_CLK_SEL
503 	#define CONFIG_RTW_PLL_REF_CLK_SEL 0x0F
504 #endif
505 
506 #ifndef CONFIG_IFACE_NUMBER
507 	#ifdef CONFIG_CONCURRENT_MODE
508 		#define CONFIG_IFACE_NUMBER	2
509 	#else
510 		#define CONFIG_IFACE_NUMBER	1
511 	#endif
512 #endif
513 
514 #ifndef CONFIG_CONCURRENT_MODE
515 	#if (CONFIG_IFACE_NUMBER > 1)
516 		#error "CONFIG_IFACE_NUMBER over 1,but CONFIG_CONCURRENT_MODE not defined"
517 	#endif
518 #endif
519 
520 #if (CONFIG_IFACE_NUMBER == 0)
521 	#error "CONFIG_IFACE_NUMBER cound not be 0 !!"
522 #endif
523 
524 #if defined(CONFIG_RTL8188E) || defined(CONFIG_RTL8192E) || defined(CONFIG_RTL8188F) || \
525 defined(CONFIG_RTL8188GTV) || defined(CONFIG_RTL8192F) || \
526 defined(CONFIG_RTL8812A) || defined(CONFIG_RTL8821A) || defined(CONFIG_RTL8710B) || \
527 defined(CONFIG_RTL8723B) || defined(CONFIG_RTL8703B) || defined(CONFIG_RTL8723D)
528 #define CONFIG_HWMPCAP_GEN1
529 #elif defined(CONFIG_RTL8822B) || defined(CONFIG_RTL8821C) || defined(CONFIG_RTL8822C) /*|| defined(CONFIG_RTL8814A)*/
530 #define CONFIG_HWMPCAP_GEN2
531 #elif defined(CONFIG_RTL8814B) /*Address CAM - 128*/
532 #define CONFIG_HWMPCAP_GEN3
533 #endif
534 
535 #if defined(CONFIG_HWMPCAP_GEN1) && (CONFIG_IFACE_NUMBER > 2)
536 	#ifdef CONFIG_POWER_SAVING
537 	/*#warning "Disable PS when CONFIG_IFACE_NUMBER > 2"*/
538 	#undef CONFIG_POWER_SAVING
539 	#endif
540 
541 	#ifdef CONFIG_WOWLAN
542 	#error "This IC can't support MI and WoWLan at the same time"
543 	#endif
544 #endif
545 
546 #if defined(CONFIG_HWMPCAP_GEN1) && (CONFIG_IFACE_NUMBER > 3)
547         #error " This IC can't support over 3 interfaces !!"
548 #endif
549 
550 #if (CONFIG_IFACE_NUMBER > 4)
551 	#error "Not support over 4 interfaces yet !!"
552 #endif
553 
554 #if (CONFIG_IFACE_NUMBER > 8)	/*IFACE_ID_MAX*/
555 	#error "HW count not support over 8 interfaces !!"
556 #endif
557 
558 #if (CONFIG_IFACE_NUMBER > 2)
559 	#ifndef CONFIG_HWMPCAP_GEN3
560 		#define CONFIG_MI_WITH_MBSSID_CAM
561 	#endif
562 
563 	#ifdef CONFIG_MI_WITH_MBSSID_CAM
564 		#define CONFIG_MBSSID_CAM
565 		#if defined(CONFIG_RUNTIME_PORT_SWITCH)
566 			#undef CONFIG_RUNTIME_PORT_SWITCH
567 		#endif
568 	#endif
569 
570 	#ifdef CONFIG_AP_MODE
571 		#undef CONFIG_LIMITED_AP_NUM
572 		#define CONFIG_LIMITED_AP_NUM	2
573 
574 		#define CONFIG_SUPPORT_MULTI_BCN
575 
576 		#define CONFIG_SWTIMER_BASED_TXBCN
577 
578 		#ifdef CONFIG_HWMPCAP_GEN2 /*CONFIG_RTL8822B/CONFIG_RTL8821C/CONFIG_RTL8822C*/
579 		#define CONFIG_FW_HANDLE_TXBCN
580 
581 		#ifdef CONFIG_FW_HANDLE_TXBCN
582 			#ifdef CONFIG_SWTIMER_BASED_TXBCN
583 				#undef CONFIG_SWTIMER_BASED_TXBCN
584 			#endif
585 			#undef CONFIG_LIMITED_AP_NUM
586 			#define CONFIG_LIMITED_AP_NUM	4
587 		#endif
588 
589 		#endif /*CONFIG_HWMPCAP_GEN2*/
590 
591 		#ifdef CONFIG_HWMPCAP_GEN3
592 			#define CONFIG_PORT_BASED_TXBCN
593 			#undef CONFIG_SUPPORT_MULTI_BCN
594 			#undef CONFIG_SWTIMER_BASED_TXBCN
595 			#undef CONFIG_LIMITED_AP_NUM
596 			#define CONFIG_LIMITED_AP_NUM	4
597 			#ifdef CONFIG_PCI_HCI
598 			#define CONFIG_PORT_BASED_HIQ	/* 8814BU doesn't support */
599 			#endif
600 		#endif
601 	#endif /*CONFIG_AP_MODE*/
602 
603 	#ifdef CONFIG_HWMPCAP_GEN2 /*CONFIG_RTL8822B/CONFIG_RTL8821C/CONFIG_RTL8822C*/
604 	#define CONFIG_CLIENT_PORT_CFG
605 	#define CONFIG_NEW_NETDEV_HDL
606 	#endif/*CONFIG_HWMPCAP_GEN2*/
607 #endif/*(CONFIG_IFACE_NUMBER > 2)*/
608 
609 #if defined(CONFIG_MI_UNIQUE_MACADDR_BIT)
610 	#if !defined(CONFIG_MI_WITH_MBSSID_CAM)
611 		#error "CONFIG_MI_UNIQUE_MACADDR_BIT should not be used without multiple interface !!"
612 	#endif
613 	#if (CONFIG_MI_UNIQUE_MACADDR_BIT < 24) || ( 47 < CONFIG_MI_UNIQUE_MACADDR_BIT)
614 		#error "CONFIG_MI_UNIQUE_MACADDR_BIT should be the bit in NIC specific mac address(BIT[24:47] !!"
615 	#endif
616 #endif
617 
618 #define MACID_NUM_SW_LIMIT 32
619 #define SEC_CAM_ENT_NUM_SW_LIMIT 32
620 
621 #ifdef SEC_DEFAULT_KEY_SEARCH
622 	#if (CONFIG_IFACE_NUMBER >= 2)
623 		#error "Default Key Search only work with only one interface case!"
624 	#endif
625 #endif
626 
627 #if defined(CONFIG_WOWLAN) && (defined(CONFIG_RTL8822B) || defined(CONFIG_RTL8821C) || defined(CONFIG_RTL8814A) || defined(CONFIG_RTL8822C) || defined(CONFIG_RTL8814B))
628 	#define CONFIG_WOW_PATTERN_HW_CAM
629 #endif
630 
631 #ifndef CONFIG_TSF_UPDATE_PAUSE_FACTOR
632 #define CONFIG_TSF_UPDATE_PAUSE_FACTOR 200
633 #endif
634 
635 #ifndef CONFIG_TSF_UPDATE_RESTORE_FACTOR
636 #define CONFIG_TSF_UPDATE_RESTORE_FACTOR 5
637 #endif
638 
639 /*
640 	Mark CONFIG_DEAUTH_BEFORE_CONNECT by Arvin 2015/07/20
641 	If the failure of Wi-Fi connection is due to some irregular disconnection behavior (like unplug dongle,
642 	power down etc.) in last time, we can unmark this flag to avoid some unpredictable response from AP.
643 */
644 /*#define CONFIG_DEAUTH_BEFORE_CONNECT */
645 
646 /*#define CONFIG_WEXT_DONT_JOIN_BYSSID	*/
647 /* #include <rtl871x_byteorder.h> */
648 
649 
650 /*#define CONFIG_DOSCAN_IN_BUSYTRAFFIC	*/
651 /*#define CONFIG_PHDYM_FW_FIXRATE		*/	/*	Another way to fix tx rate	*/
652 
653 /*Don't release SDIO irq in suspend/resume procedure*/
654 #define CONFIG_RTW_SDIO_KEEP_IRQ	0
655 
656 /*
657  * Add by Lucas@2016/02/15
658  * For RX Aggregation
659  */
660 #if defined(CONFIG_SDIO_HCI) || defined(CONFIG_USB_RX_AGGREGATION)
661 	#define RTW_RX_AGGREGATION
662 #endif /* CONFIG_SDIO_HCI || CONFIG_USB_RX_AGGREGATION */
663 
664 #ifdef CONFIG_RTW_HOSTAPD_ACS
665 	#ifndef CONFIG_RTW_ACS
666 		#define CONFIG_RTW_ACS
667 	#endif
668 #endif
669 
670 #ifdef CONFIG_RTW_80211K
671 	#ifndef CONFIG_RTW_ACS
672 		#define CONFIG_RTW_ACS
673 	#endif
674 #endif /*CONFIG_RTW_80211K*/
675 
676 #ifdef DBG_CONFIG_ERROR_RESET
677 #ifndef CONFIG_IPS
678 #define CONFIG_IPS
679 #endif
680 #endif
681 
682 /* IPS */
683 #ifndef RTW_IPS_MODE
684 	#if defined(CONFIG_IPS)
685 		#define RTW_IPS_MODE 1
686 	#else
687 		#define RTW_IPS_MODE 0
688 	#endif
689 #endif /* !RTW_IPS_MODE */
690 
691 #if (RTW_IPS_MODE > 1 || RTW_IPS_MODE < 0)
692 	#error "The CONFIG_IPS_MODE value is wrong. Please follow HowTo_enable_the_power_saving_functionality.pdf.\n"
693 #endif
694 
695 /* LPS */
696 #ifndef RTW_LPS_MODE
697 	#if defined(CONFIG_LPS_PG) || defined(CONFIG_LPS_PG_DDMA)
698 		#define RTW_LPS_MODE 3
699 	#elif defined(CONFIG_LPS_LCLK)
700 		#define RTW_LPS_MODE 2
701 	#elif defined(CONFIG_LPS)
702 		#define RTW_LPS_MODE 1
703 	#else
704 		#define RTW_LPS_MODE 0
705 	#endif
706 #endif /* !RTW_LPS_MODE */
707 
708 #if (RTW_LPS_MODE > 3 || RTW_LPS_MODE < 0)
709 	#error "The CONFIG_LPS_MODE value is wrong. Please follow HowTo_enable_the_power_saving_functionality.pdf.\n"
710 #endif
711 
712 #ifndef RTW_LPS_1T1R
713 #define RTW_LPS_1T1R 0
714 #endif
715 
716 #ifndef RTW_WOW_LPS_1T1R
717 #define RTW_WOW_LPS_1T1R 0
718 #endif
719 
720 /* WOW LPS */
721 #ifndef RTW_WOW_LPS_MODE
722 	#if defined(CONFIG_LPS_PG) || defined(CONFIG_LPS_PG_DDMA)
723 		#define RTW_WOW_LPS_MODE 3
724 	#elif defined(CONFIG_LPS_LCLK)
725 		#define RTW_WOW_LPS_MODE 2
726 	#elif defined(CONFIG_LPS)
727 		#define RTW_WOW_LPS_MODE 1
728 	#else
729 		#define RTW_WOW_LPS_MODE 0
730 	#endif
731 #endif /* !RTW_WOW_LPS_MODE */
732 
733 #if (RTW_WOW_LPS_MODE > 3 || RTW_WOW_LPS_MODE < 0)
734 	#error "The RTW_WOW_LPS_MODE value is wrong. Please follow HowTo_enable_the_power_saving_functionality.pdf.\n"
735 #endif
736 
737 #ifdef RTW_REDUCE_SCAN_SWITCH_CH_TIME
738 #ifndef CONFIG_RTL8822B
739 	#error "Only 8822B support RTW_REDUCE_SCAN_SWITCH_CH_TIME"
740 #endif
741 	#ifndef RTW_CHANNEL_SWITCH_OFFLOAD
742 		#define RTW_CHANNEL_SWITCH_OFFLOAD
743 	#endif
744 #endif
745 
746 #define CONFIG_RTW_TPT_MODE
747 
748 #ifdef CONFIG_PCI_BCN_POLLING
749 #define CONFIG_BCN_ICF
750 #endif
751 
752 #ifndef CONFIG_PCI_MSI
753 #define CONFIG_RTW_PCI_MSI_DISABLE
754 #endif
755 
756 #if defined(CONFIG_PCI_DYNAMIC_ASPM_L1_LATENCY) ||	\
757     defined(CONFIG_PCI_DYNAMIC_ASPM_LINK_CTRL)
758 #define CONFIG_PCI_DYNAMIC_ASPM
759 #endif
760 
761 #if 0
762 /* Debug related compiler flags */
763 #define DBG_THREAD_PID	/* Add thread pid to debug message prefix */
764 #define DBG_CPU_INFO	/* Add CPU info to debug message prefix */
765 #endif
766 
767 #endif /* __DRV_CONF_H__ */
768