xref: /OK3568_Linux_fs/external/rkwifibt/drivers/rtl8821cs/include/autoconf.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /******************************************************************************
2*4882a593Smuzhiyun  *
3*4882a593Smuzhiyun  * Copyright(c) 2016 - 2017 Realtek Corporation.
4*4882a593Smuzhiyun  *
5*4882a593Smuzhiyun  * This program is free software; you can redistribute it and/or modify it
6*4882a593Smuzhiyun  * under the terms of version 2 of the GNU General Public License as
7*4882a593Smuzhiyun  * published by the Free Software Foundation.
8*4882a593Smuzhiyun  *
9*4882a593Smuzhiyun  * This program is distributed in the hope that it will be useful, but WITHOUT
10*4882a593Smuzhiyun  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11*4882a593Smuzhiyun  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12*4882a593Smuzhiyun  * more details.
13*4882a593Smuzhiyun  *
14*4882a593Smuzhiyun  *****************************************************************************/
15*4882a593Smuzhiyun /* For debug */
16*4882a593Smuzhiyun /*#define CONFIG_DISABLE_ODM*/
17*4882a593Smuzhiyun /*#define CONFIG_NO_FW*/
18*4882a593Smuzhiyun #define CONFIG_IQK_MONITOR
19*4882a593Smuzhiyun #define DBG_C2H_MAC_HIDDEN_RPT_HANDLE	1
20*4882a593Smuzhiyun #define DBG_H2C_CONTENT
21*4882a593Smuzhiyun 
22*4882a593Smuzhiyun #ifndef DBG_MEM_ALLOC
23*4882a593Smuzhiyun #define DBG_MEM_ALLOC
24*4882a593Smuzhiyun #endif
25*4882a593Smuzhiyun 
26*4882a593Smuzhiyun /*#define DBG_XMIT_BLOCK*/
27*4882a593Smuzhiyun 
28*4882a593Smuzhiyun /*#define DBG_RX_COUNTER_DUMP*/
29*4882a593Smuzhiyun #define CONFIG_ERROR_STATE_MONITOR
30*4882a593Smuzhiyun /*#define CONFIG_MONITOR_OVERFLOW*/
31*4882a593Smuzhiyun 
32*4882a593Smuzhiyun #define CONFIG_SDIO_INDIRECT_ACCESS
33*4882a593Smuzhiyun #define DBG_SDIO_INDIRECT_ACCESS
34*4882a593Smuzhiyun 
35*4882a593Smuzhiyun /*#define CONFIG_SUPPORT_TRX_SHARED*/
36*4882a593Smuzhiyun #ifdef CONFIG_SUPPORT_TRX_SHARED
37*4882a593Smuzhiyun #define DFT_TRX_SHARE_MODE	0	/*default trx share mode,mode could be 0 or 1*/
38*4882a593Smuzhiyun #endif
39*4882a593Smuzhiyun #define CONFIG_IO_CHECK_IN_ANA_LOW_CLK
40*4882a593Smuzhiyun 
41*4882a593Smuzhiyun /*
42*4882a593Smuzhiyun  * Public General Config
43*4882a593Smuzhiyun  */
44*4882a593Smuzhiyun #define AUTOCONF_INCLUDED
45*4882a593Smuzhiyun 
46*4882a593Smuzhiyun #define RTL871X_MODULE_NAME "8821CS"
47*4882a593Smuzhiyun #define DRV_NAME "rtl8821cs"
48*4882a593Smuzhiyun 
49*4882a593Smuzhiyun /* Set CONFIG_RTL8821C from Makefile */
50*4882a593Smuzhiyun #ifndef CONFIG_RTL8821C
51*4882a593Smuzhiyun #define CONFIG_RTL8821C
52*4882a593Smuzhiyun #endif
53*4882a593Smuzhiyun #define CONFIG_SDIO_HCI
54*4882a593Smuzhiyun #define PLATFORM_LINUX
55*4882a593Smuzhiyun 
56*4882a593Smuzhiyun 
57*4882a593Smuzhiyun /*
58*4882a593Smuzhiyun  * Wi-Fi Functions Config
59*4882a593Smuzhiyun  */
60*4882a593Smuzhiyun 
61*4882a593Smuzhiyun #define CONFIG_RECV_REORDERING_CTRL
62*4882a593Smuzhiyun 
63*4882a593Smuzhiyun #define CONFIG_80211N_HT
64*4882a593Smuzhiyun #define CONFIG_80211AC_VHT
65*4882a593Smuzhiyun #ifdef CONFIG_80211AC_VHT
66*4882a593Smuzhiyun 	#ifndef CONFIG_80211N_HT
67*4882a593Smuzhiyun 		#define CONFIG_80211N_HT
68*4882a593Smuzhiyun 	#endif
69*4882a593Smuzhiyun #endif
70*4882a593Smuzhiyun 
71*4882a593Smuzhiyun /* Set CONFIG_IOCTL_CFG80211 from Makefile */
72*4882a593Smuzhiyun #ifdef CONFIG_IOCTL_CFG80211
73*4882a593Smuzhiyun 	/*
74*4882a593Smuzhiyun 	 * Indecate new sta asoc through cfg80211_new_sta
75*4882a593Smuzhiyun 	 * If kernel version >= 3.2 or
76*4882a593Smuzhiyun 	 * version < 3.2 but already apply cfg80211 patch,
77*4882a593Smuzhiyun 	 * RTW_USE_CFG80211_STA_EVENT must be defiend!
78*4882a593Smuzhiyun 	 */
79*4882a593Smuzhiyun 	/* Set RTW_USE_CFG80211_STA_EVENT from Makefile */
80*4882a593Smuzhiyun 	#define CONFIG_CFG80211_FORCE_COMPATIBLE_2_6_37_UNDER
81*4882a593Smuzhiyun 	/* #define CONFIG_DEBUG_CFG80211 */
82*4882a593Smuzhiyun 	#define CONFIG_SET_SCAN_DENY_TIMER
83*4882a593Smuzhiyun #endif /* CONFIG_IOCTL_CFG80211 */
84*4882a593Smuzhiyun 
85*4882a593Smuzhiyun #ifdef CONFIG_AP_MODE
86*4882a593Smuzhiyun 	#define CONFIG_INTERRUPT_BASED_TXBCN /* Tx Beacon when driver receive related interrupt*/
87*4882a593Smuzhiyun 	#if defined(CONFIG_CONCURRENT_MODE) && defined(CONFIG_INTERRUPT_BASED_TXBCN)
88*4882a593Smuzhiyun 		#undef CONFIG_INTERRUPT_BASED_TXBCN
89*4882a593Smuzhiyun 	#endif
90*4882a593Smuzhiyun 	#ifdef CONFIG_INTERRUPT_BASED_TXBCN
91*4882a593Smuzhiyun 		#define CONFIG_INTERRUPT_BASED_TXBCN_EARLY_INT
92*4882a593Smuzhiyun 		/* #define CONFIG_INTERRUPT_BASED_TXBCN_BCN_OK_ERR */
93*4882a593Smuzhiyun 	#endif
94*4882a593Smuzhiyun 	#define CONFIG_NATIVEAP_MLME
95*4882a593Smuzhiyun 	#ifndef CONFIG_NATIVEAP_MLME
96*4882a593Smuzhiyun 		#define CONFIG_HOSTAPD_MLME
97*4882a593Smuzhiyun 	#endif
98*4882a593Smuzhiyun 	/*#define CONFIG_FIND_BEST_CHANNEL*/
99*4882a593Smuzhiyun #endif
100*4882a593Smuzhiyun 
101*4882a593Smuzhiyun #ifdef CONFIG_P2P
102*4882a593Smuzhiyun 	#define CONFIG_WFD	/* Wi-Fi display */
103*4882a593Smuzhiyun 	#define CONFIG_P2P_REMOVE_GROUP_INFO
104*4882a593Smuzhiyun 	/*#define CONFIG_DBG_P2P*/
105*4882a593Smuzhiyun 	#define CONFIG_P2P_PS
106*4882a593Smuzhiyun 	/*#define CONFIG_P2P_IPS*/
107*4882a593Smuzhiyun 	#define CONFIG_P2P_OP_CHK_SOCIAL_CH
108*4882a593Smuzhiyun 	#define CONFIG_CFG80211_ONECHANNEL_UNDER_CONCURRENT  /* Replace CONFIG_P2P_CHK_INVITE_CH_LIST flag */
109*4882a593Smuzhiyun 	/*#define CONFIG_P2P_INVITE_IOT*/
110*4882a593Smuzhiyun #endif /* CONFIG_P2P */
111*4882a593Smuzhiyun 
112*4882a593Smuzhiyun /* Set CONFIG_TDLS from Makefile */
113*4882a593Smuzhiyun #ifdef CONFIG_TDLS
114*4882a593Smuzhiyun 	#define CONFIG_TDLS_DRIVER_SETUP
115*4882a593Smuzhiyun /*	#ifndef CONFIG_WFD
116*4882a593Smuzhiyun 		#define CONFIG_WFD
117*4882a593Smuzhiyun 	#endif*/
118*4882a593Smuzhiyun /*	#define CONFIG_TDLS_AUTOSETUP*/
119*4882a593Smuzhiyun 	#define CONFIG_TDLS_AUTOCHECKALIVE
120*4882a593Smuzhiyun 	/*
121*4882a593Smuzhiyun 	 * Enable "CONFIG_TDLS_CH_SW" by default,
122*4882a593Smuzhiyun 	 * however limit it to only work in wifi logo test mode
123*4882a593Smuzhiyun 	 * but not in normal mode currently
124*4882a593Smuzhiyun 	 */
125*4882a593Smuzhiyun 	#define CONFIG_TDLS_CH_SW
126*4882a593Smuzhiyun #endif /* CONFIG_TDLS */
127*4882a593Smuzhiyun 
128*4882a593Smuzhiyun 
129*4882a593Smuzhiyun /*#define CONFIG_RTW_80211K*/
130*4882a593Smuzhiyun 
131*4882a593Smuzhiyun /*
132*4882a593Smuzhiyun  * Hareware/Firmware Related Config
133*4882a593Smuzhiyun  */
134*4882a593Smuzhiyun /* Set CONFIG_BT_COEXIST from Makefile */
135*4882a593Smuzhiyun /* Set CONFIG_ANTENNA_DIVERSITY from Makefile */
136*4882a593Smuzhiyun /*#define SUPPORT_HW_RFOFF_DETECTED*/
137*4882a593Smuzhiyun 
138*4882a593Smuzhiyun /*#define CONFIG_RTW_LED*/
139*4882a593Smuzhiyun #ifdef CONFIG_RTW_LED
140*4882a593Smuzhiyun 	/*#define CONFIG_RTW_SW_LED*/
141*4882a593Smuzhiyun #endif /* CONFIG_RTW_LED */
142*4882a593Smuzhiyun #define CONFIG_XMIT_ACK
143*4882a593Smuzhiyun #ifdef CONFIG_XMIT_ACK
144*4882a593Smuzhiyun 	#define CONFIG_ACTIVE_KEEP_ALIVE_CHECK
145*4882a593Smuzhiyun #endif
146*4882a593Smuzhiyun 
147*4882a593Smuzhiyun #define DISABLE_BB_RF		0
148*4882a593Smuzhiyun #define RTW_NOTCH_FILTER	0 /* 0:Disable, 1:Enable */
149*4882a593Smuzhiyun 
150*4882a593Smuzhiyun 
151*4882a593Smuzhiyun /*
152*4882a593Smuzhiyun  * Software feature Related Config
153*4882a593Smuzhiyun  */
154*4882a593Smuzhiyun #define RTW_HALMAC		/* Use HALMAC architecture, necessary for 8821C */
155*4882a593Smuzhiyun 
156*4882a593Smuzhiyun 
157*4882a593Smuzhiyun /*
158*4882a593Smuzhiyun  * Interface Related Config
159*4882a593Smuzhiyun  */
160*4882a593Smuzhiyun #define CONFIG_TX_AGGREGATION
161*4882a593Smuzhiyun #define CONFIG_XMIT_THREAD_MODE	/* necessary for SDIO */
162*4882a593Smuzhiyun /*#define CONFIG_SDIO_TX_ENABLE_AVAL_INT => Related MAC reg must setting => HAL-MAC ?? */
163*4882a593Smuzhiyun #define CONFIG_SDIO_RX_COPY
164*4882a593Smuzhiyun 
165*4882a593Smuzhiyun #define CONFIG_RECV_THREAD_MODE
166*4882a593Smuzhiyun #ifdef CONFIG_RECV_THREAD_MODE
167*4882a593Smuzhiyun #define RTW_RECV_THREAD_HIGH_PRIORITY
168*4882a593Smuzhiyun #endif/*CONFIG_RECV_THREAD_MODE*/
169*4882a593Smuzhiyun 
170*4882a593Smuzhiyun #ifdef CONFIG_RTW_NAPI
171*4882a593Smuzhiyun #define CONFIG_RTW_NAPI_DYNAMIC
172*4882a593Smuzhiyun #define CONFIG_RTW_NAPI_V2
173*4882a593Smuzhiyun #endif
174*4882a593Smuzhiyun 
175*4882a593Smuzhiyun /*#define CONFIG_BEAMFORMING*/
176*4882a593Smuzhiyun 
177*4882a593Smuzhiyun #define CONFIG_REDUCE_TX_CPU_LOADING
178*4882a593Smuzhiyun 
179*4882a593Smuzhiyun /*
180*4882a593Smuzhiyun  * Others
181*4882a593Smuzhiyun  */
182*4882a593Smuzhiyun /*#define CONFIG_MAC_LOOPBACK_DRIVER*/
183*4882a593Smuzhiyun #define CONFIG_SKB_COPY		/* for amsdu */
184*4882a593Smuzhiyun #define CONFIG_NEW_SIGNAL_STAT_PROCESS
185*4882a593Smuzhiyun #define CONFIG_EMBEDDED_FWIMG
186*4882a593Smuzhiyun /*#define CONFIG_FILE_FWIMG*/
187*4882a593Smuzhiyun #define CONFIG_LONG_DELAY_ISSUE
188*4882a593Smuzhiyun /*#define CONFIG_PATCH_JOIN_WRONG_CHANNEL*/
189*4882a593Smuzhiyun #define CONFIG_RX_PACKET_APPEND_FCS
190*4882a593Smuzhiyun 
191*4882a593Smuzhiyun 
192*4882a593Smuzhiyun /*
193*4882a593Smuzhiyun  * Platform
194*4882a593Smuzhiyun  */
195*4882a593Smuzhiyun #ifdef CONFIG_PLATFORM_INTEL_BYT
196*4882a593Smuzhiyun #ifdef CONFIG_CFG80211_FORCE_COMPATIBLE_2_6_37_UNDER
197*4882a593Smuzhiyun #undef CONFIG_CFG80211_FORCE_COMPATIBLE_2_6_37_UNDER
198*4882a593Smuzhiyun #endif
199*4882a593Smuzhiyun #endif /* CONFIG_PLATFORM_INTEL_BYT */
200*4882a593Smuzhiyun 
201*4882a593Smuzhiyun 
202*4882a593Smuzhiyun /*
203*4882a593Smuzhiyun  * Auto Config Section
204*4882a593Smuzhiyun  */
205*4882a593Smuzhiyun #ifdef CONFIG_MAC_LOOPBACK_DRIVER
206*4882a593Smuzhiyun #undef CONFIG_IOCTL_CFG80211
207*4882a593Smuzhiyun #undef CONFIG_AP_MODE
208*4882a593Smuzhiyun #undef CONFIG_NATIVEAP_MLME
209*4882a593Smuzhiyun #undef CONFIG_POWER_SAVING
210*4882a593Smuzhiyun #undef CONFIG_BT_COEXIST
211*4882a593Smuzhiyun #undef CONFIG_ANTENNA_DIVERSITY
212*4882a593Smuzhiyun #undef SUPPORT_HW_RFOFF_DETECTED
213*4882a593Smuzhiyun #endif /* CONFIG_MAC_LOOPBACK_DRIVER */
214*4882a593Smuzhiyun 
215*4882a593Smuzhiyun #ifdef CONFIG_MP_INCLUDED
216*4882a593Smuzhiyun 	#define MP_DRIVER	1
217*4882a593Smuzhiyun 	#define CONFIG_MP_IWPRIV_SUPPORT
218*4882a593Smuzhiyun 	/* disable unnecessary functions for MP*/
219*4882a593Smuzhiyun 	/*#undef CONFIG_POWER_SAVING*/
220*4882a593Smuzhiyun 	/*#undef CONFIG_BT_COEXIST*/
221*4882a593Smuzhiyun 	/*#undef CONFIG_ANTENNA_DIVERSITY*/
222*4882a593Smuzhiyun 	/*#undef SUPPORT_HW_RFOFF_DETECTED*/
223*4882a593Smuzhiyun #else /* !CONFIG_MP_INCLUDED */
224*4882a593Smuzhiyun 	#define MP_DRIVER	0
225*4882a593Smuzhiyun 	#undef CONFIG_MP_IWPRIV_SUPPORT
226*4882a593Smuzhiyun #endif /* !CONFIG_MP_INCLUDED */
227*4882a593Smuzhiyun 
228*4882a593Smuzhiyun #ifdef CONFIG_POWER_SAVING
229*4882a593Smuzhiyun 	#define CONFIG_IPS
230*4882a593Smuzhiyun 	#define CONFIG_LPS
231*4882a593Smuzhiyun 
232*4882a593Smuzhiyun 	#if defined(CONFIG_LPS) && (defined(CONFIG_GSPI_HCI) || defined(CONFIG_SDIO_HCI))
233*4882a593Smuzhiyun 	#define CONFIG_LPS_LCLK
234*4882a593Smuzhiyun 	#endif
235*4882a593Smuzhiyun 
236*4882a593Smuzhiyun 	#ifdef CONFIG_LPS
237*4882a593Smuzhiyun 		#define CONFIG_CHECK_LEAVE_LPS
238*4882a593Smuzhiyun 		#define CONFIG_LPS_CHK_BY_TP
239*4882a593Smuzhiyun 		#ifdef CONFIG_LPS_CHK_BY_TP
240*4882a593Smuzhiyun 			#define LPS_TX_TP_TH		12 /*Mbps*/
241*4882a593Smuzhiyun 			#define LPS_RX_TP_TH	12 /*Mbps*/
242*4882a593Smuzhiyun 			#define LPS_BI_TP_TH		12 /*Mbps*//*TX + RX*/
243*4882a593Smuzhiyun 			#define LPS_TP_CHK_CNT	5 /*10s*/
244*4882a593Smuzhiyun 			#define LPS_CHK_PKTS_TX 100
245*4882a593Smuzhiyun 			#define LPS_CHK_PKTS_RX 100
246*4882a593Smuzhiyun 		#endif
247*4882a593Smuzhiyun 	#endif
248*4882a593Smuzhiyun 
249*4882a593Smuzhiyun 	#ifdef CONFIG_LPS_LCLK
250*4882a593Smuzhiyun 	/*#define CONFIG_DETECT_CPWM_BY_POLLING*/
251*4882a593Smuzhiyun 	#define CONFIG_LPS_RPWM_TIMER
252*4882a593Smuzhiyun 	#if defined(CONFIG_LPS_RPWM_TIMER) || defined(CONFIG_DETECT_CPWM_BY_POLLING)
253*4882a593Smuzhiyun 	#define LPS_RPWM_WAIT_MS 300
254*4882a593Smuzhiyun 	#endif
255*4882a593Smuzhiyun 	#define CONFIG_LPS_LCLK_WD_TIMER /* Watch Dog timer in LPS LCLK */
256*4882a593Smuzhiyun 	/*#define CONFIG_LPS_PG*/
257*4882a593Smuzhiyun 	#endif
258*4882a593Smuzhiyun 
259*4882a593Smuzhiyun 	#ifdef CONFIG_IPS
260*4882a593Smuzhiyun 	#define CONFIG_IPS_CHECK_IN_WD /* Do IPS Check in WatchDog. */
261*4882a593Smuzhiyun 	/*#define CONFIG_FWLPS_IN_IPS*/ /* issue H2C command to let FW do LPS when entering IPS */
262*4882a593Smuzhiyun 	#endif
263*4882a593Smuzhiyun 
264*4882a593Smuzhiyun 	#ifdef CONFIG_LPS
265*4882a593Smuzhiyun 		#define CONFIG_WMMPS_STA 1
266*4882a593Smuzhiyun 	#endif /* CONFIG_LPS */
267*4882a593Smuzhiyun #endif /* CONFIG_POWER_SAVING */
268*4882a593Smuzhiyun 
269*4882a593Smuzhiyun #ifdef CONFIG_BT_COEXIST
270*4882a593Smuzhiyun 	/* necessary for PHYDM and BT-Coex */
271*4882a593Smuzhiyun 	#define BT_30_SUPPORT 1
272*4882a593Smuzhiyun 
273*4882a593Smuzhiyun 	#ifndef CONFIG_LPS
274*4882a593Smuzhiyun 		#define CONFIG_LPS	/* download reserved page to FW */
275*4882a593Smuzhiyun 	#endif
276*4882a593Smuzhiyun #else /* !CONFIG_BT_COEXIST */
277*4882a593Smuzhiyun 	#define BT_30_SUPPORT 0
278*4882a593Smuzhiyun #endif /* !CONFIG_BT_COEXIST */
279*4882a593Smuzhiyun 
280*4882a593Smuzhiyun #ifdef CONFIG_WOWLAN
281*4882a593Smuzhiyun 	#define CONFIG_GTK_OL
282*4882a593Smuzhiyun 	/* #define CONFIG_ARP_KEEP_ALIVE */
283*4882a593Smuzhiyun #endif /* CONFIG_WOWLAN */
284*4882a593Smuzhiyun 
285*4882a593Smuzhiyun #ifdef CONFIG_GPIO_WAKEUP
286*4882a593Smuzhiyun 	#ifndef WAKEUP_GPIO_IDX
287*4882a593Smuzhiyun 		#define WAKEUP_GPIO_IDX	10	/* WIFI Chip Side */
288*4882a593Smuzhiyun 	#endif /*!WAKEUP_GPIO_IDX*/
289*4882a593Smuzhiyun #endif /* CONFIG_GPIO_WAKEUP */
290*4882a593Smuzhiyun 
291*4882a593Smuzhiyun #ifdef CONFIG_ANTENNA_DIVERSITY
292*4882a593Smuzhiyun #define CONFIG_HW_ANTENNA_DIVERSITY
293*4882a593Smuzhiyun #endif /* CONFIG_ANTENNA_DIVERSITY */
294*4882a593Smuzhiyun 
295*4882a593Smuzhiyun #ifdef CONFIG_PLATFORM_RTK129X
296*4882a593Smuzhiyun 	#ifdef CONFIG_REDUCE_TX_CPU_LOADING
297*4882a593Smuzhiyun 	#undef CONFIG_REDUCE_TX_CPU_LOADING
298*4882a593Smuzhiyun 	#endif
299*4882a593Smuzhiyun #endif
300*4882a593Smuzhiyun 
301*4882a593Smuzhiyun /*
302*4882a593Smuzhiyun  * Debug Related Config
303*4882a593Smuzhiyun  */
304*4882a593Smuzhiyun #ifdef CONFIG_RTW_DEBUG
305*4882a593Smuzhiyun 	#define DBG	1	/* for ODM & BTCOEX debug */
306*4882a593Smuzhiyun #else /* !CONFIG_RTW_DEBUG */
307*4882a593Smuzhiyun 	#define DBG	0	/* for ODM & BTCOEX debug */
308*4882a593Smuzhiyun #endif /* CONFIG_RTW_DEBUG */
309*4882a593Smuzhiyun 
310*4882a593Smuzhiyun #define DBG_CONFIG_ERROR_DETECT
311*4882a593Smuzhiyun /*#define DBG_XMIT_BUF*/
312*4882a593Smuzhiyun /*#define DBG_XMIT_BUF_EXT*/
313*4882a593Smuzhiyun /*#define CONFIG_FW_C2H_DEBUG*/
314