blob: ff5431ad57ca91f2eb50dd5354b4f1851ed4ab66 [file] [log] [blame]
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001/*
Anurag Chouhan7c01cc42016-12-16 21:33:43 +05302 * Copyright (c) 2012-2017 The Linux Foundation. All rights reserved.
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003 *
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
22/*
23 * This file was originally distributed by Qualcomm Atheros, Inc.
24 * under proprietary terms before Copyright ownership was assigned
25 * to the Linux Foundation.
26 */
27
28/**
29 * DOC: wlan_hdd_cfg.c
30 *
31 * WLAN Host Device Driver configuration interface implementation
32 */
33
34/* Include Files */
35
36#include <linux/firmware.h>
37#include <linux/string.h>
38#include <wlan_hdd_includes.h>
39#include <wlan_hdd_main.h>
40#include <wlan_hdd_assoc.h>
41#include <wlan_hdd_cfg.h>
42#include <linux/string.h>
Anurag Chouhan6d760662016-02-20 16:05:43 +053043#include <qdf_types.h>
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080044#include <csr_api.h>
45#include <wlan_hdd_misc.h>
46#include <wlan_hdd_napi.h>
Tushnim Bhattacharyya9e81b4c2017-02-15 17:11:14 -080047#include <cds_api.h>
Krishna Kumaar Natarajan4f1d7722017-03-03 21:12:51 -080048#include "wlan_hdd_he.h"
Tushnim Bhattacharyya9028cc72017-03-09 13:10:49 -080049#include <wlan_policy_mgr_api.h>
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080050
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080051static void
52cb_notify_set_roam_prefer5_g_hz(hdd_context_t *pHddCtx, unsigned long notifyId)
53{
54 sme_update_roam_prefer5_g_hz(pHddCtx->hHal,
55 pHddCtx->config->nRoamPrefer5GHz);
56}
57
58static void
59cb_notify_set_roam_rssi_diff(hdd_context_t *pHddCtx, unsigned long notifyId)
60{
61 sme_update_roam_rssi_diff(pHddCtx->hHal,
62 0, pHddCtx->config->RoamRssiDiff);
63}
64
65static void
66cb_notify_set_fast_transition_enabled(hdd_context_t *pHddCtx,
67 unsigned long notifyId)
68{
69 sme_update_fast_transition_enabled(pHddCtx->hHal,
70 pHddCtx->config->
71 isFastTransitionEnabled);
72}
73
74static void
75cb_notify_set_roam_intra_band(hdd_context_t *pHddCtx, unsigned long notifyId)
76{
77 sme_set_roam_intra_band(pHddCtx->hHal, pHddCtx->config->nRoamIntraBand);
78}
79
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -070080static void cb_notify_set_wes_mode(hdd_context_t *pHddCtx,
81 unsigned long notifyId)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080082{
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -070083 sme_update_wes_mode(pHddCtx->hHal,
84 pHddCtx->config->isWESModeEnabled, 0);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080085}
86
87static void
88cb_notify_set_roam_scan_n_probes(hdd_context_t *pHddCtx, unsigned long notifyId)
89{
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -070090 sme_update_roam_scan_n_probes(pHddCtx->hHal, 0,
91 pHddCtx->config->nProbes);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080092}
93
94static void
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -070095cb_notify_set_roam_scan_home_away_time(hdd_context_t *pHddCtx,
96 unsigned long notifyId)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080097{
98 sme_update_roam_scan_home_away_time(pHddCtx->hHal, 0,
99 pHddCtx->config->nRoamScanHomeAwayTime,
100 true);
101}
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800102
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800103static void
104notify_is_fast_roam_ini_feature_enabled(hdd_context_t *pHddCtx,
105 unsigned long notifyId)
106{
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800107 sme_update_is_fast_roam_ini_feature_enabled(pHddCtx->hHal, 0,
108 pHddCtx->config->
109 isFastRoamIniFeatureEnabled);
110}
111
112static void
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -0700113notify_is_mawc_ini_feature_enabled(hdd_context_t *pHddCtx,
114 unsigned long notifyId)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800115{
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800116 sme_update_is_mawc_ini_feature_enabled(pHddCtx->hHal,
117 pHddCtx->config->MAWCEnabled);
118}
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800119
120#ifdef FEATURE_WLAN_ESE
121static void
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -0700122cb_notify_set_ese_feature_enabled(hdd_context_t *pHddCtx,
123 unsigned long notifyId)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800124{
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800125 sme_update_is_ese_feature_enabled(pHddCtx->hHal, 0,
126 pHddCtx->config->isEseIniFeatureEnabled);
127}
128#endif
129
130static void
131cb_notify_set_fw_rssi_monitoring(hdd_context_t *pHddCtx, unsigned long notifyId)
132{
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800133 sme_update_config_fw_rssi_monitoring(pHddCtx->hHal,
134 pHddCtx->config->
135 fEnableFwRssiMonitoring);
136}
137
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800138static void cb_notify_set_opportunistic_scan_threshold_diff(hdd_context_t *pHddCtx,
139 unsigned long notifyId)
140{
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800141 sme_set_roam_opportunistic_scan_threshold_diff(pHddCtx->hHal, 0,
142 pHddCtx->config->
143 nOpportunisticThresholdDiff);
144}
145
146static void cb_notify_set_roam_rescan_rssi_diff(hdd_context_t *pHddCtx,
147 unsigned long notifyId)
148{
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800149 sme_set_roam_rescan_rssi_diff(pHddCtx->hHal,
150 0, pHddCtx->config->nRoamRescanRssiDiff);
151}
152
153static void
154cb_notify_set_neighbor_lookup_rssi_threshold(hdd_context_t *pHddCtx,
155 unsigned long notifyId)
156{
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800157 sme_set_neighbor_lookup_rssi_threshold(pHddCtx->hHal, 0,
158 pHddCtx->config->
159 nNeighborLookupRssiThreshold);
160}
161
162static void
163cb_notify_set_delay_before_vdev_stop(hdd_context_t *hdd_ctx,
164 unsigned long notify_id)
165{
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800166 sme_set_delay_before_vdev_stop(hdd_ctx->hHal, 0,
167 hdd_ctx->config->delay_before_vdev_stop);
168}
169
170static void
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -0700171cb_notify_set_neighbor_scan_period(hdd_context_t *pHddCtx,
172 unsigned long notifyId)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800173{
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800174 sme_set_neighbor_scan_period(pHddCtx->hHal, 0,
175 pHddCtx->config->nNeighborScanPeriod);
176}
177
Sridhar Selvaraj1b2330c2017-07-21 15:16:42 +0530178/*
179 * cb_notify_set_neighbor_scan_min_period() - configure min rest
180 * time during roaming scan
181 *
182 * @hdd_ctx: HDD context data structure
183 * @notify_id: Identifies 1 of the 4 parameters to be modified
184 *
185 * Picks up the value from hdd configuration and passes it to SME.
186 * Return: void
187 */
188static void
189cb_notify_set_neighbor_scan_min_period(hdd_context_t *pHddCtx,
190 unsigned long notifyId)
191{
192 sme_set_neighbor_scan_min_period(pHddCtx->hHal, 0,
193 pHddCtx->config->
194 neighbor_scan_min_period);
195}
196
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800197static void
198cb_notify_set_neighbor_results_refresh_period(hdd_context_t *pHddCtx,
199 unsigned long notifyId)
200{
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800201 sme_set_neighbor_scan_refresh_period(pHddCtx->hHal, 0,
202 pHddCtx->config->
203 nNeighborResultsRefreshPeriod);
204}
205
206static void
207cb_notify_set_empty_scan_refresh_period(hdd_context_t *pHddCtx,
208 unsigned long notifyId)
209{
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800210 sme_update_empty_scan_refresh_period(pHddCtx->hHal, 0,
211 pHddCtx->config->
212 nEmptyScanRefreshPeriod);
213}
214
215static void
216cb_notify_set_neighbor_scan_min_chan_time(hdd_context_t *pHddCtx,
217 unsigned long notifyId)
218{
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800219 sme_set_neighbor_scan_min_chan_time(pHddCtx->hHal,
220 pHddCtx->config->
221 nNeighborScanMinChanTime, 0);
222}
223
224static void
225cb_notify_set_neighbor_scan_max_chan_time(hdd_context_t *pHddCtx,
226 unsigned long notifyId)
227{
228 sme_set_neighbor_scan_max_chan_time(pHddCtx->hHal, 0,
229 pHddCtx->config->
230 nNeighborScanMaxChanTime);
231}
232
233static void cb_notify_set_roam_bmiss_first_bcnt(hdd_context_t *pHddCtx,
234 unsigned long notifyId)
235{
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800236 sme_set_roam_bmiss_first_bcnt(pHddCtx->hHal,
237 0, pHddCtx->config->nRoamBmissFirstBcnt);
238}
239
240static void cb_notify_set_roam_bmiss_final_bcnt(hdd_context_t *pHddCtx,
241 unsigned long notifyId)
242{
243 sme_set_roam_bmiss_final_bcnt(pHddCtx->hHal, 0,
244 pHddCtx->config->nRoamBmissFinalBcnt);
245}
246
247static void cb_notify_set_roam_beacon_rssi_weight(hdd_context_t *pHddCtx,
248 unsigned long notifyId)
249{
250 sme_set_roam_beacon_rssi_weight(pHddCtx->hHal, 0,
251 pHddCtx->config->nRoamBeaconRssiWeight);
252}
253
254static void
255cb_notify_set_dfs_scan_mode(hdd_context_t *pHddCtx, unsigned long notifyId)
256{
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800257 sme_update_dfs_scan_mode(pHddCtx->hHal, 0,
258 pHddCtx->config->allowDFSChannelRoam);
259}
260
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800261static void cb_notify_set_enable_ssr(hdd_context_t *pHddCtx,
262 unsigned long notifyId)
263{
264 sme_update_enable_ssr(pHddCtx->hHal, pHddCtx->config->enableSSR);
265}
266
267static void cb_notify_set_g_sap_preferred_chan_location(hdd_context_t *pHddCtx,
268 unsigned long notifyId)
269{
270 wlansap_set_dfs_preferred_channel_location(pHddCtx->hHal,
271 pHddCtx->config->
272 gSapPreferredChanLocation);
273}
274static void ch_notify_set_g_disable_dfs_japan_w53(hdd_context_t *pHddCtx,
275 unsigned long notifyId)
276{
277 wlansap_set_dfs_restrict_japan_w53(pHddCtx->hHal,
278 pHddCtx->config->
279 gDisableDfsJapanW53);
280}
281static void
282cb_notify_update_roam_scan_offload_enabled(hdd_context_t *pHddCtx,
283 unsigned long notifyId)
284{
285 sme_update_roam_scan_offload_enabled(pHddCtx->hHal,
286 pHddCtx->config->
287 isRoamOffloadScanEnabled);
288 if (0 == pHddCtx->config->isRoamOffloadScanEnabled) {
289 pHddCtx->config->bFastRoamInConIniFeatureEnabled = 0;
290 sme_update_enable_fast_roam_in_concurrency(pHddCtx->hHal,
291 pHddCtx->config->
292 bFastRoamInConIniFeatureEnabled);
293 }
294}
295
296static void
297cb_notify_set_enable_fast_roam_in_concurrency(hdd_context_t *pHddCtx,
298 unsigned long notifyId)
299{
300 sme_update_enable_fast_roam_in_concurrency(pHddCtx->hHal,
301 pHddCtx->config->
302 bFastRoamInConIniFeatureEnabled);
303}
304
305/**
306 * cb_notify_set_roam_scan_hi_rssi_scan_params() - configure hi rssi
307 * scan params from cfg to sme.
308 * @hdd_ctx: HDD context data structure
309 * @notify_id: Identifies 1 of the 4 parameters to be modified
310 *
311 * Picks up the value from hdd configuration and passes it to SME.
312 * Return: void
313 */
314
315static void
316cb_notify_set_roam_scan_hi_rssi_scan_params(hdd_context_t *hdd_ctx,
317 unsigned long notify_id)
318{
319 int32_t val;
320
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -0700321 if (wlan_hdd_validate_context(hdd_ctx))
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800322 return;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800323
324 switch (notify_id) {
325 case eCSR_HI_RSSI_SCAN_MAXCOUNT_ID:
326 val = hdd_ctx->config->nhi_rssi_scan_max_count;
327 break;
328
329 case eCSR_HI_RSSI_SCAN_RSSI_DELTA_ID:
330 val = hdd_ctx->config->nhi_rssi_scan_rssi_delta;
331 break;
332
333 case eCSR_HI_RSSI_SCAN_DELAY_ID:
334 val = hdd_ctx->config->nhi_rssi_scan_delay;
335 break;
336
337 case eCSR_HI_RSSI_SCAN_RSSI_UB_ID:
338 val = hdd_ctx->config->nhi_rssi_scan_rssi_ub;
339 break;
340
341 default:
342 return;
343 }
344
345 sme_update_roam_scan_hi_rssi_scan_params(hdd_ctx->hHal, 0,
346 notify_id, val);
347}
348
349
Srinivas Girigowda2fb677c2017-03-25 15:35:34 -0700350struct reg_table_entry g_registry_table[] = {
Ashish Kumar Dhanotiya470af292017-05-31 20:46:00 +0530351 REG_VARIABLE(CFG_ENABLE_CONNECTED_SCAN_NAME, WLAN_PARAM_Integer,
352 struct hdd_config, enable_connected_scan,
353 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
354 CFG_ENABLE_CONNECTED_SCAN_DEFAULT,
355 CFG_ENABLE_CONNECTED_SCAN_MIN,
356 CFG_ENABLE_CONNECTED_SCAN_MAX),
357
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800358 REG_VARIABLE(CFG_RTS_THRESHOLD_NAME, WLAN_PARAM_Integer,
359 struct hdd_config, RTSThreshold,
360 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
361 CFG_RTS_THRESHOLD_DEFAULT,
362 CFG_RTS_THRESHOLD_MIN,
363 CFG_RTS_THRESHOLD_MAX),
364
365 REG_VARIABLE(CFG_FRAG_THRESHOLD_NAME, WLAN_PARAM_Integer,
366 struct hdd_config, FragmentationThreshold,
367 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
368 CFG_FRAG_THRESHOLD_DEFAULT,
369 CFG_FRAG_THRESHOLD_MIN,
370 CFG_FRAG_THRESHOLD_MAX),
371
372 REG_VARIABLE(CFG_OPERATING_CHANNEL_NAME, WLAN_PARAM_Integer,
373 struct hdd_config, OperatingChannel,
374 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
375 CFG_OPERATING_CHANNEL_DEFAULT,
376 CFG_OPERATING_CHANNEL_MIN,
377 CFG_OPERATING_CHANNEL_MAX),
378
379 REG_VARIABLE(CFG_SHORT_SLOT_TIME_ENABLED_NAME, WLAN_PARAM_Integer,
380 struct hdd_config, ShortSlotTimeEnabled,
381 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
382 CFG_SHORT_SLOT_TIME_ENABLED_DEFAULT,
383 CFG_SHORT_SLOT_TIME_ENABLED_MIN,
384 CFG_SHORT_SLOT_TIME_ENABLED_MAX),
385
386 REG_VARIABLE(CFG_11D_SUPPORT_ENABLED_NAME, WLAN_PARAM_Integer,
387 struct hdd_config, Is11dSupportEnabled,
388 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
389 CFG_11D_SUPPORT_ENABLED_DEFAULT,
390 CFG_11D_SUPPORT_ENABLED_MIN,
391 CFG_11D_SUPPORT_ENABLED_MAX),
392
393 REG_VARIABLE(CFG_11H_SUPPORT_ENABLED_NAME, WLAN_PARAM_Integer,
394 struct hdd_config, Is11hSupportEnabled,
395 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
396 CFG_11H_SUPPORT_ENABLED_DEFAULT,
397 CFG_11H_SUPPORT_ENABLED_MIN,
398 CFG_11H_SUPPORT_ENABLED_MAX),
399
400 REG_VARIABLE(CFG_COUNTRY_CODE_PRIORITY_NAME, WLAN_PARAM_Integer,
401 struct hdd_config, fSupplicantCountryCodeHasPriority,
402 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
403 CFG_COUNTRY_CODE_PRIORITY_DEFAULT,
404 CFG_COUNTRY_CODE_PRIORITY_MIN,
405 CFG_COUNTRY_CODE_PRIORITY_MAX),
406
407 REG_VARIABLE(CFG_HEARTBEAT_THRESH_24_NAME, WLAN_PARAM_Integer,
408 struct hdd_config, HeartbeatThresh24,
409 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
410 CFG_HEARTBEAT_THRESH_24_DEFAULT,
411 CFG_HEARTBEAT_THRESH_24_MIN,
412 CFG_HEARTBEAT_THRESH_24_MAX),
413
414 REG_VARIABLE_STRING(CFG_POWER_USAGE_NAME, WLAN_PARAM_String,
415 struct hdd_config, PowerUsageControl,
416 VAR_FLAGS_OPTIONAL,
417 (void *)CFG_POWER_USAGE_DEFAULT),
418
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800419 REG_VARIABLE(CFG_ENABLE_IMPS_NAME, WLAN_PARAM_Integer,
420 struct hdd_config, fIsImpsEnabled,
421 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
422 CFG_ENABLE_IMPS_DEFAULT,
423 CFG_ENABLE_IMPS_MIN,
424 CFG_ENABLE_IMPS_MAX),
425
426 REG_VARIABLE(CFG_ENABLE_PS_NAME, WLAN_PARAM_Integer,
427 struct hdd_config, is_ps_enabled,
428 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
429 CFG_ENABLE_PS_DEFAULT,
430 CFG_ENABLE_PS_MIN,
431 CFG_ENABLE_PS_MAX),
432
Kiran Kumar Lokere0ac679c2016-11-17 17:43:36 -0800433 REG_VARIABLE(CFG_AUTO_PS_ENABLE_TIMER_NAME, WLAN_PARAM_Integer,
434 struct hdd_config, auto_bmps_timer_val,
435 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
436 CFG_AUTO_PS_ENABLE_TIMER_DEFAULT,
437 CFG_AUTO_PS_ENABLE_TIMER_MIN,
438 CFG_AUTO_PS_ENABLE_TIMER_MAX),
439
Zhu Jianmin04392c42017-05-12 16:34:53 +0800440#ifdef WLAN_ICMP_DISABLE_PS
441 REG_VARIABLE(CFG_ICMP_DISABLE_PS_NAME, WLAN_PARAM_Integer,
442 struct hdd_config, icmp_disable_ps_val,
443 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
444 CFG_ICMP_DISABLE_PS_DEFAULT,
445 CFG_ICMP_DISABLE_PS_MIN,
446 CFG_ICMP_DISABLE_PS_MAX),
447#endif
448
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800449 REG_VARIABLE(CFG_BMPS_MINIMUM_LI_NAME, WLAN_PARAM_Integer,
450 struct hdd_config, nBmpsMinListenInterval,
451 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
452 CFG_BMPS_MINIMUM_LI_DEFAULT,
453 CFG_BMPS_MINIMUM_LI_MIN,
454 CFG_BMPS_MINIMUM_LI_MAX),
455
456 REG_VARIABLE(CFG_BMPS_MAXIMUM_LI_NAME, WLAN_PARAM_Integer,
457 struct hdd_config, nBmpsMaxListenInterval,
458 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
459 CFG_BMPS_MAXIMUM_LI_DEFAULT,
460 CFG_BMPS_MAXIMUM_LI_MIN,
461 CFG_BMPS_MAXIMUM_LI_MAX),
462
463 REG_VARIABLE(CFG_BMPS_MODERATE_LI_NAME, WLAN_PARAM_Integer,
464 struct hdd_config, nBmpsModListenInterval,
465 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
466 CFG_BMPS_MODERATE_LI_DEFAULT,
467 CFG_BMPS_MODERATE_LI_MIN,
468 CFG_BMPS_MODERATE_LI_MAX),
469
470 REG_VARIABLE(CFG_DOT11_MODE_NAME, WLAN_PARAM_Integer,
471 struct hdd_config, dot11Mode,
472 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
473 CFG_DOT11_MODE_DEFAULT,
474 CFG_DOT11_MODE_MIN,
475 CFG_DOT11_MODE_MAX),
476
477 REG_VARIABLE(CFG_CHANNEL_BONDING_MODE_24GHZ_NAME, WLAN_PARAM_Integer,
478 struct hdd_config, nChannelBondingMode24GHz,
479 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
480 CFG_CHANNEL_BONDING_MODE_DEFAULT,
481 CFG_CHANNEL_BONDING_MODE_MIN,
482 CFG_CHANNEL_BONDING_MODE_MAX),
483
484 REG_VARIABLE(CFG_CHANNEL_BONDING_MODE_5GHZ_NAME, WLAN_PARAM_Integer,
485 struct hdd_config, nChannelBondingMode5GHz,
486 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
487 CFG_CHANNEL_BONDING_MODE_DEFAULT,
488 CFG_CHANNEL_BONDING_MODE_MIN,
489 CFG_CHANNEL_BONDING_MODE_MAX),
490
491 REG_VARIABLE(CFG_MAX_RX_AMPDU_FACTOR_NAME, WLAN_PARAM_Integer,
492 struct hdd_config, MaxRxAmpduFactor,
493 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
494 CFG_MAX_RX_AMPDU_FACTOR_DEFAULT,
495 CFG_MAX_RX_AMPDU_FACTOR_MIN,
496 CFG_MAX_RX_AMPDU_FACTOR_MAX),
497
Krishna Kumaar Natarajan22b59a72015-11-23 18:54:58 -0800498 REG_VARIABLE(CFG_HT_MPDU_DENSITY_NAME, WLAN_PARAM_Integer,
499 struct hdd_config, ht_mpdu_density,
Jeff Johnson03294f12016-12-09 17:10:24 -0800500 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
Krishna Kumaar Natarajan22b59a72015-11-23 18:54:58 -0800501 CFG_HT_MPDU_DENSITY_DEFAULT,
502 CFG_HT_MPDU_DENSITY_MIN,
503 CFG_HT_MPDU_DENSITY_MAX),
504
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800505 REG_VARIABLE(CFG_FIXED_RATE_NAME, WLAN_PARAM_Integer,
506 struct hdd_config, TxRate,
507 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
508 CFG_FIXED_RATE_DEFAULT,
509 CFG_FIXED_RATE_MIN,
510 CFG_FIXED_RATE_MAX),
511
512 REG_VARIABLE(CFG_SHORT_GI_20MHZ_NAME, WLAN_PARAM_Integer,
513 struct hdd_config, ShortGI20MhzEnable,
514 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
515 CFG_SHORT_GI_20MHZ_DEFAULT,
516 CFG_SHORT_GI_20MHZ_MIN,
517 CFG_SHORT_GI_20MHZ_MAX),
518
519 REG_VARIABLE(CFG_SCAN_RESULT_AGE_COUNT_NAME, WLAN_PARAM_Integer,
520 struct hdd_config, ScanResultAgeCount,
521 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
522 CFG_SCAN_RESULT_AGE_COUNT_DEFAULT,
523 CFG_SCAN_RESULT_AGE_COUNT_MIN,
524 CFG_SCAN_RESULT_AGE_COUNT_MAX),
525
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800526 REG_VARIABLE(CFG_RSSI_CATEGORY_GAP_NAME, WLAN_PARAM_Integer,
527 struct hdd_config, nRssiCatGap,
528 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
529 CFG_RSSI_CATEGORY_GAP_DEFAULT,
530 CFG_RSSI_CATEGORY_GAP_MIN,
531 CFG_RSSI_CATEGORY_GAP_MAX),
532
533 REG_VARIABLE(CFG_SHORT_PREAMBLE_NAME, WLAN_PARAM_Integer,
534 struct hdd_config, fIsShortPreamble,
535 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
536 CFG_SHORT_PREAMBLE_DEFAULT,
537 CFG_SHORT_PREAMBLE_MIN,
538 CFG_SHORT_PREAMBLE_MAX),
539
540 REG_VARIABLE_STRING(CFG_IBSS_BSSID_NAME, WLAN_PARAM_MacAddr,
541 struct hdd_config, IbssBssid,
542 VAR_FLAGS_OPTIONAL,
543 (void *)CFG_IBSS_BSSID_DEFAULT),
544
545 REG_VARIABLE_STRING(CFG_INTF0_MAC_ADDR_NAME, WLAN_PARAM_MacAddr,
546 struct hdd_config, intfMacAddr[0],
547 VAR_FLAGS_OPTIONAL,
548 (void *)CFG_INTF0_MAC_ADDR_DEFAULT),
549
550 REG_VARIABLE_STRING(CFG_INTF1_MAC_ADDR_NAME, WLAN_PARAM_MacAddr,
551 struct hdd_config, intfMacAddr[1],
552 VAR_FLAGS_OPTIONAL,
553 (void *)CFG_INTF1_MAC_ADDR_DEFAULT),
554
555 REG_VARIABLE_STRING(CFG_INTF2_MAC_ADDR_NAME, WLAN_PARAM_MacAddr,
556 struct hdd_config, intfMacAddr[2],
557 VAR_FLAGS_OPTIONAL,
558 (void *)CFG_INTF2_MAC_ADDR_DEFAULT),
559
560 REG_VARIABLE_STRING(CFG_INTF3_MAC_ADDR_NAME, WLAN_PARAM_MacAddr,
561 struct hdd_config, intfMacAddr[3],
562 VAR_FLAGS_OPTIONAL,
563 (void *)CFG_INTF3_MAC_ADDR_DEFAULT),
564
565 REG_VARIABLE(CFG_AP_QOS_UAPSD_MODE_NAME, WLAN_PARAM_Integer,
566 struct hdd_config, apUapsdEnabled,
567 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
568 CFG_AP_QOS_UAPSD_MODE_DEFAULT,
569 CFG_AP_QOS_UAPSD_MODE_MIN,
570 CFG_AP_QOS_UAPSD_MODE_MAX),
571
572
573 REG_VARIABLE(CFG_AP_ENABLE_RANDOM_BSSID_NAME, WLAN_PARAM_Integer,
574 struct hdd_config, apRandomBssidEnabled,
575 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
576 CFG_AP_ENABLE_RANDOM_BSSID_DEFAULT,
577 CFG_AP_ENABLE_RANDOM_BSSID_MIN,
578 CFG_AP_ENABLE_RANDOM_BSSID_MAX),
579
580 REG_VARIABLE(CFG_AP_ENABLE_PROTECTION_MODE_NAME, WLAN_PARAM_Integer,
581 struct hdd_config, apProtEnabled,
582 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
583 CFG_AP_ENABLE_PROTECTION_MODE_DEFAULT,
584 CFG_AP_ENABLE_PROTECTION_MODE_MIN,
585 CFG_AP_ENABLE_PROTECTION_MODE_MAX),
586
587 REG_VARIABLE(CFG_AP_PROTECTION_MODE_NAME, WLAN_PARAM_HexInteger,
588 struct hdd_config, apProtection,
589 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
590 CFG_AP_PROTECTION_MODE_DEFAULT,
591 CFG_AP_PROTECTION_MODE_MIN,
592 CFG_AP_PROTECTION_MODE_MAX),
593
594 REG_VARIABLE(CFG_AP_OBSS_PROTECTION_MODE_NAME, WLAN_PARAM_Integer,
595 struct hdd_config, apOBSSProtEnabled,
596 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
597 CFG_AP_OBSS_PROTECTION_MODE_DEFAULT,
598 CFG_AP_OBSS_PROTECTION_MODE_MIN,
599 CFG_AP_OBSS_PROTECTION_MODE_MAX),
600
601 REG_VARIABLE(CFG_AP_STA_SECURITY_SEPERATION_NAME, WLAN_PARAM_Integer,
602 struct hdd_config, apDisableIntraBssFwd,
603 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
604 CFG_AP_STA_SECURITY_SEPERATION_DEFAULT,
605 CFG_AP_STA_SECURITY_SEPERATION_MIN,
606 CFG_AP_STA_SECURITY_SEPERATION_MAX),
607
608 REG_VARIABLE(CFG_ENABLE_LTE_COEX, WLAN_PARAM_Integer,
609 struct hdd_config, enableLTECoex,
610 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
611 CFG_ENABLE_LTE_COEX_DEFAULT,
612 CFG_ENABLE_LTE_COEX_MIN,
613 CFG_ENABLE_LTE_COEX_MAX),
614 REG_VARIABLE(CFG_FORCE_SAP_ACS, WLAN_PARAM_Integer,
615 struct hdd_config, force_sap_acs,
616 VAR_FLAGS_DYNAMIC_CFG |
617 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
618 CFG_FORCE_SAP_ACS_DEFAULT,
619 CFG_FORCE_SAP_ACS_MIN,
620 CFG_FORCE_SAP_ACS_MAX),
621
622 REG_VARIABLE(CFG_FORCE_SAP_ACS_START_CH, WLAN_PARAM_Integer,
623 struct hdd_config, force_sap_acs_st_ch,
624 VAR_FLAGS_DYNAMIC_CFG |
625 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
626 CFG_FORCE_SAP_ACS_START_CH_DEFAULT,
627 CFG_FORCE_SAP_ACS_START_CH_MIN,
628 CFG_FORCE_SAP_ACS_START_CH_MAX),
629
630 REG_VARIABLE(CFG_FORCE_SAP_ACS_END_CH, WLAN_PARAM_Integer,
631 struct hdd_config, force_sap_acs_end_ch,
632 VAR_FLAGS_DYNAMIC_CFG |
633 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
634 CFG_FORCE_SAP_ACS_END_CH_DEFAULT,
635 CFG_FORCE_SAP_ACS_END_CH_MIN,
636 CFG_FORCE_SAP_ACS_END_CH_MAX),
637
638 REG_VARIABLE(CFG_AP_KEEP_ALIVE_PERIOD_NAME, WLAN_PARAM_Integer,
639 struct hdd_config, apKeepAlivePeriod,
640 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
641 CFG_AP_KEEP_ALIVE_PERIOD_DEFAULT,
642 CFG_AP_KEEP_ALIVE_PERIOD_MIN,
643 CFG_AP_KEEP_ALIVE_PERIOD_MAX),
644
645 REG_VARIABLE(CFG_GO_KEEP_ALIVE_PERIOD_NAME, WLAN_PARAM_Integer,
646 struct hdd_config, goKeepAlivePeriod,
647 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
648 CFG_GO_KEEP_ALIVE_PERIOD_DEFAULT,
649 CFG_GO_KEEP_ALIVE_PERIOD_MIN,
650 CFG_GO_KEEP_ALIVE_PERIOD_MAX),
651
652 REG_VARIABLE(CFG_AP_LINK_MONITOR_PERIOD_NAME, WLAN_PARAM_Integer,
653 struct hdd_config, apLinkMonitorPeriod,
654 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
655 CFG_AP_LINK_MONITOR_PERIOD_DEFAULT,
656 CFG_AP_LINK_MONITOR_PERIOD_MIN,
657 CFG_AP_LINK_MONITOR_PERIOD_MAX),
658
659 REG_VARIABLE(CFG_GO_LINK_MONITOR_PERIOD_NAME, WLAN_PARAM_Integer,
660 struct hdd_config, goLinkMonitorPeriod,
661 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
662 CFG_GO_LINK_MONITOR_PERIOD_DEFAULT,
663 CFG_GO_LINK_MONITOR_PERIOD_MIN,
664 CFG_GO_LINK_MONITOR_PERIOD_MAX),
665
666 REG_VARIABLE(CFG_DISABLE_PACKET_FILTER, WLAN_PARAM_Integer,
667 struct hdd_config, disablePacketFilter,
668 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
669 CFG_DISABLE_PACKET_FILTER_DEFAULT,
670 CFG_DISABLE_PACKET_FILTER_MIN,
671 CFG_DISABLE_PACKET_FILTER_MAX),
672
673 REG_VARIABLE(CFG_BEACON_INTERVAL_NAME, WLAN_PARAM_Integer,
674 struct hdd_config, nBeaconInterval,
675 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
676 CFG_BEACON_INTERVAL_DEFAULT,
677 CFG_BEACON_INTERVAL_MIN,
678 CFG_BEACON_INTERVAL_MAX),
679
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800680 REG_VARIABLE(CFG_VCC_RSSI_TRIGGER_NAME, WLAN_PARAM_Integer,
681 struct hdd_config, nVccRssiTrigger,
682 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
683 CFG_VCC_RSSI_TRIGGER_DEFAULT,
684 CFG_VCC_RSSI_TRIGGER_MIN,
685 CFG_VCC_RSSI_TRIGGER_MAX),
686
687 REG_VARIABLE(CFG_VCC_UL_MAC_LOSS_THRESH_NAME, WLAN_PARAM_Integer,
688 struct hdd_config, nVccUlMacLossThreshold,
689 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
690 CFG_VCC_UL_MAC_LOSS_THRESH_DEFAULT,
691 CFG_VCC_UL_MAC_LOSS_THRESH_MIN,
692 CFG_VCC_UL_MAC_LOSS_THRESH_MAX),
693
694 REG_VARIABLE(CFG_PASSIVE_MAX_CHANNEL_TIME_NAME, WLAN_PARAM_Integer,
695 struct hdd_config, nPassiveMaxChnTime,
696 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
697 CFG_PASSIVE_MAX_CHANNEL_TIME_DEFAULT,
698 CFG_PASSIVE_MAX_CHANNEL_TIME_MIN,
699 CFG_PASSIVE_MAX_CHANNEL_TIME_MAX),
700
701 REG_VARIABLE(CFG_PASSIVE_MIN_CHANNEL_TIME_NAME, WLAN_PARAM_Integer,
702 struct hdd_config, nPassiveMinChnTime,
703 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
704 CFG_PASSIVE_MIN_CHANNEL_TIME_DEFAULT,
705 CFG_PASSIVE_MIN_CHANNEL_TIME_MIN,
706 CFG_PASSIVE_MIN_CHANNEL_TIME_MAX),
707
708 REG_VARIABLE(CFG_ACTIVE_MAX_CHANNEL_TIME_NAME, WLAN_PARAM_Integer,
709 struct hdd_config, nActiveMaxChnTime,
710 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
711 CFG_ACTIVE_MAX_CHANNEL_TIME_DEFAULT,
712 CFG_ACTIVE_MAX_CHANNEL_TIME_MIN,
713 CFG_ACTIVE_MAX_CHANNEL_TIME_MAX),
714
715 REG_VARIABLE(CFG_ACTIVE_MIN_CHANNEL_TIME_NAME, WLAN_PARAM_Integer,
716 struct hdd_config, nActiveMinChnTime,
717 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
718 CFG_ACTIVE_MIN_CHANNEL_TIME_DEFAULT,
719 CFG_ACTIVE_MIN_CHANNEL_TIME_MIN,
720 CFG_ACTIVE_MIN_CHANNEL_TIME_MAX),
721
722 REG_VARIABLE(CFG_RETRY_LIMIT_ZERO_NAME, WLAN_PARAM_Integer,
723 struct hdd_config, retryLimitZero,
724 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
725 CFG_RETRY_LIMIT_ZERO_DEFAULT,
726 CFG_RETRY_LIMIT_ZERO_MIN,
727 CFG_RETRY_LIMIT_ZERO_MAX),
728
729 REG_VARIABLE(CFG_RETRY_LIMIT_ONE_NAME, WLAN_PARAM_Integer,
730 struct hdd_config, retryLimitOne,
731 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
732 CFG_RETRY_LIMIT_ONE_DEFAULT,
733 CFG_RETRY_LIMIT_ONE_MIN,
734 CFG_RETRY_LIMIT_ONE_MAX),
735
736 REG_VARIABLE(CFG_RETRY_LIMIT_TWO_NAME, WLAN_PARAM_Integer,
737 struct hdd_config, retryLimitTwo,
738 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
739 CFG_RETRY_LIMIT_TWO_DEFAULT,
740 CFG_RETRY_LIMIT_TWO_MIN,
741 CFG_RETRY_LIMIT_TWO_MAX),
742
743#ifdef WLAN_AP_STA_CONCURRENCY
744 REG_VARIABLE(CFG_PASSIVE_MAX_CHANNEL_TIME_CONC_NAME, WLAN_PARAM_Integer,
745 struct hdd_config, nPassiveMaxChnTimeConc,
746 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
747 CFG_PASSIVE_MAX_CHANNEL_TIME_CONC_DEFAULT,
748 CFG_PASSIVE_MAX_CHANNEL_TIME_CONC_MIN,
749 CFG_PASSIVE_MAX_CHANNEL_TIME_CONC_MAX),
750
751 REG_VARIABLE(CFG_PASSIVE_MIN_CHANNEL_TIME_CONC_NAME, WLAN_PARAM_Integer,
752 struct hdd_config, nPassiveMinChnTimeConc,
753 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
754 CFG_PASSIVE_MIN_CHANNEL_TIME_CONC_DEFAULT,
755 CFG_PASSIVE_MIN_CHANNEL_TIME_CONC_MIN,
756 CFG_PASSIVE_MIN_CHANNEL_TIME_CONC_MAX),
757
758 REG_VARIABLE(CFG_ACTIVE_MAX_CHANNEL_TIME_CONC_NAME, WLAN_PARAM_Integer,
759 struct hdd_config, nActiveMaxChnTimeConc,
760 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
761 CFG_ACTIVE_MAX_CHANNEL_TIME_CONC_DEFAULT,
762 CFG_ACTIVE_MAX_CHANNEL_TIME_CONC_MIN,
763 CFG_ACTIVE_MAX_CHANNEL_TIME_CONC_MAX),
764
765 REG_VARIABLE(CFG_ACTIVE_MIN_CHANNEL_TIME_CONC_NAME, WLAN_PARAM_Integer,
766 struct hdd_config, nActiveMinChnTimeConc,
767 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
768 CFG_ACTIVE_MIN_CHANNEL_TIME_CONC_DEFAULT,
769 CFG_ACTIVE_MIN_CHANNEL_TIME_CONC_MIN,
770 CFG_ACTIVE_MIN_CHANNEL_TIME_CONC_MAX),
771
772 REG_VARIABLE(CFG_REST_TIME_CONC_NAME, WLAN_PARAM_Integer,
773 struct hdd_config, nRestTimeConc,
774 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
775 CFG_REST_TIME_CONC_DEFAULT,
776 CFG_REST_TIME_CONC_MIN,
777 CFG_REST_TIME_CONC_MAX),
778
Agrawal Ashish17bb3902016-05-05 13:29:40 +0530779 REG_VARIABLE(CFG_MIN_REST_TIME_NAME, WLAN_PARAM_Integer,
780 struct hdd_config, min_rest_time_conc,
781 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
782 CFG_MIN_REST_TIME_DEFAULT,
783 CFG_MIN_REST_TIME_MIN,
784 CFG_MIN_REST_TIME_MAX),
785
Jeff Johnson03294f12016-12-09 17:10:24 -0800786 REG_VARIABLE(CFG_IDLE_TIME_NAME, WLAN_PARAM_Integer,
Agrawal Ashish17bb3902016-05-05 13:29:40 +0530787 struct hdd_config, idle_time_conc,
788 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
789 CFG_IDLE_TIME_DEFAULT,
790 CFG_IDLE_TIME_MIN,
Jeff Johnson03294f12016-12-09 17:10:24 -0800791 CFG_IDLE_TIME_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800792#endif
793
794 REG_VARIABLE(CFG_MAX_PS_POLL_NAME, WLAN_PARAM_Integer,
795 struct hdd_config, nMaxPsPoll,
796 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
797 CFG_MAX_PS_POLL_DEFAULT,
798 CFG_MAX_PS_POLL_MIN,
799 CFG_MAX_PS_POLL_MAX),
800
801 REG_VARIABLE(CFG_MAX_TX_POWER_NAME, WLAN_PARAM_Integer,
802 struct hdd_config, nTxPowerCap,
803 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
804 CFG_MAX_TX_POWER_DEFAULT,
805 CFG_MAX_TX_POWER_MIN,
806 CFG_MAX_TX_POWER_MAX),
807
Padma, Santhosh Kumar29df3622016-08-16 19:15:16 +0530808 REG_VARIABLE(CFG_TX_POWER_CTRL_NAME, WLAN_PARAM_Integer,
809 struct hdd_config, allow_tpc_from_ap,
810 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
811 CFG_TX_POWER_CTRL_DEFAULT,
812 CFG_TX_POWER_CTRL_MIN,
813 CFG_TX_POWER_CTRL_MAX),
814
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800815 REG_VARIABLE(CFG_LOW_GAIN_OVERRIDE_NAME, WLAN_PARAM_Integer,
816 struct hdd_config, fIsLowGainOverride,
817 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
818 CFG_LOW_GAIN_OVERRIDE_DEFAULT,
819 CFG_LOW_GAIN_OVERRIDE_MIN,
820 CFG_LOW_GAIN_OVERRIDE_MAX),
821
822 REG_VARIABLE(CFG_RSSI_FILTER_PERIOD_NAME, WLAN_PARAM_Integer,
823 struct hdd_config, nRssiFilterPeriod,
824 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
825 CFG_RSSI_FILTER_PERIOD_DEFAULT,
826 CFG_RSSI_FILTER_PERIOD_MIN,
827 CFG_RSSI_FILTER_PERIOD_MAX),
828
829 REG_VARIABLE(CFG_IGNORE_DTIM_NAME, WLAN_PARAM_Integer,
830 struct hdd_config, fIgnoreDtim,
831 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
832 CFG_IGNORE_DTIM_DEFAULT,
833 CFG_IGNORE_DTIM_MIN,
834 CFG_IGNORE_DTIM_MAX),
835
836 REG_VARIABLE(CFG_MAX_LI_MODULATED_DTIM_NAME, WLAN_PARAM_Integer,
837 struct hdd_config, fMaxLIModulatedDTIM,
838 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
839 CFG_MAX_LI_MODULATED_DTIM_DEFAULT,
840 CFG_MAX_LI_MODULATED_DTIM_MIN,
841 CFG_MAX_LI_MODULATED_DTIM_MAX),
842
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800843 REG_VARIABLE(CFG_FW_HEART_BEAT_MONITORING_NAME, WLAN_PARAM_Integer,
844 struct hdd_config, fEnableFwHeartBeatMonitoring,
845 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
846 CFG_FW_HEART_BEAT_MONITORING_DEFAULT,
847 CFG_FW_HEART_BEAT_MONITORING_MIN,
848 CFG_FW_HEART_BEAT_MONITORING_MAX),
849
850 REG_VARIABLE(CFG_FW_BEACON_FILTERING_NAME, WLAN_PARAM_Integer,
851 struct hdd_config, fEnableFwBeaconFiltering,
852 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
853 CFG_FW_BEACON_FILTERING_DEFAULT,
854 CFG_FW_BEACON_FILTERING_MIN,
855 CFG_FW_BEACON_FILTERING_MAX),
856
857 REG_DYNAMIC_VARIABLE(CFG_FW_RSSI_MONITORING_NAME, WLAN_PARAM_Integer,
858 struct hdd_config, fEnableFwRssiMonitoring,
859 VAR_FLAGS_OPTIONAL |
860 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
861 CFG_FW_RSSI_MONITORING_DEFAULT,
862 CFG_FW_RSSI_MONITORING_MIN,
863 CFG_FW_RSSI_MONITORING_MAX,
864 cb_notify_set_fw_rssi_monitoring, 0),
865
866 REG_VARIABLE(CFG_FW_MCC_RTS_CTS_PROT_NAME, WLAN_PARAM_Integer,
867 struct hdd_config, mcc_rts_cts_prot_enable,
868 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
869 CFG_FW_MCC_RTS_CTS_PROT_DEFAULT,
870 CFG_FW_MCC_RTS_CTS_PROT_MIN,
871 CFG_FW_MCC_RTS_CTS_PROT_MAX),
872
873 REG_VARIABLE(CFG_FW_MCC_BCAST_PROB_RESP_NAME, WLAN_PARAM_Integer,
874 struct hdd_config, mcc_bcast_prob_resp_enable,
875 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
876 CFG_FW_MCC_BCAST_PROB_RESP_DEFAULT,
877 CFG_FW_MCC_BCAST_PROB_RESP_MIN,
878 CFG_FW_MCC_BCAST_PROB_RESP_MAX),
879
880 REG_VARIABLE(CFG_DATA_INACTIVITY_TIMEOUT_NAME, WLAN_PARAM_Integer,
881 struct hdd_config, nDataInactivityTimeout,
882 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
883 CFG_DATA_INACTIVITY_TIMEOUT_DEFAULT,
884 CFG_DATA_INACTIVITY_TIMEOUT_MIN,
885 CFG_DATA_INACTIVITY_TIMEOUT_MAX),
886
Mukul Sharmaed92f2f2017-04-20 00:06:28 +0530887 REG_VARIABLE(CFG_WOW_DATA_INACTIVITY_TIMEOUT_NAME, WLAN_PARAM_Integer,
888 struct hdd_config, wow_data_inactivity_timeout,
889 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
890 CFG_WOW_DATA_INACTIVITY_TIMEOUT_DEFAULT,
891 CFG_WOW_DATA_INACTIVITY_TIMEOUT_MIN,
892 CFG_WOW_DATA_INACTIVITY_TIMEOUT_MAX),
893
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800894 REG_VARIABLE(CFG_QOS_WMM_MODE_NAME, WLAN_PARAM_Integer,
895 struct hdd_config, WmmMode,
896 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
897 CFG_QOS_WMM_MODE_DEFAULT,
898 CFG_QOS_WMM_MODE_MIN,
899 CFG_QOS_WMM_MODE_MAX),
900
901 REG_VARIABLE(CFG_QOS_WMM_80211E_ENABLED_NAME, WLAN_PARAM_Integer,
902 struct hdd_config, b80211eIsEnabled,
903 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
904 CFG_QOS_WMM_80211E_ENABLED_DEFAULT,
905 CFG_QOS_WMM_80211E_ENABLED_MIN,
906 CFG_QOS_WMM_80211E_ENABLED_MAX),
907
908 REG_VARIABLE(CFG_QOS_WMM_UAPSD_MASK_NAME, WLAN_PARAM_HexInteger,
909 struct hdd_config, UapsdMask,
910 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
911 CFG_QOS_WMM_UAPSD_MASK_DEFAULT,
912 CFG_QOS_WMM_UAPSD_MASK_MIN,
913 CFG_QOS_WMM_UAPSD_MASK_MAX),
914
915 REG_VARIABLE(CFG_QOS_WMM_INFRA_UAPSD_VO_SRV_INTV_NAME,
916 WLAN_PARAM_Integer,
917 struct hdd_config, InfraUapsdVoSrvIntv,
918 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
919 CFG_QOS_WMM_INFRA_UAPSD_VO_SRV_INTV_DEFAULT,
920 CFG_QOS_WMM_INFRA_UAPSD_VO_SRV_INTV_MIN,
921 CFG_QOS_WMM_INFRA_UAPSD_VO_SRV_INTV_MAX),
922
923 REG_VARIABLE(CFG_QOS_WMM_INFRA_UAPSD_VO_SUS_INTV_NAME,
924 WLAN_PARAM_Integer,
925 struct hdd_config, InfraUapsdVoSuspIntv,
926 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
927 CFG_QOS_WMM_INFRA_UAPSD_VO_SUS_INTV_DEFAULT,
928 CFG_QOS_WMM_INFRA_UAPSD_VO_SUS_INTV_MIN,
929 CFG_QOS_WMM_INFRA_UAPSD_VO_SUS_INTV_MAX),
930
931 REG_VARIABLE(CFG_QOS_WMM_INFRA_UAPSD_VI_SRV_INTV_NAME,
932 WLAN_PARAM_Integer,
933 struct hdd_config, InfraUapsdViSrvIntv,
934 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
935 CFG_QOS_WMM_INFRA_UAPSD_VI_SRV_INTV_DEFAULT,
936 CFG_QOS_WMM_INFRA_UAPSD_VI_SRV_INTV_MIN,
937 CFG_QOS_WMM_INFRA_UAPSD_VI_SRV_INTV_MAX),
938
939 REG_VARIABLE(CFG_QOS_WMM_INFRA_UAPSD_VI_SUS_INTV_NAME,
940 WLAN_PARAM_Integer,
941 struct hdd_config, InfraUapsdViSuspIntv,
942 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
943 CFG_QOS_WMM_INFRA_UAPSD_VI_SUS_INTV_DEFAULT,
944 CFG_QOS_WMM_INFRA_UAPSD_VI_SUS_INTV_MIN,
945 CFG_QOS_WMM_INFRA_UAPSD_VI_SUS_INTV_MAX),
946
947 REG_VARIABLE(CFG_QOS_WMM_INFRA_UAPSD_BE_SRV_INTV_NAME,
948 WLAN_PARAM_Integer,
949 struct hdd_config, InfraUapsdBeSrvIntv,
950 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
951 CFG_QOS_WMM_INFRA_UAPSD_BE_SRV_INTV_DEFAULT,
952 CFG_QOS_WMM_INFRA_UAPSD_BE_SRV_INTV_MIN,
953 CFG_QOS_WMM_INFRA_UAPSD_BE_SRV_INTV_MAX),
954
955 REG_VARIABLE(CFG_QOS_WMM_INFRA_UAPSD_BE_SUS_INTV_NAME,
956 WLAN_PARAM_Integer,
957 struct hdd_config, InfraUapsdBeSuspIntv,
958 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
959 CFG_QOS_WMM_INFRA_UAPSD_BE_SUS_INTV_DEFAULT,
960 CFG_QOS_WMM_INFRA_UAPSD_BE_SUS_INTV_MIN,
961 CFG_QOS_WMM_INFRA_UAPSD_BE_SUS_INTV_MAX),
962
963 REG_VARIABLE(CFG_QOS_WMM_INFRA_UAPSD_BK_SRV_INTV_NAME,
964 WLAN_PARAM_Integer,
965 struct hdd_config, InfraUapsdBkSrvIntv,
966 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
967 CFG_QOS_WMM_INFRA_UAPSD_BK_SRV_INTV_DEFAULT,
968 CFG_QOS_WMM_INFRA_UAPSD_BK_SRV_INTV_MIN,
969 CFG_QOS_WMM_INFRA_UAPSD_BK_SRV_INTV_MAX),
970
971 REG_VARIABLE(CFG_QOS_WMM_INFRA_UAPSD_BK_SUS_INTV_NAME,
972 WLAN_PARAM_Integer,
973 struct hdd_config, InfraUapsdBkSuspIntv,
974 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
975 CFG_QOS_WMM_INFRA_UAPSD_BK_SUS_INTV_DEFAULT,
976 CFG_QOS_WMM_INFRA_UAPSD_BK_SUS_INTV_MIN,
977 CFG_QOS_WMM_INFRA_UAPSD_BK_SUS_INTV_MAX),
978
979#ifdef FEATURE_WLAN_ESE
980 REG_VARIABLE(CFG_QOS_WMM_INFRA_INACTIVITY_INTERVAL_NAME,
981 WLAN_PARAM_Integer,
982 struct hdd_config, InfraInactivityInterval,
983 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
984 CFG_QOS_WMM_INFRA_INACTIVITY_INTERVAL_DEFAULT,
985 CFG_QOS_WMM_INFRA_INACTIVITY_INTERVAL_MIN,
986 CFG_QOS_WMM_INFRA_INACTIVITY_INTERVAL_MAX),
987
988 REG_DYNAMIC_VARIABLE(CFG_ESE_FEATURE_ENABLED_NAME, WLAN_PARAM_Integer,
989 struct hdd_config, isEseIniFeatureEnabled,
990 VAR_FLAGS_OPTIONAL |
991 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
992 CFG_ESE_FEATURE_ENABLED_DEFAULT,
993 CFG_ESE_FEATURE_ENABLED_MIN,
994 CFG_ESE_FEATURE_ENABLED_MAX,
995 cb_notify_set_ese_feature_enabled, 0),
996#endif /* FEATURE_WLAN_ESE */
997
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800998 /* flag to turn ON/OFF Legacy Fast Roaming */
999 REG_DYNAMIC_VARIABLE(CFG_LFR_FEATURE_ENABLED_NAME, WLAN_PARAM_Integer,
1000 struct hdd_config, isFastRoamIniFeatureEnabled,
1001 VAR_FLAGS_OPTIONAL |
1002 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1003 CFG_LFR_FEATURE_ENABLED_DEFAULT,
1004 CFG_LFR_FEATURE_ENABLED_MIN,
1005 CFG_LFR_FEATURE_ENABLED_MAX,
1006 notify_is_fast_roam_ini_feature_enabled, 0),
1007
1008 /* flag to turn ON/OFF Motion assistance for Legacy Fast Roaming */
1009 REG_DYNAMIC_VARIABLE(CFG_LFR_MAWC_FEATURE_ENABLED_NAME,
1010 WLAN_PARAM_Integer,
1011 struct hdd_config, MAWCEnabled,
1012 VAR_FLAGS_OPTIONAL |
1013 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1014 CFG_LFR_MAWC_FEATURE_ENABLED_DEFAULT,
1015 CFG_LFR_MAWC_FEATURE_ENABLED_MIN,
1016 CFG_LFR_MAWC_FEATURE_ENABLED_MAX,
1017 notify_is_mawc_ini_feature_enabled, 0),
1018
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001019 /* flag to turn ON/OFF 11r and ESE FastTransition */
1020 REG_DYNAMIC_VARIABLE(CFG_FAST_TRANSITION_ENABLED_NAME,
1021 WLAN_PARAM_Integer,
1022 struct hdd_config, isFastTransitionEnabled,
1023 VAR_FLAGS_OPTIONAL |
1024 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1025 CFG_FAST_TRANSITION_ENABLED_NAME_DEFAULT,
1026 CFG_FAST_TRANSITION_ENABLED_NAME_MIN,
1027 CFG_FAST_TRANSITION_ENABLED_NAME_MAX,
1028 cb_notify_set_fast_transition_enabled, 0),
1029
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07001030 /* Variable to specify the delta/difference between the
1031 * RSSI of current AP and roamable AP while roaming
Jeff Johnson78d88a82017-01-12 09:50:54 -08001032 */
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001033 REG_DYNAMIC_VARIABLE(CFG_ROAM_RSSI_DIFF_NAME, WLAN_PARAM_Integer,
1034 struct hdd_config, RoamRssiDiff,
1035 VAR_FLAGS_OPTIONAL |
1036 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1037 CFG_ROAM_RSSI_DIFF_DEFAULT,
1038 CFG_ROAM_RSSI_DIFF_MIN,
1039 CFG_ROAM_RSSI_DIFF_MAX,
1040 cb_notify_set_roam_rssi_diff, 0),
1041
1042 REG_DYNAMIC_VARIABLE(CFG_ENABLE_WES_MODE_NAME, WLAN_PARAM_Integer,
1043 struct hdd_config, isWESModeEnabled,
1044 VAR_FLAGS_OPTIONAL |
1045 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1046 CFG_ENABLE_WES_MODE_NAME_DEFAULT,
1047 CFG_ENABLE_WES_MODE_NAME_MIN,
1048 CFG_ENABLE_WES_MODE_NAME_MAX,
1049 cb_notify_set_wes_mode, 0),
Deepak Dhamdhere828f1892017-02-09 11:51:19 -08001050 REG_VARIABLE(CFG_PMKID_MODES_NAME, WLAN_PARAM_Integer,
1051 struct hdd_config, pmkid_modes,
Deepak Dhamdheref2a7d8b2016-08-19 16:17:38 -07001052 VAR_FLAGS_OPTIONAL |
1053 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
Deepak Dhamdhere828f1892017-02-09 11:51:19 -08001054 CFG_PMKID_MODES_DEFAULT,
1055 CFG_PMKID_MODES_MIN,
1056 CFG_PMKID_MODES_MAX),
1057
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001058 REG_DYNAMIC_VARIABLE(CFG_ROAM_SCAN_OFFLOAD_ENABLED, WLAN_PARAM_Integer,
1059 struct hdd_config, isRoamOffloadScanEnabled,
1060 VAR_FLAGS_OPTIONAL |
1061 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1062 CFG_ROAM_SCAN_OFFLOAD_ENABLED_DEFAULT,
1063 CFG_ROAM_SCAN_OFFLOAD_ENABLED_MIN,
1064 CFG_ROAM_SCAN_OFFLOAD_ENABLED_MAX,
1065 cb_notify_update_roam_scan_offload_enabled, 0),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001066
1067 REG_VARIABLE(CFG_QOS_WMM_INFRA_DIR_AC_VO_NAME, WLAN_PARAM_Integer,
1068 struct hdd_config, InfraDirAcVo,
1069 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1070 CFG_QOS_WMM_INFRA_DIR_AC_VO_DEFAULT,
1071 CFG_QOS_WMM_INFRA_DIR_AC_VO_MIN,
1072 CFG_QOS_WMM_INFRA_DIR_AC_VO_MAX),
1073
1074 REG_VARIABLE(CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VO_NAME,
1075 WLAN_PARAM_HexInteger,
1076 struct hdd_config, InfraNomMsduSizeAcVo,
1077 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1078 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VO_DEFAULT,
1079 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VO_MIN,
1080 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VO_MAX),
1081
1082 REG_VARIABLE(CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VO_NAME,
1083 WLAN_PARAM_HexInteger,
1084 struct hdd_config, InfraMeanDataRateAcVo,
1085 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1086 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VO_DEFAULT,
1087 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VO_MIN,
1088 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VO_MAX),
1089
1090 REG_VARIABLE(CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VO_NAME,
1091 WLAN_PARAM_HexInteger,
1092 struct hdd_config, InfraMinPhyRateAcVo,
1093 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1094 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VO_DEFAULT,
1095 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VO_MIN,
1096 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VO_MAX),
1097
1098 REG_VARIABLE(CFG_QOS_WMM_INFRA_SBA_AC_VO_NAME, WLAN_PARAM_HexInteger,
1099 struct hdd_config, InfraSbaAcVo,
1100 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1101 CFG_QOS_WMM_INFRA_SBA_AC_VO_DEFAULT,
1102 CFG_QOS_WMM_INFRA_SBA_AC_VO_MIN,
1103 CFG_QOS_WMM_INFRA_SBA_AC_VO_MAX),
1104
1105 REG_VARIABLE(CFG_QOS_WMM_INFRA_DIR_AC_VI_NAME, WLAN_PARAM_Integer,
1106 struct hdd_config, InfraDirAcVi,
1107 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1108 CFG_QOS_WMM_INFRA_DIR_AC_VI_DEFAULT,
1109 CFG_QOS_WMM_INFRA_DIR_AC_VI_MIN,
1110 CFG_QOS_WMM_INFRA_DIR_AC_VI_MAX),
1111
1112 REG_VARIABLE(CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VI_NAME,
1113 WLAN_PARAM_HexInteger,
1114 struct hdd_config, InfraNomMsduSizeAcVi,
1115 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1116 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VI_DEFAULT,
1117 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VI_MIN,
1118 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VI_MAX),
1119
1120 REG_VARIABLE(CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VI_NAME,
1121 WLAN_PARAM_HexInteger,
1122 struct hdd_config, InfraMeanDataRateAcVi,
1123 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1124 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VI_DEFAULT,
1125 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VI_MIN,
1126 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VI_MAX),
1127
1128 REG_VARIABLE(CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VI_NAME,
1129 WLAN_PARAM_HexInteger,
1130 struct hdd_config, InfraMinPhyRateAcVi,
1131 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1132 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VI_DEFAULT,
1133 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VI_MIN,
1134 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VI_MAX),
1135
1136 REG_VARIABLE(CFG_QOS_WMM_INFRA_SBA_AC_VI_NAME, WLAN_PARAM_HexInteger,
1137 struct hdd_config, InfraSbaAcVi,
1138 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1139 CFG_QOS_WMM_INFRA_SBA_AC_VI_DEFAULT,
1140 CFG_QOS_WMM_INFRA_SBA_AC_VI_MIN,
1141 CFG_QOS_WMM_INFRA_SBA_AC_VI_MAX),
1142
1143 REG_VARIABLE(CFG_QOS_WMM_INFRA_DIR_AC_BE_NAME, WLAN_PARAM_Integer,
1144 struct hdd_config, InfraDirAcBe,
1145 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1146 CFG_QOS_WMM_INFRA_DIR_AC_BE_DEFAULT,
1147 CFG_QOS_WMM_INFRA_DIR_AC_BE_MIN,
1148 CFG_QOS_WMM_INFRA_DIR_AC_BE_MAX),
1149
1150 REG_VARIABLE(CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_BE_NAME,
1151 WLAN_PARAM_HexInteger,
1152 struct hdd_config, InfraNomMsduSizeAcBe,
1153 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1154 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_BE_DEFAULT,
1155 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_BE_MIN,
1156 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_BE_MAX),
1157
1158 REG_VARIABLE(CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_BE_NAME,
1159 WLAN_PARAM_HexInteger,
1160 struct hdd_config, InfraMeanDataRateAcBe,
1161 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1162 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_BE_DEFAULT,
1163 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_BE_MIN,
1164 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_BE_MAX),
1165
1166 REG_VARIABLE(CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_BE_NAME,
1167 WLAN_PARAM_HexInteger,
1168 struct hdd_config, InfraMinPhyRateAcBe,
1169 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1170 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_BE_DEFAULT,
1171 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_BE_MIN,
1172 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_BE_MAX),
1173
1174 REG_VARIABLE(CFG_QOS_WMM_INFRA_SBA_AC_BE_NAME, WLAN_PARAM_HexInteger,
1175 struct hdd_config, InfraSbaAcBe,
1176 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1177 CFG_QOS_WMM_INFRA_SBA_AC_BE_DEFAULT,
1178 CFG_QOS_WMM_INFRA_SBA_AC_BE_MIN,
1179 CFG_QOS_WMM_INFRA_SBA_AC_BE_MAX),
1180
1181 REG_VARIABLE(CFG_QOS_WMM_INFRA_DIR_AC_BK_NAME, WLAN_PARAM_Integer,
1182 struct hdd_config, InfraDirAcBk,
1183 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1184 CFG_QOS_WMM_INFRA_DIR_AC_BK_DEFAULT,
1185 CFG_QOS_WMM_INFRA_DIR_AC_BK_MIN,
1186 CFG_QOS_WMM_INFRA_DIR_AC_BK_MAX),
1187
1188 REG_VARIABLE(CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_BK_NAME,
1189 WLAN_PARAM_HexInteger,
1190 struct hdd_config, InfraNomMsduSizeAcBk,
1191 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1192 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_BK_DEFAULT,
1193 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_BK_MIN,
1194 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_BK_MAX),
1195
1196 REG_VARIABLE(CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_BK_NAME,
1197 WLAN_PARAM_HexInteger,
1198 struct hdd_config, InfraMeanDataRateAcBk,
1199 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1200 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_BK_DEFAULT,
1201 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_BK_MIN,
1202 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_BK_MAX),
1203
1204 REG_VARIABLE(CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_BK_NAME,
1205 WLAN_PARAM_HexInteger,
1206 struct hdd_config, InfraMinPhyRateAcBk,
1207 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1208 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_BK_DEFAULT,
1209 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_BK_MIN,
1210 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_BK_MAX),
1211
1212 REG_VARIABLE(CFG_QOS_WMM_INFRA_SBA_AC_BK_NAME, WLAN_PARAM_HexInteger,
1213 struct hdd_config, InfraSbaAcBk,
1214 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1215 CFG_QOS_WMM_INFRA_SBA_AC_BK_DEFAULT,
1216 CFG_QOS_WMM_INFRA_SBA_AC_BK_MIN,
1217 CFG_QOS_WMM_INFRA_SBA_AC_BK_MAX),
1218
1219 REG_VARIABLE(CFG_TL_DELAYED_TRGR_FRM_INT_NAME, WLAN_PARAM_Integer,
1220 struct hdd_config, DelayedTriggerFrmInt,
1221 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1222 CFG_TL_DELAYED_TRGR_FRM_INT_DEFAULT,
1223 CFG_TL_DELAYED_TRGR_FRM_INT_MIN,
1224 CFG_TL_DELAYED_TRGR_FRM_INT_MAX),
1225
1226 REG_VARIABLE_STRING(CFG_WOWL_PATTERN_NAME, WLAN_PARAM_String,
1227 struct hdd_config, wowlPattern,
1228 VAR_FLAGS_OPTIONAL,
1229 (void *)CFG_WOWL_PATTERN_DEFAULT),
1230
1231 REG_VARIABLE(CFG_QOS_IMPLICIT_SETUP_ENABLED_NAME, WLAN_PARAM_Integer,
1232 struct hdd_config, bImplicitQosEnabled,
1233 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1234 CFG_QOS_IMPLICIT_SETUP_ENABLED_DEFAULT,
1235 CFG_QOS_IMPLICIT_SETUP_ENABLED_MIN,
1236 CFG_QOS_IMPLICIT_SETUP_ENABLED_MAX),
1237
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001238 REG_VARIABLE(CFG_AP_AUTO_SHUT_OFF, WLAN_PARAM_Integer,
1239 struct hdd_config, nAPAutoShutOff,
1240 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1241 CFG_AP_AUTO_SHUT_OFF_DEFAULT,
1242 CFG_AP_AUTO_SHUT_OFF_MIN,
1243 CFG_AP_AUTO_SHUT_OFF_MAX),
1244
1245#ifdef FEATURE_WLAN_MCC_TO_SCC_SWITCH
1246 REG_VARIABLE(CFG_WLAN_MCC_TO_SCC_SWITCH_MODE, WLAN_PARAM_Integer,
1247 struct hdd_config, WlanMccToSccSwitchMode,
1248 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1249 CFG_WLAN_MCC_TO_SCC_SWITCH_MODE_DEFAULT,
1250 CFG_WLAN_MCC_TO_SCC_SWITCH_MODE_MIN,
1251 CFG_WLAN_MCC_TO_SCC_SWITCH_MODE_MAX),
1252#endif
1253#ifdef FEATURE_WLAN_AUTO_SHUTDOWN
1254 REG_VARIABLE(CFG_WLAN_AUTO_SHUTDOWN, WLAN_PARAM_Integer,
1255 struct hdd_config, WlanAutoShutdown,
1256 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1257 CFG_WLAN_AUTO_SHUTDOWN_DEFAULT,
1258 CFG_WLAN_AUTO_SHUTDOWN_MIN,
1259 CFG_WLAN_AUTO_SHUTDOWN_MAX),
1260#endif
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001261 REG_VARIABLE(CFG_RRM_ENABLE_NAME, WLAN_PARAM_Integer,
1262 struct hdd_config, fRrmEnable,
1263 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1264 CFG_RRM_ENABLE_DEFAULT,
1265 CFG_RRM_ENABLE_MIN,
1266 CFG_RRM_ENABLE_MAX),
1267
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001268 REG_VARIABLE(CFG_RRM_MEAS_RANDOMIZATION_INTVL_NAME, WLAN_PARAM_Integer,
1269 struct hdd_config, nRrmRandnIntvl,
1270 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1271 CFG_RRM_MEAS_RANDOMIZATION_INTVL_DEFAULT,
1272 CFG_RRM_MEAS_RANDOMIZATION_INTVL_MIN,
1273 CFG_RRM_MEAS_RANDOMIZATION_INTVL_MAX),
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08001274
1275 REG_VARIABLE_STRING(CFG_RM_CAPABILITY_NAME, WLAN_PARAM_String,
1276 struct hdd_config, rm_capability,
1277 VAR_FLAGS_OPTIONAL,
1278 (void *) CFG_RM_CAPABILITY_DEFAULT),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001279
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001280 REG_VARIABLE(CFG_FT_RESOURCE_REQ_NAME, WLAN_PARAM_Integer,
1281 struct hdd_config, fFTResourceReqSupported,
1282 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1283 CFG_FT_RESOURCE_REQ_DEFAULT,
1284 CFG_FT_RESOURCE_REQ_MIN,
1285 CFG_FT_RESOURCE_REQ_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001286
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001287 REG_DYNAMIC_VARIABLE(CFG_NEIGHBOR_SCAN_TIMER_PERIOD_NAME,
1288 WLAN_PARAM_Integer,
1289 struct hdd_config, nNeighborScanPeriod,
1290 VAR_FLAGS_OPTIONAL |
1291 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1292 CFG_NEIGHBOR_SCAN_TIMER_PERIOD_DEFAULT,
1293 CFG_NEIGHBOR_SCAN_TIMER_PERIOD_MIN,
1294 CFG_NEIGHBOR_SCAN_TIMER_PERIOD_MAX,
1295 cb_notify_set_neighbor_scan_period, 0),
1296
Sridhar Selvaraj1b2330c2017-07-21 15:16:42 +05301297 REG_DYNAMIC_VARIABLE(CFG_NEIGHBOR_SCAN_MIN_TIMER_PERIOD_NAME,
1298 WLAN_PARAM_Integer,
1299 struct hdd_config, neighbor_scan_min_period,
1300 VAR_FLAGS_OPTIONAL |
1301 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1302 CFG_NEIGHBOR_SCAN_MIN_TIMER_PERIOD_DEFAULT,
1303 CFG_NEIGHBOR_SCAN_MIN_TIMER_PERIOD_MIN,
1304 CFG_NEIGHBOR_SCAN_MIN_TIMER_PERIOD_MAX,
1305 cb_notify_set_neighbor_scan_min_period, 0),
1306
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001307 REG_DYNAMIC_VARIABLE(CFG_NEIGHBOR_LOOKUP_RSSI_THRESHOLD_NAME,
1308 WLAN_PARAM_Integer,
1309 struct hdd_config, nNeighborLookupRssiThreshold,
1310 VAR_FLAGS_OPTIONAL |
1311 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1312 CFG_NEIGHBOR_LOOKUP_RSSI_THRESHOLD_DEFAULT,
1313 CFG_NEIGHBOR_LOOKUP_RSSI_THRESHOLD_MIN,
1314 CFG_NEIGHBOR_LOOKUP_RSSI_THRESHOLD_MAX,
1315 cb_notify_set_neighbor_lookup_rssi_threshold, 0),
1316
1317 REG_DYNAMIC_VARIABLE(CFG_OPPORTUNISTIC_SCAN_THRESHOLD_DIFF_NAME,
1318 WLAN_PARAM_Integer,
1319 struct hdd_config, nOpportunisticThresholdDiff,
1320 VAR_FLAGS_OPTIONAL |
1321 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1322 CFG_OPPORTUNISTIC_SCAN_THRESHOLD_DIFF_DEFAULT,
1323 CFG_OPPORTUNISTIC_SCAN_THRESHOLD_DIFF_MIN,
1324 CFG_OPPORTUNISTIC_SCAN_THRESHOLD_DIFF_MAX,
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07001325 cb_notify_set_opportunistic_scan_threshold_diff,
1326 0),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001327
1328 REG_DYNAMIC_VARIABLE(CFG_ROAM_RESCAN_RSSI_DIFF_NAME, WLAN_PARAM_Integer,
1329 struct hdd_config, nRoamRescanRssiDiff,
1330 VAR_FLAGS_OPTIONAL |
1331 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1332 CFG_ROAM_RESCAN_RSSI_DIFF_DEFAULT,
1333 CFG_ROAM_RESCAN_RSSI_DIFF_MIN,
1334 CFG_ROAM_RESCAN_RSSI_DIFF_MAX,
1335 cb_notify_set_roam_rescan_rssi_diff, 0),
1336
1337 REG_VARIABLE_STRING(CFG_NEIGHBOR_SCAN_CHAN_LIST_NAME, WLAN_PARAM_String,
1338 struct hdd_config, neighborScanChanList,
1339 VAR_FLAGS_OPTIONAL,
1340 (void *)CFG_NEIGHBOR_SCAN_CHAN_LIST_DEFAULT),
1341
1342 REG_DYNAMIC_VARIABLE(CFG_NEIGHBOR_SCAN_MIN_CHAN_TIME_NAME,
1343 WLAN_PARAM_Integer,
1344 struct hdd_config, nNeighborScanMinChanTime,
1345 VAR_FLAGS_OPTIONAL |
1346 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1347 CFG_NEIGHBOR_SCAN_MIN_CHAN_TIME_DEFAULT,
1348 CFG_NEIGHBOR_SCAN_MIN_CHAN_TIME_MIN,
1349 CFG_NEIGHBOR_SCAN_MIN_CHAN_TIME_MAX,
1350 cb_notify_set_neighbor_scan_min_chan_time, 0),
1351
1352 REG_DYNAMIC_VARIABLE(CFG_NEIGHBOR_SCAN_MAX_CHAN_TIME_NAME,
1353 WLAN_PARAM_Integer,
1354 struct hdd_config, nNeighborScanMaxChanTime,
1355 VAR_FLAGS_OPTIONAL |
1356 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1357 CFG_NEIGHBOR_SCAN_MAX_CHAN_TIME_DEFAULT,
1358 CFG_NEIGHBOR_SCAN_MAX_CHAN_TIME_MIN,
1359 CFG_NEIGHBOR_SCAN_MAX_CHAN_TIME_MAX,
1360 cb_notify_set_neighbor_scan_max_chan_time, 0),
1361
1362 REG_VARIABLE(CFG_11R_NEIGHBOR_REQ_MAX_TRIES_NAME, WLAN_PARAM_Integer,
1363 struct hdd_config, nMaxNeighborReqTries,
1364 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1365 CFG_11R_NEIGHBOR_REQ_MAX_TRIES_DEFAULT,
1366 CFG_11R_NEIGHBOR_REQ_MAX_TRIES_MIN,
1367 CFG_11R_NEIGHBOR_REQ_MAX_TRIES_MAX),
1368
1369 REG_DYNAMIC_VARIABLE(CFG_NEIGHBOR_SCAN_RESULTS_REFRESH_PERIOD_NAME,
1370 WLAN_PARAM_Integer,
1371 struct hdd_config, nNeighborResultsRefreshPeriod,
1372 VAR_FLAGS_OPTIONAL |
1373 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1374 CFG_NEIGHBOR_SCAN_RESULTS_REFRESH_PERIOD_DEFAULT,
1375 CFG_NEIGHBOR_SCAN_RESULTS_REFRESH_PERIOD_MIN,
1376 CFG_NEIGHBOR_SCAN_RESULTS_REFRESH_PERIOD_MAX,
1377 cb_notify_set_neighbor_results_refresh_period, 0),
1378
1379 REG_DYNAMIC_VARIABLE(CFG_EMPTY_SCAN_REFRESH_PERIOD_NAME,
1380 WLAN_PARAM_Integer,
1381 struct hdd_config, nEmptyScanRefreshPeriod,
1382 VAR_FLAGS_OPTIONAL |
1383 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1384 CFG_EMPTY_SCAN_REFRESH_PERIOD_DEFAULT,
1385 CFG_EMPTY_SCAN_REFRESH_PERIOD_MIN,
1386 CFG_EMPTY_SCAN_REFRESH_PERIOD_MAX,
1387 cb_notify_set_empty_scan_refresh_period, 0),
1388
1389 REG_DYNAMIC_VARIABLE(CFG_ROAM_BMISS_FIRST_BCNT_NAME, WLAN_PARAM_Integer,
1390 struct hdd_config, nRoamBmissFirstBcnt,
1391 VAR_FLAGS_OPTIONAL |
1392 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1393 CFG_ROAM_BMISS_FIRST_BCNT_DEFAULT,
1394 CFG_ROAM_BMISS_FIRST_BCNT_MIN,
1395 CFG_ROAM_BMISS_FIRST_BCNT_MAX,
1396 cb_notify_set_roam_bmiss_first_bcnt, 0),
1397
1398 REG_DYNAMIC_VARIABLE(CFG_ROAM_BMISS_FINAL_BCNT_NAME, WLAN_PARAM_Integer,
1399 struct hdd_config, nRoamBmissFinalBcnt,
1400 VAR_FLAGS_OPTIONAL |
1401 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1402 CFG_ROAM_BMISS_FINAL_BCNT_DEFAULT,
1403 CFG_ROAM_BMISS_FINAL_BCNT_MIN,
1404 CFG_ROAM_BMISS_FINAL_BCNT_MAX,
1405 cb_notify_set_roam_bmiss_final_bcnt, 0),
1406
1407 REG_DYNAMIC_VARIABLE(CFG_ROAM_BEACON_RSSI_WEIGHT_NAME,
1408 WLAN_PARAM_Integer,
1409 struct hdd_config, nRoamBeaconRssiWeight,
1410 VAR_FLAGS_OPTIONAL |
1411 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1412 CFG_ROAM_BEACON_RSSI_WEIGHT_DEFAULT,
1413 CFG_ROAM_BEACON_RSSI_WEIGHT_MIN,
1414 CFG_ROAM_BEACON_RSSI_WEIGHT_MAX,
1415 cb_notify_set_roam_beacon_rssi_weight, 0),
1416
1417 REG_DYNAMIC_VARIABLE(CFG_ROAMING_DFS_CHANNEL_NAME, WLAN_PARAM_Integer,
1418 struct hdd_config, allowDFSChannelRoam,
1419 VAR_FLAGS_OPTIONAL |
1420 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1421 CFG_ROAMING_DFS_CHANNEL_DEFAULT,
1422 CFG_ROAMING_DFS_CHANNEL_MIN,
1423 CFG_ROAMING_DFS_CHANNEL_MAX,
1424 cb_notify_set_dfs_scan_mode, 0),
1425
1426 REG_DYNAMIC_VARIABLE(CFG_DELAY_BEFORE_VDEV_STOP_NAME,
1427 WLAN_PARAM_Integer,
1428 struct hdd_config,
1429 delay_before_vdev_stop,
1430 VAR_FLAGS_OPTIONAL |
1431 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1432 CFG_DELAY_BEFORE_VDEV_STOP_DEFAULT,
1433 CFG_DELAY_BEFORE_VDEV_STOP_MIN,
1434 CFG_DELAY_BEFORE_VDEV_STOP_MAX,
1435 cb_notify_set_delay_before_vdev_stop,
1436 0),
1437
1438 REG_DYNAMIC_VARIABLE(CFG_ROAM_SCAN_HI_RSSI_MAXCOUNT_NAME,
1439 WLAN_PARAM_Integer,
1440 struct hdd_config,
1441 nhi_rssi_scan_max_count,
1442 VAR_FLAGS_OPTIONAL |
1443 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1444 CFG_ROAM_SCAN_HI_RSSI_MAXCOUNT_DEFAULT,
1445 CFG_ROAM_SCAN_HI_RSSI_MAXCOUNT_MIN,
1446 CFG_ROAM_SCAN_HI_RSSI_MAXCOUNT_MAX,
1447 cb_notify_set_roam_scan_hi_rssi_scan_params,
1448 eCSR_HI_RSSI_SCAN_MAXCOUNT_ID),
1449
1450 REG_DYNAMIC_VARIABLE(CFG_ROAM_SCAN_HI_RSSI_DELTA_NAME,
1451 WLAN_PARAM_Integer,
1452 struct hdd_config,
1453 nhi_rssi_scan_rssi_delta,
1454 VAR_FLAGS_OPTIONAL |
1455 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1456 CFG_ROAM_SCAN_HI_RSSI_DELTA_DEFAULT,
1457 CFG_ROAM_SCAN_HI_RSSI_DELTA_MIN,
1458 CFG_ROAM_SCAN_HI_RSSI_DELTA_MAX,
1459 cb_notify_set_roam_scan_hi_rssi_scan_params,
1460 eCSR_HI_RSSI_SCAN_RSSI_DELTA_ID),
1461
1462 REG_DYNAMIC_VARIABLE(CFG_ROAM_SCAN_HI_RSSI_DELAY_NAME,
1463 WLAN_PARAM_Integer,
1464 struct hdd_config,
1465 nhi_rssi_scan_delay,
1466 VAR_FLAGS_OPTIONAL |
1467 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1468 CFG_ROAM_SCAN_HI_RSSI_DELAY_DEFAULT,
1469 CFG_ROAM_SCAN_HI_RSSI_DELAY_MIN,
1470 CFG_ROAM_SCAN_HI_RSSI_DELAY_MAX,
1471 cb_notify_set_roam_scan_hi_rssi_scan_params,
1472 eCSR_HI_RSSI_SCAN_DELAY_ID),
1473
1474 REG_DYNAMIC_VARIABLE(CFG_ROAM_SCAN_HI_RSSI_UB_NAME,
1475 WLAN_PARAM_SignedInteger,
1476 struct hdd_config,
1477 nhi_rssi_scan_rssi_ub,
1478 VAR_FLAGS_OPTIONAL |
1479 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1480 CFG_ROAM_SCAN_HI_RSSI_UB_DEFAULT,
1481 CFG_ROAM_SCAN_HI_RSSI_UB_MIN,
1482 CFG_ROAM_SCAN_HI_RSSI_UB_MAX,
1483 cb_notify_set_roam_scan_hi_rssi_scan_params,
1484 eCSR_HI_RSSI_SCAN_RSSI_UB_ID),
1485
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001486 REG_VARIABLE(CFG_QOS_WMM_BURST_SIZE_DEFN_NAME, WLAN_PARAM_Integer,
1487 struct hdd_config, burstSizeDefinition,
1488 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1489 CFG_QOS_WMM_BURST_SIZE_DEFN_DEFAULT,
1490 CFG_QOS_WMM_BURST_SIZE_DEFN_MIN,
1491 CFG_QOS_WMM_BURST_SIZE_DEFN_MAX),
1492
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001493 REG_VARIABLE(CFG_ENABLE_HOST_ARPOFFLOAD_NAME, WLAN_PARAM_Integer,
1494 struct hdd_config, fhostArpOffload,
1495 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1496 CFG_ENABLE_HOST_ARPOFFLOAD_DEFAULT,
1497 CFG_ENABLE_HOST_ARPOFFLOAD_MIN,
1498 CFG_ENABLE_HOST_ARPOFFLOAD_MAX),
1499
Dustin Brown1224e212017-05-12 14:02:12 -07001500 REG_VARIABLE(CFG_HW_FILTER_MODE_NAME, WLAN_PARAM_Integer,
1501 struct hdd_config, hw_filter_mode,
Ravi Kumar Bokka794fd712017-03-21 20:52:46 +05301502 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
Dustin Brown1224e212017-05-12 14:02:12 -07001503 CFG_HW_FILTER_MODE_DEFAULT,
1504 CFG_HW_FILTER_MODE_MIN,
1505 CFG_HW_FILTER_MODE_MAX),
Ravi Kumar Bokka794fd712017-03-21 20:52:46 +05301506
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001507#ifdef FEATURE_WLAN_RA_FILTERING
1508 REG_VARIABLE(CFG_RA_FILTER_ENABLE_NAME, WLAN_PARAM_Integer,
1509 struct hdd_config, IsRArateLimitEnabled,
1510 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1511 CFG_RA_FILTER_ENABLE_DEFAULT,
1512 CFG_RA_FILTER_ENABLE_MIN,
1513 CFG_RA_FILTER_ENABLE_MAX),
1514
1515 REG_VARIABLE(CFG_RA_RATE_LIMIT_INTERVAL_NAME, WLAN_PARAM_Integer,
1516 struct hdd_config, RArateLimitInterval,
1517 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1518 CFG_RA_RATE_LIMIT_INTERVAL_DEFAULT,
1519 CFG_RA_RATE_LIMIT_INTERVAL_MIN,
1520 CFG_RA_RATE_LIMIT_INTERVAL_MAX),
1521#endif
1522
1523 REG_VARIABLE(CFG_IGNORE_PEER_ERP_INFO_NAME, WLAN_PARAM_Integer,
1524 struct hdd_config, ignore_peer_erp_info,
1525 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1526 CFG_IGNORE_PEER_ERP_INFO_DEFAULT,
1527 CFG_IGNORE_PEER_ERP_INFO_MIN,
1528 CFG_IGNORE_PEER_ERP_INFO_MAX),
1529
1530 REG_VARIABLE(CFG_ENABLE_HOST_SSDP_NAME, WLAN_PARAM_Integer,
1531 struct hdd_config, ssdp,
1532 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1533 CFG_ENABLE_HOST_SSDP_DEFAULT,
1534 CFG_ENABLE_HOST_SSDP_MIN,
1535 CFG_ENABLE_HOST_SSDP_MAX),
1536
Houston Hoffmanc7c69f02016-03-24 22:45:52 -07001537#ifdef FEATURE_RUNTIME_PM
1538 REG_VARIABLE(CFG_ENABLE_RUNTIME_PM, WLAN_PARAM_Integer,
1539 struct hdd_config, runtime_pm,
1540 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1541 CFG_ENABLE_RUNTIME_PM_DEFAULT,
1542 CFG_ENABLE_RUNTIME_PM_MIN,
1543 CFG_ENABLE_RUNTIME_PM_MAX),
1544
1545 REG_VARIABLE(CFG_RUNTIME_PM_DELAY_NAME, WLAN_PARAM_Integer,
1546 struct hdd_config, runtime_pm_delay,
1547 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1548 CFG_RUNTIME_PM_DELAY_DEFAULT,
1549 CFG_RUNTIME_PM_DELAY_MIN,
1550 CFG_RUNTIME_PM_DELAY_MAX),
1551#endif
1552
1553
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001554 REG_VARIABLE(CFG_ENABLE_HOST_NSOFFLOAD_NAME, WLAN_PARAM_Integer,
1555 struct hdd_config, fhostNSOffload,
1556 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1557 CFG_ENABLE_HOST_NSOFFLOAD_DEFAULT,
1558 CFG_ENABLE_HOST_NSOFFLOAD_MIN,
1559 CFG_ENABLE_HOST_NSOFFLOAD_MAX),
1560
1561 REG_VARIABLE(CFG_QOS_WMM_TS_INFO_ACK_POLICY_NAME, WLAN_PARAM_HexInteger,
1562 struct hdd_config, tsInfoAckPolicy,
1563 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1564 CFG_QOS_WMM_TS_INFO_ACK_POLICY_DEFAULT,
1565 CFG_QOS_WMM_TS_INFO_ACK_POLICY_MIN,
1566 CFG_QOS_WMM_TS_INFO_ACK_POLICY_MAX),
1567
1568 REG_VARIABLE(CFG_SINGLE_TID_RC_NAME, WLAN_PARAM_Integer,
1569 struct hdd_config, bSingleTidRc,
1570 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1571 CFG_SINGLE_TID_RC_DEFAULT,
1572 CFG_SINGLE_TID_RC_MIN,
1573 CFG_SINGLE_TID_RC_MAX),
1574
1575 REG_VARIABLE(CFG_DYNAMIC_PSPOLL_VALUE_NAME, WLAN_PARAM_Integer,
1576 struct hdd_config, dynamicPsPollValue,
1577 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1578 CFG_DYNAMIC_PSPOLL_VALUE_DEFAULT,
1579 CFG_DYNAMIC_PSPOLL_VALUE_MIN,
1580 CFG_DYNAMIC_PSPOLL_VALUE_MAX),
1581
1582 REG_VARIABLE(CFG_TELE_BCN_WAKEUP_EN_NAME, WLAN_PARAM_Integer,
1583 struct hdd_config, teleBcnWakeupEn,
1584 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1585 CFG_TELE_BCN_WAKEUP_EN_DEFAULT,
1586 CFG_TELE_BCN_WAKEUP_EN_MIN,
1587 CFG_TELE_BCN_WAKEUP_EN_MAX),
1588
1589 REG_VARIABLE(CFG_INFRA_STA_KEEP_ALIVE_PERIOD_NAME, WLAN_PARAM_Integer,
1590 struct hdd_config, infraStaKeepAlivePeriod,
1591 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1592 CFG_INFRA_STA_KEEP_ALIVE_PERIOD_DEFAULT,
1593 CFG_INFRA_STA_KEEP_ALIVE_PERIOD_MIN,
1594 CFG_INFRA_STA_KEEP_ALIVE_PERIOD_MAX),
1595
Dustin Brownb6b0f182017-03-08 13:08:27 -08001596 REG_VARIABLE(CFG_STA_KEEPALIVE_METHOD_NAME, WLAN_PARAM_Integer,
1597 struct hdd_config, sta_keepalive_method,
1598 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1599 CFG_STA_KEEPALIVE_METHOD_DEFAULT,
1600 CFG_STA_KEEPALIVE_METHOD_MIN,
1601 CFG_STA_KEEPALIVE_METHOD_MAX),
1602
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001603 REG_VARIABLE(CFG_QOS_ADDTS_WHEN_ACM_IS_OFF_NAME, WLAN_PARAM_Integer,
1604 struct hdd_config, AddTSWhenACMIsOff,
1605 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1606 CFG_QOS_ADDTS_WHEN_ACM_IS_OFF_DEFAULT,
1607 CFG_QOS_ADDTS_WHEN_ACM_IS_OFF_MIN,
1608 CFG_QOS_ADDTS_WHEN_ACM_IS_OFF_MAX),
1609
1610 REG_VARIABLE(CFG_VALIDATE_SCAN_LIST_NAME, WLAN_PARAM_Integer,
1611 struct hdd_config, fValidateScanList,
1612 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1613 CFG_VALIDATE_SCAN_LIST_DEFAULT,
1614 CFG_VALIDATE_SCAN_LIST_MIN,
1615 CFG_VALIDATE_SCAN_LIST_MAX),
1616
1617 REG_VARIABLE(CFG_NULLDATA_AP_RESP_TIMEOUT_NAME, WLAN_PARAM_Integer,
1618 struct hdd_config, nNullDataApRespTimeout,
1619 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1620 CFG_NULLDATA_AP_RESP_TIMEOUT_DEFAULT,
1621 CFG_NULLDATA_AP_RESP_TIMEOUT_MIN,
1622 CFG_NULLDATA_AP_RESP_TIMEOUT_MAX),
1623
1624 REG_VARIABLE(CFG_AP_DATA_AVAIL_POLL_PERIOD_NAME, WLAN_PARAM_Integer,
1625 struct hdd_config, apDataAvailPollPeriodInMs,
1626 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1627 CFG_AP_DATA_AVAIL_POLL_PERIOD_DEFAULT,
1628 CFG_AP_DATA_AVAIL_POLL_PERIOD_MIN,
1629 CFG_AP_DATA_AVAIL_POLL_PERIOD_MAX),
1630
1631 REG_VARIABLE(CFG_BAND_CAPABILITY_NAME, WLAN_PARAM_Integer,
1632 struct hdd_config, nBandCapability,
1633 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1634 CFG_BAND_CAPABILITY_DEFAULT,
1635 CFG_BAND_CAPABILITY_MIN,
1636 CFG_BAND_CAPABILITY_MAX),
1637
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301638/* CFG_QDF_TRACE_ENABLE Parameters */
1639 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_WDI_NAME, WLAN_PARAM_Integer,
1640 struct hdd_config, qdf_trace_enable_wdi,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001641 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301642 CFG_QDF_TRACE_ENABLE_DEFAULT,
1643 CFG_QDF_TRACE_ENABLE_MIN,
1644 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001645
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301646 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_HDD_NAME, WLAN_PARAM_Integer,
1647 struct hdd_config, qdf_trace_enable_hdd,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001648 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301649 CFG_QDF_TRACE_ENABLE_DEFAULT,
1650 CFG_QDF_TRACE_ENABLE_MIN,
1651 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001652
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301653 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_BMI_NAME, WLAN_PARAM_Integer,
1654 struct hdd_config, qdf_trace_enable_bmi,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001655 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301656 CFG_QDF_TRACE_ENABLE_DEFAULT,
1657 CFG_QDF_TRACE_ENABLE_MIN,
1658 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001659
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301660 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_SME_NAME, WLAN_PARAM_Integer,
1661 struct hdd_config, qdf_trace_enable_sme,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001662 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301663 CFG_QDF_TRACE_ENABLE_DEFAULT,
1664 CFG_QDF_TRACE_ENABLE_MIN,
1665 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001666
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301667 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_PE_NAME, WLAN_PARAM_Integer,
1668 struct hdd_config, qdf_trace_enable_pe,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001669 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301670 CFG_QDF_TRACE_ENABLE_DEFAULT,
1671 CFG_QDF_TRACE_ENABLE_MIN,
1672 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001673
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301674 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_WMA_NAME, WLAN_PARAM_Integer,
1675 struct hdd_config, qdf_trace_enable_wma,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001676 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301677 CFG_QDF_TRACE_ENABLE_DEFAULT,
1678 CFG_QDF_TRACE_ENABLE_MIN,
1679 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001680
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301681 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_SYS_NAME, WLAN_PARAM_Integer,
1682 struct hdd_config, qdf_trace_enable_sys,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001683 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301684 CFG_QDF_TRACE_ENABLE_DEFAULT,
1685 CFG_QDF_TRACE_ENABLE_MIN,
1686 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001687
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301688 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_QDF_NAME, WLAN_PARAM_Integer,
1689 struct hdd_config, qdf_trace_enable_qdf,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001690 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301691 CFG_QDF_TRACE_ENABLE_DEFAULT,
1692 CFG_QDF_TRACE_ENABLE_MIN,
1693 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001694
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301695 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_SAP_NAME, WLAN_PARAM_Integer,
1696 struct hdd_config, qdf_trace_enable_sap,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001697 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301698 CFG_QDF_TRACE_ENABLE_DEFAULT,
1699 CFG_QDF_TRACE_ENABLE_MIN,
1700 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001701
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301702 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_HDD_SAP_NAME, WLAN_PARAM_Integer,
1703 struct hdd_config, qdf_trace_enable_hdd_sap,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001704 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301705 CFG_QDF_TRACE_ENABLE_DEFAULT,
1706 CFG_QDF_TRACE_ENABLE_MIN,
1707 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001708
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301709 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_CFG_NAME, WLAN_PARAM_Integer,
1710 struct hdd_config, qdf_trace_enable_cfg,
Bhargav Shah480a90f2015-06-24 15:10:14 +05301711 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301712 CFG_QDF_TRACE_ENABLE_DEFAULT,
1713 CFG_QDF_TRACE_ENABLE_MIN,
1714 CFG_QDF_TRACE_ENABLE_MAX),
Bhargav Shah480a90f2015-06-24 15:10:14 +05301715
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301716 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_TXRX_NAME, WLAN_PARAM_Integer,
Bhargav Shah480a90f2015-06-24 15:10:14 +05301717 struct hdd_config, cfd_trace_enable_txrx,
1718 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301719 CFG_QDF_TRACE_ENABLE_DEFAULT,
1720 CFG_QDF_TRACE_ENABLE_MIN,
1721 CFG_QDF_TRACE_ENABLE_MAX),
Bhargav Shah480a90f2015-06-24 15:10:14 +05301722
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301723 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_HTC_NAME, WLAN_PARAM_Integer,
1724 struct hdd_config, qdf_trace_enable_htc,
Bhargav Shah480a90f2015-06-24 15:10:14 +05301725 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301726 CFG_QDF_TRACE_ENABLE_DEFAULT,
1727 CFG_QDF_TRACE_ENABLE_MIN,
1728 CFG_QDF_TRACE_ENABLE_MAX),
Bhargav Shah480a90f2015-06-24 15:10:14 +05301729
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301730 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_HIF_NAME, WLAN_PARAM_Integer,
1731 struct hdd_config, qdf_trace_enable_hif,
Bhargav Shah480a90f2015-06-24 15:10:14 +05301732 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301733 CFG_QDF_TRACE_ENABLE_DEFAULT,
1734 CFG_QDF_TRACE_ENABLE_MIN,
1735 CFG_QDF_TRACE_ENABLE_MAX),
Bhargav Shah480a90f2015-06-24 15:10:14 +05301736
1737 REG_VARIABLE(CFG_CDR_TRACE_ENABLE_HDD_SAP_DATA_NAME, WLAN_PARAM_Integer,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301738 struct hdd_config, qdf_trace_enable_hdd_sap_data,
Bhargav Shah480a90f2015-06-24 15:10:14 +05301739 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301740 CFG_QDF_TRACE_ENABLE_DEFAULT,
1741 CFG_QDF_TRACE_ENABLE_MIN,
1742 CFG_QDF_TRACE_ENABLE_MAX),
Bhargav Shah480a90f2015-06-24 15:10:14 +05301743
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301744 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_HDD_DATA_NAME, WLAN_PARAM_Integer,
1745 struct hdd_config, qdf_trace_enable_hdd_data,
Bhargav Shah480a90f2015-06-24 15:10:14 +05301746 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301747 CFG_QDF_TRACE_ENABLE_DEFAULT,
1748 CFG_QDF_TRACE_ENABLE_MIN,
1749 CFG_QDF_TRACE_ENABLE_MAX),
Bhargav Shah480a90f2015-06-24 15:10:14 +05301750
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301751 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_EPPING, WLAN_PARAM_Integer,
1752 struct hdd_config, qdf_trace_enable_epping,
Bhargav Shah480a90f2015-06-24 15:10:14 +05301753 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301754 CFG_QDF_TRACE_ENABLE_DEFAULT,
1755 CFG_QDF_TRACE_ENABLE_MIN,
1756 CFG_QDF_TRACE_ENABLE_MAX),
Bhargav Shah480a90f2015-06-24 15:10:14 +05301757
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301758 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_QDF_DEVICES, WLAN_PARAM_Integer,
1759 struct hdd_config, qdf_trace_enable_qdf_devices,
Bhargav Shah480a90f2015-06-24 15:10:14 +05301760 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301761 CFG_QDF_TRACE_ENABLE_DEFAULT,
1762 CFG_QDF_TRACE_ENABLE_MIN,
1763 CFG_QDF_TRACE_ENABLE_MAX),
Bhargav Shah480a90f2015-06-24 15:10:14 +05301764
Naveen Rawat7df31862017-03-01 17:09:30 -08001765 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_WIFI_POS, WLAN_PARAM_Integer,
1766 struct hdd_config, qdf_trace_enable_wifi_pos,
1767 VAR_FLAGS_OPTIONAL,
1768 CFG_QDF_TRACE_ENABLE_DEFAULT,
1769 CFG_QDF_TRACE_ENABLE_MIN,
1770 CFG_QDF_TRACE_ENABLE_MAX),
1771
Naveen Rawatf2b0dbd2017-03-27 10:00:15 -07001772 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_NAN, WLAN_PARAM_Integer,
1773 struct hdd_config, qdf_trace_enable_nan,
1774 VAR_FLAGS_OPTIONAL,
1775 CFG_QDF_TRACE_ENABLE_DEFAULT,
1776 CFG_QDF_TRACE_ENABLE_MIN,
1777 CFG_QDF_TRACE_ENABLE_MAX),
1778
Kiran Kumar Lokere798de7e2017-03-30 14:01:12 -07001779 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_REGULATORY, WLAN_PARAM_Integer,
1780 struct hdd_config, qdf_trace_enable_regulatory,
1781 VAR_FLAGS_OPTIONAL,
1782 CFG_QDF_TRACE_ENABLE_DEFAULT,
1783 CFG_QDF_TRACE_ENABLE_MIN,
1784 CFG_QDF_TRACE_ENABLE_MAX),
1785
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001786 REG_VARIABLE(CFG_TELE_BCN_TRANS_LI_NAME, WLAN_PARAM_Integer,
1787 struct hdd_config, nTeleBcnTransListenInterval,
1788 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1789 CFG_TELE_BCN_TRANS_LI_DEFAULT,
1790 CFG_TELE_BCN_TRANS_LI_MIN,
1791 CFG_TELE_BCN_TRANS_LI_MAX),
1792
1793 REG_VARIABLE(CFG_TELE_BCN_TRANS_LI_NUM_IDLE_BCNS_NAME,
1794 WLAN_PARAM_Integer,
1795 struct hdd_config, nTeleBcnTransLiNumIdleBeacons,
1796 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1797 CFG_TELE_BCN_TRANS_LI_NUM_IDLE_BCNS_DEFAULT,
1798 CFG_TELE_BCN_TRANS_LI_NUM_IDLE_BCNS_MIN,
1799 CFG_TELE_BCN_TRANS_LI_NUM_IDLE_BCNS_MAX),
1800
1801 REG_VARIABLE(CFG_TELE_BCN_MAX_LI_NAME, WLAN_PARAM_Integer,
1802 struct hdd_config, nTeleBcnMaxListenInterval,
1803 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1804 CFG_TELE_BCN_MAX_LI_DEFAULT,
1805 CFG_TELE_BCN_MAX_LI_MIN,
1806 CFG_TELE_BCN_MAX_LI_MAX),
1807
1808 REG_VARIABLE(CFG_TELE_BCN_MAX_LI_NUM_IDLE_BCNS_NAME, WLAN_PARAM_Integer,
1809 struct hdd_config, nTeleBcnMaxLiNumIdleBeacons,
1810 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1811 CFG_TELE_BCN_MAX_LI_NUM_IDLE_BCNS_DEFAULT,
1812 CFG_TELE_BCN_MAX_LI_NUM_IDLE_BCNS_MIN,
1813 CFG_TELE_BCN_MAX_LI_NUM_IDLE_BCNS_MAX),
1814
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001815 REG_VARIABLE(CFG_ENABLE_BYPASS_11D_NAME, WLAN_PARAM_Integer,
1816 struct hdd_config, enableBypass11d,
1817 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1818 CFG_ENABLE_BYPASS_11D_DEFAULT,
1819 CFG_ENABLE_BYPASS_11D_MIN,
1820 CFG_ENABLE_BYPASS_11D_MAX),
1821
1822 REG_VARIABLE(CFG_ENABLE_DFS_CHNL_SCAN_NAME, WLAN_PARAM_Integer,
1823 struct hdd_config, enableDFSChnlScan,
1824 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1825 CFG_ENABLE_DFS_CHNL_SCAN_DEFAULT,
1826 CFG_ENABLE_DFS_CHNL_SCAN_MIN,
1827 CFG_ENABLE_DFS_CHNL_SCAN_MAX),
1828
1829 REG_VARIABLE(CFG_ENABLE_DFS_PNO_CHNL_SCAN_NAME, WLAN_PARAM_Integer,
1830 struct hdd_config, enable_dfs_pno_chnl_scan,
1831 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1832 CFG_ENABLE_DFS_PNO_CHNL_SCAN_DEFAULT,
1833 CFG_ENABLE_DFS_PNO_CHNL_SCAN_MIN,
1834 CFG_ENABLE_DFS_PNO_CHNL_SCAN_MAX),
1835
1836 REG_VARIABLE(CFG_ENABLE_DYNAMIC_DTIM_NAME, WLAN_PARAM_Integer,
1837 struct hdd_config, enableDynamicDTIM,
1838 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1839 CFG_ENABLE_DYNAMIC_DTIM_DEFAULT,
1840 CFG_ENABLE_DYNAMIC_DTIM_MIN,
1841 CFG_ENABLE_DYNAMIC_DTIM_MAX),
1842
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001843 REG_VARIABLE(CFG_SHORT_GI_40MHZ_NAME, WLAN_PARAM_Integer,
1844 struct hdd_config, ShortGI40MhzEnable,
1845 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1846 CFG_SHORT_GI_40MHZ_DEFAULT,
1847 CFG_SHORT_GI_40MHZ_MIN,
1848 CFG_SHORT_GI_40MHZ_MAX),
1849
1850 REG_DYNAMIC_VARIABLE(CFG_REPORT_MAX_LINK_SPEED, WLAN_PARAM_Integer,
1851 struct hdd_config, reportMaxLinkSpeed,
1852 VAR_FLAGS_OPTIONAL |
1853 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1854 CFG_REPORT_MAX_LINK_SPEED_DEFAULT,
1855 CFG_REPORT_MAX_LINK_SPEED_MIN,
1856 CFG_REPORT_MAX_LINK_SPEED_MAX,
1857 NULL, 0),
1858
1859 REG_DYNAMIC_VARIABLE(CFG_LINK_SPEED_RSSI_HIGH, WLAN_PARAM_SignedInteger,
1860 struct hdd_config, linkSpeedRssiHigh,
1861 VAR_FLAGS_OPTIONAL |
1862 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1863 CFG_LINK_SPEED_RSSI_HIGH_DEFAULT,
1864 CFG_LINK_SPEED_RSSI_HIGH_MIN,
1865 CFG_LINK_SPEED_RSSI_HIGH_MAX,
1866 NULL, 0),
1867
1868 REG_DYNAMIC_VARIABLE(CFG_LINK_SPEED_RSSI_MID, WLAN_PARAM_SignedInteger,
1869 struct hdd_config, linkSpeedRssiMid,
1870 VAR_FLAGS_OPTIONAL |
1871 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1872 CFG_LINK_SPEED_RSSI_MID_DEFAULT,
1873 CFG_LINK_SPEED_RSSI_MID_MIN,
1874 CFG_LINK_SPEED_RSSI_MID_MAX,
1875 NULL, 0),
1876
1877 REG_DYNAMIC_VARIABLE(CFG_LINK_SPEED_RSSI_LOW, WLAN_PARAM_SignedInteger,
1878 struct hdd_config, linkSpeedRssiLow,
1879 VAR_FLAGS_OPTIONAL |
1880 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1881 CFG_LINK_SPEED_RSSI_LOW_DEFAULT,
1882 CFG_LINK_SPEED_RSSI_LOW_MIN,
1883 CFG_LINK_SPEED_RSSI_LOW_MAX,
1884 NULL, 0),
1885
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001886 REG_DYNAMIC_VARIABLE(CFG_ROAM_PREFER_5GHZ, WLAN_PARAM_Integer,
1887 struct hdd_config, nRoamPrefer5GHz,
1888 VAR_FLAGS_OPTIONAL |
1889 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1890 CFG_ROAM_PREFER_5GHZ_DEFAULT,
1891 CFG_ROAM_PREFER_5GHZ_MIN,
1892 CFG_ROAM_PREFER_5GHZ_MAX,
1893 cb_notify_set_roam_prefer5_g_hz, 0),
1894
1895 REG_DYNAMIC_VARIABLE(CFG_ROAM_INTRA_BAND, WLAN_PARAM_Integer,
1896 struct hdd_config, nRoamIntraBand,
1897 VAR_FLAGS_OPTIONAL |
1898 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1899 CFG_ROAM_INTRA_BAND_DEFAULT,
1900 CFG_ROAM_INTRA_BAND_MIN,
1901 CFG_ROAM_INTRA_BAND_MAX,
1902 cb_notify_set_roam_intra_band, 0),
1903
1904 REG_DYNAMIC_VARIABLE(CFG_ROAM_SCAN_N_PROBES, WLAN_PARAM_Integer,
1905 struct hdd_config, nProbes,
1906 VAR_FLAGS_OPTIONAL |
1907 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1908 CFG_ROAM_SCAN_N_PROBES_DEFAULT,
1909 CFG_ROAM_SCAN_N_PROBES_MIN,
1910 CFG_ROAM_SCAN_N_PROBES_MAX,
1911 cb_notify_set_roam_scan_n_probes, 0),
1912
1913 REG_DYNAMIC_VARIABLE(CFG_ROAM_SCAN_HOME_AWAY_TIME, WLAN_PARAM_Integer,
1914 struct hdd_config, nRoamScanHomeAwayTime,
1915 VAR_FLAGS_OPTIONAL |
1916 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1917 CFG_ROAM_SCAN_HOME_AWAY_TIME_DEFAULT,
1918 CFG_ROAM_SCAN_HOME_AWAY_TIME_MIN,
1919 CFG_ROAM_SCAN_HOME_AWAY_TIME_MAX,
1920 cb_notify_set_roam_scan_home_away_time, 0),
1921
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001922 REG_VARIABLE(CFG_P2P_DEVICE_ADDRESS_ADMINISTRATED_NAME,
1923 WLAN_PARAM_Integer,
1924 struct hdd_config, isP2pDeviceAddrAdministrated,
1925 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1926 CFG_P2P_DEVICE_ADDRESS_ADMINISTRATED_DEFAULT,
1927 CFG_P2P_DEVICE_ADDRESS_ADMINISTRATED_MIN,
1928 CFG_P2P_DEVICE_ADDRESS_ADMINISTRATED_MAX),
1929
1930 REG_VARIABLE(CFG_ENABLE_MCC_ENABLED_NAME, WLAN_PARAM_Integer,
1931 struct hdd_config, enableMCC,
1932 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1933 CFG_ENABLE_MCC_ENABLED_DEFAULT,
1934 CFG_ENABLE_MCC_ENABLED_MIN,
1935 CFG_ENABLE_MCC_ENABLED_MAX),
1936
1937 REG_VARIABLE(CFG_ALLOW_MCC_GO_DIFF_BI_NAME, WLAN_PARAM_Integer,
1938 struct hdd_config, allowMCCGODiffBI,
1939 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1940 CFG_ALLOW_MCC_GO_DIFF_BI_DEFAULT,
1941 CFG_ALLOW_MCC_GO_DIFF_BI_MIN,
1942 CFG_ALLOW_MCC_GO_DIFF_BI_MAX),
1943
1944 REG_VARIABLE(CFG_THERMAL_MIGRATION_ENABLE_NAME, WLAN_PARAM_Integer,
1945 struct hdd_config, thermalMitigationEnable,
1946 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1947 CFG_THERMAL_MIGRATION_ENABLE_DEFAULT,
1948 CFG_THERMAL_MIGRATION_ENABLE_MIN,
1949 CFG_THERMAL_MIGRATION_ENABLE_MAX),
1950
1951 REG_VARIABLE(CFG_THROTTLE_PERIOD_NAME, WLAN_PARAM_Integer,
1952 struct hdd_config, throttlePeriod,
1953 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1954 CFG_THROTTLE_PERIOD_DEFAULT,
1955 CFG_THROTTLE_PERIOD_MIN,
1956 CFG_THROTTLE_PERIOD_MAX),
1957
Poddar, Siddarth83905022016-04-16 17:56:08 -07001958 REG_VARIABLE(CFG_THROTTLE_DUTY_CYCLE_LEVEL0_NAME, WLAN_PARAM_Integer,
1959 struct hdd_config, throttle_dutycycle_level0,
1960 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1961 CFG_THROTTLE_DUTY_CYCLE_LEVEL0_DEFAULT,
1962 CFG_THROTTLE_DUTY_CYCLE_LEVEL0_MIN,
1963 CFG_THROTTLE_DUTY_CYCLE_LEVEL0_MAX),
1964
1965 REG_VARIABLE(CFG_THROTTLE_DUTY_CYCLE_LEVEL1_NAME, WLAN_PARAM_Integer,
1966 struct hdd_config, throttle_dutycycle_level1,
1967 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1968 CFG_THROTTLE_DUTY_CYCLE_LEVEL1_DEFAULT,
1969 CFG_THROTTLE_DUTY_CYCLE_LEVEL1_MIN,
1970 CFG_THROTTLE_DUTY_CYCLE_LEVEL1_MAX),
1971
1972 REG_VARIABLE(CFG_THROTTLE_DUTY_CYCLE_LEVEL2_NAME, WLAN_PARAM_Integer,
1973 struct hdd_config, throttle_dutycycle_level2,
1974 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1975 CFG_THROTTLE_DUTY_CYCLE_LEVEL2_DEFAULT,
1976 CFG_THROTTLE_DUTY_CYCLE_LEVEL2_MIN,
1977 CFG_THROTTLE_DUTY_CYCLE_LEVEL2_MAX),
1978
1979 REG_VARIABLE(CFG_THROTTLE_DUTY_CYCLE_LEVEL3_NAME, WLAN_PARAM_Integer,
1980 struct hdd_config, throttle_dutycycle_level3,
1981 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1982 CFG_THROTTLE_DUTY_CYCLE_LEVEL3_DEFAULT,
1983 CFG_THROTTLE_DUTY_CYCLE_LEVEL3_MIN,
1984 CFG_THROTTLE_DUTY_CYCLE_LEVEL3_MAX),
1985
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001986 REG_VARIABLE(CFG_ENABLE_MODULATED_DTIM_NAME, WLAN_PARAM_Integer,
1987 struct hdd_config, enableModulatedDTIM,
1988 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1989 CFG_ENABLE_MODULATED_DTIM_DEFAULT,
1990 CFG_ENABLE_MODULATED_DTIM_MIN,
1991 CFG_ENABLE_MODULATED_DTIM_MAX),
1992
1993 REG_VARIABLE(CFG_MC_ADDR_LIST_ENABLE_NAME, WLAN_PARAM_Integer,
1994 struct hdd_config, fEnableMCAddrList,
1995 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1996 CFG_MC_ADDR_LIST_ENABLE_DEFAULT,
1997 CFG_MC_ADDR_LIST_ENABLE_MIN,
1998 CFG_MC_ADDR_LIST_ENABLE_MAX),
1999
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002000 REG_VARIABLE(CFG_VHT_CHANNEL_WIDTH, WLAN_PARAM_Integer,
2001 struct hdd_config, vhtChannelWidth,
2002 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2003 CFG_VHT_CHANNEL_WIDTH_DEFAULT,
2004 CFG_VHT_CHANNEL_WIDTH_MIN,
2005 CFG_VHT_CHANNEL_WIDTH_MAX),
2006
2007 REG_VARIABLE(CFG_VHT_ENABLE_RX_MCS_8_9, WLAN_PARAM_Integer,
2008 struct hdd_config, vhtRxMCS,
2009 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2010 CFG_VHT_ENABLE_RX_MCS_8_9_DEFAULT,
2011 CFG_VHT_ENABLE_RX_MCS_8_9_MIN,
2012 CFG_VHT_ENABLE_RX_MCS_8_9_MAX),
2013
2014 REG_VARIABLE(CFG_VHT_ENABLE_TX_MCS_8_9, WLAN_PARAM_Integer,
2015 struct hdd_config, vhtTxMCS,
2016 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2017 CFG_VHT_ENABLE_TX_MCS_8_9_DEFAULT,
2018 CFG_VHT_ENABLE_TX_MCS_8_9_MIN,
2019 CFG_VHT_ENABLE_TX_MCS_8_9_MAX),
2020
2021 REG_VARIABLE(CFG_VHT_ENABLE_RX_MCS2x2_8_9, WLAN_PARAM_Integer,
2022 struct hdd_config, vhtRxMCS2x2,
2023 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2024 CFG_VHT_ENABLE_RX_MCS2x2_8_9_DEFAULT,
2025 CFG_VHT_ENABLE_RX_MCS2x2_8_9_MIN,
2026 CFG_VHT_ENABLE_RX_MCS2x2_8_9_MAX),
2027
2028 REG_VARIABLE(CFG_VHT_ENABLE_TX_MCS2x2_8_9, WLAN_PARAM_Integer,
2029 struct hdd_config, vhtTxMCS2x2,
2030 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2031 CFG_VHT_ENABLE_TX_MCS2x2_8_9_DEFAULT,
2032 CFG_VHT_ENABLE_TX_MCS2x2_8_9_MIN,
2033 CFG_VHT_ENABLE_TX_MCS2x2_8_9_MAX),
2034
2035 REG_VARIABLE(CFG_VHT_ENABLE_2x2_CAP_FEATURE, WLAN_PARAM_Integer,
2036 struct hdd_config, enable2x2,
2037 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2038 CFG_VHT_ENABLE_2x2_CAP_FEATURE_DEFAULT,
2039 CFG_VHT_ENABLE_2x2_CAP_FEATURE_MIN,
2040 CFG_VHT_ENABLE_2x2_CAP_FEATURE_MAX),
2041
Nitesh Shah0e5c7322017-03-23 14:55:11 +05302042 REG_VARIABLE(CFG_VDEV_TYPE_NSS_2G, WLAN_PARAM_Integer,
Kiran Kumar Lokere666bf852016-05-02 12:23:02 -07002043 struct hdd_config, vdev_type_nss_2g,
2044 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2045 CFG_VDEV_TYPE_NSS_2G_DEFAULT,
2046 CFG_VDEV_TYPE_NSS_2G_MIN,
2047 CFG_VDEV_TYPE_NSS_2G_MAX),
2048
Kiran Kumar Lokere1aa9c9a2016-10-05 18:50:59 -07002049 REG_VARIABLE(CFG_STA_PREFER_80MHZ_OVER_160MHZ, WLAN_PARAM_Integer,
2050 struct hdd_config, sta_prefer_80MHz_over_160MHz,
2051 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2052 CFG_STA_PREFER_80MHZ_OVER_160MHZ_DEFAULT,
2053 CFG_STA_PREFER_80MHZ_OVER_160MHZ_MIN,
2054 CFG_STA_PREFER_80MHZ_OVER_160MHZ_MAX),
2055
Nitesh Shah0e5c7322017-03-23 14:55:11 +05302056 REG_VARIABLE(CFG_VDEV_TYPE_NSS_5G, WLAN_PARAM_Integer,
Kiran Kumar Lokere666bf852016-05-02 12:23:02 -07002057 struct hdd_config, vdev_type_nss_5g,
2058 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2059 CFG_VDEV_TYPE_NSS_5G_DEFAULT,
2060 CFG_VDEV_TYPE_NSS_5G_MIN,
2061 CFG_VDEV_TYPE_NSS_5G_MAX),
2062
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002063 REG_VARIABLE(CFG_VHT_ENABLE_MU_BFORMEE_CAP_FEATURE, WLAN_PARAM_Integer,
2064 struct hdd_config, enableMuBformee,
2065 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2066 CFG_VHT_ENABLE_MU_BFORMEE_CAP_FEATURE_DEFAULT,
2067 CFG_VHT_ENABLE_MU_BFORMEE_CAP_FEATURE_MIN,
2068 CFG_VHT_ENABLE_MU_BFORMEE_CAP_FEATURE_MAX),
2069
2070 REG_VARIABLE(CFG_VHT_ENABLE_PAID_FEATURE, WLAN_PARAM_Integer,
2071 struct hdd_config, enableVhtpAid,
2072 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2073 CFG_VHT_ENABLE_PAID_FEATURE_DEFAULT,
2074 CFG_VHT_ENABLE_PAID_FEATURE_MIN,
2075 CFG_VHT_ENABLE_PAID_FEATURE_MAX),
2076
2077 REG_VARIABLE(CFG_VHT_ENABLE_GID_FEATURE, WLAN_PARAM_Integer,
2078 struct hdd_config, enableVhtGid,
2079 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2080 CFG_VHT_ENABLE_GID_FEATURE_DEFAULT,
2081 CFG_VHT_ENABLE_GID_FEATURE_MIN,
2082 CFG_VHT_ENABLE_GID_FEATURE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002083
2084 REG_VARIABLE(CFG_VHT_ENABLE_1x1_TX_CHAINMASK, WLAN_PARAM_Integer,
2085 struct hdd_config, txchainmask1x1,
2086 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2087 CFG_VHT_ENABLE_1x1_TX_CHAINMASK_DEFAULT,
2088 CFG_VHT_ENABLE_1x1_TX_CHAINMASK_MIN,
2089 CFG_VHT_ENABLE_1x1_TX_CHAINMASK_MAX),
2090
2091 REG_VARIABLE(CFG_VHT_ENABLE_1x1_RX_CHAINMASK, WLAN_PARAM_Integer,
2092 struct hdd_config, rxchainmask1x1,
2093 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2094 CFG_VHT_ENABLE_1x1_RX_CHAINMASK_DEFAULT,
2095 CFG_VHT_ENABLE_1x1_RX_CHAINMASK_MIN,
2096 CFG_VHT_ENABLE_1x1_RX_CHAINMASK_MAX),
2097
2098 REG_VARIABLE(CFG_ENABLE_AMPDUPS_FEATURE, WLAN_PARAM_Integer,
2099 struct hdd_config, enableAmpduPs,
2100 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2101 CFG_ENABLE_AMPDUPS_FEATURE_DEFAULT,
2102 CFG_ENABLE_AMPDUPS_FEATURE_MIN,
2103 CFG_ENABLE_AMPDUPS_FEATURE_MAX),
2104
2105 REG_VARIABLE(CFG_HT_ENABLE_SMPS_CAP_FEATURE, WLAN_PARAM_Integer,
2106 struct hdd_config, enableHtSmps,
2107 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2108 CFG_HT_ENABLE_SMPS_CAP_FEATURE_DEFAULT,
2109 CFG_HT_ENABLE_SMPS_CAP_FEATURE_MIN,
2110 CFG_HT_ENABLE_SMPS_CAP_FEATURE_MAX),
2111
2112 REG_VARIABLE(CFG_HT_SMPS_CAP_FEATURE, WLAN_PARAM_Integer,
2113 struct hdd_config, htSmps,
2114 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2115 CFG_HT_SMPS_CAP_FEATURE_DEFAULT,
2116 CFG_HT_SMPS_CAP_FEATURE_MIN,
2117 CFG_HT_SMPS_CAP_FEATURE_MAX),
2118
2119 REG_VARIABLE(CFG_DISABLE_DFS_CH_SWITCH, WLAN_PARAM_Integer,
2120 struct hdd_config, disableDFSChSwitch,
2121 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2122 CFG_DISABLE_DFS_CH_SWITCH_DEFAULT,
2123 CFG_DISABLE_DFS_CH_SWITCH_MIN,
2124 CFG_DISABLE_DFS_CH_SWITCH_MAX),
2125
2126 REG_VARIABLE(CFG_ENABLE_DFS_MASTER_CAPABILITY, WLAN_PARAM_Integer,
2127 struct hdd_config, enableDFSMasterCap,
2128 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2129 CFG_ENABLE_DFS_MASTER_CAPABILITY_DEFAULT,
2130 CFG_ENABLE_DFS_MASTER_CAPABILITY_MIN,
2131 CFG_ENABLE_DFS_MASTER_CAPABILITY_MAX),
2132
2133 REG_DYNAMIC_VARIABLE(CFG_SAP_PREFERRED_CHANNEL_LOCATION,
2134 WLAN_PARAM_Integer,
2135 struct hdd_config, gSapPreferredChanLocation,
2136 VAR_FLAGS_OPTIONAL |
2137 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2138 CFG_SAP_PREFERRED_CHANNEL_LOCATION_DEFAULT,
2139 CFG_SAP_PREFERRED_CHANNEL_LOCATION_MIN,
2140 CFG_SAP_PREFERRED_CHANNEL_LOCATION_MAX,
2141 cb_notify_set_g_sap_preferred_chan_location, 0),
2142 REG_DYNAMIC_VARIABLE(CFG_DISABLE_DFS_JAPAN_W53, WLAN_PARAM_Integer,
2143 struct hdd_config, gDisableDfsJapanW53,
2144 VAR_FLAGS_OPTIONAL |
2145 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2146 CFG_DISABLE_DFS_JAPAN_W53_DEFAULT,
2147 CFG_DISABLE_DFS_JAPAN_W53_MIN,
2148 CFG_DISABLE_DFS_JAPAN_W53_MAX,
2149 ch_notify_set_g_disable_dfs_japan_w53, 0),
Hong Shi417824f2017-01-12 02:31:14 +08002150
2151 REG_VARIABLE(CFG_MAX_HT_MCS_FOR_TX_DATA, WLAN_PARAM_HexInteger,
2152 struct hdd_config, max_ht_mcs_txdata,
2153 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2154 CFG_MAX_HT_MCS_FOR_TX_DATA_DEFAULT,
2155 CFG_MAX_HT_MCS_FOR_TX_DATA_MIN,
2156 CFG_MAX_HT_MCS_FOR_TX_DATA_MAX),
2157
Hong Shia9ef8712017-02-19 21:54:02 +08002158 REG_VARIABLE(CFG_DISABLE_ABG_RATE_FOR_TX_DATA, WLAN_PARAM_Integer,
2159 struct hdd_config, disable_abg_rate_txdata,
2160 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2161 CFG_DISABLE_ABG_RATE_FOR_TX_DATA_DEFAULT,
2162 CFG_DISABLE_ABG_RATE_FOR_TX_DATA_MIN,
2163 CFG_DISABLE_ABG_RATE_FOR_TX_DATA_MAX),
2164
Hong Shib90718f2017-02-20 00:57:22 +08002165 REG_VARIABLE(CFG_RATE_FOR_TX_MGMT, WLAN_PARAM_HexInteger,
2166 struct hdd_config, rate_for_tx_mgmt,
2167 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2168 CFG_RATE_FOR_TX_MGMT_DEFAULT,
2169 CFG_RATE_FOR_TX_MGMT_MIN,
2170 CFG_RATE_FOR_TX_MGMT_MAX),
2171
Hong Shi2d384fd2017-05-22 18:38:41 +08002172 REG_VARIABLE(CFG_RATE_FOR_TX_MGMT_2G, WLAN_PARAM_HexInteger,
2173 struct hdd_config, rate_for_tx_mgmt_2g,
2174 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2175 CFG_RATE_FOR_TX_MGMT_2G_DEFAULT,
2176 CFG_RATE_FOR_TX_MGMT_2G_MIN,
2177 CFG_RATE_FOR_TX_MGMT_2G_MAX),
2178
2179 REG_VARIABLE(CFG_RATE_FOR_TX_MGMT_5G, WLAN_PARAM_HexInteger,
2180 struct hdd_config, rate_for_tx_mgmt_5g,
2181 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2182 CFG_RATE_FOR_TX_MGMT_5G_DEFAULT,
2183 CFG_RATE_FOR_TX_MGMT_5G_MIN,
2184 CFG_RATE_FOR_TX_MGMT_5G_MAX),
2185
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002186 REG_VARIABLE(CFG_ENABLE_FIRST_SCAN_2G_ONLY_NAME, WLAN_PARAM_Integer,
2187 struct hdd_config, enableFirstScan2GOnly,
2188 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2189 CFG_ENABLE_FIRST_SCAN_2G_ONLY_DEFAULT,
2190 CFG_ENABLE_FIRST_SCAN_2G_ONLY_MIN,
2191 CFG_ENABLE_FIRST_SCAN_2G_ONLY_MAX),
2192
2193 REG_VARIABLE(CFG_ENABLE_SKIP_DFS_IN_P2P_SEARCH_NAME, WLAN_PARAM_Integer,
2194 struct hdd_config, skipDfsChnlInP2pSearch,
2195 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2196 CFG_ENABLE_SKIP_DFS_IN_P2P_SEARCH_DEFAULT,
2197 CFG_ENABLE_SKIP_DFS_IN_P2P_SEARCH_MIN,
2198 CFG_ENABLE_SKIP_DFS_IN_P2P_SEARCH_MAX),
2199
2200 REG_VARIABLE(CFG_IGNORE_DYNAMIC_DTIM_IN_P2P_MODE_NAME,
2201 WLAN_PARAM_Integer,
2202 struct hdd_config, ignoreDynamicDtimInP2pMode,
2203 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2204 CFG_IGNORE_DYNAMIC_DTIM_IN_P2P_MODE_DEFAULT,
2205 CFG_IGNORE_DYNAMIC_DTIM_IN_P2P_MODE_MIN,
2206 CFG_IGNORE_DYNAMIC_DTIM_IN_P2P_MODE_MAX),
2207
2208 REG_VARIABLE(CFG_ENABLE_RX_STBC, WLAN_PARAM_Integer,
2209 struct hdd_config, enableRxSTBC,
2210 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2211 CFG_ENABLE_RX_STBC_DEFAULT,
2212 CFG_ENABLE_RX_STBC_MIN,
2213 CFG_ENABLE_RX_STBC_MAX),
2214
2215 REG_VARIABLE(CFG_ENABLE_TX_STBC, WLAN_PARAM_Integer,
2216 struct hdd_config, enableTxSTBC,
2217 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2218 CFG_ENABLE_TX_STBC_DEFAULT,
2219 CFG_ENABLE_TX_STBC_MIN,
2220 CFG_ENABLE_TX_STBC_MAX),
2221
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002222 REG_VARIABLE(CFG_PPS_ENABLE_5G_EBT, WLAN_PARAM_Integer,
2223 struct hdd_config, enable5gEBT,
2224 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2225 CFG_PPS_ENABLE_5G_EBT_FEATURE_DEFAULT,
2226 CFG_PPS_ENABLE_5G_EBT_FEATURE_MIN,
2227 CFG_PPS_ENABLE_5G_EBT_FEATURE_MAX),
2228
Dustin Brownfe7aa872017-06-26 10:52:08 -07002229 REG_VARIABLE(CFG_PREVENT_LINK_DOWN_NAME, WLAN_PARAM_Integer,
2230 struct hdd_config, prevent_link_down,
2231 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2232 CFG_PREVENT_LINK_DOWN_DEFAULT,
2233 CFG_PREVENT_LINK_DOWN_MIN,
2234 CFG_PREVENT_LINK_DOWN_MAX),
2235
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002236#ifdef FEATURE_WLAN_TDLS
2237 REG_VARIABLE(CFG_TDLS_SUPPORT_ENABLE, WLAN_PARAM_Integer,
2238 struct hdd_config, fEnableTDLSSupport,
2239 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2240 CFG_TDLS_SUPPORT_ENABLE_DEFAULT,
2241 CFG_TDLS_SUPPORT_ENABLE_MIN,
2242 CFG_TDLS_SUPPORT_ENABLE_MAX),
2243
2244 REG_VARIABLE(CFG_TDLS_IMPLICIT_TRIGGER, WLAN_PARAM_Integer,
2245 struct hdd_config, fEnableTDLSImplicitTrigger,
2246 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2247 CFG_TDLS_IMPLICIT_TRIGGER_DEFAULT,
2248 CFG_TDLS_IMPLICIT_TRIGGER_MIN,
2249 CFG_TDLS_IMPLICIT_TRIGGER_MAX),
2250
2251 REG_VARIABLE(CFG_TDLS_TX_STATS_PERIOD, WLAN_PARAM_Integer,
2252 struct hdd_config, fTDLSTxStatsPeriod,
2253 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2254 CFG_TDLS_TX_STATS_PERIOD_DEFAULT,
2255 CFG_TDLS_TX_STATS_PERIOD_MIN,
2256 CFG_TDLS_TX_STATS_PERIOD_MAX),
2257
2258 REG_VARIABLE(CFG_TDLS_TX_PACKET_THRESHOLD, WLAN_PARAM_Integer,
2259 struct hdd_config, fTDLSTxPacketThreshold,
2260 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2261 CFG_TDLS_TX_PACKET_THRESHOLD_DEFAULT,
2262 CFG_TDLS_TX_PACKET_THRESHOLD_MIN,
2263 CFG_TDLS_TX_PACKET_THRESHOLD_MAX),
2264
2265 REG_VARIABLE(CFG_TDLS_MAX_DISCOVERY_ATTEMPT, WLAN_PARAM_Integer,
2266 struct hdd_config, fTDLSMaxDiscoveryAttempt,
2267 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2268 CFG_TDLS_MAX_DISCOVERY_ATTEMPT_DEFAULT,
2269 CFG_TDLS_MAX_DISCOVERY_ATTEMPT_MIN,
2270 CFG_TDLS_MAX_DISCOVERY_ATTEMPT_MAX),
2271
Kabilan Kannanca670be2015-11-23 01:56:12 -08002272 REG_VARIABLE(CFG_TDLS_IDLE_TIMEOUT, WLAN_PARAM_Integer,
2273 struct hdd_config, tdls_idle_timeout,
2274 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2275 CFG_TDLS_IDLE_TIMEOUT_DEFAULT,
2276 CFG_TDLS_IDLE_TIMEOUT_MIN,
2277 CFG_TDLS_IDLE_TIMEOUT_MAX),
2278
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002279 REG_VARIABLE(CFG_TDLS_IDLE_PACKET_THRESHOLD, WLAN_PARAM_Integer,
2280 struct hdd_config, fTDLSIdlePacketThreshold,
2281 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2282 CFG_TDLS_IDLE_PACKET_THRESHOLD_DEFAULT,
2283 CFG_TDLS_IDLE_PACKET_THRESHOLD_MIN,
2284 CFG_TDLS_IDLE_PACKET_THRESHOLD_MAX),
2285
2286 REG_VARIABLE(CFG_TDLS_RSSI_TRIGGER_THRESHOLD, WLAN_PARAM_SignedInteger,
2287 struct hdd_config, fTDLSRSSITriggerThreshold,
2288 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2289 CFG_TDLS_RSSI_TRIGGER_THRESHOLD_DEFAULT,
2290 CFG_TDLS_RSSI_TRIGGER_THRESHOLD_MIN,
2291 CFG_TDLS_RSSI_TRIGGER_THRESHOLD_MAX),
2292
2293 REG_VARIABLE(CFG_TDLS_RSSI_TEARDOWN_THRESHOLD, WLAN_PARAM_SignedInteger,
2294 struct hdd_config, fTDLSRSSITeardownThreshold,
2295 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2296 CFG_TDLS_RSSI_TEARDOWN_THRESHOLD_DEFAULT,
2297 CFG_TDLS_RSSI_TEARDOWN_THRESHOLD_MIN,
2298 CFG_TDLS_RSSI_TEARDOWN_THRESHOLD_MAX),
2299
2300 REG_VARIABLE(CFG_TDLS_RSSI_DELTA, WLAN_PARAM_SignedInteger,
2301 struct hdd_config, fTDLSRSSIDelta,
2302 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2303 CFG_TDLS_RSSI_DELTA_DEFAULT,
2304 CFG_TDLS_RSSI_DELTA_MIN,
2305 CFG_TDLS_RSSI_DELTA_MAX),
2306
2307 REG_VARIABLE(CFG_TDLS_QOS_WMM_UAPSD_MASK_NAME, WLAN_PARAM_HexInteger,
2308 struct hdd_config, fTDLSUapsdMask,
2309 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2310 CFG_TDLS_QOS_WMM_UAPSD_MASK_DEFAULT,
2311 CFG_TDLS_QOS_WMM_UAPSD_MASK_MIN,
2312 CFG_TDLS_QOS_WMM_UAPSD_MASK_MAX),
2313
2314 REG_VARIABLE(CFG_TDLS_BUFFER_STA_SUPPORT_ENABLE, WLAN_PARAM_Integer,
2315 struct hdd_config, fEnableTDLSBufferSta,
2316 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2317 CFG_TDLS_BUFFER_STA_SUPPORT_ENABLE_DEFAULT,
2318 CFG_TDLS_BUFFER_STA_SUPPORT_ENABLE_MIN,
2319 CFG_TDLS_BUFFER_STA_SUPPORT_ENABLE_MAX),
2320
2321 REG_VARIABLE(CFG_TDLS_OFF_CHANNEL_SUPPORT_ENABLE, WLAN_PARAM_Integer,
2322 struct hdd_config, fEnableTDLSOffChannel,
2323 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2324 CFG_TDLS_OFF_CHANNEL_SUPPORT_ENABLE_DEFAULT,
2325 CFG_TDLS_OFF_CHANNEL_SUPPORT_ENABLE_MIN,
2326 CFG_TDLS_OFF_CHANNEL_SUPPORT_ENABLE_MAX),
2327
2328 REG_VARIABLE(CFG_TDLS_PREFERRED_OFF_CHANNEL_NUM, WLAN_PARAM_Integer,
2329 struct hdd_config, fTDLSPrefOffChanNum,
2330 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2331 CFG_TDLS_PREFERRED_OFF_CHANNEL_NUM_DEFAULT,
2332 CFG_TDLS_PREFERRED_OFF_CHANNEL_NUM_MIN,
2333 CFG_TDLS_PREFERRED_OFF_CHANNEL_NUM_MAX),
2334
2335 REG_VARIABLE(CFG_TDLS_PREFERRED_OFF_CHANNEL_BW, WLAN_PARAM_Integer,
2336 struct hdd_config, fTDLSPrefOffChanBandwidth,
2337 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2338 CFG_TDLS_PREFERRED_OFF_CHANNEL_BW_DEFAULT,
2339 CFG_TDLS_PREFERRED_OFF_CHANNEL_BW_MIN,
2340 CFG_TDLS_PREFERRED_OFF_CHANNEL_BW_MAX),
2341
2342 REG_VARIABLE(CFG_TDLS_PUAPSD_INACTIVITY_TIME, WLAN_PARAM_Integer,
2343 struct hdd_config, fTDLSPuapsdInactivityTimer,
2344 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2345 CFG_TDLS_PUAPSD_INACTIVITY_TIME_DEFAULT,
2346 CFG_TDLS_PUAPSD_INACTIVITY_TIME_MIN,
2347 CFG_TDLS_PUAPSD_INACTIVITY_TIME_MAX),
2348
2349 REG_VARIABLE(CFG_TDLS_PUAPSD_RX_FRAME_THRESHOLD, WLAN_PARAM_Integer,
2350 struct hdd_config, fTDLSRxFrameThreshold,
2351 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2352 CFG_TDLS_PUAPSD_RX_FRAME_THRESHOLD_DEFAULT,
2353 CFG_TDLS_PUAPSD_RX_FRAME_THRESHOLD_MIN,
2354 CFG_TDLS_PUAPSD_RX_FRAME_THRESHOLD_MAX),
2355
2356 REG_VARIABLE(CFG_TDLS_PUAPSD_PEER_TRAFFIC_IND_WINDOW,
2357 WLAN_PARAM_Integer,
2358 struct hdd_config, fTDLSPuapsdPTIWindow,
2359 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2360 CFG_TDLS_PUAPSD_PEER_TRAFFIC_IND_WINDOW_DEFAULT,
2361 CFG_TDLS_PUAPSD_PEER_TRAFFIC_IND_WINDOW_MIN,
2362 CFG_TDLS_PUAPSD_PEER_TRAFFIC_IND_WINDOW_MAX),
2363
2364 REG_VARIABLE(CFG_TDLS_PUAPSD_PEER_TRAFFIC_RSP_TIMEOUT,
2365 WLAN_PARAM_Integer,
2366 struct hdd_config, fTDLSPuapsdPTRTimeout,
2367 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2368 CFG_TDLS_PUAPSD_PEER_TRAFFIC_RSP_TIMEOUT_DEFAULT,
2369 CFG_TDLS_PUAPSD_PEER_TRAFFIC_RSP_TIMEOUT_MIN,
2370 CFG_TDLS_PUAPSD_PEER_TRAFFIC_RSP_TIMEOUT_MAX),
2371
2372 REG_VARIABLE(CFG_TDLS_EXTERNAL_CONTROL, WLAN_PARAM_Integer,
2373 struct hdd_config, fTDLSExternalControl,
2374 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2375 CFG_TDLS_EXTERNAL_CONTROL_DEFAULT,
2376 CFG_TDLS_EXTERNAL_CONTROL_MIN,
2377 CFG_TDLS_EXTERNAL_CONTROL_MAX),
2378 REG_VARIABLE(CFG_TDLS_WMM_MODE_ENABLE, WLAN_PARAM_Integer,
2379 struct hdd_config, fEnableTDLSWmmMode,
2380 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2381 CFG_TDLS_WMM_MODE_ENABLE_DEFAULT,
2382 CFG_TDLS_WMM_MODE_ENABLE_MIN,
2383 CFG_TDLS_WMM_MODE_ENABLE_MAX),
2384
2385 REG_VARIABLE(CFG_TDLS_SCAN_ENABLE, WLAN_PARAM_Integer,
2386 struct hdd_config, enable_tdls_scan,
2387 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2388 CFG_TDLS_SCAN_ENABLE_DEFAULT,
2389 CFG_TDLS_SCAN_ENABLE_MIN,
2390 CFG_TDLS_SCAN_ENABLE_MAX),
Kabilan Kannan421714b2015-11-23 04:44:59 -08002391
2392 REG_VARIABLE(CFG_TDLS_PEER_KICKOUT_THRESHOLD, WLAN_PARAM_Integer,
2393 struct hdd_config, tdls_peer_kickout_threshold,
2394 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2395 CFG_TDLS_PEER_KICKOUT_THRESHOLD_DEFAULT,
2396 CFG_TDLS_PEER_KICKOUT_THRESHOLD_MIN,
2397 CFG_TDLS_PEER_KICKOUT_THRESHOLD_MAX),
2398
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002399#endif
2400
2401#ifdef WLAN_SOFTAP_VSTA_FEATURE
2402 REG_VARIABLE(CFG_VSTA_SUPPORT_ENABLE, WLAN_PARAM_Integer,
2403 struct hdd_config, fEnableVSTASupport,
2404 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2405 CFG_VSTA_SUPPORT_ENABLE_DEFAULT,
2406 CFG_VSTA_SUPPORT_ENABLE_MIN,
2407 CFG_VSTA_SUPPORT_ENABLE_MAX),
2408#endif
2409 REG_VARIABLE(CFG_ENABLE_LPWR_IMG_TRANSITION_NAME, WLAN_PARAM_Integer,
2410 struct hdd_config, enableLpwrImgTransition,
2411 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2412 CFG_ENABLE_LPWR_IMG_TRANSITION_DEFAULT,
2413 CFG_ENABLE_LPWR_IMG_TRANSITION_MIN,
2414 CFG_ENABLE_LPWR_IMG_TRANSITION_MAX),
2415
2416 REG_VARIABLE(CFG_ENABLE_LPWR_IMG_TRANSITION_NAME, WLAN_PARAM_Integer,
2417 struct hdd_config, enableLpwrImgTransition,
2418 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2419 CFG_ENABLE_LPWR_IMG_TRANSITION_DEFAULT,
2420 CFG_ENABLE_LPWR_IMG_TRANSITION_MIN,
2421 CFG_ENABLE_LPWR_IMG_TRANSITION_MAX),
2422
2423 REG_VARIABLE(CFG_SCAN_AGING_PARAM_NAME, WLAN_PARAM_Integer,
2424 struct hdd_config, scanAgingTimeout,
2425 VAR_FLAGS_OPTIONAL,
2426 CFG_SCAN_AGING_PARAM_DEFAULT,
2427 CFG_SCAN_AGING_PARAM_MIN,
2428 CFG_SCAN_AGING_PARAM_MAX),
2429
2430 REG_VARIABLE(CFG_TX_LDPC_ENABLE_FEATURE, WLAN_PARAM_Integer,
Krunal Sonia2c0e412017-05-04 14:12:41 +05302431 struct hdd_config, enable_tx_ldpc,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002432 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2433 CFG_TX_LDPC_ENABLE_FEATURE_DEFAULT,
2434 CFG_TX_LDPC_ENABLE_FEATURE_MIN,
2435 CFG_TX_LDPC_ENABLE_FEATURE_MAX),
2436
Krunal Sonia2c0e412017-05-04 14:12:41 +05302437 REG_VARIABLE(CFG_ENABLE_RX_LDPC, WLAN_PARAM_Integer,
2438 struct hdd_config, enable_rx_ldpc,
2439 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2440 CFG_ENABLE_RX_LDPC_DEFAULT,
2441 CFG_ENABLE_RX_LDPC_MIN,
2442 CFG_ENABLE_RX_LDPC_MAX),
2443
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002444 REG_VARIABLE(CFG_ENABLE_MCC_ADATIVE_SCHEDULER_ENABLED_NAME,
2445 WLAN_PARAM_Integer,
2446 struct hdd_config, enableMCCAdaptiveScheduler,
2447 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2448 CFG_ENABLE_MCC_ADATIVE_SCHEDULER_ENABLED_DEFAULT,
2449 CFG_ENABLE_MCC_ADATIVE_SCHEDULER_ENABLED_MIN,
2450 CFG_ENABLE_MCC_ADATIVE_SCHEDULER_ENABLED_MAX),
2451
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002452 REG_VARIABLE(CFG_IBSS_ADHOC_CHANNEL_5GHZ_NAME, WLAN_PARAM_Integer,
2453 struct hdd_config, AdHocChannel5G,
2454 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2455 CFG_IBSS_ADHOC_CHANNEL_5GHZ_DEFAULT,
2456 CFG_IBSS_ADHOC_CHANNEL_5GHZ_MIN,
2457 CFG_IBSS_ADHOC_CHANNEL_5GHZ_MAX),
2458
2459 REG_VARIABLE(CFG_IBSS_ADHOC_CHANNEL_24GHZ_NAME, WLAN_PARAM_Integer,
2460 struct hdd_config, AdHocChannel24G,
2461 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2462 CFG_IBSS_ADHOC_CHANNEL_24GHZ_DEFAULT,
2463 CFG_IBSS_ADHOC_CHANNEL_24GHZ_MIN,
2464 CFG_IBSS_ADHOC_CHANNEL_24GHZ_MAX),
2465
2466 REG_VARIABLE(CFG_VHT_SU_BEAMFORMEE_CAP_FEATURE, WLAN_PARAM_Integer,
2467 struct hdd_config, enableTxBF,
2468 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2469 CFG_VHT_SU_BEAMFORMEE_CAP_FEATURE_DEFAULT,
2470 CFG_VHT_SU_BEAMFORMEE_CAP_FEATURE_MIN,
2471 CFG_VHT_SU_BEAMFORMEE_CAP_FEATURE_MAX),
2472
Kiran Kumar Lokere5302ab62015-12-16 16:03:16 -08002473 REG_VARIABLE(CFG_VHT_ENABLE_TXBF_SAP_MODE, WLAN_PARAM_Integer,
2474 struct hdd_config, enable_txbf_sap_mode,
2475 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2476 CFG_VHT_ENABLE_TXBF_SAP_MODE_DEFAULT,
2477 CFG_VHT_ENABLE_TXBF_SAP_MODE_MIN,
2478 CFG_VHT_ENABLE_TXBF_SAP_MODE_MAX),
2479
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002480 REG_VARIABLE(CFG_VHT_ENABLE_TXBF_IN_20MHZ, WLAN_PARAM_Integer,
2481 struct hdd_config, enableTxBFin20MHz,
2482 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2483 CFG_VHT_ENABLE_TXBF_IN_20MHZ_DEFAULT,
2484 CFG_VHT_ENABLE_TXBF_IN_20MHZ_MIN,
2485 CFG_VHT_ENABLE_TXBF_IN_20MHZ_MAX),
2486
2487 REG_VARIABLE(CFG_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED, WLAN_PARAM_Integer,
2488 struct hdd_config, txBFCsnValue,
2489 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2490 CFG_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED_DEFAULT,
2491 CFG_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED_MIN,
2492 CFG_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED_MAX),
2493
2494 REG_VARIABLE(CFG_VHT_ENABLE_TX_SU_BEAM_FORMER, WLAN_PARAM_Integer,
2495 struct hdd_config, enable_su_tx_bformer,
2496 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2497 CFG_VHT_ENABLE_TX_SU_BEAM_FORMER_DEFAULT,
2498 CFG_VHT_ENABLE_TX_SU_BEAM_FORMER_MIN,
2499 CFG_VHT_ENABLE_TX_SU_BEAM_FORMER_MAX),
2500
2501 REG_VARIABLE(CFG_SAP_ALLOW_ALL_CHANNEL_PARAM_NAME, WLAN_PARAM_Integer,
2502 struct hdd_config, sapAllowAllChannel,
2503 VAR_FLAGS_OPTIONAL,
2504 CFG_SAP_ALLOW_ALL_CHANNEL_PARAM_DEFAULT,
2505 CFG_SAP_ALLOW_ALL_CHANNEL_PARAM_MIN,
2506 CFG_SAP_ALLOW_ALL_CHANNEL_PARAM_MAX),
2507
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002508 REG_VARIABLE(CFG_DISABLE_LDPC_WITH_TXBF_AP, WLAN_PARAM_Integer,
2509 struct hdd_config, disableLDPCWithTxbfAP,
2510 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2511 CFG_DISABLE_LDPC_WITH_TXBF_AP_DEFAULT,
2512 CFG_DISABLE_LDPC_WITH_TXBF_AP_MIN,
2513 CFG_DISABLE_LDPC_WITH_TXBF_AP_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002514
2515 REG_DYNAMIC_VARIABLE(CFG_ENABLE_SSR, WLAN_PARAM_Integer,
2516 struct hdd_config, enableSSR,
2517 VAR_FLAGS_OPTIONAL |
2518 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2519 CFG_ENABLE_SSR_DEFAULT,
2520 CFG_ENABLE_SSR_MIN,
2521 CFG_ENABLE_SSR_MAX,
2522 cb_notify_set_enable_ssr, 0),
2523
2524 REG_VARIABLE(CFG_MAX_MEDIUM_TIME, WLAN_PARAM_Integer,
2525 struct hdd_config, cfgMaxMediumTime,
2526 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2527 CFG_MAX_MEDIUM_TIME_STADEFAULT,
2528 CFG_MAX_MEDIUM_TIME_STAMIN,
2529 CFG_MAX_MEDIUM_TIME_STAMAX),
2530
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002531 REG_VARIABLE(CFG_ENABLE_VHT_FOR_24GHZ_NAME, WLAN_PARAM_Integer,
2532 struct hdd_config, enableVhtFor24GHzBand,
2533 VAR_FLAGS_OPTIONAL,
2534 CFG_ENABLE_VHT_FOR_24GHZ_DEFAULT,
2535 CFG_ENABLE_VHT_FOR_24GHZ_MIN,
2536 CFG_ENABLE_VHT_FOR_24GHZ_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002537
Kapil Gupta4b2efbb2016-10-03 13:07:20 +05302538
2539 REG_VARIABLE(CFG_ENABLE_VENDOR_VHT_FOR_24GHZ_NAME, WLAN_PARAM_Integer,
2540 struct hdd_config, enable_sap_vendor_vht,
2541 VAR_FLAGS_OPTIONAL,
2542 CFG_ENABLE_VENDOR_VHT_FOR_24GHZ_DEFAULT,
2543 CFG_ENABLE_VENDOR_VHT_FOR_24GHZ_MIN,
2544 CFG_ENABLE_VENDOR_VHT_FOR_24GHZ_MAX),
2545
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002546 REG_DYNAMIC_VARIABLE(CFG_ENABLE_FAST_ROAM_IN_CONCURRENCY,
2547 WLAN_PARAM_Integer,
2548 struct hdd_config, bFastRoamInConIniFeatureEnabled,
2549 VAR_FLAGS_OPTIONAL |
2550 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2551 CFG_ENABLE_FAST_ROAM_IN_CONCURRENCY_DEFAULT,
2552 CFG_ENABLE_FAST_ROAM_IN_CONCURRENCY_MIN,
2553 CFG_ENABLE_FAST_ROAM_IN_CONCURRENCY_MAX,
2554 cb_notify_set_enable_fast_roam_in_concurrency, 0),
2555
2556 REG_VARIABLE(CFG_ENABLE_ADAPT_RX_DRAIN_NAME, WLAN_PARAM_Integer,
2557 struct hdd_config, fEnableAdaptRxDrain,
2558 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2559 CFG_ENABLE_ADAPT_RX_DRAIN_DEFAULT,
2560 CFG_ENABLE_ADAPT_RX_DRAIN_MIN,
2561 CFG_ENABLE_ADAPT_RX_DRAIN_MAX),
2562
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002563 REG_VARIABLE(CFG_ENABLE_HEART_BEAT_OFFLOAD, WLAN_PARAM_Integer,
2564 struct hdd_config, enableIbssHeartBeatOffload,
2565 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2566 CFG_ENABLE_HEART_BEAT_OFFLOAD_DEFAULT,
2567 CFG_ENABLE_HEART_BEAT_OFFLOAD_MIN,
2568 CFG_ENABLE_HEART_BEAT_OFFLOAD_MAX),
2569
2570 REG_VARIABLE(CFG_ANTENNA_DIVERSITY_PARAM_NAME, WLAN_PARAM_Integer,
2571 struct hdd_config, antennaDiversity,
2572 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2573 CFG_ANTENNA_DIVERSITY_PARAM_DEFAULT,
2574 CFG_ANTENNA_DIVERSITY_PARAM_MIN,
2575 CFG_ANTENNA_DIVERSITY_PARAM_MAX),
2576
2577 REG_VARIABLE(CFG_ENABLE_SNR_MONITORING_NAME, WLAN_PARAM_Integer,
2578 struct hdd_config, fEnableSNRMonitoring,
2579 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2580 CFG_ENABLE_SNR_MONITORING_DEFAULT,
2581 CFG_ENABLE_SNR_MONITORING_MIN,
2582 CFG_ENABLE_SNR_MONITORING_MAX),
2583
2584#ifdef FEATURE_WLAN_SCAN_PNO
2585 REG_VARIABLE(CFG_PNO_SCAN_SUPPORT, WLAN_PARAM_Integer,
2586 struct hdd_config, configPNOScanSupport,
2587 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2588 CFG_PNO_SCAN_SUPPORT_DEFAULT,
2589 CFG_PNO_SCAN_SUPPORT_DISABLE,
2590 CFG_PNO_SCAN_SUPPORT_ENABLE),
2591
2592 REG_VARIABLE(CFG_PNO_SCAN_TIMER_REPEAT_VALUE, WLAN_PARAM_Integer,
2593 struct hdd_config, configPNOScanTimerRepeatValue,
2594 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2595 CFG_PNO_SCAN_TIMER_REPEAT_VALUE_DEFAULT,
2596 CFG_PNO_SCAN_TIMER_REPEAT_VALUE_MIN,
2597 CFG_PNO_SCAN_TIMER_REPEAT_VALUE_MAX),
Srinivas Girigowdabdc98162015-09-17 11:06:07 -07002598
2599 REG_VARIABLE(CFG_PNO_SLOW_SCAN_MULTIPLIER, WLAN_PARAM_Integer,
2600 struct hdd_config, pno_slow_scan_multiplier,
2601 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2602 CFG_PNO_SLOW_SCAN_MULTIPLIER_DEFAULT,
2603 CFG_PNO_SLOW_SCAN_MULTIPLIER_MIN,
2604 CFG_PNO_SLOW_SCAN_MULTIPLIER_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002605#endif
Deepak Dhamdhere612392c2016-08-28 02:56:51 -07002606 REG_VARIABLE(CFG_MAX_AMSDU_NUM_NAME , WLAN_PARAM_Integer,
2607 struct hdd_config, max_amsdu_num,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002608 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
Deepak Dhamdhere612392c2016-08-28 02:56:51 -07002609 CFG_MAX_AMSDU_NUM_DEFAULT,
2610 CFG_MAX_AMSDU_NUM_MIN,
2611 CFG_MAX_AMSDU_NUM_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002612
2613 REG_VARIABLE(CFG_STRICT_5GHZ_PREF_BY_MARGIN, WLAN_PARAM_Integer,
2614 struct hdd_config, nSelect5GHzMargin,
2615 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2616 CFG_STRICT_5GHZ_PREF_BY_MARGIN_DEFAULT,
2617 CFG_STRICT_5GHZ_PREF_BY_MARGIN_MIN,
2618 CFG_STRICT_5GHZ_PREF_BY_MARGIN_MAX),
2619
2620 REG_VARIABLE(CFG_ENABLE_IP_TCP_UDP_CHKSUM_OFFLOAD, WLAN_PARAM_Integer,
2621 struct hdd_config, enable_ip_tcp_udp_checksum_offload,
2622 VAR_FLAGS_OPTIONAL,
2623 CFG_ENABLE_IP_TCP_UDP_CHKSUM_OFFLOAD_DEFAULT,
2624 CFG_ENABLE_IP_TCP_UDP_CHKSUM_OFFLOAD_DISABLE,
2625 CFG_ENABLE_IP_TCP_UDP_CHKSUM_OFFLOAD_ENABLE),
2626
2627 REG_VARIABLE(CFG_POWERSAVE_OFFLOAD_NAME, WLAN_PARAM_Integer,
2628 struct hdd_config, enablePowersaveOffload,
2629 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2630 CFG_POWERSAVE_OFFLOAD_DEFAULT,
2631 CFG_POWERSAVE_OFFLOAD_MIN,
2632 CFG_POWERSAVE_OFFLOAD_MAX),
2633
2634 REG_VARIABLE(CFG_ENABLE_FW_UART_PRINT_NAME, WLAN_PARAM_Integer,
2635 struct hdd_config, enablefwprint,
2636 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2637 CFG_ENABLE_FW_UART_PRINT_DEFAULT,
2638 CFG_ENABLE_FW_UART_PRINT_DISABLE,
2639 CFG_ENABLE_FW_UART_PRINT_ENABLE),
2640
2641 REG_VARIABLE(CFG_ENABLE_FW_LOG_NAME, WLAN_PARAM_Integer,
Komal Seelamc11bb222016-01-27 18:57:10 +05302642 struct hdd_config, enable_fw_log,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002643 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2644 CFG_ENABLE_FW_LOG_DEFAULT,
2645 CFG_ENABLE_FW_LOG_DISABLE,
Yuanyuan Liu7a97b8f2017-01-27 10:42:52 -08002646 CFG_ENABLE_FW_LOG_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002647
2648#ifdef IPA_OFFLOAD
2649 REG_VARIABLE(CFG_IPA_OFFLOAD_CONFIG_NAME, WLAN_PARAM_HexInteger,
2650 struct hdd_config, IpaConfig,
2651 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2652 CFG_IPA_OFFLOAD_CONFIG_DEFAULT,
2653 CFG_IPA_OFFLOAD_CONFIG_MIN,
2654 CFG_IPA_OFFLOAD_CONFIG_MAX),
2655
2656 REG_VARIABLE(CFG_IPA_DESC_SIZE_NAME, WLAN_PARAM_Integer,
2657 struct hdd_config, IpaDescSize,
2658 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2659 CFG_IPA_DESC_SIZE_DEFAULT,
2660 CFG_IPA_DESC_SIZE_MIN,
2661 CFG_IPA_DESC_SIZE_MAX),
2662
2663 REG_VARIABLE(CFG_IPA_HIGH_BANDWIDTH_MBPS, WLAN_PARAM_Integer,
2664 struct hdd_config, IpaHighBandwidthMbps,
2665 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2666 CFG_IPA_HIGH_BANDWIDTH_MBPS_DEFAULT,
2667 CFG_IPA_HIGH_BANDWIDTH_MBPS_MIN,
2668 CFG_IPA_HIGH_BANDWIDTH_MBPS_MAX),
2669
2670 REG_VARIABLE(CFG_IPA_MEDIUM_BANDWIDTH_MBPS, WLAN_PARAM_Integer,
2671 struct hdd_config, IpaMediumBandwidthMbps,
2672 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2673 CFG_IPA_MEDIUM_BANDWIDTH_MBPS_DEFAULT,
2674 CFG_IPA_MEDIUM_BANDWIDTH_MBPS_MIN,
2675 CFG_IPA_MEDIUM_BANDWIDTH_MBPS_MAX),
2676
2677 REG_VARIABLE(CFG_IPA_LOW_BANDWIDTH_MBPS, WLAN_PARAM_Integer,
2678 struct hdd_config, IpaLowBandwidthMbps,
2679 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2680 CFG_IPA_LOW_BANDWIDTH_MBPS_DEFAULT,
2681 CFG_IPA_LOW_BANDWIDTH_MBPS_MIN,
2682 CFG_IPA_LOW_BANDWIDTH_MBPS_MAX),
2683#endif
2684
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002685 REG_VARIABLE(CFG_VHT_AMPDU_LEN_EXPONENT_NAME, WLAN_PARAM_Integer,
2686 struct hdd_config, fVhtAmpduLenExponent,
2687 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2688 CFG_VHT_AMPDU_LEN_EXPONENT_DEFAULT,
2689 CFG_VHT_AMPDU_LEN_EXPONENT_MIN,
2690 CFG_VHT_AMPDU_LEN_EXPONENT_MAX),
2691
2692 REG_VARIABLE(CFG_VHT_MPDU_LEN_NAME, WLAN_PARAM_Integer,
2693 struct hdd_config, vhtMpduLen,
2694 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2695 CFG_VHT_MPDU_LEN_DEFAULT,
2696 CFG_VHT_MPDU_LEN_MIN,
2697 CFG_VHT_MPDU_LEN_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002698
2699 REG_VARIABLE(CFG_MAX_WOW_FILTERS_NAME, WLAN_PARAM_Integer,
2700 struct hdd_config, maxWoWFilters,
2701 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2702 CFG_MAX_WOW_FILTERS_DEFAULT,
2703 CFG_MAX_WOW_FILTERS_MIN,
2704 CFG_MAX_WOW_FILTERS_MAX),
2705
2706 REG_VARIABLE(CFG_WOW_STATUS_NAME, WLAN_PARAM_Integer,
2707 struct hdd_config, wowEnable,
2708 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2709 CFG_WOW_STATUS_DEFAULT,
2710 CFG_WOW_ENABLE_MIN,
2711 CFG_WOW_ENABLE_MAX),
2712
2713 REG_VARIABLE(CFG_COALESING_IN_IBSS_NAME, WLAN_PARAM_Integer,
2714 struct hdd_config, isCoalesingInIBSSAllowed,
2715 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2716 CFG_COALESING_IN_IBSS_DEFAULT,
2717 CFG_COALESING_IN_IBSS_MIN,
2718 CFG_COALESING_IN_IBSS_MAX),
2719
2720 REG_VARIABLE(CFG_IBSS_ATIM_WIN_SIZE_NAME, WLAN_PARAM_Integer,
2721 struct hdd_config, ibssATIMWinSize,
2722 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2723 CFG_IBSS_ATIM_WIN_SIZE_DEFAULT,
2724 CFG_IBSS_ATIM_WIN_SIZE_MIN,
2725 CFG_IBSS_ATIM_WIN_SIZE_MAX),
2726
2727 REG_VARIABLE(CFG_SAP_MAX_NO_PEERS, WLAN_PARAM_Integer,
2728 struct hdd_config, maxNumberOfPeers,
2729 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2730 CFG_SAP_MAX_NO_PEERS_DEFAULT,
2731 CFG_SAP_MAX_NO_PEERS_MIN,
2732 CFG_SAP_MAX_NO_PEERS_MAX),
2733
2734 REG_VARIABLE(CFG_IBSS_IS_POWER_SAVE_ALLOWED_NAME, WLAN_PARAM_Integer,
2735 struct hdd_config, isIbssPowerSaveAllowed,
2736 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2737 CFG_IBSS_IS_POWER_SAVE_ALLOWED_DEFAULT,
2738 CFG_IBSS_IS_POWER_SAVE_ALLOWED_MIN,
2739 CFG_IBSS_IS_POWER_SAVE_ALLOWED_MAX),
2740
2741 REG_VARIABLE(CFG_IBSS_IS_POWER_COLLAPSE_ALLOWED_NAME,
2742 WLAN_PARAM_Integer,
2743 struct hdd_config, isIbssPowerCollapseAllowed,
2744 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2745 CFG_IBSS_IS_POWER_COLLAPSE_ALLOWED_DEFAULT,
2746 CFG_IBSS_IS_POWER_COLLAPSE_ALLOWED_MIN,
2747 CFG_IBSS_IS_POWER_COLLAPSE_ALLOWED_MAX),
2748
2749 REG_VARIABLE(CFG_IBSS_AWAKE_ON_TX_RX_NAME, WLAN_PARAM_Integer,
2750 struct hdd_config, isIbssAwakeOnTxRx,
2751 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2752 CFG_IBSS_AWAKE_ON_TX_RX_DEFAULT,
2753 CFG_IBSS_AWAKE_ON_TX_RX_MIN,
2754 CFG_IBSS_AWAKE_ON_TX_RX_MAX),
2755
2756 REG_VARIABLE(CFG_IBSS_INACTIVITY_TIME_NAME, WLAN_PARAM_Integer,
2757 struct hdd_config, ibssInactivityCount,
2758 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2759 CFG_IBSS_INACTIVITY_TIME_DEFAULT,
2760 CFG_IBSS_INACTIVITY_TIME_MIN,
2761 CFG_IBSS_INACTIVITY_TIME_MAX),
2762
2763 REG_VARIABLE(CFG_IBSS_TXSP_END_INACTIVITY_NAME, WLAN_PARAM_Integer,
2764 struct hdd_config, ibssTxSpEndInactivityTime,
2765 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2766 CFG_IBSS_TXSP_END_INACTIVITY_DEFAULT,
2767 CFG_IBSS_TXSP_END_INACTIVITY_MIN,
2768 CFG_IBSS_TXSP_END_INACTIVITY_MAX),
2769
2770 REG_VARIABLE(CFG_IBSS_PS_WARMUP_TIME_NAME, WLAN_PARAM_Integer,
2771 struct hdd_config, ibssPsWarmupTime,
2772 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2773 CFG_IBSS_PS_WARMUP_TIME_DEFAULT,
2774 CFG_IBSS_PS_WARMUP_TIME_MIN,
2775 CFG_IBSS_PS_WARMUP_TIME_MAX),
2776
2777 REG_VARIABLE(CFG_IBSS_PS_1RX_CHAIN_IN_ATIM_WINDOW_NAME,
2778 WLAN_PARAM_Integer,
2779 struct hdd_config, ibssPs1RxChainInAtimEnable,
2780 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2781 CFG_IBSS_PS_1RX_CHAIN_IN_ATIM_WINDOW_DEFAULT,
2782 CFG_IBSS_PS_1RX_CHAIN_IN_ATIM_WINDOW_MIN,
2783 CFG_IBSS_PS_1RX_CHAIN_IN_ATIM_WINDOW_MAX),
2784
2785 REG_VARIABLE(CFG_THERMAL_TEMP_MIN_LEVEL0_NAME, WLAN_PARAM_Integer,
2786 struct hdd_config, thermalTempMinLevel0,
2787 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2788 CFG_THERMAL_TEMP_MIN_LEVEL0_DEFAULT,
2789 CFG_THERMAL_TEMP_MIN_LEVEL0_MIN,
2790 CFG_THERMAL_TEMP_MIN_LEVEL0_MAX),
2791
2792 REG_VARIABLE(CFG_THERMAL_TEMP_MAX_LEVEL0_NAME, WLAN_PARAM_Integer,
2793 struct hdd_config, thermalTempMaxLevel0,
2794 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2795 CFG_THERMAL_TEMP_MAX_LEVEL0_DEFAULT,
2796 CFG_THERMAL_TEMP_MAX_LEVEL0_MIN,
2797 CFG_THERMAL_TEMP_MAX_LEVEL0_MAX),
2798
2799 REG_VARIABLE(CFG_THERMAL_TEMP_MIN_LEVEL1_NAME, WLAN_PARAM_Integer,
2800 struct hdd_config, thermalTempMinLevel1,
2801 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2802 CFG_THERMAL_TEMP_MIN_LEVEL1_DEFAULT,
2803 CFG_THERMAL_TEMP_MIN_LEVEL1_MIN,
2804 CFG_THERMAL_TEMP_MIN_LEVEL1_MAX),
2805
2806 REG_VARIABLE(CFG_THERMAL_TEMP_MAX_LEVEL1_NAME, WLAN_PARAM_Integer,
2807 struct hdd_config, thermalTempMaxLevel1,
2808 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2809 CFG_THERMAL_TEMP_MAX_LEVEL1_DEFAULT,
2810 CFG_THERMAL_TEMP_MAX_LEVEL1_MIN,
2811 CFG_THERMAL_TEMP_MAX_LEVEL1_MAX),
2812
2813 REG_VARIABLE(CFG_THERMAL_TEMP_MIN_LEVEL2_NAME, WLAN_PARAM_Integer,
2814 struct hdd_config, thermalTempMinLevel2,
2815 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2816 CFG_THERMAL_TEMP_MIN_LEVEL2_DEFAULT,
2817 CFG_THERMAL_TEMP_MIN_LEVEL2_MIN,
2818 CFG_THERMAL_TEMP_MIN_LEVEL2_MAX),
2819
2820 REG_VARIABLE(CFG_THERMAL_TEMP_MAX_LEVEL2_NAME, WLAN_PARAM_Integer,
2821 struct hdd_config, thermalTempMaxLevel2,
2822 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2823 CFG_THERMAL_TEMP_MAX_LEVEL2_DEFAULT,
2824 CFG_THERMAL_TEMP_MAX_LEVEL2_MIN,
2825 CFG_THERMAL_TEMP_MAX_LEVEL2_MAX),
2826
2827 REG_VARIABLE(CFG_THERMAL_TEMP_MIN_LEVEL3_NAME, WLAN_PARAM_Integer,
2828 struct hdd_config, thermalTempMinLevel3,
2829 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2830 CFG_THERMAL_TEMP_MIN_LEVEL3_DEFAULT,
2831 CFG_THERMAL_TEMP_MIN_LEVEL3_MIN,
2832 CFG_THERMAL_TEMP_MIN_LEVEL3_MAX),
2833
2834 REG_VARIABLE(CFG_THERMAL_TEMP_MAX_LEVEL3_NAME, WLAN_PARAM_Integer,
2835 struct hdd_config, thermalTempMaxLevel3,
2836 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2837 CFG_THERMAL_TEMP_MAX_LEVEL3_DEFAULT,
2838 CFG_THERMAL_TEMP_MAX_LEVEL3_MIN,
2839 CFG_THERMAL_TEMP_MAX_LEVEL3_MAX),
2840
2841 REG_VARIABLE(CFG_SET_TXPOWER_LIMIT2G_NAME, WLAN_PARAM_Integer,
2842 struct hdd_config, TxPower2g,
2843 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2844 CFG_SET_TXPOWER_LIMIT2G_DEFAULT,
2845 CFG_SET_TXPOWER_LIMIT2G_MIN,
2846 CFG_SET_TXPOWER_LIMIT2G_MAX),
2847
2848 REG_VARIABLE(CFG_SET_TXPOWER_LIMIT5G_NAME, WLAN_PARAM_Integer,
2849 struct hdd_config, TxPower5g,
2850 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2851 CFG_SET_TXPOWER_LIMIT5G_DEFAULT,
2852 CFG_SET_TXPOWER_LIMIT5G_MIN,
2853 CFG_SET_TXPOWER_LIMIT5G_MAX),
2854
2855 REG_VARIABLE(CFG_ENABLE_DEBUG_CONNECT_ISSUE, WLAN_PARAM_Integer,
2856 struct hdd_config, gEnableDebugLog,
2857 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2858 CFG_ENABLE_DEBUG_CONNECT_ISSUE_DEFAULT,
2859 CFG_ENABLE_DEBUG_CONNECT_ISSUE_MIN,
2860 CFG_ENABLE_DEBUG_CONNECT_ISSUE_MAX),
2861
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002862 REG_VARIABLE(CFG_ENABLE_DFS_PHYERR_FILTEROFFLOAD_NAME,
2863 WLAN_PARAM_Integer,
2864 struct hdd_config, fDfsPhyerrFilterOffload,
2865 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2866 CFG_ENABLE_DFS_PHYERR_FILTEROFFLOAD_DEFAULT,
2867 CFG_ENABLE_DFS_PHYERR_FILTEROFFLOAD_MIN,
2868 CFG_ENABLE_DFS_PHYERR_FILTEROFFLOAD_MAX),
2869
2870 REG_VARIABLE(CFG_ENABLE_OVERLAP_CH, WLAN_PARAM_Integer,
2871 struct hdd_config, gEnableOverLapCh,
2872 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2873 CFG_ENABLE_OVERLAP_CH_DEFAULT,
2874 CFG_ENABLE_OVERLAP_CH_MIN,
2875 CFG_ENABLE_OVERLAP_CH_MAX),
2876
2877 REG_VARIABLE(CFG_REG_CHANGE_DEF_COUNTRY_NAME, WLAN_PARAM_Integer,
2878 struct hdd_config, fRegChangeDefCountry,
2879 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2880 CFG_REG_CHANGE_DEF_COUNTRY_DEFAULT,
2881 CFG_REG_CHANGE_DEF_COUNTRY_MIN,
2882 CFG_REG_CHANGE_DEF_COUNTRY_MAX),
2883
2884#ifdef QCA_LL_LEGACY_TX_FLOW_CONTROL
2885 REG_VARIABLE(CFG_LL_TX_FLOW_LWM, WLAN_PARAM_Integer,
2886 struct hdd_config, TxFlowLowWaterMark,
2887 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2888 CFG_LL_TX_FLOW_LWM_DEFAULT,
2889 CFG_LL_TX_FLOW_LWM_MIN,
2890 CFG_LL_TX_FLOW_LWM_MAX),
2891 REG_VARIABLE(CFG_LL_TX_FLOW_HWM_OFFSET, WLAN_PARAM_Integer,
2892 struct hdd_config, TxFlowHighWaterMarkOffset,
2893 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2894 CFG_LL_TX_FLOW_HWM_OFFSET_DEFAULT,
2895 CFG_LL_TX_FLOW_HWM_OFFSET_MIN,
2896 CFG_LL_TX_FLOW_HWM_OFFSET_MAX),
2897 REG_VARIABLE(CFG_LL_TX_FLOW_MAX_Q_DEPTH, WLAN_PARAM_Integer,
2898 struct hdd_config, TxFlowMaxQueueDepth,
2899 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2900 CFG_LL_TX_FLOW_MAX_Q_DEPTH_DEFAULT,
2901 CFG_LL_TX_FLOW_MAX_Q_DEPTH_MIN,
2902 CFG_LL_TX_FLOW_MAX_Q_DEPTH_MAX),
2903 REG_VARIABLE(CFG_LL_TX_LBW_FLOW_LWM, WLAN_PARAM_Integer,
2904 struct hdd_config, TxLbwFlowLowWaterMark,
2905 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2906 CFG_LL_TX_LBW_FLOW_LWM_DEFAULT,
2907 CFG_LL_TX_LBW_FLOW_LWM_MIN,
2908 CFG_LL_TX_LBW_FLOW_LWM_MAX),
2909
2910 REG_VARIABLE(CFG_LL_TX_LBW_FLOW_HWM_OFFSET, WLAN_PARAM_Integer,
2911 struct hdd_config, TxLbwFlowHighWaterMarkOffset,
2912 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2913 CFG_LL_TX_LBW_FLOW_HWM_OFFSET_DEFAULT,
2914 CFG_LL_TX_LBW_FLOW_HWM_OFFSET_MIN,
2915 CFG_LL_TX_LBW_FLOW_HWM_OFFSET_MAX),
2916
2917 REG_VARIABLE(CFG_LL_TX_LBW_FLOW_MAX_Q_DEPTH, WLAN_PARAM_Integer,
2918 struct hdd_config, TxLbwFlowMaxQueueDepth,
2919 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2920 CFG_LL_TX_LBW_FLOW_MAX_Q_DEPTH_DEFAULT,
2921 CFG_LL_TX_LBW_FLOW_MAX_Q_DEPTH_MIN,
2922 CFG_LL_TX_LBW_FLOW_MAX_Q_DEPTH_MAX),
2923
2924 REG_VARIABLE(CFG_LL_TX_HBW_FLOW_LWM, WLAN_PARAM_Integer,
2925 struct hdd_config, TxHbwFlowLowWaterMark,
2926 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2927 CFG_LL_TX_HBW_FLOW_LWM_DEFAULT,
2928 CFG_LL_TX_HBW_FLOW_LWM_MIN,
2929 CFG_LL_TX_HBW_FLOW_LWM_MAX),
2930
2931 REG_VARIABLE(CFG_LL_TX_HBW_FLOW_HWM_OFFSET, WLAN_PARAM_Integer,
2932 struct hdd_config, TxHbwFlowHighWaterMarkOffset,
2933 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2934 CFG_LL_TX_HBW_FLOW_HWM_OFFSET_DEFAULT,
2935 CFG_LL_TX_HBW_FLOW_HWM_OFFSET_MIN,
2936 CFG_LL_TX_HBW_FLOW_HWM_OFFSET_MAX),
2937
2938 REG_VARIABLE(CFG_LL_TX_HBW_FLOW_MAX_Q_DEPTH, WLAN_PARAM_Integer,
2939 struct hdd_config, TxHbwFlowMaxQueueDepth,
2940 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2941 CFG_LL_TX_HBW_FLOW_MAX_Q_DEPTH_DEFAULT,
2942 CFG_LL_TX_HBW_FLOW_MAX_Q_DEPTH_MIN,
2943 CFG_LL_TX_HBW_FLOW_MAX_Q_DEPTH_MAX),
2944#endif /* QCA_LL_LEGACY_TX_FLOW_CONTROL */
2945#ifdef QCA_LL_TX_FLOW_CONTROL_V2
2946
2947 REG_VARIABLE(CFG_LL_TX_FLOW_STOP_QUEUE_TH, WLAN_PARAM_Integer,
2948 struct hdd_config, TxFlowStopQueueThreshold,
2949 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2950 CFG_LL_TX_FLOW_STOP_QUEUE_TH_DEFAULT,
2951 CFG_LL_TX_FLOW_STOP_QUEUE_TH_MIN,
2952 CFG_LL_TX_FLOW_STOP_QUEUE_TH_MAX),
2953
2954 REG_VARIABLE(CFG_LL_TX_FLOW_START_QUEUE_OFFSET, WLAN_PARAM_Integer,
2955 struct hdd_config, TxFlowStartQueueOffset,
2956 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2957 CFG_LL_TX_FLOW_START_QUEUE_OFFSET_DEFAULT,
2958 CFG_LL_TX_FLOW_START_QUEUE_OFFSET_MIN,
2959 CFG_LL_TX_FLOW_START_QUEUE_OFFSET_MAX),
2960
2961#endif
2962 REG_VARIABLE(CFG_INITIAL_DWELL_TIME_NAME, WLAN_PARAM_Integer,
2963 struct hdd_config, nInitialDwellTime,
2964 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2965 CFG_INITIAL_DWELL_TIME_DEFAULT,
2966 CFG_INITIAL_DWELL_TIME_MIN,
2967 CFG_INITIAL_DWELL_TIME_MAX),
2968
2969 REG_VARIABLE(CFG_INITIAL_SCAN_NO_DFS_CHNL_NAME, WLAN_PARAM_Integer,
2970 struct hdd_config, initial_scan_no_dfs_chnl,
2971 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2972 CFG_INITIAL_SCAN_NO_DFS_CHNL_DEFAULT,
2973 CFG_INITIAL_SCAN_NO_DFS_CHNL_MIN,
2974 CFG_INITIAL_SCAN_NO_DFS_CHNL_MAX),
2975
2976 REG_VARIABLE(CFG_SAP_MAX_OFFLOAD_PEERS, WLAN_PARAM_Integer,
2977 struct hdd_config, apMaxOffloadPeers,
2978 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2979 CFG_SAP_MAX_OFFLOAD_PEERS_DEFAULT,
2980 CFG_SAP_MAX_OFFLOAD_PEERS_MIN,
2981 CFG_SAP_MAX_OFFLOAD_PEERS_MAX),
2982
2983 REG_VARIABLE(CFG_SAP_MAX_OFFLOAD_REORDER_BUFFS, WLAN_PARAM_Integer,
2984 struct hdd_config, apMaxOffloadReorderBuffs,
2985 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2986 CFG_SAP_MAX_OFFLOAD_REORDER_BUFFS_DEFAULT,
2987 CFG_SAP_MAX_OFFLOAD_REORDER_BUFFS_MIN,
2988 CFG_SAP_MAX_OFFLOAD_REORDER_BUFFS_MAX),
2989
2990 REG_VARIABLE(CFG_ADVERTISE_CONCURRENT_OPERATION_NAME,
2991 WLAN_PARAM_Integer,
2992 struct hdd_config, advertiseConcurrentOperation,
2993 VAR_FLAGS_OPTIONAL,
2994 CFG_ADVERTISE_CONCURRENT_OPERATION_DEFAULT,
2995 CFG_ADVERTISE_CONCURRENT_OPERATION_MIN,
2996 CFG_ADVERTISE_CONCURRENT_OPERATION_MAX),
2997
2998 REG_VARIABLE(CFG_ENABLE_MEMORY_DEEP_SLEEP, WLAN_PARAM_Integer,
2999 struct hdd_config, enableMemDeepSleep,
3000 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3001 CFG_ENABLE_MEMORY_DEEP_SLEEP_DEFAULT,
3002 CFG_ENABLE_MEMORY_DEEP_SLEEP_MIN,
3003 CFG_ENABLE_MEMORY_DEEP_SLEEP_MAX),
3004
Dustin Brown732ab9c2017-06-15 13:24:09 -07003005 REG_VARIABLE(CFG_ENABLE_CCK_TX_FIR_OVERRIDE_NAME, WLAN_PARAM_Integer,
3006 struct hdd_config, enable_cck_tx_fir_override,
3007 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3008 CFG_ENABLE_CCK_TX_FIR_OVERRIDE_DEFAULT,
3009 CFG_ENABLE_CCK_TX_FIR_OVERRIDE_MIN,
3010 CFG_ENABLE_CCK_TX_FIR_OVERRIDE_MAX),
3011
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003012 REG_VARIABLE(CFG_DEFAULT_RATE_INDEX_24GH, WLAN_PARAM_Integer,
3013 struct hdd_config, defaultRateIndex24Ghz,
3014 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3015 CFG_DEFAULT_RATE_INDEX_24GH_DEFAULT,
3016 CFG_DEFAULT_RATE_INDEX_24GH_MIN,
3017 CFG_DEFAULT_RATE_INDEX_24GH_MAX),
3018
3019#ifdef MEMORY_DEBUG
3020 REG_VARIABLE(CFG_ENABLE_MEMORY_DEBUG_NAME, WLAN_PARAM_Integer,
3021 struct hdd_config, IsMemoryDebugSupportEnabled,
3022 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3023 CFG_ENABLE_MEMORY_DEBUG_DEFAULT,
3024 CFG_ENABLE_MEMORY_DEBUG_MIN,
3025 CFG_ENABLE_MEMORY_DEBUG_MAX),
3026#endif
3027
3028 REG_VARIABLE(CFG_DEBUG_P2P_REMAIN_ON_CHANNEL_NAME, WLAN_PARAM_Integer,
3029 struct hdd_config, debugP2pRemainOnChannel,
3030 VAR_FLAGS_OPTIONAL,
3031 CFG_DEBUG_P2P_REMAIN_ON_CHANNEL_DEFAULT,
3032 CFG_DEBUG_P2P_REMAIN_ON_CHANNEL_MIN,
3033 CFG_DEBUG_P2P_REMAIN_ON_CHANNEL_MAX),
3034
3035 REG_VARIABLE(CFG_ENABLE_PACKET_LOG, WLAN_PARAM_Integer,
3036 struct hdd_config, enablePacketLog,
3037 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3038 CFG_ENABLE_PACKET_LOG_DEFAULT,
3039 CFG_ENABLE_PACKET_LOG_MIN,
3040 CFG_ENABLE_PACKET_LOG_MAX),
3041
3042#ifdef WLAN_FEATURE_ROAM_OFFLOAD
3043 REG_VARIABLE(CFG_ROAMING_OFFLOAD_NAME, WLAN_PARAM_Integer,
3044 struct hdd_config, isRoamOffloadEnabled,
3045 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
3046 CFG_ROAMING_OFFLOAD_DEFAULT,
3047 CFG_ROAMING_OFFLOAD_MIN,
3048 CFG_ROAMING_OFFLOAD_MAX),
3049#endif
3050#ifdef MSM_PLATFORM
3051 REG_VARIABLE(CFG_BUS_BANDWIDTH_HIGH_THRESHOLD, WLAN_PARAM_Integer,
3052 struct hdd_config, busBandwidthHighThreshold,
3053 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3054 CFG_BUS_BANDWIDTH_HIGH_THRESHOLD_DEFAULT,
3055 CFG_BUS_BANDWIDTH_HIGH_THRESHOLD_MIN,
3056 CFG_BUS_BANDWIDTH_HIGH_THRESHOLD_MAX),
3057
3058 REG_VARIABLE(CFG_BUS_BANDWIDTH_MEDIUM_THRESHOLD, WLAN_PARAM_Integer,
3059 struct hdd_config, busBandwidthMediumThreshold,
3060 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3061 CFG_BUS_BANDWIDTH_MEDIUM_THRESHOLD_DEFAULT,
3062 CFG_BUS_BANDWIDTH_MEDIUM_THRESHOLD_MIN,
3063 CFG_BUS_BANDWIDTH_MEDIUM_THRESHOLD_MAX),
3064
3065 REG_VARIABLE(CFG_BUS_BANDWIDTH_LOW_THRESHOLD, WLAN_PARAM_Integer,
3066 struct hdd_config, busBandwidthLowThreshold,
3067 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3068 CFG_BUS_BANDWIDTH_LOW_THRESHOLD_DEFAULT,
3069 CFG_BUS_BANDWIDTH_LOW_THRESHOLD_MIN,
3070 CFG_BUS_BANDWIDTH_LOW_THRESHOLD_MAX),
3071
3072 REG_VARIABLE(CFG_BUS_BANDWIDTH_COMPUTE_INTERVAL, WLAN_PARAM_Integer,
3073 struct hdd_config, busBandwidthComputeInterval,
3074 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3075 CFG_BUS_BANDWIDTH_COMPUTE_INTERVAL_DEFAULT,
3076 CFG_BUS_BANDWIDTH_COMPUTE_INTERVAL_MIN,
3077 CFG_BUS_BANDWIDTH_COMPUTE_INTERVAL_MAX),
Ravi Joshie2331e82015-07-01 18:18:54 -07003078
3079 REG_VARIABLE(CFG_ENABLE_TCP_DELACK, WLAN_PARAM_Integer,
3080 struct hdd_config, enable_tcp_delack,
3081 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3082 CFG_ENABLE_TCP_DELACK_DEFAULT,
3083 CFG_ENABLE_TCP_DELACK_MIN,
3084 CFG_ENABLE_TCP_DELACK_MAX),
3085
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003086 REG_VARIABLE(CFG_TCP_DELACK_THRESHOLD_HIGH, WLAN_PARAM_Integer,
3087 struct hdd_config, tcpDelackThresholdHigh,
3088 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3089 CFG_TCP_DELACK_THRESHOLD_HIGH_DEFAULT,
3090 CFG_TCP_DELACK_THRESHOLD_HIGH_MIN,
3091 CFG_TCP_DELACK_THRESHOLD_HIGH_MAX),
Ravi Joshie2331e82015-07-01 18:18:54 -07003092
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003093 REG_VARIABLE(CFG_TCP_DELACK_THRESHOLD_LOW, WLAN_PARAM_Integer,
3094 struct hdd_config, tcpDelackThresholdLow,
3095 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3096 CFG_TCP_DELACK_THRESHOLD_LOW_DEFAULT,
3097 CFG_TCP_DELACK_THRESHOLD_LOW_MIN,
3098 CFG_TCP_DELACK_THRESHOLD_LOW_MAX),
Mohit Khannae71e2262015-11-10 09:37:24 -08003099
Ravi Joshib89e7f72016-09-07 13:43:15 -07003100 REG_VARIABLE(CFG_TCP_DELACK_TIMER_COUNT, WLAN_PARAM_Integer,
3101 struct hdd_config, tcp_delack_timer_count,
3102 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3103 CFG_TCP_DELACK_TIMER_COUNT_DEFAULT,
3104 CFG_TCP_DELACK_TIMER_COUNT_MIN,
3105 CFG_TCP_DELACK_TIMER_COUNT_MAX),
Mohit Khannae71e2262015-11-10 09:37:24 -08003106
Ravi Joshib89e7f72016-09-07 13:43:15 -07003107 REG_VARIABLE(CFG_TCP_TX_HIGH_TPUT_THRESHOLD_NAME, WLAN_PARAM_Integer,
3108 struct hdd_config, tcp_tx_high_tput_thres,
3109 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3110 CFG_TCP_TX_HIGH_TPUT_THRESHOLD_DEFAULT,
3111 CFG_TCP_TX_HIGH_TPUT_THRESHOLD_MIN,
3112 CFG_TCP_TX_HIGH_TPUT_THRESHOLD_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003113#endif
3114
3115 REG_VARIABLE(CFG_ENABLE_FW_LOG_TYPE, WLAN_PARAM_Integer,
3116 struct hdd_config, enableFwLogType,
3117 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3118 CFG_ENABLE_FW_LOG_TYPE_DEFAULT,
3119 CFG_ENABLE_FW_LOG_TYPE_MIN,
3120 CFG_ENABLE_FW_LOG_TYPE_MAX),
3121
3122 REG_VARIABLE(CFG_ENABLE_FW_DEBUG_LOG_LEVEL, WLAN_PARAM_Integer,
3123 struct hdd_config, enableFwLogLevel,
3124 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3125 CFG_ENABLE_FW_DEBUG_LOG_LEVEL_DEFAULT,
3126 CFG_ENABLE_FW_DEBUG_LOG_LEVEL_MIN,
3127 CFG_ENABLE_FW_DEBUG_LOG_LEVEL_MAX),
3128
Rajeev Kumar Sirasanagandla0be56df2016-09-08 19:19:47 +05303129 REG_VARIABLE(CFG_ENABLE_FW_RTS_PROFILE, WLAN_PARAM_Integer,
3130 struct hdd_config, rts_profile,
3131 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3132 CFG_ENABLE_FW_RTS_PROFILE_DEFAULT,
3133 CFG_ENABLE_FW_RTS_PROFILE_MIN,
3134 CFG_ENABLE_FW_RTS_PROFILE_MAX),
3135
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003136 REG_VARIABLE_STRING(CFG_ENABLE_FW_MODULE_LOG_LEVEL, WLAN_PARAM_String,
3137 struct hdd_config, enableFwModuleLogLevel,
3138 VAR_FLAGS_OPTIONAL,
3139 (void *)CFG_ENABLE_FW_MODULE_LOG_DEFAULT),
3140
3141#ifdef WLAN_FEATURE_11W
3142 REG_VARIABLE(CFG_PMF_SA_QUERY_MAX_RETRIES_NAME, WLAN_PARAM_Integer,
3143 struct hdd_config, pmfSaQueryMaxRetries,
3144 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3145 CFG_PMF_SA_QUERY_MAX_RETRIES_DEFAULT,
3146 CFG_PMF_SA_QUERY_MAX_RETRIES_MIN,
3147 CFG_PMF_SA_QUERY_MAX_RETRIES_MAX),
3148
3149 REG_VARIABLE(CFG_PMF_SA_QUERY_RETRY_INTERVAL_NAME, WLAN_PARAM_Integer,
3150 struct hdd_config, pmfSaQueryRetryInterval,
3151 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3152 CFG_PMF_SA_QUERY_RETRY_INTERVAL_DEFAULT,
3153 CFG_PMF_SA_QUERY_RETRY_INTERVAL_MIN,
3154 CFG_PMF_SA_QUERY_RETRY_INTERVAL_MAX),
3155#endif
3156 REG_VARIABLE(CFG_MAX_CONCURRENT_CONNECTIONS_NAME, WLAN_PARAM_Integer,
3157 struct hdd_config, gMaxConcurrentActiveSessions,
3158 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3159 CFG_MAX_CONCURRENT_CONNECTIONS_DEFAULT,
3160 CFG_MAX_CONCURRENT_CONNECTIONS_MIN,
3161 CFG_MAX_CONCURRENT_CONNECTIONS_MAX),
3162
3163#ifdef FEATURE_GREEN_AP
3164 REG_VARIABLE(CFG_ENABLE_GREEN_AP_FEATURE, WLAN_PARAM_Integer,
3165 struct hdd_config, enableGreenAP,
3166 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3167 CFG_ENABLE_GREEN_AP_FEATURE_DEFAULT,
3168 CFG_ENABLE_GREEN_AP_FEATURE_MIN,
3169 CFG_ENABLE_GREEN_AP_FEATURE_MAX),
Ryan Hsucb118cf2015-11-09 16:03:53 -08003170 REG_VARIABLE(CFG_ENABLE_EGAP_ENABLE_FEATURE, WLAN_PARAM_Integer,
3171 struct hdd_config, enable_egap,
3172 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3173 CFG_ENABLE_EGAP_ENABLE_FEATURE_DEFAULT,
3174 CFG_ENABLE_EGAP_ENABLE_FEATURE_MIN,
3175 CFG_ENABLE_EGAP_ENABLE_FEATURE_MAX),
3176 REG_VARIABLE(CFG_ENABLE_EGAP_INACT_TIME_FEATURE, WLAN_PARAM_Integer,
3177 struct hdd_config, egap_inact_time,
3178 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3179 CFG_ENABLE_EGAP_INACT_TIME_FEATURE_DEFAULT,
3180 CFG_ENABLE_EGAP_INACT_TIME_FEATURE_MIN,
3181 CFG_ENABLE_EGAP_INACT_TIME_FEATURE_MAX),
3182 REG_VARIABLE(CFG_ENABLE_EGAP_WAIT_TIME_FEATURE, WLAN_PARAM_Integer,
3183 struct hdd_config, egap_wait_time,
3184 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3185 CFG_ENABLE_EGAP_WAIT_TIME_FEATURE_DEFAULT,
3186 CFG_ENABLE_EGAP_WAIT_TIME_FEATURE_MIN,
3187 CFG_ENABLE_EGAP_WAIT_TIME_FEATURE_MAX),
3188 REG_VARIABLE(CFG_ENABLE_EGAP_FLAGS_FEATURE, WLAN_PARAM_Integer,
3189 struct hdd_config, egap_feature_flag,
3190 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3191 CFG_ENABLE_EGAP_FLAGS_FEATURE_DEFAULT,
3192 CFG_ENABLE_EGAP_FLAGS_FEATURE_MIN,
3193 CFG_ENABLE_EGAP_FLAGS_FEATURE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003194#endif
3195
3196 REG_VARIABLE(CFG_IGNORE_CAC_NAME, WLAN_PARAM_Integer,
3197 struct hdd_config, ignoreCAC,
3198 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3199 CFG_IGNORE_CAC_DEFAULT,
3200 CFG_IGNORE_CAC_MIN,
3201 CFG_IGNORE_CAC_MAX),
3202
3203 REG_VARIABLE(CFG_ENABLE_SAP_DFS_CH_SIFS_BURST_NAME, WLAN_PARAM_Integer,
3204 struct hdd_config, IsSapDfsChSifsBurstEnabled,
3205 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3206 CFG_ENABLE_SAP_DFS_CH_SIFS_BURST_DEFAULT,
3207 CFG_ENABLE_SAP_DFS_CH_SIFS_BURST_MIN,
3208 CFG_ENABLE_SAP_DFS_CH_SIFS_BURST_MAX),
3209
3210 REG_VARIABLE(CFG_DFS_RADAR_PRI_MULTIPLIER_NAME, WLAN_PARAM_Integer,
3211 struct hdd_config, dfsRadarPriMultiplier,
3212 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3213 CFG_DFS_RADAR_PRI_MULTIPLIER_DEFAULT,
3214 CFG_DFS_RADAR_PRI_MULTIPLIER_MIN,
3215 CFG_DFS_RADAR_PRI_MULTIPLIER_MAX),
3216
3217 REG_VARIABLE(CFG_REORDER_OFFLOAD_SUPPORT_NAME, WLAN_PARAM_Integer,
3218 struct hdd_config, reorderOffloadSupport,
3219 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3220 CFG_REORDER_OFFLOAD_SUPPORT_DEFAULT,
3221 CFG_REORDER_OFFLOAD_SUPPORT_MIN,
3222 CFG_REORDER_OFFLOAD_SUPPORT_MAX),
3223
3224 REG_VARIABLE(CFG_IPA_UC_TX_BUF_COUNT_NAME, WLAN_PARAM_Integer,
3225 struct hdd_config, IpaUcTxBufCount,
3226 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
3227 CFG_IPA_UC_TX_BUF_COUNT_DEFAULT,
3228 CFG_IPA_UC_TX_BUF_COUNT_MIN,
3229 CFG_IPA_UC_TX_BUF_COUNT_MAX),
3230
3231 REG_VARIABLE(CFG_IPA_UC_TX_BUF_SIZE_NAME, WLAN_PARAM_Integer,
3232 struct hdd_config, IpaUcTxBufSize,
3233 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
3234 CFG_IPA_UC_TX_BUF_SIZE_DEFAULT,
3235 CFG_IPA_UC_TX_BUF_SIZE_MIN,
3236 CFG_IPA_UC_TX_BUF_SIZE_MAX),
3237
3238 REG_VARIABLE(CFG_IPA_UC_RX_IND_RING_COUNT_NAME, WLAN_PARAM_Integer,
3239 struct hdd_config, IpaUcRxIndRingCount,
3240 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
3241 CFG_IPA_UC_RX_IND_RING_COUNT_DEFAULT,
3242 CFG_IPA_UC_RX_IND_RING_COUNT_MIN,
3243 CFG_IPA_UC_RX_IND_RING_COUNT_MAX),
3244
3245 REG_VARIABLE(CFG_IPA_UC_TX_PARTITION_BASE_NAME, WLAN_PARAM_Integer,
3246 struct hdd_config, IpaUcTxPartitionBase,
3247 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
3248 CFG_IPA_UC_TX_PARTITION_BASE_DEFAULT,
3249 CFG_IPA_UC_TX_PARTITION_BASE_MIN,
3250 CFG_IPA_UC_TX_PARTITION_BASE_MAX),
3251#ifdef WLAN_LOGGING_SOCK_SVC_ENABLE
3252 REG_VARIABLE(CFG_WLAN_LOGGING_SUPPORT_NAME, WLAN_PARAM_Integer,
3253 struct hdd_config, wlanLoggingEnable,
3254 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3255 CFG_WLAN_LOGGING_SUPPORT_DEFAULT,
3256 CFG_WLAN_LOGGING_SUPPORT_DISABLE,
3257 CFG_WLAN_LOGGING_SUPPORT_ENABLE),
3258
Srinivas Girigowda8187e792017-03-03 11:50:59 -08003259 REG_VARIABLE(CFG_WLAN_LOGGING_CONSOLE_SUPPORT_NAME,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003260 WLAN_PARAM_Integer,
Srinivas Girigowda8187e792017-03-03 11:50:59 -08003261 struct hdd_config, wlanLoggingToConsole,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003262 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
Srinivas Girigowda8187e792017-03-03 11:50:59 -08003263 CFG_WLAN_LOGGING_CONSOLE_SUPPORT_DEFAULT,
3264 CFG_WLAN_LOGGING_CONSOLE_SUPPORT_DISABLE,
3265 CFG_WLAN_LOGGING_CONSOLE_SUPPORT_ENABLE),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003266
3267 REG_VARIABLE(CFG_WLAN_LOGGING_NUM_BUF_NAME, WLAN_PARAM_Integer,
3268 struct hdd_config, wlanLoggingNumBuf,
3269 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3270 CFG_WLAN_LOGGING_NUM_BUF_DEFAULT,
3271 CFG_WLAN_LOGGING_NUM_BUF_MIN,
3272 CFG_WLAN_LOGGING_NUM_BUF_MAX),
3273#endif /* WLAN_LOGGING_SOCK_SVC_ENABLE */
3274
3275 REG_VARIABLE(CFG_ENABLE_SIFS_BURST, WLAN_PARAM_Integer,
3276 struct hdd_config, enableSifsBurst,
3277 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3278 CFG_ENABLE_SIFS_BURST_DEFAULT,
3279 CFG_ENABLE_SIFS_BURST_MIN,
3280 CFG_ENABLE_SIFS_BURST_MAX),
3281
3282#ifdef WLAN_FEATURE_LPSS
3283 REG_VARIABLE(CFG_ENABLE_LPASS_SUPPORT, WLAN_PARAM_Integer,
Komal Seelamc11bb222016-01-27 18:57:10 +05303284 struct hdd_config, enable_lpass_support,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003285 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3286 CFG_ENABLE_LPASS_SUPPORT_DEFAULT,
3287 CFG_ENABLE_LPASS_SUPPORT_MIN,
3288 CFG_ENABLE_LPASS_SUPPORT_MAX),
3289#endif
3290
3291#ifdef WLAN_FEATURE_NAN
3292 REG_VARIABLE(CFG_ENABLE_NAN_SUPPORT, WLAN_PARAM_Integer,
3293 struct hdd_config, enable_nan_support,
3294 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3295 CFG_ENABLE_NAN_SUPPORT_DEFAULT,
3296 CFG_ENABLE_NAN_SUPPORT_MIN,
3297 CFG_ENABLE_NAN_SUPPORT_MAX),
3298#endif
3299
3300 REG_VARIABLE(CFG_ENABLE_SELF_RECOVERY, WLAN_PARAM_Integer,
3301 struct hdd_config, enableSelfRecovery,
3302 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3303 CFG_ENABLE_SELF_RECOVERY_DEFAULT,
3304 CFG_ENABLE_SELF_RECOVERY_MIN,
3305 CFG_ENABLE_SELF_RECOVERY_MAX),
3306
3307#ifdef FEATURE_WLAN_FORCE_SAP_SCC
3308 REG_VARIABLE(CFG_SAP_SCC_CHAN_AVOIDANCE, WLAN_PARAM_Integer,
3309 struct hdd_config, SapSccChanAvoidance,
3310 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3311 CFG_SAP_SCC_CHAN_AVOIDANCE_DEFAULT,
3312 CFG_SAP_SCC_CHAN_AVOIDANCE_MIN,
3313 CFG_SAP_SCC_CHAN_AVOIDANCE_MAX),
3314#endif /* FEATURE_WLAN_FORCE_SAP_SCC */
3315
3316 REG_VARIABLE(CFG_ENABLE_SAP_SUSPEND, WLAN_PARAM_Integer,
3317 struct hdd_config, enableSapSuspend,
3318 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3319 CFG_ENABLE_SAP_SUSPEND_DEFAULT,
3320 CFG_ENABLE_SAP_SUSPEND_MIN,
3321 CFG_ENABLE_SAP_SUSPEND_MAX),
3322
3323#ifdef WLAN_FEATURE_EXTWOW_SUPPORT
3324 REG_VARIABLE(CFG_EXTWOW_GO_TO_SUSPEND, WLAN_PARAM_Integer,
3325 struct hdd_config, extWowGotoSuspend,
3326 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3327 CFG_EXTWOW_GO_TO_SUSPEND_DEFAULT,
3328 CFG_EXTWOW_GO_TO_SUSPEND_MIN,
3329 CFG_EXTWOW_GO_TO_SUSPEND_MAX),
3330
3331 REG_VARIABLE(CFG_EXTWOW_APP1_WAKE_PIN_NUMBER, WLAN_PARAM_Integer,
3332 struct hdd_config, extWowApp1WakeupPinNumber,
3333 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3334 CFG_EXTWOW_APP1_WAKE_PIN_NUMBER_DEFAULT,
3335 CFG_EXTWOW_APP1_WAKE_PIN_NUMBER_MIN,
3336 CFG_EXTWOW_APP1_WAKE_PIN_NUMBER_MAX),
3337
3338 REG_VARIABLE(CFG_EXTWOW_APP2_WAKE_PIN_NUMBER, WLAN_PARAM_Integer,
3339 struct hdd_config, extWowApp2WakeupPinNumber,
3340 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3341 CFG_EXTWOW_APP2_WAKE_PIN_NUMBER_DEFAULT,
3342 CFG_EXTWOW_APP2_WAKE_PIN_NUMBER_MIN,
3343 CFG_EXTWOW_APP2_WAKE_PIN_NUMBER_MAX),
3344
3345 REG_VARIABLE(CFG_EXTWOW_KA_INIT_PING_INTERVAL, WLAN_PARAM_Integer,
3346 struct hdd_config, extWowApp2KAInitPingInterval,
3347 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3348 CFG_EXTWOW_KA_INIT_PING_INTERVAL_DEFAULT,
3349 CFG_EXTWOW_KA_INIT_PING_INTERVAL_MIN,
3350 CFG_EXTWOW_KA_INIT_PING_INTERVAL_MAX),
3351
3352 REG_VARIABLE(CFG_EXTWOW_KA_MIN_PING_INTERVAL, WLAN_PARAM_Integer,
3353 struct hdd_config, extWowApp2KAMinPingInterval,
3354 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3355 CFG_EXTWOW_KA_MIN_PING_INTERVAL_DEFAULT,
3356 CFG_EXTWOW_KA_MIN_PING_INTERVAL_MIN,
3357 CFG_EXTWOW_KA_MIN_PING_INTERVAL_MAX),
3358
3359 REG_VARIABLE(CFG_EXTWOW_KA_MAX_PING_INTERVAL, WLAN_PARAM_Integer,
3360 struct hdd_config, extWowApp2KAMaxPingInterval,
3361 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3362 CFG_EXTWOW_KA_MAX_PING_INTERVAL_DEFAULT,
3363 CFG_EXTWOW_KA_MAX_PING_INTERVAL_MIN,
3364 CFG_EXTWOW_KA_MAX_PING_INTERVAL_MAX),
3365
3366 REG_VARIABLE(CFG_EXTWOW_KA_INC_PING_INTERVAL, WLAN_PARAM_Integer,
3367 struct hdd_config, extWowApp2KAIncPingInterval,
3368 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3369 CFG_EXTWOW_KA_INC_PING_INTERVAL_DEFAULT,
3370 CFG_EXTWOW_KA_INC_PING_INTERVAL_MIN,
3371 CFG_EXTWOW_KA_INC_PING_INTERVAL_MAX),
3372
3373 REG_VARIABLE(CFG_EXTWOW_TCP_SRC_PORT, WLAN_PARAM_Integer,
3374 struct hdd_config, extWowApp2TcpSrcPort,
3375 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3376 CFG_EXTWOW_TCP_SRC_PORT_DEFAULT,
3377 CFG_EXTWOW_TCP_SRC_PORT_MIN,
3378 CFG_EXTWOW_TCP_SRC_PORT_MAX),
3379
3380 REG_VARIABLE(CFG_EXTWOW_TCP_DST_PORT, WLAN_PARAM_Integer,
3381 struct hdd_config, extWowApp2TcpDstPort,
3382 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3383 CFG_EXTWOW_TCP_DST_PORT_DEFAULT,
3384 CFG_EXTWOW_TCP_DST_PORT_MIN,
3385 CFG_EXTWOW_TCP_DST_PORT_MAX),
3386
3387 REG_VARIABLE(CFG_EXTWOW_TCP_TX_TIMEOUT, WLAN_PARAM_Integer,
3388 struct hdd_config, extWowApp2TcpTxTimeout,
3389 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3390 CFG_EXTWOW_TCP_TX_TIMEOUT_DEFAULT,
3391 CFG_EXTWOW_TCP_TX_TIMEOUT_MIN,
3392 CFG_EXTWOW_TCP_TX_TIMEOUT_MAX),
3393
3394 REG_VARIABLE(CFG_EXTWOW_TCP_RX_TIMEOUT, WLAN_PARAM_Integer,
3395 struct hdd_config, extWowApp2TcpRxTimeout,
3396 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3397 CFG_EXTWOW_TCP_RX_TIMEOUT_DEFAULT,
3398 CFG_EXTWOW_TCP_RX_TIMEOUT_MIN,
3399 CFG_EXTWOW_TCP_RX_TIMEOUT_MAX),
3400#endif
3401 REG_VARIABLE(CFG_ENABLE_DEAUTH_TO_DISASSOC_MAP_NAME, WLAN_PARAM_Integer,
3402 struct hdd_config, gEnableDeauthToDisassocMap,
3403 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3404 CFG_ENABLE_DEAUTH_TO_DISASSOC_MAP_DEFAULT,
3405 CFG_ENABLE_DEAUTH_TO_DISASSOC_MAP_MIN,
3406 CFG_ENABLE_DEAUTH_TO_DISASSOC_MAP_MAX),
3407#ifdef DHCP_SERVER_OFFLOAD
3408 REG_VARIABLE(CFG_DHCP_SERVER_OFFLOAD_SUPPORT_NAME, WLAN_PARAM_Integer,
3409 struct hdd_config, enableDHCPServerOffload,
3410 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3411 CFG_DHCP_SERVER_OFFLOAD_SUPPORT_DEFAULT,
3412 CFG_DHCP_SERVER_OFFLOAD_SUPPORT_MIN,
3413 CFG_DHCP_SERVER_OFFLOAD_SUPPORT_MAX),
3414 REG_VARIABLE(CFG_DHCP_SERVER_OFFLOAD_NUM_CLIENT_NAME,
3415 WLAN_PARAM_Integer,
3416 struct hdd_config, dhcpMaxNumClients,
3417 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3418 CFG_DHCP_SERVER_OFFLOAD_NUM_CLIENT_DEFAULT,
3419 CFG_DHCP_SERVER_OFFLOAD_NUM_CLIENT_MIN,
3420 CFG_DHCP_SERVER_OFFLOAD_NUM_CLIENT_MAX),
3421 REG_VARIABLE_STRING(CFG_DHCP_SERVER_IP_NAME, WLAN_PARAM_String,
3422 struct hdd_config, dhcpServerIP,
3423 VAR_FLAGS_OPTIONAL,
3424 (void *)CFG_DHCP_SERVER_IP_DEFAULT),
3425#endif /* DHCP_SERVER_OFFLOAD */
3426
3427 REG_VARIABLE(CFG_ENABLE_DEAUTH_BEFORE_CONNECTION, WLAN_PARAM_Integer,
3428 struct hdd_config, sendDeauthBeforeCon,
3429 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3430 CFG_ENABLE_DEAUTH_BEFORE_CONNECTION_DEFAULT,
3431 CFG_ENABLE_DEAUTH_BEFORE_CONNECTION_MIN,
3432 CFG_ENABLE_DEAUTH_BEFORE_CONNECTION_MAX),
3433
3434 REG_VARIABLE(CFG_ENABLE_MAC_ADDR_SPOOFING, WLAN_PARAM_Integer,
3435 struct hdd_config, enable_mac_spoofing,
3436 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3437 CFG_ENABLE_MAC_ADDR_SPOOFING_DEFAULT,
3438 CFG_ENABLE_MAC_ADDR_SPOOFING_MIN,
3439 CFG_ENABLE_MAC_ADDR_SPOOFING_MAX),
3440
3441 REG_VARIABLE(CFG_ENABLE_CUSTOM_CONC_RULE1_NAME, WLAN_PARAM_Integer,
3442 struct hdd_config, conc_custom_rule1,
3443 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
3444 CFG_ENABLE_CUSTOM_CONC_RULE1_NAME_DEFAULT,
3445 CFG_ENABLE_CUSTOM_CONC_RULE1_NAME_MIN,
3446 CFG_ENABLE_CUSTOM_CONC_RULE1_NAME_MAX),
3447
3448 REG_VARIABLE(CFG_ENABLE_CUSTOM_CONC_RULE2_NAME, WLAN_PARAM_Integer,
3449 struct hdd_config, conc_custom_rule2,
3450 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
3451 CFG_ENABLE_CUSTOM_CONC_RULE2_NAME_DEFAULT,
3452 CFG_ENABLE_CUSTOM_CONC_RULE2_NAME_MIN,
3453 CFG_ENABLE_CUSTOM_CONC_RULE2_NAME_MAX),
3454
3455 REG_VARIABLE(CFG_ENABLE_STA_CONNECTION_IN_5GHZ, WLAN_PARAM_Integer,
3456 struct hdd_config, is_sta_connection_in_5gz_enabled,
3457 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
3458 CFG_ENABLE_STA_CONNECTION_IN_5GHZ_DEFAULT,
3459 CFG_ENABLE_STA_CONNECTION_IN_5GHZ_MIN,
3460 CFG_ENABLE_STA_CONNECTION_IN_5GHZ_MAX),
3461
3462 REG_VARIABLE(CFG_STA_MIRACAST_MCC_REST_TIME_VAL, WLAN_PARAM_Integer,
3463 struct hdd_config, sta_miracast_mcc_rest_time_val,
3464 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3465 CFG_STA_MIRACAST_MCC_REST_TIME_VAL_DEFAULT,
3466 CFG_STA_MIRACAST_MCC_REST_TIME_VAL_MIN,
3467 CFG_STA_MIRACAST_MCC_REST_TIME_VAL_MAX),
3468
3469#ifdef FEATURE_AP_MCC_CH_AVOIDANCE
3470 REG_VARIABLE(CFG_SAP_MCC_CHANNEL_AVOIDANCE_NAME,
3471 WLAN_PARAM_Integer,
3472 struct hdd_config,
3473 sap_channel_avoidance,
3474 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
3475 CFG_SAP_MCC_CHANNEL_AVOIDANCE_DEFAULT,
3476 CFG_SAP_MCC_CHANNEL_AVOIDANCE_MIN,
3477 CFG_SAP_MCC_CHANNEL_AVOIDANCE_MAX),
3478#endif /* FEATURE_AP_MCC_CH_AVOIDANCE */
3479
3480 REG_VARIABLE(CFG_SAP_P2P_11AC_OVERRIDE_NAME, WLAN_PARAM_Integer,
3481 struct hdd_config, sap_p2p_11ac_override,
3482 VAR_FLAGS_OPTIONAL |
3483 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3484 CFG_SAP_P2P_11AC_OVERRIDE_DEFAULT,
3485 CFG_SAP_P2P_11AC_OVERRIDE_MIN,
3486 CFG_SAP_P2P_11AC_OVERRIDE_MAX),
3487
3488 REG_VARIABLE(CFG_ENABLE_RAMDUMP_COLLECTION, WLAN_PARAM_Integer,
3489 struct hdd_config, is_ramdump_enabled,
3490 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3491 CFG_ENABLE_RAMDUMP_COLLECTION_DEFAULT,
3492 CFG_ENABLE_RAMDUMP_COLLECTION_MIN,
3493 CFG_ENABLE_RAMDUMP_COLLECTION_MAX),
3494
3495 REG_VARIABLE(CFG_SAP_DOT11MC, WLAN_PARAM_Integer,
3496 struct hdd_config, sap_dot11mc,
3497 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3498 CFG_SAP_DOT11MC_DEFAULT,
3499 CFG_SAP_DOT11MC_MIN,
3500 CFG_SAP_DOT11MC_MAX),
3501
3502 REG_VARIABLE(CFG_ENABLE_NON_DFS_CHAN_ON_RADAR, WLAN_PARAM_Integer,
3503 struct hdd_config, prefer_non_dfs_on_radar,
3504 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3505 CFG_ENABLE_NON_DFS_CHAN_ON_RADAR_DEFAULT,
3506 CFG_ENABLE_NON_DFS_CHAN_ON_RADAR_MIN,
3507 CFG_ENABLE_NON_DFS_CHAN_ON_RADAR_MAX),
3508
3509 REG_VARIABLE(CFG_MULTICAST_HOST_FW_MSGS, WLAN_PARAM_Integer,
3510 struct hdd_config, multicast_host_fw_msgs,
3511 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3512 CFG_MULTICAST_HOST_FW_MSGS_DEFAULT,
3513 CFG_MULTICAST_HOST_FW_MSGS_MIN,
3514 CFG_MULTICAST_HOST_FW_MSGS_MAX),
3515
3516 REG_VARIABLE(CFG_CONC_SYSTEM_PREF, WLAN_PARAM_Integer,
3517 struct hdd_config, conc_system_pref,
3518 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3519 CFG_CONC_SYSTEM_PREF_DEFAULT,
3520 CFG_CONC_SYSTEM_PREF_MIN,
3521 CFG_CONC_SYSTEM_PREF_MAX),
3522
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003523 REG_VARIABLE(CFG_TSO_ENABLED_NAME, WLAN_PARAM_Integer,
3524 struct hdd_config, tso_enable,
3525 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3526 CFG_TSO_ENABLED_DEFAULT,
3527 CFG_TSO_ENABLED_MIN,
3528 CFG_TSO_ENABLED_MAX),
3529
3530 REG_VARIABLE(CFG_LRO_ENABLED_NAME, WLAN_PARAM_Integer,
3531 struct hdd_config, lro_enable,
3532 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3533 CFG_LRO_ENABLED_DEFAULT,
3534 CFG_LRO_ENABLED_MIN,
3535 CFG_LRO_ENABLED_MAX),
3536
Rajeev Kumardd3bc602016-08-16 14:21:05 -07003537 REG_VARIABLE(CFG_BPF_PACKET_FILTER_OFFLOAD, WLAN_PARAM_Integer,
3538 struct hdd_config, bpf_packet_filter_enable,
3539 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3540 CFG_BPF_PACKET_FILTER_OFFLOAD_DEFAULT,
3541 CFG_BPF_PACKET_FILTER_OFFLOAD_MIN,
3542 CFG_BPF_PACKET_FILTER_OFFLOAD_MAX),
3543
Nitesh Shah61c10d92016-10-19 19:29:15 +05303544 REG_VARIABLE(CFG_TDLS_ENABLE_DEFER_TIMER, WLAN_PARAM_Integer,
3545 struct hdd_config, tdls_enable_defer_time,
3546 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3547 CFG_TDLS_ENABLE_DEFER_TIMER_DEFAULT,
3548 CFG_TDLS_ENABLE_DEFER_TIMER_MIN,
3549 CFG_TDLS_ENABLE_DEFER_TIMER_MAX),
3550
Manjunathappa Prakashfff753c2016-09-01 19:34:56 -07003551 REG_VARIABLE(CFG_FLOW_STEERING_ENABLED_NAME, WLAN_PARAM_Integer,
3552 struct hdd_config, flow_steering_enable,
3553 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3554 CFG_FLOW_STEERING_ENABLED_DEFAULT,
3555 CFG_FLOW_STEERING_ENABLED_MIN,
3556 CFG_FLOW_STEERING_ENABLED_MAX),
3557
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003558 REG_VARIABLE(CFG_ACTIVE_MODE_OFFLOAD, WLAN_PARAM_Integer,
3559 struct hdd_config, active_mode_offload,
3560 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3561 CFG_ACTIVE_MODE_OFFLOAD_DEFAULT,
3562 CFG_ACTIVE_MODE_OFFLOAD_MIN,
3563 CFG_ACTIVE_MODE_OFFLOAD_MAX),
3564
3565 REG_VARIABLE(CFG_FINE_TIME_MEAS_CAPABILITY, WLAN_PARAM_HexInteger,
3566 struct hdd_config, fine_time_meas_cap,
3567 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3568 CFG_FINE_TIME_MEAS_CAPABILITY_DEFAULT,
3569 CFG_FINE_TIME_MEAS_CAPABILITY_MIN,
3570 CFG_FINE_TIME_MEAS_CAPABILITY_MAX),
3571
3572#ifdef WLAN_FEATURE_FASTPATH
3573 REG_VARIABLE(CFG_ENABLE_FASTPATH, WLAN_PARAM_Integer,
3574 struct hdd_config, fastpath_enable,
3575 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3576 CFG_ENABLE_FASTPATH_DEFAULT,
3577 CFG_ENABLE_FASTPATH_MIN,
3578 CFG_ENABLE_FASTPATH_MAX),
3579#endif
3580 REG_VARIABLE(CFG_MAX_SCAN_COUNT_NAME, WLAN_PARAM_Integer,
3581 struct hdd_config, max_scan_count,
3582 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3583 CFG_MAX_SCAN_COUNT_DEFAULT,
3584 CFG_MAX_SCAN_COUNT_MIN,
3585 CFG_MAX_SCAN_COUNT_MAX),
3586
3587 REG_VARIABLE(CFG_DOT11P_MODE_NAME, WLAN_PARAM_Integer,
3588 struct hdd_config, dot11p_mode,
3589 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3590 CFG_DOT11P_MODE_DEFAULT,
3591 CFG_DOT11P_MODE_MIN,
3592 CFG_DOT11P_MODE_MAX),
3593
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003594#ifdef FEATURE_WLAN_EXTSCAN
Manjeet Singh0f2ce5c2016-09-01 12:08:57 +05303595 REG_VARIABLE(CFG_EXTSCAN_ALLOWED_NAME, WLAN_PARAM_Integer,
3596 struct hdd_config, extscan_enabled,
3597 VAR_FLAGS_OPTIONAL |
3598 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3599 CFG_EXTSCAN_ALLOWED_DEF,
3600 CFG_EXTSCAN_ALLOWED_MIN,
3601 CFG_EXTSCAN_ALLOWED_MAX),
3602
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003603 REG_VARIABLE(CFG_EXTSCAN_PASSIVE_MAX_CHANNEL_TIME_NAME,
3604 WLAN_PARAM_Integer,
3605 struct hdd_config, extscan_passive_max_chn_time,
3606 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3607 CFG_EXTSCAN_PASSIVE_MAX_CHANNEL_TIME_DEFAULT,
3608 CFG_EXTSCAN_PASSIVE_MAX_CHANNEL_TIME_MIN,
3609 CFG_EXTSCAN_PASSIVE_MAX_CHANNEL_TIME_MAX),
3610
3611 REG_VARIABLE(CFG_EXTSCAN_PASSIVE_MIN_CHANNEL_TIME_NAME,
3612 WLAN_PARAM_Integer,
3613 struct hdd_config, extscan_passive_min_chn_time,
3614 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3615 CFG_EXTSCAN_PASSIVE_MIN_CHANNEL_TIME_DEFAULT,
3616 CFG_EXTSCAN_PASSIVE_MIN_CHANNEL_TIME_MIN,
3617 CFG_EXTSCAN_PASSIVE_MIN_CHANNEL_TIME_MAX),
3618
3619 REG_VARIABLE(CFG_EXTSCAN_ACTIVE_MAX_CHANNEL_TIME_NAME,
3620 WLAN_PARAM_Integer,
3621 struct hdd_config, extscan_active_max_chn_time,
3622 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3623 CFG_EXTSCAN_ACTIVE_MAX_CHANNEL_TIME_DEFAULT,
3624 CFG_EXTSCAN_ACTIVE_MAX_CHANNEL_TIME_MIN,
3625 CFG_EXTSCAN_ACTIVE_MAX_CHANNEL_TIME_MAX),
3626
3627 REG_VARIABLE(CFG_EXTSCAN_ACTIVE_MIN_CHANNEL_TIME_NAME,
3628 WLAN_PARAM_Integer,
3629 struct hdd_config, extscan_active_min_chn_time,
3630 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3631 CFG_EXTSCAN_ACTIVE_MIN_CHANNEL_TIME_DEFAULT,
3632 CFG_EXTSCAN_ACTIVE_MIN_CHANNEL_TIME_MIN,
3633 CFG_EXTSCAN_ACTIVE_MIN_CHANNEL_TIME_MAX),
3634#endif
3635
Yingying Tang95409972016-10-20 15:16:15 +08003636#ifdef WLAN_FEATURE_WOW_PULSE
3637 REG_VARIABLE(CFG_WOW_PULSE_SUPPORT_NAME, WLAN_PARAM_Integer,
3638 struct hdd_config, wow_pulse_support,
3639 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3640 CFG_WOW_PULSE_SUPPORT_DEFAULT,
3641 CFG_WOW_PULSE_SUPPORT_MIN,
3642 CFG_WOW_PULSE_SUPPORT_MAX),
3643
3644 REG_VARIABLE(CFG_WOW_PULSE_PIN_NAME, WLAN_PARAM_Integer,
3645 struct hdd_config, wow_pulse_pin,
3646 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3647 CFG_WOW_PULSE_PIN_DEFAULT,
3648 CFG_WOW_PULSE_PIN_MIN,
3649 CFG_WOW_PULSE_PIN_MAX),
3650
3651 REG_VARIABLE(CFG_WOW_PULSE_INTERVAL_LOW_NAME, WLAN_PARAM_Integer,
3652 struct hdd_config, wow_pulse_interval_low,
3653 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3654 CFG_WOW_PULSE_INTERVAL_LOW_DEFAULT,
3655 CFG_WOW_PULSE_INTERVAL_LOW_MIN,
3656 CFG_WOW_PULSE_INTERVAL_LOW_MAX),
3657
3658 REG_VARIABLE(CFG_WOW_PULSE_INTERVAL_HIGH_NAME, WLAN_PARAM_Integer,
3659 struct hdd_config, wow_pulse_interval_high,
3660 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3661 CFG_WOW_PULSE_INTERVAL_HIGH_DEFAULT,
3662 CFG_WOW_PULSE_INTERVAL_HIGH_MIN,
3663 CFG_WOW_PULSE_INTERVAL_HIGH_MAX),
3664#endif
3665
3666
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003667 REG_VARIABLE(CFG_CE_CLASSIFY_ENABLE_NAME, WLAN_PARAM_Integer,
3668 struct hdd_config, ce_classify_enabled,
3669 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3670 CFG_CE_CLASSIFY_ENABLE_DEFAULT,
3671 CFG_CE_CLASSIFY_ENABLE_MIN,
3672 CFG_CE_CLASSIFY_ENABLE_MAX),
3673
3674 REG_VARIABLE(CFG_DUAL_MAC_FEATURE_DISABLE, WLAN_PARAM_HexInteger,
3675 struct hdd_config, dual_mac_feature_disable,
3676 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3677 CFG_DUAL_MAC_FEATURE_DISABLE_DEFAULT,
3678 CFG_DUAL_MAC_FEATURE_DISABLE_MIN,
3679 CFG_DUAL_MAC_FEATURE_DISABLE_MAX),
Nitesh Shah50a3de12017-04-03 19:37:19 +05303680
3681 REG_VARIABLE_STRING(CFG_DBS_SCAN_SELECTION_NAME, WLAN_PARAM_String,
3682 struct hdd_config, dbs_scan_selection,
3683 VAR_FLAGS_OPTIONAL,
3684 (void *)CFG_DBS_SCAN_SELECTION_DEFAULT),
3685
Varun Reddy Yeturub43fda12015-09-10 18:16:21 -07003686#ifdef FEATURE_WLAN_SCAN_PNO
3687 REG_VARIABLE(CFG_PNO_CHANNEL_PREDICTION_NAME, WLAN_PARAM_Integer,
3688 struct hdd_config, pno_channel_prediction,
3689 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3690 CFG_PNO_CHANNEL_PREDICTION_DEFAULT,
3691 CFG_PNO_CHANNEL_PREDICTION_MIN,
3692 CFG_PNO_CHANNEL_PREDICTION_MAX),
3693
3694 REG_VARIABLE(CFG_TOP_K_NUM_OF_CHANNELS_NAME, WLAN_PARAM_Integer,
3695 struct hdd_config, top_k_num_of_channels,
3696 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3697 CFG_TOP_K_NUM_OF_CHANNELS_DEFAULT,
3698 CFG_TOP_K_NUM_OF_CHANNELS_MIN,
3699 CFG_TOP_K_NUM_OF_CHANNELS_MAX),
3700
3701 REG_VARIABLE(CFG_STATIONARY_THRESHOLD_NAME, WLAN_PARAM_Integer,
3702 struct hdd_config, stationary_thresh,
3703 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3704 CFG_STATIONARY_THRESHOLD_DEFAULT,
3705 CFG_STATIONARY_THRESHOLD_MIN,
3706 CFG_STATIONARY_THRESHOLD_MAX),
3707
3708 REG_VARIABLE(CFG_CHANNEL_PREDICTION_FULL_SCAN_MS_NAME,
3709 WLAN_PARAM_Integer,
3710 struct hdd_config, channel_prediction_full_scan,
3711 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3712 CFG_CHANNEL_PREDICTION_FULL_SCAN_MS_DEFAULT,
3713 CFG_CHANNEL_PREDICTION_FULL_SCAN_MS_MIN,
3714 CFG_CHANNEL_PREDICTION_FULL_SCAN_MS_MAX),
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05303715
3716 REG_VARIABLE(CFG_ADAPTIVE_PNOSCAN_DWELL_MODE_NAME,
3717 WLAN_PARAM_Integer,
3718 struct hdd_config, pnoscan_adaptive_dwell_mode,
3719 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3720 CFG_ADAPTIVE_PNOSCAN_DWELL_MODE_DEFAULT,
3721 CFG_ADAPTIVE_PNOSCAN_DWELL_MODE_MIN,
3722 CFG_ADAPTIVE_PNOSCAN_DWELL_MODE_MAX),
Varun Reddy Yeturub43fda12015-09-10 18:16:21 -07003723#endif
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003724
3725 REG_VARIABLE(CFG_TX_CHAIN_MASK_CCK, WLAN_PARAM_Integer,
3726 struct hdd_config, tx_chain_mask_cck,
3727 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3728 CFG_TX_CHAIN_MASK_CCK_DEFAULT,
3729 CFG_TX_CHAIN_MASK_CCK_MIN,
3730 CFG_TX_CHAIN_MASK_CCK_MAX),
3731
3732 REG_VARIABLE(CFG_TX_CHAIN_MASK_1SS, WLAN_PARAM_Integer,
3733 struct hdd_config, tx_chain_mask_1ss,
3734 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3735 CFG_TX_CHAIN_MASK_1SS_DEFAULT,
3736 CFG_TX_CHAIN_MASK_1SS_MIN,
3737 CFG_TX_CHAIN_MASK_1SS_MAX),
3738
Jeff Johnsona89e25d2017-02-24 12:25:07 -08003739 REG_VARIABLE(CFG_ENABLE_SMART_CHAINMASK_NAME, WLAN_PARAM_Integer,
3740 struct hdd_config, smart_chainmask_enabled,
3741 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3742 CFG_ENABLE_SMART_CHAINMASK_DEFAULT,
3743 CFG_ENABLE_SMART_CHAINMASK_MIN,
3744 CFG_ENABLE_SMART_CHAINMASK_MAX),
3745
3746 REG_VARIABLE(CFG_ENABLE_COEX_ALT_CHAINMASK_NAME, WLAN_PARAM_Integer,
3747 struct hdd_config, alternative_chainmask_enabled,
3748 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3749 CFG_ENABLE_COEX_ALT_CHAINMASK_DEFAULT,
3750 CFG_ENABLE_COEX_ALT_CHAINMASK_MIN,
3751 CFG_ENABLE_COEX_ALT_CHAINMASK_MAX),
3752
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003753 REG_VARIABLE(CFG_SELF_GEN_FRM_PWR, WLAN_PARAM_Integer,
3754 struct hdd_config, self_gen_frm_pwr,
3755 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3756 CFG_SELF_GEN_FRM_PWR_DEFAULT,
3757 CFG_SELF_GEN_FRM_PWR_MIN,
3758 CFG_SELF_GEN_FRM_PWR_MAX),
3759
Varun Reddy Yeturu05186292015-09-28 17:12:33 -07003760 REG_VARIABLE(CFG_EARLY_STOP_SCAN_ENABLE, WLAN_PARAM_Integer,
3761 struct hdd_config, early_stop_scan_enable,
3762 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3763 CFG_EARLY_STOP_SCAN_ENABLE_DEFAULT,
3764 CFG_EARLY_STOP_SCAN_ENABLE_MIN,
3765 CFG_EARLY_STOP_SCAN_ENABLE_MAX),
3766
3767 REG_VARIABLE(CFG_EARLY_STOP_SCAN_MIN_THRESHOLD,
3768 WLAN_PARAM_SignedInteger, struct hdd_config,
3769 early_stop_scan_min_threshold,
3770 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3771 CFG_EARLY_STOP_SCAN_MIN_THRESHOLD_DEFAULT,
3772 CFG_EARLY_STOP_SCAN_MIN_THRESHOLD_MIN,
3773 CFG_EARLY_STOP_SCAN_MIN_THRESHOLD_MAX),
3774
3775 REG_VARIABLE(CFG_EARLY_STOP_SCAN_MAX_THRESHOLD,
3776 WLAN_PARAM_SignedInteger, struct hdd_config,
3777 early_stop_scan_max_threshold,
3778 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3779 CFG_EARLY_STOP_SCAN_MAX_THRESHOLD_DEFAULT,
3780 CFG_EARLY_STOP_SCAN_MAX_THRESHOLD_MIN,
3781 CFG_EARLY_STOP_SCAN_MAX_THRESHOLD_MAX),
3782
Varun Reddy Yeturu044bda22015-11-21 22:03:40 -08003783 REG_VARIABLE(CFG_FIRST_SCAN_BUCKET_THRESHOLD_NAME,
3784 WLAN_PARAM_SignedInteger,
3785 struct hdd_config, first_scan_bucket_threshold,
3786 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3787 CFG_FIRST_SCAN_BUCKET_THRESHOLD_DEFAULT,
3788 CFG_FIRST_SCAN_BUCKET_THRESHOLD_MIN,
3789 CFG_FIRST_SCAN_BUCKET_THRESHOLD_MAX),
3790
Ravi Joshi742495d2015-11-09 18:56:53 -08003791#ifdef FEATURE_LFR_SUBNET_DETECTION
3792 REG_VARIABLE(CFG_ENABLE_LFR_SUBNET_DETECTION, WLAN_PARAM_Integer,
3793 struct hdd_config, enable_lfr_subnet_detection,
3794 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3795 CFG_ENABLE_LFR_SUBNET_DEFAULT,
3796 CFG_ENABLE_LFR_SUBNET_MIN,
3797 CFG_ENABLE_LFR_SUBNET_MAX),
3798#endif
Sandeep Puligilla93a29ec2016-02-12 16:10:56 -08003799 REG_VARIABLE(CFG_OBSS_HT40_SCAN_ACTIVE_DWELL_TIME_NAME,
3800 WLAN_PARAM_Integer,
3801 struct hdd_config, obss_active_dwelltime,
3802 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3803 CFG_OBSS_HT40_SCAN_ACTIVE_DWELL_TIME_DEFAULT,
3804 CFG_OBSS_HT40_SCAN_ACTIVE_DWELL_TIME_MIN,
3805 CFG_OBSS_HT40_SCAN_ACTIVE_DWELL_TIME_MAX),
3806
3807 REG_VARIABLE(CFG_OBSS_HT40_SCAN_PASSIVE_DWELL_TIME_NAME,
3808 WLAN_PARAM_Integer,
3809 struct hdd_config, obss_passive_dwelltime,
3810 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3811 CFG_OBSS_HT40_SCAN_PASSIVE_DWELL_TIME_DEFAULT,
3812 CFG_OBSS_HT40_SCAN_PASSIVE_DWELL_TIME_MIN,
3813 CFG_OBSS_HT40_SCAN_PASSIVE_DWELL_TIME_MAX),
3814
3815 REG_VARIABLE(CFG_OBSS_HT40_SCAN_WIDTH_TRIGGER_INTERVAL_NAME,
3816 WLAN_PARAM_Integer,
3817 struct hdd_config, obss_width_trigger_interval,
3818 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3819 CFG_OBSS_HT40_SCAN_WIDTH_TRIGGER_INTERVAL_DEFAULT,
3820 CFG_OBSS_HT40_SCAN_WIDTH_TRIGGER_INTERVAL_MIN,
3821 CFG_OBSS_HT40_SCAN_WIDTH_TRIGGER_INTERVAL_MAX),
Deepak Dhamdhere68929ec2015-08-05 15:16:35 -07003822
3823 REG_VARIABLE(CFG_INFORM_BSS_RSSI_RAW_NAME, WLAN_PARAM_Integer,
3824 struct hdd_config, inform_bss_rssi_raw,
3825 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3826 CFG_INFORM_BSS_RSSI_RAW_DEFAULT,
3827 CFG_INFORM_BSS_RSSI_RAW_MIN,
3828 CFG_INFORM_BSS_RSSI_RAW_MAX),
Tushnim Bhattacharyya24e12a62015-10-12 14:51:56 -07003829
Manikandan Mohan976e7562016-03-15 16:33:31 -07003830#ifdef WLAN_FEATURE_TSF
3831 REG_VARIABLE(CFG_SET_TSF_GPIO_PIN_NAME, WLAN_PARAM_Integer,
3832 struct hdd_config, tsf_gpio_pin,
3833 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3834 CFG_SET_TSF_GPIO_PIN_DEFAULT,
3835 CFG_SET_TSF_GPIO_PIN_MIN,
3836 CFG_SET_TSF_GPIO_PIN_MAX),
3837#endif
3838
Gupta, Kapilc68ad462016-02-01 19:17:23 +05303839 REG_VARIABLE(CFG_ROAM_DENSE_TRAFFIC_THRESHOLD, WLAN_PARAM_Integer,
3840 struct hdd_config, roam_dense_traffic_thresh,
3841 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3842 CFG_ROAM_DENSE_TRAFFIC_THRESHOLD_DEFAULT,
3843 CFG_ROAM_DENSE_TRAFFIC_THRESHOLD_MIN,
3844 CFG_ROAM_DENSE_TRAFFIC_THRESHOLD_MAX),
3845
3846 REG_VARIABLE(CFG_ROAM_DENSE_RSSI_THRE_OFFSET, WLAN_PARAM_Integer,
3847 struct hdd_config, roam_dense_rssi_thresh_offset,
3848 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3849 CFG_ROAM_DENSE_RSSI_THRE_OFFSET_DEFAULT,
3850 CFG_ROAM_DENSE_RSSI_THRE_OFFSET_MIN,
3851 CFG_ROAM_DENSE_RSSI_THRE_OFFSET_MAX),
3852
Abhishek Singh165bc602016-03-21 12:43:00 +05303853 REG_VARIABLE(CFG_IGNORE_PEER_HT_MODE_NAME, WLAN_PARAM_Integer,
3854 struct hdd_config, ignore_peer_ht_opmode,
3855 VAR_FLAGS_OPTIONAL |
3856 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3857 CFG_IGNORE_PEER_HT_MODE_DEFAULT,
3858 CFG_IGNORE_PEER_HT_MODE_MIN,
3859 CFG_IGNORE_PEER_HT_MODE_MAX),
3860
Gupta, Kapilc68ad462016-02-01 19:17:23 +05303861 REG_VARIABLE(CFG_ROAM_DENSE_MIN_APS, WLAN_PARAM_Integer,
3862 struct hdd_config, roam_dense_min_aps,
3863 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3864 CFG_ROAM_DENSE_MIN_APS_DEFAULT,
3865 CFG_ROAM_DENSE_MIN_APS_MIN,
3866 CFG_ROAM_DENSE_MIN_APS_MAX),
3867
Abhishek Singh5ea86532016-04-27 14:10:53 +05303868 REG_VARIABLE(CFG_ENABLE_FATAL_EVENT_TRIGGER, WLAN_PARAM_Integer,
3869 struct hdd_config, enable_fatal_event,
3870 VAR_FLAGS_OPTIONAL |
3871 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3872 CFG_ENABLE_FATAL_EVENT_TRIGGER_DEFAULT,
3873 CFG_ENABLE_FATAL_EVENT_TRIGGER_MIN,
3874 CFG_ENABLE_FATAL_EVENT_TRIGGER_MAX),
3875
Abhishek Singh10ecf582016-05-04 17:48:59 +05303876 REG_VARIABLE(CFG_ENABLE_EDCA_INI_NAME, WLAN_PARAM_Integer,
3877 struct hdd_config, enable_edca_params,
3878 VAR_FLAGS_OPTIONAL |
3879 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3880 CFG_ENABLE_EDCA_INI_DEFAULT,
3881 CFG_ENABLE_EDCA_INI_MIN,
3882 CFG_ENABLE_EDCA_INI_MAX),
3883
Agrawal Ashishb2d1a452016-05-05 12:23:58 +05303884 REG_VARIABLE(CFG_ENABLE_GO_CTS2SELF_FOR_STA, WLAN_PARAM_Integer,
3885 struct hdd_config, enable_go_cts2self_for_sta,
3886 VAR_FLAGS_OPTIONAL |
3887 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3888 CFG_ENABLE_GO_CTS2SELF_FOR_STA_DEFAULT,
3889 CFG_ENABLE_GO_CTS2SELF_FOR_STA_MIN,
3890 CFG_ENABLE_GO_CTS2SELF_FOR_STA_MAX),
3891
Abhishek Singh10ecf582016-05-04 17:48:59 +05303892 REG_VARIABLE(CFG_EDCA_VO_CWMIN_VALUE_NAME, WLAN_PARAM_Integer,
3893 struct hdd_config, edca_vo_cwmin,
3894 VAR_FLAGS_OPTIONAL |
3895 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3896 CFG_EDCA_VO_CWMIN_VALUE_DEFAULT,
3897 CFG_EDCA_VO_CWMIN_VALUE_MIN,
3898 CFG_EDCA_VO_CWMIN_VALUE_MAX),
3899
3900 REG_VARIABLE(CFG_EDCA_VI_CWMIN_VALUE_NAME, WLAN_PARAM_Integer,
3901 struct hdd_config, edca_vi_cwmin,
3902 VAR_FLAGS_OPTIONAL |
3903 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3904 CFG_EDCA_VI_CWMIN_VALUE_DEFAULT,
3905 CFG_EDCA_VI_CWMIN_VALUE_MIN,
3906 CFG_EDCA_VI_CWMIN_VALUE_MAX),
3907
3908 REG_VARIABLE(CFG_EDCA_BK_CWMIN_VALUE_NAME, WLAN_PARAM_Integer,
3909 struct hdd_config, edca_bk_cwmin,
3910 VAR_FLAGS_OPTIONAL |
3911 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3912 CFG_EDCA_BK_CWMIN_VALUE_DEFAULT,
3913 CFG_EDCA_BK_CWMIN_VALUE_MIN,
3914 CFG_EDCA_BK_CWMIN_VALUE_MAX),
3915
3916 REG_VARIABLE(CFG_EDCA_BE_CWMIN_VALUE_NAME, WLAN_PARAM_Integer,
3917 struct hdd_config, edca_be_cwmin,
3918 VAR_FLAGS_OPTIONAL |
3919 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3920 CFG_EDCA_BE_CWMIN_VALUE_DEFAULT,
3921 CFG_EDCA_BE_CWMIN_VALUE_MIN,
3922 CFG_EDCA_BE_CWMIN_VALUE_MAX),
3923
3924 REG_VARIABLE(CFG_EDCA_VO_CWMAX_VALUE_NAME, WLAN_PARAM_Integer,
3925 struct hdd_config, edca_vo_cwmax,
3926 VAR_FLAGS_OPTIONAL |
3927 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3928 CFG_EDCA_VO_CWMAX_VALUE_DEFAULT,
3929 CFG_EDCA_VO_CWMAX_VALUE_MIN,
3930 CFG_EDCA_VO_CWMAX_VALUE_MAX),
3931
3932 REG_VARIABLE(CFG_EDCA_VI_CWMAX_VALUE_NAME, WLAN_PARAM_Integer,
3933 struct hdd_config, edca_vi_cwmax,
3934 VAR_FLAGS_OPTIONAL |
3935 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3936 CFG_EDCA_VI_CWMAX_VALUE_DEFAULT,
3937 CFG_EDCA_VI_CWMAX_VALUE_MIN,
3938 CFG_EDCA_VI_CWMAX_VALUE_MAX),
3939
3940 REG_VARIABLE(CFG_EDCA_BK_CWMAX_VALUE_NAME, WLAN_PARAM_Integer,
3941 struct hdd_config, edca_bk_cwmax,
3942 VAR_FLAGS_OPTIONAL |
3943 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3944 CFG_EDCA_BK_CWMAX_VALUE_DEFAULT,
3945 CFG_EDCA_BK_CWMAX_VALUE_MIN,
3946 CFG_EDCA_BK_CWMAX_VALUE_MAX),
3947
3948 REG_VARIABLE(CFG_EDCA_BE_CWMAX_VALUE_NAME, WLAN_PARAM_Integer,
3949 struct hdd_config, edca_be_cwmax,
3950 VAR_FLAGS_OPTIONAL |
3951 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3952 CFG_EDCA_BE_CWMAX_VALUE_DEFAULT,
3953 CFG_EDCA_BE_CWMAX_VALUE_MIN,
3954 CFG_EDCA_BE_CWMAX_VALUE_MAX),
3955
3956 REG_VARIABLE(CFG_EDCA_VO_AIFS_VALUE_NAME, WLAN_PARAM_Integer,
3957 struct hdd_config, edca_vo_aifs,
3958 VAR_FLAGS_OPTIONAL |
3959 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3960 CFG_EDCA_VO_AIFS_VALUE_DEFAULT,
3961 CFG_EDCA_VO_AIFS_VALUE_MIN,
3962 CFG_EDCA_VO_AIFS_VALUE_MAX),
3963
3964 REG_VARIABLE(CFG_EDCA_VI_AIFS_VALUE_NAME, WLAN_PARAM_Integer,
3965 struct hdd_config, edca_vi_aifs,
3966 VAR_FLAGS_OPTIONAL |
3967 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3968 CFG_EDCA_VI_AIFS_VALUE_DEFAULT,
3969 CFG_EDCA_VI_AIFS_VALUE_MIN,
3970 CFG_EDCA_VI_AIFS_VALUE_MAX),
3971
3972 REG_VARIABLE(CFG_EDCA_BK_AIFS_VALUE_NAME, WLAN_PARAM_Integer,
3973 struct hdd_config, edca_bk_aifs,
3974 VAR_FLAGS_OPTIONAL |
3975 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3976 CFG_EDCA_BK_AIFS_VALUE_DEFAULT,
3977 CFG_EDCA_BK_AIFS_VALUE_MIN,
3978 CFG_EDCA_BK_AIFS_VALUE_MAX),
3979
3980 REG_VARIABLE(CFG_EDCA_BE_AIFS_VALUE_NAME, WLAN_PARAM_Integer,
3981 struct hdd_config, edca_be_aifs,
3982 VAR_FLAGS_OPTIONAL |
3983 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3984 CFG_EDCA_BE_AIFS_VALUE_DEFAULT,
3985 CFG_EDCA_BE_AIFS_VALUE_MIN,
3986 CFG_EDCA_BE_AIFS_VALUE_MAX),
gbian62edd7e2017-03-07 13:12:13 +08003987
3988 REG_VARIABLE_STRING(CFG_ENABLE_TX_SCHED_WRR_VO_NAME,
3989 WLAN_PARAM_String,
3990 struct hdd_config, tx_sched_wrr_vo,
3991 VAR_FLAGS_OPTIONAL,
3992 (void *) CFG_ENABLE_TX_SCHED_WRR_VO_DEFAULT),
3993
3994 REG_VARIABLE_STRING(CFG_ENABLE_TX_SCHED_WRR_VI_NAME,
3995 WLAN_PARAM_String,
3996 struct hdd_config, tx_sched_wrr_vi,
3997 VAR_FLAGS_OPTIONAL,
3998 (void *) CFG_ENABLE_TX_SCHED_WRR_VI_DEFAULT),
3999
4000 REG_VARIABLE_STRING(CFG_ENABLE_TX_SCHED_WRR_BE_NAME,
4001 WLAN_PARAM_String,
4002 struct hdd_config, tx_sched_wrr_be,
4003 VAR_FLAGS_OPTIONAL,
4004 (void *) CFG_ENABLE_TX_SCHED_WRR_BE_DEFAULT),
4005
4006 REG_VARIABLE_STRING(CFG_ENABLE_TX_SCHED_WRR_BK_NAME,
4007 WLAN_PARAM_String,
4008 struct hdd_config, tx_sched_wrr_bk,
4009 VAR_FLAGS_OPTIONAL,
4010 (void *) CFG_ENABLE_TX_SCHED_WRR_BK_DEFAULT),
4011
Deepak Dhamdhere3385d752016-05-25 20:36:47 -07004012#ifdef WLAN_FEATURE_NAN_DATAPATH
4013 REG_VARIABLE(CFG_ENABLE_NAN_DATAPATH_NAME, WLAN_PARAM_Integer,
4014 struct hdd_config, enable_nan_datapath,
4015 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4016 CFG_ENABLE_NAN_DATAPATH_DEFAULT,
4017 CFG_ENABLE_NAN_DATAPATH_MIN,
4018 CFG_ENABLE_NAN_DATAPATH_MAX),
4019
4020 REG_VARIABLE(CFG_ENABLE_NAN_NDI_CHANNEL_NAME, WLAN_PARAM_Integer,
4021 struct hdd_config, nan_datapath_ndi_channel,
4022 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4023 CFG_ENABLE_NAN_NDI_CHANNEL_DEFAULT,
4024 CFG_ENABLE_NAN_NDI_CHANNEL_MIN,
4025 CFG_ENABLE_NAN_NDI_CHANNEL_MAX),
4026#endif
Kapil Gupta0ed58dc2016-04-22 15:35:26 +05304027 REG_VARIABLE(CFG_CREATE_BUG_REPORT_FOR_SCAN, WLAN_PARAM_Integer,
4028 struct hdd_config, bug_report_for_no_scan_results,
4029 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4030 CFG_CREATE_BUG_REPORT_FOR_SCAN_DEFAULT,
4031 CFG_CREATE_BUG_REPORT_FOR_SCAN_DISABLE,
4032 CFG_CREATE_BUG_REPORT_FOR_SCAN_ENABLE),
Abhishek Singh5ea86532016-04-27 14:10:53 +05304033
Kapil Gupta8878ad92017-02-13 11:56:04 +05304034 REG_VARIABLE(CFG_USER_AUTO_CHANNEL_SELECTION, WLAN_PARAM_Integer,
4035 struct hdd_config, vendor_acs_support,
4036 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4037 CFG_USER_AUTO_CHANNEL_SELECTION_DEFAULT,
4038 CFG_USER_AUTO_CHANNEL_SELECTION_DISABLE,
4039 CFG_USER_AUTO_CHANNEL_SELECTION_ENABLE),
4040
4041 REG_VARIABLE(CFG_USER_ACS_DFS_LTE, WLAN_PARAM_Integer,
4042 struct hdd_config, acs_support_for_dfs_ltecoex,
4043 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4044 CFG_USER_ACS_DFS_LTE_DEFAULT,
4045 CFG_USER_ACS_DFS_LTE_DISABLE,
4046 CFG_USER_ACS_DFS_LTE_ENABLE),
4047
Nirav Shahcc1f1ae2016-04-26 11:41:29 +05304048 REG_VARIABLE(CFG_ENABLE_DP_TRACE, WLAN_PARAM_Integer,
4049 struct hdd_config, enable_dp_trace,
4050 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4051 CFG_ENABLE_DP_TRACE_DEFAULT,
4052 CFG_ENABLE_DP_TRACE_MIN,
4053 CFG_ENABLE_DP_TRACE_MAX),
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05304054
4055 REG_VARIABLE(CFG_ADAPTIVE_SCAN_DWELL_MODE_NAME, WLAN_PARAM_Integer,
4056 struct hdd_config, scan_adaptive_dwell_mode,
4057 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4058 CFG_ADAPTIVE_SCAN_DWELL_MODE_DEFAULT,
4059 CFG_ADAPTIVE_SCAN_DWELL_MODE_MIN,
4060 CFG_ADAPTIVE_SCAN_DWELL_MODE_MAX),
4061
4062 REG_VARIABLE(CFG_ADAPTIVE_ROAMSCAN_DWELL_MODE_NAME, WLAN_PARAM_Integer,
4063 struct hdd_config, roamscan_adaptive_dwell_mode,
4064 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4065 CFG_ADAPTIVE_ROAMSCAN_DWELL_MODE_DEFAULT,
4066 CFG_ADAPTIVE_ROAMSCAN_DWELL_MODE_MIN,
4067 CFG_ADAPTIVE_ROAMSCAN_DWELL_MODE_MAX),
4068
4069 REG_VARIABLE(CFG_ADAPTIVE_EXTSCAN_DWELL_MODE_NAME, WLAN_PARAM_Integer,
4070 struct hdd_config, extscan_adaptive_dwell_mode,
4071 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4072 CFG_ADAPTIVE_EXTSCAN_DWELL_MODE_DEFAULT,
4073 CFG_ADAPTIVE_EXTSCAN_DWELL_MODE_MIN,
4074 CFG_ADAPTIVE_EXTSCAN_DWELL_MODE_MAX),
4075
4076 REG_VARIABLE(CFG_ADAPTIVE_DWELL_MODE_ENABLED_NAME, WLAN_PARAM_Integer,
4077 struct hdd_config, adaptive_dwell_mode_enabled,
4078 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4079 CFG_ADAPTIVE_DWELL_MODE_ENABLED_DEFAULT,
4080 CFG_ADAPTIVE_DWELL_MODE_ENABLED_MIN,
4081 CFG_ADAPTIVE_DWELL_MODE_ENABLED_MAX),
4082
4083 REG_VARIABLE(CFG_GLOBAL_ADAPTIVE_DWELL_MODE_NAME, WLAN_PARAM_Integer,
4084 struct hdd_config, global_adapt_dwelltime_mode,
4085 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4086 CFG_GLOBAL_ADAPTIVE_DWELL_MODE_DEFAULT,
4087 CFG_GLOBAL_ADAPTIVE_DWELL_MODE_MIN,
4088 CFG_GLOBAL_ADAPTIVE_DWELL_MODE_MAX),
4089
4090 REG_VARIABLE(CFG_ADAPT_DWELL_LPF_WEIGHT_NAME, WLAN_PARAM_Integer,
4091 struct hdd_config, adapt_dwell_lpf_weight,
4092 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4093 CFG_ADAPT_DWELL_LPF_WEIGHT_DEFAULT,
4094 CFG_ADAPT_DWELL_LPF_WEIGHT_MIN,
4095 CFG_ADAPT_DWELL_LPF_WEIGHT_MAX),
4096
Naveen Rawat64e477e2016-05-20 10:34:56 -07004097 REG_VARIABLE(CFG_SUB_20_CHANNEL_WIDTH_NAME, WLAN_PARAM_Integer,
4098 struct hdd_config, enable_sub_20_channel_width,
4099 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4100 CFG_SUB_20_CHANNEL_WIDTH_DEFAULT,
4101 CFG_SUB_20_CHANNEL_WIDTH_MIN,
4102 CFG_SUB_20_CHANNEL_WIDTH_MAX),
4103
Rajeev Kumar Sirasanagandlaaf474742016-09-06 17:54:50 +05304104 REG_VARIABLE(CFG_TGT_GTX_USR_CFG_NAME, WLAN_PARAM_Integer,
4105 struct hdd_config, tgt_gtx_usr_cfg,
4106 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4107 CFG_TGT_GTX_USR_CFG_DEFAULT,
4108 CFG_TGT_GTX_USR_CFG_MIN,
4109 CFG_TGT_GTX_USR_CFG_MAX),
4110
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05304111 REG_VARIABLE(CFG_ADAPT_DWELL_PASMON_INTVAL_NAME, WLAN_PARAM_Integer,
4112 struct hdd_config, adapt_dwell_passive_mon_intval,
4113 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4114 CFG_ADAPT_DWELL_PASMON_INTVAL_DEFAULT,
4115 CFG_ADAPT_DWELL_PASMON_INTVAL_MIN,
4116 CFG_ADAPT_DWELL_PASMON_INTVAL_MAX),
4117
4118 REG_VARIABLE(CFG_ADAPT_DWELL_WIFI_THRESH_NAME, WLAN_PARAM_Integer,
4119 struct hdd_config, adapt_dwell_wifi_act_threshold,
4120 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4121 CFG_ADAPT_DWELL_WIFI_THRESH_DEFAULT,
4122 CFG_ADAPT_DWELL_WIFI_THRESH_MIN,
4123 CFG_ADAPT_DWELL_WIFI_THRESH_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004124
Nirav Shahbd36b062016-07-18 11:12:59 +05304125 REG_VARIABLE(CFG_RX_MODE_NAME, WLAN_PARAM_Integer,
4126 struct hdd_config, rx_mode,
4127 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4128 CFG_RX_MODE_DEFAULT,
4129 CFG_RX_MODE_MIN,
4130 CFG_RX_MODE_MAX),
4131
4132 REG_VARIABLE_STRING(CFG_RPS_RX_QUEUE_CPU_MAP_LIST_NAME,
4133 WLAN_PARAM_String,
4134 struct hdd_config, cpu_map_list,
4135 VAR_FLAGS_OPTIONAL,
4136 (void *)CFG_RPS_RX_QUEUE_CPU_MAP_LIST_DEFAULT),
4137
Amar Singhal18517882016-08-08 12:26:20 -07004138 REG_VARIABLE(CFG_INDOOR_CHANNEL_SUPPORT_NAME,
4139 WLAN_PARAM_Integer,
4140 struct hdd_config, indoor_channel_support,
4141 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4142 CFG_INDOOR_CHANNEL_SUPPORT_DEFAULT,
4143 CFG_INDOOR_CHANNEL_SUPPORT_MIN,
4144 CFG_INDOOR_CHANNEL_SUPPORT_MAX),
4145
Yingying Tangb4832f72016-10-20 13:44:55 +08004146 REG_VARIABLE(CFG_SAP_TX_LEAKAGE_THRESHOLD_NAME,
4147 WLAN_PARAM_Integer,
4148 struct hdd_config, sap_tx_leakage_threshold,
4149 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4150 CFG_SAP_TX_LEAKAGE_THRESHOLD_DEFAULT,
4151 CFG_SAP_TX_LEAKAGE_THRESHOLD_MIN,
4152 CFG_SAP_TX_LEAKAGE_THRESHOLD_MAX),
4153
Mukul Sharmaf7d62e12016-09-03 15:16:22 +05304154 REG_VARIABLE(CFG_BUG_ON_REINIT_FAILURE_NAME, WLAN_PARAM_Integer,
4155 struct hdd_config, bug_on_reinit_failure,
4156 VAR_FLAGS_OPTIONAL |
4157 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4158 CFG_BUG_ON_REINIT_FAILURE_DEFAULT,
4159 CFG_BUG_ON_REINIT_FAILURE_MIN,
4160 CFG_BUG_ON_REINIT_FAILURE_MAX),
4161
Rajeev Kumar Sirasanagandlab79b5462016-09-06 18:33:17 +05304162 REG_VARIABLE(CFG_SAP_FORCE_11N_FOR_11AC_NAME, WLAN_PARAM_Integer,
4163 struct hdd_config, sap_force_11n_for_11ac,
4164 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4165 CFG_SAP_FORCE_11N_FOR_11AC_DEFAULT,
4166 CFG_SAP_FORCE_11N_FOR_11AC_MIN,
4167 CFG_SAP_FORCE_11N_FOR_11AC_MAX),
4168
Arun Khandavallifae92942016-08-01 13:31:08 +05304169 REG_VARIABLE(CFG_INTERFACE_CHANGE_WAIT_NAME, WLAN_PARAM_Integer,
4170 struct hdd_config, iface_change_wait_time,
4171 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
4172 CFG_INTERFACE_CHANGE_WAIT_DEFAULT,
4173 CFG_INTERFACE_CHANGE_WAIT_MIN,
4174 CFG_INTERFACE_CHANGE_WAIT_MAX),
Ravi Joshibb8d4512016-08-22 10:14:52 -07004175
4176 REG_VARIABLE(CFG_FILTER_MULTICAST_REPLAY_NAME,
4177 WLAN_PARAM_Integer,
4178 struct hdd_config, multicast_replay_filter,
4179 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4180 CFG_FILTER_MULTICAST_REPLAY_DEFAULT,
4181 CFG_FILTER_MULTICAST_REPLAY_MIN,
4182 CFG_FILTER_MULTICAST_REPLAY_MAX),
Manjeet Singhe7ecb7c2016-09-03 12:34:53 +05304183
4184 REG_VARIABLE(CFG_SIFS_BURST_DURATION_NAME, WLAN_PARAM_Integer,
4185 struct hdd_config, sifs_burst_duration,
4186 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4187 CFG_SIFS_BURST_DURATION_DEFAULT,
4188 CFG_SIFS_BURST_DURATION_MIN,
4189 CFG_SIFS_BURST_DURATION_MAX),
Selvaraj, Sridharebda0f22016-08-29 16:05:23 +05304190 REG_VARIABLE(CFG_OPTIMIZE_CA_EVENT_NAME, WLAN_PARAM_Integer,
4191 struct hdd_config, goptimize_chan_avoid_event,
4192 VAR_FLAGS_OPTIONAL |
4193 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4194 CFG_OPTIMIZE_CA_EVENT_DEFAULT,
4195 CFG_OPTIMIZE_CA_EVENT_DISABLE,
4196 CFG_OPTIMIZE_CA_EVENT_ENABLE),
Padma, Santhosh Kumara7119672016-08-16 16:05:14 +05304197
4198 REG_VARIABLE(CFG_TX_AGGREGATION_SIZE, WLAN_PARAM_Integer,
4199 struct hdd_config, tx_aggregation_size,
4200 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4201 CFG_TX_AGGREGATION_SIZE_DEFAULT,
4202 CFG_TX_AGGREGATION_SIZE_MIN,
4203 CFG_TX_AGGREGATION_SIZE_MAX),
4204
4205 REG_VARIABLE(CFG_RX_AGGREGATION_SIZE, WLAN_PARAM_Integer,
4206 struct hdd_config, rx_aggregation_size,
4207 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4208 CFG_RX_AGGREGATION_SIZE_DEFAULT,
4209 CFG_RX_AGGREGATION_SIZE_MIN,
4210 CFG_RX_AGGREGATION_SIZE_MAX),
Agrawal, Ashish4e5fa1c2016-09-21 19:03:43 +05304211 REG_VARIABLE(CFG_SAP_MAX_INACTIVITY_OVERRIDE_NAME, WLAN_PARAM_Integer,
4212 struct hdd_config, sap_max_inactivity_override,
4213 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4214 CFG_SAP_MAX_INACTIVITY_OVERRIDE_DEFAULT,
4215 CFG_SAP_MAX_INACTIVITY_OVERRIDE_MIN,
Sandeep Puligillaafa52892016-10-26 19:03:16 -07004216 CFG_SAP_MAX_INACTIVITY_OVERRIDE_MAX),
4217 REG_VARIABLE(CFG_CRASH_FW_TIMEOUT_NAME, WLAN_PARAM_Integer,
4218 struct hdd_config, fw_timeout_crash,
4219 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4220 CFG_CRASH_FW_TIMEOUT_DEFAULT,
4221 CFG_CRASH_FW_TIMEOUT_DISABLE,
4222 CFG_CRASH_FW_TIMEOUT_ENABLE),
Dustin Browncd756942016-11-23 12:25:33 -08004223 REG_VARIABLE(CFG_RX_WAKELOCK_TIMEOUT_NAME, WLAN_PARAM_Integer,
4224 struct hdd_config, rx_wakelock_timeout,
4225 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4226 CFG_RX_WAKELOCK_TIMEOUT_DEFAULT,
4227 CFG_RX_WAKELOCK_TIMEOUT_MIN,
Anurag Chouhan7c01cc42016-12-16 21:33:43 +05304228 CFG_RX_WAKELOCK_TIMEOUT_MAX),
4229 REG_VARIABLE(CFG_MAX_SCHED_SCAN_PLAN_INT_NAME, WLAN_PARAM_Integer,
4230 struct hdd_config, max_sched_scan_plan_interval,
4231 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4232 CFG_MAX_SCHED_SCAN_PLAN_INT_DEFAULT,
4233 CFG_MAX_SCHED_SCAN_PLAN_INT_MIN,
4234 CFG_MAX_SCHED_SCAN_PLAN_INT_MAX),
4235 REG_VARIABLE(CFG_MAX_SCHED_SCAN_PLAN_ITRNS_NAME, WLAN_PARAM_Integer,
4236 struct hdd_config, max_sched_scan_plan_iterations,
4237 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4238 CFG_MAX_SCHED_SCAN_PLAN_ITRNS_DEFAULT,
4239 CFG_MAX_SCHED_SCAN_PLAN_ITRNS_MIN,
4240 CFG_MAX_SCHED_SCAN_PLAN_ITRNS_MAX),
Kapil Gupta5cda2252016-12-29 18:44:26 +05304241
Jeff Johnson441e1f72017-02-07 08:50:49 -08004242 REG_VARIABLE(CFG_STANDARD_WEXT_CONTROL_NAME, WLAN_PARAM_Integer,
4243 struct hdd_config, standard_wext_control,
4244 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4245 CFG_STANDARD_WEXT_CONTROL_DEFAULT,
4246 CFG_STANDARD_WEXT_CONTROL_MIN,
4247 CFG_STANDARD_WEXT_CONTROL_MAX),
4248 REG_VARIABLE(CFG_PRIVATE_WEXT_CONTROL_NAME, WLAN_PARAM_Integer,
4249 struct hdd_config, private_wext_control,
4250 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4251 CFG_PRIVATE_WEXT_CONTROL_DEFAULT,
4252 CFG_PRIVATE_WEXT_CONTROL_MIN,
4253 CFG_PRIVATE_WEXT_CONTROL_MAX),
Kapil Gupta5cda2252016-12-29 18:44:26 +05304254
Arun Khandavallicc544b32017-01-30 19:52:16 +05304255 REG_VARIABLE(CFG_SAP_INTERNAL_RESTART_NAME, WLAN_PARAM_Integer,
4256 struct hdd_config, sap_internal_restart,
4257 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4258 CFG_SAP_INTERNAL_RESTART_DEFAULT,
4259 CFG_SAP_INTERNAL_RESTART_MIN,
4260 CFG_SAP_INTERNAL_RESTART_MAX),
Srinivas Girigowda70e169a2017-03-07 23:55:57 -08004261
Hanumanth Reddy Pothula9c161dd2017-03-23 19:03:08 +05304262 REG_VARIABLE(CFG_SAP_RESTART_ON_CH_AVOID_NAME, WLAN_PARAM_Integer,
4263 struct hdd_config, sap_restart_on_ch_avoid,
4264 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4265 CFG_SAP_RESTART_ON_CH_AVOID_DEFAULT,
4266 CFG_SAP_RESTART_ON_CH_AVOID_MIN,
4267 CFG_SAP_RESTART_ON_CH_AVOID_MAX),
4268
Kapil Gupta5cda2252016-12-29 18:44:26 +05304269 REG_VARIABLE(CFG_PER_ROAM_ENABLE_NAME, WLAN_PARAM_Integer,
4270 struct hdd_config, is_per_roam_enabled,
4271 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4272 CFG_PER_ROAM_ENABLE_DEFAULT,
4273 CFG_PER_ROAM_ENABLE_MIN,
4274 CFG_PER_ROAM_ENABLE_MAX),
4275
4276 REG_VARIABLE(CFG_PER_ROAM_CONFIG_HIGH_RATE_TH_NAME, WLAN_PARAM_Integer,
4277 struct hdd_config, per_roam_high_rate_threshold,
4278 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4279 CFG_PER_ROAM_CONFIG_HIGH_RATE_TH_DEFAULT,
4280 CFG_PER_ROAM_CONFIG_HIGH_RATE_TH_MIN,
4281 CFG_PER_ROAM_CONFIG_HIGH_RATE_TH_MAX),
4282
4283 REG_VARIABLE(CFG_PER_ROAM_CONFIG_LOW_RATE_TH_NAME, WLAN_PARAM_Integer,
4284 struct hdd_config, per_roam_low_rate_threshold,
4285 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4286 CFG_PER_ROAM_CONFIG_LOW_RATE_TH_DEFAULT,
4287 CFG_PER_ROAM_CONFIG_LOW_RATE_TH_MIN,
4288 CFG_PER_ROAM_CONFIG_LOW_RATE_TH_MAX),
4289
4290 REG_VARIABLE(CFG_PER_ROAM_CONFIG_RATE_TH_PERCENT_NAME,
4291 WLAN_PARAM_Integer, struct hdd_config, per_roam_th_percent,
4292 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4293 CFG_PER_ROAM_CONFIG_RATE_TH_PERCENT_DEFAULT,
4294 CFG_PER_ROAM_CONFIG_RATE_TH_PERCENT_MIN,
4295 CFG_PER_ROAM_CONFIG_RATE_TH_PERCENT_MAX),
4296
4297 REG_VARIABLE(CFG_PER_ROAM_REST_TIME_NAME, WLAN_PARAM_Integer,
4298 struct hdd_config, per_roam_rest_time,
4299 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4300 CFG_PER_ROAM_REST_TIME_DEFAULT,
4301 CFG_PER_ROAM_REST_TIME_MIN,
4302 CFG_PER_ROAM_REST_TIME_MAX),
Kapil Gupta957827b2017-02-13 15:47:04 +05304303
4304 REG_VARIABLE(CFG_PER_ROAM_MONITOR_TIME, WLAN_PARAM_Integer,
4305 struct hdd_config, per_roam_mon_time,
4306 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4307 CFG_PER_ROAM_MONTIOR_TIME_DEFAULT,
4308 CFG_PER_ROAM_MONITOR_TIME_MIN,
4309 CFG_PER_ROAM_MONITOR_TIME_MAX),
4310
Selvaraj, Sridhar0641fab2017-05-17 16:02:00 +05304311 REG_VARIABLE(CFG_PER_ROAM_MIN_CANDIDATE_RSSI, WLAN_PARAM_Integer,
4312 struct hdd_config, min_candidate_rssi,
4313 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4314 CFG_PER_ROAM_MIN_CANDIDATE_RSSI_DEFAULT,
4315 CFG_PER_ROAM_MIN_CANDIDATE_RSSI_MIN,
4316 CFG_PER_ROAM_MIN_CANDIDATE_RSSI_MAX),
4317
Hanumanth Reddy Pothulae87621b2017-04-12 20:53:35 +05304318 REG_VARIABLE(CFG_ACTIVE_UC_BPF_MODE_NAME, WLAN_PARAM_Integer,
4319 struct hdd_config, active_uc_bpf_mode,
Dustin Brown13995f02017-01-12 15:38:42 -08004320 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
Hanumanth Reddy Pothulae87621b2017-04-12 20:53:35 +05304321 CFG_ACTIVE_UC_BPF_MODE_DEFAULT,
4322 CFG_ACTIVE_UC_BPF_MODE_MIN,
4323 CFG_ACTIVE_UC_BPF_MODE_MAX),
4324
4325 REG_VARIABLE(CFG_ACTIVE_MC_BC_BPF_MODE_NAME, WLAN_PARAM_Integer,
4326 struct hdd_config, active_mc_bc_bpf_mode,
4327 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4328 CFG_ACTIVE_MC_BC_BPF_MODE_DEFAULT,
4329 CFG_ACTIVE_MC_BC_BPF_MODE_MIN,
4330 CFG_ACTIVE_MC_BC_BPF_MODE_MAX),
4331
Selvaraj, Sridhar4f684bb2017-01-19 15:59:23 +05304332 REG_VARIABLE(CFG_ENABLE_BCAST_PROBE_RESP_NAME, WLAN_PARAM_Integer,
4333 struct hdd_config, enable_bcast_probe_rsp,
4334 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4335 CFG_ENABLE_BCAST_PROBE_RESP_DEFAULT,
4336 CFG_ENABLE_BCAST_PROBE_RESP_MIN,
4337 CFG_ENABLE_BCAST_PROBE_RESP_MAX),
Naveen Rawatb2fc4132017-05-10 20:42:05 -07004338
Krishna Kumaar Natarajan90bb6f12017-03-03 21:05:52 -08004339#ifdef WLAN_FEATURE_11AX
4340 REG_VARIABLE(CFG_ENABLE_UL_MIMO_NAME, WLAN_PARAM_Integer,
4341 struct hdd_config, enable_ul_mimo,
4342 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4343 CFG_ENABLE_UL_MIMO_DEFAULT,
4344 CFG_ENABLE_UL_MIMO_MIN,
4345 CFG_ENABLE_UL_MIMO_MAX),
4346
4347 REG_VARIABLE(CFG_ENABLE_UL_OFDMA_NAME, WLAN_PARAM_Integer,
4348 struct hdd_config, enable_ul_ofdma,
4349 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4350 CFG_ENABLE_UL_OFDMA_DEFAULT,
4351 CFG_ENABLE_UL_OFDMA_MIN,
4352 CFG_ENABLE_UL_OFDMA_MAX),
Manikandan Mohan39accff2017-05-02 16:09:00 -07004353
4354 REG_VARIABLE(CFG_HE_STA_OBSSPD_NAME, WLAN_PARAM_HexInteger,
4355 struct hdd_config, he_sta_obsspd,
4356 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4357 CFG_HE_STA_OBSSPD_DEFAULT,
4358 CFG_HE_STA_OBSSPD_MIN,
4359 CFG_HE_STA_OBSSPD_MAX),
Krishna Kumaar Natarajan90bb6f12017-03-03 21:05:52 -08004360#endif
Dustin Brownab1364a2017-03-27 16:59:08 -07004361
4362 REG_VARIABLE(CFG_L1SS_SLEEP_ALLOWED_NAME, WLAN_PARAM_Integer,
4363 struct hdd_config, l1ss_sleep_allowed,
4364 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4365 CFG_L1SS_SLEEP_ALLOWED_DEFAULT,
4366 CFG_L1SS_SLEEP_ALLOWED_MIN,
4367 CFG_L1SS_SLEEP_ALLOWED_MAX),
4368
Srinivas Girigowda70e169a2017-03-07 23:55:57 -08004369 REG_VARIABLE(CFG_ARP_AC_CATEGORY, WLAN_PARAM_Integer,
4370 struct hdd_config, arp_ac_category,
4371 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4372 CFG_ARP_AC_CATEGORY_DEFAULT,
4373 CFG_ARP_AC_CATEGORY_MIN,
4374 CFG_ARP_AC_CATEGORY_MAX),
Jeff Johnson12a744b2017-04-04 08:19:37 -07004375
4376 REG_VARIABLE(CFG_ENABLE_ANI_NAME, WLAN_PARAM_Integer,
4377 struct hdd_config, ani_enabled,
4378 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4379 CFG_ENABLE_ANI_DEFAULT,
4380 CFG_ENABLE_ANI_MIN,
4381 CFG_ENABLE_ANI_MAX),
Amar Singhal5cccafe2017-02-15 12:42:58 -08004382
Selvaraj, Sridhara521aab2017-03-25 16:42:34 +05304383 REG_VARIABLE(CFG_QCN_IE_SUPPORT_NAME, WLAN_PARAM_Integer,
4384 struct hdd_config, qcn_ie_support,
4385 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4386 CFG_QCN_IE_SUPPORT_DEFAULT,
4387 CFG_QCN_IE_SUPPORT_MIN,
4388 CFG_QCN_IE_SUPPORT_MAX),
Amar Singhal5cccafe2017-02-15 12:42:58 -08004389
Dustin Brown7f939932017-05-18 15:02:17 -07004390 REG_VARIABLE(CFG_TIMER_MULTIPLIER_NAME, WLAN_PARAM_Integer,
4391 struct hdd_config, timer_multiplier,
4392 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4393 CFG_TIMER_MULTIPLIER_DEFAULT,
4394 CFG_TIMER_MULTIPLIER_MIN,
4395 CFG_TIMER_MULTIPLIER_MAX),
4396
Amar Singhal5cccafe2017-02-15 12:42:58 -08004397 REG_VARIABLE(CFG_ENABLE_REG_OFFLOAD_NAME, WLAN_PARAM_Integer,
4398 struct hdd_config, reg_offload_enabled,
4399 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4400 CFG_ENABLE_REG_OFFLOAD_DEFAULT,
4401 CFG_ENABLE_REG_OFFLOAD_MIN,
4402 CFG_ENABLE_REG_OFFLOAD_MAX),
Naveen Rawat2b6e3c92017-03-20 13:59:07 -07004403
Selvaraj, Sridhar97ce6582017-01-20 17:06:34 +05304404 REG_VARIABLE(CFG_FILS_MAX_CHAN_GUARD_TIME_NAME, WLAN_PARAM_Integer,
4405 struct hdd_config, fils_max_chan_guard_time,
4406 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4407 CFG_FILS_MAX_CHAN_GUARD_TIME_DEFAULT,
4408 CFG_FILS_MAX_CHAN_GUARD_TIME_MIN,
4409 CFG_FILS_MAX_CHAN_GUARD_TIME_MAX),
Naveen Rawat2b6e3c92017-03-20 13:59:07 -07004410
Dustin Brown20b6fcf2017-05-17 15:35:17 -07004411 REG_VARIABLE(CFG_SCAN_BACKOFF_MULTIPLIER_NAME, WLAN_PARAM_Integer,
4412 struct hdd_config, scan_backoff_multiplier,
4413 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4414 CFG_SCAN_BACKOFF_MULTIPLIER_DEFAULT,
4415 CFG_SCAN_BACKOFF_MULTIPLIER_MIN,
4416 CFG_SCAN_BACKOFF_MULTIPLIER_MAX),
4417
Jayachandran Sreekumaran68c952c2017-04-24 12:42:03 +05304418 REG_VARIABLE(CFG_EXTERNAL_ACS_POLICY, WLAN_PARAM_Integer,
4419 struct hdd_config, external_acs_policy,
4420 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4421 CFG_EXTERNAL_ACS_POLICY_DEFAULT,
4422 CFG_EXTERNAL_ACS_POLICY_MIN,
4423 CFG_EXTERNAL_ACS_POLICY_MAX),
4424
4425 REG_VARIABLE(CFG_EXTERNAL_ACS_FREQ_BAND, WLAN_PARAM_Integer,
4426 struct hdd_config, external_acs_freq_band,
4427 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4428 CFG_EXTERNAL_ACS_FREQ_BAND_DEFAULT,
4429 CFG_EXTERNAL_ACS_FREQ_BAND_MIN,
4430 CFG_EXTERNAL_ACS_FREQ_BAND_MAX),
Naveen Rawat2b6e3c92017-03-20 13:59:07 -07004431
4432 REG_VARIABLE(CFG_DROPPED_PKT_DISCONNECT_TH_NAME, WLAN_PARAM_Integer,
4433 struct hdd_config, pkt_err_disconn_th,
4434 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4435 CFG_DROPPED_PKT_DISCONNECT_TH_DEFAULT,
4436 CFG_DROPPED_PKT_DISCONNECT_TH_MIN,
4437 CFG_DROPPED_PKT_DISCONNECT_TH_MAX),
Naveen Rawatb2fc4132017-05-10 20:42:05 -07004438
4439 REG_VARIABLE(CFG_FORCE_1X1_NAME, WLAN_PARAM_Integer,
4440 struct hdd_config, is_force_1x1,
4441 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4442 CFG_FORCE_1X1_DEFAULT,
4443 CFG_FORCE_1X1_MIN,
4444 CFG_FORCE_1X1_MAX),
lifeng959a04c2017-05-10 14:21:28 +08004445
4446 REG_VARIABLE(CFG_SET_RTS_FOR_SIFS_BURSTING, WLAN_PARAM_Integer,
4447 struct hdd_config, enable_rts_sifsbursting,
4448 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4449 CFG_SET_RTS_FOR_SIFS_BURSTING_DEFAULT,
4450 CFG_SET_RTS_FOR_SIFS_BURSTING_MIN,
4451 CFG_SET_RTS_FOR_SIFS_BURSTING_MAX),
4452
4453 REG_VARIABLE(CFG_MAX_MPDUS_IN_AMPDU, WLAN_PARAM_Integer,
4454 struct hdd_config, max_mpdus_inampdu,
4455 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4456 CFG_MAX_MPDUS_IN_AMPDU_DEFAULT,
4457 CFG_MAX_MPDUS_IN_AMPDU_MIN,
4458 CFG_MAX_MPDUS_IN_AMPDU_MAX),
lifeng13a89d72017-05-10 14:49:29 +08004459
4460 REG_VARIABLE(CFG_SAP_MAX_MCS_FOR_TX_DATA, WLAN_PARAM_Integer,
4461 struct hdd_config, sap_max_mcs_txdata,
4462 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4463 CFG_SAP_MAX_MCS_FOR_TX_DATA_DEFAULT,
4464 CFG_SAP_MAX_MCS_FOR_TX_DATA_MIN,
4465 CFG_SAP_MAX_MCS_FOR_TX_DATA_MAX),
Manjunathappa Prakashdab74fa2017-06-19 12:11:03 -07004466
4467 REG_VARIABLE(CFG_TX_ORPHAN_ENABLE_NAME, WLAN_PARAM_Integer,
4468 struct hdd_config, tx_orphan_enable,
4469 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4470 CFG_TX_ORPHAN_ENABLE_DEFAULT,
4471 CFG_TX_ORPHAN_ENABLE_MIN,
4472 CFG_TX_ORPHAN_ENABLE_MAX),
Ravi Kumar Bokka05c14e52017-03-27 14:48:23 +05304473
4474 REG_VARIABLE(CFG_AUTO_DETECT_POWER_FAIL_MODE_NAME, WLAN_PARAM_Integer,
4475 struct hdd_config, auto_pwr_save_fail_mode,
4476 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4477 CFG_AUTO_DETECT_POWER_FAIL_MODE_DEFAULT,
4478 CFG_AUTO_DETECT_POWER_FAIL_MODE_MIN,
4479 CFG_AUTO_DETECT_POWER_FAIL_MODE_MAX),
4480
Naveen Rawat247a8682017-06-05 15:00:31 -07004481 REG_VARIABLE(CFG_11B_NUM_TX_CHAIN_NAME, WLAN_PARAM_Integer,
4482 struct hdd_config, num_11b_tx_chains,
4483 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4484 CFG_11B_NUM_TX_CHAIN_DEFAULT,
4485 CFG_11B_NUM_TX_CHAIN_MIN,
4486 CFG_11B_NUM_TX_CHAIN_MAX),
4487
4488 REG_VARIABLE(CFG_11AG_NUM_TX_CHAIN_NAME, WLAN_PARAM_Integer,
4489 struct hdd_config, num_11ag_tx_chains,
4490 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4491 CFG_11AG_NUM_TX_CHAIN_DEFAULT,
4492 CFG_11AG_NUM_TX_CHAIN_MIN,
4493 CFG_11AG_NUM_TX_CHAIN_MAX),
Ashish Kumar Dhanotiya9335d812017-06-30 16:57:20 +05304494
4495 REG_VARIABLE(CFG_ITO_REPEAT_COUNT_NAME, WLAN_PARAM_Integer,
4496 struct hdd_config, ito_repeat_count,
4497 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4498 CFG_ITO_REPEAT_COUNT_DEFAULT,
4499 CFG_ITO_REPEAT_COUNT_MIN,
4500 CFG_ITO_REPEAT_COUNT_MAX),
4501
Selvaraj, Sridhar57ce4df2017-05-29 18:30:49 +05304502 REG_VARIABLE(CFG_ROAM_DISALLOW_DURATION_NAME, WLAN_PARAM_Integer,
4503 struct hdd_config, disallow_duration,
4504 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4505 CFG_ROAM_DISALLOW_DURATION_DEFAULT,
4506 CFG_ROAM_DISALLOW_DURATION_MIN,
4507 CFG_ROAM_DISALLOW_DURATION_MAX),
4508
4509 REG_VARIABLE(CFG_ROAM_RSSI_CHANNEL_PENALIZATION_NAME,
4510 WLAN_PARAM_Integer, struct hdd_config,
4511 rssi_channel_penalization,
4512 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4513 CFG_ROAM_RSSI_CHANNEL_PENALIZATION_DEFAULT,
4514 CFG_ROAM_RSSI_CHANNEL_PENALIZATION_MIN,
4515 CFG_ROAM_RSSI_CHANNEL_PENALIZATION_MAX),
4516
4517 REG_VARIABLE(CFG_ROAM_NUM_DISALLOWED_APS_NAME, WLAN_PARAM_Integer,
4518 struct hdd_config, num_disallowed_aps,
4519 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4520 CFG_ROAM_NUM_DISALLOWED_APS_DEFAULT,
4521 CFG_ROAM_NUM_DISALLOWED_APS_MIN,
4522 CFG_ROAM_NUM_DISALLOWED_APS_MAX),
Arun Khandavallifae92942016-08-01 13:31:08 +05304523};
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004524
Amar Singhal5cccafe2017-02-15 12:42:58 -08004525
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004526/**
4527 * get_next_line() - find and locate the new line pointer
4528 * @str: pointer to string
4529 *
4530 * This function returns a pointer to the character after the occurence
4531 * of a new line character. It also modifies the original string by replacing
4532 * the '\n' character with the null character.
4533 *
4534 * Return: the pointer to the character at new line,
4535 * or NULL if no new line character was found
4536 */
4537static char *get_next_line(char *str)
4538{
4539 char c;
4540
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07004541 if (str == NULL || *str == '\0')
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004542 return NULL;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004543
4544 c = *str;
4545 while (c != '\n' && c != '\0' && c != 0xd) {
4546 str = str + 1;
4547 c = *str;
4548 }
4549
Jeff Johnson68755312017-02-10 11:46:55 -08004550 if (c == '\0')
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004551 return NULL;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004552
Jeff Johnson68755312017-02-10 11:46:55 -08004553 *str = '\0';
Jeff Johnson68755312017-02-10 11:46:55 -08004554 return str + 1;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004555}
4556
4557/** look for space. Ascii values to look are
4558 * 0x09 == horizontal tab
4559 * 0x0a == Newline ("\n")
4560 * 0x0b == vertical tab
4561 * 0x0c == Newpage or feed form.
4562 * 0x0d == carriage return (CR or "\r")
4563 * Null ('\0') should not considered as space.
4564 */
4565#define i_isspace(ch) (((ch) >= 0x09 && (ch) <= 0x0d) || (ch) == ' ')
4566
4567/**
4568 * i_trim() - trims any leading and trailing white spaces
4569 * @str: pointer to string
4570 *
4571 * Return: the pointer of the string
4572 */
4573static char *i_trim(char *str)
4574{
4575 char *ptr;
4576
4577 if (*str == '\0')
4578 return str;
4579
4580 /* Find the first non white-space */
4581 ptr = str;
4582 while (i_isspace(*ptr))
4583 ptr++;
4584
4585 if (*ptr == '\0')
4586 return str;
4587
4588 /* This is the new start of the string */
4589 str = ptr;
4590
4591 /* Find the last non white-space */
4592 ptr += strlen(ptr) - 1;
4593
4594 while (ptr != str && i_isspace(*ptr))
4595 ptr--;
4596
4597 /* Null terminate the following character */
4598 ptr[1] = '\0';
4599
4600 return str;
4601}
4602
4603/* Maximum length of the confgiuration name and value */
4604#define CFG_VALUE_MAX_LEN 256
4605#define CFG_ENTRY_MAX_LEN (32+CFG_VALUE_MAX_LEN)
4606
4607/**
4608 * hdd_cfg_get_config() - get the configuration content
4609 * @reg_table: pointer to configuration table
4610 * @cRegTableEntries: number of the configuration entries
4611 * @ini_struct: pointer to the hdd config knob
4612 * @pHddCtx: pointer to hdd context
4613 * @pBuf: buffer to store the configuration
4614 * @buflen: size of the buffer
4615 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05304616 * Return: QDF_STATUS_SUCCESS if the configuration and buffer size can carry
4617 * the content, otherwise QDF_STATUS_E_RESOURCES
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004618 */
Srinivas Girigowda2fb677c2017-03-25 15:35:34 -07004619static QDF_STATUS hdd_cfg_get_config(struct reg_table_entry *reg_table,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004620 unsigned long cRegTableEntries,
4621 uint8_t *ini_struct,
4622 hdd_context_t *pHddCtx, char *pBuf,
4623 int buflen)
4624{
4625 unsigned int idx;
Srinivas Girigowda2fb677c2017-03-25 15:35:34 -07004626 struct reg_table_entry *pRegEntry = reg_table;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004627 uint32_t value;
4628 char valueStr[CFG_VALUE_MAX_LEN];
4629 char configStr[CFG_ENTRY_MAX_LEN];
4630 char *fmt;
4631 void *pField;
Anurag Chouhan6d760662016-02-20 16:05:43 +05304632 struct qdf_mac_addr *pMacAddr;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004633 char *pCur = pBuf;
4634 int curlen;
4635
4636 /* start with an empty string */
4637 *pCur = '\0';
4638
4639 for (idx = 0; idx < cRegTableEntries; idx++, pRegEntry++) {
4640 pField = ini_struct + pRegEntry->VarOffset;
4641
4642 if ((WLAN_PARAM_Integer == pRegEntry->RegType) ||
4643 (WLAN_PARAM_SignedInteger == pRegEntry->RegType) ||
4644 (WLAN_PARAM_HexInteger == pRegEntry->RegType)) {
4645 value = 0;
Vidyullatha Kanchanapally53241c42017-04-13 19:16:24 +05304646
4647 if ((pRegEntry->VarSize > sizeof(value)) ||
4648 (pRegEntry->VarSize == 0)) {
4649 pr_warn("Invalid length of %s: %d",
4650 pRegEntry->RegName, pRegEntry->VarSize);
4651 continue;
4652 }
4653
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004654 memcpy(&value, pField, pRegEntry->VarSize);
4655 if (WLAN_PARAM_HexInteger == pRegEntry->RegType) {
4656 fmt = "%x";
4657 } else if (WLAN_PARAM_SignedInteger ==
4658 pRegEntry->RegType) {
4659 fmt = "%d";
Vidyullatha Kanchanapally53241c42017-04-13 19:16:24 +05304660 value = sign_extend32(
4661 value,
4662 pRegEntry->VarSize * 8 - 1);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004663 } else {
4664 fmt = "%u";
4665 }
4666 snprintf(valueStr, CFG_VALUE_MAX_LEN, fmt, value);
4667 } else if (WLAN_PARAM_String == pRegEntry->RegType) {
4668 snprintf(valueStr, CFG_VALUE_MAX_LEN, "%s",
4669 (char *)pField);
4670 } else if (WLAN_PARAM_MacAddr == pRegEntry->RegType) {
Anurag Chouhan6d760662016-02-20 16:05:43 +05304671 pMacAddr = (struct qdf_mac_addr *) pField;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004672 snprintf(valueStr, CFG_VALUE_MAX_LEN,
4673 "%02x:%02x:%02x:%02x:%02x:%02x",
4674 pMacAddr->bytes[0],
4675 pMacAddr->bytes[1],
4676 pMacAddr->bytes[2],
4677 pMacAddr->bytes[3],
4678 pMacAddr->bytes[4], pMacAddr->bytes[5]);
4679 } else {
4680 snprintf(valueStr, CFG_VALUE_MAX_LEN, "(unhandled)");
4681 }
4682 curlen = scnprintf(configStr, CFG_ENTRY_MAX_LEN,
4683 "%s=[%s]%s\n",
4684 pRegEntry->RegName,
4685 valueStr,
4686 test_bit(idx,
4687 (void *)&pHddCtx->config->
4688 bExplicitCfg) ? "*" : "");
4689
4690 /* Ideally we want to return the config to the application,
4691 * however the config is too big so we just printk() for now
4692 */
4693#ifdef RETURN_IN_BUFFER
Hanumanth Reddy Pothulaadf163e2016-09-07 15:11:58 +05304694 if (curlen < buflen) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004695 /* copy string + '\0' */
4696 memcpy(pCur, configStr, curlen + 1);
4697
4698 /* account for addition; */
4699 pCur += curlen;
4700 buflen -= curlen;
4701 } else {
4702 /* buffer space exhausted, return what we have */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05304703 return QDF_STATUS_E_RESOURCES;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004704 }
4705#else
4706 printk(KERN_INFO "%s", configStr);
4707#endif /* RETURN_IN_BUFFER */
4708
4709 }
4710
4711#ifndef RETURN_IN_BUFFER
4712 /* notify application that output is in system log */
4713 snprintf(pCur, buflen, "WLAN configuration written to system log");
4714#endif /* RETURN_IN_BUFFER */
4715
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05304716 return QDF_STATUS_SUCCESS;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004717}
4718
4719/** struct tCfgIniEntry - ini configuration entry
4720 *
4721 * @name: name of the entry
4722 * @value: value of the entry
4723 */
4724typedef struct {
4725 char *name;
4726 char *value;
4727} tCfgIniEntry;
4728
4729/**
4730 * find_cfg_item() - find the configuration item
4731 * @iniTable: pointer to configuration table
4732 * @entries: number fo the configuration entries
4733 * @name: the interested configuration to find
4734 * @value: the value to read back
4735 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05304736 * Return: QDF_STATUS_SUCCESS if the interested configuration is found,
4737 * otherwise QDF_STATUS_E_FAILURE
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004738 */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05304739static QDF_STATUS find_cfg_item(tCfgIniEntry *iniTable, unsigned long entries,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004740 char *name, char **value)
4741{
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05304742 QDF_STATUS status = QDF_STATUS_E_FAILURE;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004743 unsigned long i;
4744
4745 for (i = 0; i < entries; i++) {
4746 if (strcmp(iniTable[i].name, name) == 0) {
4747 *value = iniTable[i].value;
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07004748 hdd_debug("Found %s entry for Name=[%s] Value=[%s] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004749 WLAN_INI_FILE, name, *value);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05304750 return QDF_STATUS_SUCCESS;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004751 }
4752 }
4753
4754 return status;
4755}
4756
4757/**
4758 * parse_hex_digit() - conversion to hex value
4759 * @c: the character to convert
4760 *
4761 * Return: the hex value, otherwise 0
4762 */
4763static int parse_hex_digit(char c)
4764{
4765 if (c >= '0' && c <= '9')
4766 return c - '0';
4767 if (c >= 'a' && c <= 'f')
4768 return c - 'a' + 10;
4769 if (c >= 'A' && c <= 'F')
4770 return c - 'A' + 10;
4771
4772 return 0;
4773}
4774
4775/**
4776 * update_mac_from_string() - convert string to 6 bytes mac address
4777 * @pHddCtx: the pointer to hdd context
4778 * @macTable: the macTable to carry the conversion
4779 * @num: number of the interface
4780 *
4781 * 00AA00BB00CC -> 0x00 0xAA 0x00 0xBB 0x00 0xCC
4782 *
4783 * Return: None
4784 */
4785static void update_mac_from_string(hdd_context_t *pHddCtx,
4786 tCfgIniEntry *macTable, int num)
4787{
4788 int i = 0, j = 0, res = 0;
4789 char *candidate = NULL;
Anurag Chouhan6d760662016-02-20 16:05:43 +05304790 struct qdf_mac_addr macaddr[QDF_MAX_CONCURRENCY_PERSONA];
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004791
4792 memset(macaddr, 0, sizeof(macaddr));
4793
4794 for (i = 0; i < num; i++) {
4795 candidate = macTable[i].value;
Anurag Chouhan6d760662016-02-20 16:05:43 +05304796 for (j = 0; j < QDF_MAC_ADDR_SIZE; j++) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004797 res =
4798 hex2bin(&macaddr[i].bytes[j], &candidate[(j << 1)],
4799 1);
4800 if (res < 0)
4801 break;
4802 }
Anurag Chouhanc5548422016-02-24 18:33:27 +05304803 if (res == 0 && !qdf_is_macaddr_zero(&macaddr[i])) {
Anurag Chouhan600c3a02016-03-01 10:33:54 +05304804 qdf_mem_copy((uint8_t *) &pHddCtx->config->
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004805 intfMacAddr[i].bytes[0],
4806 (uint8_t *) &macaddr[i].bytes[0],
Anurag Chouhan6d760662016-02-20 16:05:43 +05304807 QDF_MAC_ADDR_SIZE);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004808 }
4809 }
4810}
4811
4812/**
4813 * hdd_apply_cfg_ini() - apply the ini configuration file
4814 * @pHddCtx: the pointer to hdd context
4815 * @iniTable: pointer to configuration table
4816 * @entries: number fo the configuration entries
4817 * It overwrites the MAC address if config file exist.
4818 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05304819 * Return: QDF_STATUS_SUCCESS if the ini configuration file is correctly parsed,
4820 * otherwise QDF_STATUS_E_INVAL
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004821 */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05304822static QDF_STATUS hdd_apply_cfg_ini(hdd_context_t *pHddCtx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004823 tCfgIniEntry *iniTable,
4824 unsigned long entries)
4825{
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05304826 QDF_STATUS match_status = QDF_STATUS_E_FAILURE;
4827 QDF_STATUS ret_status = QDF_STATUS_SUCCESS;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004828 unsigned int idx;
4829 void *pField;
4830 char *value_str = NULL;
4831 unsigned long len_value_str;
4832 char *candidate;
4833 uint32_t value;
4834 int32_t svalue;
4835 void *pStructBase = pHddCtx->config;
Srinivas Girigowda2fb677c2017-03-25 15:35:34 -07004836 struct reg_table_entry *pRegEntry = g_registry_table;
Anurag Chouhan6d760662016-02-20 16:05:43 +05304837 unsigned long cRegTableEntries = QDF_ARRAY_SIZE(g_registry_table);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004838 uint32_t cbOutString;
4839 int i;
4840 int rv;
4841
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004842 if (MAX_CFG_INI_ITEMS < cRegTableEntries) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08004843 hdd_err("MAX_CFG_INI_ITEMS too small, must be at least %ld",
Srinivas Girigowdaba3091c2015-11-16 17:18:40 -08004844 cRegTableEntries);
4845 WARN_ON(1);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004846 }
4847
4848 for (idx = 0; idx < cRegTableEntries; idx++, pRegEntry++) {
4849 /* Calculate the address of the destination field in the structure. */
4850 pField = ((uint8_t *) pStructBase) + pRegEntry->VarOffset;
4851
4852 match_status =
4853 find_cfg_item(iniTable, entries, pRegEntry->RegName,
4854 &value_str);
4855
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05304856 if ((match_status != QDF_STATUS_SUCCESS)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004857 && (pRegEntry->Flags & VAR_FLAGS_REQUIRED)) {
4858 /* If we could not read the cfg item and it is required, this is an error. */
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08004859 hdd_err("Failed to read required config parameter %s", pRegEntry->RegName);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05304860 ret_status = QDF_STATUS_E_FAILURE;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004861 break;
4862 }
4863
4864 if ((WLAN_PARAM_Integer == pRegEntry->RegType) ||
4865 (WLAN_PARAM_HexInteger == pRegEntry->RegType)) {
4866 /* If successfully read from the registry, use the value read.
4867 * If not, use the default value.
4868 */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05304869 if (match_status == QDF_STATUS_SUCCESS
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004870 && (WLAN_PARAM_Integer == pRegEntry->RegType)) {
4871 rv = kstrtou32(value_str, 10, &value);
4872 if (rv < 0) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07004873 hdd_warn("Reg Parameter %s invalid. Enforcing default", pRegEntry->RegName);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004874 value = pRegEntry->VarDefault;
4875 }
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05304876 } else if (match_status == QDF_STATUS_SUCCESS
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004877 && (WLAN_PARAM_HexInteger ==
4878 pRegEntry->RegType)) {
4879 rv = kstrtou32(value_str, 16, &value);
4880 if (rv < 0) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07004881 hdd_warn("Reg paramter %s invalid. Enforcing default", pRegEntry->RegName);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004882 value = pRegEntry->VarDefault;
4883 }
4884 } else {
4885 value = pRegEntry->VarDefault;
4886 }
4887
Srinivas Girigowdad1b92582017-03-02 11:47:47 -08004888 /* Only if the parameter is set in the ini file, do the range check here */
4889 if (match_status == QDF_STATUS_SUCCESS &&
4890 pRegEntry->Flags & VAR_FLAGS_RANGE_CHECK) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004891 if (value > pRegEntry->VarMax) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07004892 hdd_warn("Reg Parameter %s > allowed Maximum [%u > %lu]. Enforcing Maximum", pRegEntry->RegName,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004893 value, pRegEntry->VarMax);
4894 value = pRegEntry->VarMax;
4895 }
4896
4897 if (value < pRegEntry->VarMin) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07004898 hdd_warn("Reg Parameter %s < allowed Minimum [%u < %lu]. Enforcing Minimum", pRegEntry->RegName,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004899 value, pRegEntry->VarMin);
4900 value = pRegEntry->VarMin;
4901 }
4902 }
Srinivas Girigowdad1b92582017-03-02 11:47:47 -08004903 /* Only if the parameter is set in the ini file, do the range check here */
4904 else if (match_status == QDF_STATUS_SUCCESS &&
4905 pRegEntry->Flags &
4906 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004907 if (value > pRegEntry->VarMax) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07004908 hdd_warn("Reg Parameter %s > allowed Maximum [%u > %lu]. Enforcing Default: %lu", pRegEntry->RegName,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004909 value, pRegEntry->VarMax,
4910 pRegEntry->VarDefault);
4911 value = pRegEntry->VarDefault;
4912 }
4913
4914 if (value < pRegEntry->VarMin) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07004915 hdd_warn("Reg Parameter %s < allowed Minimum [%u < %lu]. Enforcing Default: %lu", pRegEntry->RegName,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004916 value, pRegEntry->VarMin,
4917 pRegEntry->VarDefault);
4918 value = pRegEntry->VarDefault;
4919 }
4920 }
4921 /* Move the variable into the output field. */
4922 memcpy(pField, &value, pRegEntry->VarSize);
4923 } else if (WLAN_PARAM_SignedInteger == pRegEntry->RegType) {
4924 /* If successfully read from the registry, use the value read.
4925 * If not, use the default value.
4926 */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05304927 if (QDF_STATUS_SUCCESS == match_status) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004928 rv = kstrtos32(value_str, 10, &svalue);
4929 if (rv < 0) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08004930 hdd_warn("Reg Parameter %s invalid. Enforcing Default", pRegEntry->RegName);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004931 svalue =
4932 (int32_t) pRegEntry->VarDefault;
4933 }
4934 } else {
4935 svalue = (int32_t) pRegEntry->VarDefault;
4936 }
4937
Srinivas Girigowdad1b92582017-03-02 11:47:47 -08004938 /* Only if the parameter is set in the ini file, do the range check here */
4939 if (match_status == QDF_STATUS_SUCCESS &&
4940 pRegEntry->Flags & VAR_FLAGS_RANGE_CHECK) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004941 if (svalue > (int32_t) pRegEntry->VarMax) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07004942 hdd_warn("Reg Parameter %s > allowed Maximum "
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08004943 "[%d > %d]. Enforcing Maximum", pRegEntry->RegName,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004944 svalue, (int)pRegEntry->VarMax);
4945 svalue = (int32_t) pRegEntry->VarMax;
4946 }
4947
4948 if (svalue < (int32_t) pRegEntry->VarMin) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07004949 hdd_warn("Reg Parameter %s < allowed Minimum "
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08004950 "[%d < %d]. Enforcing Minimum", pRegEntry->RegName,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004951 svalue, (int)pRegEntry->VarMin);
4952 svalue = (int32_t) pRegEntry->VarMin;
4953 }
4954 }
Srinivas Girigowdad1b92582017-03-02 11:47:47 -08004955 /* Only if the parameter is set in the ini file, do the range check here */
4956 else if (match_status == QDF_STATUS_SUCCESS &&
4957 pRegEntry->Flags &
4958 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004959 if (svalue > (int32_t) pRegEntry->VarMax) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07004960 hdd_warn("Reg Parameter %s > allowed Maximum "
4961 "[%d > %d]. Enforcing Default: %d", pRegEntry->RegName,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004962 svalue, (int)pRegEntry->VarMax,
4963 (int)pRegEntry->VarDefault);
4964 svalue =
4965 (int32_t) pRegEntry->VarDefault;
4966 }
4967
4968 if (svalue < (int32_t) pRegEntry->VarMin) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07004969 hdd_warn("Reg Parameter %s < allowed Minimum "
4970 "[%d < %d]. Enforcing Default: %d", pRegEntry->RegName,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004971 svalue, (int)pRegEntry->VarMin,
4972 (int)pRegEntry->VarDefault);
4973 svalue = pRegEntry->VarDefault;
4974 }
4975 }
4976 /* Move the variable into the output field. */
4977 memcpy(pField, &svalue, pRegEntry->VarSize);
4978 }
4979 /* Handle string parameters */
4980 else if (WLAN_PARAM_String == pRegEntry->RegType) {
4981#ifdef WLAN_CFG_DEBUG
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07004982 hdd_debug("RegName = %s, VarOffset %u VarSize %u VarDefault %s",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004983 pRegEntry->RegName, pRegEntry->VarOffset,
4984 pRegEntry->VarSize,
4985 (char *)pRegEntry->VarDefault);
4986#endif
4987
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05304988 if (match_status == QDF_STATUS_SUCCESS) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004989 len_value_str = strlen(value_str);
4990
4991 if (len_value_str > (pRegEntry->VarSize - 1)) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08004992 hdd_err("Invalid Value=[%s] specified for Name=[%s] in %s", value_str,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004993 pRegEntry->RegName,
4994 WLAN_INI_FILE);
4995 cbOutString =
Srinivas Girigowda2fb677c2017-03-25 15:35:34 -07004996 QDF_MIN(strlen
4997 ((char *)pRegEntry->
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004998 VarDefault),
4999 pRegEntry->VarSize - 1);
5000 memcpy(pField,
5001 (void *)(pRegEntry->VarDefault),
5002 cbOutString);
5003 ((uint8_t *) pField)[cbOutString] =
5004 '\0';
5005 } else {
5006 memcpy(pField, (void *)(value_str),
5007 len_value_str);
5008 ((uint8_t *) pField)[len_value_str] =
5009 '\0';
5010 }
5011 } else {
5012 /* Failed to read the string parameter from the registry. Use the default. */
5013 cbOutString =
Srinivas Girigowda2fb677c2017-03-25 15:35:34 -07005014 QDF_MIN(strlen((char *)pRegEntry->VarDefault),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005015 pRegEntry->VarSize - 1);
5016 memcpy(pField, (void *)(pRegEntry->VarDefault),
5017 cbOutString);
5018 ((uint8_t *) pField)[cbOutString] = '\0';
5019 }
5020 } else if (WLAN_PARAM_MacAddr == pRegEntry->RegType) {
Anurag Chouhan6d760662016-02-20 16:05:43 +05305021 if (pRegEntry->VarSize != QDF_MAC_ADDR_SIZE) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005022 hdd_warn("Invalid VarSize %u for Name=[%s]", pRegEntry->VarSize,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005023 pRegEntry->RegName);
5024 continue;
5025 }
5026 candidate = (char *)pRegEntry->VarDefault;
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305027 if (match_status == QDF_STATUS_SUCCESS) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005028 len_value_str = strlen(value_str);
Anurag Chouhan6d760662016-02-20 16:05:43 +05305029 if (len_value_str != (QDF_MAC_ADDR_SIZE * 2)) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005030 hdd_err("Invalid MAC addr [%s] specified for Name=[%s] in %s", value_str,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005031 pRegEntry->RegName,
5032 WLAN_INI_FILE);
5033 } else
5034 candidate = value_str;
5035 }
5036 /* parse the string and store it in the byte array */
Anurag Chouhan6d760662016-02-20 16:05:43 +05305037 for (i = 0; i < QDF_MAC_ADDR_SIZE; i++) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005038 ((char *)pField)[i] =
5039 (char)(parse_hex_digit(candidate[i * 2]) *
5040 16 +
5041 parse_hex_digit(candidate[i * 2 + 1]));
5042 }
5043 } else {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005044 hdd_warn("Unknown param type for name[%s] in registry table", pRegEntry->RegName);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005045 }
5046
5047 /* did we successfully parse a cfg item for this parameter? */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305048 if ((match_status == QDF_STATUS_SUCCESS) &&
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005049 (idx < MAX_CFG_INI_ITEMS)) {
5050 set_bit(idx, (void *)&pHddCtx->config->bExplicitCfg);
5051 }
5052 }
5053
5054 return ret_status;
5055}
5056
5057/**
5058 * hdd_execute_config_command() - executes an arbitrary configuration command
5059 * @reg_table: the pointer to configuration table
5060 * @tableSize: the size of the configuration table
5061 * @ini_struct: pointer to the hdd config knob
5062 * @pHddCtx: the pointer to hdd context
5063 * @command: the command to run
5064 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305065 * Return: QDF_STATUS_SUCCESS if the command is found and able to execute,
5066 * otherwise the appropriate QDF_STATUS will be returned
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005067 */
Srinivas Girigowda2fb677c2017-03-25 15:35:34 -07005068static QDF_STATUS hdd_execute_config_command(struct reg_table_entry *reg_table,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005069 unsigned long tableSize,
5070 uint8_t *ini_struct,
5071 hdd_context_t *pHddCtx,
5072 char *command)
5073{
Srinivas Girigowda2fb677c2017-03-25 15:35:34 -07005074 struct reg_table_entry *pRegEntry;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005075 char *clone;
5076 char *pCmd;
5077 void *pField;
5078 char *name;
5079 char *value_str;
5080 uint32_t value;
5081 int32_t svalue;
5082 size_t len_value_str;
5083 unsigned int idx;
5084 unsigned int i;
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305085 QDF_STATUS vstatus;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005086 int rv;
5087
5088 /* assume failure until proven otherwise */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305089 vstatus = QDF_STATUS_E_FAILURE;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005090
5091 /* clone the command so that we can manipulate it */
5092 clone = kstrdup(command, GFP_ATOMIC);
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07005093 if (NULL == clone)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005094 return vstatus;
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07005095
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005096 /* 'clone' will point to the beginning of the string so it can be freed
5097 * 'pCmd' will be used to walk/parse the command
5098 */
5099 pCmd = clone;
5100
5101 /* get rid of leading/trailing whitespace */
5102 pCmd = i_trim(pCmd);
5103 if ('\0' == *pCmd) {
5104 /* only whitespace */
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005105 hdd_err("invalid command, only whitespace:[%s]", command);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005106 goto done;
5107 }
5108 /* parse the <name> = <value> */
5109 name = pCmd;
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07005110 while (('=' != *pCmd) && ('\0' != *pCmd))
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005111 pCmd++;
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07005112
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005113 if ('\0' == *pCmd) {
5114 /* did not find '=' */
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005115 hdd_err("invalid command, no '=':[%s]", command);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005116 goto done;
5117 }
5118 /* replace '=' with NUL to terminate the <name> */
5119 *pCmd++ = '\0';
5120 name = i_trim(name);
5121 if ('\0' == *name) {
5122 /* did not find a name */
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005123 hdd_err("invalid command, no <name>:[%s]", command);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005124 goto done;
5125 }
5126
5127 value_str = i_trim(pCmd);
5128 if ('\0' == *value_str) {
5129 /* did not find a value */
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005130 hdd_err("invalid command, no <value>:[%s]", command);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005131 goto done;
5132 }
5133 /* lookup the configuration item */
5134 for (idx = 0; idx < tableSize; idx++) {
5135 if (0 == strcmp(name, reg_table[idx].RegName)) {
5136 /* found a match */
5137 break;
5138 }
5139 }
5140 if (tableSize == idx) {
5141 /* did not match the name */
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005142 hdd_err("invalid command, unknown configuration item:[%s]", command);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005143 goto done;
5144 }
5145
5146 pRegEntry = &reg_table[idx];
5147 if (!(pRegEntry->Flags & VAR_FLAGS_DYNAMIC_CFG)) {
5148 /* does not support dynamic configuration */
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005149 hdd_err("Global_Registry_Table. %s does not support "
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005150 "dynamic configuration", name);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305151 vstatus = QDF_STATUS_E_PERM;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005152 goto done;
5153 }
5154
5155 pField = ini_struct + pRegEntry->VarOffset;
5156
5157 switch (pRegEntry->RegType) {
5158 case WLAN_PARAM_Integer:
5159 rv = kstrtou32(value_str, 10, &value);
5160 if (rv < 0)
5161 goto done;
5162 if (value < pRegEntry->VarMin) {
5163 /* out of range */
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005164 hdd_err("Invalid command, value %u < min value %lu", value, pRegEntry->VarMin);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005165 goto done;
5166 }
5167 if (value > pRegEntry->VarMax) {
5168 /* out of range */
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005169 hdd_err("Invalid command, value %u > max value %lu", value, pRegEntry->VarMax);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005170 goto done;
5171 }
5172 memcpy(pField, &value, pRegEntry->VarSize);
5173 break;
5174
5175 case WLAN_PARAM_HexInteger:
5176 rv = kstrtou32(value_str, 16, &value);
5177 if (rv < 0)
5178 goto done;
5179 if (value < pRegEntry->VarMin) {
5180 /* out of range */
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005181 hdd_err("Invalid command, value %x < min value %lx", value, pRegEntry->VarMin);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005182 goto done;
5183 }
5184 if (value > pRegEntry->VarMax) {
5185 /* out of range */
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005186 hdd_err("Invalid command, value %x > max value %lx", value, pRegEntry->VarMax);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005187 goto done;
5188 }
5189 memcpy(pField, &value, pRegEntry->VarSize);
5190 break;
5191
5192 case WLAN_PARAM_SignedInteger:
5193 rv = kstrtos32(value_str, 10, &svalue);
5194 if (rv < 0)
5195 goto done;
5196 if (svalue < (int32_t) pRegEntry->VarMin) {
5197 /* out of range */
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005198 hdd_err("Invalid command, value %d < min value %d", svalue, (int)pRegEntry->VarMin);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005199 goto done;
5200 }
5201 if (svalue > (int32_t) pRegEntry->VarMax) {
5202 /* out of range */
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005203 hdd_err("Invalid command, value %d > max value %d", svalue, (int)pRegEntry->VarMax);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005204 goto done;
5205 }
5206 memcpy(pField, &svalue, pRegEntry->VarSize);
5207 break;
5208
5209 case WLAN_PARAM_String:
5210 len_value_str = strlen(value_str);
5211 if (len_value_str > (pRegEntry->VarSize - 1)) {
5212 /* too big */
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005213 hdd_err("Invalid command, string [%s] length "
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005214 "%zu exceeds maximum length %u", value_str,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005215 len_value_str, (pRegEntry->VarSize - 1));
5216 goto done;
5217 }
5218 /* copy string plus NUL */
5219 memcpy(pField, value_str, (len_value_str + 1));
5220 break;
5221
5222 case WLAN_PARAM_MacAddr:
5223 len_value_str = strlen(value_str);
Anurag Chouhan6d760662016-02-20 16:05:43 +05305224 if (len_value_str != (QDF_MAC_ADDR_SIZE * 2)) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005225 /* out of range */
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005226 hdd_err("Invalid command, MAC address [%s] length "
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005227 "%zu is not expected length %u", value_str,
Anurag Chouhan6d760662016-02-20 16:05:43 +05305228 len_value_str, (QDF_MAC_ADDR_SIZE * 2));
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005229 goto done;
5230 }
5231 /* parse the string and store it in the byte array */
Anurag Chouhan6d760662016-02-20 16:05:43 +05305232 for (i = 0; i < QDF_MAC_ADDR_SIZE; i++) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005233 ((char *)pField)[i] = (char)
5234 ((parse_hex_digit(value_str[(i * 2)]) * 16) +
5235 parse_hex_digit(value_str[(i * 2) + 1]));
5236 }
5237 break;
5238
5239 default:
5240 goto done;
5241 }
5242
5243 /* if we get here, we had a successful modification */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305244 vstatus = QDF_STATUS_SUCCESS;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005245
5246 /* config table has been modified, is there a notifier? */
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07005247 if (NULL != pRegEntry->pfnDynamicnotify)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005248 (pRegEntry->pfnDynamicnotify)(pHddCtx, pRegEntry->notifyId);
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07005249
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005250 /* note that this item was explicitly configured */
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07005251 if (idx < MAX_CFG_INI_ITEMS)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005252 set_bit(idx, (void *)&pHddCtx->config->bExplicitCfg);
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07005253
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005254done:
5255 kfree(clone);
5256 return vstatus;
5257}
5258
5259/**
5260 * hdd_set_power_save_offload_config() - set power save offload configuration
5261 * @pHddCtx: the pointer to hdd context
5262 *
5263 * Return: none
5264 */
5265static void hdd_set_power_save_offload_config(hdd_context_t *pHddCtx)
5266{
5267 struct hdd_config *pConfig = pHddCtx->config;
5268 uint32_t listenInterval = 0;
5269
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07005270 if (strcmp(pConfig->PowerUsageControl, "Min") == 0)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005271 listenInterval = pConfig->nBmpsMinListenInterval;
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07005272 else if (strcmp(pConfig->PowerUsageControl, "Max") == 0)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005273 listenInterval = pConfig->nBmpsMaxListenInterval;
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07005274 else if (strcmp(pConfig->PowerUsageControl, "Mod") == 0)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005275 listenInterval = pConfig->nBmpsModListenInterval;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005276
5277 /*
5278 * Based on Mode Set the LI
5279 * Otherwise default LI value of 1 will
5280 * be taken
5281 */
5282 if (listenInterval) {
5283 /*
5284 * setcfg for listenInterval.
5285 * Make sure CFG is updated because PE reads this
5286 * from CFG at the time of assoc or reassoc
5287 */
5288 sme_cfg_set_int(pHddCtx->hHal, WNI_CFG_LISTEN_INTERVAL,
5289 listenInterval);
5290 }
5291
5292}
5293
Houston Hoffmanc7c69f02016-03-24 22:45:52 -07005294#ifdef FEATURE_RUNTIME_PM
5295static void hdd_cfg_print_runtime_pm(hdd_context_t *hdd_ctx)
5296{
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005297 hdd_debug("Name = [gRuntimePM] Value = [%u] ",
Houston Hoffmanc7c69f02016-03-24 22:45:52 -07005298 hdd_ctx->config->runtime_pm);
5299
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005300 hdd_debug("Name = [gRuntimePMDelay] Value = [%u] ",
Houston Hoffmanc7c69f02016-03-24 22:45:52 -07005301 hdd_ctx->config->runtime_pm_delay);
5302}
5303#else
5304static void hdd_cfg_print_runtime_pm(hdd_context_t *hdd_ctx)
5305{
5306}
5307#endif
5308
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005309/**
Kapil Gupta5cda2252016-12-29 18:44:26 +05305310 * hdd_per_roam_print_ini_config()- Print PER roam specific INI configuration
5311 * @hdd_ctx: handle to hdd context
5312 *
5313 * Return: None
5314 */
5315static void hdd_per_roam_print_ini_config(hdd_context_t *hdd_ctx)
5316{
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005317 hdd_debug("Name = [%s] Value = [%u]",
Kapil Gupta5cda2252016-12-29 18:44:26 +05305318 CFG_PER_ROAM_ENABLE_NAME,
5319 hdd_ctx->config->is_per_roam_enabled);
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005320 hdd_debug("Name = [%s] Value = [%u]",
Kapil Gupta5cda2252016-12-29 18:44:26 +05305321 CFG_PER_ROAM_CONFIG_HIGH_RATE_TH_NAME,
5322 hdd_ctx->config->per_roam_high_rate_threshold);
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005323 hdd_debug("Name = [%s] Value = [%u]",
Kapil Gupta5cda2252016-12-29 18:44:26 +05305324 CFG_PER_ROAM_CONFIG_LOW_RATE_TH_NAME,
5325 hdd_ctx->config->per_roam_low_rate_threshold);
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005326 hdd_debug("Name = [%s] Value = [%u]",
Kapil Gupta5cda2252016-12-29 18:44:26 +05305327 CFG_PER_ROAM_CONFIG_RATE_TH_PERCENT_NAME,
5328 hdd_ctx->config->per_roam_th_percent);
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005329 hdd_debug("Name = [%s] Value = [%u]",
Kapil Gupta5cda2252016-12-29 18:44:26 +05305330 CFG_PER_ROAM_REST_TIME_NAME,
5331 hdd_ctx->config->per_roam_rest_time);
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005332 hdd_debug("Name = [%s] Value = [%u]",
Kapil Gupta957827b2017-02-13 15:47:04 +05305333 CFG_PER_ROAM_MONITOR_TIME,
5334 hdd_ctx->config->per_roam_mon_time);
Selvaraj, Sridhar0641fab2017-05-17 16:02:00 +05305335 hdd_debug("Name = [%s] Value = [%u]",
5336 CFG_PER_ROAM_MIN_CANDIDATE_RSSI,
5337 hdd_ctx->config->min_candidate_rssi);
Kapil Gupta5cda2252016-12-29 18:44:26 +05305338}
5339
5340/**
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005341 * hdd_cfg_print() - print the hdd configuration
5342 * @iniTable: pointer to hdd context
5343 *
5344 * Return: None
5345 */
5346void hdd_cfg_print(hdd_context_t *pHddCtx)
5347{
5348 int i;
5349
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005350 hdd_info("*********Config values in HDD Adapter*******");
5351 hdd_info("Name = [RTSThreshold] Value = %u",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005352 pHddCtx->config->RTSThreshold);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005353 hdd_info("Name = [OperatingChannel] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005354 pHddCtx->config->OperatingChannel);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005355 hdd_info("Name = [PowerUsageControl] Value = [%s]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005356 pHddCtx->config->PowerUsageControl);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005357 hdd_info("Name = [fIsImpsEnabled] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005358 pHddCtx->config->fIsImpsEnabled);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005359 hdd_info("Name = [nVccRssiTrigger] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005360 pHddCtx->config->nVccRssiTrigger);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005361 hdd_info("Name = [gIbssBssid] Value =[" MAC_ADDRESS_STR "]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005362 MAC_ADDR_ARRAY(pHddCtx->config->IbssBssid.bytes));
5363
Anurag Chouhan6d760662016-02-20 16:05:43 +05305364 for (i = 0; i < QDF_MAX_CONCURRENCY_PERSONA; i++) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005365 hdd_info("Name = [Intf%dMacAddress] Value =[" MAC_ADDRESS_STR "]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005366 i, MAC_ADDR_ARRAY(pHddCtx->config->intfMacAddr[i].bytes));
5367 }
5368
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005369 hdd_info("Name = [gApEnableUapsd] value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005370 pHddCtx->config->apUapsdEnabled);
5371
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005372 hdd_info("Name = [gEnableApProt] value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005373 pHddCtx->config->apProtEnabled);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005374 hdd_info("Name = [gAPAutoShutOff] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005375 pHddCtx->config->nAPAutoShutOff);
5376#ifdef FEATURE_WLAN_MCC_TO_SCC_SWITCH
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005377 hdd_info("Name = [gWlanMccToSccSwitchMode] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005378 pHddCtx->config->WlanMccToSccSwitchMode);
5379#endif
5380#ifdef FEATURE_WLAN_AUTO_SHUTDOWN
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005381 hdd_info("Name = [gWlanAutoShutdown] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005382 pHddCtx->config->WlanAutoShutdown);
5383#endif
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005384 hdd_info("Name = [gApProtection] value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005385 pHddCtx->config->apProtection);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005386 hdd_info("Name = [gEnableApOBSSProt] value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005387 pHddCtx->config->apOBSSProtEnabled);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005388 hdd_info("Name = [%s] value = [%u]", CFG_FORCE_SAP_ACS,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005389 pHddCtx->config->force_sap_acs);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005390 hdd_info("Name = [%s] value = [%u]", CFG_FORCE_SAP_ACS_START_CH,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005391 pHddCtx->config->force_sap_acs_st_ch);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005392 hdd_info("Name = [%s] value = [%u]", CFG_FORCE_SAP_ACS_END_CH,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005393 pHddCtx->config->force_sap_acs_end_ch);
5394#ifdef FEATURE_AP_MCC_CH_AVOIDANCE
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005395 hdd_info("Name = [sap_channel_avoidance] value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005396 pHddCtx->config->sap_channel_avoidance);
5397#endif /* FEATURE_AP_MCC_CH_AVOIDANCE */
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005398 hdd_info("Name = [%s] value = [%u]", CFG_SAP_P2P_11AC_OVERRIDE_NAME,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005399 pHddCtx->config->sap_p2p_11ac_override);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005400 hdd_info("Name = [ChannelBondingMode] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005401 pHddCtx->config->nChannelBondingMode24GHz);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005402 hdd_info("Name = [ChannelBondingMode] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005403 pHddCtx->config->nChannelBondingMode5GHz);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005404 hdd_info("Name = [dot11Mode] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005405 pHddCtx->config->dot11Mode);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005406 hdd_info("Name = [WmmMode] Value = [%u] ", pHddCtx->config->WmmMode);
5407 hdd_info("Name = [UapsdMask] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005408 pHddCtx->config->UapsdMask);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005409 hdd_info("Name = [ImplicitQosIsEnabled] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005410 (int)pHddCtx->config->bImplicitQosEnabled);
5411
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005412 hdd_info("Name = [InfraUapsdVoSrvIntv] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005413 pHddCtx->config->InfraUapsdVoSrvIntv);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005414 hdd_info("Name = [InfraUapsdVoSuspIntv] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005415 pHddCtx->config->InfraUapsdVoSuspIntv);
5416
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005417 hdd_info("Name = [InfraUapsdViSrvIntv] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005418 pHddCtx->config->InfraUapsdViSrvIntv);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005419 hdd_info("Name = [InfraUapsdViSuspIntv] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005420 pHddCtx->config->InfraUapsdViSuspIntv);
5421
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005422 hdd_info("Name = [InfraUapsdBeSrvIntv] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005423 pHddCtx->config->InfraUapsdBeSrvIntv);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005424 hdd_info("Name = [InfraUapsdBeSuspIntv] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005425 pHddCtx->config->InfraUapsdBeSuspIntv);
5426
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005427 hdd_info("Name = [InfraUapsdBkSrvIntv] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005428 pHddCtx->config->InfraUapsdBkSrvIntv);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005429 hdd_info("Name = [InfraUapsdBkSuspIntv] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005430 pHddCtx->config->InfraUapsdBkSuspIntv);
5431#ifdef FEATURE_WLAN_ESE
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005432 hdd_info("Name = [InfraInactivityInterval] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005433 pHddCtx->config->InfraInactivityInterval);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005434 hdd_info("Name = [EseEnabled] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005435 pHddCtx->config->isEseIniFeatureEnabled);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005436 hdd_info("Name = [FastTransitionEnabled] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005437 pHddCtx->config->isFastTransitionEnabled);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005438 hdd_info("Name = [gTxPowerCap] Value = [%u] dBm ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005439 pHddCtx->config->nTxPowerCap);
5440#endif
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005441 hdd_info("Name = [gAllowTPCfromAP] Value = [%u] ",
Padma, Santhosh Kumar29df3622016-08-16 19:15:16 +05305442 pHddCtx->config->allow_tpc_from_ap);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005443 hdd_info("Name = [FastRoamEnabled] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005444 pHddCtx->config->isFastRoamIniFeatureEnabled);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005445 hdd_info("Name = [MAWCEnabled] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005446 pHddCtx->config->MAWCEnabled);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005447 hdd_info("Name = [RoamRssiDiff] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005448 pHddCtx->config->RoamRssiDiff);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005449 hdd_info("Name = [isWESModeEnabled] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005450 pHddCtx->config->isWESModeEnabled);
Deepak Dhamdhere828f1892017-02-09 11:51:19 -08005451 hdd_info("Name = [pmkidModes] Value = [0x%x] ",
5452 pHddCtx->config->pmkid_modes);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005453#ifdef FEATURE_WLAN_SCAN_PNO
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005454 hdd_info("Name = [configPNOScanSupport] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005455 pHddCtx->config->configPNOScanSupport);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005456 hdd_info("Name = [configPNOScanTimerRepeatValue] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005457 pHddCtx->config->configPNOScanTimerRepeatValue);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005458 hdd_info("Name = [gPNOSlowScanMultiplier] Value = [%u] ",
Srinivas Girigowdabdc98162015-09-17 11:06:07 -07005459 pHddCtx->config->pno_slow_scan_multiplier);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005460#endif
5461#ifdef FEATURE_WLAN_TDLS
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005462 hdd_info("Name = [fEnableTDLSSupport] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005463 pHddCtx->config->fEnableTDLSSupport);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005464 hdd_info("Name = [fEnableTDLSImplicitTrigger] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005465 pHddCtx->config->fEnableTDLSImplicitTrigger);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005466 hdd_info("Name = [fTDLSExternalControl] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005467 pHddCtx->config->fTDLSExternalControl);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005468 hdd_info("Name = [fTDLSUapsdMask] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005469 pHddCtx->config->fTDLSUapsdMask);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005470 hdd_info("Name = [fEnableTDLSBufferSta] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005471 pHddCtx->config->fEnableTDLSBufferSta);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005472 hdd_info("Name = [fEnableTDLSWmmMode] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005473 pHddCtx->config->fEnableTDLSWmmMode);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005474 hdd_info("Name = [enable_tdls_scan] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005475 pHddCtx->config->enable_tdls_scan);
5476#endif
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005477 hdd_info("Name = [InfraDirAcVo] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005478 pHddCtx->config->InfraDirAcVo);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005479 hdd_info("Name = [InfraNomMsduSizeAcVo] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005480 pHddCtx->config->InfraNomMsduSizeAcVo);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005481 hdd_info("Name = [InfraMeanDataRateAcVo] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005482 pHddCtx->config->InfraMeanDataRateAcVo);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005483 hdd_info("Name = [InfraMinPhyRateAcVo] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005484 pHddCtx->config->InfraMinPhyRateAcVo);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005485 hdd_info("Name = [InfraSbaAcVo] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005486 pHddCtx->config->InfraSbaAcVo);
5487
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005488 hdd_info("Name = [InfraDirAcVi] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005489 pHddCtx->config->InfraDirAcVi);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005490 hdd_info("Name = [InfraNomMsduSizeAcVi] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005491 pHddCtx->config->InfraNomMsduSizeAcVi);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005492 hdd_info("Name = [InfraMeanDataRateAcVi] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005493 pHddCtx->config->InfraMeanDataRateAcVi);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005494 hdd_info("Name = [InfraMinPhyRateAcVi] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005495 pHddCtx->config->InfraMinPhyRateAcVi);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005496 hdd_info("Name = [InfraSbaAcVi] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005497 pHddCtx->config->InfraSbaAcVi);
5498
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005499 hdd_info("Name = [InfraDirAcBe] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005500 pHddCtx->config->InfraDirAcBe);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005501 hdd_info("Name = [InfraNomMsduSizeAcBe] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005502 pHddCtx->config->InfraNomMsduSizeAcBe);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005503 hdd_info("Name = [InfraMeanDataRateAcBe] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005504 pHddCtx->config->InfraMeanDataRateAcBe);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005505 hdd_info("Name = [InfraMinPhyRateAcBe] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005506 pHddCtx->config->InfraMinPhyRateAcBe);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005507 hdd_info("Name = [InfraSbaAcBe] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005508 pHddCtx->config->InfraSbaAcBe);
5509
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005510 hdd_info("Name = [InfraDirAcBk] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005511 pHddCtx->config->InfraDirAcBk);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005512 hdd_info("Name = [InfraNomMsduSizeAcBk] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005513 pHddCtx->config->InfraNomMsduSizeAcBk);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005514 hdd_info("Name = [InfraMeanDataRateAcBk] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005515 pHddCtx->config->InfraMeanDataRateAcBk);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005516 hdd_info("Name = [InfraMinPhyRateAcBk] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005517 pHddCtx->config->InfraMinPhyRateAcBk);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005518 hdd_info("Name = [InfraSbaAcBk] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005519 pHddCtx->config->InfraSbaAcBk);
5520
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005521 hdd_info("Name = [DelayedTriggerFrmInt] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005522 pHddCtx->config->DelayedTriggerFrmInt);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005523 hdd_info("Name = [fhostArpOffload] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005524 pHddCtx->config->fhostArpOffload);
Dustin Brown1224e212017-05-12 14:02:12 -07005525 hdd_info("Name = [%s] Value = [%u]",
5526 CFG_HW_FILTER_MODE_NAME, pHddCtx->config->hw_filter_mode);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005527 hdd_info("Name = [ssdp] Value = [%u] ", pHddCtx->config->ssdp);
Houston Hoffmanc7c69f02016-03-24 22:45:52 -07005528 hdd_cfg_print_runtime_pm(pHddCtx);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005529#ifdef FEATURE_WLAN_RA_FILTERING
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005530 hdd_info("Name = [RArateLimitInterval] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005531 pHddCtx->config->RArateLimitInterval);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005532 hdd_info("Name = [IsRArateLimitEnabled] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005533 pHddCtx->config->IsRArateLimitEnabled);
5534#endif
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005535 hdd_info("Name = [fFTResourceReqSupported] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005536 pHddCtx->config->fFTResourceReqSupported);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005537
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005538 hdd_info("Name = [nNeighborLookupRssiThreshold] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005539 pHddCtx->config->nNeighborLookupRssiThreshold);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005540 hdd_info("Name = [delay_before_vdev_stop] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005541 pHddCtx->config->delay_before_vdev_stop);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005542 hdd_info("Name = [nOpportunisticThresholdDiff] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005543 pHddCtx->config->nOpportunisticThresholdDiff);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005544 hdd_info("Name = [nRoamRescanRssiDiff] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005545 pHddCtx->config->nRoamRescanRssiDiff);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005546 hdd_info("Name = [nNeighborScanMinChanTime] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005547 pHddCtx->config->nNeighborScanMinChanTime);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005548 hdd_info("Name = [nNeighborScanMaxChanTime] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005549 pHddCtx->config->nNeighborScanMaxChanTime);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005550 hdd_info("Name = [nMaxNeighborRetries] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005551 pHddCtx->config->nMaxNeighborReqTries);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005552 hdd_info("Name = [nNeighborScanPeriod] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005553 pHddCtx->config->nNeighborScanPeriod);
Sridhar Selvaraj1b2330c2017-07-21 15:16:42 +05305554 hdd_info("Name = [n_neighbor_scan_min_period] Value = [%u] ",
5555 pHddCtx->config->neighbor_scan_min_period);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005556 hdd_info("Name = [nNeighborScanResultsRefreshPeriod] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005557 pHddCtx->config->nNeighborResultsRefreshPeriod);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005558 hdd_info("Name = [nEmptyScanRefreshPeriod] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005559 pHddCtx->config->nEmptyScanRefreshPeriod);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005560 hdd_info("Name = [nRoamBmissFirstBcnt] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005561 pHddCtx->config->nRoamBmissFirstBcnt);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005562 hdd_info("Name = [nRoamBmissFinalBcnt] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005563 pHddCtx->config->nRoamBmissFinalBcnt);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005564 hdd_info("Name = [nRoamBeaconRssiWeight] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005565 pHddCtx->config->nRoamBeaconRssiWeight);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005566 hdd_info("Name = [allowDFSChannelRoam] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005567 pHddCtx->config->allowDFSChannelRoam);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005568 hdd_info("Name = [nhi_rssi_scan_max_count] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005569 pHddCtx->config->nhi_rssi_scan_max_count);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005570 hdd_info("Name = [nhi_rssi_scan_rssi_delta] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005571 pHddCtx->config->nhi_rssi_scan_rssi_delta);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005572 hdd_info("Name = [nhi_rssi_scan_delay] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005573 pHddCtx->config->nhi_rssi_scan_delay);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005574 hdd_info("Name = [nhi_rssi_scan_rssi_ub] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005575 pHddCtx->config->nhi_rssi_scan_rssi_ub);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005576 hdd_info("Name = [burstSizeDefinition] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005577 pHddCtx->config->burstSizeDefinition);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005578 hdd_info("Name = [tsInfoAckPolicy] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005579 pHddCtx->config->tsInfoAckPolicy);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005580 hdd_info("Name = [rfSettlingTimeUs] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005581 pHddCtx->config->rfSettlingTimeUs);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005582 hdd_info("Name = [bSingleTidRc] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005583 pHddCtx->config->bSingleTidRc);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005584 hdd_info("Name = [gDynamicPSPollvalue] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005585 pHddCtx->config->dynamicPsPollValue);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005586 hdd_info("Name = [gAddTSWhenACMIsOff] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005587 pHddCtx->config->AddTSWhenACMIsOff);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005588 hdd_info("Name = [gValidateScanList] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005589 pHddCtx->config->fValidateScanList);
5590
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005591 hdd_info("Name = [gStaKeepAlivePeriod] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005592 pHddCtx->config->infraStaKeepAlivePeriod);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005593 hdd_info("Name = [gApDataAvailPollInterVal] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005594 pHddCtx->config->apDataAvailPollPeriodInMs);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005595 hdd_info("Name = [BandCapability] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005596 pHddCtx->config->nBandCapability);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005597 hdd_info("Name = [teleBcnWakeupEnable] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005598 pHddCtx->config->teleBcnWakeupEn);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005599 hdd_info("Name = [transListenInterval] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005600 pHddCtx->config->nTeleBcnTransListenInterval);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005601 hdd_info("Name = [transLiNumIdleBeacons] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005602 pHddCtx->config->nTeleBcnTransLiNumIdleBeacons);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005603 hdd_info("Name = [maxListenInterval] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005604 pHddCtx->config->nTeleBcnMaxListenInterval);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005605 hdd_info("Name = [maxLiNumIdleBeacons] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005606 pHddCtx->config->nTeleBcnMaxLiNumIdleBeacons);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005607 hdd_info("Name = [gEnableBypass11d] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005608 pHddCtx->config->enableBypass11d);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005609 hdd_info("Name = [gEnableDFSChnlScan] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005610 pHddCtx->config->enableDFSChnlScan);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005611 hdd_info("Name = [gEnableDFSPnoChnlScan] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005612 pHddCtx->config->enable_dfs_pno_chnl_scan);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005613 hdd_info("Name = [gReportMaxLinkSpeed] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005614 pHddCtx->config->reportMaxLinkSpeed);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005615 hdd_info("Name = [thermalMitigationEnable] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005616 pHddCtx->config->thermalMitigationEnable);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005617 hdd_info("Name = [gVhtChannelWidth] value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005618 pHddCtx->config->vhtChannelWidth);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005619 hdd_info("Name = [enableFirstScan2GOnly] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005620 pHddCtx->config->enableFirstScan2GOnly);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005621 hdd_info("Name = [skipDfsChnlInP2pSearch] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005622 pHddCtx->config->skipDfsChnlInP2pSearch);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005623 hdd_info("Name = [ignoreDynamicDtimInP2pMode] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005624 pHddCtx->config->ignoreDynamicDtimInP2pMode);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005625 hdd_info("Name = [enableRxSTBC] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005626 pHddCtx->config->enableRxSTBC);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005627 hdd_info("Name = [gEnableLpwrImgTransition] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005628 pHddCtx->config->enableLpwrImgTransition);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005629 hdd_info("Name = [gEnableSSR] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005630 pHddCtx->config->enableSSR);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005631 hdd_info("Name = [gEnableVhtFor24GHzBand] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005632 pHddCtx->config->enableVhtFor24GHzBand);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005633 hdd_info("Name = [gEnableIbssHeartBeatOffload] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005634 pHddCtx->config->enableIbssHeartBeatOffload);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005635 hdd_info("Name = [gAntennaDiversity] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005636 pHddCtx->config->antennaDiversity);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005637 hdd_info("Name = [gGoLinkMonitorPeriod] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005638 pHddCtx->config->goLinkMonitorPeriod);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005639 hdd_info("Name = [gApLinkMonitorPeriod] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005640 pHddCtx->config->apLinkMonitorPeriod);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005641 hdd_info("Name = [gGoKeepAlivePeriod] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005642 pHddCtx->config->goKeepAlivePeriod);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005643 hdd_info("Name = [gApKeepAlivePeriod]Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005644 pHddCtx->config->apKeepAlivePeriod);
Deepak Dhamdhere612392c2016-08-28 02:56:51 -07005645 hdd_debug("Name = [max_amsdu_num] Value = [%u] ",
5646 pHddCtx->config->max_amsdu_num);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005647 hdd_info("Name = [nSelect5GHzMargin] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005648 pHddCtx->config->nSelect5GHzMargin);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005649 hdd_info("Name = [gCoalesingInIBSS] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005650 pHddCtx->config->isCoalesingInIBSSAllowed);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005651 hdd_info("Name = [gIbssATIMWinSize] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005652 pHddCtx->config->ibssATIMWinSize);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005653 hdd_info("Name = [gIbssIsPowerSaveAllowed] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005654 pHddCtx->config->isIbssPowerSaveAllowed);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005655 hdd_info("Name = [gIbssIsPowerCollapseAllowed] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005656 pHddCtx->config->isIbssPowerCollapseAllowed);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005657 hdd_info("Name = [gIbssAwakeOnTxRx] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005658 pHddCtx->config->isIbssAwakeOnTxRx);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005659 hdd_info("Name = [gIbssInactivityTime] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005660 pHddCtx->config->ibssInactivityCount);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005661 hdd_info("Name = [gIbssTxSpEndInactivityTime] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005662 pHddCtx->config->ibssTxSpEndInactivityTime);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005663 hdd_info("Name = [gIbssPsWarmupTime] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005664 pHddCtx->config->ibssPsWarmupTime);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005665 hdd_info("Name = [gIbssPs1RxChainInAtim] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005666 pHddCtx->config->ibssPs1RxChainInAtimEnable);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005667 hdd_info("Name = [fDfsPhyerrFilterOffload] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005668 pHddCtx->config->fDfsPhyerrFilterOffload);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005669 hdd_info("Name = [gIgnorePeerErpInfo] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005670 pHddCtx->config->ignore_peer_erp_info);
5671#ifdef IPA_OFFLOAD
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005672 hdd_info("Name = [gIPAConfig] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005673 pHddCtx->config->IpaConfig);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005674 hdd_info("Name = [gIPADescSize] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005675 pHddCtx->config->IpaDescSize);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005676 hdd_info("Name = [IpaHighBandwidthMbpsg] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005677 pHddCtx->config->IpaHighBandwidthMbps);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005678 hdd_info("Name = [IpaMediumBandwidthMbps] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005679 pHddCtx->config->IpaMediumBandwidthMbps);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005680 hdd_info("Name = [IpaLowBandwidthMbps] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005681 pHddCtx->config->IpaLowBandwidthMbps);
5682#endif
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005683 hdd_info("Name = [gEnableOverLapCh] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005684 pHddCtx->config->gEnableOverLapCh);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005685 hdd_info("Name = [gMaxOffloadPeers] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005686 pHddCtx->config->apMaxOffloadPeers);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005687 hdd_info("Name = [gMaxOffloadReorderBuffs] value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005688 pHddCtx->config->apMaxOffloadReorderBuffs);
Dustin Brown732ab9c2017-06-15 13:24:09 -07005689 hdd_info("Name = [%s] Value = [%d]",
5690 CFG_ENABLE_CCK_TX_FIR_OVERRIDE_NAME,
5691 pHddCtx->config->enable_cck_tx_fir_override);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005692 hdd_info("Name = [gAllowDFSChannelRoam] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005693 pHddCtx->config->allowDFSChannelRoam);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005694 hdd_info("Name = [gMaxConcurrentActiveSessions] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005695 pHddCtx->config->gMaxConcurrentActiveSessions);
5696
5697#ifdef MSM_PLATFORM
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005698 hdd_info("Name = [gBusBandwidthHighThreshold] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005699 pHddCtx->config->busBandwidthHighThreshold);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005700 hdd_info("Name = [gBusBandwidthMediumThreshold] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005701 pHddCtx->config->busBandwidthMediumThreshold);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005702 hdd_info("Name = [gBusBandwidthLowThreshold] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005703 pHddCtx->config->busBandwidthLowThreshold);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005704 hdd_info("Name = [gbusBandwidthComputeInterval] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005705 pHddCtx->config->busBandwidthComputeInterval);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005706 hdd_info("Name = [%s] Value = [%u] ",
Ravi Joshie2331e82015-07-01 18:18:54 -07005707 CFG_ENABLE_TCP_DELACK,
5708 pHddCtx->config->enable_tcp_delack);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005709 hdd_info("Name = [gTcpDelAckThresholdHigh] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005710 pHddCtx->config->tcpDelackThresholdHigh);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005711 hdd_info("Name = [gTcpDelAckThresholdLow] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005712 pHddCtx->config->tcpDelackThresholdLow);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005713 hdd_info("Name = [%s] Value = [%u] ",
Ravi Joshib89e7f72016-09-07 13:43:15 -07005714 CFG_TCP_DELACK_TIMER_COUNT,
5715 pHddCtx->config->tcp_delack_timer_count);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005716 hdd_info("Name = [%s] Value = [%u] ",
Ravi Joshib89e7f72016-09-07 13:43:15 -07005717 CFG_TCP_TX_HIGH_TPUT_THRESHOLD_NAME,
5718 pHddCtx->config->tcp_tx_high_tput_thres);
Mohit Khannae71e2262015-11-10 09:37:24 -08005719
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005720#endif
5721
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005722 hdd_info("Name = [gIgnoreCAC] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005723 pHddCtx->config->ignoreCAC);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005724 hdd_info("Name = [gSapPreferredChanLocation] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005725 pHddCtx->config->gSapPreferredChanLocation);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005726 hdd_info("Name = [gDisableDfsJapanW53] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005727 pHddCtx->config->gDisableDfsJapanW53);
5728#ifdef FEATURE_GREEN_AP
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005729 hdd_info("Name = [gEnableGreenAp] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005730 pHddCtx->config->enableGreenAP);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005731 hdd_info("Name = [gEenableEGAP] Value = [%u] ",
Ryan Hsucb118cf2015-11-09 16:03:53 -08005732 pHddCtx->config->enable_egap);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005733 hdd_info("Name = [gEGAPInactTime] Value = [%u] ",
Ryan Hsucb118cf2015-11-09 16:03:53 -08005734 pHddCtx->config->egap_inact_time);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005735 hdd_info("Name = [gEGAPWaitTime] Value = [%u] ",
Ryan Hsucb118cf2015-11-09 16:03:53 -08005736 pHddCtx->config->egap_wait_time);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005737 hdd_info("Name = [gEGAPFeatures] Value = [%u] ",
Ryan Hsucb118cf2015-11-09 16:03:53 -08005738 pHddCtx->config->egap_feature_flag);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005739#endif
5740#ifdef WLAN_FEATURE_ROAM_OFFLOAD
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005741 hdd_info("Name = [isRoamOffloadEnabled] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005742 pHddCtx->config->isRoamOffloadEnabled);
5743#endif
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005744 hdd_info("Name = [gEnableSifsBurst] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005745 pHddCtx->config->enableSifsBurst);
5746
5747#ifdef WLAN_FEATURE_LPSS
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005748 hdd_info("Name = [gEnableLpassSupport] Value = [%u] ",
Komal Seelamc11bb222016-01-27 18:57:10 +05305749 pHddCtx->config->enable_lpass_support);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005750#endif
5751
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005752 hdd_info("Name = [gEnableSelfRecovery] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005753 pHddCtx->config->enableSelfRecovery);
5754
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005755 hdd_info("Name = [gEnableSapSuspend] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005756 pHddCtx->config->enableSapSuspend);
5757
5758#ifdef WLAN_FEATURE_EXTWOW_SUPPORT
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005759 hdd_info("Name = [gExtWoWgotoSuspend] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005760 pHddCtx->config->extWowGotoSuspend);
5761
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005762 hdd_info("Name = [gExtWowApp1WakeupPinNumber] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005763 pHddCtx->config->extWowApp1WakeupPinNumber);
5764
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005765 hdd_info("Name = [gExtWowApp2WakeupPinNumber] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005766 pHddCtx->config->extWowApp2WakeupPinNumber);
5767
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005768 hdd_info("Name = [gExtWoWApp2KAInitPingInterval] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005769 pHddCtx->config->extWowApp2KAInitPingInterval);
5770
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005771 hdd_info("Name = [gExtWoWApp2KAMinPingInterval] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005772 pHddCtx->config->extWowApp2KAMinPingInterval);
5773
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005774 hdd_info("Name = [gExtWoWApp2KAMaxPingInterval] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005775 pHddCtx->config->extWowApp2KAMaxPingInterval);
5776
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005777 hdd_info("Name = [gExtWoWApp2KAIncPingInterval] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005778 pHddCtx->config->extWowApp2KAIncPingInterval);
5779
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005780 hdd_info("Name = [gExtWoWApp2TcpSrcPort] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005781 pHddCtx->config->extWowApp2TcpSrcPort);
5782
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005783 hdd_info("Name = [gExtWoWApp2TcpDstPort] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005784 pHddCtx->config->extWowApp2TcpDstPort);
5785
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005786 hdd_info("Name = [gExtWoWApp2TcpTxTimeout] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005787 pHddCtx->config->extWowApp2TcpTxTimeout);
5788
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005789 hdd_info("Name = [gExtWoWApp2TcpRxTimeout] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005790 pHddCtx->config->extWowApp2TcpRxTimeout);
5791#endif
5792
5793#ifdef DHCP_SERVER_OFFLOAD
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005794 hdd_info("Name = [gDHCPServerOffloadEnable] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005795 pHddCtx->config->enableDHCPServerOffload);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005796 hdd_info("Name = [gDHCPMaxNumClients] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005797 pHddCtx->config->dhcpMaxNumClients);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005798 hdd_info("Name = [gDHCPServerIP] Value = [%s]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005799 pHddCtx->config->dhcpServerIP);
5800#endif
5801
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005802 hdd_info("Name = [gEnableDumpCollect] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005803 pHddCtx->config->is_ramdump_enabled);
5804
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005805 hdd_info("Name = [gP2PListenDeferInterval] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005806 pHddCtx->config->p2p_listen_defer_interval);
Archana Ramachandrane87005c2016-08-23 16:57:30 -07005807 hdd_notice("Name = [is_ps_enabled] value = [%d]",
5808 pHddCtx->config->is_ps_enabled);
5809 hdd_notice("Name = [tso_enable] value = [%d]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005810 pHddCtx->config->tso_enable);
Archana Ramachandrane87005c2016-08-23 16:57:30 -07005811 hdd_notice("Name = [LROEnable] value = [%d]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005812 pHddCtx->config->lro_enable);
Archana Ramachandrane87005c2016-08-23 16:57:30 -07005813 hdd_notice("Name = [active_mode_offload] value = [%d]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005814 pHddCtx->config->active_mode_offload);
Archana Ramachandrane87005c2016-08-23 16:57:30 -07005815 hdd_notice("Name = [gfine_time_meas_cap] value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005816 pHddCtx->config->fine_time_meas_cap);
5817#ifdef WLAN_FEATURE_FASTPATH
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005818 hdd_info("Name = [fastpath_enable] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005819 pHddCtx->config->fastpath_enable);
5820#endif
Archana Ramachandrane87005c2016-08-23 16:57:30 -07005821 hdd_notice("Name = [max_scan_count] value = [%d]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005822 pHddCtx->config->max_scan_count);
Archana Ramachandrane87005c2016-08-23 16:57:30 -07005823 hdd_notice("Name = [%s] value = [%d]",
Nirav Shahbd36b062016-07-18 11:12:59 +05305824 CFG_RX_MODE_NAME, pHddCtx->config->rx_mode);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005825 hdd_info("Name = [%s] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005826 CFG_CE_CLASSIFY_ENABLE_NAME,
5827 pHddCtx->config->ce_classify_enabled);
Archana Ramachandrane87005c2016-08-23 16:57:30 -07005828 hdd_notice("Name = [%s] value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005829 CFG_DUAL_MAC_FEATURE_DISABLE,
5830 pHddCtx->config->dual_mac_feature_disable);
Nitesh Shah50a3de12017-04-03 19:37:19 +05305831 hdd_notice("Name = [%s] Value = [%s]",
5832 CFG_DBS_SCAN_SELECTION_NAME,
5833 pHddCtx->config->dbs_scan_selection);
Varun Reddy Yeturub43fda12015-09-10 18:16:21 -07005834#ifdef FEATURE_WLAN_SCAN_PNO
Archana Ramachandrane87005c2016-08-23 16:57:30 -07005835 hdd_notice("Name = [%s] Value = [%u]",
5836 CFG_PNO_CHANNEL_PREDICTION_NAME,
5837 pHddCtx->config->pno_channel_prediction);
5838 hdd_notice("Name = [%s] Value = [%u]",
5839 CFG_TOP_K_NUM_OF_CHANNELS_NAME,
5840 pHddCtx->config->top_k_num_of_channels);
5841 hdd_notice("Name = [%s] Value = [%u]",
5842 CFG_STATIONARY_THRESHOLD_NAME,
5843 pHddCtx->config->stationary_thresh);
5844 hdd_notice("Name = [%s] Value = [%u]",
5845 CFG_CHANNEL_PREDICTION_FULL_SCAN_MS_NAME,
5846 pHddCtx->config->channel_prediction_full_scan);
5847 hdd_notice("Name = [%s] Value = [%u]",
5848 CFG_ADAPTIVE_PNOSCAN_DWELL_MODE_NAME,
5849 pHddCtx->config->pnoscan_adaptive_dwell_mode);
Varun Reddy Yeturub43fda12015-09-10 18:16:21 -07005850#endif
Archana Ramachandrane87005c2016-08-23 16:57:30 -07005851 hdd_notice("Name = [%s] Value = [%d]",
5852 CFG_EARLY_STOP_SCAN_ENABLE,
5853 pHddCtx->config->early_stop_scan_enable);
5854 hdd_notice("Name = [%s] Value = [%d]",
5855 CFG_EARLY_STOP_SCAN_MIN_THRESHOLD,
5856 pHddCtx->config->early_stop_scan_min_threshold);
5857 hdd_notice("Name = [%s] Value = [%d]",
5858 CFG_EARLY_STOP_SCAN_MAX_THRESHOLD,
5859 pHddCtx->config->early_stop_scan_max_threshold);
5860 hdd_notice("Name = [%s] Value = [%d]",
5861 CFG_FIRST_SCAN_BUCKET_THRESHOLD_NAME,
5862 pHddCtx->config->first_scan_bucket_threshold);
5863 hdd_notice("Name = [%s] Value = [%u]",
5864 CFG_HT_MPDU_DENSITY_NAME,
5865 pHddCtx->config->ht_mpdu_density);
Krishna Kumaar Natarajan22b59a72015-11-23 18:54:58 -08005866
Ravi Joshi742495d2015-11-09 18:56:53 -08005867
5868#ifdef FEATURE_LFR_SUBNET_DETECTION
Archana Ramachandrane87005c2016-08-23 16:57:30 -07005869 hdd_notice("Name = [%s] Value = [%d]",
5870 CFG_ENABLE_LFR_SUBNET_DETECTION,
5871 pHddCtx->config->enable_lfr_subnet_detection);
Ravi Joshi742495d2015-11-09 18:56:53 -08005872#endif
Gupta, Kapilc68ad462016-02-01 19:17:23 +05305873 hdd_info("Name = [%s] Value = [%u]",
5874 CFG_ROAM_DENSE_TRAFFIC_THRESHOLD,
5875 pHddCtx->config->roam_dense_traffic_thresh);
5876 hdd_info("Name = [%s] Value = [%u]",
5877 CFG_ROAM_DENSE_RSSI_THRE_OFFSET,
5878 pHddCtx->config->roam_dense_rssi_thresh_offset);
5879 hdd_info("Name = [%s] Value = [%u]",
Abhishek Singh165bc602016-03-21 12:43:00 +05305880 CFG_IGNORE_PEER_HT_MODE_NAME,
5881 pHddCtx->config->ignore_peer_ht_opmode);
5882 hdd_info("Name = [%s] Value = [%u]",
Kapil Gupta4b2efbb2016-10-03 13:07:20 +05305883 CFG_ENABLE_VENDOR_VHT_FOR_24GHZ_NAME,
5884 pHddCtx->config->enable_sap_vendor_vht);
5885 hdd_info("Name = [%s] Value = [%u]",
Abhishek Singh5ea86532016-04-27 14:10:53 +05305886 CFG_ENABLE_FATAL_EVENT_TRIGGER,
5887 pHddCtx->config->enable_fatal_event);
5888 hdd_info("Name = [%s] Value = [%u]",
Gupta, Kapilc68ad462016-02-01 19:17:23 +05305889 CFG_ROAM_DENSE_MIN_APS,
5890 pHddCtx->config->roam_dense_min_aps);
Agrawal Ashish17bb3902016-05-05 13:29:40 +05305891 hdd_info("Name = [%s] Value = [%u]",
5892 CFG_MIN_REST_TIME_NAME,
5893 pHddCtx->config->min_rest_time_conc);
5894 hdd_info("Name = [%s] Value = [%u]",
5895 CFG_IDLE_TIME_NAME,
5896 pHddCtx->config->idle_time_conc);
Mukul Sharmaf7d62e12016-09-03 15:16:22 +05305897 hdd_info("Name = [%s] Value = [%d]",
5898 CFG_BUG_ON_REINIT_FAILURE_NAME,
5899 pHddCtx->config->bug_on_reinit_failure);
Arun Khandavallifae92942016-08-01 13:31:08 +05305900 hdd_info("Name = [%s] Value = [%u]",
5901 CFG_INTERFACE_CHANGE_WAIT_NAME,
5902 pHddCtx->config->iface_change_wait_time);
Agrawal Ashish17bb3902016-05-05 13:29:40 +05305903
Abhishek Singh10ecf582016-05-04 17:48:59 +05305904 hdd_info("Name = [%s] Value = [%u]",
5905 CFG_ENABLE_EDCA_INI_NAME,
5906 pHddCtx->config->enable_edca_params);
5907
5908 hdd_info("Name = [%s] Value = [%u]",
5909 CFG_EDCA_VO_CWMIN_VALUE_NAME,
5910 pHddCtx->config->edca_vo_cwmin);
5911 hdd_info("Name = [%s] Value = [%u]",
5912 CFG_EDCA_VI_CWMIN_VALUE_NAME,
5913 pHddCtx->config->edca_vi_cwmin);
5914 hdd_info("Name = [%s] Value = [%u]",
5915 CFG_EDCA_BK_CWMIN_VALUE_NAME,
5916 pHddCtx->config->edca_bk_cwmin);
5917 hdd_info("Name = [%s] Value = [%u]",
5918 CFG_EDCA_BE_CWMIN_VALUE_NAME,
5919 pHddCtx->config->edca_be_cwmin);
5920
5921 hdd_info("Name = [%s] Value = [%u]",
5922 CFG_EDCA_VO_CWMAX_VALUE_NAME,
5923 pHddCtx->config->edca_vo_cwmax);
5924 hdd_info("Name = [%s] Value = [%u]",
5925 CFG_EDCA_VI_CWMAX_VALUE_NAME,
5926 pHddCtx->config->edca_vi_cwmax);
5927 hdd_info("Name = [%s] Value = [%u]",
5928 CFG_EDCA_BK_CWMAX_VALUE_NAME,
5929 pHddCtx->config->edca_bk_cwmax);
5930 hdd_info("Name = [%s] Value = [%u]",
5931 CFG_EDCA_BE_CWMAX_VALUE_NAME,
5932 pHddCtx->config->edca_be_cwmax);
5933
5934 hdd_info("Name = [%s] Value = [%u]",
5935 CFG_EDCA_VO_AIFS_VALUE_NAME,
5936 pHddCtx->config->edca_vo_aifs);
5937 hdd_info("Name = [%s] Value = [%u]",
5938 CFG_EDCA_VI_AIFS_VALUE_NAME,
5939 pHddCtx->config->edca_vi_aifs);
5940 hdd_info("Name = [%s] Value = [%u]",
5941 CFG_EDCA_BK_AIFS_VALUE_NAME,
5942 pHddCtx->config->edca_bk_aifs);
5943 hdd_info("Name = [%s] Value = [%u]",
5944 CFG_EDCA_BE_AIFS_VALUE_NAME,
5945 pHddCtx->config->edca_be_aifs);
gbian62edd7e2017-03-07 13:12:13 +08005946
5947 hdd_info("Name = [%s] Value = [%s]",
5948 CFG_ENABLE_TX_SCHED_WRR_VO_NAME,
5949 pHddCtx->config->tx_sched_wrr_vo);
5950 hdd_info("Name = [%s] Value = [%s]",
5951 CFG_ENABLE_TX_SCHED_WRR_VI_NAME,
5952 pHddCtx->config->tx_sched_wrr_vi);
5953 hdd_info("Name = [%s] Value = [%s]",
5954 CFG_ENABLE_TX_SCHED_WRR_BK_NAME,
5955 pHddCtx->config->tx_sched_wrr_bk);
5956 hdd_info("Name = [%s] Value = [%s]",
5957 CFG_ENABLE_TX_SCHED_WRR_BE_NAME,
5958 pHddCtx->config->tx_sched_wrr_be);
5959
Nirav Shahcc1f1ae2016-04-26 11:41:29 +05305960 hdd_info("Name = [%s] Value = [%u]",
5961 CFG_ENABLE_DP_TRACE,
5962 pHddCtx->config->enable_dp_trace);
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05305963 hdd_info("Name = [%s] Value = [%u]",
5964 CFG_ADAPTIVE_SCAN_DWELL_MODE_NAME,
5965 pHddCtx->config->scan_adaptive_dwell_mode);
5966 hdd_info("Name = [%s] Value = [%u]",
5967 CFG_ADAPTIVE_ROAMSCAN_DWELL_MODE_NAME,
5968 pHddCtx->config->roamscan_adaptive_dwell_mode);
5969 hdd_info("Name = [%s] Value = [%u]",
5970 CFG_ADAPTIVE_EXTSCAN_DWELL_MODE_NAME,
5971 pHddCtx->config->extscan_adaptive_dwell_mode);
5972 hdd_info("Name = [%s] Value = [%u]",
5973 CFG_ADAPTIVE_DWELL_MODE_ENABLED_NAME,
5974 pHddCtx->config->adaptive_dwell_mode_enabled);
5975 hdd_info("Name = [%s] Value = [%u]",
5976 CFG_GLOBAL_ADAPTIVE_DWELL_MODE_NAME,
5977 pHddCtx->config->global_adapt_dwelltime_mode);
5978 hdd_info("Name = [%s] Value = [%u]",
5979 CFG_ADAPT_DWELL_LPF_WEIGHT_NAME,
5980 pHddCtx->config->adapt_dwell_lpf_weight);
5981 hdd_info("Name = [%s] Value = [%u]",
5982 CFG_ADAPT_DWELL_PASMON_INTVAL_NAME,
5983 pHddCtx->config->adapt_dwell_passive_mon_intval);
5984 hdd_info("Name = [%s] Value = [%u]",
5985 CFG_ADAPT_DWELL_WIFI_THRESH_NAME,
5986 pHddCtx->config->adapt_dwell_wifi_act_threshold);
Naveen Rawat64e477e2016-05-20 10:34:56 -07005987 hdd_info("Name = [%s] value = [%u]",
5988 CFG_SUB_20_CHANNEL_WIDTH_NAME,
5989 pHddCtx->config->enable_sub_20_channel_width);
Rajeev Kumar Sirasanagandlaaf474742016-09-06 17:54:50 +05305990 hdd_info("Name = [%s] Value = [%u]",
5991 CFG_TGT_GTX_USR_CFG_NAME,
5992 pHddCtx->config->tgt_gtx_usr_cfg);
Agrawal, Ashish4e5fa1c2016-09-21 19:03:43 +05305993 hdd_info("Name = [%s] Value = [%u]",
5994 CFG_SAP_MAX_INACTIVITY_OVERRIDE_NAME,
5995 pHddCtx->config->sap_max_inactivity_override);
Deepak Dhamdhere3385d752016-05-25 20:36:47 -07005996 hdd_ndp_print_ini_config(pHddCtx);
Krishna Kumaar Natarajancc077c22016-08-02 10:41:53 -07005997 hdd_info("Name = [%s] Value = [%s]",
5998 CFG_RM_CAPABILITY_NAME,
5999 pHddCtx->config->rm_capability);
Rajeev Kumardd3bc602016-08-16 14:21:05 -07006000 hdd_info("Name = [%s] Value = [%d]",
Rajeev Kumar Sirasanagandlab79b5462016-09-06 18:33:17 +05306001 CFG_SAP_FORCE_11N_FOR_11AC_NAME,
6002 pHddCtx->config->sap_force_11n_for_11ac);
6003 hdd_info("Name = [%s] Value = [%d]",
Rajeev Kumardd3bc602016-08-16 14:21:05 -07006004 CFG_BPF_PACKET_FILTER_OFFLOAD,
6005 pHddCtx->config->bpf_packet_filter_enable);
Nitesh Shah61c10d92016-10-19 19:29:15 +05306006 hdd_info("Name = [%s] Value = [%u]",
6007 CFG_TDLS_ENABLE_DEFER_TIMER,
6008 pHddCtx->config->tdls_enable_defer_time);
Ravi Joshibb8d4512016-08-22 10:14:52 -07006009 hdd_info("Name = [%s] Value = [%d]",
6010 CFG_FILTER_MULTICAST_REPLAY_NAME,
6011 pHddCtx->config->multicast_replay_filter);
Agrawal Ashishb2d1a452016-05-05 12:23:58 +05306012 hdd_info("Name = [%s] Value = [%u]",
6013 CFG_ENABLE_GO_CTS2SELF_FOR_STA,
6014 pHddCtx->config->enable_go_cts2self_for_sta);
Sandeep Puligillaafa52892016-10-26 19:03:16 -07006015 hdd_info("Name = [%s] Value = [%u]",
6016 CFG_CRASH_FW_TIMEOUT_NAME,
6017 pHddCtx->config->fw_timeout_crash);
Hanumanth Reddy Pothulae87621b2017-04-12 20:53:35 +05306018 hdd_debug("Name = [%s] Value = [%u]",
6019 CFG_ACTIVE_UC_BPF_MODE_NAME,
6020 pHddCtx->config->active_uc_bpf_mode);
6021 hdd_debug("Name = [%s] Value = [%u]",
6022 CFG_ACTIVE_MC_BC_BPF_MODE_NAME,
6023 pHddCtx->config->active_mc_bc_bpf_mode);
Arun Khandavallicc544b32017-01-30 19:52:16 +05306024 hdd_info("Name = [%s] Value = [%d]",
6025 CFG_SAP_INTERNAL_RESTART_NAME,
6026 pHddCtx->config->sap_internal_restart);
Ravi Kumar Bokka05c14e52017-03-27 14:48:23 +05306027 hdd_debug("Name = [%s] Value = [%u]",
6028 CFG_AUTO_DETECT_POWER_FAIL_MODE_NAME,
6029 pHddCtx->config->auto_pwr_save_fail_mode);
Hanumanth Reddy Pothula9c161dd2017-03-23 19:03:08 +05306030 hdd_debug("Name = [%s] Value = [%d]",
6031 CFG_SAP_RESTART_ON_CH_AVOID_NAME,
6032 pHddCtx->config->sap_restart_on_ch_avoid);
Ravi Kumar Bokka05c14e52017-03-27 14:48:23 +05306033
Kapil Gupta5cda2252016-12-29 18:44:26 +05306034 hdd_per_roam_print_ini_config(pHddCtx);
Krishna Kumaar Natarajan90bb6f12017-03-03 21:05:52 -08006035 hdd_he_print_ini_config(pHddCtx);
Srinivas Girigowda70e169a2017-03-07 23:55:57 -08006036 hdd_info("Name = [%s] Value = [%d]",
6037 CFG_ARP_AC_CATEGORY,
6038 pHddCtx->config->arp_ac_category);
Dustin Brown20b6fcf2017-05-17 15:35:17 -07006039 hdd_info("Name = [%s] Value = [%u]",
6040 CFG_SCAN_BACKOFF_MULTIPLIER_NAME,
6041 pHddCtx->config->scan_backoff_multiplier);
Jayachandran Sreekumaran68c952c2017-04-24 12:42:03 +05306042 hdd_info("Name = [%s] Value = [%d]",
6043 CFG_EXTERNAL_ACS_POLICY,
6044 pHddCtx->config->external_acs_policy);
6045 hdd_info("Name = [%s] Value = [%d]",
6046 CFG_EXTERNAL_ACS_FREQ_BAND,
6047 pHddCtx->config->external_acs_freq_band);
Naveen Rawat2b6e3c92017-03-20 13:59:07 -07006048 hdd_info("Name = [%s] value = [%u]",
6049 CFG_DROPPED_PKT_DISCONNECT_TH_NAME,
6050 pHddCtx->config->pkt_err_disconn_th);
Naveen Rawatb2fc4132017-05-10 20:42:05 -07006051 hdd_debug("Name = [%s] value = [%u]",
6052 CFG_FORCE_1X1_NAME,
6053 pHddCtx->config->is_force_1x1);
Ashish Kumar Dhanotiya470af292017-05-31 20:46:00 +05306054 hdd_info("Name = [%s] Value = %u",
6055 CFG_ENABLE_CONNECTED_SCAN_NAME,
6056 pHddCtx->config->enable_connected_scan);
Naveen Rawat247a8682017-06-05 15:00:31 -07006057 hdd_debug("Name = [%s] value = [%u]",
6058 CFG_11B_NUM_TX_CHAIN_NAME,
6059 pHddCtx->config->num_11b_tx_chains);
6060 hdd_debug("Name = [%s] value = [%u]",
6061 CFG_11AG_NUM_TX_CHAIN_NAME,
6062 pHddCtx->config->num_11ag_tx_chains);
Ashish Kumar Dhanotiya9335d812017-06-30 16:57:20 +05306063 hdd_debug("Name = [%s] value = [%u]",
6064 CFG_ITO_REPEAT_COUNT_NAME,
6065 pHddCtx->config->ito_repeat_count);
Selvaraj, Sridhar57ce4df2017-05-29 18:30:49 +05306066 hdd_debug("Name = [%s] Value = [%u]",
6067 CFG_ROAM_DISALLOW_DURATION_NAME,
6068 pHddCtx->config->disallow_duration);
6069 hdd_debug("Name = [%s] Value = [%u]",
6070 CFG_ROAM_RSSI_CHANNEL_PENALIZATION_NAME,
6071 pHddCtx->config->rssi_channel_penalization);
6072 hdd_debug("Name = [%s] Value = [%u]",
6073 CFG_ROAM_NUM_DISALLOWED_APS_NAME,
6074 pHddCtx->config->num_disallowed_aps);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006075}
6076
6077
6078/**
6079 * hdd_update_mac_config() - update MAC address from cfg file
6080 * @pHddCtx: the pointer to hdd context
6081 *
6082 * It overwrites the MAC address if config file exist.
6083 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306084 * Return: QDF_STATUS_SUCCESS if the MAC address is found from cfg file
6085 * and overwritten, otherwise QDF_STATUS_E_INVAL
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006086 */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306087QDF_STATUS hdd_update_mac_config(hdd_context_t *pHddCtx)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006088{
6089 int status, i = 0;
6090 const struct firmware *fw = NULL;
6091 char *line, *buffer = NULL;
Yuanyuan Liu6043d3c2016-07-25 11:40:38 -07006092 char *temp = NULL;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006093 char *name, *value;
Anurag Chouhan6d760662016-02-20 16:05:43 +05306094 tCfgIniEntry macTable[QDF_MAX_CONCURRENCY_PERSONA];
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006095 tSirMacAddr customMacAddr;
6096
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306097 QDF_STATUS qdf_status = QDF_STATUS_SUCCESS;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006098
6099 memset(macTable, 0, sizeof(macTable));
6100 status = request_firmware(&fw, WLAN_MAC_FILE, pHddCtx->parent_dev);
6101
6102 if (status) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006103 hdd_err("request_firmware failed %d", status);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306104 qdf_status = QDF_STATUS_E_FAILURE;
6105 return qdf_status;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006106 }
6107 if (!fw || !fw->data || !fw->size) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08006108 hdd_alert("invalid firmware");
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306109 qdf_status = QDF_STATUS_E_INVAL;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006110 goto config_exit;
6111 }
6112
Yuanyuan Liu6043d3c2016-07-25 11:40:38 -07006113 hdd_debug("wlan_mac.bin size %zu", fw->size);
6114
Srinivas Girigowdae6b465b2017-03-30 18:27:25 -07006115 temp = qdf_mem_malloc(fw->size + 1);
Yuanyuan Liu6043d3c2016-07-25 11:40:38 -07006116
6117 if (temp == NULL) {
6118 hdd_err("fail to alloc memory");
6119 qdf_status = QDF_STATUS_E_NOMEM;
6120 goto config_exit;
6121 }
6122 buffer = temp;
6123 qdf_mem_copy(buffer, fw->data, fw->size);
Srinivas Girigowdafb20a952017-04-05 11:38:48 -07006124 buffer[fw->size] = 0x0;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006125
6126 /* data format:
6127 * Intf0MacAddress=00AA00BB00CC
6128 * Intf1MacAddress=00AA00BB00CD
6129 * END
6130 */
6131 while (buffer != NULL) {
6132 line = get_next_line(buffer);
6133 buffer = i_trim(buffer);
6134
6135 if (strlen((char *)buffer) == 0 || *buffer == '#') {
6136 buffer = line;
6137 continue;
6138 }
6139 if (strncmp(buffer, "END", 3) == 0)
6140 break;
6141
6142 name = buffer;
6143 buffer = strnchr(buffer, strlen(buffer), '=');
6144 if (buffer) {
6145 *buffer++ = '\0';
6146 i_trim(name);
6147 if (strlen(name) != 0) {
6148 buffer = i_trim(buffer);
6149 if (strlen(buffer) == 12) {
6150 value = buffer;
6151 macTable[i].name = name;
6152 macTable[i++].value = value;
Anurag Chouhan6d760662016-02-20 16:05:43 +05306153 if (i >= QDF_MAX_CONCURRENCY_PERSONA)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006154 break;
6155 }
6156 }
6157 }
6158 buffer = line;
6159 }
Anurag Chouhan6d760662016-02-20 16:05:43 +05306160 if (i <= QDF_MAX_CONCURRENCY_PERSONA) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006161 hdd_debug("%d Mac addresses provided", i);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006162 } else {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08006163 hdd_err("invalid number of Mac address provided, nMac = %d", i);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306164 qdf_status = QDF_STATUS_E_INVAL;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006165 goto config_exit;
6166 }
6167
6168 update_mac_from_string(pHddCtx, &macTable[0], i);
6169
Anurag Chouhan600c3a02016-03-01 10:33:54 +05306170 qdf_mem_copy(&customMacAddr,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006171 &pHddCtx->config->intfMacAddr[0].bytes[0],
6172 sizeof(tSirMacAddr));
6173 sme_set_custom_mac_addr(customMacAddr);
6174
6175config_exit:
Yuanyuan Liu6043d3c2016-07-25 11:40:38 -07006176 qdf_mem_free(temp);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006177 release_firmware(fw);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306178 return qdf_status;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006179}
6180
6181/**
Manjunathappa Prakash59f861d2016-04-21 10:33:31 -07006182 * hdd_disable_runtime_pm() - Override to disable runtime_pm.
6183 * @cfg_ini: Handle to struct hdd_config
6184 *
6185 * Return: None
6186 */
6187#ifdef FEATURE_RUNTIME_PM
6188static void hdd_disable_runtime_pm(struct hdd_config *cfg_ini)
6189{
6190 cfg_ini->runtime_pm = 0;
6191}
6192#else
6193static void hdd_disable_runtime_pm(struct hdd_config *cfg_ini)
6194{
6195}
6196#endif
6197
6198/**
6199 * hdd_disable_auto_shutdown() - Override to disable auto_shutdown.
6200 * @cfg_ini: Handle to struct hdd_config
6201 *
6202 * Return: None
6203 */
6204#ifdef FEATURE_WLAN_AUTO_SHUTDOWN
6205static void hdd_disable_auto_shutdown(struct hdd_config *cfg_ini)
6206{
6207 cfg_ini->WlanAutoShutdown = 0;
6208}
6209#else
6210static void hdd_disable_auto_shutdown(struct hdd_config *cfg_ini)
6211{
6212}
6213#endif
6214
6215/**
6216 * hdd_override_all_ps() - overrides to disables all the powersave features.
6217 * @hdd_ctx: Pointer to HDD context.
6218 * Overrides below powersave ini configurations.
6219 * gEnableImps=0
6220 * gEnableBmps=0
6221 * gRuntimePM=0
6222 * gWlanAutoShutdown = 0
6223 * gEnableSuspend=0
6224 * gEnablePowerSaveOffload=0
6225 * gEnableWoW=0
6226 *
6227 * Return: None
6228 */
6229static void hdd_override_all_ps(hdd_context_t *hdd_ctx)
6230{
6231 struct hdd_config *cfg_ini = hdd_ctx->config;
6232
6233 cfg_ini->fIsImpsEnabled = 0;
6234 cfg_ini->is_ps_enabled = 0;
6235 hdd_disable_runtime_pm(cfg_ini);
6236 hdd_disable_auto_shutdown(cfg_ini);
6237 cfg_ini->enablePowersaveOffload = 0;
6238 cfg_ini->wowEnable = 0;
6239}
6240
6241/**
Nirav Shahbd36b062016-07-18 11:12:59 +05306242 * hdd_set_rx_mode_value() - set rx_mode values
6243 * @hdd_ctx: hdd context
6244 *
6245 * Return: none
6246 */
Jeff Johnsonf1bf3a62016-10-05 15:48:13 -07006247static void hdd_set_rx_mode_value(hdd_context_t *hdd_ctx)
Nirav Shahbd36b062016-07-18 11:12:59 +05306248{
6249 if (hdd_ctx->config->rx_mode & CFG_ENABLE_RX_THREAD &&
6250 hdd_ctx->config->rx_mode & CFG_ENABLE_RPS) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006251 hdd_warn("rx_mode wrong configuration. Make it default");
Nirav Shahbd36b062016-07-18 11:12:59 +05306252 hdd_ctx->config->rx_mode = CFG_RX_MODE_DEFAULT;
6253 }
6254
6255 if (hdd_ctx->config->rx_mode & CFG_ENABLE_RX_THREAD)
6256 hdd_ctx->enableRxThread = true;
6257
6258 if (hdd_ctx->config->rx_mode & CFG_ENABLE_RPS)
6259 hdd_ctx->rps = true;
6260
6261 if (hdd_ctx->config->rx_mode & CFG_ENABLE_NAPI)
6262 hdd_ctx->napi_enable = true;
6263}
6264
6265/**
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006266 * hdd_parse_config_ini() - parse the ini configuration file
6267 * @pHddCtx: the pointer to hdd context
6268 *
6269 * This function reads the qcom_cfg.ini file and
6270 * parses each 'Name=Value' pair in the ini file
6271 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306272 * Return: QDF_STATUS_SUCCESS if the qcom_cfg.ini is correctly read,
6273 * otherwise QDF_STATUS_E_INVAL
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006274 */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306275QDF_STATUS hdd_parse_config_ini(hdd_context_t *pHddCtx)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006276{
6277 int status, i = 0;
6278 /** Pointer for firmware image data */
6279 const struct firmware *fw = NULL;
6280 char *buffer, *line, *pTemp = NULL;
6281 size_t size;
6282 char *name, *value;
6283 /* cfgIniTable is static to avoid excess stack usage */
6284 static tCfgIniEntry cfgIniTable[MAX_CFG_INI_ITEMS];
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306285 QDF_STATUS qdf_status = QDF_STATUS_SUCCESS;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006286
6287 memset(cfgIniTable, 0, sizeof(cfgIniTable));
6288
6289 status = request_firmware(&fw, WLAN_INI_FILE, pHddCtx->parent_dev);
6290
6291 if (status) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08006292 hdd_alert("request_firmware failed %d", status);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306293 qdf_status = QDF_STATUS_E_FAILURE;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006294 goto config_exit;
6295 }
6296 if (!fw || !fw->data || !fw->size) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08006297 hdd_alert("%s download failed", WLAN_INI_FILE);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306298 qdf_status = QDF_STATUS_E_FAILURE;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006299 goto config_exit;
6300 }
6301
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006302 hdd_debug("qcom_cfg.ini Size %zu", fw->size);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006303
Anurag Chouhan600c3a02016-03-01 10:33:54 +05306304 buffer = (char *)qdf_mem_malloc(fw->size);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006305
6306 if (NULL == buffer) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006307 hdd_err("qdf_mem_malloc failure");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006308 release_firmware(fw);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306309 return QDF_STATUS_E_NOMEM;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006310 }
6311 pTemp = buffer;
6312
Anurag Chouhan600c3a02016-03-01 10:33:54 +05306313 qdf_mem_copy((void *)buffer, (void *)fw->data, fw->size);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006314 size = fw->size;
6315
6316 while (buffer != NULL) {
6317 line = get_next_line(buffer);
6318 buffer = i_trim(buffer);
6319
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006320 hdd_debug("%s: item", buffer);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006321
6322 if (strlen((char *)buffer) == 0 || *buffer == '#') {
6323 buffer = line;
6324 continue;
Jeff Johnson68755312017-02-10 11:46:55 -08006325 }
6326
6327 if (strncmp(buffer, "END", 3) == 0)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006328 break;
Jeff Johnson68755312017-02-10 11:46:55 -08006329
6330 name = buffer;
6331 while (*buffer != '=' && *buffer != '\0')
6332 buffer++;
6333 if (*buffer != '\0') {
6334 *buffer++ = '\0';
6335 i_trim(name);
6336 if (strlen(name) != 0) {
6337 buffer = i_trim(buffer);
6338 if (strlen(buffer) > 0) {
6339 value = buffer;
6340 while (!i_isspace(*buffer)
6341 && *buffer != '\0')
6342 buffer++;
6343 *buffer = '\0';
6344 cfgIniTable[i].name = name;
6345 cfgIniTable[i++].value = value;
6346 if (i >= MAX_CFG_INI_ITEMS) {
6347 hdd_err("Number of items in %s > %d",
6348 WLAN_INI_FILE,
6349 MAX_CFG_INI_ITEMS);
6350 break;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006351 }
6352 }
6353 }
6354 }
6355 buffer = line;
6356 }
6357
6358 /* Loop through the registry table and apply all these configs */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306359 qdf_status = hdd_apply_cfg_ini(pHddCtx, cfgIniTable, i);
Nirav Shahbd36b062016-07-18 11:12:59 +05306360 hdd_set_rx_mode_value(pHddCtx);
Manjunathappa Prakash59f861d2016-04-21 10:33:31 -07006361 if (QDF_GLOBAL_MONITOR_MODE == cds_get_conparam())
6362 hdd_override_all_ps(pHddCtx);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006363
6364config_exit:
6365 release_firmware(fw);
Anurag Chouhan600c3a02016-03-01 10:33:54 +05306366 qdf_mem_free(pTemp);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306367 return qdf_status;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006368}
6369
6370/**
6371 * hdd_cfg_xlate_to_csr_phy_mode() - convert PHY mode
6372 * @dot11Mode: the mode to convert
6373 *
6374 * Convert the configuration PHY mode to CSR PHY mode
6375 *
6376 * Return: the CSR phy mode value
6377 */
Srinivas Girigowda2fb677c2017-03-25 15:35:34 -07006378eCsrPhyMode hdd_cfg_xlate_to_csr_phy_mode(enum hdd_dot11_mode dot11Mode)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006379{
Naveen Rawat10b1c152017-01-18 11:16:06 -08006380 if (cds_is_sub_20_mhz_enabled())
6381 return eCSR_DOT11_MODE_abg;
6382
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006383 switch (dot11Mode) {
6384 case (eHDD_DOT11_MODE_abg):
6385 return eCSR_DOT11_MODE_abg;
6386 case (eHDD_DOT11_MODE_11b):
6387 return eCSR_DOT11_MODE_11b;
6388 case (eHDD_DOT11_MODE_11g):
6389 return eCSR_DOT11_MODE_11g;
6390 default:
6391 case (eHDD_DOT11_MODE_11n):
6392 return eCSR_DOT11_MODE_11n;
6393 case (eHDD_DOT11_MODE_11g_ONLY):
6394 return eCSR_DOT11_MODE_11g_ONLY;
6395 case (eHDD_DOT11_MODE_11n_ONLY):
6396 return eCSR_DOT11_MODE_11n_ONLY;
6397 case (eHDD_DOT11_MODE_11b_ONLY):
6398 return eCSR_DOT11_MODE_11b_ONLY;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006399 case (eHDD_DOT11_MODE_11ac_ONLY):
6400 return eCSR_DOT11_MODE_11ac_ONLY;
6401 case (eHDD_DOT11_MODE_11ac):
6402 return eCSR_DOT11_MODE_11ac;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006403 case (eHDD_DOT11_MODE_AUTO):
6404 return eCSR_DOT11_MODE_AUTO;
6405 case (eHDD_DOT11_MODE_11a):
6406 return eCSR_DOT11_MODE_11a;
Krishna Kumaar Natarajan4f1d7722017-03-03 21:12:51 -08006407 case (eHDD_DOT11_MODE_11ax_ONLY):
6408 return eCSR_DOT11_MODE_11ax_ONLY;
6409 case (eHDD_DOT11_MODE_11ax):
6410 return eCSR_DOT11_MODE_11ax;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006411 }
6412
6413}
6414
6415/**
6416 * hdd_set_idle_ps_config() - set idle power save configuration
6417 * @pHddCtx: the pointer to hdd context
6418 * @val: the value to configure
6419 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306420 * Return: QDF_STATUS_SUCCESS if command set correctly,
6421 * otherwise the QDF_STATUS return from SME layer
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006422 */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306423QDF_STATUS hdd_set_idle_ps_config(hdd_context_t *pHddCtx, uint32_t val)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006424{
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306425 QDF_STATUS status = QDF_STATUS_SUCCESS;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006426
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006427 hdd_debug("hdd_set_idle_ps_config: Enter Val %d", val);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006428
Kiran Kumar Lokerefc2803d2016-01-11 19:31:38 -08006429 status = sme_set_idle_powersave_config(pHddCtx->pcds_context,
6430 pHddCtx->hHal, val);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306431 if (QDF_STATUS_SUCCESS != status)
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08006432 hdd_err("Fail to Set Idle PS Config val %d", val);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006433 return status;
6434}
6435
6436/**
6437 * hdd_set_fine_time_meas_cap() - set fine timing measurement capability
6438 * @hdd_ctx: HDD context
6439 * @sme_config: pointer to SME config
6440 *
6441 * This function is used to pass fine timing measurement capability coming
6442 * from INI to SME. This function make sure that configure INI is supported
6443 * by the device. Use bit mask to mask out the unsupported capabilities.
6444 *
6445 * Return: None
6446 */
6447static void hdd_set_fine_time_meas_cap(hdd_context_t *hdd_ctx,
6448 tSmeConfigParams *sme_config)
6449{
6450 struct hdd_config *config = hdd_ctx->config;
6451 uint32_t capability = config->fine_time_meas_cap;
6452
6453 /* Make sure only supported capabilities are enabled in INI */
6454 capability &= CFG_FINE_TIME_MEAS_CAPABILITY_MAX;
Krunal Soni1878d3a2016-01-14 13:00:44 -08006455 sme_config->csrConfig.fine_time_meas_cap = capability;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006456
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006457 hdd_debug("fine time meas capability - INI: %04x Enabled: %04x",
Krunal Soni1878d3a2016-01-14 13:00:44 -08006458 config->fine_time_meas_cap,
6459 sme_config->csrConfig.fine_time_meas_cap);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006460}
6461
6462/**
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006463 * hdd_convert_string_to_u8_array() - used to convert string into u8 array
6464 * @str: String to be converted
6465 * @hex_array: Array where converted value is stored
6466 * @len: Length of the populated array
6467 * @array_max_len: Maximum length of the array
6468 * @to_hex: true, if conversion required for hex string
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006469 *
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006470 * This API is called to convert string (each byte separated by
6471 * a comma) into an u8 array
6472 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306473 * Return: QDF_STATUS
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006474 */
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006475
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306476static QDF_STATUS hdd_convert_string_to_array(char *str, uint8_t *array,
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006477 uint8_t *len, uint8_t array_max_len, bool to_hex)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006478{
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006479 char *format, *s = str;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006480
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006481 if (str == NULL || array == NULL || len == NULL)
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306482 return QDF_STATUS_E_INVAL;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006483
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006484 format = (to_hex) ? "%02x" : "%d";
6485
6486 *len = 0;
6487 while ((s != NULL) && (*len < array_max_len)) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006488 int val;
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006489 /* Increment length only if sscanf successfully extracted
6490 * one element. Any other return value means error.
Jeff Johnson78d88a82017-01-12 09:50:54 -08006491 * Ignore it.
6492 */
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006493 if (sscanf(s, format, &val) == 1) {
6494 array[*len] = (uint8_t) val;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006495 *len += 1;
6496 }
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006497
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006498 s = strpbrk(s, ",");
6499 if (s)
6500 s++;
6501 }
6502
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306503 return QDF_STATUS_SUCCESS;
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006504}
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006505
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006506/**
6507 * hdd_hex_string_to_u8_array() - used to convert hex string into u8 array
6508 * @str: Hexadecimal string
6509 * @hex_array: Array where converted value is stored
6510 * @len: Length of the populated array
6511 * @array_max_len: Maximum length of the array
6512 *
6513 * This API is called to convert hexadecimal string (each byte separated by
6514 * a comma) into an u8 array
6515 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306516 * Return: QDF_STATUS
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006517 */
Jeff Johnsonf1bf3a62016-10-05 15:48:13 -07006518static QDF_STATUS hdd_hex_string_to_u8_array(char *str, uint8_t *hex_array,
6519 uint8_t *len,
6520 uint8_t array_max_len)
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006521{
6522 return hdd_convert_string_to_array(str, hex_array, len,
6523 array_max_len, true);
6524}
6525
6526/**
6527 * hdd_string_to_u8_array() - used to convert decimal string into u8 array
6528 * @str: Decimal string
6529 * @hex_array: Array where converted value is stored
6530 * @len: Length of the populated array
6531 * @array_max_len: Maximum length of the array
6532 *
6533 * This API is called to convert decimal string (each byte separated by
6534 * a comma) into an u8 array
6535 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306536 * Return: QDF_STATUS
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006537 */
6538
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306539QDF_STATUS hdd_string_to_u8_array(char *str, uint8_t *array,
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006540 uint8_t *len, uint8_t array_max_len)
6541{
6542 return hdd_convert_string_to_array(str, array, len,
6543 array_max_len, false);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006544}
6545
6546/**
Nirav Shahbd36b062016-07-18 11:12:59 +05306547 * hdd_hex_string_to_u16_array() - convert a hex string to a uint16 array
6548 * @str: input string
6549 * @int_array: pointer to input array of type uint16
6550 * @len: pointer to number of elements which the function adds to the array
6551 * @int_array_max_len: maximum number of elements in input uint16 array
6552 *
6553 * This function is used to convert a space separated hex string to an array of
6554 * uint16_t. For example, an input string str = "a b c d" would be converted to
6555 * a unint16 array, int_array = {0xa, 0xb, 0xc, 0xd}, *len = 4.
6556 * This assumes that input value int_array_max_len >= 4.
6557 *
6558 * Return: QDF_STATUS_SUCCESS - if the conversion is successful
6559 * non zero value - if the conversion is a failure
6560 */
6561QDF_STATUS hdd_hex_string_to_u16_array(char *str,
6562 uint16_t *int_array, uint8_t *len, uint8_t int_array_max_len)
6563{
6564 char *s = str;
6565 uint32_t val = 0;
6566
6567 if (str == NULL || int_array == NULL || len == NULL)
6568 return QDF_STATUS_E_INVAL;
6569
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006570 hdd_debug("str %p intArray %p intArrayMaxLen %d",
Nirav Shahbd36b062016-07-18 11:12:59 +05306571 s, int_array, int_array_max_len);
6572
6573 *len = 0;
6574
6575 while ((s != NULL) && (*len < int_array_max_len)) {
6576 /*
6577 * Increment length only if sscanf successfully extracted one
6578 * element. Any other return value means error. Ignore it.
6579 */
6580 if (sscanf(s, "%x", &val) == 1) {
6581 int_array[*len] = (uint16_t) val;
6582 hdd_debug("s %p val %x intArray[%d]=0x%x",
6583 s, val, *len, int_array[*len]);
6584 *len += 1;
6585 }
6586 s = strpbrk(s, " ");
6587 if (s)
6588 s++;
6589 }
6590 return QDF_STATUS_SUCCESS;
6591}
6592
Nirav Shahbd36b062016-07-18 11:12:59 +05306593/**
Krunal Soni52198e42016-09-26 13:53:09 -07006594 * hdd_update_ht_cap_in_cfg() - to update HT cap in global CFG
Krunal Sonidf0f8742016-09-26 14:56:31 -07006595 * @hdd_ctx: pointer to hdd context
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006596 *
Krunal Soni52198e42016-09-26 13:53:09 -07006597 * This API will update the HT config in CFG after taking intersection
6598 * of INI and firmware capabilities provided reading CFG
6599 *
6600 * Return: true or false
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006601 */
Krunal Sonidf0f8742016-09-26 14:56:31 -07006602static bool hdd_update_ht_cap_in_cfg(hdd_context_t *hdd_ctx)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006603{
Krunal Soni5c390162016-09-26 15:07:05 -07006604 uint32_t val32;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006605 uint16_t val16;
Krunal Soni5c390162016-09-26 15:07:05 -07006606 bool status = true;
Krunal Sonidf0f8742016-09-26 14:56:31 -07006607 tSirMacHTCapabilityInfo *ht_cap_info;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006608
Krunal Sonidf0f8742016-09-26 14:56:31 -07006609 if (sme_cfg_get_int(hdd_ctx->hHal, WNI_CFG_HT_CAP_INFO,
Krunal Soni5c390162016-09-26 15:07:05 -07006610 &val32) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306611 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006612 status = false;
Krunal Soni5c390162016-09-26 15:07:05 -07006613 hdd_err("Could not get WNI_CFG_HT_CAP_INFO");
Sandeep Puligilla607f34a2016-05-25 14:37:47 -07006614 }
Krunal Soni5c390162016-09-26 15:07:05 -07006615 val16 = (uint16_t) val32;
Krunal Sonidf0f8742016-09-26 14:56:31 -07006616 ht_cap_info = (tSirMacHTCapabilityInfo *) &val16;
Krunal Sonia2c0e412017-05-04 14:12:41 +05306617 ht_cap_info->advCodingCap &= hdd_ctx->config->enable_rx_ldpc;
Krunal Soni5c390162016-09-26 15:07:05 -07006618 ht_cap_info->rxSTBC = QDF_MIN(ht_cap_info->rxSTBC,
6619 hdd_ctx->config->enableRxSTBC);
6620 ht_cap_info->txSTBC &= hdd_ctx->config->enableTxSTBC;
6621 ht_cap_info->shortGI20MHz &= hdd_ctx->config->ShortGI20MhzEnable;
6622 ht_cap_info->shortGI40MHz &= hdd_ctx->config->ShortGI40MhzEnable;
6623 val32 = val16;
6624 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_HT_CAP_INFO, val32) ==
6625 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006626 status = false;
Krunal Soni5c390162016-09-26 15:07:05 -07006627 hdd_err("Could not set WNI_CFG_HT_CAP_INFO");
Krunal Soni52198e42016-09-26 13:53:09 -07006628 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07006629 return status;
Krunal Soni52198e42016-09-26 13:53:09 -07006630}
6631
6632/**
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006633 * hdd_update_vht_cap_in_cfg() - to update VHT cap in global CFG
Krunal Sonidf0f8742016-09-26 14:56:31 -07006634 * @hdd_ctx: pointer to hdd context
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006635 *
6636 * This API will update the VHT config in CFG after taking intersection
6637 * of INI and firmware capabilities provided reading CFG
6638 *
6639 * Return: true or false
6640 */
Krunal Sonidf0f8742016-09-26 14:56:31 -07006641static bool hdd_update_vht_cap_in_cfg(hdd_context_t *hdd_ctx)
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006642{
Krunal Sonidf0f8742016-09-26 14:56:31 -07006643 bool status = true;
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006644 uint32_t val;
Krunal Sonidf0f8742016-09-26 14:56:31 -07006645 struct hdd_config *config = hdd_ctx->config;
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006646
Krunal Sonidf0f8742016-09-26 14:56:31 -07006647 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_VHT_ENABLE_TXBF_20MHZ,
6648 config->enableTxBFin20MHz) ==
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006649 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006650 status = false;
6651 hdd_err("Couldn't set value for WNI_CFG_VHT_ENABLE_TXBF_20MHZ");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006652 }
6653 /* Based on cfg.ini, update the Basic MCS set, RX/TX MCS map
6654 * in the cfg.dat. Valid values are 0(MCS0-7), 1(MCS0-8), 2(MCS0-9)
6655 * we update only the least significant 2 bits in the
6656 * corresponding fields.
6657 */
Krunal Sonidf0f8742016-09-26 14:56:31 -07006658 if ((config->dot11Mode == eHDD_DOT11_MODE_AUTO) ||
6659 (config->dot11Mode == eHDD_DOT11_MODE_11ac_ONLY) ||
6660 (config->dot11Mode == eHDD_DOT11_MODE_11ac)) {
Kiran Kumar Lokeree25d3fc2017-07-21 15:37:04 -07006661 /* Currently shortGI40Mhz is used for shortGI80Mhz and 160MHz*/
Krunal Sonidf0f8742016-09-26 14:56:31 -07006662 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_VHT_SHORT_GI_80MHZ,
6663 config->ShortGI40MhzEnable) == QDF_STATUS_E_FAILURE) {
6664 status = false;
6665 hdd_err("Couldn't pass WNI_VHT_SHORT_GI_80MHZ to CFG");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006666 }
Kiran Kumar Lokeree25d3fc2017-07-21 15:37:04 -07006667
6668 if (sme_cfg_set_int(hdd_ctx->hHal,
6669 WNI_CFG_VHT_SHORT_GI_160_AND_80_PLUS_80MHZ,
6670 config->ShortGI40MhzEnable) == QDF_STATUS_E_FAILURE) {
6671 status = false;
6672 hdd_err("Couldn't pass SHORT_GI_160MHZ to CFG");
6673 }
6674
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07006675 /* Hardware is capable of doing
6676 * 128K AMPDU in 11AC mode
6677 */
Krunal Sonidf0f8742016-09-26 14:56:31 -07006678 if (sme_cfg_set_int(hdd_ctx->hHal,
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006679 WNI_CFG_VHT_AMPDU_LEN_EXPONENT,
Krunal Sonidf0f8742016-09-26 14:56:31 -07006680 config->fVhtAmpduLenExponent) ==
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006681 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006682 status = false;
6683 hdd_err("Couldn't pass on WNI_CFG_VHT_AMPDU_LEN_EXPONENT to CFG");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006684 }
6685 /* Change MU Bformee only when TxBF is enabled */
Krunal Sonidf0f8742016-09-26 14:56:31 -07006686 if (config->enableTxBF) {
6687 sme_cfg_get_int(hdd_ctx->hHal,
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006688 WNI_CFG_VHT_MU_BEAMFORMEE_CAP, &val);
6689
Krunal Sonidf0f8742016-09-26 14:56:31 -07006690 if (val != config->enableMuBformee) {
6691 if (sme_cfg_set_int(hdd_ctx->hHal,
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006692 WNI_CFG_VHT_MU_BEAMFORMEE_CAP,
Krunal Sonidf0f8742016-09-26 14:56:31 -07006693 config->enableMuBformee
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006694 ) == QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006695 status = false;
6696 hdd_err("Couldn't pass on WNI_CFG_VHT_MU_BEAMFORMEE_CAP to CFG");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006697 }
6698 }
6699 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07006700 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_VHT_MAX_MPDU_LENGTH,
6701 config->vhtMpduLen) == QDF_STATUS_E_FAILURE) {
6702 status = false;
6703 hdd_err("Couldn't pass on WNI_CFG_VHT_MAX_MPDU_LENGTH to CFG");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006704 }
6705
Krunal Sonidf0f8742016-09-26 14:56:31 -07006706 if (config->enable2x2 && config->enable_su_tx_bformer) {
6707 if (sme_cfg_set_int(hdd_ctx->hHal,
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006708 WNI_CFG_VHT_SU_BEAMFORMER_CAP,
Krunal Sonidf0f8742016-09-26 14:56:31 -07006709 config->enable_su_tx_bformer) ==
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006710 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006711 status = false;
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006712 hdd_err("set SU_BEAMFORMER_CAP to CFG failed");
6713 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07006714 if (sme_cfg_set_int(hdd_ctx->hHal,
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006715 WNI_CFG_VHT_NUM_SOUNDING_DIMENSIONS,
6716 NUM_OF_SOUNDING_DIMENSIONS) ==
6717 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006718 status = false;
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006719 hdd_err("failed to set NUM_OF_SOUNDING_DIM");
6720 }
6721 }
6722 }
6723
Krunal Sonidf0f8742016-09-26 14:56:31 -07006724 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_VHT_RXSTBC,
6725 config->enableRxSTBC) == QDF_STATUS_E_FAILURE) {
6726 status = false;
6727 hdd_err("Couldn't pass on WNI_CFG_VHT_RXSTBC to CFG");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006728 }
6729
Krunal Sonidf0f8742016-09-26 14:56:31 -07006730 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_VHT_TXSTBC,
6731 config->enableTxSTBC) == QDF_STATUS_E_FAILURE) {
6732 status = false;
6733 hdd_err("Couldn't pass on WNI_CFG_VHT_TXSTBC to CFG");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006734 }
6735
Krunal Soni5c390162016-09-26 15:07:05 -07006736 if (sme_cfg_get_int(hdd_ctx->hHal, WNI_CFG_VHT_LDPC_CODING_CAP, &val) ==
6737 QDF_STATUS_E_FAILURE) {
6738 status &= false;
6739 hdd_err("Could not get WNI_CFG_VHT_LDPC_CODING_CAP");
6740 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07006741 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_VHT_LDPC_CODING_CAP,
Krunal Sonia2c0e412017-05-04 14:12:41 +05306742 config->enable_rx_ldpc & val) == QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006743 status = false;
6744 hdd_err("Couldn't pass on WNI_CFG_VHT_LDPC_CODING_CAP to CFG");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006745 }
6746
Krunal Sonidf0f8742016-09-26 14:56:31 -07006747 if (sme_cfg_set_int(hdd_ctx->hHal,
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006748 WNI_CFG_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED,
Krunal Sonidf0f8742016-09-26 14:56:31 -07006749 config->txBFCsnValue) ==
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006750 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006751 status = false;
6752 hdd_err("Couldn't pass on WNI_CFG_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED to CFG");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006753 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07006754 return status;
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006755
6756}
6757
6758/**
Krunal Sonidf0f8742016-09-26 14:56:31 -07006759 * hdd_update_config_cfg() - API to update INI setting based on hw/fw caps
6760 * @hdd_ctx: pointer to hdd_ctx
Krunal Soni52198e42016-09-26 13:53:09 -07006761 *
Krunal Sonidf0f8742016-09-26 14:56:31 -07006762 * This API reads the cfg file which is updated with hardware/firmware
6763 * capabilities and intersect it with INI setting provided by user. After
6764 * taking intersection it adjust cfg it self. For example, if user has enabled
6765 * RX LDPC through INI but hardware/firmware doesn't support it then disable
6766 * it in CFG file here.
6767 *
6768 * Return: true or false based on outcome.
Krunal Soni52198e42016-09-26 13:53:09 -07006769 */
Krunal Sonidf0f8742016-09-26 14:56:31 -07006770bool hdd_update_config_cfg(hdd_context_t *hdd_ctx)
Krunal Soni52198e42016-09-26 13:53:09 -07006771{
Krunal Sonidf0f8742016-09-26 14:56:31 -07006772 bool status = true;
Krunal Soni52198e42016-09-26 13:53:09 -07006773 uint32_t val;
Krunal Sonidf0f8742016-09-26 14:56:31 -07006774 struct hdd_config *config = hdd_ctx->config;
Krunal Soni52198e42016-09-26 13:53:09 -07006775
6776 /*
6777 * During the initialization both 2G and 5G capabilities should be same.
6778 * So read 5G HT capablity and update 2G and 5G capablities.
6779 */
Krunal Sonidf0f8742016-09-26 14:56:31 -07006780 if (!hdd_update_ht_cap_in_cfg(hdd_ctx)) {
6781 status = false;
6782 hdd_err("Couldn't set HT CAP in cfg");
Krunal Soni52198e42016-09-26 13:53:09 -07006783 }
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006784
Krunal Sonidf0f8742016-09-26 14:56:31 -07006785 if (!hdd_update_vht_cap_in_cfg(hdd_ctx)) {
6786 status = false;
6787 hdd_err("Couldn't set VHT CAP in cfg");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006788 }
6789
Krishna Kumaar Natarajan90bb6f12017-03-03 21:05:52 -08006790 if (0 != hdd_update_he_cap_in_cfg(hdd_ctx)) {
6791 status = false;
6792 hdd_err("Couldn't set HE CAP in cfg");
6793 }
6794
Krunal Sonidf0f8742016-09-26 14:56:31 -07006795 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_FIXED_RATE, config->TxRate)
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306796 == QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006797 status = false;
6798 hdd_err("Couldn't pass on WNI_CFG_FIXED_RATE to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006799 }
6800
Krunal Sonidf0f8742016-09-26 14:56:31 -07006801 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_MAX_RX_AMPDU_FACTOR,
6802 config->MaxRxAmpduFactor) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306803 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006804 status = false;
6805 hdd_err("Couldn't pass on WNI_CFG_HT_AMPDU_PARAMS_MAX_RX_AMPDU_FACTOR to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006806 }
6807
Krunal Sonidf0f8742016-09-26 14:56:31 -07006808 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_MPDU_DENSITY,
6809 config->ht_mpdu_density) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306810 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006811 status = false;
6812 hdd_err("Couldn't pass on WNI_CFG_MPDU_DENSITY to CFG");
Krishna Kumaar Natarajan22b59a72015-11-23 18:54:58 -08006813 }
6814
Krunal Sonidf0f8742016-09-26 14:56:31 -07006815 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_SHORT_PREAMBLE,
6816 config->fIsShortPreamble) == QDF_STATUS_E_FAILURE) {
6817 status = false;
6818 hdd_err("Couldn't pass on WNI_CFG_SHORT_PREAMBLE to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006819 }
6820
Krunal Sonidf0f8742016-09-26 14:56:31 -07006821 if (sme_cfg_set_int(hdd_ctx->hHal,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006822 WNI_CFG_PASSIVE_MINIMUM_CHANNEL_TIME,
Krunal Sonidf0f8742016-09-26 14:56:31 -07006823 config->nPassiveMinChnTime)
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306824 == QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006825 status = false;
6826 hdd_err("Couldn't pass on WNI_CFG_PASSIVE_MINIMUM_CHANNEL_TIME to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006827 }
6828
Krunal Sonidf0f8742016-09-26 14:56:31 -07006829 if (sme_cfg_set_int(hdd_ctx->hHal,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006830 WNI_CFG_PASSIVE_MAXIMUM_CHANNEL_TIME,
Krunal Sonidf0f8742016-09-26 14:56:31 -07006831 config->nPassiveMaxChnTime)
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306832 == QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006833 status = false;
6834 hdd_err("Couldn't pass on WNI_CFG_PASSIVE_MAXIMUM_CHANNEL_TIME to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006835 }
6836
Krunal Sonidf0f8742016-09-26 14:56:31 -07006837 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_BEACON_INTERVAL,
6838 config->nBeaconInterval) == QDF_STATUS_E_FAILURE) {
6839 status = false;
6840 hdd_err("Couldn't pass on WNI_CFG_BEACON_INTERVAL to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006841 }
6842
Krunal Sonidf0f8742016-09-26 14:56:31 -07006843 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_MAX_PS_POLL,
6844 config->nMaxPsPoll) == QDF_STATUS_E_FAILURE) {
6845 status = false;
6846 hdd_err("Couldn't pass on WNI_CFG_MAX_PS_POLL to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006847 }
6848
Krunal Sonidf0f8742016-09-26 14:56:31 -07006849 if (sme_cfg_set_int (hdd_ctx->hHal, WNI_CFG_LOW_GAIN_OVERRIDE,
6850 config->fIsLowGainOverride) == QDF_STATUS_E_FAILURE) {
6851 status = false;
6852 hdd_err("Couldn't pass on WNI_CFG_LOW_GAIN_OVERRIDE to HAL");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006853 }
6854
Krunal Sonidf0f8742016-09-26 14:56:31 -07006855 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_RSSI_FILTER_PERIOD,
6856 config->nRssiFilterPeriod) == QDF_STATUS_E_FAILURE) {
6857 status = false;
6858 hdd_err("Couldn't pass on WNI_CFG_RSSI_FILTER_PERIOD to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006859 }
6860
Krunal Sonidf0f8742016-09-26 14:56:31 -07006861 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_IGNORE_DTIM,
6862 config->fIgnoreDtim) == QDF_STATUS_E_FAILURE) {
6863 status = false;
6864 hdd_err("Couldn't pass on WNI_IGNORE_DTIM to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006865 }
6866
Krunal Sonidf0f8742016-09-26 14:56:31 -07006867 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_PS_ENABLE_HEART_BEAT,
6868 config->fEnableFwHeartBeatMonitoring)
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306869 == QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006870 status = false;
6871 hdd_err("Couldn't pass on WNI_CFG_PS_HEART_BEAT to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006872 }
6873
Krunal Sonidf0f8742016-09-26 14:56:31 -07006874 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_PS_ENABLE_BCN_FILTER,
6875 config->fEnableFwBeaconFiltering) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306876 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006877 status = false;
6878 hdd_err("Couldn't pass on WNI_CFG_PS_BCN_FILTER to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006879 }
6880
Krunal Sonidf0f8742016-09-26 14:56:31 -07006881 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_PS_ENABLE_RSSI_MONITOR,
6882 config->fEnableFwRssiMonitoring) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306883 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006884 status = false;
6885 hdd_err("Couldn't pass on WNI_CFG_PS_RSSI_MONITOR to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006886 }
6887
Krunal Sonidf0f8742016-09-26 14:56:31 -07006888 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_PS_DATA_INACTIVITY_TIMEOUT,
6889 config->nDataInactivityTimeout) == QDF_STATUS_E_FAILURE) {
6890 status = false;
6891 hdd_err("Couldn't pass on WNI_CFG_PS_DATA_INACTIVITY_TIMEOUT to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006892 }
6893
Mukul Sharmaed92f2f2017-04-20 00:06:28 +05306894 if (sme_cfg_set_int(hdd_ctx->hHal,
6895 WNI_CFG_PS_WOW_DATA_INACTIVITY_TIMEOUT,
6896 config->wow_data_inactivity_timeout) == QDF_STATUS_E_FAILURE) {
6897 status = false;
6898 hdd_err("Fail to pass WNI_CFG_PS_WOW_DATA_INACTIVITY_TO CFG");
6899 }
6900
Krunal Sonidf0f8742016-09-26 14:56:31 -07006901 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_ENABLE_LTE_COEX,
6902 config->enableLTECoex) == QDF_STATUS_E_FAILURE) {
6903 status = false;
6904 hdd_err("Couldn't pass on WNI_CFG_ENABLE_LTE_COEX to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006905 }
6906
Krunal Sonidf0f8742016-09-26 14:56:31 -07006907 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_AP_KEEP_ALIVE_TIMEOUT,
6908 config->apKeepAlivePeriod) == QDF_STATUS_E_FAILURE) {
6909 status = false;
6910 hdd_err("Couldn't pass on WNI_CFG_AP_KEEP_ALIVE_TIMEOUT to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006911 }
6912
Krunal Sonidf0f8742016-09-26 14:56:31 -07006913 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_GO_KEEP_ALIVE_TIMEOUT,
6914 config->goKeepAlivePeriod) == QDF_STATUS_E_FAILURE) {
6915 status = false;
6916 hdd_err("Couldn't pass on WNI_CFG_GO_KEEP_ALIVE_TIMEOUT to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006917 }
6918
Krunal Sonidf0f8742016-09-26 14:56:31 -07006919 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_AP_LINK_MONITOR_TIMEOUT,
6920 config->apLinkMonitorPeriod) == QDF_STATUS_E_FAILURE) {
6921 status = false;
6922 hdd_err("Couldn't pass on WNI_CFG_AP_LINK_MONITOR_TIMEOUT to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006923 }
6924
Krunal Sonidf0f8742016-09-26 14:56:31 -07006925 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_GO_LINK_MONITOR_TIMEOUT,
6926 config->goLinkMonitorPeriod) == QDF_STATUS_E_FAILURE) {
6927 status = false;
6928 hdd_err("Couldn't pass on WNI_CFG_GO_LINK_MONITOR_TIMEOUT to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006929 }
6930
Krunal Sonidf0f8742016-09-26 14:56:31 -07006931 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_SINGLE_TID_RC,
6932 config->bSingleTidRc) == QDF_STATUS_E_FAILURE) {
6933 status = false;
6934 hdd_err("Couldn't pass on WNI_CFG_SINGLE_TID_RC to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006935 }
6936
Krunal Sonidf0f8742016-09-26 14:56:31 -07006937 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TELE_BCN_WAKEUP_EN,
6938 config->teleBcnWakeupEn) == QDF_STATUS_E_FAILURE) {
6939 status = false;
6940 hdd_err("Couldn't pass on WNI_CFG_TELE_BCN_WAKEUP_EN to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006941 }
6942
Krunal Sonidf0f8742016-09-26 14:56:31 -07006943 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TELE_BCN_TRANS_LI,
6944 config->nTeleBcnTransListenInterval) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306945 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006946 status = false;
6947 hdd_err("Couldn't pass on WNI_CFG_TELE_BCN_TRANS_LI to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006948 }
6949
Krunal Sonidf0f8742016-09-26 14:56:31 -07006950 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TELE_BCN_MAX_LI,
6951 config->nTeleBcnMaxListenInterval) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306952 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006953 status = false;
6954 hdd_err("Couldn't pass on WNI_CFG_TELE_BCN_MAX_LI to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006955 }
6956
Krunal Sonidf0f8742016-09-26 14:56:31 -07006957 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TELE_BCN_TRANS_LI_IDLE_BCNS,
6958 config->nTeleBcnTransLiNumIdleBeacons) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306959 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006960 status = false;
6961 hdd_err("Couldn't pass on WNI_CFG_TELE_BCN_TRANS_LI_IDLE_BCNS to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006962 }
6963
Krunal Sonidf0f8742016-09-26 14:56:31 -07006964 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TELE_BCN_MAX_LI_IDLE_BCNS,
6965 config->nTeleBcnMaxLiNumIdleBeacons) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306966 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006967 status = false;
6968 hdd_err("Couldn't pass on WNI_CFG_TELE_BCN_MAX_LI_IDLE_BCNS to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006969 }
6970
Krunal Sonidf0f8742016-09-26 14:56:31 -07006971 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_RF_SETTLING_TIME_CLK,
6972 config->rfSettlingTimeUs) == QDF_STATUS_E_FAILURE) {
6973 status = false;
6974 hdd_err("Couldn't pass on WNI_CFG_RF_SETTLING_TIME_CLK to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006975 }
6976
Krunal Sonidf0f8742016-09-26 14:56:31 -07006977 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_INFRA_STA_KEEP_ALIVE_PERIOD,
6978 config->infraStaKeepAlivePeriod) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306979 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006980 status = false;
6981 hdd_err("Couldn't pass on WNI_CFG_INFRA_STA_KEEP_ALIVE_PERIOD to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006982 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07006983 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_DYNAMIC_PS_POLL_VALUE,
6984 config->dynamicPsPollValue) == QDF_STATUS_E_FAILURE) {
6985 status = false;
6986 hdd_err("Couldn't pass on WNI_CFG_DYNAMIC_PS_POLL_VALUE to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006987 }
6988
Krunal Sonidf0f8742016-09-26 14:56:31 -07006989 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_PS_NULLDATA_AP_RESP_TIMEOUT,
6990 config->nNullDataApRespTimeout) == QDF_STATUS_E_FAILURE) {
6991 status = false;
6992 hdd_err("Couldn't pass on WNI_CFG_PS_NULLDATA_DELAY_TIMEOUT to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006993 }
6994
Krunal Sonidf0f8742016-09-26 14:56:31 -07006995 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_AP_DATA_AVAIL_POLL_PERIOD,
6996 config->apDataAvailPollPeriodInMs) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306997 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006998 status = false;
6999 hdd_err("Couldn't pass on WNI_CFG_AP_DATA_AVAIL_POLL_PERIOD to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007000 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07007001 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_FRAGMENTATION_THRESHOLD,
7002 config->FragmentationThreshold) == QDF_STATUS_E_FAILURE) {
7003 status = false;
7004 hdd_err("Couldn't pass on WNI_CFG_FRAGMENTATION_THRESHOLD to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007005 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07007006 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_RTS_THRESHOLD,
7007 config->RTSThreshold) == QDF_STATUS_E_FAILURE) {
7008 status = false;
7009 hdd_err("Couldn't pass on WNI_CFG_RTS_THRESHOLD to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007010 }
7011
Krunal Sonidf0f8742016-09-26 14:56:31 -07007012 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_11D_ENABLED,
7013 config->Is11dSupportEnabled) == QDF_STATUS_E_FAILURE) {
7014 status = false;
7015 hdd_err("Couldn't pass on WNI_CFG_11D_ENABLED to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007016 }
7017
Krunal Sonidf0f8742016-09-26 14:56:31 -07007018 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_DFS_MASTER_ENABLED,
7019 config->enableDFSMasterCap) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307020 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007021 status = false;
7022 hdd_err("Failure: Couldn't set value for WNI_CFG_DFS_MASTER_ENABLED");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007023 }
7024
Krunal Sonidf0f8742016-09-26 14:56:31 -07007025 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_HEART_BEAT_THRESHOLD,
7026 config->HeartbeatThresh24) == QDF_STATUS_E_FAILURE) {
7027 status = false;
7028 hdd_err("Couldn't pass on WNI_CFG_HEART_BEAT_THRESHOLD to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007029 }
7030
Krunal Sonidf0f8742016-09-26 14:56:31 -07007031 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_ENABLE_MC_ADDR_LIST,
7032 config->fEnableMCAddrList) == QDF_STATUS_E_FAILURE) {
7033 status = false;
7034 hdd_err("Couldn't pass on WNI_CFG_ENABLE_MC_ADDR_LIST to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007035 }
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007036
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007037#ifdef WLAN_SOFTAP_VSTA_FEATURE
Krunal Sonidf0f8742016-09-26 14:56:31 -07007038 if (config->fEnableVSTASupport) {
7039 sme_cfg_get_int(hdd_ctx->hHal, WNI_CFG_ASSOC_STA_LIMIT, &val);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007040 if (val <= WNI_CFG_ASSOC_STA_LIMIT_STADEF)
7041 val = WNI_CFG_ASSOC_STA_LIMIT_STAMAX;
7042 } else {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007043 val = config->maxNumberOfPeers;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007044
7045 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07007046 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_ASSOC_STA_LIMIT, val) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307047 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007048 status = false;
7049 hdd_err("Couldn't pass on WNI_CFG_ASSOC_STA_LIMIT to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007050 }
7051#endif
Krunal Sonidf0f8742016-09-26 14:56:31 -07007052 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_ENABLE_LPWR_IMG_TRANSITION,
7053 config->enableLpwrImgTransition)
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307054 == QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007055 status = false;
7056 hdd_err("Couldn't pass on WNI_CFG_ENABLE_LPWR_IMG_TRANSITION to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007057 }
7058
Krunal Sonidf0f8742016-09-26 14:56:31 -07007059 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_ENABLE_MCC_ADAPTIVE_SCHED,
7060 config->enableMCCAdaptiveScheduler) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307061 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007062 status = false;
7063 hdd_err("Couldn't pass on WNI_CFG_ENABLE_MCC_ADAPTIVE_SCHED to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007064 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07007065 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_DISABLE_LDPC_WITH_TXBF_AP,
7066 config->disableLDPCWithTxbfAP) == QDF_STATUS_E_FAILURE) {
7067 status = false;
7068 hdd_err("Couldn't pass on WNI_CFG_DISABLE_LDPC_WITH_TXBF_AP to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007069 }
7070
Krunal Sonidf0f8742016-09-26 14:56:31 -07007071 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_DYNAMIC_THRESHOLD_ZERO,
7072 config->retryLimitZero) == QDF_STATUS_E_FAILURE) {
7073 status = false;
7074 hdd_err("Couldn't pass on WNI_CFG_DYNAMIC_THRESHOLD_ZERO to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007075 }
7076
Krunal Sonidf0f8742016-09-26 14:56:31 -07007077 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_DYNAMIC_THRESHOLD_ONE,
7078 config->retryLimitOne) == QDF_STATUS_E_FAILURE) {
7079 status = false;
7080 hdd_err("Couldn't pass on WNI_CFG_DYNAMIC_THRESHOLD_ONE to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007081 }
7082
Krunal Sonidf0f8742016-09-26 14:56:31 -07007083 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_DYNAMIC_THRESHOLD_TWO,
7084 config->retryLimitTwo) == QDF_STATUS_E_FAILURE) {
7085 status = false;
7086 hdd_err("Couldn't pass on WNI_CFG_DYNAMIC_THRESHOLD_TWO to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007087 }
7088
Krunal Sonidf0f8742016-09-26 14:56:31 -07007089 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_MAX_MEDIUM_TIME,
7090 config->cfgMaxMediumTime) == QDF_STATUS_E_FAILURE) {
7091 status = false;
7092 hdd_err("Couldn't pass on WNI_CFG_MAX_MEDIUM_TIME to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007093 }
7094#ifdef FEATURE_WLAN_TDLS
7095
Krunal Sonidf0f8742016-09-26 14:56:31 -07007096 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TDLS_QOS_WMM_UAPSD_MASK,
7097 config->fTDLSUapsdMask) == QDF_STATUS_E_FAILURE) {
7098 status = false;
7099 hdd_err("Couldn't pass on WNI_CFG_TDLS_QOS_WMM_UAPSD_MASK to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007100 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07007101 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TDLS_BUF_STA_ENABLED,
7102 config->fEnableTDLSBufferSta) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307103 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007104 status = false;
7105 hdd_err("Couldn't pass on WNI_CFG_TDLS_BUF_STA_ENABLED to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007106 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07007107 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TDLS_PUAPSD_INACT_TIME,
7108 config->fTDLSPuapsdInactivityTimer) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307109 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007110 status = false;
7111 hdd_err("Couldn't pass on WNI_CFG_TDLS_PUAPSD_INACT_TIME to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007112 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07007113 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TDLS_RX_FRAME_THRESHOLD,
7114 config->fTDLSRxFrameThreshold) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307115 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007116 status = false;
7117 hdd_err("Couldn't pass on WNI_CFG_TDLS_RX_FRAME_THRESHOLD to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007118 }
7119
Krunal Sonidf0f8742016-09-26 14:56:31 -07007120 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TDLS_OFF_CHANNEL_ENABLED,
7121 config->fEnableTDLSOffChannel) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307122 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007123 status = false;
7124 hdd_err("Couldn't pass on WNI_CFG_TDLS_BUF_STA_ENABLED to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007125 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07007126 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TDLS_WMM_MODE_ENABLED,
7127 config->fEnableTDLSWmmMode) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307128 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007129 status = false;
7130 hdd_err("Couldn't pass on WNI_CFG_TDLS_WMM_MODE_ENABLED to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007131 }
7132#endif
7133
Krunal Sonidf0f8742016-09-26 14:56:31 -07007134 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_ENABLE_ADAPT_RX_DRAIN,
7135 config->fEnableAdaptRxDrain) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307136 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007137 status = false;
7138 hdd_err("Couldn't pass on WNI_CFG_ENABLE_ADAPT_RX_DRAIN to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007139 }
7140
Krunal Sonidf0f8742016-09-26 14:56:31 -07007141 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_ANTENNA_DIVESITY,
7142 config->antennaDiversity) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307143 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007144 status = false;
7145 hdd_err("Couldn't pass on WNI_CFG_ANTENNA_DIVESITY to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007146 }
7147
Krunal Sonidf0f8742016-09-26 14:56:31 -07007148 if (sme_cfg_set_int(hdd_ctx->hHal,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007149 WNI_CFG_DEFAULT_RATE_INDEX_24GHZ,
Krunal Sonidf0f8742016-09-26 14:56:31 -07007150 config->defaultRateIndex24Ghz) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307151 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007152 status = false;
7153 hdd_err("Couldn't pass on WNI_CFG_DEFAULT_RATE_INDEX_24GHZ to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007154 }
7155
Krunal Sonidf0f8742016-09-26 14:56:31 -07007156 if (sme_cfg_set_int(hdd_ctx->hHal,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007157 WNI_CFG_DEBUG_P2P_REMAIN_ON_CHANNEL,
Krunal Sonidf0f8742016-09-26 14:56:31 -07007158 config->debugP2pRemainOnChannel) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307159 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007160 status = false;
7161 hdd_err("Couldn't pass on WNI_CFG_DEBUG_P2P_REMAIN_ON_CHANNEL to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007162 }
7163#ifdef WLAN_FEATURE_11W
Krunal Sonidf0f8742016-09-26 14:56:31 -07007164 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_PMF_SA_QUERY_MAX_RETRIES,
7165 config->pmfSaQueryMaxRetries) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307166 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007167 status = false;
7168 hdd_err("Couldn't pass on WNI_CFG_SA_QUERY_MAX_RETRIES to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007169 }
7170
Krunal Sonidf0f8742016-09-26 14:56:31 -07007171 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_PMF_SA_QUERY_RETRY_INTERVAL,
7172 config->pmfSaQueryRetryInterval) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307173 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007174 status = false;
7175 hdd_err("Couldn't pass on WNI_CFG_SA_QUERY_RETRY_INTERVAL to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007176 }
7177#endif
7178
Krunal Sonidf0f8742016-09-26 14:56:31 -07007179 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_IBSS_ATIM_WIN_SIZE,
7180 config->ibssATIMWinSize) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307181 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007182 status = false;
7183 hdd_err("Couldn't pass on WNI_CFG_IBSS_ATIM_WIN_SIZE to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007184 }
Krunal Soni53993f72016-07-08 18:20:03 -07007185
Krunal Sonidf0f8742016-09-26 14:56:31 -07007186 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TGT_GTX_USR_CFG,
7187 config->tgt_gtx_usr_cfg) == QDF_STATUS_E_FAILURE) {
7188 status = false;
7189 hdd_err("Couldn't pass on WNI_CFG_TGT_GTX_USR_CFG to CCM");
Rajeev Kumar Sirasanagandlaaf474742016-09-06 17:54:50 +05307190 }
Hong Shi417824f2017-01-12 02:31:14 +08007191
7192 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_MAX_HT_MCS_TX_DATA,
7193 config->max_ht_mcs_txdata) ==
7194 QDF_STATUS_E_FAILURE) {
7195 status = false;
7196 hdd_err("Couldn't pass on WNI_CFG_MAX_HT_MCS_TX_DATA to CCM");
7197 }
Hong Shia9ef8712017-02-19 21:54:02 +08007198
7199 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_DISABLE_ABG_RATE_FOR_TX_DATA,
7200 config->disable_abg_rate_txdata) ==
7201 QDF_STATUS_E_FAILURE) {
7202 status = false;
7203 hdd_err("Couldn't pass on WNI_CFG_DISABLE_ABG_RATE_FOR_TX_DATA to CCM");
7204 }
7205
Hong Shib90718f2017-02-20 00:57:22 +08007206 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_RATE_FOR_TX_MGMT,
7207 config->rate_for_tx_mgmt) ==
7208 QDF_STATUS_E_FAILURE) {
7209 status = false;
7210 hdd_err("Couldn't pass on WNI_CFG_RATE_FOR_TX_MGMT to CCM");
7211 }
7212
lifeng13a89d72017-05-10 14:49:29 +08007213 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_SAP_MAX_MCS_DATA,
7214 config->sap_max_mcs_txdata) ==
7215 QDF_STATUS_E_FAILURE) {
7216 status = false;
7217 hdd_err("Could not pass on WNI_CFG_SAP_MAX_MCS_DATA to CCM");
7218 }
7219
Hong Shi2d384fd2017-05-22 18:38:41 +08007220 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_RATE_FOR_TX_MGMT_2G,
7221 config->rate_for_tx_mgmt_2g) ==
7222 QDF_STATUS_E_FAILURE) {
7223 status = false;
7224 hdd_err("Couldn't pass on WNI_CFG_RATE_FOR_TX_MGMT_2G to CCM");
7225 }
7226
7227 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_RATE_FOR_TX_MGMT_5G,
7228 config->rate_for_tx_mgmt_5g) ==
7229 QDF_STATUS_E_FAILURE) {
7230 status = false;
7231 hdd_err("Couldn't pass on WNI_CFG_RATE_FOR_TX_MGMT_5G to CCM");
7232 }
7233
Krunal Sonidf0f8742016-09-26 14:56:31 -07007234 return status;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007235}
Krishna Kumaar Natarajan90bb6f12017-03-03 21:05:52 -08007236
Kapil Gupta5cda2252016-12-29 18:44:26 +05307237/**
7238 * hdd_update_per_config_to_sme() -initializes the sme config for PER roam
7239 *
7240 * @hdd_ctx: the pointer to hdd context
7241 * @sme_config: sme configuation pointer
7242 *
7243 * Return: None
7244 */
7245static void hdd_update_per_config_to_sme(hdd_context_t *hdd_ctx,
7246 tSmeConfigParams *sme_config)
7247{
7248 sme_config->csrConfig.per_roam_config.enable =
7249 hdd_ctx->config->is_per_roam_enabled;
7250
7251 /* Assigning Tx and Rx for same value */
7252 sme_config->csrConfig.per_roam_config.tx_high_rate_thresh =
7253 hdd_ctx->config->per_roam_high_rate_threshold;
7254 sme_config->csrConfig.per_roam_config.rx_high_rate_thresh =
7255 hdd_ctx->config->per_roam_high_rate_threshold;
7256
7257 /* Assigning Tx and Rx for same value */
7258 sme_config->csrConfig.per_roam_config.tx_low_rate_thresh =
7259 hdd_ctx->config->per_roam_low_rate_threshold;
7260 sme_config->csrConfig.per_roam_config.rx_low_rate_thresh =
7261 hdd_ctx->config->per_roam_low_rate_threshold;
7262
7263 /* Assigning Tx and Rx for same value */
7264 sme_config->csrConfig.per_roam_config.tx_rate_thresh_percnt =
7265 hdd_ctx->config->per_roam_th_percent;
7266 sme_config->csrConfig.per_roam_config.rx_rate_thresh_percnt =
7267 hdd_ctx->config->per_roam_th_percent;
7268
7269 sme_config->csrConfig.per_roam_config.per_rest_time =
7270 hdd_ctx->config->per_roam_rest_time;
Kapil Gupta957827b2017-02-13 15:47:04 +05307271 sme_config->csrConfig.per_roam_config.tx_per_mon_time =
7272 hdd_ctx->config->per_roam_mon_time;
7273 sme_config->csrConfig.per_roam_config.rx_per_mon_time =
7274 hdd_ctx->config->per_roam_mon_time;
Selvaraj, Sridhar0641fab2017-05-17 16:02:00 +05307275
7276 /* Assigning minimum roamable AP RSSI for candidate selection */
7277 sme_config->csrConfig.per_roam_config.min_candidate_rssi =
7278 hdd_ctx->config->min_candidate_rssi;
Kapil Gupta5cda2252016-12-29 18:44:26 +05307279}
7280
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007281/**
Tushnim Bhattacharyyaba8ee932017-03-23 09:27:40 -07007282 * hdd_set_policy_mgr_user_cfg() -initializes the policy manager
7283 * configuration parameters
7284 *
7285 * @pHddCtx: the pointer to hdd context
7286 *
7287 * Return: QDF_STATUS_SUCCESS if configuration is correctly applied,
7288 * otherwise the appropriate QDF_STATUS would be returned
7289 */
7290QDF_STATUS hdd_set_policy_mgr_user_cfg(hdd_context_t *hdd_ctx)
7291{
7292 QDF_STATUS status;
7293 struct policy_mgr_user_cfg *user_cfg;
7294
7295 user_cfg = qdf_mem_malloc(sizeof(*user_cfg));
7296 if (NULL == user_cfg) {
7297 hdd_err("unable to allocate user_cfg");
7298 return QDF_STATUS_E_NOMEM;
7299 }
7300
7301 user_cfg->conc_system_pref = hdd_ctx->config->conc_system_pref;
7302 user_cfg->enable_mcc_adaptive_scheduler =
7303 hdd_ctx->config->enableMCCAdaptiveScheduler;
7304 user_cfg->max_concurrent_active_sessions =
7305 hdd_ctx->config->gMaxConcurrentActiveSessions;
Tushnim Bhattacharyya7e546692017-03-23 18:30:29 -07007306 user_cfg->enable2x2 = hdd_ctx->config->enable2x2;
Tushnim Bhattacharyya5cc9edc2017-04-26 12:33:59 -07007307 user_cfg->mcc_to_scc_switch_mode =
7308 hdd_ctx->config->WlanMccToSccSwitchMode;
7309 user_cfg->sub_20_mhz_enabled = cds_is_sub_20_mhz_enabled();
Tushnim Bhattacharyyaba8ee932017-03-23 09:27:40 -07007310 status = policy_mgr_set_user_cfg(hdd_ctx->hdd_psoc, user_cfg);
7311
7312 qdf_mem_free(user_cfg);
7313
7314 return status;
7315}
7316/**
Srinivas Girigowda3ea486d2017-06-28 17:19:49 -07007317 * hdd_to_csr_wmm_mode() - Utility function to convert HDD to CSR WMM mode
7318 *
7319 * @enum hdd_wmm_user_mode - hdd WMM user mode
7320 *
7321 * Return: CSR WMM mode
7322 */
7323static eCsrRoamWmmUserModeType
7324hdd_to_csr_wmm_mode(enum hdd_wmm_user_mode mode)
7325{
7326 switch (mode) {
7327 case HDD_WMM_USER_MODE_QBSS_ONLY:
7328 return eCsrRoamWmmQbssOnly;
7329 case HDD_WMM_USER_MODE_NO_QOS:
7330 return eCsrRoamWmmNoQos;
7331 case HDD_WMM_USER_MODE_AUTO:
7332 default:
7333 return eCsrRoamWmmAuto;
7334 }
7335}
7336
7337/**
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007338 * hdd_set_sme_config() -initializes the sme configuration parameters
7339 *
7340 * @pHddCtx: the pointer to hdd context
7341 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307342 * Return: QDF_STATUS_SUCCESS if configuration is correctly applied,
7343 * otherwise the appropriate QDF_STATUS would be returned
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007344 */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307345QDF_STATUS hdd_set_sme_config(hdd_context_t *pHddCtx)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007346{
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307347 QDF_STATUS status = QDF_STATUS_SUCCESS;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007348 tSmeConfigParams *smeConfig;
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08007349 uint8_t rrm_capab_len;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007350
7351 struct hdd_config *pConfig = pHddCtx->config;
7352
Anurag Chouhan600c3a02016-03-01 10:33:54 +05307353 smeConfig = qdf_mem_malloc(sizeof(*smeConfig));
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007354 if (NULL == smeConfig) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08007355 hdd_err("unable to allocate smeConfig");
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307356 return QDF_STATUS_E_NOMEM;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007357 }
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007358
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07007359 hdd_debug("%s bWmmIsEnabled=%d 802_11e_enabled=%d dot11Mode=%d",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007360 __func__, pConfig->WmmMode, pConfig->b80211eIsEnabled,
7361 pConfig->dot11Mode);
7362
7363 /* Config params obtained from the registry
7364 * To Do: set regulatory information here
7365 */
7366
7367 smeConfig->csrConfig.RTSThreshold = pConfig->RTSThreshold;
7368 smeConfig->csrConfig.FragmentationThreshold =
7369 pConfig->FragmentationThreshold;
7370 smeConfig->csrConfig.shortSlotTime = pConfig->ShortSlotTimeEnabled;
7371 smeConfig->csrConfig.Is11dSupportEnabled = pConfig->Is11dSupportEnabled;
7372 smeConfig->csrConfig.HeartbeatThresh24 = pConfig->HeartbeatThresh24;
7373
7374 smeConfig->csrConfig.phyMode =
7375 hdd_cfg_xlate_to_csr_phy_mode(pConfig->dot11Mode);
7376
7377 if (pConfig->dot11Mode == eHDD_DOT11_MODE_abg ||
7378 pConfig->dot11Mode == eHDD_DOT11_MODE_11b ||
7379 pConfig->dot11Mode == eHDD_DOT11_MODE_11g ||
7380 pConfig->dot11Mode == eHDD_DOT11_MODE_11b_ONLY ||
7381 pConfig->dot11Mode == eHDD_DOT11_MODE_11g_ONLY) {
7382 smeConfig->csrConfig.channelBondingMode24GHz = 0;
7383 smeConfig->csrConfig.channelBondingMode5GHz = 0;
7384 } else {
7385 smeConfig->csrConfig.channelBondingMode24GHz =
7386 pConfig->nChannelBondingMode24GHz;
7387 smeConfig->csrConfig.channelBondingMode5GHz =
7388 pConfig->nChannelBondingMode5GHz;
7389 }
7390 smeConfig->csrConfig.TxRate = pConfig->TxRate;
7391 smeConfig->csrConfig.nScanResultAgeCount = pConfig->ScanResultAgeCount;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007392 smeConfig->csrConfig.AdHocChannel24 = pConfig->OperatingChannel;
7393 smeConfig->csrConfig.fSupplicantCountryCodeHasPriority =
7394 pConfig->fSupplicantCountryCodeHasPriority;
7395 smeConfig->csrConfig.bCatRssiOffset = pConfig->nRssiCatGap;
7396 smeConfig->csrConfig.vccRssiThreshold = pConfig->nVccRssiTrigger;
7397 smeConfig->csrConfig.vccUlMacLossThreshold =
7398 pConfig->nVccUlMacLossThreshold;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007399 smeConfig->csrConfig.nInitialDwellTime = pConfig->nInitialDwellTime;
7400 smeConfig->csrConfig.initial_scan_no_dfs_chnl =
7401 pConfig->initial_scan_no_dfs_chnl;
7402 smeConfig->csrConfig.nActiveMaxChnTime = pConfig->nActiveMaxChnTime;
7403 smeConfig->csrConfig.nActiveMinChnTime = pConfig->nActiveMinChnTime;
7404 smeConfig->csrConfig.nPassiveMaxChnTime = pConfig->nPassiveMaxChnTime;
7405 smeConfig->csrConfig.nPassiveMinChnTime = pConfig->nPassiveMinChnTime;
7406#ifdef WLAN_AP_STA_CONCURRENCY
7407 smeConfig->csrConfig.nActiveMaxChnTimeConc =
7408 pConfig->nActiveMaxChnTimeConc;
7409 smeConfig->csrConfig.nActiveMinChnTimeConc =
7410 pConfig->nActiveMinChnTimeConc;
7411 smeConfig->csrConfig.nPassiveMaxChnTimeConc =
7412 pConfig->nPassiveMaxChnTimeConc;
7413 smeConfig->csrConfig.nPassiveMinChnTimeConc =
7414 pConfig->nPassiveMinChnTimeConc;
7415 smeConfig->csrConfig.nRestTimeConc = pConfig->nRestTimeConc;
Agrawal Ashish17bb3902016-05-05 13:29:40 +05307416 smeConfig->csrConfig.min_rest_time_conc = pConfig->min_rest_time_conc;
7417 smeConfig->csrConfig.idle_time_conc = pConfig->idle_time_conc;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007418
7419#endif
7420 smeConfig->csrConfig.Is11eSupportEnabled = pConfig->b80211eIsEnabled;
Srinivas Girigowda3ea486d2017-06-28 17:19:49 -07007421 smeConfig->csrConfig.WMMSupportMode =
7422 hdd_to_csr_wmm_mode(pConfig->WmmMode);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007423
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08007424 smeConfig->rrmConfig.rrm_enabled = pConfig->fRrmEnable;
7425 smeConfig->rrmConfig.max_randn_interval = pConfig->nRrmRandnIntvl;
7426 hdd_hex_string_to_u8_array(pConfig->rm_capability,
7427 smeConfig->rrmConfig.rm_capability, &rrm_capab_len,
7428 DOT11F_IE_RRMENABLEDCAP_MAX_LEN);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007429 /* Remaining config params not obtained from registry
7430 * On RF EVB beacon using channel 1.
7431 */
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007432 smeConfig->csrConfig.nVhtChannelWidth = pConfig->vhtChannelWidth;
7433 smeConfig->csrConfig.enableTxBF = pConfig->enableTxBF;
Kiran Kumar Lokere5302ab62015-12-16 16:03:16 -08007434 smeConfig->csrConfig.enable_txbf_sap_mode =
7435 pConfig->enable_txbf_sap_mode;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007436 smeConfig->csrConfig.enable2x2 = pConfig->enable2x2;
7437 smeConfig->csrConfig.enableVhtFor24GHz = pConfig->enableVhtFor24GHzBand;
Kapil Gupta4b2efbb2016-10-03 13:07:20 +05307438 smeConfig->csrConfig.vendor_vht_sap =
7439 pConfig->enable_sap_vendor_vht;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007440 smeConfig->csrConfig.enableMuBformee = pConfig->enableMuBformee;
7441 smeConfig->csrConfig.enableVhtpAid = pConfig->enableVhtpAid;
7442 smeConfig->csrConfig.enableVhtGid = pConfig->enableVhtGid;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007443 smeConfig->csrConfig.enableAmpduPs = pConfig->enableAmpduPs;
7444 smeConfig->csrConfig.enableHtSmps = pConfig->enableHtSmps;
7445 smeConfig->csrConfig.htSmps = pConfig->htSmps;
Archana Ramachandranfec24812016-02-16 16:31:56 -08007446 /* This param cannot be configured from INI */
7447 smeConfig->csrConfig.send_smps_action = true;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007448 smeConfig->csrConfig.AdHocChannel5G = pConfig->AdHocChannel5G;
7449 smeConfig->csrConfig.AdHocChannel24 = pConfig->AdHocChannel24G;
7450 smeConfig->csrConfig.ProprietaryRatesEnabled = 0;
7451 smeConfig->csrConfig.HeartbeatThresh50 = 40;
7452 smeConfig->csrConfig.bandCapability = pConfig->nBandCapability;
7453 if (pConfig->nBandCapability == eCSR_BAND_24) {
7454 smeConfig->csrConfig.Is11hSupportEnabled = 0;
7455 } else {
7456 smeConfig->csrConfig.Is11hSupportEnabled =
7457 pConfig->Is11hSupportEnabled;
7458 }
7459 smeConfig->csrConfig.cbChoice = 0;
7460 smeConfig->csrConfig.eBand = pConfig->nBandCapability;
7461 smeConfig->csrConfig.nTxPowerCap = pConfig->nTxPowerCap;
Padma, Santhosh Kumar29df3622016-08-16 19:15:16 +05307462 smeConfig->csrConfig.allow_tpc_from_ap = pConfig->allow_tpc_from_ap;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007463 smeConfig->csrConfig.fEnableBypass11d = pConfig->enableBypass11d;
7464 smeConfig->csrConfig.fEnableDFSChnlScan = pConfig->enableDFSChnlScan;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007465 smeConfig->csrConfig.nRoamPrefer5GHz = pConfig->nRoamPrefer5GHz;
7466 smeConfig->csrConfig.nRoamIntraBand = pConfig->nRoamIntraBand;
7467 smeConfig->csrConfig.nProbes = pConfig->nProbes;
7468
7469 smeConfig->csrConfig.nRoamScanHomeAwayTime =
7470 pConfig->nRoamScanHomeAwayTime;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007471 smeConfig->csrConfig.fFirstScanOnly2GChnl =
7472 pConfig->enableFirstScan2GOnly;
7473
Peng Xuf5d60c82015-10-02 17:17:03 -07007474 smeConfig->csrConfig.Csr11dinfo.Channels.numChannels = 0;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007475
7476 hdd_set_power_save_offload_config(pHddCtx);
7477
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007478 smeConfig->csrConfig.csr11rConfig.IsFTResourceReqSupported =
7479 pConfig->fFTResourceReqSupported;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007480 smeConfig->csrConfig.isFastRoamIniFeatureEnabled =
7481 pConfig->isFastRoamIniFeatureEnabled;
7482 smeConfig->csrConfig.MAWCEnabled = pConfig->MAWCEnabled;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007483#ifdef FEATURE_WLAN_ESE
7484 smeConfig->csrConfig.isEseIniFeatureEnabled =
7485 pConfig->isEseIniFeatureEnabled;
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07007486 if (pConfig->isEseIniFeatureEnabled)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007487 pConfig->isFastTransitionEnabled = true;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007488#endif
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007489 smeConfig->csrConfig.isFastTransitionEnabled =
7490 pConfig->isFastTransitionEnabled;
7491 smeConfig->csrConfig.RoamRssiDiff = pConfig->RoamRssiDiff;
7492 smeConfig->csrConfig.isWESModeEnabled = pConfig->isWESModeEnabled;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007493 smeConfig->csrConfig.isRoamOffloadScanEnabled =
7494 pConfig->isRoamOffloadScanEnabled;
7495 smeConfig->csrConfig.bFastRoamInConIniFeatureEnabled =
7496 pConfig->bFastRoamInConIniFeatureEnabled;
7497
7498 if (0 == smeConfig->csrConfig.isRoamOffloadScanEnabled) {
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07007499 /* Disable roaming in concurrency if roam scan
7500 * offload is disabled
7501 */
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007502 smeConfig->csrConfig.bFastRoamInConIniFeatureEnabled = 0;
7503 }
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007504 smeConfig->csrConfig.neighborRoamConfig.nNeighborLookupRssiThreshold =
7505 pConfig->nNeighborLookupRssiThreshold;
7506 smeConfig->csrConfig.neighborRoamConfig.delay_before_vdev_stop =
7507 pConfig->delay_before_vdev_stop;
7508 smeConfig->csrConfig.neighborRoamConfig.nOpportunisticThresholdDiff =
7509 pConfig->nOpportunisticThresholdDiff;
7510 smeConfig->csrConfig.neighborRoamConfig.nRoamRescanRssiDiff =
7511 pConfig->nRoamRescanRssiDiff;
7512 smeConfig->csrConfig.neighborRoamConfig.nNeighborScanMaxChanTime =
7513 pConfig->nNeighborScanMaxChanTime;
7514 smeConfig->csrConfig.neighborRoamConfig.nNeighborScanMinChanTime =
7515 pConfig->nNeighborScanMinChanTime;
7516 smeConfig->csrConfig.neighborRoamConfig.nNeighborScanTimerPeriod =
7517 pConfig->nNeighborScanPeriod;
Sridhar Selvaraj1b2330c2017-07-21 15:16:42 +05307518 smeConfig->csrConfig.neighborRoamConfig.
7519 neighbor_scan_min_timer_period =
7520 pConfig->neighbor_scan_min_period;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007521 smeConfig->csrConfig.neighborRoamConfig.nMaxNeighborRetries =
7522 pConfig->nMaxNeighborReqTries;
7523 smeConfig->csrConfig.neighborRoamConfig.nNeighborResultsRefreshPeriod =
7524 pConfig->nNeighborResultsRefreshPeriod;
7525 smeConfig->csrConfig.neighborRoamConfig.nEmptyScanRefreshPeriod =
7526 pConfig->nEmptyScanRefreshPeriod;
7527 hdd_string_to_u8_array(pConfig->neighborScanChanList,
7528 smeConfig->csrConfig.neighborRoamConfig.
7529 neighborScanChanList.channelList,
7530 &smeConfig->csrConfig.neighborRoamConfig.
7531 neighborScanChanList.numChannels,
7532 WNI_CFG_VALID_CHANNEL_LIST_LEN);
7533 smeConfig->csrConfig.neighborRoamConfig.nRoamBmissFirstBcnt =
7534 pConfig->nRoamBmissFirstBcnt;
7535 smeConfig->csrConfig.neighborRoamConfig.nRoamBmissFinalBcnt =
7536 pConfig->nRoamBmissFinalBcnt;
7537 smeConfig->csrConfig.neighborRoamConfig.nRoamBeaconRssiWeight =
7538 pConfig->nRoamBeaconRssiWeight;
7539 smeConfig->csrConfig.neighborRoamConfig.nhi_rssi_scan_max_count =
7540 pConfig->nhi_rssi_scan_max_count;
7541 smeConfig->csrConfig.neighborRoamConfig.nhi_rssi_scan_rssi_delta =
7542 pConfig->nhi_rssi_scan_rssi_delta;
7543 smeConfig->csrConfig.neighborRoamConfig.nhi_rssi_scan_delay =
7544 pConfig->nhi_rssi_scan_delay;
7545 smeConfig->csrConfig.neighborRoamConfig.nhi_rssi_scan_rssi_ub =
7546 pConfig->nhi_rssi_scan_rssi_ub;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007547 smeConfig->csrConfig.addTSWhenACMIsOff = pConfig->AddTSWhenACMIsOff;
7548 smeConfig->csrConfig.fValidateList = pConfig->fValidateScanList;
7549 smeConfig->csrConfig.allowDFSChannelRoam = pConfig->allowDFSChannelRoam;
7550
7551 /* Enable/Disable MCC */
7552 smeConfig->csrConfig.fEnableMCCMode = pConfig->enableMCC;
7553 smeConfig->csrConfig.mcc_rts_cts_prot_enable =
7554 pConfig->mcc_rts_cts_prot_enable;
7555 smeConfig->csrConfig.mcc_bcast_prob_resp_enable =
7556 pConfig->mcc_bcast_prob_resp_enable;
7557 smeConfig->csrConfig.fAllowMCCGODiffBI = pConfig->allowMCCGODiffBI;
7558
7559 /* Scan Results Aging Time out value */
7560 smeConfig->csrConfig.scanCfgAgingTime = pConfig->scanAgingTimeout;
7561
Krunal Sonia2c0e412017-05-04 14:12:41 +05307562 smeConfig->csrConfig.enable_tx_ldpc = pConfig->enable_tx_ldpc;
7563 smeConfig->csrConfig.enable_rx_ldpc = pConfig->enable_rx_ldpc;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007564#ifdef FEATURE_WLAN_MCC_TO_SCC_SWITCH
7565 smeConfig->csrConfig.cc_switch_mode = pConfig->WlanMccToSccSwitchMode;
7566#endif
7567
Deepak Dhamdhere612392c2016-08-28 02:56:51 -07007568 smeConfig->csrConfig.max_amsdu_num = pConfig->max_amsdu_num;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007569 smeConfig->csrConfig.nSelect5GHzMargin = pConfig->nSelect5GHzMargin;
7570
7571 smeConfig->csrConfig.isCoalesingInIBSSAllowed =
7572 pHddCtx->config->isCoalesingInIBSSAllowed;
7573 smeConfig->csrConfig.ignore_peer_erp_info =
7574 pConfig->ignore_peer_erp_info;
7575 /* update SSR config */
7576 sme_update_enable_ssr((tHalHandle) (pHddCtx->hHal),
7577 pHddCtx->config->enableSSR);
7578
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007579 /* Update maximum interfaces information */
Krunal Soni1878d3a2016-01-14 13:00:44 -08007580 smeConfig->csrConfig.max_intf_count = pHddCtx->max_intf_count;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007581
Krunal Soni1878d3a2016-01-14 13:00:44 -08007582 smeConfig->csrConfig.fEnableDebugLog = pHddCtx->config->gEnableDebugLog;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007583
Krunal Soni1878d3a2016-01-14 13:00:44 -08007584 smeConfig->csrConfig.enable5gEBT = pHddCtx->config->enable5gEBT;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007585
Krunal Soni1878d3a2016-01-14 13:00:44 -08007586 smeConfig->csrConfig.enableSelfRecovery =
7587 pHddCtx->config->enableSelfRecovery;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007588#ifdef WLAN_FEATURE_ROAM_OFFLOAD
7589 smeConfig->csrConfig.isRoamOffloadEnabled =
7590 pHddCtx->config->isRoamOffloadEnabled;
7591#endif
7592 smeConfig->csrConfig.conc_custom_rule1 =
7593 pHddCtx->config->conc_custom_rule1;
7594 smeConfig->csrConfig.conc_custom_rule2 =
7595 pHddCtx->config->conc_custom_rule2;
7596 smeConfig->csrConfig.is_sta_connection_in_5gz_enabled =
7597 pHddCtx->config->is_sta_connection_in_5gz_enabled;
7598
Krunal Soni1878d3a2016-01-14 13:00:44 -08007599 smeConfig->csrConfig.f_sta_miracast_mcc_rest_time_val =
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007600 pHddCtx->config->sta_miracast_mcc_rest_time_val;
7601
7602#ifdef FEATURE_AP_MCC_CH_AVOIDANCE
Krunal Soni1878d3a2016-01-14 13:00:44 -08007603 smeConfig->csrConfig.sap_channel_avoidance =
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007604 pHddCtx->config->sap_channel_avoidance;
7605#endif /* FEATURE_AP_MCC_CH_AVOIDANCE */
7606
Krunal Soni1878d3a2016-01-14 13:00:44 -08007607 smeConfig->csrConfig.f_prefer_non_dfs_on_radar =
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007608 pHddCtx->config->prefer_non_dfs_on_radar;
7609
Krunal Soni1878d3a2016-01-14 13:00:44 -08007610 smeConfig->csrConfig.is_ps_enabled = pHddCtx->config->is_ps_enabled;
Kiran Kumar Lokere0ac679c2016-11-17 17:43:36 -08007611 smeConfig->csrConfig.auto_bmps_timer_val =
7612 pHddCtx->config->auto_bmps_timer_val;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007613 hdd_set_fine_time_meas_cap(pHddCtx, smeConfig);
7614
7615 cds_set_multicast_logging(pHddCtx->config->multicast_host_fw_msgs);
7616
7617 smeConfig->csrConfig.sendDeauthBeforeCon = pConfig->sendDeauthBeforeCon;
7618
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007619 smeConfig->csrConfig.max_scan_count =
7620 pHddCtx->config->max_scan_count;
7621
7622 /* Update 802.11p config */
7623 smeConfig->csrConfig.enable_dot11p =
7624 (pHddCtx->config->dot11p_mode != WLAN_HDD_11P_DISABLED);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007625
Krunal Soni1878d3a2016-01-14 13:00:44 -08007626 smeConfig->csrConfig.early_stop_scan_enable =
Varun Reddy Yeturu05186292015-09-28 17:12:33 -07007627 pHddCtx->config->early_stop_scan_enable;
Krunal Soni1878d3a2016-01-14 13:00:44 -08007628 smeConfig->csrConfig.early_stop_scan_min_threshold =
Varun Reddy Yeturu05186292015-09-28 17:12:33 -07007629 pHddCtx->config->early_stop_scan_min_threshold;
Krunal Soni1878d3a2016-01-14 13:00:44 -08007630 smeConfig->csrConfig.early_stop_scan_max_threshold =
Varun Reddy Yeturu05186292015-09-28 17:12:33 -07007631 pHddCtx->config->early_stop_scan_max_threshold;
Varun Reddy Yeturu044bda22015-11-21 22:03:40 -08007632 smeConfig->csrConfig.first_scan_bucket_threshold =
7633 pHddCtx->config->first_scan_bucket_threshold;
Gupta, Kapilc68ad462016-02-01 19:17:23 +05307634
7635 smeConfig->csrConfig.roam_dense_rssi_thresh_offset =
7636 pHddCtx->config->roam_dense_rssi_thresh_offset;
7637 smeConfig->csrConfig.roam_dense_min_aps =
7638 pHddCtx->config->roam_dense_min_aps;
7639 smeConfig->csrConfig.roam_dense_traffic_thresh =
7640 pHddCtx->config->roam_dense_traffic_thresh;
Sandeep Puligilla93a29ec2016-02-12 16:10:56 -08007641 smeConfig->csrConfig.obss_width_interval =
7642 pHddCtx->config->obss_width_trigger_interval;
7643 smeConfig->csrConfig.obss_active_dwelltime =
7644 pHddCtx->config->obss_active_dwelltime;
7645 smeConfig->csrConfig.obss_passive_dwelltime =
7646 pHddCtx->config->obss_passive_dwelltime;
Abhishek Singh165bc602016-03-21 12:43:00 +05307647 smeConfig->csrConfig.ignore_peer_ht_opmode =
7648 pConfig->ignore_peer_ht_opmode;
Abhishek Singh5ea86532016-04-27 14:10:53 +05307649 smeConfig->csrConfig.enable_fatal_event =
7650 pConfig->enable_fatal_event;
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05307651 smeConfig->csrConfig.scan_adaptive_dwell_mode =
7652 pHddCtx->config->scan_adaptive_dwell_mode;
7653 smeConfig->csrConfig.roamscan_adaptive_dwell_mode =
7654 pHddCtx->config->roamscan_adaptive_dwell_mode;
Gupta, Kapilc68ad462016-02-01 19:17:23 +05307655
Kapil Gupta5cda2252016-12-29 18:44:26 +05307656 hdd_update_per_config_to_sme(pHddCtx, smeConfig);
7657
Abhishek Singh10ecf582016-05-04 17:48:59 +05307658 smeConfig->csrConfig.enable_edca_params =
7659 pConfig->enable_edca_params;
7660
7661 smeConfig->csrConfig.edca_vo_cwmin =
7662 pConfig->edca_vo_cwmin;
7663 smeConfig->csrConfig.edca_vi_cwmin =
7664 pConfig->edca_vi_cwmin;
7665 smeConfig->csrConfig.edca_bk_cwmin =
7666 pConfig->edca_bk_cwmin;
7667 smeConfig->csrConfig.edca_be_cwmin =
7668 pConfig->edca_be_cwmin;
7669
7670 smeConfig->csrConfig.edca_vo_cwmax =
7671 pConfig->edca_vo_cwmax;
7672 smeConfig->csrConfig.edca_vi_cwmax =
7673 pConfig->edca_vi_cwmax;
7674 smeConfig->csrConfig.edca_bk_cwmax =
7675 pConfig->edca_bk_cwmax;
7676 smeConfig->csrConfig.edca_be_cwmax =
7677 pConfig->edca_be_cwmax;
7678
7679 smeConfig->csrConfig.edca_vo_aifs =
7680 pConfig->edca_vo_aifs;
7681 smeConfig->csrConfig.edca_vi_aifs =
7682 pConfig->edca_vi_aifs;
7683 smeConfig->csrConfig.edca_bk_aifs =
7684 pConfig->edca_bk_aifs;
7685 smeConfig->csrConfig.edca_be_aifs =
7686 pConfig->edca_be_aifs;
Agrawal Ashish21ba2572016-09-03 16:40:10 +05307687 smeConfig->csrConfig.sta_roam_policy_params.dfs_mode =
7688 CSR_STA_ROAM_POLICY_DFS_ENABLED;
7689 smeConfig->csrConfig.sta_roam_policy_params.skip_unsafe_channels = 0;
Abhishek Singh10ecf582016-05-04 17:48:59 +05307690
Kapil Gupta4f0c0c12017-02-07 15:21:15 +05307691 smeConfig->snr_monitor_enabled = pHddCtx->config->fEnableSNRMonitoring;
7692
Padma, Santhosh Kumara7119672016-08-16 16:05:14 +05307693 smeConfig->csrConfig.tx_aggregation_size =
7694 pHddCtx->config->tx_aggregation_size;
7695 smeConfig->csrConfig.rx_aggregation_size =
7696 pHddCtx->config->rx_aggregation_size;
Selvaraj, Sridhar4f684bb2017-01-19 15:59:23 +05307697 smeConfig->csrConfig.enable_bcast_probe_rsp =
7698 pHddCtx->config->enable_bcast_probe_rsp;
Selvaraj, Sridhara521aab2017-03-25 16:42:34 +05307699 smeConfig->csrConfig.qcn_ie_support =
7700 pHddCtx->config->qcn_ie_support;
Selvaraj, Sridhar97ce6582017-01-20 17:06:34 +05307701 smeConfig->csrConfig.fils_max_chan_guard_time =
7702 pHddCtx->config->fils_max_chan_guard_time;
Padma, Santhosh Kumara7119672016-08-16 16:05:14 +05307703
Krishna Kumaar Natarajan90bb6f12017-03-03 21:05:52 -08007704 hdd_he_set_sme_config(smeConfig, pConfig);
7705
Naveen Rawat2b6e3c92017-03-20 13:59:07 -07007706 smeConfig->csrConfig.pkt_err_disconn_th =
7707 pHddCtx->config->pkt_err_disconn_th;
Selvaraj, Sridhar57ce4df2017-05-29 18:30:49 +05307708 smeConfig->csrConfig.disallow_duration =
7709 pHddCtx->config->disallow_duration;
7710 smeConfig->csrConfig.rssi_channel_penalization =
7711 pHddCtx->config->rssi_channel_penalization;
7712 smeConfig->csrConfig.num_disallowed_aps =
7713 pHddCtx->config->num_disallowed_aps;
7714
Naveen Rawatb2fc4132017-05-10 20:42:05 -07007715 smeConfig->csrConfig.is_force_1x1 =
7716 pHddCtx->config->is_force_1x1;
Naveen Rawat247a8682017-06-05 15:00:31 -07007717 smeConfig->csrConfig.num_11b_tx_chains =
7718 pHddCtx->config->num_11b_tx_chains;
7719 smeConfig->csrConfig.num_11ag_tx_chains =
7720 pHddCtx->config->num_11ag_tx_chains;
7721
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007722 status = sme_update_config(pHddCtx->hHal, smeConfig);
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07007723 if (!QDF_IS_STATUS_SUCCESS(status))
7724 hdd_err("sme_update_config() failure: %d", status);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007725
Anurag Chouhan600c3a02016-03-01 10:33:54 +05307726 qdf_mem_free(smeConfig);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007727 return status;
7728}
7729
7730/**
7731 * hdd_execute_global_config_command() - execute the global config command
7732 * @pHddCtx: the pointer to hdd context
7733 * @command: the command to run
7734 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307735 * Return: the QDF_STATUS return from hdd_execute_config_command
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007736 */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307737QDF_STATUS hdd_execute_global_config_command(hdd_context_t *pHddCtx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007738 char *command)
7739{
7740 return hdd_execute_config_command(g_registry_table,
7741 ARRAY_SIZE(g_registry_table),
7742 (uint8_t *) pHddCtx->config,
7743 pHddCtx, command);
7744}
7745
7746/**
7747 * hdd_cfg_get_global_config() - get the configuration table
7748 * @pHddCtx: pointer to hdd context
7749 * @pBuf: buffer to store the configuration
7750 * @buflen: size of the buffer
7751 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307752 * Return: QDF_STATUS_SUCCESS if the configuration and buffer size can carry
7753 * the content, otherwise QDF_STATUS_E_RESOURCES
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007754 */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307755QDF_STATUS hdd_cfg_get_global_config(hdd_context_t *pHddCtx, char *pBuf,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007756 int buflen)
7757{
7758 return hdd_cfg_get_config(g_registry_table,
7759 ARRAY_SIZE(g_registry_table),
7760 (uint8_t *) pHddCtx->config, pHddCtx, pBuf,
7761 buflen);
7762}
7763
7764/**
Deepak Dhamdhere828f1892017-02-09 11:51:19 -08007765 * hdd_get_pmkid_modes() - returns PMKID mode bits
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007766 * @pHddCtx: the pointer to hdd context
7767 *
Deepak Dhamdhere828f1892017-02-09 11:51:19 -08007768 * Return: value of pmkid_modes
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007769 */
Deepak Dhamdhere828f1892017-02-09 11:51:19 -08007770void hdd_get_pmkid_modes(hdd_context_t *pHddCtx,
7771 struct pmkid_mode_bits *pmkid_modes)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007772{
Deepak Dhamdhere828f1892017-02-09 11:51:19 -08007773 pmkid_modes->fw_okc = (pHddCtx->config->pmkid_modes &
7774 CFG_PMKID_MODES_OKC) ? 1 : 0;
7775 pmkid_modes->fw_pmksa_cache = (pHddCtx->config->pmkid_modes &
7776 CFG_PMKID_MODES_PMKSA_CACHING) ? 1 : 0;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007777}
7778
7779/**
7780 * hdd_update_nss() - Update the number of spatial streams supported.
7781 * Ensure that nss is either 1 or 2 before calling this.
7782 *
7783 * @hdd_ctx: the pointer to hdd context
7784 * @nss: the number of spatial streams to be updated
7785 *
7786 * This function is used to modify the number of spatial streams
7787 * supported when not in connected state.
7788 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307789 * Return: QDF_STATUS_SUCCESS if nss is correctly updated,
7790 * otherwise QDF_STATUS_E_FAILURE would be returned
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007791 */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307792QDF_STATUS hdd_update_nss(hdd_context_t *hdd_ctx, uint8_t nss)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007793{
7794 struct hdd_config *hdd_config = hdd_ctx->config;
7795 uint32_t temp = 0;
7796 uint32_t rx_supp_data_rate, tx_supp_data_rate;
7797 bool status = true;
7798 tSirMacHTCapabilityInfo *ht_cap_info;
7799 uint8_t mcs_set[SIZE_OF_SUPPORTED_MCS_SET] = {0};
7800 uint8_t mcs_set_temp[SIZE_OF_SUPPORTED_MCS_SET];
Sandeep Puligilla98917432016-06-10 13:50:28 -07007801 uint32_t val, val32;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007802 uint16_t val16;
7803 uint8_t enable2x2;
7804
7805 if ((nss == 2) && (hdd_ctx->num_rf_chains != 2)) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08007806 hdd_err("No support for 2 spatial streams");
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307807 return QDF_STATUS_E_INVAL;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007808 }
7809
7810 enable2x2 = (nss == 1) ? 0 : 1;
7811
7812 if (hdd_config->enable2x2 == enable2x2) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07007813 hdd_debug("NSS same as requested");
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307814 return QDF_STATUS_SUCCESS;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007815 }
7816
7817 if (true == sme_is_any_session_in_connected_state(hdd_ctx->hHal)) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08007818 hdd_err("Connected sessions present, Do not change NSS");
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307819 return QDF_STATUS_E_INVAL;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007820 }
7821
7822 hdd_config->enable2x2 = enable2x2;
7823
7824 if (!hdd_config->enable2x2) {
7825 /* 1x1 */
Kiran Kumar Lokere666bf852016-05-02 12:23:02 -07007826 rx_supp_data_rate = VHT_RX_HIGHEST_SUPPORTED_DATA_RATE_1_1;
7827 tx_supp_data_rate = VHT_TX_HIGHEST_SUPPORTED_DATA_RATE_1_1;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007828 } else {
7829 /* 2x2 */
Kiran Kumar Lokere666bf852016-05-02 12:23:02 -07007830 rx_supp_data_rate = VHT_RX_HIGHEST_SUPPORTED_DATA_RATE_2_2;
7831 tx_supp_data_rate = VHT_TX_HIGHEST_SUPPORTED_DATA_RATE_2_2;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007832 }
7833
7834 /* Update Rx Highest Long GI data Rate */
7835 if (sme_cfg_set_int(hdd_ctx->hHal,
7836 WNI_CFG_VHT_RX_HIGHEST_SUPPORTED_DATA_RATE,
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307837 rx_supp_data_rate) == QDF_STATUS_E_FAILURE) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007838 status = false;
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08007839 hdd_err("Could not pass on WNI_CFG_VHT_RX_HIGHEST_SUPPORTED_DATA_RATE to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007840 }
7841
7842 /* Update Tx Highest Long GI data Rate */
7843 if (sme_cfg_set_int(hdd_ctx->hHal,
7844 WNI_CFG_VHT_TX_HIGHEST_SUPPORTED_DATA_RATE,
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307845 tx_supp_data_rate) == QDF_STATUS_E_FAILURE) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007846 status = false;
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08007847 hdd_err("Could not pass on WNI_CFG_VHT_TX_HIGHEST_SUPPORTED_DATA_RATE to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007848 }
7849
7850 sme_cfg_get_int(hdd_ctx->hHal, WNI_CFG_HT_CAP_INFO, &temp);
7851 val16 = (uint16_t)temp;
7852 ht_cap_info = (tSirMacHTCapabilityInfo *)&val16;
Sandeep Puligilla98917432016-06-10 13:50:28 -07007853 if (!(hdd_ctx->ht_tx_stbc_supported && hdd_config->enable2x2)) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007854 ht_cap_info->txSTBC = 0;
Sandeep Puligilla98917432016-06-10 13:50:28 -07007855 } else {
7856 sme_cfg_get_int(hdd_ctx->hHal, WNI_CFG_VHT_TXSTBC, &val32);
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07007857 hdd_debug("STBC %d", val32);
Sandeep Puligilla98917432016-06-10 13:50:28 -07007858 ht_cap_info->txSTBC = val32;
7859 }
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007860 temp = val16;
7861 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_HT_CAP_INFO,
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307862 temp) == QDF_STATUS_E_FAILURE) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007863 status = false;
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08007864 hdd_err("Could not pass on WNI_CFG_HT_CAP_INFO to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007865 }
7866
7867 sme_cfg_get_int(hdd_ctx->hHal, WNI_CFG_VHT_BASIC_MCS_SET, &temp);
7868 temp = (temp & 0xFFFC) | hdd_config->vhtRxMCS;
7869 if (hdd_config->enable2x2)
7870 temp = (temp & 0xFFF3) | (hdd_config->vhtRxMCS2x2 << 2);
7871 else
7872 temp |= 0x000C;
7873
7874 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_VHT_BASIC_MCS_SET,
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307875 temp) == QDF_STATUS_E_FAILURE) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007876 status = false;
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08007877 hdd_err("Could not pass on WNI_CFG_VHT_BASIC_MCS_SET to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007878 }
7879
7880 sme_cfg_get_int(hdd_ctx->hHal, WNI_CFG_VHT_RX_MCS_MAP, &temp);
7881 temp = (temp & 0xFFFC) | hdd_config->vhtRxMCS;
7882 if (hdd_config->enable2x2)
7883 temp = (temp & 0xFFF3) | (hdd_config->vhtRxMCS2x2 << 2);
7884 else
7885 temp |= 0x000C;
7886
7887 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_VHT_RX_MCS_MAP,
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307888 temp) == QDF_STATUS_E_FAILURE) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007889 status = false;
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08007890 hdd_err("Could not pass on WNI_CFG_VHT_RX_MCS_MAP to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007891 }
7892
7893 sme_cfg_get_int(hdd_ctx->hHal, WNI_CFG_VHT_TX_MCS_MAP, &temp);
7894 temp = (temp & 0xFFFC) | hdd_config->vhtTxMCS;
7895 if (hdd_config->enable2x2)
7896 temp = (temp & 0xFFF3) | (hdd_config->vhtTxMCS2x2 << 2);
7897 else
7898 temp |= 0x000C;
7899
7900 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_VHT_TX_MCS_MAP,
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307901 temp) == QDF_STATUS_E_FAILURE) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007902 status = false;
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08007903 hdd_err("Could not pass on WNI_CFG_VHT_TX_MCS_MAP to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007904 }
7905
7906#define WLAN_HDD_RX_MCS_ALL_NSTREAM_RATES 0xff
7907 val = SIZE_OF_SUPPORTED_MCS_SET;
7908 sme_cfg_get_str(hdd_ctx->hHal, WNI_CFG_SUPPORTED_MCS_SET,
7909 mcs_set_temp, &val);
7910
7911 mcs_set[0] = mcs_set_temp[0];
7912 if (hdd_config->enable2x2)
7913 for (val = 0; val < nss; val++)
7914 mcs_set[val] = WLAN_HDD_RX_MCS_ALL_NSTREAM_RATES;
7915
7916 if (sme_cfg_set_str(hdd_ctx->hHal, WNI_CFG_SUPPORTED_MCS_SET,
7917 mcs_set,
7918 SIZE_OF_SUPPORTED_MCS_SET) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307919 QDF_STATUS_E_FAILURE) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007920 status = false;
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08007921 hdd_err("Could not pass on MCS SET to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007922 }
7923#undef WLAN_HDD_RX_MCS_ALL_NSTREAM_RATES
7924
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307925 if (QDF_STATUS_SUCCESS != sme_update_nss(hdd_ctx->hHal, nss))
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007926 status = false;
7927
Tushnim Bhattacharyya7e546692017-03-23 18:30:29 -07007928 hdd_set_policy_mgr_user_cfg(hdd_ctx);
7929
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307930 return (status == false) ? QDF_STATUS_E_FAILURE : QDF_STATUS_SUCCESS;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007931}