blob: 03d9615564e27134ab7e6d7b045fb57a26ca3f03 [file] [log] [blame]
Jeff Johnson295189b2012-06-20 16:38:30 -07001/*
Gopichand Nakkala92f07d82013-01-08 21:16:34 -08002 * Copyright (c) 2012-2013, The Linux Foundation. All rights reserved.
3 *
4 * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
5 *
6 *
7 * Permission to use, copy, modify, and/or distribute this software for
8 * any purpose with or without fee is hereby granted, provided that the
9 * above copyright notice and this permission notice appear in all
10 * copies.
11 *
12 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
13 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
14 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
15 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
16 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
17 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
18 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
19 * PERFORMANCE OF THIS SOFTWARE.
20 */
21/*
Jeff Johnson32d95a32012-09-10 13:15:23 -070022 * Copyright (c) 2012, The Linux Foundation. All rights reserved.
Jeff Johnson295189b2012-06-20 16:38:30 -070023 *
24 * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
25 *
26 *
27 * Permission to use, copy, modify, and/or distribute this software for
28 * any purpose with or without fee is hereby granted, provided that the
29 * above copyright notice and this permission notice appear in all
30 * copies.
31 *
32 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
33 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
34 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
35 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
36 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
37 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
38 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
39 * PERFORMANCE OF THIS SOFTWARE.
40 */
41
42/**=========================================================================
43
44 EDIT HISTORY FOR FILE
45
46
47 This section contains comments describing changes made to the module.
48 Notice that changes are listed in reverse chronological order.
49
50
51 $Header:$ $DateTime: $ $Author: $
52
53
54 when who what, where, why
55 -------- --- --------------------------------------------------------
56 07/27/09 kanand Created module.
57
58 ==========================================================================*/
59
60/*--------------------------------------------------------------------------
61 Include Files
62 ------------------------------------------------------------------------*/
63
64
65#include <linux/firmware.h>
66#include <linux/string.h>
67#include <wlan_hdd_includes.h>
68#include <wlan_hdd_main.h>
69#include <wlan_hdd_assoc.h>
70#include <wlan_hdd_cfg.h>
71#include <linux/string.h>
72#include <vos_types.h>
73#include <csrApi.h>
74#include <pmcApi.h>
75#include <wlan_hdd_misc.h>
76
Madan Mohan Koyyalamudi62b55b02012-12-03 16:45:39 -080077#if defined (WLAN_FEATURE_VOWIFI_11R) || defined (FEATURE_WLAN_CCX) || defined(FEATURE_WLAN_LFR)
Madan Mohan Koyyalamudid5026072012-11-30 14:56:21 -080078static void cbNotifySetRoamPrefer5GHz(hdd_context_t *pHddCtx, unsigned long NotifyId)
79{
80 sme_UpdateRoamPrefer5GHz((tHalHandle)(pHddCtx->hHal), pHddCtx->cfg_ini->nRoamPrefer5GHz);
81}
Jeff Johnson295189b2012-06-20 16:38:30 -070082
Madan Mohan Koyyalamudi62b55b02012-12-03 16:45:39 -080083static void cbNotifySetImmediateRoamRssiDiff(hdd_context_t *pHddCtx, unsigned long NotifyId)
84{
85 sme_UpdateImmediateRoamRssiDiff((tHalHandle)(pHddCtx->hHal),
86 pHddCtx->cfg_ini->nImmediateRoamRssiDiff);
87}
Gopichand Nakkala98a98af2012-12-31 14:38:47 -080088
89static void cbNotifySetFastTransitionEnabled(hdd_context_t *pHddCtx, unsigned long NotifyId)
90{
91 sme_UpdateFastTransitionEnabled((tHalHandle)(pHddCtx->hHal), pHddCtx->cfg_ini->isFastTransitionEnabled);
92}
Madan Mohan Koyyalamudi62b55b02012-12-03 16:45:39 -080093#endif
94
Gopichand Nakkala98a98af2012-12-31 14:38:47 -080095#ifdef FEATURE_WLAN_LFR
96static void NotifyIsFastRoamIniFeatureEnabled(hdd_context_t *pHddCtx, unsigned long NotifyId)
97{
98 // at the point this routine is called, the value in the cfg_ini table has already been updated
99 sme_UpdateIsFastRoamIniFeatureEnabled((tHalHandle)(pHddCtx->hHal), pHddCtx->cfg_ini->isFastRoamIniFeatureEnabled );
100}
101#endif
102
103#ifdef FEATURE_WLAN_CCX
104static void cbNotifySetCcxFeatureEnabled(hdd_context_t *pHddCtx, unsigned long NotifyId)
105{
106 // at the point this routine is called, the value in the cfg_ini table has already been updated
107 sme_UpdateIsCcxFeatureEnabled((tHalHandle)(pHddCtx->hHal), pHddCtx->cfg_ini->isCcxIniFeatureEnabled );
108}
109#endif
110
111static void cbNotifySetFwRssiMonitoring(hdd_context_t *pHddCtx, unsigned long NotifyId)
112{
113 // at the point this routine is called, the value in the cfg_ini table has already been updated
114 sme_UpdateConfigFwRssiMonitoring((tHalHandle)(pHddCtx->hHal), pHddCtx->cfg_ini->fEnableFwRssiMonitoring );
115}
116
Jeff Johnson295189b2012-06-20 16:38:30 -0700117REG_TABLE_ENTRY g_registry_table[] =
118{
119 REG_VARIABLE( CFG_RTS_THRESHOLD_NAME, WLAN_PARAM_Integer,
120 hdd_config_t, RTSThreshold,
121 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
122 CFG_RTS_THRESHOLD_DEFAULT,
123 CFG_RTS_THRESHOLD_MIN,
124 CFG_RTS_THRESHOLD_MAX ),
125
126 REG_VARIABLE( CFG_FRAG_THRESHOLD_NAME, WLAN_PARAM_Integer,
127 hdd_config_t, FragmentationThreshold,
128 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
129 CFG_FRAG_THRESHOLD_DEFAULT,
130 CFG_FRAG_THRESHOLD_MIN,
131 CFG_FRAG_THRESHOLD_MAX ),
132
133 REG_VARIABLE( CFG_CALIBRATION_NAME, WLAN_PARAM_Integer,
134 hdd_config_t, Calibration,
135 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
136 CFG_CALIBRATION_DEFAULT,
137 CFG_CALIBRATION_MIN,
138 CFG_CALIBRATION_MAX ),
139
140 REG_VARIABLE( CFG_CALIBRATION_PERIOD_NAME, WLAN_PARAM_Integer,
141 hdd_config_t, CalibrationPeriod,
142 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
143 CFG_CALIBRATION_PERIOD_DEFAULT,
144 CFG_CALIBRATION_PERIOD_MIN,
145 CFG_CALIBRATION_PERIOD_MAX ),
146
147 REG_VARIABLE( CFG_OPERATING_CHANNEL_NAME, WLAN_PARAM_Integer,
148 hdd_config_t, OperatingChannel,
149 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
150 CFG_OPERATING_CHANNEL_DEFAULT,
151 CFG_OPERATING_CHANNEL_MIN,
152 CFG_OPERATING_CHANNEL_MAX ),
153
154 REG_VARIABLE( CFG_SHORT_SLOT_TIME_ENABLED_NAME, WLAN_PARAM_Integer,
155 hdd_config_t, ShortSlotTimeEnabled,
156 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
157 CFG_SHORT_SLOT_TIME_ENABLED_DEFAULT,
158 CFG_SHORT_SLOT_TIME_ENABLED_MIN,
159 CFG_SHORT_SLOT_TIME_ENABLED_MAX ),
160
161 REG_VARIABLE( CFG_11D_SUPPORT_ENABLED_NAME, WLAN_PARAM_Integer,
162 hdd_config_t, Is11dSupportEnabled,
163 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
164 CFG_11D_SUPPORT_ENABLED_DEFAULT,
165 CFG_11D_SUPPORT_ENABLED_MIN,
166 CFG_11D_SUPPORT_ENABLED_MAX ),
Madan Mohan Koyyalamudi8db1c942013-01-10 15:24:29 -0800167
168 REG_VARIABLE( CFG_11H_SUPPORT_ENABLED_NAME, WLAN_PARAM_Integer,
169 hdd_config_t, Is11hSupportEnabled,
170 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
171 CFG_11H_SUPPORT_ENABLED_DEFAULT,
172 CFG_11H_SUPPORT_ENABLED_MIN,
173 CFG_11H_SUPPORT_ENABLED_MAX ),
Jeff Johnson295189b2012-06-20 16:38:30 -0700174
175 REG_VARIABLE( CFG_ENFORCE_11D_CHANNELS_NAME, WLAN_PARAM_Integer,
176 hdd_config_t, fEnforce11dChannels,
177 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
178 CFG_ENFORCE_11D_CHANNELS_DEFAULT,
179 CFG_ENFORCE_11D_CHANNELS_MIN,
180 CFG_ENFORCE_11D_CHANNELS_MAX ),
181
182 REG_VARIABLE( CFG_COUNTRY_CODE_PRIORITY_NAME, WLAN_PARAM_Integer,
183 hdd_config_t, fSupplicantCountryCodeHasPriority,
184 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
185 CFG_COUNTRY_CODE_PRIORITY_DEFAULT,
186 CFG_COUNTRY_CODE_PRIORITY_MIN,
187 CFG_COUNTRY_CODE_PRIORITY_MAX),
188
189 REG_VARIABLE( CFG_ENFORCE_COUNTRY_CODE_MATCH_NAME, WLAN_PARAM_Integer,
190 hdd_config_t, fEnforceCountryCodeMatch,
191 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
192 CFG_ENFORCE_COUNTRY_CODE_MATCH_DEFAULT,
193 CFG_ENFORCE_COUNTRY_CODE_MATCH_MIN,
194 CFG_ENFORCE_COUNTRY_CODE_MATCH_MAX ),
195
196 REG_VARIABLE( CFG_ENFORCE_DEFAULT_DOMAIN_NAME, WLAN_PARAM_Integer,
197 hdd_config_t, fEnforceDefaultDomain,
198 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
199 CFG_ENFORCE_DEFAULT_DOMAIN_DEFAULT,
200 CFG_ENFORCE_DEFAULT_DOMAIN_MIN,
201 CFG_ENFORCE_DEFAULT_DOMAIN_MAX ),
202
203 REG_VARIABLE( CFG_GENERIC_ID1_NAME, WLAN_PARAM_Integer,
204 hdd_config_t, Cfg1Id,
205 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
206 CFG_GENERIC_ID1_DEFAULT,
207 CFG_GENERIC_ID1_MIN,
208 CFG_GENERIC_ID1_MAX ),
209
210 REG_VARIABLE( CFG_GENERIC_ID2_NAME, WLAN_PARAM_Integer,
211 hdd_config_t, Cfg2Id,
212 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
213 CFG_GENERIC_ID2_DEFAULT,
214 CFG_GENERIC_ID2_MIN,
215 CFG_GENERIC_ID2_MAX ),
216
217 REG_VARIABLE( CFG_GENERIC_ID3_NAME, WLAN_PARAM_Integer,
218 hdd_config_t, Cfg3Id,
219 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
220 CFG_GENERIC_ID3_DEFAULT,
221 CFG_GENERIC_ID3_MIN,
222 CFG_GENERIC_ID3_MAX ),
223
224 REG_VARIABLE( CFG_GENERIC_ID4_NAME, WLAN_PARAM_Integer,
225 hdd_config_t, Cfg4Id,
226 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
227 CFG_GENERIC_ID4_DEFAULT,
228 CFG_GENERIC_ID4_MIN,
229 CFG_GENERIC_ID4_MAX ),
230
231 REG_VARIABLE( CFG_GENERIC_ID5_NAME, WLAN_PARAM_Integer,
232 hdd_config_t, Cfg5Id,
233 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
234 CFG_GENERIC_ID5_DEFAULT,
235 CFG_GENERIC_ID5_MIN,
236 CFG_GENERIC_ID5_MAX ),
237
238 REG_VARIABLE( CFG_GENERIC_VALUE1_NAME, WLAN_PARAM_Integer,
239 hdd_config_t, Cfg1Value,
240 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
241 CFG_GENERIC_VALUE1_DEFAULT,
242 CFG_GENERIC_VALUE1_MIN,
243 CFG_GENERIC_VALUE1_MAX ),
244
245 REG_VARIABLE( CFG_GENERIC_VALUE2_NAME, WLAN_PARAM_Integer,
246 hdd_config_t, Cfg2Value,
247 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
248 CFG_GENERIC_VALUE2_DEFAULT,
249 CFG_GENERIC_VALUE2_MIN,
250 CFG_GENERIC_VALUE2_MAX ),
251
252 REG_VARIABLE( CFG_GENERIC_VALUE3_NAME, WLAN_PARAM_Integer,
253 hdd_config_t, Cfg3Value,
254 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
255 CFG_GENERIC_VALUE3_DEFAULT,
256 CFG_GENERIC_VALUE3_MIN,
257 CFG_GENERIC_VALUE3_MAX ),
258
259 REG_VARIABLE( CFG_GENERIC_VALUE4_NAME, WLAN_PARAM_Integer,
260 hdd_config_t, Cfg4Value,
261 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
262 CFG_GENERIC_VALUE4_DEFAULT,
263 CFG_GENERIC_VALUE4_MIN,
264 CFG_GENERIC_VALUE4_MAX ),
265
266 REG_VARIABLE( CFG_GENERIC_VALUE5_NAME, WLAN_PARAM_Integer,
267 hdd_config_t, Cfg5Value,
268 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
269 CFG_GENERIC_VALUE5_DEFAULT,
270 CFG_GENERIC_VALUE5_MIN,
271 CFG_GENERIC_VALUE5_MAX ),
272
273 REG_VARIABLE( CFG_HEARTBEAT_THRESH_24_NAME, WLAN_PARAM_Integer,
274 hdd_config_t, HeartbeatThresh24,
275 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
276 CFG_HEARTBEAT_THRESH_24_DEFAULT,
277 CFG_HEARTBEAT_THRESH_24_MIN,
278 CFG_HEARTBEAT_THRESH_24_MAX ),
279
280 REG_VARIABLE_STRING( CFG_POWER_USAGE_NAME, WLAN_PARAM_String,
281 hdd_config_t, PowerUsageControl,
282 VAR_FLAGS_OPTIONAL,
283 (void *)CFG_POWER_USAGE_DEFAULT ),
284
285 REG_VARIABLE( CFG_ENABLE_SUSPEND_NAME, WLAN_PARAM_Integer,
286 hdd_config_t, nEnableSuspend,
287 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
288 CFG_ENABLE_SUSPEND_DEFAULT,
289 CFG_ENABLE_SUSPEND_MIN,
290 CFG_ENABLE_SUSPEND_MAX ),
291
292 REG_VARIABLE( CFG_ENABLE_ENABLE_DRIVER_STOP_NAME, WLAN_PARAM_Integer,
293 hdd_config_t, nEnableDriverStop,
294 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
295 CFG_ENABLE_ENABLE_DRIVER_STOP_DEFAULT,
296 CFG_ENABLE_ENABLE_DRIVER_STOP_MIN,
297 CFG_ENABLE_ENABLE_DRIVER_STOP_MAX ),
298
299 REG_VARIABLE( CFG_ENABLE_IMPS_NAME, WLAN_PARAM_Integer,
300 hdd_config_t, fIsImpsEnabled,
301 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
302 CFG_ENABLE_IMPS_DEFAULT,
303 CFG_ENABLE_IMPS_MIN,
304 CFG_ENABLE_IMPS_MAX ),
305
306 REG_VARIABLE( CFG_ENABLE_LOGP_NAME, WLAN_PARAM_Integer,
307 hdd_config_t, fIsLogpEnabled,
308 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
309 CFG_ENABLE_LOGP_DEFAULT,
310 CFG_ENABLE_LOGP_MIN,
311 CFG_ENABLE_LOGP_MAX ),
312
313 REG_VARIABLE( CFG_IMPS_MINIMUM_SLEEP_TIME_NAME, WLAN_PARAM_Integer,
314 hdd_config_t, nImpsMinSleepTime,
315 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
316 CFG_IMPS_MINIMUM_SLEEP_TIME_DEFAULT,
317 CFG_IMPS_MINIMUM_SLEEP_TIME_MIN,
318 CFG_IMPS_MINIMUM_SLEEP_TIME_MAX ),
319
320 REG_VARIABLE( CFG_IMPS_MAXIMUM_SLEEP_TIME_NAME, WLAN_PARAM_Integer,
321 hdd_config_t, nImpsMaxSleepTime,
322 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
323 CFG_IMPS_MAXIMUM_SLEEP_TIME_DEFAULT,
324 CFG_IMPS_MAXIMUM_SLEEP_TIME_MIN,
325 CFG_IMPS_MAXIMUM_SLEEP_TIME_MAX ),
326
327 REG_VARIABLE( CFG_IMPS_MODERATE_SLEEP_TIME_NAME, WLAN_PARAM_Integer,
328 hdd_config_t, nImpsModSleepTime,
329 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
330 CFG_IMPS_MODERATE_SLEEP_TIME_DEFAULT,
331 CFG_IMPS_MODERATE_SLEEP_TIME_MIN,
332 CFG_IMPS_MODERATE_SLEEP_TIME_MAX ),
333
334 REG_VARIABLE( CFG_ENABLE_BMPS_NAME, WLAN_PARAM_Integer,
335 hdd_config_t, fIsBmpsEnabled,
336 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
337 CFG_ENABLE_BMPS_DEFAULT,
338 CFG_ENABLE_BMPS_MIN,
339 CFG_ENABLE_BMPS_MAX ),
340
341 REG_VARIABLE( CFG_BMPS_MINIMUM_LI_NAME, WLAN_PARAM_Integer,
342 hdd_config_t, nBmpsMinListenInterval,
343 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
344 CFG_BMPS_MINIMUM_LI_DEFAULT,
345 CFG_BMPS_MINIMUM_LI_MIN,
346 CFG_BMPS_MINIMUM_LI_MAX ),
347
348 REG_VARIABLE( CFG_BMPS_MAXIMUM_LI_NAME, WLAN_PARAM_Integer,
349 hdd_config_t, nBmpsMaxListenInterval,
350 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
351 CFG_BMPS_MAXIMUM_LI_DEFAULT,
352 CFG_BMPS_MAXIMUM_LI_MIN,
353 CFG_BMPS_MAXIMUM_LI_MAX ),
354
355 REG_VARIABLE( CFG_BMPS_MODERATE_LI_NAME, WLAN_PARAM_Integer,
356 hdd_config_t, nBmpsModListenInterval,
357 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
358 CFG_BMPS_MODERATE_LI_DEFAULT,
359 CFG_BMPS_MODERATE_LI_MIN,
360 CFG_BMPS_MODERATE_LI_MAX ),
361
362 REG_VARIABLE( CFG_ENABLE_AUTO_BMPS_TIMER_NAME, WLAN_PARAM_Integer,
363 hdd_config_t, fIsAutoBmpsTimerEnabled,
364 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
365 CFG_ENABLE_AUTO_BMPS_TIMER_DEFAULT,
366 CFG_ENABLE_AUTO_BMPS_TIMER_MIN,
367 CFG_ENABLE_AUTO_BMPS_TIMER_MAX ),
368
369 REG_VARIABLE( CFG_AUTO_BMPS_TIMER_VALUE_NAME, WLAN_PARAM_Integer,
370 hdd_config_t, nAutoBmpsTimerValue,
371 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
372 CFG_AUTO_BMPS_TIMER_VALUE_DEFAULT,
373 CFG_AUTO_BMPS_TIMER_VALUE_MIN,
374 CFG_AUTO_BMPS_TIMER_VALUE_MAX ),
375
376 REG_VARIABLE( CFG_DOT11_MODE_NAME, WLAN_PARAM_Integer,
377 hdd_config_t, dot11Mode,
378 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
379 CFG_DOT11_MODE_DEFAULT,
380 CFG_DOT11_MODE_MIN,
381 CFG_DOT11_MODE_MAX ),
382
383 REG_VARIABLE( CFG_CHANNEL_BONDING_MODE_24GHZ_NAME, WLAN_PARAM_Integer,
384 hdd_config_t, nChannelBondingMode24GHz,
385 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
386 CFG_CHANNEL_BONDING_MODE_DEFAULT,
387 CFG_CHANNEL_BONDING_MODE_MIN,
388 CFG_CHANNEL_BONDING_MODE_MAX),
389
390 REG_VARIABLE( CFG_CHANNEL_BONDING_MODE_5GHZ_NAME, WLAN_PARAM_Integer,
391 hdd_config_t, nChannelBondingMode5GHz,
392 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
393 CFG_CHANNEL_BONDING_MODE_DEFAULT,
394 CFG_CHANNEL_BONDING_MODE_MIN,
395 CFG_CHANNEL_BONDING_MODE_MAX),
396
397 REG_VARIABLE( CFG_MAX_RX_AMPDU_FACTOR_NAME, WLAN_PARAM_Integer,
398 hdd_config_t, MaxRxAmpduFactor,
399 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK ,
400 CFG_MAX_RX_AMPDU_FACTOR_DEFAULT,
401 CFG_MAX_RX_AMPDU_FACTOR_MIN,
402 CFG_MAX_RX_AMPDU_FACTOR_MAX),
403
404 REG_VARIABLE( CFG_FIXED_RATE_NAME, WLAN_PARAM_Integer,
405 hdd_config_t, TxRate,
406 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
407 CFG_FIXED_RATE_DEFAULT,
408 CFG_FIXED_RATE_MIN,
409 CFG_FIXED_RATE_MAX ),
410
411 REG_VARIABLE( CFG_SHORT_GI_20MHZ_NAME, WLAN_PARAM_Integer,
412 hdd_config_t, ShortGI20MhzEnable,
413 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
414 CFG_SHORT_GI_20MHZ_DEFAULT,
415 CFG_SHORT_GI_20MHZ_MIN,
416 CFG_SHORT_GI_20MHZ_MAX ),
417
418 REG_VARIABLE( CFG_BLOCK_ACK_AUTO_SETUP_NAME, WLAN_PARAM_Integer,
419 hdd_config_t, BlockAckAutoSetup,
420 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
421 CFG_BLOCK_ACK_AUTO_SETUP_DEFAULT,
422 CFG_BLOCK_ACK_AUTO_SETUP_MIN,
423 CFG_BLOCK_ACK_AUTO_SETUP_MAX ),
424
425 REG_VARIABLE( CFG_SCAN_RESULT_AGE_COUNT_NAME, WLAN_PARAM_Integer,
426 hdd_config_t, ScanResultAgeCount,
427 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
428 CFG_SCAN_RESULT_AGE_COUNT_DEFAULT,
429 CFG_SCAN_RESULT_AGE_COUNT_MIN,
430 CFG_SCAN_RESULT_AGE_COUNT_MAX ),
431
432 REG_VARIABLE( CFG_SCAN_RESULT_AGE_TIME_NCNPS_NAME, WLAN_PARAM_Integer,
433 hdd_config_t, nScanAgeTimeNCNPS,
434 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
435 CFG_SCAN_RESULT_AGE_TIME_NCNPS_DEFAULT,
436 CFG_SCAN_RESULT_AGE_TIME_NCNPS_MIN,
437 CFG_SCAN_RESULT_AGE_TIME_NCNPS_MAX ),
438
439 REG_VARIABLE( CFG_SCAN_RESULT_AGE_TIME_NCPS_NAME, WLAN_PARAM_Integer,
440 hdd_config_t, nScanAgeTimeNCPS,
441 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
442 CFG_SCAN_RESULT_AGE_TIME_NCPS_DEFAULT,
443 CFG_SCAN_RESULT_AGE_TIME_NCPS_MIN,
444 CFG_SCAN_RESULT_AGE_TIME_NCPS_MAX ),
445
446 REG_VARIABLE( CFG_SCAN_RESULT_AGE_TIME_CNPS_NAME, WLAN_PARAM_Integer,
447 hdd_config_t, nScanAgeTimeCNPS,
448 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
449 CFG_SCAN_RESULT_AGE_TIME_CNPS_DEFAULT,
450 CFG_SCAN_RESULT_AGE_TIME_CNPS_MIN,
451 CFG_SCAN_RESULT_AGE_TIME_CNPS_MAX ),
452
453 REG_VARIABLE( CFG_SCAN_RESULT_AGE_TIME_CPS_NAME, WLAN_PARAM_Integer,
454 hdd_config_t, nScanAgeTimeCPS,
455 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
456 CFG_SCAN_RESULT_AGE_TIME_CPS_DEFAULT,
457 CFG_SCAN_RESULT_AGE_TIME_CPS_MIN,
458 CFG_SCAN_RESULT_AGE_TIME_CPS_MAX ),
459
460 REG_VARIABLE( CFG_RSSI_CATEGORY_GAP_NAME, WLAN_PARAM_Integer,
461 hdd_config_t, nRssiCatGap,
462 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
463 CFG_RSSI_CATEGORY_GAP_DEFAULT,
464 CFG_RSSI_CATEGORY_GAP_MIN,
465 CFG_RSSI_CATEGORY_GAP_MAX ),
466
467 REG_VARIABLE( CFG_STAT_TIMER_INTERVAL_NAME, WLAN_PARAM_Integer,
468 hdd_config_t, nStatTimerInterval,
469 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
470 CFG_STAT_TIMER_INTERVAL_DEFAULT,
471 CFG_STAT_TIMER_INTERVAL_MIN,
472 CFG_STAT_TIMER_INTERVAL_MAX ),
473
474 REG_VARIABLE( CFG_SHORT_PREAMBLE_NAME, WLAN_PARAM_Integer,
475 hdd_config_t, fIsShortPreamble,
476 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
477 CFG_SHORT_PREAMBLE_DEFAULT,
478 CFG_SHORT_PREAMBLE_MIN,
479 CFG_SHORT_PREAMBLE_MAX ),
480
481 REG_VARIABLE( CFG_IBSS_AUTO_BSSID_NAME, WLAN_PARAM_Integer,
482 hdd_config_t, fIsAutoIbssBssid,
483 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
484 CFG_IBSS_AUTO_BSSID_DEFAULT,
485 CFG_IBSS_AUTO_BSSID_MIN,
486 CFG_IBSS_AUTO_BSSID_MAX ),
487
488 REG_VARIABLE_STRING( CFG_IBSS_BSSID_NAME, WLAN_PARAM_MacAddr,
489 hdd_config_t, IbssBssid,
490 VAR_FLAGS_OPTIONAL,
491 (void *)CFG_IBSS_BSSID_DEFAULT ),
492
493 REG_VARIABLE_STRING( CFG_INTF0_MAC_ADDR_NAME, WLAN_PARAM_MacAddr,
494 hdd_config_t, intfMacAddr[0],
495 VAR_FLAGS_OPTIONAL,
496 (void *)CFG_INTF0_MAC_ADDR_DEFAULT ),
497
498 REG_VARIABLE_STRING( CFG_INTF1_MAC_ADDR_NAME, WLAN_PARAM_MacAddr,
499 hdd_config_t, intfMacAddr[1],
500 VAR_FLAGS_OPTIONAL,
501 (void *)CFG_INTF1_MAC_ADDR_DEFAULT ),
502
503 REG_VARIABLE_STRING( CFG_INTF2_MAC_ADDR_NAME, WLAN_PARAM_MacAddr,
504 hdd_config_t, intfMacAddr[2],
505 VAR_FLAGS_OPTIONAL,
506 (void *)CFG_INTF2_MAC_ADDR_DEFAULT ),
507
508 REG_VARIABLE_STRING( CFG_INTF3_MAC_ADDR_NAME, WLAN_PARAM_MacAddr,
509 hdd_config_t, intfMacAddr[3],
510 VAR_FLAGS_OPTIONAL,
511 (void *)CFG_INTF3_MAC_ADDR_DEFAULT ),
512
Madan Mohan Koyyalamudic3a240c2012-09-28 15:34:08 -0700513 REG_VARIABLE_STRING( CFG_CRDA_DEFAULT_COUNTRY_CODE, WLAN_PARAM_String,
514 hdd_config_t, crdaDefaultCountryCode,
515 VAR_FLAGS_OPTIONAL,
516 (void *)CFG_CRDA_DEFAULT_COUNTRY_CODE_DEFAULT ),
517
Jeff Johnson295189b2012-06-20 16:38:30 -0700518#ifdef WLAN_SOFTAP_FEATURE
519 REG_VARIABLE( CFG_AP_QOS_UAPSD_MODE_NAME , WLAN_PARAM_Integer,
520 hdd_config_t, apUapsdEnabled,
521 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
522 CFG_AP_QOS_UAPSD_MODE_DEFAULT,
523 CFG_AP_QOS_UAPSD_MODE_MIN,
524 CFG_AP_QOS_UAPSD_MODE_MAX ),
525
526 REG_VARIABLE_STRING( CFG_AP_COUNTRY_CODE, WLAN_PARAM_String,
527 hdd_config_t, apCntryCode,
528 VAR_FLAGS_OPTIONAL,
529 (void *)CFG_AP_COUNTRY_CODE_DEFAULT ),
530
Madan Mohan Koyyalamudi3ff2a0b2012-10-15 14:33:46 -0700531 REG_VARIABLE( CFG_AP_ENABLE_RANDOM_BSSID_NAME, WLAN_PARAM_Integer,
532 hdd_config_t, apRandomBssidEnabled,
533 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
534 CFG_AP_ENABLE_RANDOM_BSSID_DEFAULT,
535 CFG_AP_ENABLE_RANDOM_BSSID_MIN,
536 CFG_AP_ENABLE_RANDOM_BSSID_MAX ),
537
Jeff Johnson295189b2012-06-20 16:38:30 -0700538 REG_VARIABLE( CFG_AP_ENABLE_PROTECTION_MODE_NAME, WLAN_PARAM_Integer,
539 hdd_config_t, apProtEnabled,
540 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
541 CFG_AP_ENABLE_PROTECTION_MODE_DEFAULT,
542 CFG_AP_ENABLE_PROTECTION_MODE_MIN,
543 CFG_AP_ENABLE_PROTECTION_MODE_MAX ),
544
545 REG_VARIABLE( CFG_AP_PROTECTION_MODE_NAME, WLAN_PARAM_HexInteger,
546 hdd_config_t, apProtection,
547 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
548 CFG_AP_PROTECTION_MODE_DEFAULT,
549 CFG_AP_PROTECTION_MODE_MIN,
550 CFG_AP_PROTECTION_MODE_MAX ),
551
552 REG_VARIABLE( CFG_AP_OBSS_PROTECTION_MODE_NAME, WLAN_PARAM_Integer,
553 hdd_config_t, apOBSSProtEnabled,
554 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
555 CFG_AP_OBSS_PROTECTION_MODE_DEFAULT,
556 CFG_AP_OBSS_PROTECTION_MODE_MIN,
557 CFG_AP_OBSS_PROTECTION_MODE_MAX ),
558
559 REG_VARIABLE( CFG_AP_STA_SECURITY_SEPERATION_NAME, WLAN_PARAM_Integer,
560 hdd_config_t, apDisableIntraBssFwd,
561 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
562 CFG_AP_STA_SECURITY_SEPERATION_DEFAULT,
563 CFG_AP_STA_SECURITY_SEPERATION_MIN,
564 CFG_AP_STA_SECURITY_SEPERATION_MAX ),
565
566 REG_VARIABLE( CFG_FRAMES_PROCESSING_TH_MODE_NAME, WLAN_PARAM_Integer,
567 hdd_config_t, MinFramesProcThres,
568 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
569 CFG_FRAMES_PROCESSING_TH_DEFAULT,
570 CFG_FRAMES_PROCESSING_TH_MIN,
571 CFG_FRAMES_PROCESSING_TH_MAX ),
572
573 REG_VARIABLE(CFG_SAP_CHANNEL_SELECT_START_CHANNEL , WLAN_PARAM_Integer,
574 hdd_config_t, apStartChannelNum,
575 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
576 CFG_SAP_CHANNEL_SELECT_START_CHANNEL_DEFAULT,
577 CFG_SAP_CHANNEL_SELECT_START_CHANNEL_MIN,
578 CFG_SAP_CHANNEL_SELECT_START_CHANNEL_MAX ),
579
580 REG_VARIABLE(CFG_SAP_CHANNEL_SELECT_END_CHANNEL , WLAN_PARAM_Integer,
581 hdd_config_t, apEndChannelNum,
582 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
583 CFG_SAP_CHANNEL_SELECT_END_CHANNEL_DEFAULT,
584 CFG_SAP_CHANNEL_SELECT_END_CHANNEL_MIN,
585 CFG_SAP_CHANNEL_SELECT_END_CHANNEL_MAX ),
586
587 REG_VARIABLE(CFG_SAP_CHANNEL_SELECT_OPERATING_BAND , WLAN_PARAM_Integer,
588 hdd_config_t, apOperatingBand,
589 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
590 CFG_SAP_CHANNEL_SELECT_OPERATING_BAND_DEFAULT,
591 CFG_SAP_CHANNEL_SELECT_OPERATING_BAND_MIN,
592 CFG_SAP_CHANNEL_SELECT_OPERATING_BAND_MAX ),
593
594 REG_VARIABLE(CFG_SAP_AUTO_CHANNEL_SELECTION_NAME , WLAN_PARAM_Integer,
595 hdd_config_t, apAutoChannelSelection,
596 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
597 CFG_SAP_AUTO_CHANNEL_SELECTION_DEFAULT,
598 CFG_SAP_AUTO_CHANNEL_SELECTION_MIN,
599 CFG_SAP_AUTO_CHANNEL_SELECTION_MAX ),
600
601 REG_VARIABLE(CFG_ENABLE_LTE_COEX , WLAN_PARAM_Integer,
602 hdd_config_t, enableLTECoex,
603 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
604 CFG_ENABLE_LTE_COEX_DEFAULT,
605 CFG_ENABLE_LTE_COEX_MIN,
606 CFG_ENABLE_LTE_COEX_MAX ),
607
608 REG_VARIABLE( CFG_AP_KEEP_ALIVE_PERIOD_NAME, WLAN_PARAM_Integer,
609 hdd_config_t, apKeepAlivePeriod,
610 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
611 CFG_AP_KEEP_ALIVE_PERIOD_DEFAULT,
612 CFG_AP_KEEP_ALIVE_PERIOD_MIN,
613 CFG_AP_KEEP_ALIVE_PERIOD_MAX),
614
615 REG_VARIABLE( CFG_GO_KEEP_ALIVE_PERIOD_NAME, WLAN_PARAM_Integer,
616 hdd_config_t, goKeepAlivePeriod,
617 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
618 CFG_GO_KEEP_ALIVE_PERIOD_DEFAULT,
619 CFG_GO_KEEP_ALIVE_PERIOD_MIN,
620 CFG_GO_KEEP_ALIVE_PERIOD_MAX),
621
622#endif
623 REG_VARIABLE(CFG_DISABLE_PACKET_FILTER , WLAN_PARAM_Integer,
624 hdd_config_t, disablePacketFilter,
625 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
626 CFG_DISABLE_PACKET_FILTER_DEFAULT,
627 CFG_DISABLE_PACKET_FILTER_MIN,
628 CFG_DISABLE_PACKET_FILTER_MAX ),
629
630 REG_VARIABLE( CFG_BEACON_INTERVAL_NAME, WLAN_PARAM_Integer,
631 hdd_config_t, nBeaconInterval,
632 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
633 CFG_BEACON_INTERVAL_DEFAULT,
634 CFG_BEACON_INTERVAL_MIN,
635 CFG_BEACON_INTERVAL_MAX ),
636
637 REG_VARIABLE( CFG_ENABLE_HANDOFF_NAME, WLAN_PARAM_Integer,
638 hdd_config_t, fIsHandoffEnabled,
639 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
640 CFG_ENABLE_HANDOFF_DEFAULT,
641 CFG_ENABLE_HANDOFF_MIN,
642 CFG_ENABLE_HANDOFF_MAX ),
643
644
645 REG_VARIABLE( CFG_ENABLE_IDLE_SCAN_NAME , WLAN_PARAM_Integer,
646 hdd_config_t, nEnableIdleScan,
647 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
648 CFG_ENABLE_IDLE_SCAN_DEFAULT,
649 CFG_ENABLE_IDLE_SCAN_MIN,
650 CFG_ENABLE_IDLE_SCAN_MAX ),
651
652 REG_VARIABLE( CFG_ROAMING_TIME_NAME , WLAN_PARAM_Integer,
653 hdd_config_t, nRoamingTime,
654 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
655 CFG_ROAMING_TIME_DEFAULT,
656 CFG_ROAMING_TIME_MIN,
657 CFG_ROAMING_TIME_MAX ),
658
659 REG_VARIABLE( CFG_VCC_RSSI_TRIGGER_NAME , WLAN_PARAM_Integer,
660 hdd_config_t, nVccRssiTrigger,
661 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
662 CFG_VCC_RSSI_TRIGGER_DEFAULT,
663 CFG_VCC_RSSI_TRIGGER_MIN,
664 CFG_VCC_RSSI_TRIGGER_MAX ),
665
666 REG_VARIABLE( CFG_VCC_UL_MAC_LOSS_THRESH_NAME , WLAN_PARAM_Integer,
667 hdd_config_t, nVccUlMacLossThreshold,
668 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
669 CFG_VCC_UL_MAC_LOSS_THRESH_DEFAULT,
670 CFG_VCC_UL_MAC_LOSS_THRESH_MIN,
671 CFG_VCC_UL_MAC_LOSS_THRESH_MAX ),
672
673 REG_VARIABLE( CFG_PASSIVE_MAX_CHANNEL_TIME_NAME, WLAN_PARAM_Integer,
674 hdd_config_t, nPassiveMaxChnTime,
675 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
676 CFG_PASSIVE_MAX_CHANNEL_TIME_DEFAULT,
677 CFG_PASSIVE_MAX_CHANNEL_TIME_MIN,
678 CFG_PASSIVE_MAX_CHANNEL_TIME_MAX ),
679
680 REG_VARIABLE( CFG_PASSIVE_MIN_CHANNEL_TIME_NAME, WLAN_PARAM_Integer,
681 hdd_config_t, nPassiveMinChnTime,
682 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
683 CFG_PASSIVE_MIN_CHANNEL_TIME_DEFAULT,
684 CFG_PASSIVE_MIN_CHANNEL_TIME_MIN,
685 CFG_PASSIVE_MIN_CHANNEL_TIME_MAX ),
686
687 REG_VARIABLE( CFG_ACTIVE_MAX_CHANNEL_TIME_NAME, WLAN_PARAM_Integer,
688 hdd_config_t, nActiveMaxChnTime,
689 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
690 CFG_ACTIVE_MAX_CHANNEL_TIME_DEFAULT,
691 CFG_ACTIVE_MAX_CHANNEL_TIME_MIN,
692 CFG_ACTIVE_MAX_CHANNEL_TIME_MAX ),
693
694 REG_VARIABLE( CFG_ACTIVE_MIN_CHANNEL_TIME_NAME, WLAN_PARAM_Integer,
695 hdd_config_t, nActiveMinChnTime,
696 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
697 CFG_ACTIVE_MIN_CHANNEL_TIME_DEFAULT,
698 CFG_ACTIVE_MIN_CHANNEL_TIME_MIN,
699 CFG_ACTIVE_MIN_CHANNEL_TIME_MAX ),
Madan Mohan Koyyalamudi4ff9cd62012-10-30 17:48:57 -0700700
701#ifdef WLAN_AP_STA_CONCURRENCY
702 REG_VARIABLE( CFG_PASSIVE_MAX_CHANNEL_TIME_CONC_NAME, WLAN_PARAM_Integer,
703 hdd_config_t, nPassiveMaxChnTimeConc,
704 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
705 CFG_PASSIVE_MAX_CHANNEL_TIME_CONC_DEFAULT,
706 CFG_PASSIVE_MAX_CHANNEL_TIME_CONC_MIN,
707 CFG_PASSIVE_MAX_CHANNEL_TIME_CONC_MAX ),
708
709 REG_VARIABLE( CFG_PASSIVE_MIN_CHANNEL_TIME_CONC_NAME, WLAN_PARAM_Integer,
710 hdd_config_t, nPassiveMinChnTimeConc,
711 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
712 CFG_PASSIVE_MIN_CHANNEL_TIME_CONC_DEFAULT,
713 CFG_PASSIVE_MIN_CHANNEL_TIME_CONC_MIN,
714 CFG_PASSIVE_MIN_CHANNEL_TIME_CONC_MAX ),
715
716 REG_VARIABLE( CFG_ACTIVE_MAX_CHANNEL_TIME_CONC_NAME, WLAN_PARAM_Integer,
717 hdd_config_t, nActiveMaxChnTimeConc,
718 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
719 CFG_ACTIVE_MAX_CHANNEL_TIME_CONC_DEFAULT,
720 CFG_ACTIVE_MAX_CHANNEL_TIME_CONC_MIN,
721 CFG_ACTIVE_MAX_CHANNEL_TIME_CONC_MAX ),
722
723 REG_VARIABLE( CFG_ACTIVE_MIN_CHANNEL_TIME_CONC_NAME, WLAN_PARAM_Integer,
724 hdd_config_t, nActiveMinChnTimeConc,
725 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
726 CFG_ACTIVE_MIN_CHANNEL_TIME_CONC_DEFAULT,
727 CFG_ACTIVE_MIN_CHANNEL_TIME_CONC_MIN,
728 CFG_ACTIVE_MIN_CHANNEL_TIME_CONC_MAX ),
729
730 REG_VARIABLE( CFG_REST_TIME_CONC_NAME, WLAN_PARAM_Integer,
731 hdd_config_t, nRestTimeConc,
732 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
733 CFG_REST_TIME_CONC_DEFAULT,
734 CFG_REST_TIME_CONC_MIN,
735 CFG_REST_TIME_CONC_MAX ),
Vinay Malekal05fdc812012-12-17 13:04:30 -0800736
737 REG_VARIABLE( CFG_NUM_CHAN_COMBINED_CONC_NAME, WLAN_PARAM_Integer,
738 hdd_config_t, nNumChanCombinedConc,
739 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
740 CFG_NUM_CHAN_COMBINED_CONC_DEFAULT,
741 CFG_NUM_CHAN_COMBINED_CONC_MIN,
742 CFG_NUM_CHAN_COMBINED_CONC_MAX ),
Madan Mohan Koyyalamudi4ff9cd62012-10-30 17:48:57 -0700743#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700744
745 REG_VARIABLE( CFG_MAX_PS_POLL_NAME, WLAN_PARAM_Integer,
746 hdd_config_t, nMaxPsPoll,
747 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
748 CFG_MAX_PS_POLL_DEFAULT,
749 CFG_MAX_PS_POLL_MIN,
750 CFG_MAX_PS_POLL_MAX ),
751
752 REG_VARIABLE( CFG_MAX_TX_POWER_NAME, WLAN_PARAM_Integer,
753 hdd_config_t, nTxPowerCap,
754 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
755 CFG_MAX_TX_POWER_DEFAULT,
756 CFG_MAX_TX_POWER_MIN,
757 CFG_MAX_TX_POWER_MAX ),
758
759 REG_VARIABLE( CFG_LOW_GAIN_OVERRIDE_NAME, WLAN_PARAM_Integer,
760 hdd_config_t, fIsLowGainOverride,
761 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
762 CFG_LOW_GAIN_OVERRIDE_DEFAULT,
763 CFG_LOW_GAIN_OVERRIDE_MIN,
764 CFG_LOW_GAIN_OVERRIDE_MAX ),
765
766 REG_VARIABLE( CFG_RSSI_FILTER_PERIOD_NAME, WLAN_PARAM_Integer,
767 hdd_config_t, nRssiFilterPeriod,
768 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
769 CFG_RSSI_FILTER_PERIOD_DEFAULT,
770 CFG_RSSI_FILTER_PERIOD_MIN,
771 CFG_RSSI_FILTER_PERIOD_MAX ),
772
773 REG_VARIABLE( CFG_IGNORE_DTIM_NAME, WLAN_PARAM_Integer,
774 hdd_config_t, fIgnoreDtim,
775 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
776 CFG_IGNORE_DTIM_DEFAULT,
777 CFG_IGNORE_DTIM_MIN,
778 CFG_IGNORE_DTIM_MAX ),
779
780 REG_VARIABLE( CFG_RX_ANT_CONFIGURATION_NAME, WLAN_PARAM_Integer,
781 hdd_config_t, nRxAnt,
782 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
783 CFG_RX_ANT_CONFIGURATION_NAME_DEFAULT,
784 CFG_RX_ANT_CONFIGURATION_NAME_MIN,
785 CFG_RX_ANT_CONFIGURATION_NAME_MAX ),
786
787 REG_VARIABLE( CFG_FW_HEART_BEAT_MONITORING_NAME, WLAN_PARAM_Integer,
788 hdd_config_t, fEnableFwHeartBeatMonitoring,
789 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
790 CFG_FW_HEART_BEAT_MONITORING_DEFAULT,
791 CFG_FW_HEART_BEAT_MONITORING_MIN,
792 CFG_FW_HEART_BEAT_MONITORING_MAX ),
793
794 REG_VARIABLE( CFG_FW_BEACON_FILTERING_NAME, WLAN_PARAM_Integer,
795 hdd_config_t, fEnableFwBeaconFiltering,
796 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
797 CFG_FW_BEACON_FILTERING_DEFAULT,
798 CFG_FW_BEACON_FILTERING_MIN,
799 CFG_FW_BEACON_FILTERING_MAX ),
800
Gopichand Nakkala98a98af2012-12-31 14:38:47 -0800801 REG_DYNAMIC_VARIABLE( CFG_FW_RSSI_MONITORING_NAME, WLAN_PARAM_Integer,
Jeff Johnson295189b2012-06-20 16:38:30 -0700802 hdd_config_t, fEnableFwRssiMonitoring,
803 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
804 CFG_FW_RSSI_MONITORING_DEFAULT,
805 CFG_FW_RSSI_MONITORING_MIN,
Gopichand Nakkala98a98af2012-12-31 14:38:47 -0800806 CFG_FW_RSSI_MONITORING_MAX,
807 cbNotifySetFwRssiMonitoring, 0 ),
Jeff Johnson295189b2012-06-20 16:38:30 -0700808
809 REG_VARIABLE( CFG_DATA_INACTIVITY_TIMEOUT_NAME, WLAN_PARAM_Integer,
810 hdd_config_t, nDataInactivityTimeout,
811 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
812 CFG_DATA_INACTIVITY_TIMEOUT_DEFAULT,
813 CFG_DATA_INACTIVITY_TIMEOUT_MIN,
814 CFG_DATA_INACTIVITY_TIMEOUT_MAX ),
815
816 REG_VARIABLE( CFG_NTH_BEACON_FILTER_NAME, WLAN_PARAM_Integer,
817 hdd_config_t, nthBeaconFilter,
818 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
819 CFG_NTH_BEACON_FILTER_DEFAULT,
820 CFG_NTH_BEACON_FILTER_MIN,
821 CFG_NTH_BEACON_FILTER_MAX ),
822
823 REG_VARIABLE( CFG_QOS_WMM_MODE_NAME , WLAN_PARAM_Integer,
824 hdd_config_t, WmmMode,
825 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
826 CFG_QOS_WMM_MODE_DEFAULT,
827 CFG_QOS_WMM_MODE_MIN,
828 CFG_QOS_WMM_MODE_MAX ),
829
830 REG_VARIABLE( CFG_QOS_WMM_80211E_ENABLED_NAME , WLAN_PARAM_Integer,
831 hdd_config_t, b80211eIsEnabled,
832 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
833 CFG_QOS_WMM_80211E_ENABLED_DEFAULT,
834 CFG_QOS_WMM_80211E_ENABLED_MIN,
835 CFG_QOS_WMM_80211E_ENABLED_MAX ),
836
837 REG_VARIABLE( CFG_QOS_WMM_UAPSD_MASK_NAME , WLAN_PARAM_HexInteger,
838 hdd_config_t, UapsdMask,
839 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
840 CFG_QOS_WMM_UAPSD_MASK_DEFAULT,
841 CFG_QOS_WMM_UAPSD_MASK_MIN,
842 CFG_QOS_WMM_UAPSD_MASK_MAX ),
843
844 REG_VARIABLE( CFG_QOS_WMM_MAX_SP_LEN_NAME , WLAN_PARAM_Integer,
845 hdd_config_t, MaxSpLength,
846 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
847 CFG_QOS_WMM_MAX_SP_LEN_DEFAULT,
848 CFG_QOS_WMM_MAX_SP_LEN_MIN,
849 CFG_QOS_WMM_MAX_SP_LEN_MAX ),
850
851 REG_VARIABLE( CFG_QOS_WMM_INFRA_UAPSD_VO_SRV_INTV_NAME , WLAN_PARAM_Integer,
852 hdd_config_t, InfraUapsdVoSrvIntv,
853 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
854 CFG_QOS_WMM_INFRA_UAPSD_VO_SRV_INTV_DEFAULT,
855 CFG_QOS_WMM_INFRA_UAPSD_VO_SRV_INTV_MIN,
856 CFG_QOS_WMM_INFRA_UAPSD_VO_SRV_INTV_MAX ),
857
858 REG_VARIABLE( CFG_QOS_WMM_INFRA_UAPSD_VO_SUS_INTV_NAME , WLAN_PARAM_Integer,
859 hdd_config_t, InfraUapsdVoSuspIntv,
860 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
861 CFG_QOS_WMM_INFRA_UAPSD_VO_SUS_INTV_DEFAULT,
862 CFG_QOS_WMM_INFRA_UAPSD_VO_SUS_INTV_MIN,
863 CFG_QOS_WMM_INFRA_UAPSD_VO_SUS_INTV_MAX ),
864
865 REG_VARIABLE( CFG_QOS_WMM_INFRA_UAPSD_VI_SRV_INTV_NAME , WLAN_PARAM_Integer,
866 hdd_config_t, InfraUapsdViSrvIntv,
867 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
868 CFG_QOS_WMM_INFRA_UAPSD_VI_SRV_INTV_DEFAULT,
869 CFG_QOS_WMM_INFRA_UAPSD_VI_SRV_INTV_MIN,
870 CFG_QOS_WMM_INFRA_UAPSD_VI_SRV_INTV_MAX ),
871
872 REG_VARIABLE( CFG_QOS_WMM_INFRA_UAPSD_VI_SUS_INTV_NAME , WLAN_PARAM_Integer,
873 hdd_config_t, InfraUapsdViSuspIntv,
874 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
875 CFG_QOS_WMM_INFRA_UAPSD_VI_SUS_INTV_DEFAULT,
876 CFG_QOS_WMM_INFRA_UAPSD_VI_SUS_INTV_MIN,
877 CFG_QOS_WMM_INFRA_UAPSD_VI_SUS_INTV_MAX ),
878
879 REG_VARIABLE( CFG_QOS_WMM_INFRA_UAPSD_BE_SRV_INTV_NAME , WLAN_PARAM_Integer,
880 hdd_config_t, InfraUapsdBeSrvIntv,
881 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
882 CFG_QOS_WMM_INFRA_UAPSD_BE_SRV_INTV_DEFAULT,
883 CFG_QOS_WMM_INFRA_UAPSD_BE_SRV_INTV_MIN,
884 CFG_QOS_WMM_INFRA_UAPSD_BE_SRV_INTV_MAX ),
885
886 REG_VARIABLE( CFG_QOS_WMM_INFRA_UAPSD_BE_SUS_INTV_NAME , WLAN_PARAM_Integer,
887 hdd_config_t, InfraUapsdBeSuspIntv,
888 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
889 CFG_QOS_WMM_INFRA_UAPSD_BE_SUS_INTV_DEFAULT,
890 CFG_QOS_WMM_INFRA_UAPSD_BE_SUS_INTV_MIN,
891 CFG_QOS_WMM_INFRA_UAPSD_BE_SUS_INTV_MAX ),
892
893 REG_VARIABLE( CFG_QOS_WMM_INFRA_UAPSD_BK_SRV_INTV_NAME , WLAN_PARAM_Integer,
894 hdd_config_t, InfraUapsdBkSrvIntv,
895 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
896 CFG_QOS_WMM_INFRA_UAPSD_BK_SRV_INTV_DEFAULT,
897 CFG_QOS_WMM_INFRA_UAPSD_BK_SRV_INTV_MIN,
898 CFG_QOS_WMM_INFRA_UAPSD_BK_SRV_INTV_MAX ),
899
900 REG_VARIABLE( CFG_QOS_WMM_INFRA_UAPSD_BK_SUS_INTV_NAME , WLAN_PARAM_Integer,
901 hdd_config_t, InfraUapsdBkSuspIntv,
902 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
903 CFG_QOS_WMM_INFRA_UAPSD_BK_SUS_INTV_DEFAULT,
904 CFG_QOS_WMM_INFRA_UAPSD_BK_SUS_INTV_MIN,
905 CFG_QOS_WMM_INFRA_UAPSD_BK_SUS_INTV_MAX ),
906
907#ifdef FEATURE_WLAN_CCX
908 REG_VARIABLE( CFG_QOS_WMM_INFRA_INACTIVITY_INTERVAL_NAME, WLAN_PARAM_Integer,
909 hdd_config_t, InfraInactivityInterval,
910 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
911 CFG_QOS_WMM_INFRA_INACTIVITY_INTERVAL_DEFAULT,
912 CFG_QOS_WMM_INFRA_INACTIVITY_INTERVAL_MIN,
913 CFG_QOS_WMM_INFRA_INACTIVITY_INTERVAL_MAX),
Gopichand Nakkala98a98af2012-12-31 14:38:47 -0800914 REG_DYNAMIC_VARIABLE( CFG_CCX_FEATURE_ENABLED_NAME, WLAN_PARAM_Integer,
Jeff Johnson295189b2012-06-20 16:38:30 -0700915 hdd_config_t, isCcxIniFeatureEnabled,
916 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
917 CFG_CCX_FEATURE_ENABLED_DEFAULT,
918 CFG_CCX_FEATURE_ENABLED_MIN,
Gopichand Nakkala98a98af2012-12-31 14:38:47 -0800919 CFG_CCX_FEATURE_ENABLED_MAX,
920 cbNotifySetCcxFeatureEnabled, 0 ),
Jeff Johnson295189b2012-06-20 16:38:30 -0700921#endif // FEATURE_WLAN_CCX
922
Jeff Johnson04dd8a82012-06-29 20:41:40 -0700923#ifdef FEATURE_WLAN_LFR
924 // flag to turn ON/OFF Legacy Fast Roaming
Gopichand Nakkala98a98af2012-12-31 14:38:47 -0800925 REG_DYNAMIC_VARIABLE( CFG_LFR_FEATURE_ENABLED_NAME, WLAN_PARAM_Integer,
Jeff Johnson04dd8a82012-06-29 20:41:40 -0700926 hdd_config_t, isFastRoamIniFeatureEnabled,
927 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
928 CFG_LFR_FEATURE_ENABLED_DEFAULT,
929 CFG_LFR_FEATURE_ENABLED_MIN,
Gopichand Nakkala98a98af2012-12-31 14:38:47 -0800930 CFG_LFR_FEATURE_ENABLED_MAX,
931 NotifyIsFastRoamIniFeatureEnabled, 0 ),
Jeff Johnson04dd8a82012-06-29 20:41:40 -0700932#endif // FEATURE_WLAN_LFR
933
934#if defined (WLAN_FEATURE_VOWIFI_11R) || defined (FEATURE_WLAN_CCX) || defined(FEATURE_WLAN_LFR)
Jeff Johnson295189b2012-06-20 16:38:30 -0700935 // flag to turn ON/OFF 11r and CCX FastTransition
Gopichand Nakkala98a98af2012-12-31 14:38:47 -0800936 REG_DYNAMIC_VARIABLE( CFG_FAST_TRANSITION_ENABLED_NAME, WLAN_PARAM_Integer,
Jeff Johnson295189b2012-06-20 16:38:30 -0700937 hdd_config_t, isFastTransitionEnabled,
938 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
939 CFG_FAST_TRANSITION_ENABLED_NAME_DEFAULT,
940 CFG_FAST_TRANSITION_ENABLED_NAME_MIN,
Gopichand Nakkala98a98af2012-12-31 14:38:47 -0800941 CFG_FAST_TRANSITION_ENABLED_NAME_MAX,
942 cbNotifySetFastTransitionEnabled, 0 ),
Jeff Johnson43971f52012-07-17 12:26:56 -0700943
944 /* Variable to specify the delta/difference between the RSSI of current AP
945 * and roamable AP while roaming */
946 REG_VARIABLE( CFG_ROAM_RSSI_DIFF_NAME, WLAN_PARAM_Integer,
947 hdd_config_t, RoamRssiDiff,
948 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
949 CFG_ROAM_RSSI_DIFF_DEFAULT,
950 CFG_ROAM_RSSI_DIFF_MIN,
951 CFG_ROAM_RSSI_DIFF_MAX),
Madan Mohan Koyyalamudi62b55b02012-12-03 16:45:39 -0800952
953 REG_DYNAMIC_VARIABLE( CFG_IMMEDIATE_ROAM_RSSI_DIFF_NAME, WLAN_PARAM_Integer,
954 hdd_config_t, nImmediateRoamRssiDiff,
955 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
956 CFG_IMMEDIATE_ROAM_RSSI_DIFF_DEFAULT,
957 CFG_IMMEDIATE_ROAM_RSSI_DIFF_MIN,
958 CFG_IMMEDIATE_ROAM_RSSI_DIFF_MAX,
959 cbNotifySetImmediateRoamRssiDiff, 0),
Jeff Johnson295189b2012-06-20 16:38:30 -0700960#endif
961
962 REG_VARIABLE( CFG_QOS_WMM_PKT_CLASSIFY_BASIS_NAME , WLAN_PARAM_Integer,
963 hdd_config_t, PktClassificationBasis,
964 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
965 CFG_QOS_WMM_PKT_CLASSIFY_BASIS_DEFAULT,
966 CFG_QOS_WMM_PKT_CLASSIFY_BASIS_MIN,
967 CFG_QOS_WMM_PKT_CLASSIFY_BASIS_MAX ),
968
969 REG_VARIABLE( CFG_QOS_WMM_INFRA_DIR_AC_VO_NAME , WLAN_PARAM_Integer,
970 hdd_config_t, InfraDirAcVo,
971 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
972 CFG_QOS_WMM_INFRA_DIR_AC_VO_DEFAULT,
973 CFG_QOS_WMM_INFRA_DIR_AC_VO_MIN,
974 CFG_QOS_WMM_INFRA_DIR_AC_VO_MAX ),
975
976 REG_VARIABLE( CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VO_NAME , WLAN_PARAM_HexInteger,
977 hdd_config_t, InfraNomMsduSizeAcVo,
978 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
979 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VO_DEFAULT,
980 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VO_MIN,
981 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VO_MAX ),
982
983 REG_VARIABLE( CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VO_NAME , WLAN_PARAM_HexInteger,
984 hdd_config_t, InfraMeanDataRateAcVo,
985 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
986 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VO_DEFAULT,
987 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VO_MIN,
988 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VO_MAX ),
989
990 REG_VARIABLE( CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VO_NAME , WLAN_PARAM_HexInteger,
991 hdd_config_t, InfraMinPhyRateAcVo,
992 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
993 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VO_DEFAULT,
994 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VO_MIN,
995 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VO_MAX ),
996
997 REG_VARIABLE( CFG_QOS_WMM_INFRA_SBA_AC_VO_NAME , WLAN_PARAM_HexInteger,
998 hdd_config_t, InfraSbaAcVo,
999 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1000 CFG_QOS_WMM_INFRA_SBA_AC_VO_DEFAULT,
1001 CFG_QOS_WMM_INFRA_SBA_AC_VO_MIN,
1002 CFG_QOS_WMM_INFRA_SBA_AC_VO_MAX ),
1003
1004 REG_VARIABLE( CFG_QOS_WMM_INFRA_DIR_AC_VI_NAME , WLAN_PARAM_Integer,
1005 hdd_config_t, InfraDirAcVi,
1006 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1007 CFG_QOS_WMM_INFRA_DIR_AC_VI_DEFAULT,
1008 CFG_QOS_WMM_INFRA_DIR_AC_VI_MIN,
1009 CFG_QOS_WMM_INFRA_DIR_AC_VI_MAX ),
1010
1011 REG_VARIABLE( CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VI_NAME , WLAN_PARAM_HexInteger,
1012 hdd_config_t, InfraNomMsduSizeAcVi,
1013 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1014 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VI_DEFAULT,
1015 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VI_MIN,
1016 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VI_MAX ),
1017
1018 REG_VARIABLE( CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VI_NAME , WLAN_PARAM_HexInteger,
1019 hdd_config_t, InfraMeanDataRateAcVi,
1020 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1021 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VI_DEFAULT,
1022 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VI_MIN,
1023 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VI_MAX ),
1024
1025 REG_VARIABLE( CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VI_NAME , WLAN_PARAM_HexInteger,
1026 hdd_config_t, InfraMinPhyRateAcVi,
1027 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1028 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VI_DEFAULT,
1029 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VI_MIN,
1030 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VI_MAX ),
1031
1032 REG_VARIABLE( CFG_QOS_WMM_INFRA_SBA_AC_VI_NAME , WLAN_PARAM_HexInteger,
1033 hdd_config_t, InfraSbaAcVi,
1034 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1035 CFG_QOS_WMM_INFRA_SBA_AC_VI_DEFAULT,
1036 CFG_QOS_WMM_INFRA_SBA_AC_VI_MIN,
1037 CFG_QOS_WMM_INFRA_SBA_AC_VI_MAX ),
1038
1039 REG_VARIABLE( CFG_QOS_WMM_INFRA_DIR_AC_BE_NAME , WLAN_PARAM_Integer,
1040 hdd_config_t, InfraDirAcBe,
1041 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1042 CFG_QOS_WMM_INFRA_DIR_AC_BE_DEFAULT,
1043 CFG_QOS_WMM_INFRA_DIR_AC_BE_MIN,
1044 CFG_QOS_WMM_INFRA_DIR_AC_BE_MAX ),
1045
1046 REG_VARIABLE( CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_BE_NAME , WLAN_PARAM_HexInteger,
1047 hdd_config_t, InfraNomMsduSizeAcBe,
1048 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1049 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_BE_DEFAULT,
1050 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_BE_MIN,
1051 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_BE_MAX ),
1052
1053 REG_VARIABLE( CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_BE_NAME , WLAN_PARAM_HexInteger,
1054 hdd_config_t, InfraMeanDataRateAcBe,
1055 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1056 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_BE_DEFAULT,
1057 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_BE_MIN,
1058 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_BE_MAX ),
1059
1060 REG_VARIABLE( CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_BE_NAME , WLAN_PARAM_HexInteger,
1061 hdd_config_t, InfraMinPhyRateAcBe,
1062 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1063 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_BE_DEFAULT,
1064 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_BE_MIN,
1065 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_BE_MAX ),
1066
1067 REG_VARIABLE( CFG_QOS_WMM_INFRA_SBA_AC_BE_NAME , WLAN_PARAM_HexInteger,
1068 hdd_config_t, InfraSbaAcBe,
1069 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1070 CFG_QOS_WMM_INFRA_SBA_AC_BE_DEFAULT,
1071 CFG_QOS_WMM_INFRA_SBA_AC_BE_MIN,
1072 CFG_QOS_WMM_INFRA_SBA_AC_BE_MAX ),
1073
1074 REG_VARIABLE( CFG_QOS_WMM_INFRA_DIR_AC_BK_NAME , WLAN_PARAM_Integer,
1075 hdd_config_t, InfraDirAcBk,
1076 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1077 CFG_QOS_WMM_INFRA_DIR_AC_BK_DEFAULT,
1078 CFG_QOS_WMM_INFRA_DIR_AC_BK_MIN,
1079 CFG_QOS_WMM_INFRA_DIR_AC_BK_MAX ),
1080
1081 REG_VARIABLE( CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_BK_NAME , WLAN_PARAM_HexInteger,
1082 hdd_config_t, InfraNomMsduSizeAcBk,
1083 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1084 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_BK_DEFAULT,
1085 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_BK_MIN,
1086 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_BK_MAX ),
1087
1088 REG_VARIABLE( CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_BK_NAME , WLAN_PARAM_HexInteger,
1089 hdd_config_t, InfraMeanDataRateAcBk,
1090 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1091 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_BK_DEFAULT,
1092 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_BK_MIN,
1093 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_BK_MAX ),
1094
1095 REG_VARIABLE( CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_BK_NAME , WLAN_PARAM_HexInteger,
1096 hdd_config_t, InfraMinPhyRateAcBk,
1097 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1098 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_BK_DEFAULT,
1099 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_BK_MIN,
1100 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_BK_MAX ),
1101
1102 REG_VARIABLE( CFG_QOS_WMM_INFRA_SBA_AC_BK_NAME , WLAN_PARAM_HexInteger,
1103 hdd_config_t, InfraSbaAcBk,
1104 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1105 CFG_QOS_WMM_INFRA_SBA_AC_BK_DEFAULT,
1106 CFG_QOS_WMM_INFRA_SBA_AC_BK_MIN,
1107 CFG_QOS_WMM_INFRA_SBA_AC_BK_MAX ),
1108
1109 REG_VARIABLE( CFG_TL_WFQ_BK_WEIGHT_NAME , WLAN_PARAM_Integer,
1110 hdd_config_t, WfqBkWeight,
1111 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1112 CFG_TL_WFQ_BK_WEIGHT_DEFAULT,
1113 CFG_TL_WFQ_BK_WEIGHT_MIN,
1114 CFG_TL_WFQ_BK_WEIGHT_MAX ),
1115
1116 REG_VARIABLE( CFG_TL_WFQ_BE_WEIGHT_NAME , WLAN_PARAM_Integer,
1117 hdd_config_t, WfqBeWeight,
1118 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1119 CFG_TL_WFQ_BE_WEIGHT_DEFAULT,
1120 CFG_TL_WFQ_BE_WEIGHT_MIN,
1121 CFG_TL_WFQ_BE_WEIGHT_MAX ),
1122
1123 REG_VARIABLE( CFG_TL_WFQ_VI_WEIGHT_NAME , WLAN_PARAM_Integer,
1124 hdd_config_t, WfqViWeight,
1125 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1126 CFG_TL_WFQ_VI_WEIGHT_DEFAULT,
1127 CFG_TL_WFQ_VI_WEIGHT_MIN,
1128 CFG_TL_WFQ_VI_WEIGHT_MAX ),
1129
1130 REG_VARIABLE( CFG_TL_WFQ_VO_WEIGHT_NAME , WLAN_PARAM_Integer,
1131 hdd_config_t, WfqVoWeight,
1132 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1133 CFG_TL_WFQ_VO_WEIGHT_DEFAULT,
1134 CFG_TL_WFQ_VO_WEIGHT_MIN,
1135 CFG_TL_WFQ_VO_WEIGHT_MAX ),
1136
1137 REG_VARIABLE( CFG_TL_DELAYED_TRGR_FRM_INT_NAME , WLAN_PARAM_Integer,
1138 hdd_config_t, DelayedTriggerFrmInt,
1139 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1140 CFG_TL_DELAYED_TRGR_FRM_INT_DEFAULT,
1141 CFG_TL_DELAYED_TRGR_FRM_INT_MIN,
1142 CFG_TL_DELAYED_TRGR_FRM_INT_MAX ),
1143
1144 REG_VARIABLE_STRING( CFG_WOWL_PATTERN_NAME, WLAN_PARAM_String,
1145 hdd_config_t, wowlPattern,
1146 VAR_FLAGS_OPTIONAL,
1147 (void *)CFG_WOWL_PATTERN_DEFAULT ),
1148
1149 REG_VARIABLE( CFG_QOS_IMPLICIT_SETUP_ENABLED_NAME , WLAN_PARAM_Integer,
1150 hdd_config_t, bImplicitQosEnabled,
1151 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1152 CFG_QOS_IMPLICIT_SETUP_ENABLED_DEFAULT,
1153 CFG_QOS_IMPLICIT_SETUP_ENABLED_MIN,
1154 CFG_QOS_IMPLICIT_SETUP_ENABLED_MAX ),
1155
1156 REG_VARIABLE( CFG_19P2_MHZ_PMIC_CLK_ENABLED_NAME , WLAN_PARAM_Integer,
1157 hdd_config_t, b19p2MhzPmicClkEnabled,
1158 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1159 CFG_19P2_MHZ_PMIC_CLK_ENABLED_DEFAULT,
1160 CFG_19P2_MHZ_PMIC_CLK_ENABLED_MIN,
1161 CFG_19P2_MHZ_PMIC_CLK_ENABLED_MAX ),
1162
1163 REG_VARIABLE( CFG_BTC_EXECUTION_MODE_NAME , WLAN_PARAM_Integer,
1164 hdd_config_t, btcExecutionMode,
1165 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1166 CFG_BTC_EXECUTION_MODE_DEFAULT,
1167 CFG_BTC_EXECUTION_MODE_MIN,
1168 CFG_BTC_EXECUTION_MODE_MAX ),
1169
1170 REG_VARIABLE( CFG_BTC_DHCP_PROTECTION_NAME , WLAN_PARAM_Integer,
1171 hdd_config_t, btcConsBtSlotsToBlockDuringDhcp,
1172 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1173 CFG_BTC_DHCP_PROTECTION_DEFAULT,
1174 CFG_BTC_DHCP_PROTECTION_MIN,
1175 CFG_BTC_DHCP_PROTECTION_MAX ),
1176
1177 REG_VARIABLE( CFG_BTC_A2DP_DHCP_PROTECTION_NAME , WLAN_PARAM_Integer,
1178 hdd_config_t, btcA2DPBtSubIntervalsDuringDhcp,
1179 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1180 CFG_BTC_A2DP_DHCP_PROTECTION_DEFAULT,
1181 CFG_BTC_A2DP_DHCP_PROTECTION_MIN,
1182 CFG_BTC_A2DP_DHCP_PROTECTION_MAX ),
1183
Jeff Johnson32d95a32012-09-10 13:15:23 -07001184 REG_VARIABLE( CFG_BTC_STATIC_LEN_INQ_BT_NAME , WLAN_PARAM_Integer,
1185 hdd_config_t, btcStaticLenInqBt,
1186 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1187 CFG_BTC_STATIC_LEN_INQ_BT_DEFAULT,
1188 CFG_BTC_STATIC_LEN_INQ_BT_MIN,
1189 CFG_BTC_STATIC_LEN_INQ_BT_MAX ),
1190
1191 REG_VARIABLE( CFG_BTC_STATIC_LEN_PAGE_BT_NAME , WLAN_PARAM_Integer,
1192 hdd_config_t, btcStaticLenPageBt,
1193 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1194 CFG_BTC_STATIC_LEN_PAGE_BT_DEFAULT,
1195 CFG_BTC_STATIC_LEN_PAGE_BT_MIN,
1196 CFG_BTC_STATIC_LEN_PAGE_BT_MAX ),
1197
1198 REG_VARIABLE( CFG_BTC_STATIC_LEN_CONN_BT_NAME , WLAN_PARAM_Integer,
1199 hdd_config_t, btcStaticLenConnBt,
1200 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1201 CFG_BTC_STATIC_LEN_CONN_BT_DEFAULT,
1202 CFG_BTC_STATIC_LEN_CONN_BT_MIN,
1203 CFG_BTC_STATIC_LEN_CONN_BT_MAX ),
1204
1205 REG_VARIABLE( CFG_BTC_STATIC_LEN_LE_BT_NAME , WLAN_PARAM_Integer,
1206 hdd_config_t, btcStaticLenLeBt,
1207 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1208 CFG_BTC_STATIC_LEN_LE_BT_DEFAULT,
1209 CFG_BTC_STATIC_LEN_LE_BT_MIN,
1210 CFG_BTC_STATIC_LEN_LE_BT_MAX ),
1211
1212 REG_VARIABLE( CFG_BTC_STATIC_LEN_INQ_WLAN_NAME , WLAN_PARAM_Integer,
1213 hdd_config_t, btcStaticLenInqWlan,
1214 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1215 CFG_BTC_STATIC_LEN_INQ_WLAN_DEFAULT,
1216 CFG_BTC_STATIC_LEN_INQ_WLAN_MIN,
1217 CFG_BTC_STATIC_LEN_INQ_WLAN_MAX ),
1218
1219 REG_VARIABLE( CFG_BTC_STATIC_LEN_PAGE_WLAN_NAME , WLAN_PARAM_Integer,
1220 hdd_config_t, btcStaticLenPageWlan,
1221 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1222 CFG_BTC_STATIC_LEN_PAGE_WLAN_DEFAULT,
1223 CFG_BTC_STATIC_LEN_PAGE_WLAN_MIN,
1224 CFG_BTC_STATIC_LEN_PAGE_WLAN_MAX ),
1225
1226 REG_VARIABLE( CFG_BTC_STATIC_LEN_CONN_WLAN_NAME , WLAN_PARAM_Integer,
1227 hdd_config_t, btcStaticLenConnWlan,
1228 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1229 CFG_BTC_STATIC_LEN_CONN_WLAN_DEFAULT,
1230 CFG_BTC_STATIC_LEN_CONN_WLAN_MIN,
1231 CFG_BTC_STATIC_LEN_CONN_WLAN_MAX ),
1232
1233 REG_VARIABLE( CFG_BTC_STATIC_LEN_LE_WLAN_NAME , WLAN_PARAM_Integer,
1234 hdd_config_t, btcStaticLenLeWlan,
1235 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1236 CFG_BTC_STATIC_LEN_LE_WLAN_DEFAULT,
1237 CFG_BTC_STATIC_LEN_LE_WLAN_MIN,
1238 CFG_BTC_STATIC_LEN_LE_WLAN_MAX ),
1239
1240 REG_VARIABLE( CFG_BTC_DYN_MAX_LEN_BT_NAME , WLAN_PARAM_Integer,
1241 hdd_config_t, btcDynMaxLenBt,
1242 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1243 CFG_BTC_DYN_MAX_LEN_BT_DEFAULT,
1244 CFG_BTC_DYN_MAX_LEN_BT_MIN,
1245 CFG_BTC_DYN_MAX_LEN_BT_MAX ),
1246
1247 REG_VARIABLE( CFG_BTC_DYN_MAX_LEN_WLAN_NAME , WLAN_PARAM_Integer,
1248 hdd_config_t, btcDynMaxLenWlan,
1249 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1250 CFG_BTC_DYN_MAX_LEN_WLAN_DEFAULT,
1251 CFG_BTC_DYN_MAX_LEN_WLAN_MIN,
1252 CFG_BTC_DYN_MAX_LEN_WLAN_MAX ),
1253
1254 REG_VARIABLE( CFG_BTC_MAX_SCO_BLOCK_PERC_NAME , WLAN_PARAM_Integer,
1255 hdd_config_t, btcMaxScoBlockPerc,
1256 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1257 CFG_BTC_MAX_SCO_BLOCK_PERC_DEFAULT,
1258 CFG_BTC_MAX_SCO_BLOCK_PERC_MIN,
1259 CFG_BTC_MAX_SCO_BLOCK_PERC_MAX ),
1260
1261 REG_VARIABLE( CFG_BTC_DHCP_PROT_ON_A2DP_NAME , WLAN_PARAM_Integer,
1262 hdd_config_t, btcDhcpProtOnA2dp,
1263 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1264 CFG_BTC_DHCP_PROT_ON_A2DP_DEFAULT,
1265 CFG_BTC_DHCP_PROT_ON_A2DP_MIN,
1266 CFG_BTC_DHCP_PROT_ON_A2DP_MAX ),
1267
1268 REG_VARIABLE( CFG_BTC_DHCP_PROT_ON_SCO_NAME , WLAN_PARAM_Integer,
1269 hdd_config_t, btcDhcpProtOnSco,
1270 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1271 CFG_BTC_DHCP_PROT_ON_SCO_DEFAULT,
1272 CFG_BTC_DHCP_PROT_ON_SCO_MIN,
1273 CFG_BTC_DHCP_PROT_ON_SCO_MAX ),
1274
Jeff Johnson295189b2012-06-20 16:38:30 -07001275#ifdef WLAN_SOFTAP_FEATURE
1276 REG_VARIABLE( CFG_AP_LISTEN_MODE_NAME , WLAN_PARAM_Integer,
1277 hdd_config_t, nEnableListenMode,
1278 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1279 CFG_AP_LISTEN_MODE_DEFAULT,
1280 CFG_AP_LISTEN_MODE_MIN,
1281 CFG_AP_LISTEN_MODE_MAX ),
1282
1283 REG_VARIABLE( CFG_AP_AUTO_SHUT_OFF , WLAN_PARAM_Integer,
1284 hdd_config_t, nAPAutoShutOff,
1285 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1286 CFG_AP_AUTO_SHUT_OFF_DEFAULT,
1287 CFG_AP_AUTO_SHUT_OFF_MIN,
1288 CFG_AP_AUTO_SHUT_OFF_MAX ),
1289#endif
1290
1291#if defined WLAN_FEATURE_VOWIFI
1292 REG_VARIABLE( CFG_RRM_ENABLE_NAME, WLAN_PARAM_Integer,
1293 hdd_config_t, fRrmEnable,
1294 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1295 CFG_RRM_ENABLE_DEFAULT,
1296 CFG_RRM_ENABLE_MIN,
1297 CFG_RRM_ENABLE_MAX ),
1298
1299 REG_VARIABLE( CFG_RRM_OPERATING_CHAN_MAX_DURATION_NAME, WLAN_PARAM_Integer,
1300 hdd_config_t, nInChanMeasMaxDuration,
1301 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1302 CFG_RRM_OPERATING_CHAN_MAX_DURATION_DEFAULT,
1303 CFG_RRM_OPERATING_CHAN_MAX_DURATION_MIN,
1304 CFG_RRM_OPERATING_CHAN_MAX_DURATION_MAX ),
1305
1306 REG_VARIABLE( CFG_RRM_NON_OPERATING_CHAN_MAX_DURATION_NAME, WLAN_PARAM_Integer,
1307 hdd_config_t, nOutChanMeasMaxDuration,
1308 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1309 CFG_RRM_NON_OPERATING_CHAN_MAX_DURATION_DEFAULT,
1310 CFG_RRM_NON_OPERATING_CHAN_MAX_DURATION_MIN,
1311 CFG_RRM_NON_OPERATING_CHAN_MAX_DURATION_MAX ),
1312
1313 REG_VARIABLE( CFG_RRM_MEAS_RANDOMIZATION_INTVL_NAME, WLAN_PARAM_Integer,
1314 hdd_config_t, nRrmRandnIntvl,
1315 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1316 CFG_RRM_MEAS_RANDOMIZATION_INTVL_DEFAULT,
1317 CFG_RRM_MEAS_RANDOMIZATION_INTVL_MIN,
1318 CFG_RRM_MEAS_RANDOMIZATION_INTVL_MAX ),
1319#endif
1320
1321#ifdef WLAN_FEATURE_VOWIFI_11R
1322 REG_VARIABLE( CFG_FT_ENABLE_NAME, WLAN_PARAM_Integer,
1323 hdd_config_t, fFTEnable,
1324 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1325 CFG_FT_ENABLE_DEFAULT,
1326 CFG_FT_ENABLE_MIN,
1327 CFG_FT_ENABLE_MAX ),
1328
1329 REG_VARIABLE( CFG_FT_RESOURCE_REQ_NAME, WLAN_PARAM_Integer,
1330 hdd_config_t, fFTResourceReqSupported,
1331 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1332 CFG_FT_RESOURCE_REQ_DEFAULT,
1333 CFG_FT_RESOURCE_REQ_MIN,
1334 CFG_FT_RESOURCE_REQ_MAX ),
1335#endif
1336
1337#ifdef WLAN_FEATURE_NEIGHBOR_ROAMING
1338 REG_VARIABLE( CFG_NEIGHBOR_SCAN_TIMER_PERIOD_NAME, WLAN_PARAM_Integer,
1339 hdd_config_t, nNeighborScanPeriod,
1340 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1341 CFG_NEIGHBOR_SCAN_TIMER_PERIOD_DEFAULT,
1342 CFG_NEIGHBOR_SCAN_TIMER_PERIOD_MIN,
1343 CFG_NEIGHBOR_SCAN_TIMER_PERIOD_MAX ),
1344
1345 REG_VARIABLE( CFG_NEIGHBOR_REASSOC_RSSI_THRESHOLD_NAME, WLAN_PARAM_Integer,
1346 hdd_config_t, nNeighborReassocRssiThreshold,
1347 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1348 CFG_NEIGHBOR_REASSOC_RSSI_THRESHOLD_DEFAULT,
1349 CFG_NEIGHBOR_REASSOC_RSSI_THRESHOLD_MIN,
1350 CFG_NEIGHBOR_REASSOC_RSSI_THRESHOLD_MAX ),
1351
1352 REG_VARIABLE( CFG_NEIGHBOR_LOOKUP_RSSI_THRESHOLD_NAME, WLAN_PARAM_Integer,
1353 hdd_config_t, nNeighborLookupRssiThreshold,
1354 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1355 CFG_NEIGHBOR_LOOKUP_RSSI_THRESHOLD_DEFAULT,
1356 CFG_NEIGHBOR_LOOKUP_RSSI_THRESHOLD_MIN,
1357 CFG_NEIGHBOR_LOOKUP_RSSI_THRESHOLD_MAX ),
1358
1359 REG_VARIABLE_STRING( CFG_NEIGHBOR_SCAN_CHAN_LIST_NAME, WLAN_PARAM_String,
1360 hdd_config_t, neighborScanChanList,
1361 VAR_FLAGS_OPTIONAL,
1362 (void *)CFG_NEIGHBOR_SCAN_CHAN_LIST_DEFAULT ),
1363
1364 REG_VARIABLE( CFG_NEIGHBOR_SCAN_MIN_CHAN_TIME_NAME, WLAN_PARAM_Integer,
1365 hdd_config_t, nNeighborScanMinChanTime,
1366 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1367 CFG_NEIGHBOR_SCAN_MIN_CHAN_TIME_DEFAULT,
1368 CFG_NEIGHBOR_SCAN_MIN_CHAN_TIME_MIN,
1369 CFG_NEIGHBOR_SCAN_MIN_CHAN_TIME_MAX ),
1370
1371 REG_VARIABLE( CFG_NEIGHBOR_SCAN_MAX_CHAN_TIME_NAME, WLAN_PARAM_Integer,
1372 hdd_config_t, nNeighborScanMaxChanTime,
1373 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1374 CFG_NEIGHBOR_SCAN_MAX_CHAN_TIME_DEFAULT,
1375 CFG_NEIGHBOR_SCAN_MAX_CHAN_TIME_MIN,
1376 CFG_NEIGHBOR_SCAN_MAX_CHAN_TIME_MAX ),
1377
1378 REG_VARIABLE( CFG_11R_NEIGHBOR_REQ_MAX_TRIES_NAME, WLAN_PARAM_Integer,
1379 hdd_config_t, nMaxNeighborReqTries,
1380 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1381 CFG_11R_NEIGHBOR_REQ_MAX_TRIES_DEFAULT,
1382 CFG_11R_NEIGHBOR_REQ_MAX_TRIES_MIN,
1383 CFG_11R_NEIGHBOR_REQ_MAX_TRIES_MAX),
1384
1385 REG_VARIABLE( CFG_NEIGHBOR_SCAN_RESULTS_REFRESH_PERIOD_NAME, WLAN_PARAM_Integer,
1386 hdd_config_t, nNeighborResultsRefreshPeriod,
1387 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1388 CFG_NEIGHBOR_SCAN_RESULTS_REFRESH_PERIOD_DEFAULT,
1389 CFG_NEIGHBOR_SCAN_RESULTS_REFRESH_PERIOD_MIN,
1390 CFG_NEIGHBOR_SCAN_RESULTS_REFRESH_PERIOD_MAX ),
1391#endif /* WLAN_FEATURE_NEIGHBOR_ROAMING */
1392
1393 REG_VARIABLE( CFG_QOS_WMM_BURST_SIZE_DEFN_NAME , WLAN_PARAM_Integer,
1394 hdd_config_t, burstSizeDefinition,
1395 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1396 CFG_QOS_WMM_BURST_SIZE_DEFN_DEFAULT,
1397 CFG_QOS_WMM_BURST_SIZE_DEFN_MIN,
1398 CFG_QOS_WMM_BURST_SIZE_DEFN_MAX ),
1399
1400 REG_VARIABLE( CFG_MCAST_BCAST_FILTER_SETTING_NAME, WLAN_PARAM_Integer,
1401 hdd_config_t, mcastBcastFilterSetting,
1402 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1403 CFG_MCAST_BCAST_FILTER_SETTING_DEFAULT,
1404 CFG_MCAST_BCAST_FILTER_SETTING_MIN,
1405 CFG_MCAST_BCAST_FILTER_SETTING_MAX ),
1406
1407 REG_VARIABLE( CFG_ENABLE_HOST_ARPOFFLOAD_NAME, WLAN_PARAM_Integer,
1408 hdd_config_t, fhostArpOffload,
1409 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1410 CFG_ENABLE_HOST_ARPOFFLOAD_DEFAULT,
1411 CFG_ENABLE_HOST_ARPOFFLOAD_MIN,
1412 CFG_ENABLE_HOST_ARPOFFLOAD_MAX ),
1413
1414 REG_VARIABLE( CFG_QOS_WMM_TS_INFO_ACK_POLICY_NAME , WLAN_PARAM_HexInteger,
1415 hdd_config_t, tsInfoAckPolicy,
1416 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1417 CFG_QOS_WMM_TS_INFO_ACK_POLICY_DEFAULT,
1418 CFG_QOS_WMM_TS_INFO_ACK_POLICY_MIN,
1419 CFG_QOS_WMM_TS_INFO_ACK_POLICY_MAX ),
1420
1421 REG_VARIABLE( CFG_SINGLE_TID_RC_NAME, WLAN_PARAM_Integer,
1422 hdd_config_t, bSingleTidRc,
1423 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1424 CFG_SINGLE_TID_RC_DEFAULT,
1425 CFG_SINGLE_TID_RC_MIN,
1426 CFG_SINGLE_TID_RC_MAX),
1427
1428 REG_VARIABLE( CFG_DYNAMIC_PSPOLL_VALUE_NAME, WLAN_PARAM_Integer,
1429 hdd_config_t, dynamicPsPollValue,
1430 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1431 CFG_DYNAMIC_PSPOLL_VALUE_DEFAULT,
1432 CFG_DYNAMIC_PSPOLL_VALUE_MIN,
1433 CFG_DYNAMIC_PSPOLL_VALUE_MAX ),
1434
1435 REG_VARIABLE( CFG_TELE_BCN_WAKEUP_EN_NAME, WLAN_PARAM_Integer,
1436 hdd_config_t, teleBcnWakeupEn,
1437 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1438 CFG_TELE_BCN_WAKEUP_EN_DEFAULT,
1439 CFG_TELE_BCN_WAKEUP_EN_MIN,
1440 CFG_TELE_BCN_WAKEUP_EN_MAX ),
1441
1442 REG_VARIABLE( CFG_INFRA_STA_KEEP_ALIVE_PERIOD_NAME, WLAN_PARAM_Integer,
1443 hdd_config_t, infraStaKeepAlivePeriod,
1444 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1445 CFG_INFRA_STA_KEEP_ALIVE_PERIOD_DEFAULT,
1446 CFG_INFRA_STA_KEEP_ALIVE_PERIOD_MIN,
1447 CFG_INFRA_STA_KEEP_ALIVE_PERIOD_MAX),
1448
1449 REG_VARIABLE( CFG_QOS_ADDTS_WHEN_ACM_IS_OFF_NAME , WLAN_PARAM_Integer,
1450 hdd_config_t, AddTSWhenACMIsOff,
1451 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1452 CFG_QOS_ADDTS_WHEN_ACM_IS_OFF_DEFAULT,
1453 CFG_QOS_ADDTS_WHEN_ACM_IS_OFF_MIN,
1454 CFG_QOS_ADDTS_WHEN_ACM_IS_OFF_MAX ),
1455
1456
1457 REG_VARIABLE( CFG_VALIDATE_SCAN_LIST_NAME , WLAN_PARAM_Integer,
1458 hdd_config_t, fValidateScanList,
1459 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1460 CFG_VALIDATE_SCAN_LIST_DEFAULT,
1461 CFG_VALIDATE_SCAN_LIST_MIN,
1462 CFG_VALIDATE_SCAN_LIST_MAX ),
1463
1464 REG_VARIABLE( CFG_NULLDATA_AP_RESP_TIMEOUT_NAME, WLAN_PARAM_Integer,
1465 hdd_config_t, nNullDataApRespTimeout,
1466 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1467 CFG_NULLDATA_AP_RESP_TIMEOUT_DEFAULT,
1468 CFG_NULLDATA_AP_RESP_TIMEOUT_MIN,
1469 CFG_NULLDATA_AP_RESP_TIMEOUT_MAX ),
1470
1471 REG_VARIABLE( CFG_AP_DATA_AVAIL_POLL_PERIOD_NAME, WLAN_PARAM_Integer,
1472 hdd_config_t, apDataAvailPollPeriodInMs,
1473 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1474 CFG_AP_DATA_AVAIL_POLL_PERIOD_DEFAULT,
1475 CFG_AP_DATA_AVAIL_POLL_PERIOD_MIN,
1476 CFG_AP_DATA_AVAIL_POLL_PERIOD_MAX ),
1477
1478 REG_VARIABLE( CFG_ENABLE_BTAMP_NAME, WLAN_PARAM_Integer,
1479 hdd_config_t, enableBtAmp,
1480 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1481 CFG_ENABLE_BTAMP_DEFAULT,
1482 CFG_ENABLE_BTAMP_MIN,
1483 CFG_ENABLE_BTAMP_MAX ),
1484
1485#ifdef WLAN_BTAMP_FEATURE
1486 REG_VARIABLE( CFG_BT_AMP_PREFERRED_CHANNEL_NAME, WLAN_PARAM_Integer,
1487 hdd_config_t, preferredChannel,
1488 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1489 CFG_BT_AMP_PREFERRED_CHANNEL_DEFAULT,
1490 CFG_BT_AMP_PREFERRED_CHANNEL_MIN,
1491 CFG_BT_AMP_PREFERRED_CHANNEL_MAX ),
1492#endif //WLAN_BTAMP_FEATURE
1493 REG_VARIABLE( CFG_BAND_CAPABILITY_NAME, WLAN_PARAM_Integer,
1494 hdd_config_t, nBandCapability,
1495 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1496 CFG_BAND_CAPABILITY_DEFAULT,
1497 CFG_BAND_CAPABILITY_MIN,
1498 CFG_BAND_CAPABILITY_MAX ),
1499
1500 REG_VARIABLE( CFG_ENABLE_BEACON_EARLY_TERMINATION_NAME, WLAN_PARAM_Integer,
1501 hdd_config_t, fEnableBeaconEarlyTermination,
1502 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1503 CFG_ENABLE_BEACON_EARLY_TERMINATION_DEFAULT,
1504 CFG_ENABLE_BEACON_EARLY_TERMINATION_MIN,
1505 CFG_ENABLE_BEACON_EARLY_TERMINATION_MAX ),
Varun Reddy Yeturu587e6802013-01-24 12:21:41 -08001506/* CFG_VOS_TRACE_ENABLE Parameters */
1507 REG_VARIABLE( CFG_VOS_TRACE_ENABLE_BAP_NAME, WLAN_PARAM_Integer,
1508 hdd_config_t, vosTraceEnableBAP,
1509 VAR_FLAGS_OPTIONAL,
1510 CFG_VOS_TRACE_ENABLE_DEFAULT,
1511 CFG_VOS_TRACE_ENABLE_MIN,
1512 CFG_VOS_TRACE_ENABLE_MAX ),
1513
1514 REG_VARIABLE( CFG_VOS_TRACE_ENABLE_TL_NAME, WLAN_PARAM_Integer,
1515 hdd_config_t, vosTraceEnableTL,
1516 VAR_FLAGS_OPTIONAL,
1517 CFG_VOS_TRACE_ENABLE_DEFAULT,
1518 CFG_VOS_TRACE_ENABLE_MIN,
1519 CFG_VOS_TRACE_ENABLE_MAX ),
1520
1521 REG_VARIABLE( CFG_VOS_TRACE_ENABLE_WDI_NAME, WLAN_PARAM_Integer,
1522 hdd_config_t, vosTraceEnableWDI,
1523 VAR_FLAGS_OPTIONAL,
1524 CFG_VOS_TRACE_ENABLE_DEFAULT,
1525 CFG_VOS_TRACE_ENABLE_MIN,
1526 CFG_VOS_TRACE_ENABLE_MAX ),
1527
1528 REG_VARIABLE( CFG_VOS_TRACE_ENABLE_HDD_NAME, WLAN_PARAM_Integer,
1529 hdd_config_t, vosTraceEnableHDD,
1530 VAR_FLAGS_OPTIONAL,
1531 CFG_VOS_TRACE_ENABLE_DEFAULT,
1532 CFG_VOS_TRACE_ENABLE_MIN,
1533 CFG_VOS_TRACE_ENABLE_MAX ),
1534
1535 REG_VARIABLE( CFG_VOS_TRACE_ENABLE_SME_NAME, WLAN_PARAM_Integer,
1536 hdd_config_t, vosTraceEnableSME,
1537 VAR_FLAGS_OPTIONAL,
1538 CFG_VOS_TRACE_ENABLE_DEFAULT,
1539 CFG_VOS_TRACE_ENABLE_MIN,
1540 CFG_VOS_TRACE_ENABLE_MAX ),
1541
1542 REG_VARIABLE( CFG_VOS_TRACE_ENABLE_PE_NAME, WLAN_PARAM_Integer,
1543 hdd_config_t, vosTraceEnablePE,
1544 VAR_FLAGS_OPTIONAL,
1545 CFG_VOS_TRACE_ENABLE_DEFAULT,
1546 CFG_VOS_TRACE_ENABLE_MIN,
1547 CFG_VOS_TRACE_ENABLE_MAX ),
1548
1549 REG_VARIABLE( CFG_VOS_TRACE_ENABLE_WDA_NAME, WLAN_PARAM_Integer,
1550 hdd_config_t, vosTraceEnableWDA,
1551 VAR_FLAGS_OPTIONAL,
1552 CFG_VOS_TRACE_ENABLE_DEFAULT,
1553 CFG_VOS_TRACE_ENABLE_MIN,
1554 CFG_VOS_TRACE_ENABLE_MAX ),
1555
1556 REG_VARIABLE( CFG_VOS_TRACE_ENABLE_SYS_NAME, WLAN_PARAM_Integer,
1557 hdd_config_t, vosTraceEnableSYS,
1558 VAR_FLAGS_OPTIONAL,
1559 CFG_VOS_TRACE_ENABLE_DEFAULT,
1560 CFG_VOS_TRACE_ENABLE_MIN,
1561 CFG_VOS_TRACE_ENABLE_MAX ),
1562
1563 REG_VARIABLE( CFG_VOS_TRACE_ENABLE_VOSS_NAME, WLAN_PARAM_Integer,
1564 hdd_config_t, vosTraceEnableVOSS,
1565 VAR_FLAGS_OPTIONAL,
1566 CFG_VOS_TRACE_ENABLE_DEFAULT,
1567 CFG_VOS_TRACE_ENABLE_MIN,
1568 CFG_VOS_TRACE_ENABLE_MAX ),
1569
1570#ifdef WLAN_SOFTAP_FEATURE
1571 REG_VARIABLE( CFG_VOS_TRACE_ENABLE_SAP_NAME, WLAN_PARAM_Integer,
1572 hdd_config_t, vosTraceEnableSAP,
1573 VAR_FLAGS_OPTIONAL,
1574 CFG_VOS_TRACE_ENABLE_DEFAULT,
1575 CFG_VOS_TRACE_ENABLE_MIN,
1576 CFG_VOS_TRACE_ENABLE_MAX ),
1577
1578 REG_VARIABLE( CFG_VOS_TRACE_ENABLE_HDD_SAP_NAME, WLAN_PARAM_Integer,
1579 hdd_config_t, vosTraceEnableHDDSAP,
1580 VAR_FLAGS_OPTIONAL,
1581 CFG_VOS_TRACE_ENABLE_DEFAULT,
1582 CFG_VOS_TRACE_ENABLE_MIN,
1583 CFG_VOS_TRACE_ENABLE_MAX ),
1584#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07001585
1586#ifdef FEATURE_WLAN_INTEGRATED_SOC
1587 /* note that since the default value is out of range we cannot
1588 enable range check, otherwise we get a system log message */
1589 REG_VARIABLE( CFG_WDI_TRACE_ENABLE_DAL_NAME, WLAN_PARAM_Integer,
1590 hdd_config_t, wdiTraceEnableDAL,
1591 VAR_FLAGS_OPTIONAL,
1592 CFG_WDI_TRACE_ENABLE_DEFAULT,
1593 CFG_WDI_TRACE_ENABLE_MIN,
1594 CFG_WDI_TRACE_ENABLE_MAX ),
1595
1596 REG_VARIABLE( CFG_WDI_TRACE_ENABLE_CTL_NAME, WLAN_PARAM_Integer,
1597 hdd_config_t, wdiTraceEnableCTL,
1598 VAR_FLAGS_OPTIONAL,
1599 CFG_WDI_TRACE_ENABLE_DEFAULT,
1600 CFG_WDI_TRACE_ENABLE_MIN,
1601 CFG_WDI_TRACE_ENABLE_MAX ),
1602
1603 REG_VARIABLE( CFG_WDI_TRACE_ENABLE_DAT_NAME, WLAN_PARAM_Integer,
1604 hdd_config_t, wdiTraceEnableDAT,
1605 VAR_FLAGS_OPTIONAL,
1606 CFG_WDI_TRACE_ENABLE_DEFAULT,
1607 CFG_WDI_TRACE_ENABLE_MIN,
1608 CFG_WDI_TRACE_ENABLE_MAX ),
1609
1610 REG_VARIABLE( CFG_WDI_TRACE_ENABLE_PAL_NAME, WLAN_PARAM_Integer,
1611 hdd_config_t, wdiTraceEnablePAL,
1612 VAR_FLAGS_OPTIONAL,
1613 CFG_WDI_TRACE_ENABLE_DEFAULT,
1614 CFG_WDI_TRACE_ENABLE_MIN,
1615 CFG_WDI_TRACE_ENABLE_MAX ),
1616#endif /* FEATURE_WLAN_INTEGRATED_SOC */
1617
1618 REG_VARIABLE( CFG_TELE_BCN_TRANS_LI_NAME, WLAN_PARAM_Integer,
1619 hdd_config_t, nTeleBcnTransListenInterval,
1620 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1621 CFG_TELE_BCN_TRANS_LI_DEFAULT,
1622 CFG_TELE_BCN_TRANS_LI_MIN,
1623 CFG_TELE_BCN_TRANS_LI_MAX ),
1624
1625 REG_VARIABLE( CFG_TELE_BCN_TRANS_LI_NUM_IDLE_BCNS_NAME, WLAN_PARAM_Integer,
1626 hdd_config_t, nTeleBcnTransLiNumIdleBeacons,
1627 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1628 CFG_TELE_BCN_TRANS_LI_NUM_IDLE_BCNS_DEFAULT,
1629 CFG_TELE_BCN_TRANS_LI_NUM_IDLE_BCNS_MIN,
1630 CFG_TELE_BCN_TRANS_LI_NUM_IDLE_BCNS_MAX ),
1631
1632 REG_VARIABLE( CFG_TELE_BCN_MAX_LI_NAME, WLAN_PARAM_Integer,
1633 hdd_config_t, nTeleBcnMaxListenInterval,
1634 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1635 CFG_TELE_BCN_MAX_LI_DEFAULT,
1636 CFG_TELE_BCN_MAX_LI_MIN,
1637 CFG_TELE_BCN_MAX_LI_MAX ),
1638
1639 REG_VARIABLE( CFG_TELE_BCN_MAX_LI_NUM_IDLE_BCNS_NAME, WLAN_PARAM_Integer,
1640 hdd_config_t, nTeleBcnMaxLiNumIdleBeacons,
1641 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1642 CFG_TELE_BCN_MAX_LI_NUM_IDLE_BCNS_DEFAULT,
1643 CFG_TELE_BCN_MAX_LI_NUM_IDLE_BCNS_MIN,
1644 CFG_TELE_BCN_MAX_LI_NUM_IDLE_BCNS_MAX ),
1645
1646 REG_VARIABLE( CFG_BCN_EARLY_TERM_WAKE_NAME, WLAN_PARAM_Integer,
1647 hdd_config_t, bcnEarlyTermWakeInterval,
1648 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1649 CFG_BCN_EARLY_TERM_WAKE_DEFAULT,
1650 CFG_BCN_EARLY_TERM_WAKE_MIN,
1651 CFG_BCN_EARLY_TERM_WAKE_MAX ),
1652
1653 REG_VARIABLE( CFG_AP_DATA_AVAIL_POLL_PERIOD_NAME, WLAN_PARAM_Integer,
1654 hdd_config_t, apDataAvailPollPeriodInMs,
1655 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1656 CFG_AP_DATA_AVAIL_POLL_PERIOD_DEFAULT,
1657 CFG_AP_DATA_AVAIL_POLL_PERIOD_MIN,
1658 CFG_AP_DATA_AVAIL_POLL_PERIOD_MAX ),
1659
1660 REG_VARIABLE( CFG_ENABLE_CLOSE_LOOP_NAME, WLAN_PARAM_Integer,
1661 hdd_config_t, enableCloseLoop,
1662 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1663 CFG_ENABLE_CLOSE_LOOP_DEFAULT,
1664 CFG_ENABLE_CLOSE_LOOP_MIN,
1665 CFG_ENABLE_CLOSE_LOOP_MAX ),
1666
1667 REG_VARIABLE( CFG_ENABLE_BYPASS_11D_NAME, WLAN_PARAM_Integer,
1668 hdd_config_t, enableBypass11d,
1669 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1670 CFG_ENABLE_BYPASS_11D_DEFAULT,
1671 CFG_ENABLE_BYPASS_11D_MIN,
1672 CFG_ENABLE_BYPASS_11D_MAX ),
1673
1674 REG_VARIABLE( CFG_ENABLE_DFS_CHNL_SCAN_NAME, WLAN_PARAM_Integer,
1675 hdd_config_t, enableDFSChnlScan,
1676 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1677 CFG_ENABLE_DFS_CHNL_SCAN_DEFAULT,
1678 CFG_ENABLE_DFS_CHNL_SCAN_MIN,
1679 CFG_ENABLE_DFS_CHNL_SCAN_MAX ),
1680
1681 REG_VARIABLE( CFG_ENABLE_DYNAMIC_DTIM_NAME, WLAN_PARAM_Integer,
1682 hdd_config_t, enableDynamicDTIM,
1683 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1684 CFG_ENABLE_DYNAMIC_DTIM_DEFAULT,
1685 CFG_ENABLE_DYNAMIC_DTIM_MIN,
1686 CFG_ENABLE_DYNAMIC_DTIM_MAX ),
1687
1688 REG_VARIABLE( CFG_ENABLE_AUTOMATIC_TX_POWER_CONTROL_NAME, WLAN_PARAM_Integer,
1689 hdd_config_t, enableAutomaticTxPowerControl,
1690 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1691 CFG_ENABLE_AUTOMATIC_TX_POWER_CONTROL_DEFAULT,
1692 CFG_ENABLE_AUTOMATIC_TX_POWER_CONTROL_MIN,
1693 CFG_ENABLE_AUTOMATIC_TX_POWER_CONTROL_MAX ),
1694
1695 REG_VARIABLE( CFG_SHORT_GI_40MHZ_NAME, WLAN_PARAM_Integer,
1696 hdd_config_t, ShortGI40MhzEnable,
1697 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1698 CFG_SHORT_GI_40MHZ_DEFAULT,
1699 CFG_SHORT_GI_40MHZ_MIN,
1700 CFG_SHORT_GI_40MHZ_MAX ),
1701
1702 REG_DYNAMIC_VARIABLE( CFG_REPORT_MAX_LINK_SPEED, WLAN_PARAM_Integer,
1703 hdd_config_t, reportMaxLinkSpeed,
1704 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1705 CFG_REPORT_MAX_LINK_SPEED_DEFAULT,
1706 CFG_REPORT_MAX_LINK_SPEED_MIN,
1707 CFG_REPORT_MAX_LINK_SPEED_MAX,
1708 NULL, 0 ),
1709
1710 REG_DYNAMIC_VARIABLE( CFG_LINK_SPEED_RSSI_HIGH, WLAN_PARAM_SignedInteger,
1711 hdd_config_t, linkSpeedRssiHigh,
1712 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1713 CFG_LINK_SPEED_RSSI_HIGH_DEFAULT,
1714 CFG_LINK_SPEED_RSSI_HIGH_MIN,
1715 CFG_LINK_SPEED_RSSI_HIGH_MAX,
1716 NULL, 0 ),
1717
Madan Mohan Koyyalamudi8df78d52012-11-02 12:30:06 -07001718 REG_DYNAMIC_VARIABLE( CFG_LINK_SPEED_RSSI_MID, WLAN_PARAM_SignedInteger,
1719 hdd_config_t, linkSpeedRssiMid,
1720 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1721 CFG_LINK_SPEED_RSSI_MID_DEFAULT,
1722 CFG_LINK_SPEED_RSSI_MID_MIN,
1723 CFG_LINK_SPEED_RSSI_MID_MAX,
1724 NULL, 0 ),
1725
Jeff Johnson295189b2012-06-20 16:38:30 -07001726 REG_DYNAMIC_VARIABLE( CFG_LINK_SPEED_RSSI_LOW, WLAN_PARAM_SignedInteger,
1727 hdd_config_t, linkSpeedRssiLow,
1728 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1729 CFG_LINK_SPEED_RSSI_LOW_DEFAULT,
1730 CFG_LINK_SPEED_RSSI_LOW_MIN,
1731 CFG_LINK_SPEED_RSSI_LOW_MAX,
1732 NULL, 0 ),
1733
Madan Mohan Koyyalamudid5026072012-11-30 14:56:21 -08001734#if defined (WLAN_FEATURE_VOWIFI_11R) || defined (FEATURE_WLAN_CCX) || defined(FEATURE_WLAN_LFR)
1735 REG_DYNAMIC_VARIABLE( CFG_ROAM_PREFER_5GHZ, WLAN_PARAM_Integer,
1736 hdd_config_t, nRoamPrefer5GHz,
1737 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1738 CFG_ROAM_PREFER_5GHZ_DEFAULT,
1739 CFG_ROAM_PREFER_5GHZ_MIN,
1740 CFG_ROAM_PREFER_5GHZ_MAX,
1741 cbNotifySetRoamPrefer5GHz, 0 ),
1742#endif
1743
Jeff Johnson295189b2012-06-20 16:38:30 -07001744#ifdef WLAN_FEATURE_P2P
1745 REG_VARIABLE( CFG_P2P_DEVICE_ADDRESS_ADMINISTRATED_NAME, WLAN_PARAM_Integer,
1746 hdd_config_t, isP2pDeviceAddrAdministrated,
1747 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1748 CFG_P2P_DEVICE_ADDRESS_ADMINISTRATED_DEFAULT,
1749 CFG_P2P_DEVICE_ADDRESS_ADMINISTRATED_MIN,
1750 CFG_P2P_DEVICE_ADDRESS_ADMINISTRATED_MAX ),
1751#endif
1752
1753REG_VARIABLE( CFG_ENABLE_MCC_ENABLED_NAME, WLAN_PARAM_Integer,
1754 hdd_config_t, enableMCC,
1755 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1756 CFG_ENABLE_MCC_ENABLED_DEFAULT,
1757 CFG_ENABLE_MCC_ENABLED_MIN,
1758 CFG_ENABLE_MCC_ENABLED_MAX ),
1759
Mohit Khanna7ed53f02012-09-11 17:52:10 -07001760REG_VARIABLE( CFG_ALLOW_MCC_GO_DIFF_BI_NAME, WLAN_PARAM_Integer,
1761 hdd_config_t, allowMCCGODiffBI,
1762 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1763 CFG_ALLOW_MCC_GO_DIFF_BI_DEFAULT,
1764 CFG_ALLOW_MCC_GO_DIFF_BI_MIN,
Madan Mohan Koyyalamudi0d40e662012-12-07 14:24:14 -08001765 CFG_ALLOW_MCC_GO_DIFF_BI_MAX ),
Mohit Khanna7ed53f02012-09-11 17:52:10 -07001766
Madan Mohan Koyyalamudi167b95e2012-11-27 15:53:38 -08001767REG_VARIABLE( CFG_THERMAL_MIGRATION_ENABLE_NAME, WLAN_PARAM_Integer,
Jeff Johnson295189b2012-06-20 16:38:30 -07001768 hdd_config_t, thermalMitigationEnable,
1769 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1770 CFG_THERMAL_MIGRATION_ENABLE_DEFAULT,
1771 CFG_THERMAL_MIGRATION_ENABLE_MIN,
1772 CFG_THERMAL_MIGRATION_ENABLE_MAX ),
1773#ifdef WLAN_FEATURE_PACKET_FILTERING
1774 REG_VARIABLE( CFG_MC_ADDR_LIST_FILTER_NAME, WLAN_PARAM_Integer,
1775 hdd_config_t, isMcAddrListFilter,
1776 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1777 CFG_MC_ADDR_LIST_FILTER_DEFAULT,
1778 CFG_MC_ADDR_LIST_FILTER_MIN,
1779 CFG_MC_ADDR_LIST_FILTER_MAX ),
1780#endif
1781
1782REG_VARIABLE( CFG_ENABLE_MODULATED_DTIM_NAME, WLAN_PARAM_Integer,
1783 hdd_config_t, enableModulatedDTIM,
1784 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1785 CFG_ENABLE_MODULATED_DTIM_DEFAULT,
1786 CFG_ENABLE_MODULATED_DTIM_MIN,
1787 CFG_ENABLE_MODULATED_DTIM_MAX ),
1788
Jeff Johnsond13512a2012-07-17 11:42:19 -07001789 REG_VARIABLE( CFG_MC_ADDR_LIST_ENABLE_NAME, WLAN_PARAM_Integer,
1790 hdd_config_t, fEnableMCAddrList,
1791 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1792 CFG_MC_ADDR_LIST_ENABLE_DEFAULT,
1793 CFG_MC_ADDR_LIST_ENABLE_MIN,
1794 CFG_MC_ADDR_LIST_ENABLE_MAX ),
1795
Jeff Johnsone7245742012-09-05 17:12:55 -07001796#ifdef WLAN_FEATURE_11AC
1797REG_VARIABLE( CFG_VHT_CHANNEL_WIDTH, WLAN_PARAM_Integer,
1798 hdd_config_t, vhtChannelWidth,
1799 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
1800 CFG_VHT_CHANNEL_WIDTH_DEFAULT,
1801 CFG_VHT_CHANNEL_WIDTH_MIN,
1802 CFG_VHT_CHANNEL_WIDTH_MAX),
1803
1804REG_VARIABLE( CFG_VHT_ENABLE_RX_MCS_8_9, WLAN_PARAM_Integer,
1805 hdd_config_t, vhtRxMCS,
1806 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
1807 CFG_VHT_ENABLE_RX_MCS_8_9_DEFAULT,
1808 CFG_VHT_ENABLE_RX_MCS_8_9_MIN,
1809 CFG_VHT_ENABLE_RX_MCS_8_9_MAX),
1810
1811REG_VARIABLE( CFG_VHT_ENABLE_TX_MCS_8_9, WLAN_PARAM_Integer,
1812 hdd_config_t, vhtTxMCS,
1813 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
1814 CFG_VHT_ENABLE_TX_MCS_8_9_DEFAULT,
1815 CFG_VHT_ENABLE_TX_MCS_8_9_MIN,
1816 CFG_VHT_ENABLE_TX_MCS_8_9_MAX),
1817#endif
1818
1819REG_VARIABLE( CFG_ENABLE_FIRST_SCAN_2G_ONLY_NAME, WLAN_PARAM_Integer,
1820 hdd_config_t, enableFirstScan2GOnly,
1821 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1822 CFG_ENABLE_FIRST_SCAN_2G_ONLY_DEFAULT,
1823 CFG_ENABLE_FIRST_SCAN_2G_ONLY_MIN,
1824 CFG_ENABLE_FIRST_SCAN_2G_ONLY_MAX ),
1825
1826REG_VARIABLE( CFG_ENABLE_SKIP_DFS_IN_P2P_SEARCH_NAME, WLAN_PARAM_Integer,
1827 hdd_config_t, skipDfsChnlInP2pSearch,
1828 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1829 CFG_ENABLE_SKIP_DFS_IN_P2P_SEARCH_DEFAULT,
1830 CFG_ENABLE_SKIP_DFS_IN_P2P_SEARCH_MIN,
1831 CFG_ENABLE_SKIP_DFS_IN_P2P_SEARCH_MAX ),
1832
1833REG_VARIABLE( CFG_IGNORE_DYNAMIC_DTIM_IN_P2P_MODE_NAME, WLAN_PARAM_Integer,
1834 hdd_config_t, ignoreDynamicDtimInP2pMode,
1835 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1836 CFG_IGNORE_DYNAMIC_DTIM_IN_P2P_MODE_DEFAULT,
1837 CFG_IGNORE_DYNAMIC_DTIM_IN_P2P_MODE_MIN,
1838 CFG_IGNORE_DYNAMIC_DTIM_IN_P2P_MODE_MAX ),
1839
Madan Mohan Koyyalamudidd11eaf2012-11-02 16:04:21 -07001840REG_VARIABLE( CFG_NUM_BUFF_ADVERT_NAME, WLAN_PARAM_Integer,
1841 hdd_config_t,numBuffAdvert ,
1842 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
1843 CFG_NUM_BUFF_ADVERT_DEFAULT,
1844 CFG_NUM_BUFF_ADVERT_MIN,
1845 CFG_NUM_BUFF_ADVERT_MAX ),
Madan Mohan Koyyalamudi3f65e312012-11-06 15:31:12 -08001846
1847 REG_VARIABLE( CFG_ENABLE_IGNORE_CHAN165, WLAN_PARAM_Integer,
1848 hdd_config_t, ignore_chan165,
1849 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1850 CFG_ENABLE_IGNORE_CHAN165_DEFAULT,
1851 CFG_ENABLE_IGNORE_CHAN165_MIN,
1852 CFG_ENABLE_IGNORE_CHAN165_MAX ),
Madan Mohan Koyyalamudid5f04ca2012-11-06 15:51:26 -08001853
1854REG_VARIABLE( CFG_MCC_CONFIG_PARAM_NAME, WLAN_PARAM_Integer,
1855 hdd_config_t, configMccParam,
1856 VAR_FLAGS_OPTIONAL,
1857 CFG_MCC_CONFIG_PARAM_DEFAULT,
1858 CFG_MCC_CONFIG_PARAM_MIN,
1859 CFG_MCC_CONFIG_PARAM_MAX ),
Pratik Bhalgat6bfd1422012-11-22 17:09:40 +05301860REG_VARIABLE( CFG_ENABLE_RX_STBC, WLAN_PARAM_Integer,
1861 hdd_config_t, enableRxSTBC,
1862 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1863 CFG_ENABLE_RX_STBC_DEFAULT,
1864 CFG_ENABLE_RX_STBC_MIN,
1865 CFG_ENABLE_RX_STBC_MAX ),
Mohit Khanna698ba2a2012-12-04 15:08:18 -08001866#ifdef FEATURE_WLAN_TDLS
1867REG_VARIABLE( CFG_TDLS_SUPPORT_ENABLE, WLAN_PARAM_Integer,
1868 hdd_config_t, fEnableTDLSSupport,
1869 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1870 CFG_TDLS_SUPPORT_ENABLE_DEFAULT,
1871 CFG_TDLS_SUPPORT_ENABLE_MIN,
1872 CFG_TDLS_SUPPORT_ENABLE_MAX ),
Hoonki Leebf870f32013-01-19 15:53:30 +05301873
1874REG_VARIABLE( CFG_TDLS_IMPLICIT_TRIGGER, WLAN_PARAM_Integer,
1875 hdd_config_t, fEnableTDLSImplicitTrigger,
1876 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1877 CFG_TDLS_IMPLICIT_TRIGGER_DEFAULT,
1878 CFG_TDLS_IMPLICIT_TRIGGER_MIN,
1879 CFG_TDLS_IMPLICIT_TRIGGER_MAX ),
1880
1881REG_VARIABLE( CFG_TDLS_TX_STATS_PERIOD, WLAN_PARAM_Integer,
1882 hdd_config_t, fTDLSTxStatsPeriod,
1883 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1884 CFG_TDLS_TX_STATS_PERIOD_DEFAULT,
1885 CFG_TDLS_TX_STATS_PERIOD_MIN,
1886 CFG_TDLS_TX_STATS_PERIOD_MAX ),
1887
1888REG_VARIABLE( CFG_TDLS_TX_PACKET_THRESHOLD, WLAN_PARAM_Integer,
1889 hdd_config_t, fTDLSTxPacketThreshold,
1890 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1891 CFG_TDLS_TX_PACKET_THRESHOLD_DEFAULT,
1892 CFG_TDLS_TX_PACKET_THRESHOLD_MIN,
1893 CFG_TDLS_TX_PACKET_THRESHOLD_MAX ),
1894
1895REG_VARIABLE( CFG_TDLS_DISCOVERY_PERIOD, WLAN_PARAM_Integer,
1896 hdd_config_t, fTDLSDiscoveryPeriod,
1897 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1898 CFG_TDLS_DISCOVERY_PERIOD_DEFAULT,
1899 CFG_TDLS_DISCOVERY_PERIOD_MIN,
1900 CFG_TDLS_DISCOVERY_PERIOD_MAX ),
1901
1902REG_VARIABLE( CFG_TDLS_MAX_DISCOVERY_ATTEMPT, WLAN_PARAM_Integer,
1903 hdd_config_t, fTDLSMaxDiscoveryAttempt,
1904 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1905 CFG_TDLS_MAX_DISCOVERY_ATTEMPT_DEFAULT,
1906 CFG_TDLS_MAX_DISCOVERY_ATTEMPT_MIN,
1907 CFG_TDLS_MAX_DISCOVERY_ATTEMPT_MAX ),
1908
Chilam Ng01120412013-02-19 18:32:21 -08001909REG_VARIABLE( CFG_TDLS_IDLE_TIMEOUT, WLAN_PARAM_Integer,
1910 hdd_config_t, fTDLSIdleTimeout,
Hoonki Leebf870f32013-01-19 15:53:30 +05301911 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
Chilam Ng01120412013-02-19 18:32:21 -08001912 CFG_TDLS_IDLE_TIMEOUT_DEFAULT,
1913 CFG_TDLS_IDLE_TIMEOUT_MIN,
1914 CFG_TDLS_IDLE_TIMEOUT_MAX ),
1915
1916REG_VARIABLE( CFG_TDLS_IDLE_PACKET_THRESHOLD, WLAN_PARAM_Integer,
1917 hdd_config_t, fTDLSIdlePacketThreshold,
1918 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1919 CFG_TDLS_IDLE_PACKET_THRESHOLD_DEFAULT,
1920 CFG_TDLS_IDLE_PACKET_THRESHOLD_MIN,
1921 CFG_TDLS_IDLE_PACKET_THRESHOLD_MAX ),
Hoonki Leebf870f32013-01-19 15:53:30 +05301922
1923REG_VARIABLE( CFG_TDLS_RSSI_HYSTERESIS, WLAN_PARAM_Integer,
Chilam Ng01120412013-02-19 18:32:21 -08001924 hdd_config_t, fTDLSRSSIHysteresis,
Hoonki Leebf870f32013-01-19 15:53:30 +05301925 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1926 CFG_TDLS_RSSI_HYSTERESIS_DEFAULT,
1927 CFG_TDLS_RSSI_HYSTERESIS_MIN,
1928 CFG_TDLS_RSSI_HYSTERESIS_MAX ),
Chilam Ng01120412013-02-19 18:32:21 -08001929
1930REG_VARIABLE( CFG_TDLS_RSSI_TRIGGER_THRESHOLD, WLAN_PARAM_SignedInteger,
1931 hdd_config_t, fTDLSRSSITriggerThreshold,
1932 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1933 CFG_TDLS_RSSI_TRIGGER_THRESHOLD_DEFAULT,
1934 CFG_TDLS_RSSI_TRIGGER_THRESHOLD_MIN,
1935 CFG_TDLS_RSSI_TRIGGER_THRESHOLD_MAX ),
1936
1937REG_VARIABLE( CFG_TDLS_RSSI_TEARDOWN_THRESHOLD, WLAN_PARAM_SignedInteger,
1938 hdd_config_t, fTDLSRSSITeardownThreshold,
1939 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1940 CFG_TDLS_RSSI_TEARDOWN_THRESHOLD_DEFAULT,
1941 CFG_TDLS_RSSI_TEARDOWN_THRESHOLD_MIN,
1942 CFG_TDLS_RSSI_TEARDOWN_THRESHOLD_MAX ),
Mohit Khanna698ba2a2012-12-04 15:08:18 -08001943#endif
Madan Mohan Koyyalamudi0d40e662012-12-07 14:24:14 -08001944
Gopichand Nakkala976e3252013-01-03 15:45:56 -08001945#ifdef WLAN_SOFTAP_VSTA_FEATURE
1946REG_VARIABLE( CFG_VSTA_SUPPORT_ENABLE, WLAN_PARAM_Integer,
1947 hdd_config_t, fEnableVSTASupport,
1948 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1949 CFG_VSTA_SUPPORT_ENABLE_DEFAULT,
1950 CFG_VSTA_SUPPORT_ENABLE_MIN,
1951 CFG_VSTA_SUPPORT_ENABLE_MAX ),
1952#endif
Madan Mohan Koyyalamudi0d40e662012-12-07 14:24:14 -08001953REG_VARIABLE( CFG_ENABLE_LPWR_IMG_TRANSITION_NAME, WLAN_PARAM_Integer,
1954 hdd_config_t, enableLpwrImgTransition,
1955 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1956 CFG_ENABLE_LPWR_IMG_TRANSITION_DEFAULT,
1957 CFG_ENABLE_LPWR_IMG_TRANSITION_MIN,
1958 CFG_ENABLE_LPWR_IMG_TRANSITION_MAX ),
1959
Yathish9f22e662012-12-10 14:21:35 -08001960#ifdef WLAN_ACTIVEMODE_OFFLOAD_FEATURE
1961REG_VARIABLE( CFG_ACTIVEMODE_OFFLOAD_ENABLE, WLAN_PARAM_Integer,
1962 hdd_config_t, fEnableActiveModeOffload,
1963 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1964 CFG_ACTIVEMODE_OFFLOAD_ENABLE_DEFAULT,
1965 CFG_ACTIVEMODE_OFFLOAD_ENABLE_MIN,
1966 CFG_ACTIVEMODE_OFFLOAD_ENABLE_MAX ),
1967#endif
Sandeep Puligilla2b6dc632012-12-17 14:44:16 -08001968
1969REG_VARIABLE( CFG_SCAN_AGING_PARAM_NAME, WLAN_PARAM_Integer,
1970 hdd_config_t, scanAgingTimeout,
1971 VAR_FLAGS_OPTIONAL,
1972 CFG_SCAN_AGING_PARAM_DEFAULT,
1973 CFG_SCAN_AGING_PARAM_MIN,
1974 CFG_SCAN_AGING_PARAM_MAX ),
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08001975
1976REG_VARIABLE( CFG_TX_LDPC_ENABLE_FEATURE, WLAN_PARAM_Integer,
1977 hdd_config_t, enableTxLdpc,
1978 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1979 CFG_TX_LDPC_ENABLE_FEATURE_DEFAULT,
1980 CFG_TX_LDPC_ENABLE_FEATURE_MIN,
1981 CFG_TX_LDPC_ENABLE_FEATURE_MAX ),
1982
Madan Mohan Koyyalamudi01cba042013-01-10 21:56:05 -08001983REG_VARIABLE( CFG_ENABLE_MCC_ADATIVE_SCHEDULER_ENABLED_NAME, WLAN_PARAM_Integer,
Madan Mohan Koyyalamudi69b34182013-01-16 08:51:40 +05301984 hdd_config_t, enableMCCAdaptiveScheduler,
1985 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1986 CFG_ENABLE_MCC_ADATIVE_SCHEDULER_ENABLED_DEFAULT,
1987 CFG_ENABLE_MCC_ADATIVE_SCHEDULER_ENABLED_MIN,
1988 CFG_ENABLE_MCC_ADATIVE_SCHEDULER_ENABLED_MAX ),
1989
1990REG_VARIABLE( CFG_ANDRIOD_POWER_SAVE_NAME, WLAN_PARAM_Integer,
1991 hdd_config_t, isAndroidPsEn,
1992 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1993 CFG_ANDRIOD_POWER_SAVE_DEFAULT,
1994 CFG_ANDRIOD_POWER_SAVE_MIN,
1995 CFG_ANDRIOD_POWER_SAVE_MAX),
1996
Shailender Karmuchi08f87c22013-01-17 12:51:24 -08001997#ifdef WLAN_FEATURE_11AC
1998REG_VARIABLE( CFG_VHT_SU_BEAMFORMEE_CAP_FEATURE, WLAN_PARAM_Integer,
1999 hdd_config_t, enableTxBF,
2000 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2001 CFG_VHT_SU_BEAMFORMEE_CAP_FEATURE_DEFAULT,
2002 CFG_VHT_SU_BEAMFORMEE_CAP_FEATURE_MIN,
2003 CFG_VHT_SU_BEAMFORMEE_CAP_FEATURE_MAX ),
Shailender Karmuchicc3fe442013-02-16 18:18:33 -08002004
2005REG_VARIABLE( CFG_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED, WLAN_PARAM_Integer,
2006 hdd_config_t, txBFCsnValue,
2007 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2008 CFG_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED_DEFAULT,
2009 CFG_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED_MIN,
2010 CFG_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED_MAX ),
2011
Shailender Karmuchi08f87c22013-01-17 12:51:24 -08002012#endif
Madan Mohan Koyylamudi64267f72013-02-05 14:07:08 +05302013
2014REG_VARIABLE( CFG_SAP_ALLOW_ALL_CHANNEL_PARAM_NAME, WLAN_PARAM_Integer,
2015 hdd_config_t, sapAllowAllChannel,
2016 VAR_FLAGS_OPTIONAL,
2017 CFG_SAP_ALLOW_ALL_CHANNEL_PARAM_DEFAULT,
2018 CFG_SAP_ALLOW_ALL_CHANNEL_PARAM_MIN,
2019 CFG_SAP_ALLOW_ALL_CHANNEL_PARAM_MAX ),
Leela V Kiran Kumar Reddy Chiralab1f7d342013-02-11 00:27:02 -08002020#ifdef WLAN_FEATURE_11AC
2021REG_VARIABLE( CFG_DISABLE_LDPC_WITH_TXBF_AP, WLAN_PARAM_Integer,
2022 hdd_config_t, disableLDPCWithTxbfAP,
2023 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2024 CFG_DISABLE_LDPC_WITH_TXBF_AP_DEFAULT,
2025 CFG_DISABLE_LDPC_WITH_TXBF_AP_MIN,
2026 CFG_DISABLE_LDPC_WITH_TXBF_AP_MAX ),
2027#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07002028};
2029
2030/*
2031 * This function returns a pointer to the character after the occurence
2032 * of a new line character. It also modifies the original string by replacing
2033 * the '\n' character with the null character.
2034 * Function returns NULL if no new line character was found before end of
2035 * string was reached
2036 */
2037static char* get_next_line(char* str)
2038{
2039 char c;
2040
2041 if( str == NULL || *str == '\0') {
2042 return NULL;
2043 }
2044
2045 c = *str;
2046 while(c != '\n' && c != '\0' && c != 0xd) {
2047 str = str + 1;
2048 c = *str;
2049 }
2050
2051 if (c == '\0' ) {
2052 return NULL;
2053 }
2054 else
2055 {
2056 *str = '\0';
2057 return (str+1);
2058 }
2059
2060 return NULL;
2061}
2062
2063// look for space. Ascii values to look are -
2064// 0x09 == horizontal tab
2065// 0x0a == Newline ("\n")
2066// 0x0b == vertical tab
2067// 0x0c == Newpage or feed form.
2068// 0x0d == carriage return (CR or "\r")
2069// Null ('\0') should not considered as space.
2070#define i_isspace(ch) (((ch) >= 0x09 && (ch) <= 0x0d) || (ch) == ' ')
2071
2072/*
2073 * This function trims any leading and trailing white spaces
2074 */
2075static char *i_trim(char *str)
2076
2077{
2078 char *ptr;
2079
2080 if(*str == '\0') return str;
2081
2082 /* Find the first non white-space*/
2083 for (ptr = str; i_isspace(*ptr); ptr++);
2084 if (*ptr == '\0')
2085 return str;
2086
2087 /* This is the new start of the string*/
2088 str = ptr;
2089
2090 /* Find the last non white-space */
2091 ptr += strlen(ptr) - 1;
2092 for (; ptr != str && i_isspace(*ptr); ptr--);
2093 /* Null terminate the following character */
2094 ptr[1] = '\0';
2095
2096 return str;
2097}
2098
2099
2100//Structure to store each entry in qcom_cfg.ini file
2101typedef struct
2102{
2103 char *name;
2104 char *value;
2105}tCfgIniEntry;
2106
2107static VOS_STATUS hdd_apply_cfg_ini( hdd_context_t * pHddCtx,
2108 tCfgIniEntry* iniTable, unsigned long entries);
2109
2110#ifdef WLAN_CFG_DEBUG
2111void dump_cfg_ini (tCfgIniEntry* iniTable, unsigned long entries)
2112{
2113 unsigned long i;
2114
2115 for (i = 0; i < entries; i++) {
2116 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "%s entry Name=[%s] value=[%s]",
2117 WLAN_INI_FILE, iniTable[i].name, iniTable[i].value);
2118 }
2119}
2120#endif
2121
2122/*
2123 * This function reads the qcom_cfg.ini file and
2124 * parses each 'Name=Value' pair in the ini file
2125 */
2126VOS_STATUS hdd_parse_config_ini(hdd_context_t* pHddCtx)
2127{
2128 int status, i=0;
2129 /** Pointer for firmware image data */
2130 const struct firmware *fw = NULL;
2131 char *buffer, *line,*pTemp;
2132 size_t size;
2133 char *name, *value;
Madan Mohan Koyyalamudi729972c2012-10-21 12:39:24 -07002134 /* cfgIniTable is static to avoid excess stack usage */
2135 static tCfgIniEntry cfgIniTable[MAX_CFG_INI_ITEMS];
Jeff Johnson295189b2012-06-20 16:38:30 -07002136 VOS_STATUS vos_status = VOS_STATUS_SUCCESS;
2137
2138 memset(cfgIniTable, 0, sizeof(cfgIniTable));
2139
2140 status = request_firmware(&fw, WLAN_INI_FILE, pHddCtx->parent_dev);
2141
2142 if(status)
2143 {
Madan Mohan Koyyalamudi87054ba2012-11-02 13:24:12 -07002144 hddLog(VOS_TRACE_LEVEL_FATAL, "%s: request_firmware failed %d\n",__func__, status);
Jeff Johnson295189b2012-06-20 16:38:30 -07002145 return VOS_STATUS_E_FAILURE;
2146 }
2147 if(!fw || !fw->data || !fw->size)
2148 {
2149 hddLog(VOS_TRACE_LEVEL_FATAL, "%s: %s download failed\n",
Madan Mohan Koyyalamudi87054ba2012-11-02 13:24:12 -07002150 __func__, WLAN_INI_FILE);
Jeff Johnson295189b2012-06-20 16:38:30 -07002151 return VOS_STATUS_E_FAILURE;
2152 }
2153
Madan Mohan Koyyalamudi87054ba2012-11-02 13:24:12 -07002154 hddLog(LOG1, "%s: qcom_cfg.ini Size %d\n",__func__, fw->size);
Jeff Johnson295189b2012-06-20 16:38:30 -07002155
2156 buffer = (char*)vos_mem_malloc(fw->size);
2157
2158 if(NULL == buffer) {
Madan Mohan Koyyalamudi87054ba2012-11-02 13:24:12 -07002159 hddLog(VOS_TRACE_LEVEL_FATAL, "%s: kmalloc failure",__func__);
Jeff Johnson295189b2012-06-20 16:38:30 -07002160 release_firmware(fw);
2161 return VOS_STATUS_E_FAILURE;
2162 }
2163 pTemp = buffer;
2164
2165 vos_mem_copy((void*)buffer,(void *)fw->data, fw->size);
2166 size = fw->size;
2167
2168 while (buffer != NULL)
2169 {
2170 line = get_next_line(buffer);
2171 buffer = i_trim(buffer);
2172
2173 hddLog(LOG1, "%s: item", buffer);
2174
2175 if(strlen((char*)buffer) == 0 || *buffer == '#') {
2176 buffer = line;
2177 continue;
2178 }
2179 else if(strncmp(buffer, "END", 3) == 0 ) {
2180 break;
2181 }
2182 else
2183 {
2184 name = buffer;
2185 while(*buffer != '=' && *buffer != '\0')
2186 buffer++;
2187 if(*buffer != '\0') {
2188 *buffer++ = '\0';
2189 i_trim(name);
2190 if(strlen (name) != 0) {
2191 buffer = i_trim(buffer);
2192 if(strlen(buffer)>0) {
2193 value = buffer;
2194 while(!i_isspace(*buffer) && *buffer != '\0')
2195 buffer++;
2196 *buffer = '\0';
2197 cfgIniTable[i].name= name;
2198 cfgIniTable[i++].value= value;
2199 if(i >= MAX_CFG_INI_ITEMS) {
2200 hddLog(LOGE,"%s: Number of items in %s > %d \n",
Madan Mohan Koyyalamudi87054ba2012-11-02 13:24:12 -07002201 __func__, WLAN_INI_FILE, MAX_CFG_INI_ITEMS);
Jeff Johnson295189b2012-06-20 16:38:30 -07002202 break;
2203 }
2204 }
2205 }
2206 }
2207 }
2208 buffer = line;
2209 }
2210
2211 //Loop through the registry table and apply all these configs
2212 vos_status = hdd_apply_cfg_ini(pHddCtx, cfgIniTable, i);
2213
2214 release_firmware(fw);
2215 vos_mem_free(pTemp);
2216 return vos_status;
2217}
2218
2219
2220static void print_hdd_cfg(hdd_context_t *pHddCtx)
2221{
2222 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "*********Config values in HDD Adapter*******");
2223 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [RTSThreshold] Value = %lu",pHddCtx->cfg_ini->RTSThreshold) ;
2224 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [OperatingChannel] Value = [%u]",pHddCtx->cfg_ini->OperatingChannel);
2225 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [PowerUsageControl] Value = [%s]",pHddCtx->cfg_ini->PowerUsageControl);
2226 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [fIsImpsEnabled] Value = [%u]",pHddCtx->cfg_ini->fIsImpsEnabled);
2227 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [AutoBmpsTimerEnabled] Value = [%u]",pHddCtx->cfg_ini->fIsAutoBmpsTimerEnabled);
2228 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [nAutoBmpsTimerValue] Value = [%lu]",pHddCtx->cfg_ini->nAutoBmpsTimerValue);
2229 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [nVccRssiTrigger] Value = [%u]",pHddCtx->cfg_ini->nVccRssiTrigger);
2230 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [gIbssBssid] Value =[0x%x 0x%x 0x%x 0x%x 0x%x 0x%x]",
2231 pHddCtx->cfg_ini->IbssBssid.bytes[0],pHddCtx->cfg_ini->IbssBssid.bytes[1],
2232 pHddCtx->cfg_ini->IbssBssid.bytes[2],pHddCtx->cfg_ini->IbssBssid.bytes[3],
2233 pHddCtx->cfg_ini->IbssBssid.bytes[4],pHddCtx->cfg_ini->IbssBssid.bytes[5]);
2234
2235 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH,
2236 "Name = [Intf0MacAddress] Value =[0x%x 0x%x 0x%x 0x%x 0x%x 0x%x]",
2237 pHddCtx->cfg_ini->intfMacAddr[0].bytes[0],
2238 pHddCtx->cfg_ini->intfMacAddr[0].bytes[1],
2239 pHddCtx->cfg_ini->intfMacAddr[0].bytes[2],
2240 pHddCtx->cfg_ini->intfMacAddr[0].bytes[3],
2241 pHddCtx->cfg_ini->intfMacAddr[0].bytes[4],
2242 pHddCtx->cfg_ini->intfMacAddr[0].bytes[5]);
2243
2244
2245 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH,
2246 "Name = [Intf1MacAddress] Value =[0x%x 0x%x 0x%x 0x%x 0x%x 0x%x]",
2247 pHddCtx->cfg_ini->intfMacAddr[1].bytes[0],
2248 pHddCtx->cfg_ini->intfMacAddr[1].bytes[1],
2249 pHddCtx->cfg_ini->intfMacAddr[1].bytes[2],
2250 pHddCtx->cfg_ini->intfMacAddr[1].bytes[3],
2251 pHddCtx->cfg_ini->intfMacAddr[1].bytes[4],
2252 pHddCtx->cfg_ini->intfMacAddr[1].bytes[5]);
2253
2254 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH,
2255 "Name = [Intf2MacAddress] Value =[0x%x 0x%x 0x%x 0x%x 0x%x 0x%x]",
2256 pHddCtx->cfg_ini->intfMacAddr[2].bytes[0],
2257 pHddCtx->cfg_ini->intfMacAddr[2].bytes[1],
2258 pHddCtx->cfg_ini->intfMacAddr[2].bytes[2],
2259 pHddCtx->cfg_ini->intfMacAddr[2].bytes[3],
2260 pHddCtx->cfg_ini->intfMacAddr[2].bytes[4],
2261 pHddCtx->cfg_ini->intfMacAddr[2].bytes[5]);
2262
2263 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH,
2264 "Name = [Intf3MacAddress] Value =[0x%x 0x%x 0x%x 0x%x 0x%x 0x%x]",
2265 pHddCtx->cfg_ini->intfMacAddr[3].bytes[0],
2266 pHddCtx->cfg_ini->intfMacAddr[3].bytes[1],
2267 pHddCtx->cfg_ini->intfMacAddr[3].bytes[2],
2268 pHddCtx->cfg_ini->intfMacAddr[3].bytes[3],
2269 pHddCtx->cfg_ini->intfMacAddr[3].bytes[4],
2270 pHddCtx->cfg_ini->intfMacAddr[3].bytes[5]);
2271
2272#ifdef WLAN_SOFTAP_FEATURE
2273
2274 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [gApEnableUapsd] value = [%u]\n",pHddCtx->cfg_ini->apUapsdEnabled);
2275
2276 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [gAPCntryCode] Value =[%c%c%c]\n",
2277 pHddCtx->cfg_ini->apCntryCode[0],pHddCtx->cfg_ini->apCntryCode[1],
2278 pHddCtx->cfg_ini->apCntryCode[2]);
2279 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [gEnableApProt] value = [%u]", pHddCtx->cfg_ini->apProtEnabled);
2280 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [gAPAutoShutOff] Value = [%u]\n", pHddCtx->cfg_ini->nAPAutoShutOff);
2281
2282 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [gEnableListenMode] Value = [%u]\n", pHddCtx->cfg_ini->nEnableListenMode);
2283 VOS_TRACE (VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [gApProtection] value = [%u]\n",pHddCtx->cfg_ini->apProtection);
2284 VOS_TRACE (VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [gEnableApOBSSProt] value = [%u]\n",pHddCtx->cfg_ini->apOBSSProtEnabled);
2285 VOS_TRACE (VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [gApAutoChannelSelection] value = [%u]\n",pHddCtx->cfg_ini->apAutoChannelSelection);
2286#endif
2287
2288 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [ChannelBondingMode] Value = [%lu]",pHddCtx->cfg_ini->nChannelBondingMode24GHz);
2289 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [ChannelBondingMode] Value = [%lu]",pHddCtx->cfg_ini->nChannelBondingMode5GHz);
2290 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [dot11Mode] Value = [%lu]",pHddCtx->cfg_ini->dot11Mode);
2291 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [WmmMode] Value = [%u] ",pHddCtx->cfg_ini->WmmMode);
2292 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [UapsdMask] Value = [0x%x] ",pHddCtx->cfg_ini->UapsdMask);
2293 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [PktClassificationBasis] Value = [%u] ",pHddCtx->cfg_ini->PktClassificationBasis);
2294 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [ImplicitQosIsEnabled] Value = [%u]",(int)pHddCtx->cfg_ini->bImplicitQosEnabled);
2295
2296 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [InfraUapsdVoSrvIntv] Value = [%lu] ",pHddCtx->cfg_ini->InfraUapsdVoSrvIntv);
2297 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [InfraUapsdVoSuspIntv] Value = [%lu] ",pHddCtx->cfg_ini->InfraUapsdVoSuspIntv);
2298
2299 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [InfraUapsdViSrvIntv] Value = [%lu] ",pHddCtx->cfg_ini->InfraUapsdViSrvIntv);
2300 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [InfraUapsdViSuspIntv] Value = [%lu] ",pHddCtx->cfg_ini->InfraUapsdViSuspIntv);
2301
2302 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [InfraUapsdBeSrvIntv] Value = [%lu] ",pHddCtx->cfg_ini->InfraUapsdBeSrvIntv);
2303 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [InfraUapsdBeSuspIntv] Value = [%lu] ",pHddCtx->cfg_ini->InfraUapsdBeSuspIntv);
2304
2305 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [InfraUapsdBkSrvIntv] Value = [%lu] ",pHddCtx->cfg_ini->InfraUapsdBkSrvIntv);
2306 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [InfraUapsdBkSuspIntv] Value = [%lu] ",pHddCtx->cfg_ini->InfraUapsdBkSuspIntv);
2307#ifdef FEATURE_WLAN_CCX
2308 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [InfraInactivityInterval] Value = [%lu] ",pHddCtx->cfg_ini->InfraInactivityInterval);
2309 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [CcxEnabled] Value = [%lu] ",pHddCtx->cfg_ini->isCcxIniFeatureEnabled);
2310 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [FastTransitionEnabled] Value = [%lu] ",pHddCtx->cfg_ini->isFastTransitionEnabled);
2311 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [gTxPowerCap] Value = [%lu] dBm ",pHddCtx->cfg_ini->nTxPowerCap);
2312#endif
Jeff Johnson04dd8a82012-06-29 20:41:40 -07002313#ifdef FEATURE_WLAN_LFR
2314 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [FastRoamEnabled] Value = [%lu] ",pHddCtx->cfg_ini->isFastRoamIniFeatureEnabled);
2315#endif
Jeff Johnson43971f52012-07-17 12:26:56 -07002316#if defined (WLAN_FEATURE_VOWIFI_11R) || defined (FEATURE_WLAN_CCX) || defined(FEATURE_WLAN_LFR)
2317 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [RoamRssiDiff] Value = [%lu] ",pHddCtx->cfg_ini->RoamRssiDiff);
Madan Mohan Koyyalamudi62b55b02012-12-03 16:45:39 -08002318 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [ImmediateRoamRssiDiff] Value = [%lu] ",pHddCtx->cfg_ini->nImmediateRoamRssiDiff);
Jeff Johnson43971f52012-07-17 12:26:56 -07002319#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07002320 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [InfraDirAcVo] Value = [%u] ",pHddCtx->cfg_ini->InfraDirAcVo);
2321 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [InfraNomMsduSizeAcVo] Value = [0x%x] ",pHddCtx->cfg_ini->InfraNomMsduSizeAcVo);
2322 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [InfraMeanDataRateAcVo] Value = [0x%lx] ",pHddCtx->cfg_ini->InfraMeanDataRateAcVo);
2323 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [InfraMinPhyRateAcVo] Value = [0x%lx] ",pHddCtx->cfg_ini->InfraMinPhyRateAcVo);
2324 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [InfraSbaAcVo] Value = [0x%x] ",pHddCtx->cfg_ini->InfraSbaAcVo);
2325
2326 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [InfraDirAcVi] Value = [%u] ",pHddCtx->cfg_ini->InfraDirAcVi);
2327 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [InfraNomMsduSizeAcVi] Value = [0x%x] ",pHddCtx->cfg_ini->InfraNomMsduSizeAcVi);
2328 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [InfraMeanDataRateAcVi] Value = [0x%lx] ",pHddCtx->cfg_ini->InfraMeanDataRateAcVi);
2329 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [InfraMinPhyRateAcVi] Value = [0x%lx] ",pHddCtx->cfg_ini->InfraMinPhyRateAcVi);
2330 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [InfraSbaAcVi] Value = [0x%x] ",pHddCtx->cfg_ini->InfraSbaAcVi);
2331
2332 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [InfraDirAcBe] Value = [%u] ",pHddCtx->cfg_ini->InfraDirAcBe);
2333 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [InfraNomMsduSizeAcBe] Value = [0x%x] ",pHddCtx->cfg_ini->InfraNomMsduSizeAcBe);
2334 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [InfraMeanDataRateAcBe] Value = [0x%lx] ",pHddCtx->cfg_ini->InfraMeanDataRateAcBe);
2335 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [InfraMinPhyRateAcBe] Value = [0x%lx] ",pHddCtx->cfg_ini->InfraMinPhyRateAcBe);
2336 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [InfraSbaAcBe] Value = [0x%x] ",pHddCtx->cfg_ini->InfraSbaAcBe);
2337
2338 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [InfraDirAcBk] Value = [%u] ",pHddCtx->cfg_ini->InfraDirAcBk);
2339 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [InfraNomMsduSizeAcBk] Value = [0x%x] ",pHddCtx->cfg_ini->InfraNomMsduSizeAcBk);
2340 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [InfraMeanDataRateAcBk] Value = [0x%lx] ",pHddCtx->cfg_ini->InfraMeanDataRateAcBk);
2341 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [InfraMinPhyRateAcBk] Value = [0x%lx] ",pHddCtx->cfg_ini->InfraMinPhyRateAcBk);
2342 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [InfraSbaAcBk] Value = [0x%x] ",pHddCtx->cfg_ini->InfraSbaAcBk);
2343
2344 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [WfqBkWeight] Value = [%u] ",pHddCtx->cfg_ini->WfqBkWeight);
2345 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [WfqBeWeight] Value = [%u] ",pHddCtx->cfg_ini->WfqBeWeight);
2346 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [WfqViWeight] Value = [%u] ",pHddCtx->cfg_ini->WfqViWeight);
2347 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [WfqVoWeight] Value = [%u] ",pHddCtx->cfg_ini->WfqVoWeight);
2348 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [DelayedTriggerFrmInt] Value = [%lu] ",pHddCtx->cfg_ini->DelayedTriggerFrmInt);
2349 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [mcastBcastFilterSetting] Value = [%u] ",pHddCtx->cfg_ini->mcastBcastFilterSetting);
2350 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [fhostArpOffload] Value = [%u] ",pHddCtx->cfg_ini->fhostArpOffload);
2351#ifdef WLAN_FEATURE_VOWIFI_11R
2352 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [fFTEnable] Value = [%lu] ",pHddCtx->cfg_ini->fFTEnable);
2353 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [fFTResourceReqSupported] Value = [%lu] ",pHddCtx->cfg_ini->fFTResourceReqSupported);
2354#endif
2355
2356#ifdef WLAN_FEATURE_NEIGHBOR_ROAMING
2357 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [nNeighborReassocRssiThreshold] Value = [%lu] ",pHddCtx->cfg_ini->nNeighborReassocRssiThreshold);
2358 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [nNeighborLookupRssiThreshold] Value = [%lu] ",pHddCtx->cfg_ini->nNeighborLookupRssiThreshold);
2359 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [nNeighborScanMinChanTime] Value = [%lu] ",pHddCtx->cfg_ini->nNeighborScanMinChanTime);
2360 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [nNeighborScanMaxChanTime] Value = [%lu] ",pHddCtx->cfg_ini->nNeighborScanMaxChanTime);
2361 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [nMaxNeighborRetries] Value = [%lu] ",pHddCtx->cfg_ini->nMaxNeighborReqTries);
2362 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [nNeighborScanPeriod] Value = [%lu] ",pHddCtx->cfg_ini->nNeighborScanPeriod);
2363 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [nNeighborScanResultsRefreshPeriod] Value = [%lu] ",pHddCtx->cfg_ini->nNeighborResultsRefreshPeriod);
2364#endif
2365 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [burstSizeDefinition] Value = [0x%x] ",pHddCtx->cfg_ini->burstSizeDefinition);
2366 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [tsInfoAckPolicy] Value = [0x%x] ",pHddCtx->cfg_ini->tsInfoAckPolicy);
2367 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [rfSettlingTimeUs] Value = [%u] ",pHddCtx->cfg_ini->rfSettlingTimeUs);
2368 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [bSingleTidRc] Value = [%u] ",pHddCtx->cfg_ini->bSingleTidRc);
2369 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [gDynamicPSPollvalue] Value = [%u] ",pHddCtx->cfg_ini->dynamicPsPollValue);
2370 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [gAddTSWhenACMIsOff] Value = [%u] ",pHddCtx->cfg_ini->AddTSWhenACMIsOff);
2371 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [gValidateScanList] Value = [%u] ",pHddCtx->cfg_ini->fValidateScanList);
2372
2373 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [gStaKeepAlivePeriod] Value = [%u] ",pHddCtx->cfg_ini->infraStaKeepAlivePeriod);
2374 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [gApDataAvailPollInterVal] Value = [%u] ",pHddCtx->cfg_ini->apDataAvailPollPeriodInMs);
2375 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [gEnableBtAmp] Value = [%u] ",pHddCtx->cfg_ini->enableBtAmp);
2376#ifdef WLAN_BTAMP_FEATURE
2377 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [BtAmpPreferredChannel] Value = [%u] ",pHddCtx->cfg_ini->preferredChannel);
2378#endif //WLAN_BTAMP_FEATURE
2379 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [BandCapability] Value = [%u] ",pHddCtx->cfg_ini->nBandCapability);
2380 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [fEnableBeaconEarlyTermination] Value = [%u] ",pHddCtx->cfg_ini->fEnableBeaconEarlyTermination);
2381 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [teleBcnWakeupEnable] Value = [%u] ",pHddCtx->cfg_ini->teleBcnWakeupEn);
2382 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [transListenInterval] Value = [%u] ",pHddCtx->cfg_ini->nTeleBcnTransListenInterval);
2383 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [transLiNumIdleBeacons] Value = [%u] ",pHddCtx->cfg_ini->nTeleBcnTransLiNumIdleBeacons);
2384 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [maxListenInterval] Value = [%u] ",pHddCtx->cfg_ini->nTeleBcnMaxListenInterval);
2385 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [maxLiNumIdleBeacons] Value = [%u] ",pHddCtx->cfg_ini->nTeleBcnMaxLiNumIdleBeacons);
2386 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [bcnEarlyTermWakeInterval] Value = [%u] ",pHddCtx->cfg_ini->bcnEarlyTermWakeInterval);
2387 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [gApDataAvailPollInterVal] Value = [%u] ",pHddCtx->cfg_ini->apDataAvailPollPeriodInMs);
2388 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [gEnableBypass11d] Value = [%u] ",pHddCtx->cfg_ini->enableBypass11d);
2389 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [gEnableDFSChnlScan] Value = [%u] ",pHddCtx->cfg_ini->enableDFSChnlScan);
2390 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [gReportMaxLinkSpeed] Value = [%u] ",pHddCtx->cfg_ini->reportMaxLinkSpeed);
2391 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [thermalMitigationEnable] Value = [%u] ",pHddCtx->cfg_ini->thermalMitigationEnable);
Jeff Johnsone7245742012-09-05 17:12:55 -07002392#ifdef WLAN_FEATURE_11AC
2393 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [gVhtChannelWidth] value = [%u]\n",pHddCtx->cfg_ini->vhtChannelWidth);
2394#endif
2395 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [enableFirstScan2GOnly] Value = [%u] ",pHddCtx->cfg_ini->enableFirstScan2GOnly);
2396 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [skipDfsChnlInP2pSearch] Value = [%u] ",pHddCtx->cfg_ini->skipDfsChnlInP2pSearch);
2397 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [ignoreDynamicDtimInP2pMode] Value = [%u] ",pHddCtx->cfg_ini->ignoreDynamicDtimInP2pMode);
Madan Mohan Koyyalamudi3f65e312012-11-06 15:31:12 -08002398 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [gIgnore_Chan165] Value = [%u] ",pHddCtx->cfg_ini->ignore_chan165);
Pratik Bhalgat6bfd1422012-11-22 17:09:40 +05302399 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [enableRxSTBC] Value = [%u] ",pHddCtx->cfg_ini->enableRxSTBC);
Madan Mohan Koyyalamudi0d40e662012-12-07 14:24:14 -08002400 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Name = [gEnableLpwrImgTransition] Value = [%u] ",pHddCtx->cfg_ini->enableLpwrImgTransition);
Jeff Johnson295189b2012-06-20 16:38:30 -07002401}
2402
2403
2404#define CFG_VALUE_MAX_LEN 256
2405#define CFG_ENTRY_MAX_LEN (32+CFG_VALUE_MAX_LEN)
2406VOS_STATUS hdd_cfg_get_config(hdd_context_t *pHddCtx, char *pBuf, int buflen)
2407{
2408 unsigned int idx;
2409 REG_TABLE_ENTRY *pRegEntry = g_registry_table;
2410 unsigned long cRegTableEntries = sizeof(g_registry_table) / sizeof( g_registry_table[ 0 ]);
2411 v_U32_t value;
2412 char valueStr[CFG_VALUE_MAX_LEN];
2413 char configStr[CFG_ENTRY_MAX_LEN];
2414 char *fmt;
2415 void *pField;
2416 v_MACADDR_t *pMacAddr;
2417 char *pCur = pBuf;
2418 int curlen;
2419
2420 // start with an empty string
2421 *pCur = '\0';
2422
2423 for ( idx = 0; idx < cRegTableEntries; idx++, pRegEntry++ )
2424 {
2425 pField = ( (v_U8_t *)pHddCtx->cfg_ini) + pRegEntry->VarOffset;
2426
2427 if ( ( WLAN_PARAM_Integer == pRegEntry->RegType ) ||
2428 ( WLAN_PARAM_SignedInteger == pRegEntry->RegType ) ||
2429 ( WLAN_PARAM_HexInteger == pRegEntry->RegType ) )
2430 {
2431 value = 0;
2432 memcpy( &value, pField, pRegEntry->VarSize );
2433 if ( WLAN_PARAM_HexInteger == pRegEntry->RegType )
2434 {
2435 fmt = "%x";
2436 }
2437 else if ( WLAN_PARAM_SignedInteger == pRegEntry->RegType )
2438 {
2439 fmt = "%d";
2440 }
2441 else
2442 {
2443 fmt = "%u";
2444 }
2445 snprintf(valueStr, CFG_VALUE_MAX_LEN, fmt, value);
2446 }
2447 else if ( WLAN_PARAM_String == pRegEntry->RegType )
2448 {
2449 snprintf(valueStr, CFG_VALUE_MAX_LEN, "%s", (char *)pField);
2450 }
2451 else if ( WLAN_PARAM_MacAddr == pRegEntry->RegType )
2452 {
2453 pMacAddr = (v_MACADDR_t *) pField;
2454 snprintf(valueStr, CFG_VALUE_MAX_LEN,
2455 "%02x:%02x:%02x:%02x:%02x:%02x",
2456 pMacAddr->bytes[0],
2457 pMacAddr->bytes[1],
2458 pMacAddr->bytes[2],
2459 pMacAddr->bytes[3],
2460 pMacAddr->bytes[4],
2461 pMacAddr->bytes[5]);
2462 }
2463 else
2464 {
2465 snprintf(valueStr, CFG_VALUE_MAX_LEN, "(unhandled)");
2466 }
2467 curlen = snprintf(configStr, CFG_ENTRY_MAX_LEN,
2468 "%s=[%s]%s\n",
2469 pRegEntry->RegName,
2470 valueStr,
2471 test_bit(idx, (void *)&pHddCtx->cfg_ini->bExplicitCfg) ?
2472 "*" : "");
2473
2474 // ideally we want to return the config to the application
2475 // however the config is too big so we just printk() for now
2476#ifdef RETURN_IN_BUFFER
2477 if (curlen <= buflen)
2478 {
2479 // copy string + '\0'
2480 memcpy(pCur, configStr, curlen+1);
2481
2482 // account for addition;
2483 pCur += curlen;
2484 buflen -= curlen;
2485 }
2486 else
2487 {
2488 // buffer space exhausted, return what we have
2489 return VOS_STATUS_E_RESOURCES;
2490 }
2491#else
2492 printk(KERN_CRIT "%s", configStr);
2493#endif // RETURN_IN_BUFFER
2494
2495}
2496
2497#ifndef RETURN_IN_BUFFER
2498 // notify application that output is in system log
2499 snprintf(pCur, buflen, "WLAN configuration written to system log");
2500#endif // RETURN_IN_BUFFER
2501
2502 return VOS_STATUS_SUCCESS;
2503}
2504
2505static VOS_STATUS find_cfg_item (tCfgIniEntry* iniTable, unsigned long entries,
2506 char *name, char** value)
2507{
2508 VOS_STATUS status = VOS_STATUS_E_FAILURE;
2509 unsigned long i;
2510
2511 for (i = 0; i < entries; i++) {
2512 if (strcmp(iniTable[i].name, name) == 0) {
2513 *value = iniTable[i].value;
2514 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "Found %s entry for Name=[%s] Value=[%s] ",
2515 WLAN_INI_FILE, name, *value);
2516 return VOS_STATUS_SUCCESS;
2517 }
2518 }
2519
2520 return status;
2521}
2522
2523static int parseHexDigit(char c)
2524{
2525 if (c >= '0' && c <= '9')
2526 return c-'0';
2527 if (c >= 'a' && c <= 'f')
2528 return c-'a'+10;
2529 if (c >= 'A' && c <= 'F')
2530 return c-'A'+10;
2531
2532 return 0;
2533}
2534
2535
2536static VOS_STATUS hdd_apply_cfg_ini( hdd_context_t *pHddCtx, tCfgIniEntry* iniTable, unsigned long entries)
2537{
2538 VOS_STATUS match_status = VOS_STATUS_E_FAILURE;
2539 VOS_STATUS ret_status = VOS_STATUS_SUCCESS;
2540 unsigned int idx;
2541 void *pField;
2542 char *value_str = NULL;
2543 unsigned long len_value_str;
2544 char *candidate;
2545 v_U32_t value;
2546 v_S31_t svalue;
2547 void *pStructBase = pHddCtx->cfg_ini;
2548 REG_TABLE_ENTRY *pRegEntry = g_registry_table;
2549 unsigned long cRegTableEntries = sizeof(g_registry_table) / sizeof( g_registry_table[ 0 ]);
2550 v_U32_t cbOutString;
2551 int i;
Madan Mohan Koyyalamudid8ac8662012-11-06 19:04:56 -08002552 int rv;
Jeff Johnson295189b2012-06-20 16:38:30 -07002553
2554 // sanity test
2555 if (MAX_CFG_INI_ITEMS < cRegTableEntries)
2556 {
2557 hddLog(LOGE, "%s: MAX_CFG_INI_ITEMS too small, must be at least %d",
Madan Mohan Koyyalamudi87054ba2012-11-02 13:24:12 -07002558 __func__, cRegTableEntries);
Jeff Johnson295189b2012-06-20 16:38:30 -07002559 }
2560
2561 for ( idx = 0; idx < cRegTableEntries; idx++, pRegEntry++ )
2562 {
2563 //Calculate the address of the destination field in the structure.
2564 pField = ( (v_U8_t *)pStructBase )+ pRegEntry->VarOffset;
2565
2566 match_status = find_cfg_item(iniTable, entries, pRegEntry->RegName, &value_str);
2567
2568 if( (match_status != VOS_STATUS_SUCCESS) && ( pRegEntry->Flags & VAR_FLAGS_REQUIRED ) )
2569 {
2570 // If we could not read the cfg item and it is required, this is an error.
2571 hddLog(LOGE, "%s: Failed to read required config parameter %s",
Madan Mohan Koyyalamudi87054ba2012-11-02 13:24:12 -07002572 __func__, pRegEntry->RegName);
Jeff Johnson295189b2012-06-20 16:38:30 -07002573 ret_status = VOS_STATUS_E_FAILURE;
2574 break;
2575 }
2576
2577 if ( ( WLAN_PARAM_Integer == pRegEntry->RegType ) ||
2578 ( WLAN_PARAM_HexInteger == pRegEntry->RegType ) )
2579 {
2580 // If successfully read from the registry, use the value read.
2581 // If not, use the default value.
2582 if ( match_status == VOS_STATUS_SUCCESS && (WLAN_PARAM_Integer == pRegEntry->RegType)) {
Madan Mohan Koyyalamudid8ac8662012-11-06 19:04:56 -08002583 rv = kstrtoul(value_str, 10, &value);
2584 if (rv < 0) {
2585 hddLog(LOGE, "%s: Reg Parameter %s invalid. Enforcing default",
2586 __func__, pRegEntry->RegName);
2587 value = pRegEntry->VarDefault;
2588 }
Jeff Johnson295189b2012-06-20 16:38:30 -07002589 }
2590 else if ( match_status == VOS_STATUS_SUCCESS && (WLAN_PARAM_HexInteger == pRegEntry->RegType)) {
Madan Mohan Koyyalamudid8ac8662012-11-06 19:04:56 -08002591 rv = kstrtoul(value_str, 16, &value);
2592 if (rv < 0) {
2593 hddLog(LOGE, "%s: Reg paramter %s invalid. Enforcing default",
2594 __func__, pRegEntry->RegName);
2595 value = pRegEntry->VarDefault;
2596 }
Jeff Johnson295189b2012-06-20 16:38:30 -07002597 }
2598 else {
2599 value = pRegEntry->VarDefault;
2600 }
2601
2602 // If this parameter needs range checking, do it here.
2603 if ( pRegEntry->Flags & VAR_FLAGS_RANGE_CHECK )
2604 {
2605 if ( value > pRegEntry->VarMax )
2606 {
2607 hddLog(LOGE, "%s: Reg Parameter %s > allowed Maximum [%lu > %lu]. Enforcing Maximum",
Madan Mohan Koyyalamudi87054ba2012-11-02 13:24:12 -07002608 __func__, pRegEntry->RegName, value, pRegEntry->VarMax );
Jeff Johnson295189b2012-06-20 16:38:30 -07002609 value = pRegEntry->VarMax;
2610 }
2611
2612 if ( value < pRegEntry->VarMin )
2613 {
2614 hddLog(LOGE, "%s: Reg Parameter %s < allowed Minimum [%lu < %lu]. Enforcing Minimum",
Madan Mohan Koyyalamudi87054ba2012-11-02 13:24:12 -07002615 __func__, pRegEntry->RegName, value, pRegEntry->VarMin);
Jeff Johnson295189b2012-06-20 16:38:30 -07002616 value = pRegEntry->VarMin;
2617 }
2618 }
2619 // If this parameter needs range checking, do it here.
2620 else if ( pRegEntry->Flags & VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT )
2621 {
2622 if ( value > pRegEntry->VarMax )
2623 {
2624 hddLog(LOGE, "%s: Reg Parameter %s > allowed Maximum [%lu > %lu]. Enforcing Default= %lu",
Madan Mohan Koyyalamudi87054ba2012-11-02 13:24:12 -07002625 __func__, pRegEntry->RegName, value, pRegEntry->VarMax, pRegEntry->VarDefault );
Jeff Johnson295189b2012-06-20 16:38:30 -07002626 value = pRegEntry->VarDefault;
2627 }
2628
2629 if ( value < pRegEntry->VarMin )
2630 {
2631 hddLog(LOGE, "%s: Reg Parameter %s < allowed Minimum [%lu < %lu]. Enforcing Default= %lu",
Madan Mohan Koyyalamudi87054ba2012-11-02 13:24:12 -07002632 __func__, pRegEntry->RegName, value, pRegEntry->VarMin, pRegEntry->VarDefault );
Jeff Johnson295189b2012-06-20 16:38:30 -07002633 value = pRegEntry->VarDefault;
2634 }
2635 }
2636
2637 // Move the variable into the output field.
2638 memcpy( pField, &value, pRegEntry->VarSize );
2639 }
2640 else if ( WLAN_PARAM_SignedInteger == pRegEntry->RegType )
2641 {
2642 // If successfully read from the registry, use the value read.
2643 // If not, use the default value.
2644 if (VOS_STATUS_SUCCESS == match_status)
2645 {
Madan Mohan Koyyalamudid8ac8662012-11-06 19:04:56 -08002646 rv = kstrtol(value_str, 10, &svalue);
2647 if (rv < 0) {
2648 hddLog(VOS_TRACE_LEVEL_WARN, "%s: Reg Parameter %s invalid. Enforcing Default",
2649 __func__, pRegEntry->RegName);
2650 svalue = (v_S31_t)pRegEntry->VarDefault;
2651 }
Jeff Johnson295189b2012-06-20 16:38:30 -07002652 }
2653 else
2654 {
2655 svalue = (v_S31_t)pRegEntry->VarDefault;
2656 }
2657
2658 // If this parameter needs range checking, do it here.
2659 if ( pRegEntry->Flags & VAR_FLAGS_RANGE_CHECK )
2660 {
2661 if ( svalue > (v_S31_t)pRegEntry->VarMax )
2662 {
2663 hddLog(LOGE, "%s: Reg Parameter %s > allowed Maximum "
Madan Mohan Koyyalamudi87054ba2012-11-02 13:24:12 -07002664 "[%ld > %ld]. Enforcing Maximum", __func__,
Jeff Johnson295189b2012-06-20 16:38:30 -07002665 pRegEntry->RegName, svalue, (int)pRegEntry->VarMax );
2666 svalue = (v_S31_t)pRegEntry->VarMax;
2667 }
2668
2669 if ( svalue < (v_S31_t)pRegEntry->VarMin )
2670 {
2671 hddLog(LOGE, "%s: Reg Parameter %s < allowed Minimum "
Madan Mohan Koyyalamudi87054ba2012-11-02 13:24:12 -07002672 "[%ld < %ld]. Enforcing Minimum", __func__,
Jeff Johnson295189b2012-06-20 16:38:30 -07002673 pRegEntry->RegName, svalue, (int)pRegEntry->VarMin);
2674 svalue = (v_S31_t)pRegEntry->VarMin;
2675 }
2676 }
2677 // If this parameter needs range checking, do it here.
2678 else if ( pRegEntry->Flags & VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT )
2679 {
2680 if ( svalue > (v_S31_t)pRegEntry->VarMax )
2681 {
2682 hddLog(LOGE, "%s: Reg Parameter %s > allowed Maximum "
2683 "[%ld > %ld]. Enforcing Default= %ld",
Madan Mohan Koyyalamudi87054ba2012-11-02 13:24:12 -07002684 __func__, pRegEntry->RegName, svalue,
Jeff Johnson295189b2012-06-20 16:38:30 -07002685 (int)pRegEntry->VarMax,
2686 (int)pRegEntry->VarDefault );
2687 svalue = (v_S31_t)pRegEntry->VarDefault;
2688 }
2689
2690 if ( svalue < (v_S31_t)pRegEntry->VarMin )
2691 {
2692 hddLog(LOGE, "%s: Reg Parameter %s < allowed Minimum "
2693 "[%ld < %ld]. Enforcing Default= %ld",
Madan Mohan Koyyalamudi87054ba2012-11-02 13:24:12 -07002694 __func__, pRegEntry->RegName, svalue,
Jeff Johnson295189b2012-06-20 16:38:30 -07002695 (int)pRegEntry->VarMin,
2696 (int)pRegEntry->VarDefault);
2697 svalue = pRegEntry->VarDefault;
2698 }
2699 }
2700
2701 // Move the variable into the output field.
2702 memcpy( pField, &svalue, pRegEntry->VarSize );
2703 }
2704 // Handle string parameters
2705 else if ( WLAN_PARAM_String == pRegEntry->RegType )
2706 {
2707#ifdef WLAN_CFG_DEBUG
2708 VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH, "RegName = %s, VarOffset %u VarSize %u VarDefault %s\n",
2709 pRegEntry->RegName, pRegEntry->VarOffset, pRegEntry->VarSize, (char*)pRegEntry->VarDefault);
2710#endif
2711
2712 if ( match_status == VOS_STATUS_SUCCESS)
2713 {
2714 len_value_str = strlen(value_str);
2715
2716 if(len_value_str > (pRegEntry->VarSize - 1)) {
2717 hddLog(LOGE, "%s: Invalid Value=[%s] specified for Name=[%s] in %s\n",
Madan Mohan Koyyalamudi87054ba2012-11-02 13:24:12 -07002718 __func__, value_str, pRegEntry->RegName, WLAN_INI_FILE);
Jeff Johnson295189b2012-06-20 16:38:30 -07002719 cbOutString = utilMin( strlen( (char *)pRegEntry->VarDefault ), pRegEntry->VarSize - 1 );
2720 memcpy( pField, (void *)(pRegEntry->VarDefault), cbOutString );
2721 ( (v_U8_t *)pField )[ cbOutString ] = '\0';
2722 }
2723 else
2724 {
2725 memcpy( pField, (void *)(value_str), len_value_str);
2726 ( (v_U8_t *)pField )[ len_value_str ] = '\0';
2727 }
2728 }
2729 else
2730 {
2731 // Failed to read the string parameter from the registry. Use the default.
2732 cbOutString = utilMin( strlen( (char *)pRegEntry->VarDefault ), pRegEntry->VarSize - 1 );
2733 memcpy( pField, (void *)(pRegEntry->VarDefault), cbOutString );
2734 ( (v_U8_t *)pField )[ cbOutString ] = '\0';
2735 }
2736 }
2737 else if ( WLAN_PARAM_MacAddr == pRegEntry->RegType )
2738 {
2739 if(pRegEntry->VarSize != VOS_MAC_ADDR_SIZE) {
2740 hddLog(LOGE, "%s: Invalid VarSize %u for Name=[%s]\n",
Madan Mohan Koyyalamudi87054ba2012-11-02 13:24:12 -07002741 __func__, pRegEntry->VarSize, pRegEntry->RegName);
Jeff Johnson295189b2012-06-20 16:38:30 -07002742 continue;
2743 }
2744 candidate = (char*)pRegEntry->VarDefault;
2745 if ( match_status == VOS_STATUS_SUCCESS) {
2746 len_value_str = strlen(value_str);
2747 if(len_value_str != (VOS_MAC_ADDR_SIZE*2)) {
2748 hddLog(LOGE, "%s: Invalid MAC addr [%s] specified for Name=[%s] in %s\n",
Madan Mohan Koyyalamudi87054ba2012-11-02 13:24:12 -07002749 __func__, value_str, pRegEntry->RegName, WLAN_INI_FILE);
Jeff Johnson295189b2012-06-20 16:38:30 -07002750 }
2751 else
2752 candidate = value_str;
2753 }
2754 //parse the string and store it in the byte array
2755 for(i=0; i<VOS_MAC_ADDR_SIZE; i++)
2756 {
2757 ((char*)pField)[i] =
2758 (char)(parseHexDigit(candidate[i*2])*16 + parseHexDigit(candidate[i*2+1]));
2759 }
2760 }
2761 else
2762 {
2763 hddLog(LOGE, "%s: Unknown param type for name[%s] in registry table\n",
Madan Mohan Koyyalamudi87054ba2012-11-02 13:24:12 -07002764 __func__, pRegEntry->RegName);
Jeff Johnson295189b2012-06-20 16:38:30 -07002765 }
2766
2767 // did we successfully parse a cfg item for this parameter?
2768 if( (match_status == VOS_STATUS_SUCCESS) &&
2769 (idx < MAX_CFG_INI_ITEMS) )
2770 {
2771 set_bit(idx, (void *)&pHddCtx->cfg_ini->bExplicitCfg);
2772 }
2773 }
2774
2775 print_hdd_cfg(pHddCtx);
2776
2777 return( ret_status );
2778}
2779
2780eCsrPhyMode hdd_cfg_xlate_to_csr_phy_mode( eHddDot11Mode dot11Mode )
2781{
2782 switch (dot11Mode)
2783 {
2784 case (eHDD_DOT11_MODE_abg):
2785 return eCSR_DOT11_MODE_abg;
2786 case (eHDD_DOT11_MODE_11b):
2787 return eCSR_DOT11_MODE_11b;
2788 case (eHDD_DOT11_MODE_11g):
2789 return eCSR_DOT11_MODE_11g;
2790 default:
2791 case (eHDD_DOT11_MODE_11n):
2792 return eCSR_DOT11_MODE_11n;
2793 case (eHDD_DOT11_MODE_11g_ONLY):
2794 return eCSR_DOT11_MODE_11g_ONLY;
2795 case (eHDD_DOT11_MODE_11n_ONLY):
2796 return eCSR_DOT11_MODE_11n_ONLY;
2797 case (eHDD_DOT11_MODE_11b_ONLY):
2798 return eCSR_DOT11_MODE_11b_ONLY;
Jeff Johnsone7245742012-09-05 17:12:55 -07002799#ifdef WLAN_FEATURE_11AC
2800 case (eHDD_DOT11_MODE_11ac_ONLY):
2801 return eCSR_DOT11_MODE_11ac_ONLY;
2802 case (eHDD_DOT11_MODE_11ac):
2803 return eCSR_DOT11_MODE_11ac;
2804#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07002805 case (eHDD_DOT11_MODE_AUTO):
2806 return eCSR_DOT11_MODE_AUTO;
2807 }
2808
2809}
2810
2811static void hdd_set_btc_config(hdd_context_t *pHddCtx)
2812{
2813 hdd_config_t *pConfig = pHddCtx->cfg_ini;
2814 tSmeBtcConfig btcParams;
2815
2816 sme_BtcGetConfig(pHddCtx->hHal, &btcParams);
2817
2818 btcParams.btcExecutionMode = pConfig->btcExecutionMode;
Jeff Johnson295189b2012-06-20 16:38:30 -07002819 btcParams.btcConsBtSlotsToBlockDuringDhcp = pConfig->btcConsBtSlotsToBlockDuringDhcp;
Jeff Johnson295189b2012-06-20 16:38:30 -07002820 btcParams.btcA2DPBtSubIntervalsDuringDhcp = pConfig->btcA2DPBtSubIntervalsDuringDhcp;
2821
Jeff Johnson32d95a32012-09-10 13:15:23 -07002822 btcParams.btcStaticLenInqBt = pConfig->btcStaticLenInqBt;
2823 btcParams.btcStaticLenPageBt = pConfig->btcStaticLenPageBt;
2824 btcParams.btcStaticLenConnBt = pConfig->btcStaticLenConnBt;
2825 btcParams.btcStaticLenLeBt = pConfig->btcStaticLenLeBt;
2826 btcParams.btcStaticLenInqWlan = pConfig->btcStaticLenInqWlan;
2827 btcParams.btcStaticLenPageWlan = pConfig->btcStaticLenPageWlan;
2828 btcParams.btcStaticLenConnWlan = pConfig->btcStaticLenConnWlan;
2829 btcParams.btcStaticLenLeWlan = pConfig->btcStaticLenLeWlan;
2830 btcParams.btcDynMaxLenBt = pConfig->btcDynMaxLenBt;
2831 btcParams.btcDynMaxLenWlan = pConfig->btcDynMaxLenWlan;
2832 btcParams.btcMaxScoBlockPerc = pConfig->btcMaxScoBlockPerc;
2833 btcParams.btcDhcpProtOnA2dp = pConfig->btcDhcpProtOnA2dp;
2834 btcParams.btcDhcpProtOnSco = pConfig->btcDhcpProtOnSco;
2835
Jeff Johnson295189b2012-06-20 16:38:30 -07002836 sme_BtcSetConfig(pHddCtx->hHal, &btcParams);
2837}
2838
2839static void hdd_set_power_save_config(hdd_context_t *pHddCtx, tSmeConfigParams *smeConfig)
2840{
2841 hdd_config_t *pConfig = pHddCtx->cfg_ini;
2842
2843 tPmcBmpsConfigParams bmpsParams;
2844
2845 sme_GetConfigPowerSave(pHddCtx->hHal, ePMC_BEACON_MODE_POWER_SAVE, &bmpsParams);
2846
2847 if (strcmp(pConfig->PowerUsageControl, "Min") == 0)
2848 {
2849 smeConfig->csrConfig.impsSleepTime = pConfig->nImpsMinSleepTime;
2850 bmpsParams.bmpsPeriod = pConfig->nBmpsMinListenInterval;
2851 bmpsParams.enableBeaconEarlyTermination = pConfig->fEnableBeaconEarlyTermination;
2852 bmpsParams.bcnEarlyTermWakeInterval = pConfig->bcnEarlyTermWakeInterval;
2853 }
2854 if (strcmp(pConfig->PowerUsageControl, "Max") == 0)
2855 {
2856 smeConfig->csrConfig.impsSleepTime = pConfig->nImpsMaxSleepTime;
2857 bmpsParams.bmpsPeriod = pConfig->nBmpsMaxListenInterval;
2858 bmpsParams.enableBeaconEarlyTermination = pConfig->fEnableBeaconEarlyTermination;
2859 bmpsParams.bcnEarlyTermWakeInterval = pConfig->bcnEarlyTermWakeInterval;
2860 }
2861 if (strcmp(pConfig->PowerUsageControl, "Mod") == 0)
2862 {
2863 smeConfig->csrConfig.impsSleepTime = pConfig->nImpsModSleepTime;
2864 bmpsParams.bmpsPeriod = pConfig->nBmpsModListenInterval;
2865 bmpsParams.enableBeaconEarlyTermination = pConfig->fEnableBeaconEarlyTermination;
2866 bmpsParams.bcnEarlyTermWakeInterval = pConfig->bcnEarlyTermWakeInterval;
2867 }
2868
2869 if (pConfig->fIsImpsEnabled)
2870 {
2871 sme_EnablePowerSave (pHddCtx->hHal, ePMC_IDLE_MODE_POWER_SAVE);
2872 }
2873 else
2874 {
2875 sme_DisablePowerSave (pHddCtx->hHal, ePMC_IDLE_MODE_POWER_SAVE);
2876 }
2877
Madan Mohan Koyyalamudi69b34182013-01-16 08:51:40 +05302878 /*If isAndroidPsEn is 1 then Host driver and above layers control the PS mechanism
2879 If Value set to 0 Driver/Core Stack internally control the Power saving mechanism */
2880 sme_SetHostPowerSave (pHddCtx->hHal, pConfig->isAndroidPsEn);
2881
Jeff Johnson295189b2012-06-20 16:38:30 -07002882 if (pConfig->fIsBmpsEnabled)
2883 {
2884 sme_EnablePowerSave (pHddCtx->hHal, ePMC_BEACON_MODE_POWER_SAVE);
2885 }
2886 else
2887 {
2888 sme_DisablePowerSave (pHddCtx->hHal, ePMC_BEACON_MODE_POWER_SAVE);
2889 }
2890
2891 bmpsParams.trafficMeasurePeriod = pConfig->nAutoBmpsTimerValue;
2892
2893 if (sme_SetConfigPowerSave(pHddCtx->hHal, ePMC_BEACON_MODE_POWER_SAVE, &bmpsParams)== eHAL_STATUS_FAILURE)
2894 {
2895 hddLog(LOGE, "SetConfigPowerSave failed to set BMPS params\n");
2896 }
2897
2898 if(pConfig->fIsAutoBmpsTimerEnabled)
2899 {
2900 sme_StartAutoBmpsTimer(pHddCtx->hHal);
2901 }
2902
2903}
2904
2905#ifdef WLAN_FEATURE_NEIGHBOR_ROAMING
2906static VOS_STATUS hdd_string_to_u8_array( char *str, tANI_U8 *intArray, tANI_U8 *len, tANI_U8 intArrayMaxLen )
2907{
2908 char *s = str;
2909
2910 if( str == NULL || intArray == NULL || len == NULL )
2911 {
2912 return VOS_STATUS_E_INVAL;
2913 }
2914 *len = 0;
2915
Jeff Johnson295189b2012-06-20 16:38:30 -07002916 while ( (s != NULL) && (*len < intArrayMaxLen) )
2917 {
2918 int val;
2919 //Increment length only if sscanf succesfully extracted one element.
2920 //Any other return value means error. Ignore it.
2921 if( sscanf(s, "%d", &val ) == 1 )
2922 {
2923 intArray[*len] = (tANI_U8) val;
2924 *len += 1;
2925 }
2926 s = strpbrk( s, "," );
2927 if( s )
2928 s++;
2929 }
Jeff Johnson295189b2012-06-20 16:38:30 -07002930
2931 return VOS_STATUS_SUCCESS;
2932
2933}
2934#endif
2935
2936
2937v_BOOL_t hdd_update_config_dat( hdd_context_t *pHddCtx )
2938{
2939 v_BOOL_t fStatus = TRUE;
Gopichand Nakkala976e3252013-01-03 15:45:56 -08002940#ifdef WLAN_SOFTAP_VSTA_FEATURE
2941 tANI_U32 val;
2942#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07002943
2944 hdd_config_t *pConfig = pHddCtx->cfg_ini;
Pratik Bhalgat6bfd1422012-11-22 17:09:40 +05302945 tSirMacHTCapabilityInfo htCapInfo;
2946
Jeff Johnson295189b2012-06-20 16:38:30 -07002947
2948 if (ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_SHORT_GI_20MHZ,
2949 pConfig->ShortGI20MhzEnable, NULL, eANI_BOOLEAN_FALSE)==eHAL_STATUS_FAILURE)
2950 {
2951 fStatus = FALSE;
2952 hddLog(LOGE, "Could not pass on WNI_CFG_SHORT_GI_20MHZ to CCM\n");
2953 }
2954
2955 if (ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_CAL_CONTROL, pConfig->Calibration,
2956 NULL, eANI_BOOLEAN_FALSE)==eHAL_STATUS_FAILURE)
2957 {
2958 fStatus = FALSE;
2959 hddLog(LOGE, "Could not pass on WNI_CFG_CAL_CONTROL to CCM\n");
2960 }
2961
2962 if (ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_CAL_PERIOD, pConfig->CalibrationPeriod,
2963 NULL, eANI_BOOLEAN_FALSE)==eHAL_STATUS_FAILURE)
2964 {
2965 fStatus = FALSE;
2966 hddLog(LOGE, "Could not pass on WNI_CFG_CAL_PERIOD to CCM\n");
2967 }
2968
2969 if ( 0 != pConfig->Cfg1Id )
2970 {
2971 if (ccmCfgSetInt(pHddCtx->hHal, pConfig->Cfg1Id, pConfig->Cfg1Value, NULL,
2972 eANI_BOOLEAN_FALSE)==eHAL_STATUS_FAILURE)
2973 {
2974 fStatus = FALSE;
2975 hddLog(LOGE, "Could not pass on Cfg1Id to CCM\n");
2976 }
2977
2978 }
2979
2980 if ( 0 != pConfig->Cfg2Id )
2981 {
2982 if (ccmCfgSetInt(pHddCtx->hHal, pConfig->Cfg2Id, pConfig->Cfg2Value,
2983 NULL, eANI_BOOLEAN_FALSE)==eHAL_STATUS_FAILURE)
2984 {
2985 fStatus = FALSE;
2986 hddLog(LOGE, "Could not pass on Cfg2Id to CCM\n");
2987 }
2988 }
2989
2990 if ( 0 != pConfig->Cfg3Id )
2991 {
2992 if (ccmCfgSetInt(pHddCtx->hHal, pConfig->Cfg3Id, pConfig->Cfg3Value,
2993 NULL, eANI_BOOLEAN_FALSE)==eHAL_STATUS_FAILURE)
2994 {
2995 fStatus = FALSE;
2996 hddLog(LOGE, "Could not pass on Cfg3Id to CCM\n");
2997 }
2998 }
2999
3000 if ( 0 != pConfig->Cfg4Id )
3001 {
3002 if (ccmCfgSetInt(pHddCtx->hHal, pConfig->Cfg4Id, pConfig->Cfg4Value,
3003 NULL, eANI_BOOLEAN_FALSE)==eHAL_STATUS_FAILURE)
3004 {
3005 fStatus = FALSE;
3006 hddLog(LOGE, "Could not pass on Cfg4Id to CCM\n");
3007 }
3008 }
3009
3010 if ( 0 != pConfig->Cfg5Id )
3011 {
3012 if (ccmCfgSetInt(pHddCtx->hHal, pConfig->Cfg5Id, pConfig->Cfg5Value,
3013 NULL, eANI_BOOLEAN_FALSE)==eHAL_STATUS_FAILURE)
3014 {
3015 fStatus = FALSE;
3016 hddLog(LOGE, "Could not pass on Cfg5Id to CCM\n");
3017 }
3018 }
3019
3020 if (ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_BA_AUTO_SETUP, pConfig->BlockAckAutoSetup,
3021 NULL, eANI_BOOLEAN_FALSE)==eHAL_STATUS_FAILURE)
3022 {
3023 fStatus = FALSE;
3024 hddLog(LOGE, "Could not pass on WNI_CFG_BA_AUTO_SETUP to CCM\n");
3025 }
3026
3027 if (ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_FIXED_RATE, pConfig->TxRate,
3028 NULL, eANI_BOOLEAN_FALSE)==eHAL_STATUS_FAILURE)
3029 {
3030 fStatus = FALSE;
3031 hddLog(LOGE, "Could not pass on WNI_CFG_FIXED_RATE to CCM\n");
3032 }
3033
3034 if (ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_MAX_RX_AMPDU_FACTOR,
3035 pConfig->MaxRxAmpduFactor, NULL, eANI_BOOLEAN_FALSE)==eHAL_STATUS_FAILURE)
3036 {
3037 fStatus = FALSE;
3038 hddLog(LOGE,"Could not pass on WNI_CFG_HT_AMPDU_PARAMS_MAX_RX_AMPDU_FACTOR to CCM\n");
3039 }
3040
3041 if (ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_SHORT_PREAMBLE, pConfig->fIsShortPreamble,
3042 NULL, eANI_BOOLEAN_FALSE)==eHAL_STATUS_FAILURE)
3043 {
3044 fStatus = FALSE;
3045 hddLog(LOGE,"Could not pass on WNI_CFG_SHORT_PREAMBLE to CCM\n");
3046 }
3047
3048 if (pConfig->fIsAutoIbssBssid)
3049 {
3050 if (ccmCfgSetStr(pHddCtx->hHal, WNI_CFG_BSSID, (v_U8_t *)"000000000000",
3051 sizeof(v_BYTE_t) * VOS_MAC_ADDR_SIZE, NULL, eANI_BOOLEAN_FALSE)==eHAL_STATUS_FAILURE)
3052 {
3053 fStatus = FALSE;
3054 hddLog(LOGE,"Could not pass on WNI_CFG_BSSID to CCM\n");
3055 }
3056 }
3057 else
3058 {
3059 if ( VOS_FALSE == vos_is_macaddr_group( &pConfig->IbssBssid ))
3060 {
3061 VOS_TRACE( VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_MED,
3062 "MAC Addr (IBSS BSSID) read from Registry is: %02x-%02x-%02x-%02x-%02x-%02x",
3063 pConfig->IbssBssid.bytes[0], pConfig->IbssBssid.bytes[1], pConfig->IbssBssid.bytes[2],
3064 pConfig->IbssBssid.bytes[3], pConfig->IbssBssid.bytes[4], pConfig->IbssBssid.bytes[5]);
3065 if (ccmCfgSetStr(pHddCtx->hHal, WNI_CFG_BSSID, pConfig->IbssBssid.bytes,
3066 sizeof(v_BYTE_t) * VOS_MAC_ADDR_SIZE, NULL, eANI_BOOLEAN_FALSE)==eHAL_STATUS_FAILURE)
3067 {
3068 fStatus = FALSE;
3069 hddLog(LOGE,"Could not pass on WNI_CFG_BSSID to CCM\n");
3070 }
3071 }
3072 else
3073 {
3074 fStatus = FALSE;
3075 hddLog(LOGE,"Could not pass on WNI_CFG_BSSID to CCM\n");
3076 }
3077 }
3078
3079 if (ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_BEACON_INTERVAL, pConfig->nBeaconInterval,
3080 NULL, eANI_BOOLEAN_FALSE)==eHAL_STATUS_FAILURE)
3081 {
3082 fStatus = FALSE;
3083 hddLog(LOGE, "Could not pass on WNI_CFG_BEACON_INTERVAL to CCM\n");
3084 }
3085
3086 if (ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_MAX_PS_POLL, pConfig->nMaxPsPoll,
3087 NULL, eANI_BOOLEAN_FALSE)==eHAL_STATUS_FAILURE)
3088 {
3089 fStatus = FALSE;
3090 hddLog(LOGE, "Could not pass on WNI_CFG_MAX_PS_POLL to CCM\n");
3091 }
3092
3093 if (ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_CURRENT_RX_ANTENNA, pConfig-> nRxAnt, NULL, eANI_BOOLEAN_FALSE)==eHAL_STATUS_FAILURE)
3094 {
3095 fStatus = FALSE;
3096 hddLog(LOGE, "Failure: Could not pass on WNI_CFG_CURRENT_RX_ANTENNA configuration info to HAL\n" );
3097 }
3098
3099 if (ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_LOW_GAIN_OVERRIDE, pConfig->fIsLowGainOverride,
3100 NULL, eANI_BOOLEAN_FALSE)==eHAL_STATUS_FAILURE)
3101 {
3102 fStatus = FALSE;
3103 hddLog(LOGE, "Could not pass on WNI_CFG_LOW_GAIN_OVERRIDE to HAL\n");
3104 }
3105
3106 if (ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_RSSI_FILTER_PERIOD, pConfig->nRssiFilterPeriod,
3107 NULL, eANI_BOOLEAN_FALSE)==eHAL_STATUS_FAILURE)
3108 {
3109 fStatus = FALSE;
3110 hddLog(LOGE, "Could not pass on WNI_CFG_RSSI_FILTER_PERIOD to CCM\n");
3111 }
3112
Jeff Johnson295189b2012-06-20 16:38:30 -07003113 if (ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_IGNORE_DTIM, pConfig->fIgnoreDtim,
3114 NULL, eANI_BOOLEAN_FALSE)==eHAL_STATUS_FAILURE)
3115 {
3116 fStatus = FALSE;
3117 hddLog(LOGE, "Could not pass on WNI_IGNORE_DTIM configuration to CCM\n" );
3118 }
3119
3120 if (ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_PS_ENABLE_HEART_BEAT, pConfig->fEnableFwHeartBeatMonitoring,
3121 NULL, eANI_BOOLEAN_FALSE)==eHAL_STATUS_FAILURE)
3122 {
3123 fStatus = FALSE;
3124 hddLog(LOGE, "Failure: Could not pass on WNI_CFG_PS_HEART_BEAT configuration info to CCM\n");
3125 }
3126
3127 if (ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_PS_ENABLE_BCN_FILTER, pConfig->fEnableFwBeaconFiltering,
3128 NULL, eANI_BOOLEAN_FALSE)==eHAL_STATUS_FAILURE)
3129 {
3130 fStatus = FALSE;
3131 hddLog(LOGE, "Failure: Could not pass on WNI_CFG_PS_BCN_FILTER configuration info to CCM\n");
3132 }
3133
Gopichand Nakkala98a98af2012-12-31 14:38:47 -08003134#ifdef FEATURE_WLAN_LFR
3135 if (pConfig->isFastRoamIniFeatureEnabled)
3136 {
3137 pConfig->fEnableFwRssiMonitoring = TRUE;
3138 }
3139#endif
3140#ifdef FEATURE_WLAN_CCX
3141 if (pConfig->isCcxIniFeatureEnabled)
3142 {
3143 pConfig->fEnableFwRssiMonitoring = TRUE;
3144 }
3145#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07003146 if (ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_PS_ENABLE_RSSI_MONITOR, pConfig->fEnableFwRssiMonitoring,
3147 NULL, eANI_BOOLEAN_FALSE)==eHAL_STATUS_FAILURE)
3148 {
3149 fStatus = FALSE;
3150 hddLog(LOGE, "Failure: Could not pass on WNI_CFG_PS_RSSI_MONITOR configuration info to CCM\n");
3151 }
3152
3153 if (ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_PS_DATA_INACTIVITY_TIMEOUT, pConfig->nDataInactivityTimeout,
3154 NULL, eANI_BOOLEAN_FALSE)==eHAL_STATUS_FAILURE)
3155 {
3156 fStatus = FALSE;
3157 hddLog(LOGE,"Failure: Could not pass on WNI_CFG_PS_DATA_INACTIVITY_TIMEOUT configuration info to CCM\n");
3158 }
3159
3160 if (ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_NTH_BEACON_FILTER, pConfig->nthBeaconFilter,
3161 NULL, eANI_BOOLEAN_FALSE)==eHAL_STATUS_FAILURE)
3162 {
3163 fStatus = FALSE;
3164 hddLog(LOGE,"Failure: Could not pass on WNI_CFG_NTH_BEACON_FILTER configuration info to CCM\n");
3165 }
3166
3167#ifdef WLAN_SOFTAP_FEATURE
3168 if (ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_ENABLE_LTE_COEX, pConfig->enableLTECoex,
3169 NULL, eANI_BOOLEAN_FALSE)==eHAL_STATUS_FAILURE)
3170 {
3171 fStatus = FALSE;
3172 hddLog(LOGE, "Could not pass on WNI_CFG_ENABLE_LTE_COEX to CCM\n");
3173 }
3174
3175 if (ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_ENABLE_PHY_AGC_LISTEN_MODE, pConfig->nEnableListenMode,
3176 NULL, eANI_BOOLEAN_FALSE)==eHAL_STATUS_FAILURE)
3177 {
3178 fStatus = FALSE;
3179 hddLog(LOGE, "Could not pass on WNI_CFG_ENABLE_PHY_AGC_LISTEN_MODE to CCM\n");
3180 }
3181
Jeff Johnson295189b2012-06-20 16:38:30 -07003182 if (ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_AP_KEEP_ALIVE_TIMEOUT, pConfig->apKeepAlivePeriod,
3183 NULL, eANI_BOOLEAN_FALSE)==eHAL_STATUS_FAILURE)
3184 {
3185 fStatus = FALSE;
3186 hddLog(LOGE, "Could not pass on WNI_CFG_AP_KEEP_ALIVE_TIMEOUT to CCM\n");
3187 }
3188
3189 if (ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_GO_KEEP_ALIVE_TIMEOUT, pConfig->goKeepAlivePeriod,
3190 NULL, eANI_BOOLEAN_FALSE)==eHAL_STATUS_FAILURE)
3191 {
3192 fStatus = FALSE;
3193 hddLog(LOGE, "Could not pass on WNI_CFG_GO_KEEP_ALIVE_TIMEOUT to CCM\n");
3194 }
3195#endif
3196
3197#if defined WLAN_FEATURE_VOWIFI
3198 if (ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_RRM_ENABLED, pConfig->fRrmEnable,
3199 NULL, eANI_BOOLEAN_FALSE)==eHAL_STATUS_FAILURE)
3200 {
3201 fStatus = FALSE;
3202 hddLog(LOGE,"Failure: Could not pass on WNI_CFG_RRM_ENABLE configuration info to CCM\n");
3203 }
3204
3205 if (ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_RRM_OPERATING_CHAN_MAX, pConfig->nInChanMeasMaxDuration,
3206 NULL, eANI_BOOLEAN_FALSE)==eHAL_STATUS_FAILURE)
3207 {
3208 fStatus = FALSE;
3209 hddLog(LOGE,"Failure: Could not pass on WNI_CFG_RRM_OPERATING_CHAN_MAX configuration info to CCM\n");
3210 }
3211
3212 if (ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_RRM_NON_OPERATING_CHAN_MAX, pConfig->nOutChanMeasMaxDuration,
3213 NULL, eANI_BOOLEAN_FALSE)==eHAL_STATUS_FAILURE)
3214 {
3215 fStatus = FALSE;
3216 hddLog(LOGE,"Failure: Could not pass on WNI_CFG_RRM_OUT_CHAN_MAX configuration info to CCM\n");
3217 }
3218
3219 if (ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_MCAST_BCAST_FILTER_SETTING, pConfig->mcastBcastFilterSetting,
3220 NULL, eANI_BOOLEAN_FALSE)==eHAL_STATUS_FAILURE)
3221#endif
3222
3223 if (ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_SINGLE_TID_RC, pConfig->bSingleTidRc,
3224 NULL, eANI_BOOLEAN_FALSE)==eHAL_STATUS_FAILURE)
3225 {
3226 fStatus = FALSE;
3227 hddLog(LOGE,"Failure: Could not pass on WNI_CFG_SINGLE_TID_RC configuration info to CCM\n");
3228 }
3229
3230 if (ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_TELE_BCN_WAKEUP_EN, pConfig->teleBcnWakeupEn,
3231 NULL, eANI_BOOLEAN_FALSE)==eHAL_STATUS_FAILURE)
3232 {
3233 fStatus = FALSE;
3234 hddLog(LOGE,"Failure: Could not pass on WNI_CFG_TELE_BCN_WAKEUP_EN configuration info to CCM\n" );
3235 }
3236
3237 if (ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_TELE_BCN_TRANS_LI, pConfig->nTeleBcnTransListenInterval,
3238 NULL, eANI_BOOLEAN_FALSE)==eHAL_STATUS_FAILURE)
3239 {
3240 fStatus = FALSE;
3241 hddLog(LOGE,"Failure: Could not pass on WNI_CFG_TELE_BCN_TRANS_LI configuration info to CCM\n" );
3242 }
3243
3244 if (ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_TELE_BCN_MAX_LI, pConfig->nTeleBcnMaxListenInterval,
3245 NULL, eANI_BOOLEAN_FALSE)==eHAL_STATUS_FAILURE)
3246 {
3247 fStatus = FALSE;
3248 hddLog(LOGE,"Failure: Could not pass on WNI_CFG_TELE_BCN_MAX_LI configuration info to CCM\n" );
3249 }
3250
3251 if (ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_TELE_BCN_TRANS_LI_IDLE_BCNS, pConfig->nTeleBcnTransLiNumIdleBeacons,
3252 NULL, eANI_BOOLEAN_FALSE)==eHAL_STATUS_FAILURE)
3253 {
3254 fStatus = FALSE;
3255 hddLog(LOGE,"Failure: Could not pass on WNI_CFG_TELE_BCN_TRANS_LI_IDLE_BCNS configuration info to CCM\n" );
3256 }
3257
3258 if (ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_TELE_BCN_MAX_LI_IDLE_BCNS, pConfig->nTeleBcnMaxLiNumIdleBeacons,
3259 NULL, eANI_BOOLEAN_FALSE)==eHAL_STATUS_FAILURE)
3260 {
3261 fStatus = FALSE;
3262 hddLog(LOGE,"Failure: Could not pass on WNI_CFG_TELE_BCN_MAX_LI_IDLE_BCNS configuration info to CCM\n" );
3263 }
3264
3265 if (ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_RF_SETTLING_TIME_CLK, pConfig->rfSettlingTimeUs,
3266 NULL, eANI_BOOLEAN_FALSE)==eHAL_STATUS_FAILURE)
3267 {
3268 fStatus = FALSE;
3269 hddLog(LOGE,"Failure: Could not pass on WNI_CFG_RF_SETTLING_TIME_CLK configuration info to CCM\n" );
3270 }
3271
3272 if (ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_INFRA_STA_KEEP_ALIVE_PERIOD, pConfig->infraStaKeepAlivePeriod,
3273 NULL, eANI_BOOLEAN_FALSE)==eHAL_STATUS_FAILURE)
3274 {
3275 fStatus = FALSE;
3276 hddLog(LOGE,"Failure: Could not pass on WNI_CFG_INFRA_STA_KEEP_ALIVE_PERIOD configuration info to CCM\n" );
3277 }
3278 if (ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_DYNAMIC_PS_POLL_VALUE, pConfig->dynamicPsPollValue,
3279 NULL, eANI_BOOLEAN_FALSE)==eHAL_STATUS_FAILURE)
3280 {
3281 fStatus = FALSE;
3282 hddLog(LOGE,"Failure: Could not pass on WNI_CFG_DYNAMIC_PS_POLL_VALUE configuration info to CCM\n" );
3283 }
3284
3285 if (ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_PS_NULLDATA_AP_RESP_TIMEOUT, pConfig->nNullDataApRespTimeout,
3286 NULL, eANI_BOOLEAN_FALSE)==eHAL_STATUS_FAILURE)
3287 {
3288 fStatus = FALSE;
3289 hddLog(LOGE,"Failure: Could not pass on WNI_CFG_PS_NULLDATA_DELAY_TIMEOUT configuration info to CCM\n" );
3290 }
3291
3292 if (ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_AP_DATA_AVAIL_POLL_PERIOD, pConfig->apDataAvailPollPeriodInMs,
3293 NULL, eANI_BOOLEAN_FALSE)==eHAL_STATUS_FAILURE)
3294 {
3295 fStatus = FALSE;
3296 hddLog(LOGE,"Failure: Could not pass on WNI_CFG_AP_DATA_AVAIL_POLL_PERIOD configuration info to CCM\n" );
3297 }
3298#ifdef FEATURE_WLAN_INTEGRATED_SOC
3299 if(ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_FRAGMENTATION_THRESHOLD, pConfig->FragmentationThreshold,
3300 NULL, eANI_BOOLEAN_FALSE) == eHAL_STATUS_FAILURE)
3301 {
3302 fStatus = FALSE;
3303 hddLog(LOGE,"Failure: Could not pass on WNI_CFG_FRAGMENTATION_THRESHOLD configuration info to CCM\n" );
3304 }
3305 if(ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_RTS_THRESHOLD, pConfig->RTSThreshold,
3306 NULL, eANI_BOOLEAN_FALSE) == eHAL_STATUS_FAILURE)
3307 {
3308 fStatus = FALSE;
3309 hddLog(LOGE,"Failure: Could not pass on WNI_CFG_RTS_THRESHOLD configuration info to CCM\n" );
3310 }
3311
3312 if(ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_11D_ENABLED, pConfig->Is11dSupportEnabled,
3313 NULL, eANI_BOOLEAN_FALSE) == eHAL_STATUS_FAILURE)
3314 {
3315 fStatus = FALSE;
3316 hddLog(LOGE,"Failure: Could not pass on WNI_CFG_11D_ENABLED configuration info to CCM\n" );
3317 }
3318 if(ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_HEART_BEAT_THRESHOLD, pConfig->HeartbeatThresh24,
3319 NULL, eANI_BOOLEAN_FALSE) == eHAL_STATUS_FAILURE)
3320 {
3321 fStatus = FALSE;
3322 hddLog(LOGE,"Failure: Could not pass on WNI_CFG_HEART_BEAT_THRESHOLD configuration info to CCM\n" );
3323 }
3324
3325#endif
3326 if (ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_AP_DATA_AVAIL_POLL_PERIOD, pConfig->apDataAvailPollPeriodInMs,
3327 NULL, eANI_BOOLEAN_FALSE)==eHAL_STATUS_FAILURE)
3328 {
3329 fStatus = FALSE;
3330 hddLog(LOGE,"Failure: Could not pass on WNI_CFG_AP_DATA_AVAIL_POLL_PERIOD configuration info to CCM\n" );
3331 }
3332
3333 if(ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_ENABLE_CLOSE_LOOP,
3334 pConfig->enableCloseLoop, NULL, eANI_BOOLEAN_FALSE)
3335 ==eHAL_STATUS_FAILURE)
3336 {
3337 fStatus = FALSE;
3338 hddLog(LOGE, "Could not pass on WNI_CFG_ENABLE_CLOSE_LOOP to CCM\n");
3339 }
3340
3341 if(ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_TX_PWR_CTRL_ENABLE,
3342 pConfig->enableAutomaticTxPowerControl, NULL, eANI_BOOLEAN_FALSE)
3343 ==eHAL_STATUS_FAILURE)
3344 {
3345 fStatus = FALSE;
3346 hddLog(LOGE, "Could not pass on WNI_CFG_TX_PWR_CTRL_ENABLE to CCM\n");
3347 }
3348
3349 if (ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_SHORT_GI_40MHZ,
3350 pConfig->ShortGI40MhzEnable, NULL, eANI_BOOLEAN_FALSE)==eHAL_STATUS_FAILURE)
3351 {
3352 fStatus = FALSE;
3353 hddLog(LOGE, "Could not pass on WNI_CFG_SHORT_GI_40MHZ to CCM\n");
3354 }
3355
Jeff Johnsond13512a2012-07-17 11:42:19 -07003356
3357 if (ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_ENABLE_MC_ADDR_LIST, pConfig->fEnableMCAddrList,
3358 NULL, eANI_BOOLEAN_FALSE)==eHAL_STATUS_FAILURE)
3359 {
3360 fStatus = FALSE;
3361 hddLog(LOGE, "Could not pass on WNI_CFG_ENABLE_MC_ADDR_LIST to CCM\n");
3362 }
3363
Jeff Johnsone7245742012-09-05 17:12:55 -07003364#ifdef WLAN_FEATURE_11AC
3365 /* Based on cfg.ini, update the Basic MCS set, RX/TX MCS map in the cfg.dat */
3366 /* valid values are 0(MCS0-7), 1(MCS0-8), 2(MCS0-9) */
3367 /* we update only the least significant 2 bits in the corresponding fields */
3368 if( (pConfig->dot11Mode == eHDD_DOT11_MODE_AUTO) ||
3369 (pConfig->dot11Mode == eHDD_DOT11_MODE_11ac_ONLY) ||
3370 (pConfig->dot11Mode == eHDD_DOT11_MODE_11ac) )
3371 {
3372 {
3373 tANI_U32 temp = 0;
3374
3375 ccmCfgGetInt(pHddCtx->hHal, WNI_CFG_VHT_BASIC_MCS_SET, &temp);
3376 temp = (temp & 0xFFFC) | pConfig->vhtRxMCS;
3377
3378 if(ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_VHT_BASIC_MCS_SET,
3379 temp, NULL, eANI_BOOLEAN_FALSE)
3380 ==eHAL_STATUS_FAILURE)
3381 {
3382 fStatus = FALSE;
3383 hddLog(LOGE, "Could not pass on WNI_CFG_VHT_BASIC_MCS_SET to CCM\n");
3384 }
3385
3386 ccmCfgGetInt(pHddCtx->hHal, WNI_CFG_VHT_RX_MCS_MAP, &temp);
3387 temp = (temp & 0xFFFC) | pConfig->vhtRxMCS;
3388
3389 if(ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_VHT_RX_MCS_MAP,
3390 temp, NULL, eANI_BOOLEAN_FALSE)
3391 ==eHAL_STATUS_FAILURE)
3392 {
3393 fStatus = FALSE;
3394 hddLog(LOGE, "Could not pass on WNI_CFG_VHT_RX_MCS_MAP to CCM\n");
3395 }
3396
3397 ccmCfgGetInt(pHddCtx->hHal, WNI_CFG_VHT_TX_MCS_MAP, &temp);
3398 temp = (temp & 0xFFFC) | pConfig->vhtTxMCS;
3399
3400 if(ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_VHT_TX_MCS_MAP,
3401 temp, NULL, eANI_BOOLEAN_FALSE)
3402 ==eHAL_STATUS_FAILURE)
3403 {
3404 fStatus = FALSE;
3405 hddLog(LOGE, "Could not pass on WNI_CFG_VHT_TX_MCS_MAP to CCM\n");
3406 }
3407 }
3408 }
3409#endif
3410
Madan Mohan Koyyalamudidd11eaf2012-11-02 16:04:21 -07003411 if (ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_NUM_BUFF_ADVERT,pConfig->numBuffAdvert,
3412 NULL, eANI_BOOLEAN_FALSE)==eHAL_STATUS_FAILURE)
3413 {
3414 fStatus = FALSE;
3415 hddLog(LOGE, "Could not pass on WNI_CFG_NUM_BUFF_ADVERT to CCM\n");
3416 }
3417
Pratik Bhalgat6bfd1422012-11-22 17:09:40 +05303418 if(ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_HT_RX_STBC,
3419 pConfig->enableRxSTBC, NULL, eANI_BOOLEAN_FALSE)
3420 ==eHAL_STATUS_FAILURE)
3421 {
3422 fStatus = FALSE;
3423 hddLog(LOGE, "Could not pass on WNI_CFG_HT_RX_STBC to CCM\n");
3424 }
3425
3426 ccmCfgGetInt(pHddCtx->hHal, WNI_CFG_HT_CAP_INFO, (tANI_U32 *)&htCapInfo);
3427 htCapInfo.rxSTBC = pConfig->enableRxSTBC;
3428
3429 if(ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_HT_CAP_INFO,
3430 *(tANI_U32 *)&htCapInfo, NULL, eANI_BOOLEAN_FALSE)
3431 ==eHAL_STATUS_FAILURE)
3432 {
3433 fStatus = FALSE;
3434 hddLog(LOGE, "Could not pass on WNI_CFG_HT_CAP_INFO to CCM\n");
3435 }
3436
3437 if(ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_VHT_RXSTBC,
3438 pConfig->enableRxSTBC, NULL, eANI_BOOLEAN_FALSE)
3439 ==eHAL_STATUS_FAILURE)
3440 {
3441 fStatus = FALSE;
3442 hddLog(LOGE, "Could not pass on WNI_CFG_VHT_RXSTBC to CCM\n");
3443 }
Gopichand Nakkala976e3252013-01-03 15:45:56 -08003444
3445#ifdef WLAN_SOFTAP_VSTA_FEATURE
3446 if(pConfig->fEnableVSTASupport)
3447 {
3448 ccmCfgGetInt(pHddCtx->hHal, WNI_CFG_ASSOC_STA_LIMIT, &val);
3449 if( val <= WNI_CFG_ASSOC_STA_LIMIT_STADEF)
3450 val = WNI_CFG_ASSOC_STA_LIMIT_STAMAX;
3451 }
3452 else
3453 {
3454 val = WNI_CFG_ASSOC_STA_LIMIT_STADEF;
3455 }
3456 if(ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_ASSOC_STA_LIMIT, val,
3457 NULL, eANI_BOOLEAN_FALSE) == eHAL_STATUS_FAILURE)
3458 {
3459 fStatus = FALSE;
3460 hddLog(LOGE,"Failure: Could not pass on WNI_CFG_ASSOC_STA_LIMIT configuration info to CCM\n" );
3461 }
3462#endif
Madan Mohan Koyyalamudi0d40e662012-12-07 14:24:14 -08003463 if(ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_ENABLE_LPWR_IMG_TRANSITION,
3464 pConfig->enableLpwrImgTransition, NULL, eANI_BOOLEAN_FALSE)
3465 ==eHAL_STATUS_FAILURE)
3466 {
3467 fStatus = FALSE;
3468 hddLog(LOGE, "Could not pass on WNI_CFG_ENABLE_LPWR_IMG_TRANSITION to CCM\n");
3469 }
Pratik Bhalgat6bfd1422012-11-22 17:09:40 +05303470
Madan Mohan Koyyalamudi01cba042013-01-10 21:56:05 -08003471 if (ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_ENABLE_MCC_ADAPTIVE_SCHED, pConfig->enableMCCAdaptiveScheduler,
3472 NULL, eANI_BOOLEAN_FALSE)==eHAL_STATUS_FAILURE)
3473 {
3474 fStatus = FALSE;
3475 hddLog(LOGE, "Could not pass on WNI_CFG_ENABLE_MCC_ADAPTIVE_SCHED to CCM\n");
3476 }
Leela V Kiran Kumar Reddy Chiralab1f7d342013-02-11 00:27:02 -08003477 if (ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_DISABLE_LDPC_WITH_TXBF_AP, pConfig->disableLDPCWithTxbfAP,
3478 NULL, eANI_BOOLEAN_FALSE)==eHAL_STATUS_FAILURE)
3479 {
3480 fStatus = FALSE;
3481 hddLog(LOGE, "Could not pass on WNI_CFG_DISABLE_LDPC_WITH_TXBF_AP to CCM\n");
3482 }
Jeff Johnson295189b2012-06-20 16:38:30 -07003483 return fStatus;
3484}
3485
3486
3487/**---------------------------------------------------------------------------
3488
3489 \brief hdd_init_set_sme_config() -
3490
3491 This function initializes the sme configuration parameters
3492
3493 \param - pHddCtx - Pointer to the HDD Adapter.
3494
3495 \return - 0 for success, non zero for failure
3496
3497 --------------------------------------------------------------------------*/
3498
3499VOS_STATUS hdd_set_sme_config( hdd_context_t *pHddCtx )
3500{
3501 VOS_STATUS status = VOS_STATUS_SUCCESS;
3502 eHalStatus halStatus;
3503 tSmeConfigParams smeConfig;
3504
3505 hdd_config_t *pConfig = pHddCtx->cfg_ini;
3506
3507 vos_mem_zero( &smeConfig, sizeof( smeConfig ) );
3508
3509 VOS_TRACE( VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_HIGH,
3510 "%s bWmmIsEnabled=%d 802_11e_enabled=%d dot11Mode=%d\n", __func__,
3511 pConfig->WmmMode, pConfig->b80211eIsEnabled, pConfig->dot11Mode);
3512
3513 // Config params obtained from the registry
Madan Mohan Koyyalamudic3a240c2012-09-28 15:34:08 -07003514 if (is_crda_regulatory_entry_valid() == VOS_TRUE)
3515 sme_setRegInfo(pHddCtx->hHal, pConfig->crdaDefaultCountryCode);
Jeff Johnson295189b2012-06-20 16:38:30 -07003516 smeConfig.csrConfig.RTSThreshold = pConfig->RTSThreshold;
3517 smeConfig.csrConfig.FragmentationThreshold = pConfig->FragmentationThreshold;
3518 smeConfig.csrConfig.shortSlotTime = pConfig->ShortSlotTimeEnabled;
3519 smeConfig.csrConfig.Is11dSupportEnabled = pConfig->Is11dSupportEnabled;
3520 smeConfig.csrConfig.HeartbeatThresh24 = pConfig->HeartbeatThresh24;
3521
3522 smeConfig.csrConfig.phyMode = hdd_cfg_xlate_to_csr_phy_mode ( pConfig->dot11Mode );
3523
3524 smeConfig.csrConfig.channelBondingMode24GHz = pConfig->nChannelBondingMode24GHz;
3525 smeConfig.csrConfig.channelBondingMode5GHz = pConfig->nChannelBondingMode5GHz;
3526 smeConfig.csrConfig.TxRate = pConfig->TxRate;
3527 smeConfig.csrConfig.nScanResultAgeCount = pConfig->ScanResultAgeCount;
3528 smeConfig.csrConfig.scanAgeTimeNCNPS = pConfig->nScanAgeTimeNCNPS;
3529 smeConfig.csrConfig.scanAgeTimeNCPS = pConfig->nScanAgeTimeNCPS;
3530 smeConfig.csrConfig.scanAgeTimeCNPS = pConfig->nScanAgeTimeCNPS;
3531 smeConfig.csrConfig.scanAgeTimeCPS = pConfig->nScanAgeTimeCPS;
3532 smeConfig.csrConfig.AdHocChannel24 = pConfig->OperatingChannel;
3533 smeConfig.csrConfig.fEnforce11dChannels = pConfig->fEnforce11dChannels;
3534 smeConfig.csrConfig.fSupplicantCountryCodeHasPriority = pConfig->fSupplicantCountryCodeHasPriority;
3535 smeConfig.csrConfig.fEnforceCountryCodeMatch = pConfig->fEnforceCountryCodeMatch;
3536 smeConfig.csrConfig.fEnforceDefaultDomain = pConfig->fEnforceDefaultDomain;
3537 smeConfig.csrConfig.bCatRssiOffset = pConfig->nRssiCatGap;
3538 smeConfig.csrConfig.vccRssiThreshold = pConfig->nVccRssiTrigger;
3539 smeConfig.csrConfig.vccUlMacLossThreshold = pConfig->nVccUlMacLossThreshold;
3540 smeConfig.csrConfig.nRoamingTime = pConfig->nRoamingTime;
3541 smeConfig.csrConfig.IsIdleScanEnabled = pConfig->nEnableIdleScan;
3542 smeConfig.csrConfig.nActiveMaxChnTime = pConfig->nActiveMaxChnTime;
3543 smeConfig.csrConfig.nActiveMinChnTime = pConfig->nActiveMinChnTime;
3544 smeConfig.csrConfig.nPassiveMaxChnTime = pConfig->nPassiveMaxChnTime;
3545 smeConfig.csrConfig.nPassiveMinChnTime = pConfig->nPassiveMinChnTime;
Madan Mohan Koyyalamudi4ff9cd62012-10-30 17:48:57 -07003546#ifdef WLAN_AP_STA_CONCURRENCY
3547 smeConfig.csrConfig.nActiveMaxChnTimeConc = pConfig->nActiveMaxChnTimeConc;
3548 smeConfig.csrConfig.nActiveMinChnTimeConc = pConfig->nActiveMinChnTimeConc;
3549 smeConfig.csrConfig.nPassiveMaxChnTimeConc = pConfig->nPassiveMaxChnTimeConc;
3550 smeConfig.csrConfig.nPassiveMinChnTimeConc = pConfig->nPassiveMinChnTimeConc;
3551 smeConfig.csrConfig.nRestTimeConc = pConfig->nRestTimeConc;
Vinay Malekal05fdc812012-12-17 13:04:30 -08003552 smeConfig.csrConfig.nNumChanCombinedConc = pConfig->nNumChanCombinedConc;
Madan Mohan Koyyalamudi4ff9cd62012-10-30 17:48:57 -07003553#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07003554 smeConfig.csrConfig.Is11eSupportEnabled = pConfig->b80211eIsEnabled;
3555 smeConfig.csrConfig.WMMSupportMode = pConfig->WmmMode;
3556
3557#if defined WLAN_FEATURE_VOWIFI
3558 smeConfig.rrmConfig.rrmEnabled = pConfig->fRrmEnable;
3559 smeConfig.rrmConfig.maxRandnInterval = pConfig->nRrmRandnIntvl;
3560#endif
3561 //Remaining config params not obtained from registry
3562 // On RF EVB beacon using channel 1.
Jeff Johnsone7245742012-09-05 17:12:55 -07003563#ifdef WLAN_FEATURE_11AC
3564 smeConfig.csrConfig.nVhtChannelWidth = pConfig->vhtChannelWidth;
Shailender Karmuchi08f87c22013-01-17 12:51:24 -08003565 smeConfig.csrConfig.enableTxBF = pConfig->enableTxBF;
Shailender Karmuchicc3fe442013-02-16 18:18:33 -08003566 smeConfig.csrConfig.txBFCsnValue = pConfig->txBFCsnValue;
Jeff Johnsone7245742012-09-05 17:12:55 -07003567#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07003568 smeConfig.csrConfig.AdHocChannel5G = 44;
3569 smeConfig.csrConfig.ProprietaryRatesEnabled = 0;
3570 smeConfig.csrConfig.HeartbeatThresh50 = 40;
Jeff Johnson295189b2012-06-20 16:38:30 -07003571 smeConfig.csrConfig.bandCapability = pConfig->nBandCapability;
Madan Mohan Koyyalamudi8db1c942013-01-10 15:24:29 -08003572 if (pConfig->nBandCapability == eCSR_BAND_24)
3573 {
3574 smeConfig.csrConfig.Is11hSupportEnabled = 0;
3575 } else {
3576 smeConfig.csrConfig.Is11hSupportEnabled = pConfig->Is11hSupportEnabled;
3577 }
Jeff Johnson295189b2012-06-20 16:38:30 -07003578 smeConfig.csrConfig.cbChoice = 0;
3579 smeConfig.csrConfig.bgScanInterval = 0;
3580 smeConfig.csrConfig.eBand = pConfig->nBandCapability;
3581 smeConfig.csrConfig.nTxPowerCap = pConfig->nTxPowerCap;
3582 smeConfig.csrConfig.fEnableBypass11d = pConfig->enableBypass11d;
3583 smeConfig.csrConfig.fEnableDFSChnlScan = pConfig->enableDFSChnlScan;
Madan Mohan Koyyalamudi3f65e312012-11-06 15:31:12 -08003584 smeConfig.csrConfig.fIgnore_chan165 = pConfig->ignore_chan165;
Madan Mohan Koyyalamudid5026072012-11-30 14:56:21 -08003585#if defined (WLAN_FEATURE_VOWIFI_11R) || defined (FEATURE_WLAN_CCX) || defined(FEATURE_WLAN_LFR)
3586 smeConfig.csrConfig.nRoamPrefer5GHz = pConfig->nRoamPrefer5GHz;
3587#endif
Jeff Johnsone7245742012-09-05 17:12:55 -07003588 smeConfig.csrConfig.fFirstScanOnly2GChnl = pConfig->enableFirstScan2GOnly;
3589
Jeff Johnson295189b2012-06-20 16:38:30 -07003590 //FIXME 11d config is hardcoded
3591#ifdef WLAN_SOFTAP_FEATURE
3592 if ( VOS_STA_SAP_MODE != hdd_get_conparam()){
3593#endif
3594 smeConfig.csrConfig.Csr11dinfo.Channels.numChannels = 0;
3595
3596 //if there is a requirement that HDD will control the default channel list &
3597 //country code (say from .ini file) we need to add some logic here. Otherwise
3598 //the default 11d info should come from NV as per our current implementation
3599
3600#ifdef WLAN_SOFTAP_FEATURE
3601 }
3602 else{
3603
3604 VOS_TRACE( VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR,
3605 "AP country Code %s", pConfig->apCntryCode);
3606
3607 if (memcmp(pConfig->apCntryCode, CFG_AP_COUNTRY_CODE_DEFAULT, 3) != 0)
3608 sme_setRegInfo(pHddCtx->hHal, pConfig->apCntryCode);
3609 sme_set11dinfo(pHddCtx->hHal, &smeConfig);
3610 }
3611#endif
3612 hdd_set_power_save_config(pHddCtx, &smeConfig);
3613 hdd_set_btc_config(pHddCtx);
3614
3615#ifdef WLAN_FEATURE_VOWIFI_11R
3616 smeConfig.csrConfig.csr11rConfig.IsFTResourceReqSupported = pConfig->fFTResourceReqSupported;
3617#endif
Jeff Johnson04dd8a82012-06-29 20:41:40 -07003618#ifdef FEATURE_WLAN_LFR
3619 smeConfig.csrConfig.isFastRoamIniFeatureEnabled = pConfig->isFastRoamIniFeatureEnabled;
Gopichand Nakkala98a98af2012-12-31 14:38:47 -08003620 if( pConfig->isFastRoamIniFeatureEnabled )
3621 {
3622 pConfig->isFastTransitionEnabled = TRUE;
3623 }
Jeff Johnson04dd8a82012-06-29 20:41:40 -07003624#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07003625#ifdef FEATURE_WLAN_CCX
3626 smeConfig.csrConfig.isCcxIniFeatureEnabled = pConfig->isCcxIniFeatureEnabled;
Gopichand Nakkala98a98af2012-12-31 14:38:47 -08003627 if( pConfig->isCcxIniFeatureEnabled )
3628 {
3629 pConfig->isFastTransitionEnabled = TRUE;
3630 }
Jeff Johnson295189b2012-06-20 16:38:30 -07003631#endif
Jeff Johnson04dd8a82012-06-29 20:41:40 -07003632#if defined (WLAN_FEATURE_VOWIFI_11R) || defined (FEATURE_WLAN_CCX) || defined(FEATURE_WLAN_LFR)
Jeff Johnson295189b2012-06-20 16:38:30 -07003633 smeConfig.csrConfig.isFastTransitionEnabled = pConfig->isFastTransitionEnabled;
Jeff Johnson43971f52012-07-17 12:26:56 -07003634 smeConfig.csrConfig.RoamRssiDiff = pConfig->RoamRssiDiff;
Madan Mohan Koyyalamudi62b55b02012-12-03 16:45:39 -08003635 smeConfig.csrConfig.nImmediateRoamRssiDiff = pConfig->nImmediateRoamRssiDiff;
Jeff Johnson295189b2012-06-20 16:38:30 -07003636#endif
3637
3638#ifdef WLAN_FEATURE_NEIGHBOR_ROAMING
3639 smeConfig.csrConfig.neighborRoamConfig.nNeighborReassocRssiThreshold = pConfig->nNeighborReassocRssiThreshold;
3640 smeConfig.csrConfig.neighborRoamConfig.nNeighborLookupRssiThreshold = pConfig->nNeighborLookupRssiThreshold;
3641 smeConfig.csrConfig.neighborRoamConfig.nNeighborScanMaxChanTime = pConfig->nNeighborScanMaxChanTime;
3642 smeConfig.csrConfig.neighborRoamConfig.nNeighborScanMinChanTime = pConfig->nNeighborScanMinChanTime;
3643 smeConfig.csrConfig.neighborRoamConfig.nNeighborScanTimerPeriod = pConfig->nNeighborScanPeriod;
3644 smeConfig.csrConfig.neighborRoamConfig.nMaxNeighborRetries = pConfig->nMaxNeighborReqTries;
3645 smeConfig.csrConfig.neighborRoamConfig.nNeighborResultsRefreshPeriod = pConfig->nNeighborResultsRefreshPeriod;
3646 hdd_string_to_u8_array( pConfig->neighborScanChanList,
3647 smeConfig.csrConfig.neighborRoamConfig.neighborScanChanList.channelList,
3648 &smeConfig.csrConfig.neighborRoamConfig.neighborScanChanList.numChannels,
3649 WNI_CFG_VALID_CHANNEL_LIST_LEN );
3650#endif
3651
3652 smeConfig.csrConfig.addTSWhenACMIsOff = pConfig->AddTSWhenACMIsOff;
3653 smeConfig.csrConfig.fValidateList = pConfig->fValidateScanList;
3654
3655 //Enable/Disable MCC
3656 smeConfig.csrConfig.fEnableMCCMode = pConfig->enableMCC;
Mohit Khanna7ed53f02012-09-11 17:52:10 -07003657 smeConfig.csrConfig.fAllowMCCGODiffBI = pConfig->allowMCCGODiffBI;
Jeff Johnson295189b2012-06-20 16:38:30 -07003658
Sandeep Puligilla2b6dc632012-12-17 14:44:16 -08003659 //Scan Results Aging Time out value
3660 smeConfig.csrConfig.scanCfgAgingTime = pConfig->scanAgingTimeout;
3661
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08003662 smeConfig.csrConfig.enableTxLdpc = pConfig->enableTxLdpc;
3663
Jeff Johnson295189b2012-06-20 16:38:30 -07003664 halStatus = sme_UpdateConfig( pHddCtx->hHal, &smeConfig);
3665 if ( !HAL_STATUS_SUCCESS( halStatus ) )
3666 {
3667 status = VOS_STATUS_E_FAILURE;
3668 }
3669
3670
3671 return status;
3672}
3673
3674
3675/**---------------------------------------------------------------------------
3676
3677 \brief hdd_execute_config_command() -
3678
3679 This function executes an arbitrary configuration set command
3680
3681 \param - pHddCtx - Pointer to the HDD Adapter.
3682 \parmm - command - a configuration command of the form:
3683 <name>=<value>
3684
3685 \return - 0 for success, non zero for failure
3686
3687 --------------------------------------------------------------------------*/
3688
3689VOS_STATUS hdd_execute_config_command(hdd_context_t *pHddCtx, char *command)
3690{
3691 size_t tableSize = sizeof(g_registry_table)/sizeof(g_registry_table[0]);
3692 REG_TABLE_ENTRY *pRegEntry;
3693 char *clone;
3694 char *pCmd;
3695 void *pField;
3696 char *name;
3697 char *value_str;
3698 v_U32_t value;
3699 v_S31_t svalue;
3700 size_t len_value_str;
3701 unsigned int idx;
3702 unsigned int i;
3703 VOS_STATUS vstatus;
Madan Mohan Koyyalamudid8ac8662012-11-06 19:04:56 -08003704 int rv;
Jeff Johnson295189b2012-06-20 16:38:30 -07003705
3706 // assume failure until proven otherwise
3707 vstatus = VOS_STATUS_E_FAILURE;
3708
3709 // clone the command so that we can manipulate it
3710 clone = kstrdup(command, GFP_ATOMIC);
3711 if (NULL == clone)
3712 {
3713 hddLog(LOGE, "%s: memory allocation failure, unable to process [%s]",
Madan Mohan Koyyalamudi87054ba2012-11-02 13:24:12 -07003714 __func__, command);
Jeff Johnson295189b2012-06-20 16:38:30 -07003715 return vstatus;
3716 }
3717
3718 // 'clone' will point to the beginning of the string so it can be freed
3719 // 'pCmd' will be used to walk/parse the command
3720 pCmd = clone;
3721
3722 // get rid of leading/trailing whitespace
3723 pCmd = i_trim(pCmd);
3724 if ('\0' == *pCmd)
3725 {
3726 // only whitespace
3727 hddLog(LOGE, "%s: invalid command, only whitespace:[%s]",
Madan Mohan Koyyalamudi87054ba2012-11-02 13:24:12 -07003728 __func__, command);
Jeff Johnson295189b2012-06-20 16:38:30 -07003729 goto done;
3730 }
3731
3732 // parse the <name> = <value>
3733 name = pCmd;
3734 while (('=' != *pCmd) && ('\0' != *pCmd))
3735 {
3736 pCmd++;
3737 }
3738 if ('\0' == *pCmd)
3739 {
3740 // did not find '='
3741 hddLog(LOGE, "%s: invalid command, no '=':[%s]",
Madan Mohan Koyyalamudi87054ba2012-11-02 13:24:12 -07003742 __func__, command);
Jeff Johnson295189b2012-06-20 16:38:30 -07003743 goto done;
3744 }
3745
3746 // replace '=' with NUL to terminate the <name>
3747 *pCmd++ = '\0';
3748 name = i_trim(name);
3749 if ('\0' == *name)
3750 {
3751 // did not find a name
3752 hddLog(LOGE, "%s: invalid command, no <name>:[%s]",
Madan Mohan Koyyalamudi87054ba2012-11-02 13:24:12 -07003753 __func__, command);
Jeff Johnson295189b2012-06-20 16:38:30 -07003754 goto done;
3755 }
3756
3757 value_str = i_trim(pCmd);
3758 if ('\0' == *value_str)
3759 {
3760 // did not find a value
3761 hddLog(LOGE, "%s: invalid command, no <value>:[%s]",
Madan Mohan Koyyalamudi87054ba2012-11-02 13:24:12 -07003762 __func__, command);
Jeff Johnson295189b2012-06-20 16:38:30 -07003763 goto done;
3764 }
3765
3766 // lookup the configuration item
3767 for (idx = 0; idx < tableSize; idx++)
3768 {
3769 if (0 == strcmp(name, g_registry_table[idx].RegName))
3770 {
3771 // found a match
3772 break;
3773 }
3774 }
3775 if (tableSize == idx)
3776 {
3777 // did not match the name
3778 hddLog(LOGE, "%s: invalid command, unknown configuration item:[%s]",
Madan Mohan Koyyalamudi87054ba2012-11-02 13:24:12 -07003779 __func__, command);
Jeff Johnson295189b2012-06-20 16:38:30 -07003780 goto done;
3781 }
3782
3783 pRegEntry = &g_registry_table[idx];
3784 if (!(pRegEntry->Flags & VAR_FLAGS_DYNAMIC_CFG))
3785 {
3786 // does not support dynamic configuration
3787 hddLog(LOGE, "%s: invalid command, %s does not support "
Madan Mohan Koyyalamudi87054ba2012-11-02 13:24:12 -07003788 "dynamic configuration", __func__, name);
Jeff Johnson295189b2012-06-20 16:38:30 -07003789 goto done;
3790 }
3791
3792 pField = ((v_U8_t *)pHddCtx->cfg_ini) + pRegEntry->VarOffset;
3793
3794 switch (pRegEntry->RegType)
3795 {
3796 case WLAN_PARAM_Integer:
Madan Mohan Koyyalamudid8ac8662012-11-06 19:04:56 -08003797 rv = kstrtoul(value_str, 10, &value);
3798 if (rv < 0)
3799 goto done;
Jeff Johnson295189b2012-06-20 16:38:30 -07003800 if (value < pRegEntry->VarMin)
3801 {
3802 // out of range
3803 hddLog(LOGE, "%s: invalid command, value %u < min value %u",
Madan Mohan Koyyalamudi87054ba2012-11-02 13:24:12 -07003804 __func__, value, pRegEntry->VarMin);
Jeff Johnson295189b2012-06-20 16:38:30 -07003805 goto done;
3806 }
3807 if (value > pRegEntry->VarMax)
3808 {
3809 // out of range
3810 hddLog(LOGE, "%s: invalid command, value %u > max value %u",
Madan Mohan Koyyalamudi87054ba2012-11-02 13:24:12 -07003811 __func__, value, pRegEntry->VarMax);
Jeff Johnson295189b2012-06-20 16:38:30 -07003812 goto done;
3813 }
3814 memcpy(pField, &value, pRegEntry->VarSize);
3815 break;
3816
3817 case WLAN_PARAM_HexInteger:
Madan Mohan Koyyalamudid8ac8662012-11-06 19:04:56 -08003818 rv = kstrtoul(value_str, 16, &value);
3819 if (rv < 0)
3820 goto done;
Jeff Johnson295189b2012-06-20 16:38:30 -07003821 if (value < pRegEntry->VarMin)
3822 {
3823 // out of range
3824 hddLog(LOGE, "%s: invalid command, value %x < min value %x",
Madan Mohan Koyyalamudi87054ba2012-11-02 13:24:12 -07003825 __func__, value, pRegEntry->VarMin);
Jeff Johnson295189b2012-06-20 16:38:30 -07003826 goto done;
3827 }
3828 if (value > pRegEntry->VarMax)
3829 {
3830 // out of range
3831 hddLog(LOGE, "%s: invalid command, value %x > max value %x",
Madan Mohan Koyyalamudi87054ba2012-11-02 13:24:12 -07003832 __func__, value, pRegEntry->VarMax);
Jeff Johnson295189b2012-06-20 16:38:30 -07003833 goto done;
3834 }
3835 memcpy(pField, &value, pRegEntry->VarSize);
3836 break;
3837
3838 case WLAN_PARAM_SignedInteger:
Madan Mohan Koyyalamudid8ac8662012-11-06 19:04:56 -08003839 rv = kstrtol(value_str, 10, &svalue);
3840 if (rv < 0)
3841 goto done;
Jeff Johnson295189b2012-06-20 16:38:30 -07003842 if (svalue < (v_S31_t)pRegEntry->VarMin)
3843 {
3844 // out of range
3845 hddLog(LOGE, "%s: invalid command, value %d < min value %d",
Madan Mohan Koyyalamudi87054ba2012-11-02 13:24:12 -07003846 __func__, svalue, (int)pRegEntry->VarMin);
Jeff Johnson295189b2012-06-20 16:38:30 -07003847 goto done;
3848 }
3849 if (svalue > (v_S31_t)pRegEntry->VarMax)
3850 {
3851 // out of range
3852 hddLog(LOGE, "%s: invalid command, value %d > max value %d",
Madan Mohan Koyyalamudi87054ba2012-11-02 13:24:12 -07003853 __func__, svalue, (int)pRegEntry->VarMax);
Jeff Johnson295189b2012-06-20 16:38:30 -07003854 goto done;
3855 }
3856 memcpy(pField, &svalue, pRegEntry->VarSize);
3857 break;
3858
3859 case WLAN_PARAM_String:
3860 len_value_str = strlen(value_str);
3861 if (len_value_str > (pRegEntry->VarSize - 1))
3862 {
3863 // too big
3864 hddLog(LOGE,
3865 "%s: invalid command, string [%s] length "
3866 "%u exceeds maximum length %u",
Madan Mohan Koyyalamudi87054ba2012-11-02 13:24:12 -07003867 __func__, value_str,
Jeff Johnson295189b2012-06-20 16:38:30 -07003868 len_value_str, (pRegEntry->VarSize - 1));
3869 goto done;
3870 }
3871 // copy string plus NUL
3872 memcpy(pField, value_str, (len_value_str + 1));
3873 break;
3874
3875 case WLAN_PARAM_MacAddr:
3876 len_value_str = strlen(value_str);
3877 if (len_value_str != (VOS_MAC_ADDR_SIZE * 2))
3878 {
3879 // out of range
3880 hddLog(LOGE,
3881 "%s: invalid command, MAC address [%s] length "
3882 "%u is not expected length %u",
Madan Mohan Koyyalamudi87054ba2012-11-02 13:24:12 -07003883 __func__, value_str,
Jeff Johnson295189b2012-06-20 16:38:30 -07003884 len_value_str, (VOS_MAC_ADDR_SIZE * 2));
3885 goto done;
3886 }
3887 //parse the string and store it in the byte array
3888 for (i = 0; i < VOS_MAC_ADDR_SIZE; i++)
3889 {
3890 ((char*)pField)[i] = (char)
3891 ((parseHexDigit(value_str[(i * 2)]) * 16) +
3892 parseHexDigit(value_str[(i * 2) + 1]));
3893 }
3894 break;
3895
3896 default:
3897 goto done;
3898 }
3899
3900 // if we get here, we had a successful modification
3901 vstatus = VOS_STATUS_SUCCESS;
3902
3903 // config table has been modified, is there a notifier?
3904 if (NULL != pRegEntry->pfnDynamicNotify)
3905 {
3906 (pRegEntry->pfnDynamicNotify)(pHddCtx, pRegEntry->NotifyId);
3907 }
3908
3909 // note that this item was explicitly configured
3910 if (idx < MAX_CFG_INI_ITEMS)
3911 {
3912 set_bit(idx, (void *)&pHddCtx->cfg_ini->bExplicitCfg);
3913 }
3914 done:
3915 kfree(clone);
3916 return vstatus;
3917}