tizen 2.4 release
[profile/mobile/platform/kernel/linux-3.10-sc7730.git] / drivers / net / wireless / bcmdhd / dhd_sec_feature.h
1 /*
2  * Customer HW 4 dependant file
3  *
4  * Copyright (C) 1999-2015, Broadcom Corporation
5  * 
6  *      Unless you and Broadcom execute a separate written software license
7  * agreement governing use of this software, this software is licensed to you
8  * under the terms of the GNU General Public License version 2 (the "GPL"),
9  * available at http://www.broadcom.com/licenses/GPLv2.php, with the
10  * following added to such license:
11  * 
12  *      As a special exception, the copyright holders of this software give you
13  * permission to link this software with independent modules, and to copy and
14  * distribute the resulting executable under terms of your choice, provided that
15  * you also meet, for each linked independent module, the terms and conditions of
16  * the license of that module.  An independent module is a module which is not
17  * derived from this software.  The special exception does not apply to any
18  * modifications of the software.
19  * 
20  *      Notwithstanding the above, under no circumstances may you combine this
21  * software in any way with any other Broadcom software provided under a license
22  * other than the GPL, without Broadcom's express prior written consent.
23  *
24  * $Id: dhd_sec_feature.h$
25  */
26
27
28 /*
29  * ** Desciption ***
30  * 1. Module vs COB
31  *    If your model's WIFI HW chip is COB type, you must add below feature
32  *    - #undef USE_CID_CHECK
33  *    - #define READ_MACADDR
34  *    Because COB type chip have not CID and Mac address.
35  *    So, you must add below feature to defconfig file.
36  *    - CONFIG_WIFI_BROADCOM_COB
37  *
38  * 2. PROJECTS
39  *    If you want add some feature only own Project, you can add it in 'PROJECTS' part.
40  *
41  * 3. Region code
42  *    If you want add some feature only own region model, you can use below code.
43  *    - 100 : EUR OPEN
44  *    - 101 : EUR ORG
45  *    - 200 : KOR OPEN
46  *    - 201 : KOR SKT
47  *    - 202 : KOR KTT
48  *    - 203 : KOR LGT
49  *    - 300 : CHN OPEN
50  *    - 400 : USA OPEN
51  *    - 401 : USA ATT
52  *    - 402 : USA TMO
53  *    - 403 : USA VZW
54  *    - 404 : USA SPR
55  *    - 405 : USA USC
56  *    You can refer how to using it below this file.
57  *    And, you can add more region code, too.
58  */
59
60 #ifndef _dhd_sec_feature_h_
61 #define _dhd_sec_feature_h_
62
63 #include <linuxver.h>
64
65 /* For COB type feature */
66 #ifdef CONFIG_WIFI_BROADCOM_COB
67 #undef USE_CID_CHECK
68 #define READ_MACADDR
69 #endif  /* CONFIG_WIFI_BROADCOM_COB */
70
71 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 4, 0)) && (defined(CONFIG_BCM4334) || \
72         defined(CONFIG_BCM4334_MODULE))
73 #define RXFRAME_THREAD
74 #endif /* (LINUX_VERSION  >= VERSION(3, 4, 0)) && ( CONFIG_BCM4334 || CONFIG_BCM4334_MODULE) */
75
76 /* PROJECTS START */
77
78 #if defined(CONFIG_MACH_SAMSUNG_ESPRESSO) || defined(CONFIG_MACH_SAMSUNG_ESPRESSO_10)
79 #define READ_MACADDR
80 #define HW_OOB
81 #endif /* CONFIG_MACH_SAMSUNG_ESPRESSO && CONFIG_MACH_SAMSUNG_ESPRESSO_10 */
82
83 #if defined(CONFIG_MACH_UNIVERSAL5430)
84 #undef CUSTOM_SET_CPUCORE
85 #define PRIMARY_CPUCORE 0
86 #define DPC_CPUCORE 4
87 #define RXF_CPUCORE 7
88 #define ARGOS_CPU_SCHEDULER
89 #elif defined(CONFIG_MACH_HL3G) || defined(CONFIG_MACH_HLLTE) || \
90         defined(CONFIG_MACH_M2LTE) || \
91         defined(CONFIG_MACH_UNIVERSAL5422)
92 #define CUSTOM_SET_CPUCORE
93 #define PRIMARY_CPUCORE 0
94 #define MAX_RETRY_SET_CPUCORE 5
95 #define DPC_CPUCORE 4
96 #define RXF_CPUCORE 5
97 #endif /* CONFIG_MACH_HL3G || CONFIG_MACH_HLLTE */
98
99 /* Q1 also uses this feature */
100 #if defined(CONFIG_MACH_U1) || defined(CONFIG_MACH_TRATS)
101 #ifdef CONFIG_MACH_Q1_BD
102 #define HW_OOB
103 #endif /* CONFIG_MACH_Q1_BD */
104 #define USE_CID_CHECK
105 #define WRITE_MACADDR
106 #endif /* CONFIG_MACH_U1 || CONFIG_MACH_TRATS */
107
108 #ifdef CONFIG_ARCH_MSM7X30
109 #define HW_OOB
110 #define READ_MACADDR
111 #endif /* CONFIG_ARCH_MSM7X30 */
112
113 #if defined(CONFIG_MACH_GC1) || defined(CONFIG_MACH_U1_NA_SPR) || \
114         defined(CONFIG_MACH_VIENNAEUR) || defined(CONFIG_MACH_LT03EUR) || \
115         defined(CONFIG_MACH_LT03SKT) || defined(CONFIG_MACH_LT03KTT) || \
116         defined(CONFIG_MACH_LT03LGT) || defined(CONFIG_V1A) || defined(CONFIG_N1A) || \
117         defined(CONFIG_N2A) || defined(CONFIG_V2A) || defined(CONFIG_MACH_VIENNAEUR)
118 #undef USE_CID_CHECK
119 #define READ_MACADDR
120 #endif  /* CONFIG_MACH_GC1 || CONFIG_MACH_U1_NA_SPR || CONFIG_MACH_VIENNAEUR ||
121          * CONFIG_MACH_LT03EUR || CONFIG_MACH_LT03SKT || CONFIG_MACH_LT03KTT ||
122          * CONFIG_MACH_LT03LGT || CONFIG_V1A ||
123          * CONFIG_N1A || CONFIG_N2A || CONFIG_V2A ||
124          * CONFIG_MACH_VIENNAEUR
125          */
126
127 #ifdef CONFIG_MACH_P10
128 #define READ_MACADDR
129 #endif /* CONFIG_MACH_P10 */
130
131 #ifdef CONFIG_ARCH_MSM8960
132 #undef WIFI_TURNOFF_DELAY
133 #define WIFI_TURNOFF_DELAY      200
134 #endif /* CONFIG_ARCH_MSM8960 */
135
136 /* PROJECTS END */
137
138
139 /* REGION CODE START */
140
141 #ifndef CONFIG_WLAN_REGION_CODE
142 #define CONFIG_WLAN_REGION_CODE 100
143 #endif /* CONFIG_WLAN_REGION_CODE */
144
145 #if (CONFIG_WLAN_REGION_CODE >= 100) && (CONFIG_WLAN_REGION_CODE < 200) /* EUR */
146 #if (CONFIG_WLAN_REGION_CODE == 101) /* EUR ORG */
147 /* GAN LITE NAT KEEPALIVE FILTER */
148 #define GAN_LITE_NAT_KEEPALIVE_FILTER
149 #endif /* CONFIG_WLAN_REGION_CODE == 101 */
150 #endif /* CONFIG_WLAN_REGION_CODE >= 100 && CONFIG_WLAN_REGION_CODE < 200 */
151
152 #if defined(CONFIG_V1A) || defined(CONFIG_V2A) || defined(CONFIG_MACH_VIENNAEUR)
153 #define SUPPORT_MULTIPLE_CHIPS
154 #endif /* CONFIG_V1A || CONFIG_V2A || CONFIG_MACH_VIENNAEUR */
155
156 #if (CONFIG_WLAN_REGION_CODE >= 200) && (CONFIG_WLAN_REGION_CODE < 300) /* KOR */
157 #undef USE_INITIAL_2G_SCAN
158 #ifndef ROAM_ENABLE
159 #define ROAM_ENABLE
160 #endif /* ROAM_ENABLE */
161 #ifndef ROAM_API
162 #define ROAM_API
163 #endif /* ROAM_API */
164 #ifndef ROAM_CHANNEL_CACHE
165 #define ROAM_CHANNEL_CACHE
166 #endif /* ROAM_CHANNEL_CACHE */
167 #ifndef OKC_SUPPORT
168 #define OKC_SUPPORT
169 #endif /* OKC_SUPPORT */
170
171 #ifndef ROAM_AP_ENV_DETECTION
172 #define ROAM_AP_ENV_DETECTION
173 #endif /* ROAM_AP_ENV_DETECTION */
174
175 #undef WRITE_MACADDR
176 #ifndef READ_MACADDR
177 #define READ_MACADDR
178 #endif /* READ_MACADDR */
179
180 #if (CONFIG_WLAN_REGION_CODE == 201) /* SKT */
181 #ifdef CONFIG_MACH_UNIVERSAL5410
182 /* Make CPU core clock 300MHz & assign dpc thread workqueue to CPU1 */
183 #define FIX_CPU_MIN_CLOCK
184 #endif /* CONFIG_MACH_UNIVERSAL5410 */
185 #endif /* CONFIG_WLAN_REGION_CODE == 201 */
186
187 #if (CONFIG_WLAN_REGION_CODE == 202) /* KTT */
188 #define VLAN_MODE_OFF
189 #define CUSTOM_KEEP_ALIVE_SETTING       30000
190 #define FULL_ROAMING_SCAN_PERIOD_60_SEC
191
192 #ifdef CONFIG_MACH_UNIVERSAL5410
193 /* Make CPU core clock 300MHz & assign dpc thread workqueue to CPU1 */
194 #define FIX_CPU_MIN_CLOCK
195 #endif /* CONFIG_MACH_UNIVERSAL5410 */
196 #endif /* CONFIG_WLAN_REGION_CODE == 202 */
197
198 #if (CONFIG_WLAN_REGION_CODE == 203) /* LGT */
199 #ifdef CONFIG_MACH_UNIVERSAL5410
200 /* Make CPU core clock 300MHz & assign dpc thread workqueue to CPU1 */
201 #define FIX_CPU_MIN_CLOCK
202 #define FIX_BUS_MIN_CLOCK
203 #endif /* CONFIG_MACH_UNIVERSAL5410 */
204 #endif /* CONFIG_WLAN_REGION_CODE == 203 */
205 #endif /* CONFIG_WLAN_REGION_CODE >= 200 && CONFIG_WLAN_REGION_CODE < 300 */
206
207 #if (CONFIG_WLAN_REGION_CODE >= 300) && (CONFIG_WLAN_REGION_CODE < 400) /* CHN */
208 #define BCMWAPI_WPI
209 #define BCMWAPI_WAI
210 #endif /* CONFIG_WLAN_REGION_CODE >= 300 && CONFIG_WLAN_REGION_CODE < 400 */
211
212 #if (CONFIG_WLAN_REGION_CODE == 402) /* TMO */
213 #undef CUSTOM_SUSPEND_BCN_LI_DTIM
214 #define CUSTOM_SUSPEND_BCN_LI_DTIM 3
215 #endif /* CONFIG_WLAN_REGION_CODE == 402 */
216
217 /* REGION CODE END */
218
219 #if !defined(READ_MACADDR) && !defined(WRITE_MACADDR) && !defined(RDWR_KORICS_MACADDR) \
220         && !defined(RDWR_MACADDR)
221 #define GET_MAC_FROM_OTP
222 #define SHOW_NVRAM_TYPE
223 #endif /* !READ_MACADDR && !WRITE_MACADDR && !RDWR_KORICS_MACADDR && !RDWR_MACADDR */
224
225 #define WRITE_WLANINFO
226
227 #if defined(CONFIG_MACH_KONA)
228 #define DISABLE_FLOW_CONTROL
229 #endif /* CONFIG_MACH_KONA */
230 #endif /* _dhd_sec_feature_h_ */