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