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