blob: 6e69b7206480c667f7c8b3b3104bc030d96261d7 [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
178static void
179cb_notify_set_neighbor_results_refresh_period(hdd_context_t *pHddCtx,
180 unsigned long notifyId)
181{
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800182 sme_set_neighbor_scan_refresh_period(pHddCtx->hHal, 0,
183 pHddCtx->config->
184 nNeighborResultsRefreshPeriod);
185}
186
187static void
188cb_notify_set_empty_scan_refresh_period(hdd_context_t *pHddCtx,
189 unsigned long notifyId)
190{
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800191 sme_update_empty_scan_refresh_period(pHddCtx->hHal, 0,
192 pHddCtx->config->
193 nEmptyScanRefreshPeriod);
194}
195
196static void
197cb_notify_set_neighbor_scan_min_chan_time(hdd_context_t *pHddCtx,
198 unsigned long notifyId)
199{
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800200 sme_set_neighbor_scan_min_chan_time(pHddCtx->hHal,
201 pHddCtx->config->
202 nNeighborScanMinChanTime, 0);
203}
204
205static void
206cb_notify_set_neighbor_scan_max_chan_time(hdd_context_t *pHddCtx,
207 unsigned long notifyId)
208{
209 sme_set_neighbor_scan_max_chan_time(pHddCtx->hHal, 0,
210 pHddCtx->config->
211 nNeighborScanMaxChanTime);
212}
213
214static void cb_notify_set_roam_bmiss_first_bcnt(hdd_context_t *pHddCtx,
215 unsigned long notifyId)
216{
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800217 sme_set_roam_bmiss_first_bcnt(pHddCtx->hHal,
218 0, pHddCtx->config->nRoamBmissFirstBcnt);
219}
220
221static void cb_notify_set_roam_bmiss_final_bcnt(hdd_context_t *pHddCtx,
222 unsigned long notifyId)
223{
224 sme_set_roam_bmiss_final_bcnt(pHddCtx->hHal, 0,
225 pHddCtx->config->nRoamBmissFinalBcnt);
226}
227
228static void cb_notify_set_roam_beacon_rssi_weight(hdd_context_t *pHddCtx,
229 unsigned long notifyId)
230{
231 sme_set_roam_beacon_rssi_weight(pHddCtx->hHal, 0,
232 pHddCtx->config->nRoamBeaconRssiWeight);
233}
234
235static void
236cb_notify_set_dfs_scan_mode(hdd_context_t *pHddCtx, unsigned long notifyId)
237{
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800238 sme_update_dfs_scan_mode(pHddCtx->hHal, 0,
239 pHddCtx->config->allowDFSChannelRoam);
240}
241
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800242static void cb_notify_set_enable_ssr(hdd_context_t *pHddCtx,
243 unsigned long notifyId)
244{
245 sme_update_enable_ssr(pHddCtx->hHal, pHddCtx->config->enableSSR);
246}
247
248static void cb_notify_set_g_sap_preferred_chan_location(hdd_context_t *pHddCtx,
249 unsigned long notifyId)
250{
251 wlansap_set_dfs_preferred_channel_location(pHddCtx->hHal,
252 pHddCtx->config->
253 gSapPreferredChanLocation);
254}
255static void ch_notify_set_g_disable_dfs_japan_w53(hdd_context_t *pHddCtx,
256 unsigned long notifyId)
257{
258 wlansap_set_dfs_restrict_japan_w53(pHddCtx->hHal,
259 pHddCtx->config->
260 gDisableDfsJapanW53);
261}
262static void
263cb_notify_update_roam_scan_offload_enabled(hdd_context_t *pHddCtx,
264 unsigned long notifyId)
265{
266 sme_update_roam_scan_offload_enabled(pHddCtx->hHal,
267 pHddCtx->config->
268 isRoamOffloadScanEnabled);
269 if (0 == pHddCtx->config->isRoamOffloadScanEnabled) {
270 pHddCtx->config->bFastRoamInConIniFeatureEnabled = 0;
271 sme_update_enable_fast_roam_in_concurrency(pHddCtx->hHal,
272 pHddCtx->config->
273 bFastRoamInConIniFeatureEnabled);
274 }
275}
276
277static void
278cb_notify_set_enable_fast_roam_in_concurrency(hdd_context_t *pHddCtx,
279 unsigned long notifyId)
280{
281 sme_update_enable_fast_roam_in_concurrency(pHddCtx->hHal,
282 pHddCtx->config->
283 bFastRoamInConIniFeatureEnabled);
284}
285
286/**
287 * cb_notify_set_roam_scan_hi_rssi_scan_params() - configure hi rssi
288 * scan params from cfg to sme.
289 * @hdd_ctx: HDD context data structure
290 * @notify_id: Identifies 1 of the 4 parameters to be modified
291 *
292 * Picks up the value from hdd configuration and passes it to SME.
293 * Return: void
294 */
295
296static void
297cb_notify_set_roam_scan_hi_rssi_scan_params(hdd_context_t *hdd_ctx,
298 unsigned long notify_id)
299{
300 int32_t val;
301
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -0700302 if (wlan_hdd_validate_context(hdd_ctx))
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800303 return;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800304
305 switch (notify_id) {
306 case eCSR_HI_RSSI_SCAN_MAXCOUNT_ID:
307 val = hdd_ctx->config->nhi_rssi_scan_max_count;
308 break;
309
310 case eCSR_HI_RSSI_SCAN_RSSI_DELTA_ID:
311 val = hdd_ctx->config->nhi_rssi_scan_rssi_delta;
312 break;
313
314 case eCSR_HI_RSSI_SCAN_DELAY_ID:
315 val = hdd_ctx->config->nhi_rssi_scan_delay;
316 break;
317
318 case eCSR_HI_RSSI_SCAN_RSSI_UB_ID:
319 val = hdd_ctx->config->nhi_rssi_scan_rssi_ub;
320 break;
321
322 default:
323 return;
324 }
325
326 sme_update_roam_scan_hi_rssi_scan_params(hdd_ctx->hHal, 0,
327 notify_id, val);
328}
329
330
Srinivas Girigowda2fb677c2017-03-25 15:35:34 -0700331struct reg_table_entry g_registry_table[] = {
Ashish Kumar Dhanotiya470af292017-05-31 20:46:00 +0530332 REG_VARIABLE(CFG_ENABLE_CONNECTED_SCAN_NAME, WLAN_PARAM_Integer,
333 struct hdd_config, enable_connected_scan,
334 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
335 CFG_ENABLE_CONNECTED_SCAN_DEFAULT,
336 CFG_ENABLE_CONNECTED_SCAN_MIN,
337 CFG_ENABLE_CONNECTED_SCAN_MAX),
338
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800339 REG_VARIABLE(CFG_RTS_THRESHOLD_NAME, WLAN_PARAM_Integer,
340 struct hdd_config, RTSThreshold,
341 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
342 CFG_RTS_THRESHOLD_DEFAULT,
343 CFG_RTS_THRESHOLD_MIN,
344 CFG_RTS_THRESHOLD_MAX),
345
346 REG_VARIABLE(CFG_FRAG_THRESHOLD_NAME, WLAN_PARAM_Integer,
347 struct hdd_config, FragmentationThreshold,
348 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
349 CFG_FRAG_THRESHOLD_DEFAULT,
350 CFG_FRAG_THRESHOLD_MIN,
351 CFG_FRAG_THRESHOLD_MAX),
352
353 REG_VARIABLE(CFG_OPERATING_CHANNEL_NAME, WLAN_PARAM_Integer,
354 struct hdd_config, OperatingChannel,
355 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
356 CFG_OPERATING_CHANNEL_DEFAULT,
357 CFG_OPERATING_CHANNEL_MIN,
358 CFG_OPERATING_CHANNEL_MAX),
359
360 REG_VARIABLE(CFG_SHORT_SLOT_TIME_ENABLED_NAME, WLAN_PARAM_Integer,
361 struct hdd_config, ShortSlotTimeEnabled,
362 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
363 CFG_SHORT_SLOT_TIME_ENABLED_DEFAULT,
364 CFG_SHORT_SLOT_TIME_ENABLED_MIN,
365 CFG_SHORT_SLOT_TIME_ENABLED_MAX),
366
367 REG_VARIABLE(CFG_11D_SUPPORT_ENABLED_NAME, WLAN_PARAM_Integer,
368 struct hdd_config, Is11dSupportEnabled,
369 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
370 CFG_11D_SUPPORT_ENABLED_DEFAULT,
371 CFG_11D_SUPPORT_ENABLED_MIN,
372 CFG_11D_SUPPORT_ENABLED_MAX),
373
374 REG_VARIABLE(CFG_11H_SUPPORT_ENABLED_NAME, WLAN_PARAM_Integer,
375 struct hdd_config, Is11hSupportEnabled,
376 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
377 CFG_11H_SUPPORT_ENABLED_DEFAULT,
378 CFG_11H_SUPPORT_ENABLED_MIN,
379 CFG_11H_SUPPORT_ENABLED_MAX),
380
381 REG_VARIABLE(CFG_COUNTRY_CODE_PRIORITY_NAME, WLAN_PARAM_Integer,
382 struct hdd_config, fSupplicantCountryCodeHasPriority,
383 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
384 CFG_COUNTRY_CODE_PRIORITY_DEFAULT,
385 CFG_COUNTRY_CODE_PRIORITY_MIN,
386 CFG_COUNTRY_CODE_PRIORITY_MAX),
387
388 REG_VARIABLE(CFG_HEARTBEAT_THRESH_24_NAME, WLAN_PARAM_Integer,
389 struct hdd_config, HeartbeatThresh24,
390 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
391 CFG_HEARTBEAT_THRESH_24_DEFAULT,
392 CFG_HEARTBEAT_THRESH_24_MIN,
393 CFG_HEARTBEAT_THRESH_24_MAX),
394
395 REG_VARIABLE_STRING(CFG_POWER_USAGE_NAME, WLAN_PARAM_String,
396 struct hdd_config, PowerUsageControl,
397 VAR_FLAGS_OPTIONAL,
398 (void *)CFG_POWER_USAGE_DEFAULT),
399
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800400 REG_VARIABLE(CFG_ENABLE_IMPS_NAME, WLAN_PARAM_Integer,
401 struct hdd_config, fIsImpsEnabled,
402 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
403 CFG_ENABLE_IMPS_DEFAULT,
404 CFG_ENABLE_IMPS_MIN,
405 CFG_ENABLE_IMPS_MAX),
406
407 REG_VARIABLE(CFG_ENABLE_PS_NAME, WLAN_PARAM_Integer,
408 struct hdd_config, is_ps_enabled,
409 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
410 CFG_ENABLE_PS_DEFAULT,
411 CFG_ENABLE_PS_MIN,
412 CFG_ENABLE_PS_MAX),
413
Kiran Kumar Lokere0ac679c2016-11-17 17:43:36 -0800414 REG_VARIABLE(CFG_AUTO_PS_ENABLE_TIMER_NAME, WLAN_PARAM_Integer,
415 struct hdd_config, auto_bmps_timer_val,
416 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
417 CFG_AUTO_PS_ENABLE_TIMER_DEFAULT,
418 CFG_AUTO_PS_ENABLE_TIMER_MIN,
419 CFG_AUTO_PS_ENABLE_TIMER_MAX),
420
Zhu Jianmin04392c42017-05-12 16:34:53 +0800421#ifdef WLAN_ICMP_DISABLE_PS
422 REG_VARIABLE(CFG_ICMP_DISABLE_PS_NAME, WLAN_PARAM_Integer,
423 struct hdd_config, icmp_disable_ps_val,
424 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
425 CFG_ICMP_DISABLE_PS_DEFAULT,
426 CFG_ICMP_DISABLE_PS_MIN,
427 CFG_ICMP_DISABLE_PS_MAX),
428#endif
429
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800430 REG_VARIABLE(CFG_BMPS_MINIMUM_LI_NAME, WLAN_PARAM_Integer,
431 struct hdd_config, nBmpsMinListenInterval,
432 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
433 CFG_BMPS_MINIMUM_LI_DEFAULT,
434 CFG_BMPS_MINIMUM_LI_MIN,
435 CFG_BMPS_MINIMUM_LI_MAX),
436
437 REG_VARIABLE(CFG_BMPS_MAXIMUM_LI_NAME, WLAN_PARAM_Integer,
438 struct hdd_config, nBmpsMaxListenInterval,
439 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
440 CFG_BMPS_MAXIMUM_LI_DEFAULT,
441 CFG_BMPS_MAXIMUM_LI_MIN,
442 CFG_BMPS_MAXIMUM_LI_MAX),
443
444 REG_VARIABLE(CFG_BMPS_MODERATE_LI_NAME, WLAN_PARAM_Integer,
445 struct hdd_config, nBmpsModListenInterval,
446 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
447 CFG_BMPS_MODERATE_LI_DEFAULT,
448 CFG_BMPS_MODERATE_LI_MIN,
449 CFG_BMPS_MODERATE_LI_MAX),
450
451 REG_VARIABLE(CFG_DOT11_MODE_NAME, WLAN_PARAM_Integer,
452 struct hdd_config, dot11Mode,
453 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
454 CFG_DOT11_MODE_DEFAULT,
455 CFG_DOT11_MODE_MIN,
456 CFG_DOT11_MODE_MAX),
457
458 REG_VARIABLE(CFG_CHANNEL_BONDING_MODE_24GHZ_NAME, WLAN_PARAM_Integer,
459 struct hdd_config, nChannelBondingMode24GHz,
460 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
461 CFG_CHANNEL_BONDING_MODE_DEFAULT,
462 CFG_CHANNEL_BONDING_MODE_MIN,
463 CFG_CHANNEL_BONDING_MODE_MAX),
464
465 REG_VARIABLE(CFG_CHANNEL_BONDING_MODE_5GHZ_NAME, WLAN_PARAM_Integer,
466 struct hdd_config, nChannelBondingMode5GHz,
467 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
468 CFG_CHANNEL_BONDING_MODE_DEFAULT,
469 CFG_CHANNEL_BONDING_MODE_MIN,
470 CFG_CHANNEL_BONDING_MODE_MAX),
471
472 REG_VARIABLE(CFG_MAX_RX_AMPDU_FACTOR_NAME, WLAN_PARAM_Integer,
473 struct hdd_config, MaxRxAmpduFactor,
474 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
475 CFG_MAX_RX_AMPDU_FACTOR_DEFAULT,
476 CFG_MAX_RX_AMPDU_FACTOR_MIN,
477 CFG_MAX_RX_AMPDU_FACTOR_MAX),
478
Krishna Kumaar Natarajan22b59a72015-11-23 18:54:58 -0800479 REG_VARIABLE(CFG_HT_MPDU_DENSITY_NAME, WLAN_PARAM_Integer,
480 struct hdd_config, ht_mpdu_density,
Jeff Johnson03294f12016-12-09 17:10:24 -0800481 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
Krishna Kumaar Natarajan22b59a72015-11-23 18:54:58 -0800482 CFG_HT_MPDU_DENSITY_DEFAULT,
483 CFG_HT_MPDU_DENSITY_MIN,
484 CFG_HT_MPDU_DENSITY_MAX),
485
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800486 REG_VARIABLE(CFG_FIXED_RATE_NAME, WLAN_PARAM_Integer,
487 struct hdd_config, TxRate,
488 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
489 CFG_FIXED_RATE_DEFAULT,
490 CFG_FIXED_RATE_MIN,
491 CFG_FIXED_RATE_MAX),
492
493 REG_VARIABLE(CFG_SHORT_GI_20MHZ_NAME, WLAN_PARAM_Integer,
494 struct hdd_config, ShortGI20MhzEnable,
495 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
496 CFG_SHORT_GI_20MHZ_DEFAULT,
497 CFG_SHORT_GI_20MHZ_MIN,
498 CFG_SHORT_GI_20MHZ_MAX),
499
500 REG_VARIABLE(CFG_SCAN_RESULT_AGE_COUNT_NAME, WLAN_PARAM_Integer,
501 struct hdd_config, ScanResultAgeCount,
502 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
503 CFG_SCAN_RESULT_AGE_COUNT_DEFAULT,
504 CFG_SCAN_RESULT_AGE_COUNT_MIN,
505 CFG_SCAN_RESULT_AGE_COUNT_MAX),
506
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800507 REG_VARIABLE(CFG_RSSI_CATEGORY_GAP_NAME, WLAN_PARAM_Integer,
508 struct hdd_config, nRssiCatGap,
509 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
510 CFG_RSSI_CATEGORY_GAP_DEFAULT,
511 CFG_RSSI_CATEGORY_GAP_MIN,
512 CFG_RSSI_CATEGORY_GAP_MAX),
513
514 REG_VARIABLE(CFG_SHORT_PREAMBLE_NAME, WLAN_PARAM_Integer,
515 struct hdd_config, fIsShortPreamble,
516 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
517 CFG_SHORT_PREAMBLE_DEFAULT,
518 CFG_SHORT_PREAMBLE_MIN,
519 CFG_SHORT_PREAMBLE_MAX),
520
521 REG_VARIABLE_STRING(CFG_IBSS_BSSID_NAME, WLAN_PARAM_MacAddr,
522 struct hdd_config, IbssBssid,
523 VAR_FLAGS_OPTIONAL,
524 (void *)CFG_IBSS_BSSID_DEFAULT),
525
526 REG_VARIABLE_STRING(CFG_INTF0_MAC_ADDR_NAME, WLAN_PARAM_MacAddr,
527 struct hdd_config, intfMacAddr[0],
528 VAR_FLAGS_OPTIONAL,
529 (void *)CFG_INTF0_MAC_ADDR_DEFAULT),
530
531 REG_VARIABLE_STRING(CFG_INTF1_MAC_ADDR_NAME, WLAN_PARAM_MacAddr,
532 struct hdd_config, intfMacAddr[1],
533 VAR_FLAGS_OPTIONAL,
534 (void *)CFG_INTF1_MAC_ADDR_DEFAULT),
535
536 REG_VARIABLE_STRING(CFG_INTF2_MAC_ADDR_NAME, WLAN_PARAM_MacAddr,
537 struct hdd_config, intfMacAddr[2],
538 VAR_FLAGS_OPTIONAL,
539 (void *)CFG_INTF2_MAC_ADDR_DEFAULT),
540
541 REG_VARIABLE_STRING(CFG_INTF3_MAC_ADDR_NAME, WLAN_PARAM_MacAddr,
542 struct hdd_config, intfMacAddr[3],
543 VAR_FLAGS_OPTIONAL,
544 (void *)CFG_INTF3_MAC_ADDR_DEFAULT),
545
546 REG_VARIABLE(CFG_AP_QOS_UAPSD_MODE_NAME, WLAN_PARAM_Integer,
547 struct hdd_config, apUapsdEnabled,
548 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
549 CFG_AP_QOS_UAPSD_MODE_DEFAULT,
550 CFG_AP_QOS_UAPSD_MODE_MIN,
551 CFG_AP_QOS_UAPSD_MODE_MAX),
552
553
554 REG_VARIABLE(CFG_AP_ENABLE_RANDOM_BSSID_NAME, WLAN_PARAM_Integer,
555 struct hdd_config, apRandomBssidEnabled,
556 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
557 CFG_AP_ENABLE_RANDOM_BSSID_DEFAULT,
558 CFG_AP_ENABLE_RANDOM_BSSID_MIN,
559 CFG_AP_ENABLE_RANDOM_BSSID_MAX),
560
561 REG_VARIABLE(CFG_AP_ENABLE_PROTECTION_MODE_NAME, WLAN_PARAM_Integer,
562 struct hdd_config, apProtEnabled,
563 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
564 CFG_AP_ENABLE_PROTECTION_MODE_DEFAULT,
565 CFG_AP_ENABLE_PROTECTION_MODE_MIN,
566 CFG_AP_ENABLE_PROTECTION_MODE_MAX),
567
568 REG_VARIABLE(CFG_AP_PROTECTION_MODE_NAME, WLAN_PARAM_HexInteger,
569 struct hdd_config, apProtection,
570 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
571 CFG_AP_PROTECTION_MODE_DEFAULT,
572 CFG_AP_PROTECTION_MODE_MIN,
573 CFG_AP_PROTECTION_MODE_MAX),
574
575 REG_VARIABLE(CFG_AP_OBSS_PROTECTION_MODE_NAME, WLAN_PARAM_Integer,
576 struct hdd_config, apOBSSProtEnabled,
577 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
578 CFG_AP_OBSS_PROTECTION_MODE_DEFAULT,
579 CFG_AP_OBSS_PROTECTION_MODE_MIN,
580 CFG_AP_OBSS_PROTECTION_MODE_MAX),
581
582 REG_VARIABLE(CFG_AP_STA_SECURITY_SEPERATION_NAME, WLAN_PARAM_Integer,
583 struct hdd_config, apDisableIntraBssFwd,
584 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
585 CFG_AP_STA_SECURITY_SEPERATION_DEFAULT,
586 CFG_AP_STA_SECURITY_SEPERATION_MIN,
587 CFG_AP_STA_SECURITY_SEPERATION_MAX),
588
589 REG_VARIABLE(CFG_ENABLE_LTE_COEX, WLAN_PARAM_Integer,
590 struct hdd_config, enableLTECoex,
591 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
592 CFG_ENABLE_LTE_COEX_DEFAULT,
593 CFG_ENABLE_LTE_COEX_MIN,
594 CFG_ENABLE_LTE_COEX_MAX),
595 REG_VARIABLE(CFG_FORCE_SAP_ACS, WLAN_PARAM_Integer,
596 struct hdd_config, force_sap_acs,
597 VAR_FLAGS_DYNAMIC_CFG |
598 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
599 CFG_FORCE_SAP_ACS_DEFAULT,
600 CFG_FORCE_SAP_ACS_MIN,
601 CFG_FORCE_SAP_ACS_MAX),
602
603 REG_VARIABLE(CFG_FORCE_SAP_ACS_START_CH, WLAN_PARAM_Integer,
604 struct hdd_config, force_sap_acs_st_ch,
605 VAR_FLAGS_DYNAMIC_CFG |
606 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
607 CFG_FORCE_SAP_ACS_START_CH_DEFAULT,
608 CFG_FORCE_SAP_ACS_START_CH_MIN,
609 CFG_FORCE_SAP_ACS_START_CH_MAX),
610
611 REG_VARIABLE(CFG_FORCE_SAP_ACS_END_CH, WLAN_PARAM_Integer,
612 struct hdd_config, force_sap_acs_end_ch,
613 VAR_FLAGS_DYNAMIC_CFG |
614 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
615 CFG_FORCE_SAP_ACS_END_CH_DEFAULT,
616 CFG_FORCE_SAP_ACS_END_CH_MIN,
617 CFG_FORCE_SAP_ACS_END_CH_MAX),
618
619 REG_VARIABLE(CFG_AP_KEEP_ALIVE_PERIOD_NAME, WLAN_PARAM_Integer,
620 struct hdd_config, apKeepAlivePeriod,
621 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
622 CFG_AP_KEEP_ALIVE_PERIOD_DEFAULT,
623 CFG_AP_KEEP_ALIVE_PERIOD_MIN,
624 CFG_AP_KEEP_ALIVE_PERIOD_MAX),
625
626 REG_VARIABLE(CFG_GO_KEEP_ALIVE_PERIOD_NAME, WLAN_PARAM_Integer,
627 struct hdd_config, goKeepAlivePeriod,
628 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
629 CFG_GO_KEEP_ALIVE_PERIOD_DEFAULT,
630 CFG_GO_KEEP_ALIVE_PERIOD_MIN,
631 CFG_GO_KEEP_ALIVE_PERIOD_MAX),
632
633 REG_VARIABLE(CFG_AP_LINK_MONITOR_PERIOD_NAME, WLAN_PARAM_Integer,
634 struct hdd_config, apLinkMonitorPeriod,
635 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
636 CFG_AP_LINK_MONITOR_PERIOD_DEFAULT,
637 CFG_AP_LINK_MONITOR_PERIOD_MIN,
638 CFG_AP_LINK_MONITOR_PERIOD_MAX),
639
640 REG_VARIABLE(CFG_GO_LINK_MONITOR_PERIOD_NAME, WLAN_PARAM_Integer,
641 struct hdd_config, goLinkMonitorPeriod,
642 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
643 CFG_GO_LINK_MONITOR_PERIOD_DEFAULT,
644 CFG_GO_LINK_MONITOR_PERIOD_MIN,
645 CFG_GO_LINK_MONITOR_PERIOD_MAX),
646
647 REG_VARIABLE(CFG_DISABLE_PACKET_FILTER, WLAN_PARAM_Integer,
648 struct hdd_config, disablePacketFilter,
649 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
650 CFG_DISABLE_PACKET_FILTER_DEFAULT,
651 CFG_DISABLE_PACKET_FILTER_MIN,
652 CFG_DISABLE_PACKET_FILTER_MAX),
653
654 REG_VARIABLE(CFG_BEACON_INTERVAL_NAME, WLAN_PARAM_Integer,
655 struct hdd_config, nBeaconInterval,
656 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
657 CFG_BEACON_INTERVAL_DEFAULT,
658 CFG_BEACON_INTERVAL_MIN,
659 CFG_BEACON_INTERVAL_MAX),
660
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800661 REG_VARIABLE(CFG_VCC_RSSI_TRIGGER_NAME, WLAN_PARAM_Integer,
662 struct hdd_config, nVccRssiTrigger,
663 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
664 CFG_VCC_RSSI_TRIGGER_DEFAULT,
665 CFG_VCC_RSSI_TRIGGER_MIN,
666 CFG_VCC_RSSI_TRIGGER_MAX),
667
668 REG_VARIABLE(CFG_VCC_UL_MAC_LOSS_THRESH_NAME, WLAN_PARAM_Integer,
669 struct hdd_config, nVccUlMacLossThreshold,
670 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
671 CFG_VCC_UL_MAC_LOSS_THRESH_DEFAULT,
672 CFG_VCC_UL_MAC_LOSS_THRESH_MIN,
673 CFG_VCC_UL_MAC_LOSS_THRESH_MAX),
674
675 REG_VARIABLE(CFG_PASSIVE_MAX_CHANNEL_TIME_NAME, WLAN_PARAM_Integer,
676 struct hdd_config, nPassiveMaxChnTime,
677 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
678 CFG_PASSIVE_MAX_CHANNEL_TIME_DEFAULT,
679 CFG_PASSIVE_MAX_CHANNEL_TIME_MIN,
680 CFG_PASSIVE_MAX_CHANNEL_TIME_MAX),
681
682 REG_VARIABLE(CFG_PASSIVE_MIN_CHANNEL_TIME_NAME, WLAN_PARAM_Integer,
683 struct hdd_config, nPassiveMinChnTime,
684 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
685 CFG_PASSIVE_MIN_CHANNEL_TIME_DEFAULT,
686 CFG_PASSIVE_MIN_CHANNEL_TIME_MIN,
687 CFG_PASSIVE_MIN_CHANNEL_TIME_MAX),
688
689 REG_VARIABLE(CFG_ACTIVE_MAX_CHANNEL_TIME_NAME, WLAN_PARAM_Integer,
690 struct hdd_config, nActiveMaxChnTime,
691 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
692 CFG_ACTIVE_MAX_CHANNEL_TIME_DEFAULT,
693 CFG_ACTIVE_MAX_CHANNEL_TIME_MIN,
694 CFG_ACTIVE_MAX_CHANNEL_TIME_MAX),
695
696 REG_VARIABLE(CFG_ACTIVE_MIN_CHANNEL_TIME_NAME, WLAN_PARAM_Integer,
697 struct hdd_config, nActiveMinChnTime,
698 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
699 CFG_ACTIVE_MIN_CHANNEL_TIME_DEFAULT,
700 CFG_ACTIVE_MIN_CHANNEL_TIME_MIN,
701 CFG_ACTIVE_MIN_CHANNEL_TIME_MAX),
702
703 REG_VARIABLE(CFG_RETRY_LIMIT_ZERO_NAME, WLAN_PARAM_Integer,
704 struct hdd_config, retryLimitZero,
705 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
706 CFG_RETRY_LIMIT_ZERO_DEFAULT,
707 CFG_RETRY_LIMIT_ZERO_MIN,
708 CFG_RETRY_LIMIT_ZERO_MAX),
709
710 REG_VARIABLE(CFG_RETRY_LIMIT_ONE_NAME, WLAN_PARAM_Integer,
711 struct hdd_config, retryLimitOne,
712 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
713 CFG_RETRY_LIMIT_ONE_DEFAULT,
714 CFG_RETRY_LIMIT_ONE_MIN,
715 CFG_RETRY_LIMIT_ONE_MAX),
716
717 REG_VARIABLE(CFG_RETRY_LIMIT_TWO_NAME, WLAN_PARAM_Integer,
718 struct hdd_config, retryLimitTwo,
719 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
720 CFG_RETRY_LIMIT_TWO_DEFAULT,
721 CFG_RETRY_LIMIT_TWO_MIN,
722 CFG_RETRY_LIMIT_TWO_MAX),
723
724#ifdef WLAN_AP_STA_CONCURRENCY
725 REG_VARIABLE(CFG_PASSIVE_MAX_CHANNEL_TIME_CONC_NAME, WLAN_PARAM_Integer,
726 struct hdd_config, nPassiveMaxChnTimeConc,
727 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
728 CFG_PASSIVE_MAX_CHANNEL_TIME_CONC_DEFAULT,
729 CFG_PASSIVE_MAX_CHANNEL_TIME_CONC_MIN,
730 CFG_PASSIVE_MAX_CHANNEL_TIME_CONC_MAX),
731
732 REG_VARIABLE(CFG_PASSIVE_MIN_CHANNEL_TIME_CONC_NAME, WLAN_PARAM_Integer,
733 struct hdd_config, nPassiveMinChnTimeConc,
734 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
735 CFG_PASSIVE_MIN_CHANNEL_TIME_CONC_DEFAULT,
736 CFG_PASSIVE_MIN_CHANNEL_TIME_CONC_MIN,
737 CFG_PASSIVE_MIN_CHANNEL_TIME_CONC_MAX),
738
739 REG_VARIABLE(CFG_ACTIVE_MAX_CHANNEL_TIME_CONC_NAME, WLAN_PARAM_Integer,
740 struct hdd_config, nActiveMaxChnTimeConc,
741 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
742 CFG_ACTIVE_MAX_CHANNEL_TIME_CONC_DEFAULT,
743 CFG_ACTIVE_MAX_CHANNEL_TIME_CONC_MIN,
744 CFG_ACTIVE_MAX_CHANNEL_TIME_CONC_MAX),
745
746 REG_VARIABLE(CFG_ACTIVE_MIN_CHANNEL_TIME_CONC_NAME, WLAN_PARAM_Integer,
747 struct hdd_config, nActiveMinChnTimeConc,
748 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
749 CFG_ACTIVE_MIN_CHANNEL_TIME_CONC_DEFAULT,
750 CFG_ACTIVE_MIN_CHANNEL_TIME_CONC_MIN,
751 CFG_ACTIVE_MIN_CHANNEL_TIME_CONC_MAX),
752
753 REG_VARIABLE(CFG_REST_TIME_CONC_NAME, WLAN_PARAM_Integer,
754 struct hdd_config, nRestTimeConc,
755 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
756 CFG_REST_TIME_CONC_DEFAULT,
757 CFG_REST_TIME_CONC_MIN,
758 CFG_REST_TIME_CONC_MAX),
759
Agrawal Ashish17bb3902016-05-05 13:29:40 +0530760 REG_VARIABLE(CFG_MIN_REST_TIME_NAME, WLAN_PARAM_Integer,
761 struct hdd_config, min_rest_time_conc,
762 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
763 CFG_MIN_REST_TIME_DEFAULT,
764 CFG_MIN_REST_TIME_MIN,
765 CFG_MIN_REST_TIME_MAX),
766
Jeff Johnson03294f12016-12-09 17:10:24 -0800767 REG_VARIABLE(CFG_IDLE_TIME_NAME, WLAN_PARAM_Integer,
Agrawal Ashish17bb3902016-05-05 13:29:40 +0530768 struct hdd_config, idle_time_conc,
769 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
770 CFG_IDLE_TIME_DEFAULT,
771 CFG_IDLE_TIME_MIN,
Jeff Johnson03294f12016-12-09 17:10:24 -0800772 CFG_IDLE_TIME_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800773#endif
774
775 REG_VARIABLE(CFG_MAX_PS_POLL_NAME, WLAN_PARAM_Integer,
776 struct hdd_config, nMaxPsPoll,
777 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
778 CFG_MAX_PS_POLL_DEFAULT,
779 CFG_MAX_PS_POLL_MIN,
780 CFG_MAX_PS_POLL_MAX),
781
782 REG_VARIABLE(CFG_MAX_TX_POWER_NAME, WLAN_PARAM_Integer,
783 struct hdd_config, nTxPowerCap,
784 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
785 CFG_MAX_TX_POWER_DEFAULT,
786 CFG_MAX_TX_POWER_MIN,
787 CFG_MAX_TX_POWER_MAX),
788
Padma, Santhosh Kumar29df3622016-08-16 19:15:16 +0530789 REG_VARIABLE(CFG_TX_POWER_CTRL_NAME, WLAN_PARAM_Integer,
790 struct hdd_config, allow_tpc_from_ap,
791 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
792 CFG_TX_POWER_CTRL_DEFAULT,
793 CFG_TX_POWER_CTRL_MIN,
794 CFG_TX_POWER_CTRL_MAX),
795
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800796 REG_VARIABLE(CFG_LOW_GAIN_OVERRIDE_NAME, WLAN_PARAM_Integer,
797 struct hdd_config, fIsLowGainOverride,
798 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
799 CFG_LOW_GAIN_OVERRIDE_DEFAULT,
800 CFG_LOW_GAIN_OVERRIDE_MIN,
801 CFG_LOW_GAIN_OVERRIDE_MAX),
802
803 REG_VARIABLE(CFG_RSSI_FILTER_PERIOD_NAME, WLAN_PARAM_Integer,
804 struct hdd_config, nRssiFilterPeriod,
805 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
806 CFG_RSSI_FILTER_PERIOD_DEFAULT,
807 CFG_RSSI_FILTER_PERIOD_MIN,
808 CFG_RSSI_FILTER_PERIOD_MAX),
809
810 REG_VARIABLE(CFG_IGNORE_DTIM_NAME, WLAN_PARAM_Integer,
811 struct hdd_config, fIgnoreDtim,
812 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
813 CFG_IGNORE_DTIM_DEFAULT,
814 CFG_IGNORE_DTIM_MIN,
815 CFG_IGNORE_DTIM_MAX),
816
817 REG_VARIABLE(CFG_MAX_LI_MODULATED_DTIM_NAME, WLAN_PARAM_Integer,
818 struct hdd_config, fMaxLIModulatedDTIM,
819 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
820 CFG_MAX_LI_MODULATED_DTIM_DEFAULT,
821 CFG_MAX_LI_MODULATED_DTIM_MIN,
822 CFG_MAX_LI_MODULATED_DTIM_MAX),
823
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800824 REG_VARIABLE(CFG_FW_HEART_BEAT_MONITORING_NAME, WLAN_PARAM_Integer,
825 struct hdd_config, fEnableFwHeartBeatMonitoring,
826 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
827 CFG_FW_HEART_BEAT_MONITORING_DEFAULT,
828 CFG_FW_HEART_BEAT_MONITORING_MIN,
829 CFG_FW_HEART_BEAT_MONITORING_MAX),
830
831 REG_VARIABLE(CFG_FW_BEACON_FILTERING_NAME, WLAN_PARAM_Integer,
832 struct hdd_config, fEnableFwBeaconFiltering,
833 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
834 CFG_FW_BEACON_FILTERING_DEFAULT,
835 CFG_FW_BEACON_FILTERING_MIN,
836 CFG_FW_BEACON_FILTERING_MAX),
837
838 REG_DYNAMIC_VARIABLE(CFG_FW_RSSI_MONITORING_NAME, WLAN_PARAM_Integer,
839 struct hdd_config, fEnableFwRssiMonitoring,
840 VAR_FLAGS_OPTIONAL |
841 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
842 CFG_FW_RSSI_MONITORING_DEFAULT,
843 CFG_FW_RSSI_MONITORING_MIN,
844 CFG_FW_RSSI_MONITORING_MAX,
845 cb_notify_set_fw_rssi_monitoring, 0),
846
847 REG_VARIABLE(CFG_FW_MCC_RTS_CTS_PROT_NAME, WLAN_PARAM_Integer,
848 struct hdd_config, mcc_rts_cts_prot_enable,
849 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
850 CFG_FW_MCC_RTS_CTS_PROT_DEFAULT,
851 CFG_FW_MCC_RTS_CTS_PROT_MIN,
852 CFG_FW_MCC_RTS_CTS_PROT_MAX),
853
854 REG_VARIABLE(CFG_FW_MCC_BCAST_PROB_RESP_NAME, WLAN_PARAM_Integer,
855 struct hdd_config, mcc_bcast_prob_resp_enable,
856 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
857 CFG_FW_MCC_BCAST_PROB_RESP_DEFAULT,
858 CFG_FW_MCC_BCAST_PROB_RESP_MIN,
859 CFG_FW_MCC_BCAST_PROB_RESP_MAX),
860
861 REG_VARIABLE(CFG_DATA_INACTIVITY_TIMEOUT_NAME, WLAN_PARAM_Integer,
862 struct hdd_config, nDataInactivityTimeout,
863 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
864 CFG_DATA_INACTIVITY_TIMEOUT_DEFAULT,
865 CFG_DATA_INACTIVITY_TIMEOUT_MIN,
866 CFG_DATA_INACTIVITY_TIMEOUT_MAX),
867
Mukul Sharmaed92f2f2017-04-20 00:06:28 +0530868 REG_VARIABLE(CFG_WOW_DATA_INACTIVITY_TIMEOUT_NAME, WLAN_PARAM_Integer,
869 struct hdd_config, wow_data_inactivity_timeout,
870 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
871 CFG_WOW_DATA_INACTIVITY_TIMEOUT_DEFAULT,
872 CFG_WOW_DATA_INACTIVITY_TIMEOUT_MIN,
873 CFG_WOW_DATA_INACTIVITY_TIMEOUT_MAX),
874
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800875 REG_VARIABLE(CFG_QOS_WMM_MODE_NAME, WLAN_PARAM_Integer,
876 struct hdd_config, WmmMode,
877 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
878 CFG_QOS_WMM_MODE_DEFAULT,
879 CFG_QOS_WMM_MODE_MIN,
880 CFG_QOS_WMM_MODE_MAX),
881
882 REG_VARIABLE(CFG_QOS_WMM_80211E_ENABLED_NAME, WLAN_PARAM_Integer,
883 struct hdd_config, b80211eIsEnabled,
884 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
885 CFG_QOS_WMM_80211E_ENABLED_DEFAULT,
886 CFG_QOS_WMM_80211E_ENABLED_MIN,
887 CFG_QOS_WMM_80211E_ENABLED_MAX),
888
889 REG_VARIABLE(CFG_QOS_WMM_UAPSD_MASK_NAME, WLAN_PARAM_HexInteger,
890 struct hdd_config, UapsdMask,
891 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
892 CFG_QOS_WMM_UAPSD_MASK_DEFAULT,
893 CFG_QOS_WMM_UAPSD_MASK_MIN,
894 CFG_QOS_WMM_UAPSD_MASK_MAX),
895
896 REG_VARIABLE(CFG_QOS_WMM_INFRA_UAPSD_VO_SRV_INTV_NAME,
897 WLAN_PARAM_Integer,
898 struct hdd_config, InfraUapsdVoSrvIntv,
899 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
900 CFG_QOS_WMM_INFRA_UAPSD_VO_SRV_INTV_DEFAULT,
901 CFG_QOS_WMM_INFRA_UAPSD_VO_SRV_INTV_MIN,
902 CFG_QOS_WMM_INFRA_UAPSD_VO_SRV_INTV_MAX),
903
904 REG_VARIABLE(CFG_QOS_WMM_INFRA_UAPSD_VO_SUS_INTV_NAME,
905 WLAN_PARAM_Integer,
906 struct hdd_config, InfraUapsdVoSuspIntv,
907 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
908 CFG_QOS_WMM_INFRA_UAPSD_VO_SUS_INTV_DEFAULT,
909 CFG_QOS_WMM_INFRA_UAPSD_VO_SUS_INTV_MIN,
910 CFG_QOS_WMM_INFRA_UAPSD_VO_SUS_INTV_MAX),
911
912 REG_VARIABLE(CFG_QOS_WMM_INFRA_UAPSD_VI_SRV_INTV_NAME,
913 WLAN_PARAM_Integer,
914 struct hdd_config, InfraUapsdViSrvIntv,
915 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
916 CFG_QOS_WMM_INFRA_UAPSD_VI_SRV_INTV_DEFAULT,
917 CFG_QOS_WMM_INFRA_UAPSD_VI_SRV_INTV_MIN,
918 CFG_QOS_WMM_INFRA_UAPSD_VI_SRV_INTV_MAX),
919
920 REG_VARIABLE(CFG_QOS_WMM_INFRA_UAPSD_VI_SUS_INTV_NAME,
921 WLAN_PARAM_Integer,
922 struct hdd_config, InfraUapsdViSuspIntv,
923 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
924 CFG_QOS_WMM_INFRA_UAPSD_VI_SUS_INTV_DEFAULT,
925 CFG_QOS_WMM_INFRA_UAPSD_VI_SUS_INTV_MIN,
926 CFG_QOS_WMM_INFRA_UAPSD_VI_SUS_INTV_MAX),
927
928 REG_VARIABLE(CFG_QOS_WMM_INFRA_UAPSD_BE_SRV_INTV_NAME,
929 WLAN_PARAM_Integer,
930 struct hdd_config, InfraUapsdBeSrvIntv,
931 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
932 CFG_QOS_WMM_INFRA_UAPSD_BE_SRV_INTV_DEFAULT,
933 CFG_QOS_WMM_INFRA_UAPSD_BE_SRV_INTV_MIN,
934 CFG_QOS_WMM_INFRA_UAPSD_BE_SRV_INTV_MAX),
935
936 REG_VARIABLE(CFG_QOS_WMM_INFRA_UAPSD_BE_SUS_INTV_NAME,
937 WLAN_PARAM_Integer,
938 struct hdd_config, InfraUapsdBeSuspIntv,
939 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
940 CFG_QOS_WMM_INFRA_UAPSD_BE_SUS_INTV_DEFAULT,
941 CFG_QOS_WMM_INFRA_UAPSD_BE_SUS_INTV_MIN,
942 CFG_QOS_WMM_INFRA_UAPSD_BE_SUS_INTV_MAX),
943
944 REG_VARIABLE(CFG_QOS_WMM_INFRA_UAPSD_BK_SRV_INTV_NAME,
945 WLAN_PARAM_Integer,
946 struct hdd_config, InfraUapsdBkSrvIntv,
947 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
948 CFG_QOS_WMM_INFRA_UAPSD_BK_SRV_INTV_DEFAULT,
949 CFG_QOS_WMM_INFRA_UAPSD_BK_SRV_INTV_MIN,
950 CFG_QOS_WMM_INFRA_UAPSD_BK_SRV_INTV_MAX),
951
952 REG_VARIABLE(CFG_QOS_WMM_INFRA_UAPSD_BK_SUS_INTV_NAME,
953 WLAN_PARAM_Integer,
954 struct hdd_config, InfraUapsdBkSuspIntv,
955 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
956 CFG_QOS_WMM_INFRA_UAPSD_BK_SUS_INTV_DEFAULT,
957 CFG_QOS_WMM_INFRA_UAPSD_BK_SUS_INTV_MIN,
958 CFG_QOS_WMM_INFRA_UAPSD_BK_SUS_INTV_MAX),
959
960#ifdef FEATURE_WLAN_ESE
961 REG_VARIABLE(CFG_QOS_WMM_INFRA_INACTIVITY_INTERVAL_NAME,
962 WLAN_PARAM_Integer,
963 struct hdd_config, InfraInactivityInterval,
964 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
965 CFG_QOS_WMM_INFRA_INACTIVITY_INTERVAL_DEFAULT,
966 CFG_QOS_WMM_INFRA_INACTIVITY_INTERVAL_MIN,
967 CFG_QOS_WMM_INFRA_INACTIVITY_INTERVAL_MAX),
968
969 REG_DYNAMIC_VARIABLE(CFG_ESE_FEATURE_ENABLED_NAME, WLAN_PARAM_Integer,
970 struct hdd_config, isEseIniFeatureEnabled,
971 VAR_FLAGS_OPTIONAL |
972 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
973 CFG_ESE_FEATURE_ENABLED_DEFAULT,
974 CFG_ESE_FEATURE_ENABLED_MIN,
975 CFG_ESE_FEATURE_ENABLED_MAX,
976 cb_notify_set_ese_feature_enabled, 0),
977#endif /* FEATURE_WLAN_ESE */
978
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800979 /* flag to turn ON/OFF Legacy Fast Roaming */
980 REG_DYNAMIC_VARIABLE(CFG_LFR_FEATURE_ENABLED_NAME, WLAN_PARAM_Integer,
981 struct hdd_config, isFastRoamIniFeatureEnabled,
982 VAR_FLAGS_OPTIONAL |
983 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
984 CFG_LFR_FEATURE_ENABLED_DEFAULT,
985 CFG_LFR_FEATURE_ENABLED_MIN,
986 CFG_LFR_FEATURE_ENABLED_MAX,
987 notify_is_fast_roam_ini_feature_enabled, 0),
988
989 /* flag to turn ON/OFF Motion assistance for Legacy Fast Roaming */
990 REG_DYNAMIC_VARIABLE(CFG_LFR_MAWC_FEATURE_ENABLED_NAME,
991 WLAN_PARAM_Integer,
992 struct hdd_config, MAWCEnabled,
993 VAR_FLAGS_OPTIONAL |
994 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
995 CFG_LFR_MAWC_FEATURE_ENABLED_DEFAULT,
996 CFG_LFR_MAWC_FEATURE_ENABLED_MIN,
997 CFG_LFR_MAWC_FEATURE_ENABLED_MAX,
998 notify_is_mawc_ini_feature_enabled, 0),
999
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001000 /* flag to turn ON/OFF 11r and ESE FastTransition */
1001 REG_DYNAMIC_VARIABLE(CFG_FAST_TRANSITION_ENABLED_NAME,
1002 WLAN_PARAM_Integer,
1003 struct hdd_config, isFastTransitionEnabled,
1004 VAR_FLAGS_OPTIONAL |
1005 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1006 CFG_FAST_TRANSITION_ENABLED_NAME_DEFAULT,
1007 CFG_FAST_TRANSITION_ENABLED_NAME_MIN,
1008 CFG_FAST_TRANSITION_ENABLED_NAME_MAX,
1009 cb_notify_set_fast_transition_enabled, 0),
1010
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07001011 /* Variable to specify the delta/difference between the
1012 * RSSI of current AP and roamable AP while roaming
Jeff Johnson78d88a82017-01-12 09:50:54 -08001013 */
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001014 REG_DYNAMIC_VARIABLE(CFG_ROAM_RSSI_DIFF_NAME, WLAN_PARAM_Integer,
1015 struct hdd_config, RoamRssiDiff,
1016 VAR_FLAGS_OPTIONAL |
1017 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1018 CFG_ROAM_RSSI_DIFF_DEFAULT,
1019 CFG_ROAM_RSSI_DIFF_MIN,
1020 CFG_ROAM_RSSI_DIFF_MAX,
1021 cb_notify_set_roam_rssi_diff, 0),
1022
1023 REG_DYNAMIC_VARIABLE(CFG_ENABLE_WES_MODE_NAME, WLAN_PARAM_Integer,
1024 struct hdd_config, isWESModeEnabled,
1025 VAR_FLAGS_OPTIONAL |
1026 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1027 CFG_ENABLE_WES_MODE_NAME_DEFAULT,
1028 CFG_ENABLE_WES_MODE_NAME_MIN,
1029 CFG_ENABLE_WES_MODE_NAME_MAX,
1030 cb_notify_set_wes_mode, 0),
Deepak Dhamdhere828f1892017-02-09 11:51:19 -08001031 REG_VARIABLE(CFG_PMKID_MODES_NAME, WLAN_PARAM_Integer,
1032 struct hdd_config, pmkid_modes,
Deepak Dhamdheref2a7d8b2016-08-19 16:17:38 -07001033 VAR_FLAGS_OPTIONAL |
1034 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
Deepak Dhamdhere828f1892017-02-09 11:51:19 -08001035 CFG_PMKID_MODES_DEFAULT,
1036 CFG_PMKID_MODES_MIN,
1037 CFG_PMKID_MODES_MAX),
1038
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001039 REG_DYNAMIC_VARIABLE(CFG_ROAM_SCAN_OFFLOAD_ENABLED, WLAN_PARAM_Integer,
1040 struct hdd_config, isRoamOffloadScanEnabled,
1041 VAR_FLAGS_OPTIONAL |
1042 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1043 CFG_ROAM_SCAN_OFFLOAD_ENABLED_DEFAULT,
1044 CFG_ROAM_SCAN_OFFLOAD_ENABLED_MIN,
1045 CFG_ROAM_SCAN_OFFLOAD_ENABLED_MAX,
1046 cb_notify_update_roam_scan_offload_enabled, 0),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001047
1048 REG_VARIABLE(CFG_QOS_WMM_INFRA_DIR_AC_VO_NAME, WLAN_PARAM_Integer,
1049 struct hdd_config, InfraDirAcVo,
1050 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1051 CFG_QOS_WMM_INFRA_DIR_AC_VO_DEFAULT,
1052 CFG_QOS_WMM_INFRA_DIR_AC_VO_MIN,
1053 CFG_QOS_WMM_INFRA_DIR_AC_VO_MAX),
1054
1055 REG_VARIABLE(CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VO_NAME,
1056 WLAN_PARAM_HexInteger,
1057 struct hdd_config, InfraNomMsduSizeAcVo,
1058 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1059 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VO_DEFAULT,
1060 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VO_MIN,
1061 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VO_MAX),
1062
1063 REG_VARIABLE(CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VO_NAME,
1064 WLAN_PARAM_HexInteger,
1065 struct hdd_config, InfraMeanDataRateAcVo,
1066 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1067 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VO_DEFAULT,
1068 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VO_MIN,
1069 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VO_MAX),
1070
1071 REG_VARIABLE(CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VO_NAME,
1072 WLAN_PARAM_HexInteger,
1073 struct hdd_config, InfraMinPhyRateAcVo,
1074 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1075 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VO_DEFAULT,
1076 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VO_MIN,
1077 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VO_MAX),
1078
1079 REG_VARIABLE(CFG_QOS_WMM_INFRA_SBA_AC_VO_NAME, WLAN_PARAM_HexInteger,
1080 struct hdd_config, InfraSbaAcVo,
1081 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1082 CFG_QOS_WMM_INFRA_SBA_AC_VO_DEFAULT,
1083 CFG_QOS_WMM_INFRA_SBA_AC_VO_MIN,
1084 CFG_QOS_WMM_INFRA_SBA_AC_VO_MAX),
1085
1086 REG_VARIABLE(CFG_QOS_WMM_INFRA_DIR_AC_VI_NAME, WLAN_PARAM_Integer,
1087 struct hdd_config, InfraDirAcVi,
1088 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1089 CFG_QOS_WMM_INFRA_DIR_AC_VI_DEFAULT,
1090 CFG_QOS_WMM_INFRA_DIR_AC_VI_MIN,
1091 CFG_QOS_WMM_INFRA_DIR_AC_VI_MAX),
1092
1093 REG_VARIABLE(CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VI_NAME,
1094 WLAN_PARAM_HexInteger,
1095 struct hdd_config, InfraNomMsduSizeAcVi,
1096 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1097 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VI_DEFAULT,
1098 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VI_MIN,
1099 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VI_MAX),
1100
1101 REG_VARIABLE(CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VI_NAME,
1102 WLAN_PARAM_HexInteger,
1103 struct hdd_config, InfraMeanDataRateAcVi,
1104 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1105 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VI_DEFAULT,
1106 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VI_MIN,
1107 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VI_MAX),
1108
1109 REG_VARIABLE(CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VI_NAME,
1110 WLAN_PARAM_HexInteger,
1111 struct hdd_config, InfraMinPhyRateAcVi,
1112 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1113 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VI_DEFAULT,
1114 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VI_MIN,
1115 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VI_MAX),
1116
1117 REG_VARIABLE(CFG_QOS_WMM_INFRA_SBA_AC_VI_NAME, WLAN_PARAM_HexInteger,
1118 struct hdd_config, InfraSbaAcVi,
1119 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1120 CFG_QOS_WMM_INFRA_SBA_AC_VI_DEFAULT,
1121 CFG_QOS_WMM_INFRA_SBA_AC_VI_MIN,
1122 CFG_QOS_WMM_INFRA_SBA_AC_VI_MAX),
1123
1124 REG_VARIABLE(CFG_QOS_WMM_INFRA_DIR_AC_BE_NAME, WLAN_PARAM_Integer,
1125 struct hdd_config, InfraDirAcBe,
1126 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1127 CFG_QOS_WMM_INFRA_DIR_AC_BE_DEFAULT,
1128 CFG_QOS_WMM_INFRA_DIR_AC_BE_MIN,
1129 CFG_QOS_WMM_INFRA_DIR_AC_BE_MAX),
1130
1131 REG_VARIABLE(CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_BE_NAME,
1132 WLAN_PARAM_HexInteger,
1133 struct hdd_config, InfraNomMsduSizeAcBe,
1134 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1135 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_BE_DEFAULT,
1136 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_BE_MIN,
1137 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_BE_MAX),
1138
1139 REG_VARIABLE(CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_BE_NAME,
1140 WLAN_PARAM_HexInteger,
1141 struct hdd_config, InfraMeanDataRateAcBe,
1142 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1143 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_BE_DEFAULT,
1144 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_BE_MIN,
1145 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_BE_MAX),
1146
1147 REG_VARIABLE(CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_BE_NAME,
1148 WLAN_PARAM_HexInteger,
1149 struct hdd_config, InfraMinPhyRateAcBe,
1150 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1151 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_BE_DEFAULT,
1152 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_BE_MIN,
1153 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_BE_MAX),
1154
1155 REG_VARIABLE(CFG_QOS_WMM_INFRA_SBA_AC_BE_NAME, WLAN_PARAM_HexInteger,
1156 struct hdd_config, InfraSbaAcBe,
1157 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1158 CFG_QOS_WMM_INFRA_SBA_AC_BE_DEFAULT,
1159 CFG_QOS_WMM_INFRA_SBA_AC_BE_MIN,
1160 CFG_QOS_WMM_INFRA_SBA_AC_BE_MAX),
1161
1162 REG_VARIABLE(CFG_QOS_WMM_INFRA_DIR_AC_BK_NAME, WLAN_PARAM_Integer,
1163 struct hdd_config, InfraDirAcBk,
1164 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1165 CFG_QOS_WMM_INFRA_DIR_AC_BK_DEFAULT,
1166 CFG_QOS_WMM_INFRA_DIR_AC_BK_MIN,
1167 CFG_QOS_WMM_INFRA_DIR_AC_BK_MAX),
1168
1169 REG_VARIABLE(CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_BK_NAME,
1170 WLAN_PARAM_HexInteger,
1171 struct hdd_config, InfraNomMsduSizeAcBk,
1172 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1173 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_BK_DEFAULT,
1174 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_BK_MIN,
1175 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_BK_MAX),
1176
1177 REG_VARIABLE(CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_BK_NAME,
1178 WLAN_PARAM_HexInteger,
1179 struct hdd_config, InfraMeanDataRateAcBk,
1180 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1181 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_BK_DEFAULT,
1182 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_BK_MIN,
1183 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_BK_MAX),
1184
1185 REG_VARIABLE(CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_BK_NAME,
1186 WLAN_PARAM_HexInteger,
1187 struct hdd_config, InfraMinPhyRateAcBk,
1188 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1189 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_BK_DEFAULT,
1190 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_BK_MIN,
1191 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_BK_MAX),
1192
1193 REG_VARIABLE(CFG_QOS_WMM_INFRA_SBA_AC_BK_NAME, WLAN_PARAM_HexInteger,
1194 struct hdd_config, InfraSbaAcBk,
1195 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1196 CFG_QOS_WMM_INFRA_SBA_AC_BK_DEFAULT,
1197 CFG_QOS_WMM_INFRA_SBA_AC_BK_MIN,
1198 CFG_QOS_WMM_INFRA_SBA_AC_BK_MAX),
1199
1200 REG_VARIABLE(CFG_TL_DELAYED_TRGR_FRM_INT_NAME, WLAN_PARAM_Integer,
1201 struct hdd_config, DelayedTriggerFrmInt,
1202 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1203 CFG_TL_DELAYED_TRGR_FRM_INT_DEFAULT,
1204 CFG_TL_DELAYED_TRGR_FRM_INT_MIN,
1205 CFG_TL_DELAYED_TRGR_FRM_INT_MAX),
1206
1207 REG_VARIABLE_STRING(CFG_WOWL_PATTERN_NAME, WLAN_PARAM_String,
1208 struct hdd_config, wowlPattern,
1209 VAR_FLAGS_OPTIONAL,
1210 (void *)CFG_WOWL_PATTERN_DEFAULT),
1211
1212 REG_VARIABLE(CFG_QOS_IMPLICIT_SETUP_ENABLED_NAME, WLAN_PARAM_Integer,
1213 struct hdd_config, bImplicitQosEnabled,
1214 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1215 CFG_QOS_IMPLICIT_SETUP_ENABLED_DEFAULT,
1216 CFG_QOS_IMPLICIT_SETUP_ENABLED_MIN,
1217 CFG_QOS_IMPLICIT_SETUP_ENABLED_MAX),
1218
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001219 REG_VARIABLE(CFG_AP_AUTO_SHUT_OFF, WLAN_PARAM_Integer,
1220 struct hdd_config, nAPAutoShutOff,
1221 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1222 CFG_AP_AUTO_SHUT_OFF_DEFAULT,
1223 CFG_AP_AUTO_SHUT_OFF_MIN,
1224 CFG_AP_AUTO_SHUT_OFF_MAX),
1225
1226#ifdef FEATURE_WLAN_MCC_TO_SCC_SWITCH
1227 REG_VARIABLE(CFG_WLAN_MCC_TO_SCC_SWITCH_MODE, WLAN_PARAM_Integer,
1228 struct hdd_config, WlanMccToSccSwitchMode,
1229 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1230 CFG_WLAN_MCC_TO_SCC_SWITCH_MODE_DEFAULT,
1231 CFG_WLAN_MCC_TO_SCC_SWITCH_MODE_MIN,
1232 CFG_WLAN_MCC_TO_SCC_SWITCH_MODE_MAX),
1233#endif
1234#ifdef FEATURE_WLAN_AUTO_SHUTDOWN
1235 REG_VARIABLE(CFG_WLAN_AUTO_SHUTDOWN, WLAN_PARAM_Integer,
1236 struct hdd_config, WlanAutoShutdown,
1237 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1238 CFG_WLAN_AUTO_SHUTDOWN_DEFAULT,
1239 CFG_WLAN_AUTO_SHUTDOWN_MIN,
1240 CFG_WLAN_AUTO_SHUTDOWN_MAX),
1241#endif
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001242 REG_VARIABLE(CFG_RRM_ENABLE_NAME, WLAN_PARAM_Integer,
1243 struct hdd_config, fRrmEnable,
1244 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1245 CFG_RRM_ENABLE_DEFAULT,
1246 CFG_RRM_ENABLE_MIN,
1247 CFG_RRM_ENABLE_MAX),
1248
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001249 REG_VARIABLE(CFG_RRM_MEAS_RANDOMIZATION_INTVL_NAME, WLAN_PARAM_Integer,
1250 struct hdd_config, nRrmRandnIntvl,
1251 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1252 CFG_RRM_MEAS_RANDOMIZATION_INTVL_DEFAULT,
1253 CFG_RRM_MEAS_RANDOMIZATION_INTVL_MIN,
1254 CFG_RRM_MEAS_RANDOMIZATION_INTVL_MAX),
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08001255
1256 REG_VARIABLE_STRING(CFG_RM_CAPABILITY_NAME, WLAN_PARAM_String,
1257 struct hdd_config, rm_capability,
1258 VAR_FLAGS_OPTIONAL,
1259 (void *) CFG_RM_CAPABILITY_DEFAULT),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001260
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001261 REG_VARIABLE(CFG_FT_RESOURCE_REQ_NAME, WLAN_PARAM_Integer,
1262 struct hdd_config, fFTResourceReqSupported,
1263 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1264 CFG_FT_RESOURCE_REQ_DEFAULT,
1265 CFG_FT_RESOURCE_REQ_MIN,
1266 CFG_FT_RESOURCE_REQ_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001267
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001268 REG_DYNAMIC_VARIABLE(CFG_NEIGHBOR_SCAN_TIMER_PERIOD_NAME,
1269 WLAN_PARAM_Integer,
1270 struct hdd_config, nNeighborScanPeriod,
1271 VAR_FLAGS_OPTIONAL |
1272 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1273 CFG_NEIGHBOR_SCAN_TIMER_PERIOD_DEFAULT,
1274 CFG_NEIGHBOR_SCAN_TIMER_PERIOD_MIN,
1275 CFG_NEIGHBOR_SCAN_TIMER_PERIOD_MAX,
1276 cb_notify_set_neighbor_scan_period, 0),
1277
1278 REG_DYNAMIC_VARIABLE(CFG_NEIGHBOR_LOOKUP_RSSI_THRESHOLD_NAME,
1279 WLAN_PARAM_Integer,
1280 struct hdd_config, nNeighborLookupRssiThreshold,
1281 VAR_FLAGS_OPTIONAL |
1282 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1283 CFG_NEIGHBOR_LOOKUP_RSSI_THRESHOLD_DEFAULT,
1284 CFG_NEIGHBOR_LOOKUP_RSSI_THRESHOLD_MIN,
1285 CFG_NEIGHBOR_LOOKUP_RSSI_THRESHOLD_MAX,
1286 cb_notify_set_neighbor_lookup_rssi_threshold, 0),
1287
1288 REG_DYNAMIC_VARIABLE(CFG_OPPORTUNISTIC_SCAN_THRESHOLD_DIFF_NAME,
1289 WLAN_PARAM_Integer,
1290 struct hdd_config, nOpportunisticThresholdDiff,
1291 VAR_FLAGS_OPTIONAL |
1292 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1293 CFG_OPPORTUNISTIC_SCAN_THRESHOLD_DIFF_DEFAULT,
1294 CFG_OPPORTUNISTIC_SCAN_THRESHOLD_DIFF_MIN,
1295 CFG_OPPORTUNISTIC_SCAN_THRESHOLD_DIFF_MAX,
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07001296 cb_notify_set_opportunistic_scan_threshold_diff,
1297 0),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001298
1299 REG_DYNAMIC_VARIABLE(CFG_ROAM_RESCAN_RSSI_DIFF_NAME, WLAN_PARAM_Integer,
1300 struct hdd_config, nRoamRescanRssiDiff,
1301 VAR_FLAGS_OPTIONAL |
1302 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1303 CFG_ROAM_RESCAN_RSSI_DIFF_DEFAULT,
1304 CFG_ROAM_RESCAN_RSSI_DIFF_MIN,
1305 CFG_ROAM_RESCAN_RSSI_DIFF_MAX,
1306 cb_notify_set_roam_rescan_rssi_diff, 0),
1307
1308 REG_VARIABLE_STRING(CFG_NEIGHBOR_SCAN_CHAN_LIST_NAME, WLAN_PARAM_String,
1309 struct hdd_config, neighborScanChanList,
1310 VAR_FLAGS_OPTIONAL,
1311 (void *)CFG_NEIGHBOR_SCAN_CHAN_LIST_DEFAULT),
1312
1313 REG_DYNAMIC_VARIABLE(CFG_NEIGHBOR_SCAN_MIN_CHAN_TIME_NAME,
1314 WLAN_PARAM_Integer,
1315 struct hdd_config, nNeighborScanMinChanTime,
1316 VAR_FLAGS_OPTIONAL |
1317 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1318 CFG_NEIGHBOR_SCAN_MIN_CHAN_TIME_DEFAULT,
1319 CFG_NEIGHBOR_SCAN_MIN_CHAN_TIME_MIN,
1320 CFG_NEIGHBOR_SCAN_MIN_CHAN_TIME_MAX,
1321 cb_notify_set_neighbor_scan_min_chan_time, 0),
1322
1323 REG_DYNAMIC_VARIABLE(CFG_NEIGHBOR_SCAN_MAX_CHAN_TIME_NAME,
1324 WLAN_PARAM_Integer,
1325 struct hdd_config, nNeighborScanMaxChanTime,
1326 VAR_FLAGS_OPTIONAL |
1327 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1328 CFG_NEIGHBOR_SCAN_MAX_CHAN_TIME_DEFAULT,
1329 CFG_NEIGHBOR_SCAN_MAX_CHAN_TIME_MIN,
1330 CFG_NEIGHBOR_SCAN_MAX_CHAN_TIME_MAX,
1331 cb_notify_set_neighbor_scan_max_chan_time, 0),
1332
1333 REG_VARIABLE(CFG_11R_NEIGHBOR_REQ_MAX_TRIES_NAME, WLAN_PARAM_Integer,
1334 struct hdd_config, nMaxNeighborReqTries,
1335 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1336 CFG_11R_NEIGHBOR_REQ_MAX_TRIES_DEFAULT,
1337 CFG_11R_NEIGHBOR_REQ_MAX_TRIES_MIN,
1338 CFG_11R_NEIGHBOR_REQ_MAX_TRIES_MAX),
1339
1340 REG_DYNAMIC_VARIABLE(CFG_NEIGHBOR_SCAN_RESULTS_REFRESH_PERIOD_NAME,
1341 WLAN_PARAM_Integer,
1342 struct hdd_config, nNeighborResultsRefreshPeriod,
1343 VAR_FLAGS_OPTIONAL |
1344 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1345 CFG_NEIGHBOR_SCAN_RESULTS_REFRESH_PERIOD_DEFAULT,
1346 CFG_NEIGHBOR_SCAN_RESULTS_REFRESH_PERIOD_MIN,
1347 CFG_NEIGHBOR_SCAN_RESULTS_REFRESH_PERIOD_MAX,
1348 cb_notify_set_neighbor_results_refresh_period, 0),
1349
1350 REG_DYNAMIC_VARIABLE(CFG_EMPTY_SCAN_REFRESH_PERIOD_NAME,
1351 WLAN_PARAM_Integer,
1352 struct hdd_config, nEmptyScanRefreshPeriod,
1353 VAR_FLAGS_OPTIONAL |
1354 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1355 CFG_EMPTY_SCAN_REFRESH_PERIOD_DEFAULT,
1356 CFG_EMPTY_SCAN_REFRESH_PERIOD_MIN,
1357 CFG_EMPTY_SCAN_REFRESH_PERIOD_MAX,
1358 cb_notify_set_empty_scan_refresh_period, 0),
1359
1360 REG_DYNAMIC_VARIABLE(CFG_ROAM_BMISS_FIRST_BCNT_NAME, WLAN_PARAM_Integer,
1361 struct hdd_config, nRoamBmissFirstBcnt,
1362 VAR_FLAGS_OPTIONAL |
1363 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1364 CFG_ROAM_BMISS_FIRST_BCNT_DEFAULT,
1365 CFG_ROAM_BMISS_FIRST_BCNT_MIN,
1366 CFG_ROAM_BMISS_FIRST_BCNT_MAX,
1367 cb_notify_set_roam_bmiss_first_bcnt, 0),
1368
1369 REG_DYNAMIC_VARIABLE(CFG_ROAM_BMISS_FINAL_BCNT_NAME, WLAN_PARAM_Integer,
1370 struct hdd_config, nRoamBmissFinalBcnt,
1371 VAR_FLAGS_OPTIONAL |
1372 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1373 CFG_ROAM_BMISS_FINAL_BCNT_DEFAULT,
1374 CFG_ROAM_BMISS_FINAL_BCNT_MIN,
1375 CFG_ROAM_BMISS_FINAL_BCNT_MAX,
1376 cb_notify_set_roam_bmiss_final_bcnt, 0),
1377
1378 REG_DYNAMIC_VARIABLE(CFG_ROAM_BEACON_RSSI_WEIGHT_NAME,
1379 WLAN_PARAM_Integer,
1380 struct hdd_config, nRoamBeaconRssiWeight,
1381 VAR_FLAGS_OPTIONAL |
1382 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1383 CFG_ROAM_BEACON_RSSI_WEIGHT_DEFAULT,
1384 CFG_ROAM_BEACON_RSSI_WEIGHT_MIN,
1385 CFG_ROAM_BEACON_RSSI_WEIGHT_MAX,
1386 cb_notify_set_roam_beacon_rssi_weight, 0),
1387
1388 REG_DYNAMIC_VARIABLE(CFG_ROAMING_DFS_CHANNEL_NAME, WLAN_PARAM_Integer,
1389 struct hdd_config, allowDFSChannelRoam,
1390 VAR_FLAGS_OPTIONAL |
1391 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1392 CFG_ROAMING_DFS_CHANNEL_DEFAULT,
1393 CFG_ROAMING_DFS_CHANNEL_MIN,
1394 CFG_ROAMING_DFS_CHANNEL_MAX,
1395 cb_notify_set_dfs_scan_mode, 0),
1396
1397 REG_DYNAMIC_VARIABLE(CFG_DELAY_BEFORE_VDEV_STOP_NAME,
1398 WLAN_PARAM_Integer,
1399 struct hdd_config,
1400 delay_before_vdev_stop,
1401 VAR_FLAGS_OPTIONAL |
1402 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1403 CFG_DELAY_BEFORE_VDEV_STOP_DEFAULT,
1404 CFG_DELAY_BEFORE_VDEV_STOP_MIN,
1405 CFG_DELAY_BEFORE_VDEV_STOP_MAX,
1406 cb_notify_set_delay_before_vdev_stop,
1407 0),
1408
1409 REG_DYNAMIC_VARIABLE(CFG_ROAM_SCAN_HI_RSSI_MAXCOUNT_NAME,
1410 WLAN_PARAM_Integer,
1411 struct hdd_config,
1412 nhi_rssi_scan_max_count,
1413 VAR_FLAGS_OPTIONAL |
1414 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1415 CFG_ROAM_SCAN_HI_RSSI_MAXCOUNT_DEFAULT,
1416 CFG_ROAM_SCAN_HI_RSSI_MAXCOUNT_MIN,
1417 CFG_ROAM_SCAN_HI_RSSI_MAXCOUNT_MAX,
1418 cb_notify_set_roam_scan_hi_rssi_scan_params,
1419 eCSR_HI_RSSI_SCAN_MAXCOUNT_ID),
1420
1421 REG_DYNAMIC_VARIABLE(CFG_ROAM_SCAN_HI_RSSI_DELTA_NAME,
1422 WLAN_PARAM_Integer,
1423 struct hdd_config,
1424 nhi_rssi_scan_rssi_delta,
1425 VAR_FLAGS_OPTIONAL |
1426 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1427 CFG_ROAM_SCAN_HI_RSSI_DELTA_DEFAULT,
1428 CFG_ROAM_SCAN_HI_RSSI_DELTA_MIN,
1429 CFG_ROAM_SCAN_HI_RSSI_DELTA_MAX,
1430 cb_notify_set_roam_scan_hi_rssi_scan_params,
1431 eCSR_HI_RSSI_SCAN_RSSI_DELTA_ID),
1432
1433 REG_DYNAMIC_VARIABLE(CFG_ROAM_SCAN_HI_RSSI_DELAY_NAME,
1434 WLAN_PARAM_Integer,
1435 struct hdd_config,
1436 nhi_rssi_scan_delay,
1437 VAR_FLAGS_OPTIONAL |
1438 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1439 CFG_ROAM_SCAN_HI_RSSI_DELAY_DEFAULT,
1440 CFG_ROAM_SCAN_HI_RSSI_DELAY_MIN,
1441 CFG_ROAM_SCAN_HI_RSSI_DELAY_MAX,
1442 cb_notify_set_roam_scan_hi_rssi_scan_params,
1443 eCSR_HI_RSSI_SCAN_DELAY_ID),
1444
1445 REG_DYNAMIC_VARIABLE(CFG_ROAM_SCAN_HI_RSSI_UB_NAME,
1446 WLAN_PARAM_SignedInteger,
1447 struct hdd_config,
1448 nhi_rssi_scan_rssi_ub,
1449 VAR_FLAGS_OPTIONAL |
1450 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1451 CFG_ROAM_SCAN_HI_RSSI_UB_DEFAULT,
1452 CFG_ROAM_SCAN_HI_RSSI_UB_MIN,
1453 CFG_ROAM_SCAN_HI_RSSI_UB_MAX,
1454 cb_notify_set_roam_scan_hi_rssi_scan_params,
1455 eCSR_HI_RSSI_SCAN_RSSI_UB_ID),
1456
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001457 REG_VARIABLE(CFG_QOS_WMM_BURST_SIZE_DEFN_NAME, WLAN_PARAM_Integer,
1458 struct hdd_config, burstSizeDefinition,
1459 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1460 CFG_QOS_WMM_BURST_SIZE_DEFN_DEFAULT,
1461 CFG_QOS_WMM_BURST_SIZE_DEFN_MIN,
1462 CFG_QOS_WMM_BURST_SIZE_DEFN_MAX),
1463
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001464 REG_VARIABLE(CFG_ENABLE_HOST_ARPOFFLOAD_NAME, WLAN_PARAM_Integer,
1465 struct hdd_config, fhostArpOffload,
1466 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1467 CFG_ENABLE_HOST_ARPOFFLOAD_DEFAULT,
1468 CFG_ENABLE_HOST_ARPOFFLOAD_MIN,
1469 CFG_ENABLE_HOST_ARPOFFLOAD_MAX),
1470
Dustin Brown1224e212017-05-12 14:02:12 -07001471 REG_VARIABLE(CFG_HW_FILTER_MODE_NAME, WLAN_PARAM_Integer,
1472 struct hdd_config, hw_filter_mode,
Ravi Kumar Bokka794fd712017-03-21 20:52:46 +05301473 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
Dustin Brown1224e212017-05-12 14:02:12 -07001474 CFG_HW_FILTER_MODE_DEFAULT,
1475 CFG_HW_FILTER_MODE_MIN,
1476 CFG_HW_FILTER_MODE_MAX),
Ravi Kumar Bokka794fd712017-03-21 20:52:46 +05301477
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001478#ifdef FEATURE_WLAN_RA_FILTERING
1479 REG_VARIABLE(CFG_RA_FILTER_ENABLE_NAME, WLAN_PARAM_Integer,
1480 struct hdd_config, IsRArateLimitEnabled,
1481 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1482 CFG_RA_FILTER_ENABLE_DEFAULT,
1483 CFG_RA_FILTER_ENABLE_MIN,
1484 CFG_RA_FILTER_ENABLE_MAX),
1485
1486 REG_VARIABLE(CFG_RA_RATE_LIMIT_INTERVAL_NAME, WLAN_PARAM_Integer,
1487 struct hdd_config, RArateLimitInterval,
1488 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1489 CFG_RA_RATE_LIMIT_INTERVAL_DEFAULT,
1490 CFG_RA_RATE_LIMIT_INTERVAL_MIN,
1491 CFG_RA_RATE_LIMIT_INTERVAL_MAX),
1492#endif
1493
1494 REG_VARIABLE(CFG_IGNORE_PEER_ERP_INFO_NAME, WLAN_PARAM_Integer,
1495 struct hdd_config, ignore_peer_erp_info,
1496 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1497 CFG_IGNORE_PEER_ERP_INFO_DEFAULT,
1498 CFG_IGNORE_PEER_ERP_INFO_MIN,
1499 CFG_IGNORE_PEER_ERP_INFO_MAX),
1500
1501 REG_VARIABLE(CFG_ENABLE_HOST_SSDP_NAME, WLAN_PARAM_Integer,
1502 struct hdd_config, ssdp,
1503 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1504 CFG_ENABLE_HOST_SSDP_DEFAULT,
1505 CFG_ENABLE_HOST_SSDP_MIN,
1506 CFG_ENABLE_HOST_SSDP_MAX),
1507
Houston Hoffmanc7c69f02016-03-24 22:45:52 -07001508#ifdef FEATURE_RUNTIME_PM
1509 REG_VARIABLE(CFG_ENABLE_RUNTIME_PM, WLAN_PARAM_Integer,
1510 struct hdd_config, runtime_pm,
1511 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1512 CFG_ENABLE_RUNTIME_PM_DEFAULT,
1513 CFG_ENABLE_RUNTIME_PM_MIN,
1514 CFG_ENABLE_RUNTIME_PM_MAX),
1515
1516 REG_VARIABLE(CFG_RUNTIME_PM_DELAY_NAME, WLAN_PARAM_Integer,
1517 struct hdd_config, runtime_pm_delay,
1518 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1519 CFG_RUNTIME_PM_DELAY_DEFAULT,
1520 CFG_RUNTIME_PM_DELAY_MIN,
1521 CFG_RUNTIME_PM_DELAY_MAX),
1522#endif
1523
1524
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001525 REG_VARIABLE(CFG_ENABLE_HOST_NSOFFLOAD_NAME, WLAN_PARAM_Integer,
1526 struct hdd_config, fhostNSOffload,
1527 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1528 CFG_ENABLE_HOST_NSOFFLOAD_DEFAULT,
1529 CFG_ENABLE_HOST_NSOFFLOAD_MIN,
1530 CFG_ENABLE_HOST_NSOFFLOAD_MAX),
1531
1532 REG_VARIABLE(CFG_QOS_WMM_TS_INFO_ACK_POLICY_NAME, WLAN_PARAM_HexInteger,
1533 struct hdd_config, tsInfoAckPolicy,
1534 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1535 CFG_QOS_WMM_TS_INFO_ACK_POLICY_DEFAULT,
1536 CFG_QOS_WMM_TS_INFO_ACK_POLICY_MIN,
1537 CFG_QOS_WMM_TS_INFO_ACK_POLICY_MAX),
1538
1539 REG_VARIABLE(CFG_SINGLE_TID_RC_NAME, WLAN_PARAM_Integer,
1540 struct hdd_config, bSingleTidRc,
1541 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1542 CFG_SINGLE_TID_RC_DEFAULT,
1543 CFG_SINGLE_TID_RC_MIN,
1544 CFG_SINGLE_TID_RC_MAX),
1545
1546 REG_VARIABLE(CFG_DYNAMIC_PSPOLL_VALUE_NAME, WLAN_PARAM_Integer,
1547 struct hdd_config, dynamicPsPollValue,
1548 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1549 CFG_DYNAMIC_PSPOLL_VALUE_DEFAULT,
1550 CFG_DYNAMIC_PSPOLL_VALUE_MIN,
1551 CFG_DYNAMIC_PSPOLL_VALUE_MAX),
1552
1553 REG_VARIABLE(CFG_TELE_BCN_WAKEUP_EN_NAME, WLAN_PARAM_Integer,
1554 struct hdd_config, teleBcnWakeupEn,
1555 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1556 CFG_TELE_BCN_WAKEUP_EN_DEFAULT,
1557 CFG_TELE_BCN_WAKEUP_EN_MIN,
1558 CFG_TELE_BCN_WAKEUP_EN_MAX),
1559
1560 REG_VARIABLE(CFG_INFRA_STA_KEEP_ALIVE_PERIOD_NAME, WLAN_PARAM_Integer,
1561 struct hdd_config, infraStaKeepAlivePeriod,
1562 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1563 CFG_INFRA_STA_KEEP_ALIVE_PERIOD_DEFAULT,
1564 CFG_INFRA_STA_KEEP_ALIVE_PERIOD_MIN,
1565 CFG_INFRA_STA_KEEP_ALIVE_PERIOD_MAX),
1566
Dustin Brownb6b0f182017-03-08 13:08:27 -08001567 REG_VARIABLE(CFG_STA_KEEPALIVE_METHOD_NAME, WLAN_PARAM_Integer,
1568 struct hdd_config, sta_keepalive_method,
1569 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1570 CFG_STA_KEEPALIVE_METHOD_DEFAULT,
1571 CFG_STA_KEEPALIVE_METHOD_MIN,
1572 CFG_STA_KEEPALIVE_METHOD_MAX),
1573
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001574 REG_VARIABLE(CFG_QOS_ADDTS_WHEN_ACM_IS_OFF_NAME, WLAN_PARAM_Integer,
1575 struct hdd_config, AddTSWhenACMIsOff,
1576 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1577 CFG_QOS_ADDTS_WHEN_ACM_IS_OFF_DEFAULT,
1578 CFG_QOS_ADDTS_WHEN_ACM_IS_OFF_MIN,
1579 CFG_QOS_ADDTS_WHEN_ACM_IS_OFF_MAX),
1580
1581 REG_VARIABLE(CFG_VALIDATE_SCAN_LIST_NAME, WLAN_PARAM_Integer,
1582 struct hdd_config, fValidateScanList,
1583 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1584 CFG_VALIDATE_SCAN_LIST_DEFAULT,
1585 CFG_VALIDATE_SCAN_LIST_MIN,
1586 CFG_VALIDATE_SCAN_LIST_MAX),
1587
1588 REG_VARIABLE(CFG_NULLDATA_AP_RESP_TIMEOUT_NAME, WLAN_PARAM_Integer,
1589 struct hdd_config, nNullDataApRespTimeout,
1590 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1591 CFG_NULLDATA_AP_RESP_TIMEOUT_DEFAULT,
1592 CFG_NULLDATA_AP_RESP_TIMEOUT_MIN,
1593 CFG_NULLDATA_AP_RESP_TIMEOUT_MAX),
1594
1595 REG_VARIABLE(CFG_AP_DATA_AVAIL_POLL_PERIOD_NAME, WLAN_PARAM_Integer,
1596 struct hdd_config, apDataAvailPollPeriodInMs,
1597 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1598 CFG_AP_DATA_AVAIL_POLL_PERIOD_DEFAULT,
1599 CFG_AP_DATA_AVAIL_POLL_PERIOD_MIN,
1600 CFG_AP_DATA_AVAIL_POLL_PERIOD_MAX),
1601
1602 REG_VARIABLE(CFG_BAND_CAPABILITY_NAME, WLAN_PARAM_Integer,
1603 struct hdd_config, nBandCapability,
1604 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1605 CFG_BAND_CAPABILITY_DEFAULT,
1606 CFG_BAND_CAPABILITY_MIN,
1607 CFG_BAND_CAPABILITY_MAX),
1608
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301609/* CFG_QDF_TRACE_ENABLE Parameters */
1610 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_WDI_NAME, WLAN_PARAM_Integer,
1611 struct hdd_config, qdf_trace_enable_wdi,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001612 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301613 CFG_QDF_TRACE_ENABLE_DEFAULT,
1614 CFG_QDF_TRACE_ENABLE_MIN,
1615 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001616
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301617 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_HDD_NAME, WLAN_PARAM_Integer,
1618 struct hdd_config, qdf_trace_enable_hdd,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001619 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301620 CFG_QDF_TRACE_ENABLE_DEFAULT,
1621 CFG_QDF_TRACE_ENABLE_MIN,
1622 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001623
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301624 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_BMI_NAME, WLAN_PARAM_Integer,
1625 struct hdd_config, qdf_trace_enable_bmi,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001626 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301627 CFG_QDF_TRACE_ENABLE_DEFAULT,
1628 CFG_QDF_TRACE_ENABLE_MIN,
1629 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001630
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301631 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_SME_NAME, WLAN_PARAM_Integer,
1632 struct hdd_config, qdf_trace_enable_sme,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001633 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301634 CFG_QDF_TRACE_ENABLE_DEFAULT,
1635 CFG_QDF_TRACE_ENABLE_MIN,
1636 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001637
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301638 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_PE_NAME, WLAN_PARAM_Integer,
1639 struct hdd_config, qdf_trace_enable_pe,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001640 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301641 CFG_QDF_TRACE_ENABLE_DEFAULT,
1642 CFG_QDF_TRACE_ENABLE_MIN,
1643 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001644
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301645 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_WMA_NAME, WLAN_PARAM_Integer,
1646 struct hdd_config, qdf_trace_enable_wma,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001647 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301648 CFG_QDF_TRACE_ENABLE_DEFAULT,
1649 CFG_QDF_TRACE_ENABLE_MIN,
1650 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001651
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301652 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_SYS_NAME, WLAN_PARAM_Integer,
1653 struct hdd_config, qdf_trace_enable_sys,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001654 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301655 CFG_QDF_TRACE_ENABLE_DEFAULT,
1656 CFG_QDF_TRACE_ENABLE_MIN,
1657 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001658
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301659 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_QDF_NAME, WLAN_PARAM_Integer,
1660 struct hdd_config, qdf_trace_enable_qdf,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001661 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301662 CFG_QDF_TRACE_ENABLE_DEFAULT,
1663 CFG_QDF_TRACE_ENABLE_MIN,
1664 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001665
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301666 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_SAP_NAME, WLAN_PARAM_Integer,
1667 struct hdd_config, qdf_trace_enable_sap,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001668 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301669 CFG_QDF_TRACE_ENABLE_DEFAULT,
1670 CFG_QDF_TRACE_ENABLE_MIN,
1671 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001672
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301673 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_HDD_SAP_NAME, WLAN_PARAM_Integer,
1674 struct hdd_config, qdf_trace_enable_hdd_sap,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001675 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301676 CFG_QDF_TRACE_ENABLE_DEFAULT,
1677 CFG_QDF_TRACE_ENABLE_MIN,
1678 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001679
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301680 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_CFG_NAME, WLAN_PARAM_Integer,
1681 struct hdd_config, qdf_trace_enable_cfg,
Bhargav Shah480a90f2015-06-24 15:10:14 +05301682 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301683 CFG_QDF_TRACE_ENABLE_DEFAULT,
1684 CFG_QDF_TRACE_ENABLE_MIN,
1685 CFG_QDF_TRACE_ENABLE_MAX),
Bhargav Shah480a90f2015-06-24 15:10:14 +05301686
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301687 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_TXRX_NAME, WLAN_PARAM_Integer,
Bhargav Shah480a90f2015-06-24 15:10:14 +05301688 struct hdd_config, cfd_trace_enable_txrx,
1689 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301690 CFG_QDF_TRACE_ENABLE_DEFAULT,
1691 CFG_QDF_TRACE_ENABLE_MIN,
1692 CFG_QDF_TRACE_ENABLE_MAX),
Bhargav Shah480a90f2015-06-24 15:10:14 +05301693
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301694 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_HTC_NAME, WLAN_PARAM_Integer,
1695 struct hdd_config, qdf_trace_enable_htc,
Bhargav Shah480a90f2015-06-24 15:10:14 +05301696 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301697 CFG_QDF_TRACE_ENABLE_DEFAULT,
1698 CFG_QDF_TRACE_ENABLE_MIN,
1699 CFG_QDF_TRACE_ENABLE_MAX),
Bhargav Shah480a90f2015-06-24 15:10:14 +05301700
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301701 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_HIF_NAME, WLAN_PARAM_Integer,
1702 struct hdd_config, qdf_trace_enable_hif,
Bhargav Shah480a90f2015-06-24 15:10:14 +05301703 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301704 CFG_QDF_TRACE_ENABLE_DEFAULT,
1705 CFG_QDF_TRACE_ENABLE_MIN,
1706 CFG_QDF_TRACE_ENABLE_MAX),
Bhargav Shah480a90f2015-06-24 15:10:14 +05301707
1708 REG_VARIABLE(CFG_CDR_TRACE_ENABLE_HDD_SAP_DATA_NAME, WLAN_PARAM_Integer,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301709 struct hdd_config, qdf_trace_enable_hdd_sap_data,
Bhargav Shah480a90f2015-06-24 15:10:14 +05301710 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301711 CFG_QDF_TRACE_ENABLE_DEFAULT,
1712 CFG_QDF_TRACE_ENABLE_MIN,
1713 CFG_QDF_TRACE_ENABLE_MAX),
Bhargav Shah480a90f2015-06-24 15:10:14 +05301714
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301715 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_HDD_DATA_NAME, WLAN_PARAM_Integer,
1716 struct hdd_config, qdf_trace_enable_hdd_data,
Bhargav Shah480a90f2015-06-24 15:10:14 +05301717 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301718 CFG_QDF_TRACE_ENABLE_DEFAULT,
1719 CFG_QDF_TRACE_ENABLE_MIN,
1720 CFG_QDF_TRACE_ENABLE_MAX),
Bhargav Shah480a90f2015-06-24 15:10:14 +05301721
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301722 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_EPPING, WLAN_PARAM_Integer,
1723 struct hdd_config, qdf_trace_enable_epping,
Bhargav Shah480a90f2015-06-24 15:10:14 +05301724 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301725 CFG_QDF_TRACE_ENABLE_DEFAULT,
1726 CFG_QDF_TRACE_ENABLE_MIN,
1727 CFG_QDF_TRACE_ENABLE_MAX),
Bhargav Shah480a90f2015-06-24 15:10:14 +05301728
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301729 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_QDF_DEVICES, WLAN_PARAM_Integer,
1730 struct hdd_config, qdf_trace_enable_qdf_devices,
Bhargav Shah480a90f2015-06-24 15:10:14 +05301731 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301732 CFG_QDF_TRACE_ENABLE_DEFAULT,
1733 CFG_QDF_TRACE_ENABLE_MIN,
1734 CFG_QDF_TRACE_ENABLE_MAX),
Bhargav Shah480a90f2015-06-24 15:10:14 +05301735
Naveen Rawat7df31862017-03-01 17:09:30 -08001736 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_WIFI_POS, WLAN_PARAM_Integer,
1737 struct hdd_config, qdf_trace_enable_wifi_pos,
1738 VAR_FLAGS_OPTIONAL,
1739 CFG_QDF_TRACE_ENABLE_DEFAULT,
1740 CFG_QDF_TRACE_ENABLE_MIN,
1741 CFG_QDF_TRACE_ENABLE_MAX),
1742
Naveen Rawatf2b0dbd2017-03-27 10:00:15 -07001743 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_NAN, WLAN_PARAM_Integer,
1744 struct hdd_config, qdf_trace_enable_nan,
1745 VAR_FLAGS_OPTIONAL,
1746 CFG_QDF_TRACE_ENABLE_DEFAULT,
1747 CFG_QDF_TRACE_ENABLE_MIN,
1748 CFG_QDF_TRACE_ENABLE_MAX),
1749
Kiran Kumar Lokere798de7e2017-03-30 14:01:12 -07001750 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_REGULATORY, WLAN_PARAM_Integer,
1751 struct hdd_config, qdf_trace_enable_regulatory,
1752 VAR_FLAGS_OPTIONAL,
1753 CFG_QDF_TRACE_ENABLE_DEFAULT,
1754 CFG_QDF_TRACE_ENABLE_MIN,
1755 CFG_QDF_TRACE_ENABLE_MAX),
1756
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001757 REG_VARIABLE(CFG_TELE_BCN_TRANS_LI_NAME, WLAN_PARAM_Integer,
1758 struct hdd_config, nTeleBcnTransListenInterval,
1759 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1760 CFG_TELE_BCN_TRANS_LI_DEFAULT,
1761 CFG_TELE_BCN_TRANS_LI_MIN,
1762 CFG_TELE_BCN_TRANS_LI_MAX),
1763
1764 REG_VARIABLE(CFG_TELE_BCN_TRANS_LI_NUM_IDLE_BCNS_NAME,
1765 WLAN_PARAM_Integer,
1766 struct hdd_config, nTeleBcnTransLiNumIdleBeacons,
1767 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1768 CFG_TELE_BCN_TRANS_LI_NUM_IDLE_BCNS_DEFAULT,
1769 CFG_TELE_BCN_TRANS_LI_NUM_IDLE_BCNS_MIN,
1770 CFG_TELE_BCN_TRANS_LI_NUM_IDLE_BCNS_MAX),
1771
1772 REG_VARIABLE(CFG_TELE_BCN_MAX_LI_NAME, WLAN_PARAM_Integer,
1773 struct hdd_config, nTeleBcnMaxListenInterval,
1774 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1775 CFG_TELE_BCN_MAX_LI_DEFAULT,
1776 CFG_TELE_BCN_MAX_LI_MIN,
1777 CFG_TELE_BCN_MAX_LI_MAX),
1778
1779 REG_VARIABLE(CFG_TELE_BCN_MAX_LI_NUM_IDLE_BCNS_NAME, WLAN_PARAM_Integer,
1780 struct hdd_config, nTeleBcnMaxLiNumIdleBeacons,
1781 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1782 CFG_TELE_BCN_MAX_LI_NUM_IDLE_BCNS_DEFAULT,
1783 CFG_TELE_BCN_MAX_LI_NUM_IDLE_BCNS_MIN,
1784 CFG_TELE_BCN_MAX_LI_NUM_IDLE_BCNS_MAX),
1785
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001786 REG_VARIABLE(CFG_ENABLE_BYPASS_11D_NAME, WLAN_PARAM_Integer,
1787 struct hdd_config, enableBypass11d,
1788 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1789 CFG_ENABLE_BYPASS_11D_DEFAULT,
1790 CFG_ENABLE_BYPASS_11D_MIN,
1791 CFG_ENABLE_BYPASS_11D_MAX),
1792
1793 REG_VARIABLE(CFG_ENABLE_DFS_CHNL_SCAN_NAME, WLAN_PARAM_Integer,
1794 struct hdd_config, enableDFSChnlScan,
1795 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1796 CFG_ENABLE_DFS_CHNL_SCAN_DEFAULT,
1797 CFG_ENABLE_DFS_CHNL_SCAN_MIN,
1798 CFG_ENABLE_DFS_CHNL_SCAN_MAX),
1799
1800 REG_VARIABLE(CFG_ENABLE_DFS_PNO_CHNL_SCAN_NAME, WLAN_PARAM_Integer,
1801 struct hdd_config, enable_dfs_pno_chnl_scan,
1802 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1803 CFG_ENABLE_DFS_PNO_CHNL_SCAN_DEFAULT,
1804 CFG_ENABLE_DFS_PNO_CHNL_SCAN_MIN,
1805 CFG_ENABLE_DFS_PNO_CHNL_SCAN_MAX),
1806
1807 REG_VARIABLE(CFG_ENABLE_DYNAMIC_DTIM_NAME, WLAN_PARAM_Integer,
1808 struct hdd_config, enableDynamicDTIM,
1809 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1810 CFG_ENABLE_DYNAMIC_DTIM_DEFAULT,
1811 CFG_ENABLE_DYNAMIC_DTIM_MIN,
1812 CFG_ENABLE_DYNAMIC_DTIM_MAX),
1813
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001814 REG_VARIABLE(CFG_SHORT_GI_40MHZ_NAME, WLAN_PARAM_Integer,
1815 struct hdd_config, ShortGI40MhzEnable,
1816 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1817 CFG_SHORT_GI_40MHZ_DEFAULT,
1818 CFG_SHORT_GI_40MHZ_MIN,
1819 CFG_SHORT_GI_40MHZ_MAX),
1820
1821 REG_DYNAMIC_VARIABLE(CFG_REPORT_MAX_LINK_SPEED, WLAN_PARAM_Integer,
1822 struct hdd_config, reportMaxLinkSpeed,
1823 VAR_FLAGS_OPTIONAL |
1824 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1825 CFG_REPORT_MAX_LINK_SPEED_DEFAULT,
1826 CFG_REPORT_MAX_LINK_SPEED_MIN,
1827 CFG_REPORT_MAX_LINK_SPEED_MAX,
1828 NULL, 0),
1829
1830 REG_DYNAMIC_VARIABLE(CFG_LINK_SPEED_RSSI_HIGH, WLAN_PARAM_SignedInteger,
1831 struct hdd_config, linkSpeedRssiHigh,
1832 VAR_FLAGS_OPTIONAL |
1833 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1834 CFG_LINK_SPEED_RSSI_HIGH_DEFAULT,
1835 CFG_LINK_SPEED_RSSI_HIGH_MIN,
1836 CFG_LINK_SPEED_RSSI_HIGH_MAX,
1837 NULL, 0),
1838
1839 REG_DYNAMIC_VARIABLE(CFG_LINK_SPEED_RSSI_MID, WLAN_PARAM_SignedInteger,
1840 struct hdd_config, linkSpeedRssiMid,
1841 VAR_FLAGS_OPTIONAL |
1842 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1843 CFG_LINK_SPEED_RSSI_MID_DEFAULT,
1844 CFG_LINK_SPEED_RSSI_MID_MIN,
1845 CFG_LINK_SPEED_RSSI_MID_MAX,
1846 NULL, 0),
1847
1848 REG_DYNAMIC_VARIABLE(CFG_LINK_SPEED_RSSI_LOW, WLAN_PARAM_SignedInteger,
1849 struct hdd_config, linkSpeedRssiLow,
1850 VAR_FLAGS_OPTIONAL |
1851 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1852 CFG_LINK_SPEED_RSSI_LOW_DEFAULT,
1853 CFG_LINK_SPEED_RSSI_LOW_MIN,
1854 CFG_LINK_SPEED_RSSI_LOW_MAX,
1855 NULL, 0),
1856
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001857 REG_DYNAMIC_VARIABLE(CFG_ROAM_PREFER_5GHZ, WLAN_PARAM_Integer,
1858 struct hdd_config, nRoamPrefer5GHz,
1859 VAR_FLAGS_OPTIONAL |
1860 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1861 CFG_ROAM_PREFER_5GHZ_DEFAULT,
1862 CFG_ROAM_PREFER_5GHZ_MIN,
1863 CFG_ROAM_PREFER_5GHZ_MAX,
1864 cb_notify_set_roam_prefer5_g_hz, 0),
1865
1866 REG_DYNAMIC_VARIABLE(CFG_ROAM_INTRA_BAND, WLAN_PARAM_Integer,
1867 struct hdd_config, nRoamIntraBand,
1868 VAR_FLAGS_OPTIONAL |
1869 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1870 CFG_ROAM_INTRA_BAND_DEFAULT,
1871 CFG_ROAM_INTRA_BAND_MIN,
1872 CFG_ROAM_INTRA_BAND_MAX,
1873 cb_notify_set_roam_intra_band, 0),
1874
1875 REG_DYNAMIC_VARIABLE(CFG_ROAM_SCAN_N_PROBES, WLAN_PARAM_Integer,
1876 struct hdd_config, nProbes,
1877 VAR_FLAGS_OPTIONAL |
1878 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1879 CFG_ROAM_SCAN_N_PROBES_DEFAULT,
1880 CFG_ROAM_SCAN_N_PROBES_MIN,
1881 CFG_ROAM_SCAN_N_PROBES_MAX,
1882 cb_notify_set_roam_scan_n_probes, 0),
1883
1884 REG_DYNAMIC_VARIABLE(CFG_ROAM_SCAN_HOME_AWAY_TIME, WLAN_PARAM_Integer,
1885 struct hdd_config, nRoamScanHomeAwayTime,
1886 VAR_FLAGS_OPTIONAL |
1887 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1888 CFG_ROAM_SCAN_HOME_AWAY_TIME_DEFAULT,
1889 CFG_ROAM_SCAN_HOME_AWAY_TIME_MIN,
1890 CFG_ROAM_SCAN_HOME_AWAY_TIME_MAX,
1891 cb_notify_set_roam_scan_home_away_time, 0),
1892
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001893 REG_VARIABLE(CFG_P2P_DEVICE_ADDRESS_ADMINISTRATED_NAME,
1894 WLAN_PARAM_Integer,
1895 struct hdd_config, isP2pDeviceAddrAdministrated,
1896 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1897 CFG_P2P_DEVICE_ADDRESS_ADMINISTRATED_DEFAULT,
1898 CFG_P2P_DEVICE_ADDRESS_ADMINISTRATED_MIN,
1899 CFG_P2P_DEVICE_ADDRESS_ADMINISTRATED_MAX),
1900
1901 REG_VARIABLE(CFG_ENABLE_MCC_ENABLED_NAME, WLAN_PARAM_Integer,
1902 struct hdd_config, enableMCC,
1903 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1904 CFG_ENABLE_MCC_ENABLED_DEFAULT,
1905 CFG_ENABLE_MCC_ENABLED_MIN,
1906 CFG_ENABLE_MCC_ENABLED_MAX),
1907
1908 REG_VARIABLE(CFG_ALLOW_MCC_GO_DIFF_BI_NAME, WLAN_PARAM_Integer,
1909 struct hdd_config, allowMCCGODiffBI,
1910 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1911 CFG_ALLOW_MCC_GO_DIFF_BI_DEFAULT,
1912 CFG_ALLOW_MCC_GO_DIFF_BI_MIN,
1913 CFG_ALLOW_MCC_GO_DIFF_BI_MAX),
1914
1915 REG_VARIABLE(CFG_THERMAL_MIGRATION_ENABLE_NAME, WLAN_PARAM_Integer,
1916 struct hdd_config, thermalMitigationEnable,
1917 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1918 CFG_THERMAL_MIGRATION_ENABLE_DEFAULT,
1919 CFG_THERMAL_MIGRATION_ENABLE_MIN,
1920 CFG_THERMAL_MIGRATION_ENABLE_MAX),
1921
1922 REG_VARIABLE(CFG_THROTTLE_PERIOD_NAME, WLAN_PARAM_Integer,
1923 struct hdd_config, throttlePeriod,
1924 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1925 CFG_THROTTLE_PERIOD_DEFAULT,
1926 CFG_THROTTLE_PERIOD_MIN,
1927 CFG_THROTTLE_PERIOD_MAX),
1928
Poddar, Siddarth83905022016-04-16 17:56:08 -07001929 REG_VARIABLE(CFG_THROTTLE_DUTY_CYCLE_LEVEL0_NAME, WLAN_PARAM_Integer,
1930 struct hdd_config, throttle_dutycycle_level0,
1931 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1932 CFG_THROTTLE_DUTY_CYCLE_LEVEL0_DEFAULT,
1933 CFG_THROTTLE_DUTY_CYCLE_LEVEL0_MIN,
1934 CFG_THROTTLE_DUTY_CYCLE_LEVEL0_MAX),
1935
1936 REG_VARIABLE(CFG_THROTTLE_DUTY_CYCLE_LEVEL1_NAME, WLAN_PARAM_Integer,
1937 struct hdd_config, throttle_dutycycle_level1,
1938 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1939 CFG_THROTTLE_DUTY_CYCLE_LEVEL1_DEFAULT,
1940 CFG_THROTTLE_DUTY_CYCLE_LEVEL1_MIN,
1941 CFG_THROTTLE_DUTY_CYCLE_LEVEL1_MAX),
1942
1943 REG_VARIABLE(CFG_THROTTLE_DUTY_CYCLE_LEVEL2_NAME, WLAN_PARAM_Integer,
1944 struct hdd_config, throttle_dutycycle_level2,
1945 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1946 CFG_THROTTLE_DUTY_CYCLE_LEVEL2_DEFAULT,
1947 CFG_THROTTLE_DUTY_CYCLE_LEVEL2_MIN,
1948 CFG_THROTTLE_DUTY_CYCLE_LEVEL2_MAX),
1949
1950 REG_VARIABLE(CFG_THROTTLE_DUTY_CYCLE_LEVEL3_NAME, WLAN_PARAM_Integer,
1951 struct hdd_config, throttle_dutycycle_level3,
1952 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1953 CFG_THROTTLE_DUTY_CYCLE_LEVEL3_DEFAULT,
1954 CFG_THROTTLE_DUTY_CYCLE_LEVEL3_MIN,
1955 CFG_THROTTLE_DUTY_CYCLE_LEVEL3_MAX),
1956
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001957 REG_VARIABLE(CFG_ENABLE_MODULATED_DTIM_NAME, WLAN_PARAM_Integer,
1958 struct hdd_config, enableModulatedDTIM,
1959 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1960 CFG_ENABLE_MODULATED_DTIM_DEFAULT,
1961 CFG_ENABLE_MODULATED_DTIM_MIN,
1962 CFG_ENABLE_MODULATED_DTIM_MAX),
1963
1964 REG_VARIABLE(CFG_MC_ADDR_LIST_ENABLE_NAME, WLAN_PARAM_Integer,
1965 struct hdd_config, fEnableMCAddrList,
1966 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1967 CFG_MC_ADDR_LIST_ENABLE_DEFAULT,
1968 CFG_MC_ADDR_LIST_ENABLE_MIN,
1969 CFG_MC_ADDR_LIST_ENABLE_MAX),
1970
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001971 REG_VARIABLE(CFG_VHT_CHANNEL_WIDTH, WLAN_PARAM_Integer,
1972 struct hdd_config, vhtChannelWidth,
1973 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
1974 CFG_VHT_CHANNEL_WIDTH_DEFAULT,
1975 CFG_VHT_CHANNEL_WIDTH_MIN,
1976 CFG_VHT_CHANNEL_WIDTH_MAX),
1977
1978 REG_VARIABLE(CFG_VHT_ENABLE_RX_MCS_8_9, WLAN_PARAM_Integer,
1979 struct hdd_config, vhtRxMCS,
1980 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
1981 CFG_VHT_ENABLE_RX_MCS_8_9_DEFAULT,
1982 CFG_VHT_ENABLE_RX_MCS_8_9_MIN,
1983 CFG_VHT_ENABLE_RX_MCS_8_9_MAX),
1984
1985 REG_VARIABLE(CFG_VHT_ENABLE_TX_MCS_8_9, WLAN_PARAM_Integer,
1986 struct hdd_config, vhtTxMCS,
1987 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
1988 CFG_VHT_ENABLE_TX_MCS_8_9_DEFAULT,
1989 CFG_VHT_ENABLE_TX_MCS_8_9_MIN,
1990 CFG_VHT_ENABLE_TX_MCS_8_9_MAX),
1991
1992 REG_VARIABLE(CFG_VHT_ENABLE_RX_MCS2x2_8_9, WLAN_PARAM_Integer,
1993 struct hdd_config, vhtRxMCS2x2,
1994 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
1995 CFG_VHT_ENABLE_RX_MCS2x2_8_9_DEFAULT,
1996 CFG_VHT_ENABLE_RX_MCS2x2_8_9_MIN,
1997 CFG_VHT_ENABLE_RX_MCS2x2_8_9_MAX),
1998
1999 REG_VARIABLE(CFG_VHT_ENABLE_TX_MCS2x2_8_9, WLAN_PARAM_Integer,
2000 struct hdd_config, vhtTxMCS2x2,
2001 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2002 CFG_VHT_ENABLE_TX_MCS2x2_8_9_DEFAULT,
2003 CFG_VHT_ENABLE_TX_MCS2x2_8_9_MIN,
2004 CFG_VHT_ENABLE_TX_MCS2x2_8_9_MAX),
2005
2006 REG_VARIABLE(CFG_VHT_ENABLE_2x2_CAP_FEATURE, WLAN_PARAM_Integer,
2007 struct hdd_config, enable2x2,
2008 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2009 CFG_VHT_ENABLE_2x2_CAP_FEATURE_DEFAULT,
2010 CFG_VHT_ENABLE_2x2_CAP_FEATURE_MIN,
2011 CFG_VHT_ENABLE_2x2_CAP_FEATURE_MAX),
2012
Nitesh Shah0e5c7322017-03-23 14:55:11 +05302013 REG_VARIABLE(CFG_VDEV_TYPE_NSS_2G, WLAN_PARAM_Integer,
Kiran Kumar Lokere666bf852016-05-02 12:23:02 -07002014 struct hdd_config, vdev_type_nss_2g,
2015 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2016 CFG_VDEV_TYPE_NSS_2G_DEFAULT,
2017 CFG_VDEV_TYPE_NSS_2G_MIN,
2018 CFG_VDEV_TYPE_NSS_2G_MAX),
2019
Kiran Kumar Lokere1aa9c9a2016-10-05 18:50:59 -07002020 REG_VARIABLE(CFG_STA_PREFER_80MHZ_OVER_160MHZ, WLAN_PARAM_Integer,
2021 struct hdd_config, sta_prefer_80MHz_over_160MHz,
2022 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2023 CFG_STA_PREFER_80MHZ_OVER_160MHZ_DEFAULT,
2024 CFG_STA_PREFER_80MHZ_OVER_160MHZ_MIN,
2025 CFG_STA_PREFER_80MHZ_OVER_160MHZ_MAX),
2026
Nitesh Shah0e5c7322017-03-23 14:55:11 +05302027 REG_VARIABLE(CFG_VDEV_TYPE_NSS_5G, WLAN_PARAM_Integer,
Kiran Kumar Lokere666bf852016-05-02 12:23:02 -07002028 struct hdd_config, vdev_type_nss_5g,
2029 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2030 CFG_VDEV_TYPE_NSS_5G_DEFAULT,
2031 CFG_VDEV_TYPE_NSS_5G_MIN,
2032 CFG_VDEV_TYPE_NSS_5G_MAX),
2033
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002034 REG_VARIABLE(CFG_VHT_ENABLE_MU_BFORMEE_CAP_FEATURE, WLAN_PARAM_Integer,
2035 struct hdd_config, enableMuBformee,
2036 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2037 CFG_VHT_ENABLE_MU_BFORMEE_CAP_FEATURE_DEFAULT,
2038 CFG_VHT_ENABLE_MU_BFORMEE_CAP_FEATURE_MIN,
2039 CFG_VHT_ENABLE_MU_BFORMEE_CAP_FEATURE_MAX),
2040
2041 REG_VARIABLE(CFG_VHT_ENABLE_PAID_FEATURE, WLAN_PARAM_Integer,
2042 struct hdd_config, enableVhtpAid,
2043 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2044 CFG_VHT_ENABLE_PAID_FEATURE_DEFAULT,
2045 CFG_VHT_ENABLE_PAID_FEATURE_MIN,
2046 CFG_VHT_ENABLE_PAID_FEATURE_MAX),
2047
2048 REG_VARIABLE(CFG_VHT_ENABLE_GID_FEATURE, WLAN_PARAM_Integer,
2049 struct hdd_config, enableVhtGid,
2050 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2051 CFG_VHT_ENABLE_GID_FEATURE_DEFAULT,
2052 CFG_VHT_ENABLE_GID_FEATURE_MIN,
2053 CFG_VHT_ENABLE_GID_FEATURE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002054
2055 REG_VARIABLE(CFG_VHT_ENABLE_1x1_TX_CHAINMASK, WLAN_PARAM_Integer,
2056 struct hdd_config, txchainmask1x1,
2057 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2058 CFG_VHT_ENABLE_1x1_TX_CHAINMASK_DEFAULT,
2059 CFG_VHT_ENABLE_1x1_TX_CHAINMASK_MIN,
2060 CFG_VHT_ENABLE_1x1_TX_CHAINMASK_MAX),
2061
2062 REG_VARIABLE(CFG_VHT_ENABLE_1x1_RX_CHAINMASK, WLAN_PARAM_Integer,
2063 struct hdd_config, rxchainmask1x1,
2064 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2065 CFG_VHT_ENABLE_1x1_RX_CHAINMASK_DEFAULT,
2066 CFG_VHT_ENABLE_1x1_RX_CHAINMASK_MIN,
2067 CFG_VHT_ENABLE_1x1_RX_CHAINMASK_MAX),
2068
2069 REG_VARIABLE(CFG_ENABLE_AMPDUPS_FEATURE, WLAN_PARAM_Integer,
2070 struct hdd_config, enableAmpduPs,
2071 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2072 CFG_ENABLE_AMPDUPS_FEATURE_DEFAULT,
2073 CFG_ENABLE_AMPDUPS_FEATURE_MIN,
2074 CFG_ENABLE_AMPDUPS_FEATURE_MAX),
2075
2076 REG_VARIABLE(CFG_HT_ENABLE_SMPS_CAP_FEATURE, WLAN_PARAM_Integer,
2077 struct hdd_config, enableHtSmps,
2078 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2079 CFG_HT_ENABLE_SMPS_CAP_FEATURE_DEFAULT,
2080 CFG_HT_ENABLE_SMPS_CAP_FEATURE_MIN,
2081 CFG_HT_ENABLE_SMPS_CAP_FEATURE_MAX),
2082
2083 REG_VARIABLE(CFG_HT_SMPS_CAP_FEATURE, WLAN_PARAM_Integer,
2084 struct hdd_config, htSmps,
2085 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2086 CFG_HT_SMPS_CAP_FEATURE_DEFAULT,
2087 CFG_HT_SMPS_CAP_FEATURE_MIN,
2088 CFG_HT_SMPS_CAP_FEATURE_MAX),
2089
2090 REG_VARIABLE(CFG_DISABLE_DFS_CH_SWITCH, WLAN_PARAM_Integer,
2091 struct hdd_config, disableDFSChSwitch,
2092 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2093 CFG_DISABLE_DFS_CH_SWITCH_DEFAULT,
2094 CFG_DISABLE_DFS_CH_SWITCH_MIN,
2095 CFG_DISABLE_DFS_CH_SWITCH_MAX),
2096
2097 REG_VARIABLE(CFG_ENABLE_DFS_MASTER_CAPABILITY, WLAN_PARAM_Integer,
2098 struct hdd_config, enableDFSMasterCap,
2099 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2100 CFG_ENABLE_DFS_MASTER_CAPABILITY_DEFAULT,
2101 CFG_ENABLE_DFS_MASTER_CAPABILITY_MIN,
2102 CFG_ENABLE_DFS_MASTER_CAPABILITY_MAX),
2103
2104 REG_DYNAMIC_VARIABLE(CFG_SAP_PREFERRED_CHANNEL_LOCATION,
2105 WLAN_PARAM_Integer,
2106 struct hdd_config, gSapPreferredChanLocation,
2107 VAR_FLAGS_OPTIONAL |
2108 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2109 CFG_SAP_PREFERRED_CHANNEL_LOCATION_DEFAULT,
2110 CFG_SAP_PREFERRED_CHANNEL_LOCATION_MIN,
2111 CFG_SAP_PREFERRED_CHANNEL_LOCATION_MAX,
2112 cb_notify_set_g_sap_preferred_chan_location, 0),
2113 REG_DYNAMIC_VARIABLE(CFG_DISABLE_DFS_JAPAN_W53, WLAN_PARAM_Integer,
2114 struct hdd_config, gDisableDfsJapanW53,
2115 VAR_FLAGS_OPTIONAL |
2116 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2117 CFG_DISABLE_DFS_JAPAN_W53_DEFAULT,
2118 CFG_DISABLE_DFS_JAPAN_W53_MIN,
2119 CFG_DISABLE_DFS_JAPAN_W53_MAX,
2120 ch_notify_set_g_disable_dfs_japan_w53, 0),
Hong Shi417824f2017-01-12 02:31:14 +08002121
2122 REG_VARIABLE(CFG_MAX_HT_MCS_FOR_TX_DATA, WLAN_PARAM_HexInteger,
2123 struct hdd_config, max_ht_mcs_txdata,
2124 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2125 CFG_MAX_HT_MCS_FOR_TX_DATA_DEFAULT,
2126 CFG_MAX_HT_MCS_FOR_TX_DATA_MIN,
2127 CFG_MAX_HT_MCS_FOR_TX_DATA_MAX),
2128
Hong Shia9ef8712017-02-19 21:54:02 +08002129 REG_VARIABLE(CFG_DISABLE_ABG_RATE_FOR_TX_DATA, WLAN_PARAM_Integer,
2130 struct hdd_config, disable_abg_rate_txdata,
2131 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2132 CFG_DISABLE_ABG_RATE_FOR_TX_DATA_DEFAULT,
2133 CFG_DISABLE_ABG_RATE_FOR_TX_DATA_MIN,
2134 CFG_DISABLE_ABG_RATE_FOR_TX_DATA_MAX),
2135
Hong Shib90718f2017-02-20 00:57:22 +08002136 REG_VARIABLE(CFG_RATE_FOR_TX_MGMT, WLAN_PARAM_HexInteger,
2137 struct hdd_config, rate_for_tx_mgmt,
2138 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2139 CFG_RATE_FOR_TX_MGMT_DEFAULT,
2140 CFG_RATE_FOR_TX_MGMT_MIN,
2141 CFG_RATE_FOR_TX_MGMT_MAX),
2142
Hong Shi2d384fd2017-05-22 18:38:41 +08002143 REG_VARIABLE(CFG_RATE_FOR_TX_MGMT_2G, WLAN_PARAM_HexInteger,
2144 struct hdd_config, rate_for_tx_mgmt_2g,
2145 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2146 CFG_RATE_FOR_TX_MGMT_2G_DEFAULT,
2147 CFG_RATE_FOR_TX_MGMT_2G_MIN,
2148 CFG_RATE_FOR_TX_MGMT_2G_MAX),
2149
2150 REG_VARIABLE(CFG_RATE_FOR_TX_MGMT_5G, WLAN_PARAM_HexInteger,
2151 struct hdd_config, rate_for_tx_mgmt_5g,
2152 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2153 CFG_RATE_FOR_TX_MGMT_5G_DEFAULT,
2154 CFG_RATE_FOR_TX_MGMT_5G_MIN,
2155 CFG_RATE_FOR_TX_MGMT_5G_MAX),
2156
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002157 REG_VARIABLE(CFG_ENABLE_FIRST_SCAN_2G_ONLY_NAME, WLAN_PARAM_Integer,
2158 struct hdd_config, enableFirstScan2GOnly,
2159 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2160 CFG_ENABLE_FIRST_SCAN_2G_ONLY_DEFAULT,
2161 CFG_ENABLE_FIRST_SCAN_2G_ONLY_MIN,
2162 CFG_ENABLE_FIRST_SCAN_2G_ONLY_MAX),
2163
2164 REG_VARIABLE(CFG_ENABLE_SKIP_DFS_IN_P2P_SEARCH_NAME, WLAN_PARAM_Integer,
2165 struct hdd_config, skipDfsChnlInP2pSearch,
2166 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2167 CFG_ENABLE_SKIP_DFS_IN_P2P_SEARCH_DEFAULT,
2168 CFG_ENABLE_SKIP_DFS_IN_P2P_SEARCH_MIN,
2169 CFG_ENABLE_SKIP_DFS_IN_P2P_SEARCH_MAX),
2170
2171 REG_VARIABLE(CFG_IGNORE_DYNAMIC_DTIM_IN_P2P_MODE_NAME,
2172 WLAN_PARAM_Integer,
2173 struct hdd_config, ignoreDynamicDtimInP2pMode,
2174 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2175 CFG_IGNORE_DYNAMIC_DTIM_IN_P2P_MODE_DEFAULT,
2176 CFG_IGNORE_DYNAMIC_DTIM_IN_P2P_MODE_MIN,
2177 CFG_IGNORE_DYNAMIC_DTIM_IN_P2P_MODE_MAX),
2178
2179 REG_VARIABLE(CFG_ENABLE_RX_STBC, WLAN_PARAM_Integer,
2180 struct hdd_config, enableRxSTBC,
2181 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2182 CFG_ENABLE_RX_STBC_DEFAULT,
2183 CFG_ENABLE_RX_STBC_MIN,
2184 CFG_ENABLE_RX_STBC_MAX),
2185
2186 REG_VARIABLE(CFG_ENABLE_TX_STBC, WLAN_PARAM_Integer,
2187 struct hdd_config, enableTxSTBC,
2188 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2189 CFG_ENABLE_TX_STBC_DEFAULT,
2190 CFG_ENABLE_TX_STBC_MIN,
2191 CFG_ENABLE_TX_STBC_MAX),
2192
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002193 REG_VARIABLE(CFG_PPS_ENABLE_5G_EBT, WLAN_PARAM_Integer,
2194 struct hdd_config, enable5gEBT,
2195 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2196 CFG_PPS_ENABLE_5G_EBT_FEATURE_DEFAULT,
2197 CFG_PPS_ENABLE_5G_EBT_FEATURE_MIN,
2198 CFG_PPS_ENABLE_5G_EBT_FEATURE_MAX),
2199
2200#ifdef FEATURE_WLAN_TDLS
2201 REG_VARIABLE(CFG_TDLS_SUPPORT_ENABLE, WLAN_PARAM_Integer,
2202 struct hdd_config, fEnableTDLSSupport,
2203 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2204 CFG_TDLS_SUPPORT_ENABLE_DEFAULT,
2205 CFG_TDLS_SUPPORT_ENABLE_MIN,
2206 CFG_TDLS_SUPPORT_ENABLE_MAX),
2207
2208 REG_VARIABLE(CFG_TDLS_IMPLICIT_TRIGGER, WLAN_PARAM_Integer,
2209 struct hdd_config, fEnableTDLSImplicitTrigger,
2210 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2211 CFG_TDLS_IMPLICIT_TRIGGER_DEFAULT,
2212 CFG_TDLS_IMPLICIT_TRIGGER_MIN,
2213 CFG_TDLS_IMPLICIT_TRIGGER_MAX),
2214
2215 REG_VARIABLE(CFG_TDLS_TX_STATS_PERIOD, WLAN_PARAM_Integer,
2216 struct hdd_config, fTDLSTxStatsPeriod,
2217 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2218 CFG_TDLS_TX_STATS_PERIOD_DEFAULT,
2219 CFG_TDLS_TX_STATS_PERIOD_MIN,
2220 CFG_TDLS_TX_STATS_PERIOD_MAX),
2221
2222 REG_VARIABLE(CFG_TDLS_TX_PACKET_THRESHOLD, WLAN_PARAM_Integer,
2223 struct hdd_config, fTDLSTxPacketThreshold,
2224 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2225 CFG_TDLS_TX_PACKET_THRESHOLD_DEFAULT,
2226 CFG_TDLS_TX_PACKET_THRESHOLD_MIN,
2227 CFG_TDLS_TX_PACKET_THRESHOLD_MAX),
2228
2229 REG_VARIABLE(CFG_TDLS_MAX_DISCOVERY_ATTEMPT, WLAN_PARAM_Integer,
2230 struct hdd_config, fTDLSMaxDiscoveryAttempt,
2231 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2232 CFG_TDLS_MAX_DISCOVERY_ATTEMPT_DEFAULT,
2233 CFG_TDLS_MAX_DISCOVERY_ATTEMPT_MIN,
2234 CFG_TDLS_MAX_DISCOVERY_ATTEMPT_MAX),
2235
Kabilan Kannanca670be2015-11-23 01:56:12 -08002236 REG_VARIABLE(CFG_TDLS_IDLE_TIMEOUT, WLAN_PARAM_Integer,
2237 struct hdd_config, tdls_idle_timeout,
2238 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2239 CFG_TDLS_IDLE_TIMEOUT_DEFAULT,
2240 CFG_TDLS_IDLE_TIMEOUT_MIN,
2241 CFG_TDLS_IDLE_TIMEOUT_MAX),
2242
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002243 REG_VARIABLE(CFG_TDLS_IDLE_PACKET_THRESHOLD, WLAN_PARAM_Integer,
2244 struct hdd_config, fTDLSIdlePacketThreshold,
2245 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2246 CFG_TDLS_IDLE_PACKET_THRESHOLD_DEFAULT,
2247 CFG_TDLS_IDLE_PACKET_THRESHOLD_MIN,
2248 CFG_TDLS_IDLE_PACKET_THRESHOLD_MAX),
2249
2250 REG_VARIABLE(CFG_TDLS_RSSI_TRIGGER_THRESHOLD, WLAN_PARAM_SignedInteger,
2251 struct hdd_config, fTDLSRSSITriggerThreshold,
2252 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2253 CFG_TDLS_RSSI_TRIGGER_THRESHOLD_DEFAULT,
2254 CFG_TDLS_RSSI_TRIGGER_THRESHOLD_MIN,
2255 CFG_TDLS_RSSI_TRIGGER_THRESHOLD_MAX),
2256
2257 REG_VARIABLE(CFG_TDLS_RSSI_TEARDOWN_THRESHOLD, WLAN_PARAM_SignedInteger,
2258 struct hdd_config, fTDLSRSSITeardownThreshold,
2259 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2260 CFG_TDLS_RSSI_TEARDOWN_THRESHOLD_DEFAULT,
2261 CFG_TDLS_RSSI_TEARDOWN_THRESHOLD_MIN,
2262 CFG_TDLS_RSSI_TEARDOWN_THRESHOLD_MAX),
2263
2264 REG_VARIABLE(CFG_TDLS_RSSI_DELTA, WLAN_PARAM_SignedInteger,
2265 struct hdd_config, fTDLSRSSIDelta,
2266 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2267 CFG_TDLS_RSSI_DELTA_DEFAULT,
2268 CFG_TDLS_RSSI_DELTA_MIN,
2269 CFG_TDLS_RSSI_DELTA_MAX),
2270
2271 REG_VARIABLE(CFG_TDLS_QOS_WMM_UAPSD_MASK_NAME, WLAN_PARAM_HexInteger,
2272 struct hdd_config, fTDLSUapsdMask,
2273 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2274 CFG_TDLS_QOS_WMM_UAPSD_MASK_DEFAULT,
2275 CFG_TDLS_QOS_WMM_UAPSD_MASK_MIN,
2276 CFG_TDLS_QOS_WMM_UAPSD_MASK_MAX),
2277
2278 REG_VARIABLE(CFG_TDLS_BUFFER_STA_SUPPORT_ENABLE, WLAN_PARAM_Integer,
2279 struct hdd_config, fEnableTDLSBufferSta,
2280 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2281 CFG_TDLS_BUFFER_STA_SUPPORT_ENABLE_DEFAULT,
2282 CFG_TDLS_BUFFER_STA_SUPPORT_ENABLE_MIN,
2283 CFG_TDLS_BUFFER_STA_SUPPORT_ENABLE_MAX),
2284
2285 REG_VARIABLE(CFG_TDLS_OFF_CHANNEL_SUPPORT_ENABLE, WLAN_PARAM_Integer,
2286 struct hdd_config, fEnableTDLSOffChannel,
2287 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2288 CFG_TDLS_OFF_CHANNEL_SUPPORT_ENABLE_DEFAULT,
2289 CFG_TDLS_OFF_CHANNEL_SUPPORT_ENABLE_MIN,
2290 CFG_TDLS_OFF_CHANNEL_SUPPORT_ENABLE_MAX),
2291
2292 REG_VARIABLE(CFG_TDLS_PREFERRED_OFF_CHANNEL_NUM, WLAN_PARAM_Integer,
2293 struct hdd_config, fTDLSPrefOffChanNum,
2294 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2295 CFG_TDLS_PREFERRED_OFF_CHANNEL_NUM_DEFAULT,
2296 CFG_TDLS_PREFERRED_OFF_CHANNEL_NUM_MIN,
2297 CFG_TDLS_PREFERRED_OFF_CHANNEL_NUM_MAX),
2298
2299 REG_VARIABLE(CFG_TDLS_PREFERRED_OFF_CHANNEL_BW, WLAN_PARAM_Integer,
2300 struct hdd_config, fTDLSPrefOffChanBandwidth,
2301 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2302 CFG_TDLS_PREFERRED_OFF_CHANNEL_BW_DEFAULT,
2303 CFG_TDLS_PREFERRED_OFF_CHANNEL_BW_MIN,
2304 CFG_TDLS_PREFERRED_OFF_CHANNEL_BW_MAX),
2305
2306 REG_VARIABLE(CFG_TDLS_PUAPSD_INACTIVITY_TIME, WLAN_PARAM_Integer,
2307 struct hdd_config, fTDLSPuapsdInactivityTimer,
2308 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2309 CFG_TDLS_PUAPSD_INACTIVITY_TIME_DEFAULT,
2310 CFG_TDLS_PUAPSD_INACTIVITY_TIME_MIN,
2311 CFG_TDLS_PUAPSD_INACTIVITY_TIME_MAX),
2312
2313 REG_VARIABLE(CFG_TDLS_PUAPSD_RX_FRAME_THRESHOLD, WLAN_PARAM_Integer,
2314 struct hdd_config, fTDLSRxFrameThreshold,
2315 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2316 CFG_TDLS_PUAPSD_RX_FRAME_THRESHOLD_DEFAULT,
2317 CFG_TDLS_PUAPSD_RX_FRAME_THRESHOLD_MIN,
2318 CFG_TDLS_PUAPSD_RX_FRAME_THRESHOLD_MAX),
2319
2320 REG_VARIABLE(CFG_TDLS_PUAPSD_PEER_TRAFFIC_IND_WINDOW,
2321 WLAN_PARAM_Integer,
2322 struct hdd_config, fTDLSPuapsdPTIWindow,
2323 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2324 CFG_TDLS_PUAPSD_PEER_TRAFFIC_IND_WINDOW_DEFAULT,
2325 CFG_TDLS_PUAPSD_PEER_TRAFFIC_IND_WINDOW_MIN,
2326 CFG_TDLS_PUAPSD_PEER_TRAFFIC_IND_WINDOW_MAX),
2327
2328 REG_VARIABLE(CFG_TDLS_PUAPSD_PEER_TRAFFIC_RSP_TIMEOUT,
2329 WLAN_PARAM_Integer,
2330 struct hdd_config, fTDLSPuapsdPTRTimeout,
2331 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2332 CFG_TDLS_PUAPSD_PEER_TRAFFIC_RSP_TIMEOUT_DEFAULT,
2333 CFG_TDLS_PUAPSD_PEER_TRAFFIC_RSP_TIMEOUT_MIN,
2334 CFG_TDLS_PUAPSD_PEER_TRAFFIC_RSP_TIMEOUT_MAX),
2335
2336 REG_VARIABLE(CFG_TDLS_EXTERNAL_CONTROL, WLAN_PARAM_Integer,
2337 struct hdd_config, fTDLSExternalControl,
2338 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2339 CFG_TDLS_EXTERNAL_CONTROL_DEFAULT,
2340 CFG_TDLS_EXTERNAL_CONTROL_MIN,
2341 CFG_TDLS_EXTERNAL_CONTROL_MAX),
2342 REG_VARIABLE(CFG_TDLS_WMM_MODE_ENABLE, WLAN_PARAM_Integer,
2343 struct hdd_config, fEnableTDLSWmmMode,
2344 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2345 CFG_TDLS_WMM_MODE_ENABLE_DEFAULT,
2346 CFG_TDLS_WMM_MODE_ENABLE_MIN,
2347 CFG_TDLS_WMM_MODE_ENABLE_MAX),
2348
2349 REG_VARIABLE(CFG_TDLS_SCAN_ENABLE, WLAN_PARAM_Integer,
2350 struct hdd_config, enable_tdls_scan,
2351 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2352 CFG_TDLS_SCAN_ENABLE_DEFAULT,
2353 CFG_TDLS_SCAN_ENABLE_MIN,
2354 CFG_TDLS_SCAN_ENABLE_MAX),
Kabilan Kannan421714b2015-11-23 04:44:59 -08002355
2356 REG_VARIABLE(CFG_TDLS_PEER_KICKOUT_THRESHOLD, WLAN_PARAM_Integer,
2357 struct hdd_config, tdls_peer_kickout_threshold,
2358 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2359 CFG_TDLS_PEER_KICKOUT_THRESHOLD_DEFAULT,
2360 CFG_TDLS_PEER_KICKOUT_THRESHOLD_MIN,
2361 CFG_TDLS_PEER_KICKOUT_THRESHOLD_MAX),
2362
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002363#endif
2364
2365#ifdef WLAN_SOFTAP_VSTA_FEATURE
2366 REG_VARIABLE(CFG_VSTA_SUPPORT_ENABLE, WLAN_PARAM_Integer,
2367 struct hdd_config, fEnableVSTASupport,
2368 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2369 CFG_VSTA_SUPPORT_ENABLE_DEFAULT,
2370 CFG_VSTA_SUPPORT_ENABLE_MIN,
2371 CFG_VSTA_SUPPORT_ENABLE_MAX),
2372#endif
2373 REG_VARIABLE(CFG_ENABLE_LPWR_IMG_TRANSITION_NAME, WLAN_PARAM_Integer,
2374 struct hdd_config, enableLpwrImgTransition,
2375 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2376 CFG_ENABLE_LPWR_IMG_TRANSITION_DEFAULT,
2377 CFG_ENABLE_LPWR_IMG_TRANSITION_MIN,
2378 CFG_ENABLE_LPWR_IMG_TRANSITION_MAX),
2379
2380 REG_VARIABLE(CFG_ENABLE_LPWR_IMG_TRANSITION_NAME, WLAN_PARAM_Integer,
2381 struct hdd_config, enableLpwrImgTransition,
2382 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2383 CFG_ENABLE_LPWR_IMG_TRANSITION_DEFAULT,
2384 CFG_ENABLE_LPWR_IMG_TRANSITION_MIN,
2385 CFG_ENABLE_LPWR_IMG_TRANSITION_MAX),
2386
2387 REG_VARIABLE(CFG_SCAN_AGING_PARAM_NAME, WLAN_PARAM_Integer,
2388 struct hdd_config, scanAgingTimeout,
2389 VAR_FLAGS_OPTIONAL,
2390 CFG_SCAN_AGING_PARAM_DEFAULT,
2391 CFG_SCAN_AGING_PARAM_MIN,
2392 CFG_SCAN_AGING_PARAM_MAX),
2393
2394 REG_VARIABLE(CFG_TX_LDPC_ENABLE_FEATURE, WLAN_PARAM_Integer,
Krunal Sonia2c0e412017-05-04 14:12:41 +05302395 struct hdd_config, enable_tx_ldpc,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002396 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2397 CFG_TX_LDPC_ENABLE_FEATURE_DEFAULT,
2398 CFG_TX_LDPC_ENABLE_FEATURE_MIN,
2399 CFG_TX_LDPC_ENABLE_FEATURE_MAX),
2400
Krunal Sonia2c0e412017-05-04 14:12:41 +05302401 REG_VARIABLE(CFG_ENABLE_RX_LDPC, WLAN_PARAM_Integer,
2402 struct hdd_config, enable_rx_ldpc,
2403 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2404 CFG_ENABLE_RX_LDPC_DEFAULT,
2405 CFG_ENABLE_RX_LDPC_MIN,
2406 CFG_ENABLE_RX_LDPC_MAX),
2407
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002408 REG_VARIABLE(CFG_ENABLE_MCC_ADATIVE_SCHEDULER_ENABLED_NAME,
2409 WLAN_PARAM_Integer,
2410 struct hdd_config, enableMCCAdaptiveScheduler,
2411 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2412 CFG_ENABLE_MCC_ADATIVE_SCHEDULER_ENABLED_DEFAULT,
2413 CFG_ENABLE_MCC_ADATIVE_SCHEDULER_ENABLED_MIN,
2414 CFG_ENABLE_MCC_ADATIVE_SCHEDULER_ENABLED_MAX),
2415
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002416 REG_VARIABLE(CFG_IBSS_ADHOC_CHANNEL_5GHZ_NAME, WLAN_PARAM_Integer,
2417 struct hdd_config, AdHocChannel5G,
2418 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2419 CFG_IBSS_ADHOC_CHANNEL_5GHZ_DEFAULT,
2420 CFG_IBSS_ADHOC_CHANNEL_5GHZ_MIN,
2421 CFG_IBSS_ADHOC_CHANNEL_5GHZ_MAX),
2422
2423 REG_VARIABLE(CFG_IBSS_ADHOC_CHANNEL_24GHZ_NAME, WLAN_PARAM_Integer,
2424 struct hdd_config, AdHocChannel24G,
2425 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2426 CFG_IBSS_ADHOC_CHANNEL_24GHZ_DEFAULT,
2427 CFG_IBSS_ADHOC_CHANNEL_24GHZ_MIN,
2428 CFG_IBSS_ADHOC_CHANNEL_24GHZ_MAX),
2429
2430 REG_VARIABLE(CFG_VHT_SU_BEAMFORMEE_CAP_FEATURE, WLAN_PARAM_Integer,
2431 struct hdd_config, enableTxBF,
2432 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2433 CFG_VHT_SU_BEAMFORMEE_CAP_FEATURE_DEFAULT,
2434 CFG_VHT_SU_BEAMFORMEE_CAP_FEATURE_MIN,
2435 CFG_VHT_SU_BEAMFORMEE_CAP_FEATURE_MAX),
2436
Kiran Kumar Lokere5302ab62015-12-16 16:03:16 -08002437 REG_VARIABLE(CFG_VHT_ENABLE_TXBF_SAP_MODE, WLAN_PARAM_Integer,
2438 struct hdd_config, enable_txbf_sap_mode,
2439 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2440 CFG_VHT_ENABLE_TXBF_SAP_MODE_DEFAULT,
2441 CFG_VHT_ENABLE_TXBF_SAP_MODE_MIN,
2442 CFG_VHT_ENABLE_TXBF_SAP_MODE_MAX),
2443
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002444 REG_VARIABLE(CFG_VHT_ENABLE_TXBF_IN_20MHZ, WLAN_PARAM_Integer,
2445 struct hdd_config, enableTxBFin20MHz,
2446 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2447 CFG_VHT_ENABLE_TXBF_IN_20MHZ_DEFAULT,
2448 CFG_VHT_ENABLE_TXBF_IN_20MHZ_MIN,
2449 CFG_VHT_ENABLE_TXBF_IN_20MHZ_MAX),
2450
2451 REG_VARIABLE(CFG_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED, WLAN_PARAM_Integer,
2452 struct hdd_config, txBFCsnValue,
2453 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2454 CFG_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED_DEFAULT,
2455 CFG_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED_MIN,
2456 CFG_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED_MAX),
2457
2458 REG_VARIABLE(CFG_VHT_ENABLE_TX_SU_BEAM_FORMER, WLAN_PARAM_Integer,
2459 struct hdd_config, enable_su_tx_bformer,
2460 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2461 CFG_VHT_ENABLE_TX_SU_BEAM_FORMER_DEFAULT,
2462 CFG_VHT_ENABLE_TX_SU_BEAM_FORMER_MIN,
2463 CFG_VHT_ENABLE_TX_SU_BEAM_FORMER_MAX),
2464
2465 REG_VARIABLE(CFG_SAP_ALLOW_ALL_CHANNEL_PARAM_NAME, WLAN_PARAM_Integer,
2466 struct hdd_config, sapAllowAllChannel,
2467 VAR_FLAGS_OPTIONAL,
2468 CFG_SAP_ALLOW_ALL_CHANNEL_PARAM_DEFAULT,
2469 CFG_SAP_ALLOW_ALL_CHANNEL_PARAM_MIN,
2470 CFG_SAP_ALLOW_ALL_CHANNEL_PARAM_MAX),
2471
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002472 REG_VARIABLE(CFG_DISABLE_LDPC_WITH_TXBF_AP, WLAN_PARAM_Integer,
2473 struct hdd_config, disableLDPCWithTxbfAP,
2474 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2475 CFG_DISABLE_LDPC_WITH_TXBF_AP_DEFAULT,
2476 CFG_DISABLE_LDPC_WITH_TXBF_AP_MIN,
2477 CFG_DISABLE_LDPC_WITH_TXBF_AP_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002478
2479 REG_DYNAMIC_VARIABLE(CFG_ENABLE_SSR, WLAN_PARAM_Integer,
2480 struct hdd_config, enableSSR,
2481 VAR_FLAGS_OPTIONAL |
2482 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2483 CFG_ENABLE_SSR_DEFAULT,
2484 CFG_ENABLE_SSR_MIN,
2485 CFG_ENABLE_SSR_MAX,
2486 cb_notify_set_enable_ssr, 0),
2487
2488 REG_VARIABLE(CFG_MAX_MEDIUM_TIME, WLAN_PARAM_Integer,
2489 struct hdd_config, cfgMaxMediumTime,
2490 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2491 CFG_MAX_MEDIUM_TIME_STADEFAULT,
2492 CFG_MAX_MEDIUM_TIME_STAMIN,
2493 CFG_MAX_MEDIUM_TIME_STAMAX),
2494
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002495 REG_VARIABLE(CFG_ENABLE_VHT_FOR_24GHZ_NAME, WLAN_PARAM_Integer,
2496 struct hdd_config, enableVhtFor24GHzBand,
2497 VAR_FLAGS_OPTIONAL,
2498 CFG_ENABLE_VHT_FOR_24GHZ_DEFAULT,
2499 CFG_ENABLE_VHT_FOR_24GHZ_MIN,
2500 CFG_ENABLE_VHT_FOR_24GHZ_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002501
Kapil Gupta4b2efbb2016-10-03 13:07:20 +05302502
2503 REG_VARIABLE(CFG_ENABLE_VENDOR_VHT_FOR_24GHZ_NAME, WLAN_PARAM_Integer,
2504 struct hdd_config, enable_sap_vendor_vht,
2505 VAR_FLAGS_OPTIONAL,
2506 CFG_ENABLE_VENDOR_VHT_FOR_24GHZ_DEFAULT,
2507 CFG_ENABLE_VENDOR_VHT_FOR_24GHZ_MIN,
2508 CFG_ENABLE_VENDOR_VHT_FOR_24GHZ_MAX),
2509
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002510 REG_DYNAMIC_VARIABLE(CFG_ENABLE_FAST_ROAM_IN_CONCURRENCY,
2511 WLAN_PARAM_Integer,
2512 struct hdd_config, bFastRoamInConIniFeatureEnabled,
2513 VAR_FLAGS_OPTIONAL |
2514 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2515 CFG_ENABLE_FAST_ROAM_IN_CONCURRENCY_DEFAULT,
2516 CFG_ENABLE_FAST_ROAM_IN_CONCURRENCY_MIN,
2517 CFG_ENABLE_FAST_ROAM_IN_CONCURRENCY_MAX,
2518 cb_notify_set_enable_fast_roam_in_concurrency, 0),
2519
2520 REG_VARIABLE(CFG_ENABLE_ADAPT_RX_DRAIN_NAME, WLAN_PARAM_Integer,
2521 struct hdd_config, fEnableAdaptRxDrain,
2522 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2523 CFG_ENABLE_ADAPT_RX_DRAIN_DEFAULT,
2524 CFG_ENABLE_ADAPT_RX_DRAIN_MIN,
2525 CFG_ENABLE_ADAPT_RX_DRAIN_MAX),
2526
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002527 REG_VARIABLE(CFG_ENABLE_HEART_BEAT_OFFLOAD, WLAN_PARAM_Integer,
2528 struct hdd_config, enableIbssHeartBeatOffload,
2529 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2530 CFG_ENABLE_HEART_BEAT_OFFLOAD_DEFAULT,
2531 CFG_ENABLE_HEART_BEAT_OFFLOAD_MIN,
2532 CFG_ENABLE_HEART_BEAT_OFFLOAD_MAX),
2533
2534 REG_VARIABLE(CFG_ANTENNA_DIVERSITY_PARAM_NAME, WLAN_PARAM_Integer,
2535 struct hdd_config, antennaDiversity,
2536 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2537 CFG_ANTENNA_DIVERSITY_PARAM_DEFAULT,
2538 CFG_ANTENNA_DIVERSITY_PARAM_MIN,
2539 CFG_ANTENNA_DIVERSITY_PARAM_MAX),
2540
2541 REG_VARIABLE(CFG_ENABLE_SNR_MONITORING_NAME, WLAN_PARAM_Integer,
2542 struct hdd_config, fEnableSNRMonitoring,
2543 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2544 CFG_ENABLE_SNR_MONITORING_DEFAULT,
2545 CFG_ENABLE_SNR_MONITORING_MIN,
2546 CFG_ENABLE_SNR_MONITORING_MAX),
2547
2548#ifdef FEATURE_WLAN_SCAN_PNO
2549 REG_VARIABLE(CFG_PNO_SCAN_SUPPORT, WLAN_PARAM_Integer,
2550 struct hdd_config, configPNOScanSupport,
2551 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2552 CFG_PNO_SCAN_SUPPORT_DEFAULT,
2553 CFG_PNO_SCAN_SUPPORT_DISABLE,
2554 CFG_PNO_SCAN_SUPPORT_ENABLE),
2555
2556 REG_VARIABLE(CFG_PNO_SCAN_TIMER_REPEAT_VALUE, WLAN_PARAM_Integer,
2557 struct hdd_config, configPNOScanTimerRepeatValue,
2558 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2559 CFG_PNO_SCAN_TIMER_REPEAT_VALUE_DEFAULT,
2560 CFG_PNO_SCAN_TIMER_REPEAT_VALUE_MIN,
2561 CFG_PNO_SCAN_TIMER_REPEAT_VALUE_MAX),
Srinivas Girigowdabdc98162015-09-17 11:06:07 -07002562
2563 REG_VARIABLE(CFG_PNO_SLOW_SCAN_MULTIPLIER, WLAN_PARAM_Integer,
2564 struct hdd_config, pno_slow_scan_multiplier,
2565 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2566 CFG_PNO_SLOW_SCAN_MULTIPLIER_DEFAULT,
2567 CFG_PNO_SLOW_SCAN_MULTIPLIER_MIN,
2568 CFG_PNO_SLOW_SCAN_MULTIPLIER_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002569#endif
Deepak Dhamdhere612392c2016-08-28 02:56:51 -07002570 REG_VARIABLE(CFG_MAX_AMSDU_NUM_NAME , WLAN_PARAM_Integer,
2571 struct hdd_config, max_amsdu_num,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002572 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
Deepak Dhamdhere612392c2016-08-28 02:56:51 -07002573 CFG_MAX_AMSDU_NUM_DEFAULT,
2574 CFG_MAX_AMSDU_NUM_MIN,
2575 CFG_MAX_AMSDU_NUM_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002576
2577 REG_VARIABLE(CFG_STRICT_5GHZ_PREF_BY_MARGIN, WLAN_PARAM_Integer,
2578 struct hdd_config, nSelect5GHzMargin,
2579 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2580 CFG_STRICT_5GHZ_PREF_BY_MARGIN_DEFAULT,
2581 CFG_STRICT_5GHZ_PREF_BY_MARGIN_MIN,
2582 CFG_STRICT_5GHZ_PREF_BY_MARGIN_MAX),
2583
2584 REG_VARIABLE(CFG_ENABLE_IP_TCP_UDP_CHKSUM_OFFLOAD, WLAN_PARAM_Integer,
2585 struct hdd_config, enable_ip_tcp_udp_checksum_offload,
2586 VAR_FLAGS_OPTIONAL,
2587 CFG_ENABLE_IP_TCP_UDP_CHKSUM_OFFLOAD_DEFAULT,
2588 CFG_ENABLE_IP_TCP_UDP_CHKSUM_OFFLOAD_DISABLE,
2589 CFG_ENABLE_IP_TCP_UDP_CHKSUM_OFFLOAD_ENABLE),
2590
2591 REG_VARIABLE(CFG_POWERSAVE_OFFLOAD_NAME, WLAN_PARAM_Integer,
2592 struct hdd_config, enablePowersaveOffload,
2593 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2594 CFG_POWERSAVE_OFFLOAD_DEFAULT,
2595 CFG_POWERSAVE_OFFLOAD_MIN,
2596 CFG_POWERSAVE_OFFLOAD_MAX),
2597
2598 REG_VARIABLE(CFG_ENABLE_FW_UART_PRINT_NAME, WLAN_PARAM_Integer,
2599 struct hdd_config, enablefwprint,
2600 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2601 CFG_ENABLE_FW_UART_PRINT_DEFAULT,
2602 CFG_ENABLE_FW_UART_PRINT_DISABLE,
2603 CFG_ENABLE_FW_UART_PRINT_ENABLE),
2604
2605 REG_VARIABLE(CFG_ENABLE_FW_LOG_NAME, WLAN_PARAM_Integer,
Komal Seelamc11bb222016-01-27 18:57:10 +05302606 struct hdd_config, enable_fw_log,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002607 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2608 CFG_ENABLE_FW_LOG_DEFAULT,
2609 CFG_ENABLE_FW_LOG_DISABLE,
Yuanyuan Liu7a97b8f2017-01-27 10:42:52 -08002610 CFG_ENABLE_FW_LOG_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002611
2612#ifdef IPA_OFFLOAD
2613 REG_VARIABLE(CFG_IPA_OFFLOAD_CONFIG_NAME, WLAN_PARAM_HexInteger,
2614 struct hdd_config, IpaConfig,
2615 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2616 CFG_IPA_OFFLOAD_CONFIG_DEFAULT,
2617 CFG_IPA_OFFLOAD_CONFIG_MIN,
2618 CFG_IPA_OFFLOAD_CONFIG_MAX),
2619
2620 REG_VARIABLE(CFG_IPA_DESC_SIZE_NAME, WLAN_PARAM_Integer,
2621 struct hdd_config, IpaDescSize,
2622 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2623 CFG_IPA_DESC_SIZE_DEFAULT,
2624 CFG_IPA_DESC_SIZE_MIN,
2625 CFG_IPA_DESC_SIZE_MAX),
2626
2627 REG_VARIABLE(CFG_IPA_HIGH_BANDWIDTH_MBPS, WLAN_PARAM_Integer,
2628 struct hdd_config, IpaHighBandwidthMbps,
2629 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2630 CFG_IPA_HIGH_BANDWIDTH_MBPS_DEFAULT,
2631 CFG_IPA_HIGH_BANDWIDTH_MBPS_MIN,
2632 CFG_IPA_HIGH_BANDWIDTH_MBPS_MAX),
2633
2634 REG_VARIABLE(CFG_IPA_MEDIUM_BANDWIDTH_MBPS, WLAN_PARAM_Integer,
2635 struct hdd_config, IpaMediumBandwidthMbps,
2636 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2637 CFG_IPA_MEDIUM_BANDWIDTH_MBPS_DEFAULT,
2638 CFG_IPA_MEDIUM_BANDWIDTH_MBPS_MIN,
2639 CFG_IPA_MEDIUM_BANDWIDTH_MBPS_MAX),
2640
2641 REG_VARIABLE(CFG_IPA_LOW_BANDWIDTH_MBPS, WLAN_PARAM_Integer,
2642 struct hdd_config, IpaLowBandwidthMbps,
2643 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2644 CFG_IPA_LOW_BANDWIDTH_MBPS_DEFAULT,
2645 CFG_IPA_LOW_BANDWIDTH_MBPS_MIN,
2646 CFG_IPA_LOW_BANDWIDTH_MBPS_MAX),
2647#endif
2648
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002649 REG_VARIABLE(CFG_VHT_AMPDU_LEN_EXPONENT_NAME, WLAN_PARAM_Integer,
2650 struct hdd_config, fVhtAmpduLenExponent,
2651 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2652 CFG_VHT_AMPDU_LEN_EXPONENT_DEFAULT,
2653 CFG_VHT_AMPDU_LEN_EXPONENT_MIN,
2654 CFG_VHT_AMPDU_LEN_EXPONENT_MAX),
2655
2656 REG_VARIABLE(CFG_VHT_MPDU_LEN_NAME, WLAN_PARAM_Integer,
2657 struct hdd_config, vhtMpduLen,
2658 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2659 CFG_VHT_MPDU_LEN_DEFAULT,
2660 CFG_VHT_MPDU_LEN_MIN,
2661 CFG_VHT_MPDU_LEN_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002662
2663 REG_VARIABLE(CFG_MAX_WOW_FILTERS_NAME, WLAN_PARAM_Integer,
2664 struct hdd_config, maxWoWFilters,
2665 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2666 CFG_MAX_WOW_FILTERS_DEFAULT,
2667 CFG_MAX_WOW_FILTERS_MIN,
2668 CFG_MAX_WOW_FILTERS_MAX),
2669
2670 REG_VARIABLE(CFG_WOW_STATUS_NAME, WLAN_PARAM_Integer,
2671 struct hdd_config, wowEnable,
2672 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2673 CFG_WOW_STATUS_DEFAULT,
2674 CFG_WOW_ENABLE_MIN,
2675 CFG_WOW_ENABLE_MAX),
2676
2677 REG_VARIABLE(CFG_COALESING_IN_IBSS_NAME, WLAN_PARAM_Integer,
2678 struct hdd_config, isCoalesingInIBSSAllowed,
2679 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2680 CFG_COALESING_IN_IBSS_DEFAULT,
2681 CFG_COALESING_IN_IBSS_MIN,
2682 CFG_COALESING_IN_IBSS_MAX),
2683
2684 REG_VARIABLE(CFG_IBSS_ATIM_WIN_SIZE_NAME, WLAN_PARAM_Integer,
2685 struct hdd_config, ibssATIMWinSize,
2686 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2687 CFG_IBSS_ATIM_WIN_SIZE_DEFAULT,
2688 CFG_IBSS_ATIM_WIN_SIZE_MIN,
2689 CFG_IBSS_ATIM_WIN_SIZE_MAX),
2690
2691 REG_VARIABLE(CFG_SAP_MAX_NO_PEERS, WLAN_PARAM_Integer,
2692 struct hdd_config, maxNumberOfPeers,
2693 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2694 CFG_SAP_MAX_NO_PEERS_DEFAULT,
2695 CFG_SAP_MAX_NO_PEERS_MIN,
2696 CFG_SAP_MAX_NO_PEERS_MAX),
2697
2698 REG_VARIABLE(CFG_IBSS_IS_POWER_SAVE_ALLOWED_NAME, WLAN_PARAM_Integer,
2699 struct hdd_config, isIbssPowerSaveAllowed,
2700 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2701 CFG_IBSS_IS_POWER_SAVE_ALLOWED_DEFAULT,
2702 CFG_IBSS_IS_POWER_SAVE_ALLOWED_MIN,
2703 CFG_IBSS_IS_POWER_SAVE_ALLOWED_MAX),
2704
2705 REG_VARIABLE(CFG_IBSS_IS_POWER_COLLAPSE_ALLOWED_NAME,
2706 WLAN_PARAM_Integer,
2707 struct hdd_config, isIbssPowerCollapseAllowed,
2708 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2709 CFG_IBSS_IS_POWER_COLLAPSE_ALLOWED_DEFAULT,
2710 CFG_IBSS_IS_POWER_COLLAPSE_ALLOWED_MIN,
2711 CFG_IBSS_IS_POWER_COLLAPSE_ALLOWED_MAX),
2712
2713 REG_VARIABLE(CFG_IBSS_AWAKE_ON_TX_RX_NAME, WLAN_PARAM_Integer,
2714 struct hdd_config, isIbssAwakeOnTxRx,
2715 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2716 CFG_IBSS_AWAKE_ON_TX_RX_DEFAULT,
2717 CFG_IBSS_AWAKE_ON_TX_RX_MIN,
2718 CFG_IBSS_AWAKE_ON_TX_RX_MAX),
2719
2720 REG_VARIABLE(CFG_IBSS_INACTIVITY_TIME_NAME, WLAN_PARAM_Integer,
2721 struct hdd_config, ibssInactivityCount,
2722 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2723 CFG_IBSS_INACTIVITY_TIME_DEFAULT,
2724 CFG_IBSS_INACTIVITY_TIME_MIN,
2725 CFG_IBSS_INACTIVITY_TIME_MAX),
2726
2727 REG_VARIABLE(CFG_IBSS_TXSP_END_INACTIVITY_NAME, WLAN_PARAM_Integer,
2728 struct hdd_config, ibssTxSpEndInactivityTime,
2729 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2730 CFG_IBSS_TXSP_END_INACTIVITY_DEFAULT,
2731 CFG_IBSS_TXSP_END_INACTIVITY_MIN,
2732 CFG_IBSS_TXSP_END_INACTIVITY_MAX),
2733
2734 REG_VARIABLE(CFG_IBSS_PS_WARMUP_TIME_NAME, WLAN_PARAM_Integer,
2735 struct hdd_config, ibssPsWarmupTime,
2736 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2737 CFG_IBSS_PS_WARMUP_TIME_DEFAULT,
2738 CFG_IBSS_PS_WARMUP_TIME_MIN,
2739 CFG_IBSS_PS_WARMUP_TIME_MAX),
2740
2741 REG_VARIABLE(CFG_IBSS_PS_1RX_CHAIN_IN_ATIM_WINDOW_NAME,
2742 WLAN_PARAM_Integer,
2743 struct hdd_config, ibssPs1RxChainInAtimEnable,
2744 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2745 CFG_IBSS_PS_1RX_CHAIN_IN_ATIM_WINDOW_DEFAULT,
2746 CFG_IBSS_PS_1RX_CHAIN_IN_ATIM_WINDOW_MIN,
2747 CFG_IBSS_PS_1RX_CHAIN_IN_ATIM_WINDOW_MAX),
2748
2749 REG_VARIABLE(CFG_THERMAL_TEMP_MIN_LEVEL0_NAME, WLAN_PARAM_Integer,
2750 struct hdd_config, thermalTempMinLevel0,
2751 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2752 CFG_THERMAL_TEMP_MIN_LEVEL0_DEFAULT,
2753 CFG_THERMAL_TEMP_MIN_LEVEL0_MIN,
2754 CFG_THERMAL_TEMP_MIN_LEVEL0_MAX),
2755
2756 REG_VARIABLE(CFG_THERMAL_TEMP_MAX_LEVEL0_NAME, WLAN_PARAM_Integer,
2757 struct hdd_config, thermalTempMaxLevel0,
2758 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2759 CFG_THERMAL_TEMP_MAX_LEVEL0_DEFAULT,
2760 CFG_THERMAL_TEMP_MAX_LEVEL0_MIN,
2761 CFG_THERMAL_TEMP_MAX_LEVEL0_MAX),
2762
2763 REG_VARIABLE(CFG_THERMAL_TEMP_MIN_LEVEL1_NAME, WLAN_PARAM_Integer,
2764 struct hdd_config, thermalTempMinLevel1,
2765 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2766 CFG_THERMAL_TEMP_MIN_LEVEL1_DEFAULT,
2767 CFG_THERMAL_TEMP_MIN_LEVEL1_MIN,
2768 CFG_THERMAL_TEMP_MIN_LEVEL1_MAX),
2769
2770 REG_VARIABLE(CFG_THERMAL_TEMP_MAX_LEVEL1_NAME, WLAN_PARAM_Integer,
2771 struct hdd_config, thermalTempMaxLevel1,
2772 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2773 CFG_THERMAL_TEMP_MAX_LEVEL1_DEFAULT,
2774 CFG_THERMAL_TEMP_MAX_LEVEL1_MIN,
2775 CFG_THERMAL_TEMP_MAX_LEVEL1_MAX),
2776
2777 REG_VARIABLE(CFG_THERMAL_TEMP_MIN_LEVEL2_NAME, WLAN_PARAM_Integer,
2778 struct hdd_config, thermalTempMinLevel2,
2779 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2780 CFG_THERMAL_TEMP_MIN_LEVEL2_DEFAULT,
2781 CFG_THERMAL_TEMP_MIN_LEVEL2_MIN,
2782 CFG_THERMAL_TEMP_MIN_LEVEL2_MAX),
2783
2784 REG_VARIABLE(CFG_THERMAL_TEMP_MAX_LEVEL2_NAME, WLAN_PARAM_Integer,
2785 struct hdd_config, thermalTempMaxLevel2,
2786 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2787 CFG_THERMAL_TEMP_MAX_LEVEL2_DEFAULT,
2788 CFG_THERMAL_TEMP_MAX_LEVEL2_MIN,
2789 CFG_THERMAL_TEMP_MAX_LEVEL2_MAX),
2790
2791 REG_VARIABLE(CFG_THERMAL_TEMP_MIN_LEVEL3_NAME, WLAN_PARAM_Integer,
2792 struct hdd_config, thermalTempMinLevel3,
2793 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2794 CFG_THERMAL_TEMP_MIN_LEVEL3_DEFAULT,
2795 CFG_THERMAL_TEMP_MIN_LEVEL3_MIN,
2796 CFG_THERMAL_TEMP_MIN_LEVEL3_MAX),
2797
2798 REG_VARIABLE(CFG_THERMAL_TEMP_MAX_LEVEL3_NAME, WLAN_PARAM_Integer,
2799 struct hdd_config, thermalTempMaxLevel3,
2800 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2801 CFG_THERMAL_TEMP_MAX_LEVEL3_DEFAULT,
2802 CFG_THERMAL_TEMP_MAX_LEVEL3_MIN,
2803 CFG_THERMAL_TEMP_MAX_LEVEL3_MAX),
2804
2805 REG_VARIABLE(CFG_SET_TXPOWER_LIMIT2G_NAME, WLAN_PARAM_Integer,
2806 struct hdd_config, TxPower2g,
2807 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2808 CFG_SET_TXPOWER_LIMIT2G_DEFAULT,
2809 CFG_SET_TXPOWER_LIMIT2G_MIN,
2810 CFG_SET_TXPOWER_LIMIT2G_MAX),
2811
2812 REG_VARIABLE(CFG_SET_TXPOWER_LIMIT5G_NAME, WLAN_PARAM_Integer,
2813 struct hdd_config, TxPower5g,
2814 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2815 CFG_SET_TXPOWER_LIMIT5G_DEFAULT,
2816 CFG_SET_TXPOWER_LIMIT5G_MIN,
2817 CFG_SET_TXPOWER_LIMIT5G_MAX),
2818
2819 REG_VARIABLE(CFG_ENABLE_DEBUG_CONNECT_ISSUE, WLAN_PARAM_Integer,
2820 struct hdd_config, gEnableDebugLog,
2821 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2822 CFG_ENABLE_DEBUG_CONNECT_ISSUE_DEFAULT,
2823 CFG_ENABLE_DEBUG_CONNECT_ISSUE_MIN,
2824 CFG_ENABLE_DEBUG_CONNECT_ISSUE_MAX),
2825
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002826 REG_VARIABLE(CFG_ENABLE_DFS_PHYERR_FILTEROFFLOAD_NAME,
2827 WLAN_PARAM_Integer,
2828 struct hdd_config, fDfsPhyerrFilterOffload,
2829 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2830 CFG_ENABLE_DFS_PHYERR_FILTEROFFLOAD_DEFAULT,
2831 CFG_ENABLE_DFS_PHYERR_FILTEROFFLOAD_MIN,
2832 CFG_ENABLE_DFS_PHYERR_FILTEROFFLOAD_MAX),
2833
2834 REG_VARIABLE(CFG_ENABLE_OVERLAP_CH, WLAN_PARAM_Integer,
2835 struct hdd_config, gEnableOverLapCh,
2836 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2837 CFG_ENABLE_OVERLAP_CH_DEFAULT,
2838 CFG_ENABLE_OVERLAP_CH_MIN,
2839 CFG_ENABLE_OVERLAP_CH_MAX),
2840
2841 REG_VARIABLE(CFG_REG_CHANGE_DEF_COUNTRY_NAME, WLAN_PARAM_Integer,
2842 struct hdd_config, fRegChangeDefCountry,
2843 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2844 CFG_REG_CHANGE_DEF_COUNTRY_DEFAULT,
2845 CFG_REG_CHANGE_DEF_COUNTRY_MIN,
2846 CFG_REG_CHANGE_DEF_COUNTRY_MAX),
2847
2848#ifdef QCA_LL_LEGACY_TX_FLOW_CONTROL
2849 REG_VARIABLE(CFG_LL_TX_FLOW_LWM, WLAN_PARAM_Integer,
2850 struct hdd_config, TxFlowLowWaterMark,
2851 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2852 CFG_LL_TX_FLOW_LWM_DEFAULT,
2853 CFG_LL_TX_FLOW_LWM_MIN,
2854 CFG_LL_TX_FLOW_LWM_MAX),
2855 REG_VARIABLE(CFG_LL_TX_FLOW_HWM_OFFSET, WLAN_PARAM_Integer,
2856 struct hdd_config, TxFlowHighWaterMarkOffset,
2857 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2858 CFG_LL_TX_FLOW_HWM_OFFSET_DEFAULT,
2859 CFG_LL_TX_FLOW_HWM_OFFSET_MIN,
2860 CFG_LL_TX_FLOW_HWM_OFFSET_MAX),
2861 REG_VARIABLE(CFG_LL_TX_FLOW_MAX_Q_DEPTH, WLAN_PARAM_Integer,
2862 struct hdd_config, TxFlowMaxQueueDepth,
2863 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2864 CFG_LL_TX_FLOW_MAX_Q_DEPTH_DEFAULT,
2865 CFG_LL_TX_FLOW_MAX_Q_DEPTH_MIN,
2866 CFG_LL_TX_FLOW_MAX_Q_DEPTH_MAX),
2867 REG_VARIABLE(CFG_LL_TX_LBW_FLOW_LWM, WLAN_PARAM_Integer,
2868 struct hdd_config, TxLbwFlowLowWaterMark,
2869 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2870 CFG_LL_TX_LBW_FLOW_LWM_DEFAULT,
2871 CFG_LL_TX_LBW_FLOW_LWM_MIN,
2872 CFG_LL_TX_LBW_FLOW_LWM_MAX),
2873
2874 REG_VARIABLE(CFG_LL_TX_LBW_FLOW_HWM_OFFSET, WLAN_PARAM_Integer,
2875 struct hdd_config, TxLbwFlowHighWaterMarkOffset,
2876 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2877 CFG_LL_TX_LBW_FLOW_HWM_OFFSET_DEFAULT,
2878 CFG_LL_TX_LBW_FLOW_HWM_OFFSET_MIN,
2879 CFG_LL_TX_LBW_FLOW_HWM_OFFSET_MAX),
2880
2881 REG_VARIABLE(CFG_LL_TX_LBW_FLOW_MAX_Q_DEPTH, WLAN_PARAM_Integer,
2882 struct hdd_config, TxLbwFlowMaxQueueDepth,
2883 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2884 CFG_LL_TX_LBW_FLOW_MAX_Q_DEPTH_DEFAULT,
2885 CFG_LL_TX_LBW_FLOW_MAX_Q_DEPTH_MIN,
2886 CFG_LL_TX_LBW_FLOW_MAX_Q_DEPTH_MAX),
2887
2888 REG_VARIABLE(CFG_LL_TX_HBW_FLOW_LWM, WLAN_PARAM_Integer,
2889 struct hdd_config, TxHbwFlowLowWaterMark,
2890 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2891 CFG_LL_TX_HBW_FLOW_LWM_DEFAULT,
2892 CFG_LL_TX_HBW_FLOW_LWM_MIN,
2893 CFG_LL_TX_HBW_FLOW_LWM_MAX),
2894
2895 REG_VARIABLE(CFG_LL_TX_HBW_FLOW_HWM_OFFSET, WLAN_PARAM_Integer,
2896 struct hdd_config, TxHbwFlowHighWaterMarkOffset,
2897 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2898 CFG_LL_TX_HBW_FLOW_HWM_OFFSET_DEFAULT,
2899 CFG_LL_TX_HBW_FLOW_HWM_OFFSET_MIN,
2900 CFG_LL_TX_HBW_FLOW_HWM_OFFSET_MAX),
2901
2902 REG_VARIABLE(CFG_LL_TX_HBW_FLOW_MAX_Q_DEPTH, WLAN_PARAM_Integer,
2903 struct hdd_config, TxHbwFlowMaxQueueDepth,
2904 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2905 CFG_LL_TX_HBW_FLOW_MAX_Q_DEPTH_DEFAULT,
2906 CFG_LL_TX_HBW_FLOW_MAX_Q_DEPTH_MIN,
2907 CFG_LL_TX_HBW_FLOW_MAX_Q_DEPTH_MAX),
2908#endif /* QCA_LL_LEGACY_TX_FLOW_CONTROL */
2909#ifdef QCA_LL_TX_FLOW_CONTROL_V2
2910
2911 REG_VARIABLE(CFG_LL_TX_FLOW_STOP_QUEUE_TH, WLAN_PARAM_Integer,
2912 struct hdd_config, TxFlowStopQueueThreshold,
2913 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2914 CFG_LL_TX_FLOW_STOP_QUEUE_TH_DEFAULT,
2915 CFG_LL_TX_FLOW_STOP_QUEUE_TH_MIN,
2916 CFG_LL_TX_FLOW_STOP_QUEUE_TH_MAX),
2917
2918 REG_VARIABLE(CFG_LL_TX_FLOW_START_QUEUE_OFFSET, WLAN_PARAM_Integer,
2919 struct hdd_config, TxFlowStartQueueOffset,
2920 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2921 CFG_LL_TX_FLOW_START_QUEUE_OFFSET_DEFAULT,
2922 CFG_LL_TX_FLOW_START_QUEUE_OFFSET_MIN,
2923 CFG_LL_TX_FLOW_START_QUEUE_OFFSET_MAX),
2924
2925#endif
2926 REG_VARIABLE(CFG_INITIAL_DWELL_TIME_NAME, WLAN_PARAM_Integer,
2927 struct hdd_config, nInitialDwellTime,
2928 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2929 CFG_INITIAL_DWELL_TIME_DEFAULT,
2930 CFG_INITIAL_DWELL_TIME_MIN,
2931 CFG_INITIAL_DWELL_TIME_MAX),
2932
2933 REG_VARIABLE(CFG_INITIAL_SCAN_NO_DFS_CHNL_NAME, WLAN_PARAM_Integer,
2934 struct hdd_config, initial_scan_no_dfs_chnl,
2935 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2936 CFG_INITIAL_SCAN_NO_DFS_CHNL_DEFAULT,
2937 CFG_INITIAL_SCAN_NO_DFS_CHNL_MIN,
2938 CFG_INITIAL_SCAN_NO_DFS_CHNL_MAX),
2939
2940 REG_VARIABLE(CFG_SAP_MAX_OFFLOAD_PEERS, WLAN_PARAM_Integer,
2941 struct hdd_config, apMaxOffloadPeers,
2942 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2943 CFG_SAP_MAX_OFFLOAD_PEERS_DEFAULT,
2944 CFG_SAP_MAX_OFFLOAD_PEERS_MIN,
2945 CFG_SAP_MAX_OFFLOAD_PEERS_MAX),
2946
2947 REG_VARIABLE(CFG_SAP_MAX_OFFLOAD_REORDER_BUFFS, WLAN_PARAM_Integer,
2948 struct hdd_config, apMaxOffloadReorderBuffs,
2949 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2950 CFG_SAP_MAX_OFFLOAD_REORDER_BUFFS_DEFAULT,
2951 CFG_SAP_MAX_OFFLOAD_REORDER_BUFFS_MIN,
2952 CFG_SAP_MAX_OFFLOAD_REORDER_BUFFS_MAX),
2953
2954 REG_VARIABLE(CFG_ADVERTISE_CONCURRENT_OPERATION_NAME,
2955 WLAN_PARAM_Integer,
2956 struct hdd_config, advertiseConcurrentOperation,
2957 VAR_FLAGS_OPTIONAL,
2958 CFG_ADVERTISE_CONCURRENT_OPERATION_DEFAULT,
2959 CFG_ADVERTISE_CONCURRENT_OPERATION_MIN,
2960 CFG_ADVERTISE_CONCURRENT_OPERATION_MAX),
2961
2962 REG_VARIABLE(CFG_ENABLE_MEMORY_DEEP_SLEEP, WLAN_PARAM_Integer,
2963 struct hdd_config, enableMemDeepSleep,
2964 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2965 CFG_ENABLE_MEMORY_DEEP_SLEEP_DEFAULT,
2966 CFG_ENABLE_MEMORY_DEEP_SLEEP_MIN,
2967 CFG_ENABLE_MEMORY_DEEP_SLEEP_MAX),
2968
Dustin Brown732ab9c2017-06-15 13:24:09 -07002969 REG_VARIABLE(CFG_ENABLE_CCK_TX_FIR_OVERRIDE_NAME, WLAN_PARAM_Integer,
2970 struct hdd_config, enable_cck_tx_fir_override,
2971 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2972 CFG_ENABLE_CCK_TX_FIR_OVERRIDE_DEFAULT,
2973 CFG_ENABLE_CCK_TX_FIR_OVERRIDE_MIN,
2974 CFG_ENABLE_CCK_TX_FIR_OVERRIDE_MAX),
2975
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002976 REG_VARIABLE(CFG_DEFAULT_RATE_INDEX_24GH, WLAN_PARAM_Integer,
2977 struct hdd_config, defaultRateIndex24Ghz,
2978 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2979 CFG_DEFAULT_RATE_INDEX_24GH_DEFAULT,
2980 CFG_DEFAULT_RATE_INDEX_24GH_MIN,
2981 CFG_DEFAULT_RATE_INDEX_24GH_MAX),
2982
2983#ifdef MEMORY_DEBUG
2984 REG_VARIABLE(CFG_ENABLE_MEMORY_DEBUG_NAME, WLAN_PARAM_Integer,
2985 struct hdd_config, IsMemoryDebugSupportEnabled,
2986 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2987 CFG_ENABLE_MEMORY_DEBUG_DEFAULT,
2988 CFG_ENABLE_MEMORY_DEBUG_MIN,
2989 CFG_ENABLE_MEMORY_DEBUG_MAX),
2990#endif
2991
2992 REG_VARIABLE(CFG_DEBUG_P2P_REMAIN_ON_CHANNEL_NAME, WLAN_PARAM_Integer,
2993 struct hdd_config, debugP2pRemainOnChannel,
2994 VAR_FLAGS_OPTIONAL,
2995 CFG_DEBUG_P2P_REMAIN_ON_CHANNEL_DEFAULT,
2996 CFG_DEBUG_P2P_REMAIN_ON_CHANNEL_MIN,
2997 CFG_DEBUG_P2P_REMAIN_ON_CHANNEL_MAX),
2998
2999 REG_VARIABLE(CFG_ENABLE_PACKET_LOG, WLAN_PARAM_Integer,
3000 struct hdd_config, enablePacketLog,
3001 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3002 CFG_ENABLE_PACKET_LOG_DEFAULT,
3003 CFG_ENABLE_PACKET_LOG_MIN,
3004 CFG_ENABLE_PACKET_LOG_MAX),
3005
3006#ifdef WLAN_FEATURE_ROAM_OFFLOAD
3007 REG_VARIABLE(CFG_ROAMING_OFFLOAD_NAME, WLAN_PARAM_Integer,
3008 struct hdd_config, isRoamOffloadEnabled,
3009 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
3010 CFG_ROAMING_OFFLOAD_DEFAULT,
3011 CFG_ROAMING_OFFLOAD_MIN,
3012 CFG_ROAMING_OFFLOAD_MAX),
3013#endif
3014#ifdef MSM_PLATFORM
3015 REG_VARIABLE(CFG_BUS_BANDWIDTH_HIGH_THRESHOLD, WLAN_PARAM_Integer,
3016 struct hdd_config, busBandwidthHighThreshold,
3017 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3018 CFG_BUS_BANDWIDTH_HIGH_THRESHOLD_DEFAULT,
3019 CFG_BUS_BANDWIDTH_HIGH_THRESHOLD_MIN,
3020 CFG_BUS_BANDWIDTH_HIGH_THRESHOLD_MAX),
3021
3022 REG_VARIABLE(CFG_BUS_BANDWIDTH_MEDIUM_THRESHOLD, WLAN_PARAM_Integer,
3023 struct hdd_config, busBandwidthMediumThreshold,
3024 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3025 CFG_BUS_BANDWIDTH_MEDIUM_THRESHOLD_DEFAULT,
3026 CFG_BUS_BANDWIDTH_MEDIUM_THRESHOLD_MIN,
3027 CFG_BUS_BANDWIDTH_MEDIUM_THRESHOLD_MAX),
3028
3029 REG_VARIABLE(CFG_BUS_BANDWIDTH_LOW_THRESHOLD, WLAN_PARAM_Integer,
3030 struct hdd_config, busBandwidthLowThreshold,
3031 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3032 CFG_BUS_BANDWIDTH_LOW_THRESHOLD_DEFAULT,
3033 CFG_BUS_BANDWIDTH_LOW_THRESHOLD_MIN,
3034 CFG_BUS_BANDWIDTH_LOW_THRESHOLD_MAX),
3035
3036 REG_VARIABLE(CFG_BUS_BANDWIDTH_COMPUTE_INTERVAL, WLAN_PARAM_Integer,
3037 struct hdd_config, busBandwidthComputeInterval,
3038 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3039 CFG_BUS_BANDWIDTH_COMPUTE_INTERVAL_DEFAULT,
3040 CFG_BUS_BANDWIDTH_COMPUTE_INTERVAL_MIN,
3041 CFG_BUS_BANDWIDTH_COMPUTE_INTERVAL_MAX),
Ravi Joshie2331e82015-07-01 18:18:54 -07003042
3043 REG_VARIABLE(CFG_ENABLE_TCP_DELACK, WLAN_PARAM_Integer,
3044 struct hdd_config, enable_tcp_delack,
3045 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3046 CFG_ENABLE_TCP_DELACK_DEFAULT,
3047 CFG_ENABLE_TCP_DELACK_MIN,
3048 CFG_ENABLE_TCP_DELACK_MAX),
3049
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003050 REG_VARIABLE(CFG_TCP_DELACK_THRESHOLD_HIGH, WLAN_PARAM_Integer,
3051 struct hdd_config, tcpDelackThresholdHigh,
3052 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3053 CFG_TCP_DELACK_THRESHOLD_HIGH_DEFAULT,
3054 CFG_TCP_DELACK_THRESHOLD_HIGH_MIN,
3055 CFG_TCP_DELACK_THRESHOLD_HIGH_MAX),
Ravi Joshie2331e82015-07-01 18:18:54 -07003056
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003057 REG_VARIABLE(CFG_TCP_DELACK_THRESHOLD_LOW, WLAN_PARAM_Integer,
3058 struct hdd_config, tcpDelackThresholdLow,
3059 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3060 CFG_TCP_DELACK_THRESHOLD_LOW_DEFAULT,
3061 CFG_TCP_DELACK_THRESHOLD_LOW_MIN,
3062 CFG_TCP_DELACK_THRESHOLD_LOW_MAX),
Mohit Khannae71e2262015-11-10 09:37:24 -08003063
Ravi Joshib89e7f72016-09-07 13:43:15 -07003064 REG_VARIABLE(CFG_TCP_DELACK_TIMER_COUNT, WLAN_PARAM_Integer,
3065 struct hdd_config, tcp_delack_timer_count,
3066 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3067 CFG_TCP_DELACK_TIMER_COUNT_DEFAULT,
3068 CFG_TCP_DELACK_TIMER_COUNT_MIN,
3069 CFG_TCP_DELACK_TIMER_COUNT_MAX),
Mohit Khannae71e2262015-11-10 09:37:24 -08003070
Ravi Joshib89e7f72016-09-07 13:43:15 -07003071 REG_VARIABLE(CFG_TCP_TX_HIGH_TPUT_THRESHOLD_NAME, WLAN_PARAM_Integer,
3072 struct hdd_config, tcp_tx_high_tput_thres,
3073 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3074 CFG_TCP_TX_HIGH_TPUT_THRESHOLD_DEFAULT,
3075 CFG_TCP_TX_HIGH_TPUT_THRESHOLD_MIN,
3076 CFG_TCP_TX_HIGH_TPUT_THRESHOLD_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003077#endif
3078
3079 REG_VARIABLE(CFG_ENABLE_FW_LOG_TYPE, WLAN_PARAM_Integer,
3080 struct hdd_config, enableFwLogType,
3081 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3082 CFG_ENABLE_FW_LOG_TYPE_DEFAULT,
3083 CFG_ENABLE_FW_LOG_TYPE_MIN,
3084 CFG_ENABLE_FW_LOG_TYPE_MAX),
3085
3086 REG_VARIABLE(CFG_ENABLE_FW_DEBUG_LOG_LEVEL, WLAN_PARAM_Integer,
3087 struct hdd_config, enableFwLogLevel,
3088 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3089 CFG_ENABLE_FW_DEBUG_LOG_LEVEL_DEFAULT,
3090 CFG_ENABLE_FW_DEBUG_LOG_LEVEL_MIN,
3091 CFG_ENABLE_FW_DEBUG_LOG_LEVEL_MAX),
3092
Rajeev Kumar Sirasanagandla0be56df2016-09-08 19:19:47 +05303093 REG_VARIABLE(CFG_ENABLE_FW_RTS_PROFILE, WLAN_PARAM_Integer,
3094 struct hdd_config, rts_profile,
3095 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3096 CFG_ENABLE_FW_RTS_PROFILE_DEFAULT,
3097 CFG_ENABLE_FW_RTS_PROFILE_MIN,
3098 CFG_ENABLE_FW_RTS_PROFILE_MAX),
3099
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003100 REG_VARIABLE_STRING(CFG_ENABLE_FW_MODULE_LOG_LEVEL, WLAN_PARAM_String,
3101 struct hdd_config, enableFwModuleLogLevel,
3102 VAR_FLAGS_OPTIONAL,
3103 (void *)CFG_ENABLE_FW_MODULE_LOG_DEFAULT),
3104
3105#ifdef WLAN_FEATURE_11W
3106 REG_VARIABLE(CFG_PMF_SA_QUERY_MAX_RETRIES_NAME, WLAN_PARAM_Integer,
3107 struct hdd_config, pmfSaQueryMaxRetries,
3108 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3109 CFG_PMF_SA_QUERY_MAX_RETRIES_DEFAULT,
3110 CFG_PMF_SA_QUERY_MAX_RETRIES_MIN,
3111 CFG_PMF_SA_QUERY_MAX_RETRIES_MAX),
3112
3113 REG_VARIABLE(CFG_PMF_SA_QUERY_RETRY_INTERVAL_NAME, WLAN_PARAM_Integer,
3114 struct hdd_config, pmfSaQueryRetryInterval,
3115 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3116 CFG_PMF_SA_QUERY_RETRY_INTERVAL_DEFAULT,
3117 CFG_PMF_SA_QUERY_RETRY_INTERVAL_MIN,
3118 CFG_PMF_SA_QUERY_RETRY_INTERVAL_MAX),
3119#endif
3120 REG_VARIABLE(CFG_MAX_CONCURRENT_CONNECTIONS_NAME, WLAN_PARAM_Integer,
3121 struct hdd_config, gMaxConcurrentActiveSessions,
3122 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3123 CFG_MAX_CONCURRENT_CONNECTIONS_DEFAULT,
3124 CFG_MAX_CONCURRENT_CONNECTIONS_MIN,
3125 CFG_MAX_CONCURRENT_CONNECTIONS_MAX),
3126
3127#ifdef FEATURE_GREEN_AP
3128 REG_VARIABLE(CFG_ENABLE_GREEN_AP_FEATURE, WLAN_PARAM_Integer,
3129 struct hdd_config, enableGreenAP,
3130 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3131 CFG_ENABLE_GREEN_AP_FEATURE_DEFAULT,
3132 CFG_ENABLE_GREEN_AP_FEATURE_MIN,
3133 CFG_ENABLE_GREEN_AP_FEATURE_MAX),
Ryan Hsucb118cf2015-11-09 16:03:53 -08003134 REG_VARIABLE(CFG_ENABLE_EGAP_ENABLE_FEATURE, WLAN_PARAM_Integer,
3135 struct hdd_config, enable_egap,
3136 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3137 CFG_ENABLE_EGAP_ENABLE_FEATURE_DEFAULT,
3138 CFG_ENABLE_EGAP_ENABLE_FEATURE_MIN,
3139 CFG_ENABLE_EGAP_ENABLE_FEATURE_MAX),
3140 REG_VARIABLE(CFG_ENABLE_EGAP_INACT_TIME_FEATURE, WLAN_PARAM_Integer,
3141 struct hdd_config, egap_inact_time,
3142 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3143 CFG_ENABLE_EGAP_INACT_TIME_FEATURE_DEFAULT,
3144 CFG_ENABLE_EGAP_INACT_TIME_FEATURE_MIN,
3145 CFG_ENABLE_EGAP_INACT_TIME_FEATURE_MAX),
3146 REG_VARIABLE(CFG_ENABLE_EGAP_WAIT_TIME_FEATURE, WLAN_PARAM_Integer,
3147 struct hdd_config, egap_wait_time,
3148 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3149 CFG_ENABLE_EGAP_WAIT_TIME_FEATURE_DEFAULT,
3150 CFG_ENABLE_EGAP_WAIT_TIME_FEATURE_MIN,
3151 CFG_ENABLE_EGAP_WAIT_TIME_FEATURE_MAX),
3152 REG_VARIABLE(CFG_ENABLE_EGAP_FLAGS_FEATURE, WLAN_PARAM_Integer,
3153 struct hdd_config, egap_feature_flag,
3154 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3155 CFG_ENABLE_EGAP_FLAGS_FEATURE_DEFAULT,
3156 CFG_ENABLE_EGAP_FLAGS_FEATURE_MIN,
3157 CFG_ENABLE_EGAP_FLAGS_FEATURE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003158#endif
3159
3160 REG_VARIABLE(CFG_IGNORE_CAC_NAME, WLAN_PARAM_Integer,
3161 struct hdd_config, ignoreCAC,
3162 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3163 CFG_IGNORE_CAC_DEFAULT,
3164 CFG_IGNORE_CAC_MIN,
3165 CFG_IGNORE_CAC_MAX),
3166
3167 REG_VARIABLE(CFG_ENABLE_SAP_DFS_CH_SIFS_BURST_NAME, WLAN_PARAM_Integer,
3168 struct hdd_config, IsSapDfsChSifsBurstEnabled,
3169 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3170 CFG_ENABLE_SAP_DFS_CH_SIFS_BURST_DEFAULT,
3171 CFG_ENABLE_SAP_DFS_CH_SIFS_BURST_MIN,
3172 CFG_ENABLE_SAP_DFS_CH_SIFS_BURST_MAX),
3173
3174 REG_VARIABLE(CFG_DFS_RADAR_PRI_MULTIPLIER_NAME, WLAN_PARAM_Integer,
3175 struct hdd_config, dfsRadarPriMultiplier,
3176 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3177 CFG_DFS_RADAR_PRI_MULTIPLIER_DEFAULT,
3178 CFG_DFS_RADAR_PRI_MULTIPLIER_MIN,
3179 CFG_DFS_RADAR_PRI_MULTIPLIER_MAX),
3180
3181 REG_VARIABLE(CFG_REORDER_OFFLOAD_SUPPORT_NAME, WLAN_PARAM_Integer,
3182 struct hdd_config, reorderOffloadSupport,
3183 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3184 CFG_REORDER_OFFLOAD_SUPPORT_DEFAULT,
3185 CFG_REORDER_OFFLOAD_SUPPORT_MIN,
3186 CFG_REORDER_OFFLOAD_SUPPORT_MAX),
3187
3188 REG_VARIABLE(CFG_IPA_UC_TX_BUF_COUNT_NAME, WLAN_PARAM_Integer,
3189 struct hdd_config, IpaUcTxBufCount,
3190 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
3191 CFG_IPA_UC_TX_BUF_COUNT_DEFAULT,
3192 CFG_IPA_UC_TX_BUF_COUNT_MIN,
3193 CFG_IPA_UC_TX_BUF_COUNT_MAX),
3194
3195 REG_VARIABLE(CFG_IPA_UC_TX_BUF_SIZE_NAME, WLAN_PARAM_Integer,
3196 struct hdd_config, IpaUcTxBufSize,
3197 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
3198 CFG_IPA_UC_TX_BUF_SIZE_DEFAULT,
3199 CFG_IPA_UC_TX_BUF_SIZE_MIN,
3200 CFG_IPA_UC_TX_BUF_SIZE_MAX),
3201
3202 REG_VARIABLE(CFG_IPA_UC_RX_IND_RING_COUNT_NAME, WLAN_PARAM_Integer,
3203 struct hdd_config, IpaUcRxIndRingCount,
3204 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
3205 CFG_IPA_UC_RX_IND_RING_COUNT_DEFAULT,
3206 CFG_IPA_UC_RX_IND_RING_COUNT_MIN,
3207 CFG_IPA_UC_RX_IND_RING_COUNT_MAX),
3208
3209 REG_VARIABLE(CFG_IPA_UC_TX_PARTITION_BASE_NAME, WLAN_PARAM_Integer,
3210 struct hdd_config, IpaUcTxPartitionBase,
3211 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
3212 CFG_IPA_UC_TX_PARTITION_BASE_DEFAULT,
3213 CFG_IPA_UC_TX_PARTITION_BASE_MIN,
3214 CFG_IPA_UC_TX_PARTITION_BASE_MAX),
3215#ifdef WLAN_LOGGING_SOCK_SVC_ENABLE
3216 REG_VARIABLE(CFG_WLAN_LOGGING_SUPPORT_NAME, WLAN_PARAM_Integer,
3217 struct hdd_config, wlanLoggingEnable,
3218 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3219 CFG_WLAN_LOGGING_SUPPORT_DEFAULT,
3220 CFG_WLAN_LOGGING_SUPPORT_DISABLE,
3221 CFG_WLAN_LOGGING_SUPPORT_ENABLE),
3222
Srinivas Girigowda8187e792017-03-03 11:50:59 -08003223 REG_VARIABLE(CFG_WLAN_LOGGING_CONSOLE_SUPPORT_NAME,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003224 WLAN_PARAM_Integer,
Srinivas Girigowda8187e792017-03-03 11:50:59 -08003225 struct hdd_config, wlanLoggingToConsole,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003226 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
Srinivas Girigowda8187e792017-03-03 11:50:59 -08003227 CFG_WLAN_LOGGING_CONSOLE_SUPPORT_DEFAULT,
3228 CFG_WLAN_LOGGING_CONSOLE_SUPPORT_DISABLE,
3229 CFG_WLAN_LOGGING_CONSOLE_SUPPORT_ENABLE),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003230
3231 REG_VARIABLE(CFG_WLAN_LOGGING_NUM_BUF_NAME, WLAN_PARAM_Integer,
3232 struct hdd_config, wlanLoggingNumBuf,
3233 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3234 CFG_WLAN_LOGGING_NUM_BUF_DEFAULT,
3235 CFG_WLAN_LOGGING_NUM_BUF_MIN,
3236 CFG_WLAN_LOGGING_NUM_BUF_MAX),
3237#endif /* WLAN_LOGGING_SOCK_SVC_ENABLE */
3238
3239 REG_VARIABLE(CFG_ENABLE_SIFS_BURST, WLAN_PARAM_Integer,
3240 struct hdd_config, enableSifsBurst,
3241 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3242 CFG_ENABLE_SIFS_BURST_DEFAULT,
3243 CFG_ENABLE_SIFS_BURST_MIN,
3244 CFG_ENABLE_SIFS_BURST_MAX),
3245
3246#ifdef WLAN_FEATURE_LPSS
3247 REG_VARIABLE(CFG_ENABLE_LPASS_SUPPORT, WLAN_PARAM_Integer,
Komal Seelamc11bb222016-01-27 18:57:10 +05303248 struct hdd_config, enable_lpass_support,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003249 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3250 CFG_ENABLE_LPASS_SUPPORT_DEFAULT,
3251 CFG_ENABLE_LPASS_SUPPORT_MIN,
3252 CFG_ENABLE_LPASS_SUPPORT_MAX),
3253#endif
3254
3255#ifdef WLAN_FEATURE_NAN
3256 REG_VARIABLE(CFG_ENABLE_NAN_SUPPORT, WLAN_PARAM_Integer,
3257 struct hdd_config, enable_nan_support,
3258 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3259 CFG_ENABLE_NAN_SUPPORT_DEFAULT,
3260 CFG_ENABLE_NAN_SUPPORT_MIN,
3261 CFG_ENABLE_NAN_SUPPORT_MAX),
3262#endif
3263
3264 REG_VARIABLE(CFG_ENABLE_SELF_RECOVERY, WLAN_PARAM_Integer,
3265 struct hdd_config, enableSelfRecovery,
3266 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3267 CFG_ENABLE_SELF_RECOVERY_DEFAULT,
3268 CFG_ENABLE_SELF_RECOVERY_MIN,
3269 CFG_ENABLE_SELF_RECOVERY_MAX),
3270
3271#ifdef FEATURE_WLAN_FORCE_SAP_SCC
3272 REG_VARIABLE(CFG_SAP_SCC_CHAN_AVOIDANCE, WLAN_PARAM_Integer,
3273 struct hdd_config, SapSccChanAvoidance,
3274 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3275 CFG_SAP_SCC_CHAN_AVOIDANCE_DEFAULT,
3276 CFG_SAP_SCC_CHAN_AVOIDANCE_MIN,
3277 CFG_SAP_SCC_CHAN_AVOIDANCE_MAX),
3278#endif /* FEATURE_WLAN_FORCE_SAP_SCC */
3279
3280 REG_VARIABLE(CFG_ENABLE_SAP_SUSPEND, WLAN_PARAM_Integer,
3281 struct hdd_config, enableSapSuspend,
3282 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3283 CFG_ENABLE_SAP_SUSPEND_DEFAULT,
3284 CFG_ENABLE_SAP_SUSPEND_MIN,
3285 CFG_ENABLE_SAP_SUSPEND_MAX),
3286
3287#ifdef WLAN_FEATURE_EXTWOW_SUPPORT
3288 REG_VARIABLE(CFG_EXTWOW_GO_TO_SUSPEND, WLAN_PARAM_Integer,
3289 struct hdd_config, extWowGotoSuspend,
3290 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3291 CFG_EXTWOW_GO_TO_SUSPEND_DEFAULT,
3292 CFG_EXTWOW_GO_TO_SUSPEND_MIN,
3293 CFG_EXTWOW_GO_TO_SUSPEND_MAX),
3294
3295 REG_VARIABLE(CFG_EXTWOW_APP1_WAKE_PIN_NUMBER, WLAN_PARAM_Integer,
3296 struct hdd_config, extWowApp1WakeupPinNumber,
3297 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3298 CFG_EXTWOW_APP1_WAKE_PIN_NUMBER_DEFAULT,
3299 CFG_EXTWOW_APP1_WAKE_PIN_NUMBER_MIN,
3300 CFG_EXTWOW_APP1_WAKE_PIN_NUMBER_MAX),
3301
3302 REG_VARIABLE(CFG_EXTWOW_APP2_WAKE_PIN_NUMBER, WLAN_PARAM_Integer,
3303 struct hdd_config, extWowApp2WakeupPinNumber,
3304 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3305 CFG_EXTWOW_APP2_WAKE_PIN_NUMBER_DEFAULT,
3306 CFG_EXTWOW_APP2_WAKE_PIN_NUMBER_MIN,
3307 CFG_EXTWOW_APP2_WAKE_PIN_NUMBER_MAX),
3308
3309 REG_VARIABLE(CFG_EXTWOW_KA_INIT_PING_INTERVAL, WLAN_PARAM_Integer,
3310 struct hdd_config, extWowApp2KAInitPingInterval,
3311 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3312 CFG_EXTWOW_KA_INIT_PING_INTERVAL_DEFAULT,
3313 CFG_EXTWOW_KA_INIT_PING_INTERVAL_MIN,
3314 CFG_EXTWOW_KA_INIT_PING_INTERVAL_MAX),
3315
3316 REG_VARIABLE(CFG_EXTWOW_KA_MIN_PING_INTERVAL, WLAN_PARAM_Integer,
3317 struct hdd_config, extWowApp2KAMinPingInterval,
3318 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3319 CFG_EXTWOW_KA_MIN_PING_INTERVAL_DEFAULT,
3320 CFG_EXTWOW_KA_MIN_PING_INTERVAL_MIN,
3321 CFG_EXTWOW_KA_MIN_PING_INTERVAL_MAX),
3322
3323 REG_VARIABLE(CFG_EXTWOW_KA_MAX_PING_INTERVAL, WLAN_PARAM_Integer,
3324 struct hdd_config, extWowApp2KAMaxPingInterval,
3325 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3326 CFG_EXTWOW_KA_MAX_PING_INTERVAL_DEFAULT,
3327 CFG_EXTWOW_KA_MAX_PING_INTERVAL_MIN,
3328 CFG_EXTWOW_KA_MAX_PING_INTERVAL_MAX),
3329
3330 REG_VARIABLE(CFG_EXTWOW_KA_INC_PING_INTERVAL, WLAN_PARAM_Integer,
3331 struct hdd_config, extWowApp2KAIncPingInterval,
3332 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3333 CFG_EXTWOW_KA_INC_PING_INTERVAL_DEFAULT,
3334 CFG_EXTWOW_KA_INC_PING_INTERVAL_MIN,
3335 CFG_EXTWOW_KA_INC_PING_INTERVAL_MAX),
3336
3337 REG_VARIABLE(CFG_EXTWOW_TCP_SRC_PORT, WLAN_PARAM_Integer,
3338 struct hdd_config, extWowApp2TcpSrcPort,
3339 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3340 CFG_EXTWOW_TCP_SRC_PORT_DEFAULT,
3341 CFG_EXTWOW_TCP_SRC_PORT_MIN,
3342 CFG_EXTWOW_TCP_SRC_PORT_MAX),
3343
3344 REG_VARIABLE(CFG_EXTWOW_TCP_DST_PORT, WLAN_PARAM_Integer,
3345 struct hdd_config, extWowApp2TcpDstPort,
3346 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3347 CFG_EXTWOW_TCP_DST_PORT_DEFAULT,
3348 CFG_EXTWOW_TCP_DST_PORT_MIN,
3349 CFG_EXTWOW_TCP_DST_PORT_MAX),
3350
3351 REG_VARIABLE(CFG_EXTWOW_TCP_TX_TIMEOUT, WLAN_PARAM_Integer,
3352 struct hdd_config, extWowApp2TcpTxTimeout,
3353 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3354 CFG_EXTWOW_TCP_TX_TIMEOUT_DEFAULT,
3355 CFG_EXTWOW_TCP_TX_TIMEOUT_MIN,
3356 CFG_EXTWOW_TCP_TX_TIMEOUT_MAX),
3357
3358 REG_VARIABLE(CFG_EXTWOW_TCP_RX_TIMEOUT, WLAN_PARAM_Integer,
3359 struct hdd_config, extWowApp2TcpRxTimeout,
3360 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3361 CFG_EXTWOW_TCP_RX_TIMEOUT_DEFAULT,
3362 CFG_EXTWOW_TCP_RX_TIMEOUT_MIN,
3363 CFG_EXTWOW_TCP_RX_TIMEOUT_MAX),
3364#endif
3365 REG_VARIABLE(CFG_ENABLE_DEAUTH_TO_DISASSOC_MAP_NAME, WLAN_PARAM_Integer,
3366 struct hdd_config, gEnableDeauthToDisassocMap,
3367 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3368 CFG_ENABLE_DEAUTH_TO_DISASSOC_MAP_DEFAULT,
3369 CFG_ENABLE_DEAUTH_TO_DISASSOC_MAP_MIN,
3370 CFG_ENABLE_DEAUTH_TO_DISASSOC_MAP_MAX),
3371#ifdef DHCP_SERVER_OFFLOAD
3372 REG_VARIABLE(CFG_DHCP_SERVER_OFFLOAD_SUPPORT_NAME, WLAN_PARAM_Integer,
3373 struct hdd_config, enableDHCPServerOffload,
3374 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3375 CFG_DHCP_SERVER_OFFLOAD_SUPPORT_DEFAULT,
3376 CFG_DHCP_SERVER_OFFLOAD_SUPPORT_MIN,
3377 CFG_DHCP_SERVER_OFFLOAD_SUPPORT_MAX),
3378 REG_VARIABLE(CFG_DHCP_SERVER_OFFLOAD_NUM_CLIENT_NAME,
3379 WLAN_PARAM_Integer,
3380 struct hdd_config, dhcpMaxNumClients,
3381 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3382 CFG_DHCP_SERVER_OFFLOAD_NUM_CLIENT_DEFAULT,
3383 CFG_DHCP_SERVER_OFFLOAD_NUM_CLIENT_MIN,
3384 CFG_DHCP_SERVER_OFFLOAD_NUM_CLIENT_MAX),
3385 REG_VARIABLE_STRING(CFG_DHCP_SERVER_IP_NAME, WLAN_PARAM_String,
3386 struct hdd_config, dhcpServerIP,
3387 VAR_FLAGS_OPTIONAL,
3388 (void *)CFG_DHCP_SERVER_IP_DEFAULT),
3389#endif /* DHCP_SERVER_OFFLOAD */
3390
3391 REG_VARIABLE(CFG_ENABLE_DEAUTH_BEFORE_CONNECTION, WLAN_PARAM_Integer,
3392 struct hdd_config, sendDeauthBeforeCon,
3393 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3394 CFG_ENABLE_DEAUTH_BEFORE_CONNECTION_DEFAULT,
3395 CFG_ENABLE_DEAUTH_BEFORE_CONNECTION_MIN,
3396 CFG_ENABLE_DEAUTH_BEFORE_CONNECTION_MAX),
3397
3398 REG_VARIABLE(CFG_ENABLE_MAC_ADDR_SPOOFING, WLAN_PARAM_Integer,
3399 struct hdd_config, enable_mac_spoofing,
3400 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3401 CFG_ENABLE_MAC_ADDR_SPOOFING_DEFAULT,
3402 CFG_ENABLE_MAC_ADDR_SPOOFING_MIN,
3403 CFG_ENABLE_MAC_ADDR_SPOOFING_MAX),
3404
3405 REG_VARIABLE(CFG_ENABLE_CUSTOM_CONC_RULE1_NAME, WLAN_PARAM_Integer,
3406 struct hdd_config, conc_custom_rule1,
3407 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
3408 CFG_ENABLE_CUSTOM_CONC_RULE1_NAME_DEFAULT,
3409 CFG_ENABLE_CUSTOM_CONC_RULE1_NAME_MIN,
3410 CFG_ENABLE_CUSTOM_CONC_RULE1_NAME_MAX),
3411
3412 REG_VARIABLE(CFG_ENABLE_CUSTOM_CONC_RULE2_NAME, WLAN_PARAM_Integer,
3413 struct hdd_config, conc_custom_rule2,
3414 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
3415 CFG_ENABLE_CUSTOM_CONC_RULE2_NAME_DEFAULT,
3416 CFG_ENABLE_CUSTOM_CONC_RULE2_NAME_MIN,
3417 CFG_ENABLE_CUSTOM_CONC_RULE2_NAME_MAX),
3418
3419 REG_VARIABLE(CFG_ENABLE_STA_CONNECTION_IN_5GHZ, WLAN_PARAM_Integer,
3420 struct hdd_config, is_sta_connection_in_5gz_enabled,
3421 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
3422 CFG_ENABLE_STA_CONNECTION_IN_5GHZ_DEFAULT,
3423 CFG_ENABLE_STA_CONNECTION_IN_5GHZ_MIN,
3424 CFG_ENABLE_STA_CONNECTION_IN_5GHZ_MAX),
3425
3426 REG_VARIABLE(CFG_STA_MIRACAST_MCC_REST_TIME_VAL, WLAN_PARAM_Integer,
3427 struct hdd_config, sta_miracast_mcc_rest_time_val,
3428 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3429 CFG_STA_MIRACAST_MCC_REST_TIME_VAL_DEFAULT,
3430 CFG_STA_MIRACAST_MCC_REST_TIME_VAL_MIN,
3431 CFG_STA_MIRACAST_MCC_REST_TIME_VAL_MAX),
3432
3433#ifdef FEATURE_AP_MCC_CH_AVOIDANCE
3434 REG_VARIABLE(CFG_SAP_MCC_CHANNEL_AVOIDANCE_NAME,
3435 WLAN_PARAM_Integer,
3436 struct hdd_config,
3437 sap_channel_avoidance,
3438 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
3439 CFG_SAP_MCC_CHANNEL_AVOIDANCE_DEFAULT,
3440 CFG_SAP_MCC_CHANNEL_AVOIDANCE_MIN,
3441 CFG_SAP_MCC_CHANNEL_AVOIDANCE_MAX),
3442#endif /* FEATURE_AP_MCC_CH_AVOIDANCE */
3443
3444 REG_VARIABLE(CFG_SAP_P2P_11AC_OVERRIDE_NAME, WLAN_PARAM_Integer,
3445 struct hdd_config, sap_p2p_11ac_override,
3446 VAR_FLAGS_OPTIONAL |
3447 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3448 CFG_SAP_P2P_11AC_OVERRIDE_DEFAULT,
3449 CFG_SAP_P2P_11AC_OVERRIDE_MIN,
3450 CFG_SAP_P2P_11AC_OVERRIDE_MAX),
3451
3452 REG_VARIABLE(CFG_ENABLE_RAMDUMP_COLLECTION, WLAN_PARAM_Integer,
3453 struct hdd_config, is_ramdump_enabled,
3454 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3455 CFG_ENABLE_RAMDUMP_COLLECTION_DEFAULT,
3456 CFG_ENABLE_RAMDUMP_COLLECTION_MIN,
3457 CFG_ENABLE_RAMDUMP_COLLECTION_MAX),
3458
3459 REG_VARIABLE(CFG_SAP_DOT11MC, WLAN_PARAM_Integer,
3460 struct hdd_config, sap_dot11mc,
3461 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3462 CFG_SAP_DOT11MC_DEFAULT,
3463 CFG_SAP_DOT11MC_MIN,
3464 CFG_SAP_DOT11MC_MAX),
3465
3466 REG_VARIABLE(CFG_ENABLE_NON_DFS_CHAN_ON_RADAR, WLAN_PARAM_Integer,
3467 struct hdd_config, prefer_non_dfs_on_radar,
3468 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3469 CFG_ENABLE_NON_DFS_CHAN_ON_RADAR_DEFAULT,
3470 CFG_ENABLE_NON_DFS_CHAN_ON_RADAR_MIN,
3471 CFG_ENABLE_NON_DFS_CHAN_ON_RADAR_MAX),
3472
3473 REG_VARIABLE(CFG_MULTICAST_HOST_FW_MSGS, WLAN_PARAM_Integer,
3474 struct hdd_config, multicast_host_fw_msgs,
3475 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3476 CFG_MULTICAST_HOST_FW_MSGS_DEFAULT,
3477 CFG_MULTICAST_HOST_FW_MSGS_MIN,
3478 CFG_MULTICAST_HOST_FW_MSGS_MAX),
3479
3480 REG_VARIABLE(CFG_CONC_SYSTEM_PREF, WLAN_PARAM_Integer,
3481 struct hdd_config, conc_system_pref,
3482 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3483 CFG_CONC_SYSTEM_PREF_DEFAULT,
3484 CFG_CONC_SYSTEM_PREF_MIN,
3485 CFG_CONC_SYSTEM_PREF_MAX),
3486
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003487 REG_VARIABLE(CFG_TSO_ENABLED_NAME, WLAN_PARAM_Integer,
3488 struct hdd_config, tso_enable,
3489 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3490 CFG_TSO_ENABLED_DEFAULT,
3491 CFG_TSO_ENABLED_MIN,
3492 CFG_TSO_ENABLED_MAX),
3493
3494 REG_VARIABLE(CFG_LRO_ENABLED_NAME, WLAN_PARAM_Integer,
3495 struct hdd_config, lro_enable,
3496 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3497 CFG_LRO_ENABLED_DEFAULT,
3498 CFG_LRO_ENABLED_MIN,
3499 CFG_LRO_ENABLED_MAX),
3500
Rajeev Kumardd3bc602016-08-16 14:21:05 -07003501 REG_VARIABLE(CFG_BPF_PACKET_FILTER_OFFLOAD, WLAN_PARAM_Integer,
3502 struct hdd_config, bpf_packet_filter_enable,
3503 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3504 CFG_BPF_PACKET_FILTER_OFFLOAD_DEFAULT,
3505 CFG_BPF_PACKET_FILTER_OFFLOAD_MIN,
3506 CFG_BPF_PACKET_FILTER_OFFLOAD_MAX),
3507
Nitesh Shah61c10d92016-10-19 19:29:15 +05303508 REG_VARIABLE(CFG_TDLS_ENABLE_DEFER_TIMER, WLAN_PARAM_Integer,
3509 struct hdd_config, tdls_enable_defer_time,
3510 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3511 CFG_TDLS_ENABLE_DEFER_TIMER_DEFAULT,
3512 CFG_TDLS_ENABLE_DEFER_TIMER_MIN,
3513 CFG_TDLS_ENABLE_DEFER_TIMER_MAX),
3514
Manjunathappa Prakashfff753c2016-09-01 19:34:56 -07003515 REG_VARIABLE(CFG_FLOW_STEERING_ENABLED_NAME, WLAN_PARAM_Integer,
3516 struct hdd_config, flow_steering_enable,
3517 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3518 CFG_FLOW_STEERING_ENABLED_DEFAULT,
3519 CFG_FLOW_STEERING_ENABLED_MIN,
3520 CFG_FLOW_STEERING_ENABLED_MAX),
3521
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003522 REG_VARIABLE(CFG_ACTIVE_MODE_OFFLOAD, WLAN_PARAM_Integer,
3523 struct hdd_config, active_mode_offload,
3524 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3525 CFG_ACTIVE_MODE_OFFLOAD_DEFAULT,
3526 CFG_ACTIVE_MODE_OFFLOAD_MIN,
3527 CFG_ACTIVE_MODE_OFFLOAD_MAX),
3528
3529 REG_VARIABLE(CFG_FINE_TIME_MEAS_CAPABILITY, WLAN_PARAM_HexInteger,
3530 struct hdd_config, fine_time_meas_cap,
3531 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3532 CFG_FINE_TIME_MEAS_CAPABILITY_DEFAULT,
3533 CFG_FINE_TIME_MEAS_CAPABILITY_MIN,
3534 CFG_FINE_TIME_MEAS_CAPABILITY_MAX),
3535
3536#ifdef WLAN_FEATURE_FASTPATH
3537 REG_VARIABLE(CFG_ENABLE_FASTPATH, WLAN_PARAM_Integer,
3538 struct hdd_config, fastpath_enable,
3539 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3540 CFG_ENABLE_FASTPATH_DEFAULT,
3541 CFG_ENABLE_FASTPATH_MIN,
3542 CFG_ENABLE_FASTPATH_MAX),
3543#endif
3544 REG_VARIABLE(CFG_MAX_SCAN_COUNT_NAME, WLAN_PARAM_Integer,
3545 struct hdd_config, max_scan_count,
3546 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3547 CFG_MAX_SCAN_COUNT_DEFAULT,
3548 CFG_MAX_SCAN_COUNT_MIN,
3549 CFG_MAX_SCAN_COUNT_MAX),
3550
3551 REG_VARIABLE(CFG_DOT11P_MODE_NAME, WLAN_PARAM_Integer,
3552 struct hdd_config, dot11p_mode,
3553 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3554 CFG_DOT11P_MODE_DEFAULT,
3555 CFG_DOT11P_MODE_MIN,
3556 CFG_DOT11P_MODE_MAX),
3557
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003558#ifdef FEATURE_WLAN_EXTSCAN
Manjeet Singh0f2ce5c2016-09-01 12:08:57 +05303559 REG_VARIABLE(CFG_EXTSCAN_ALLOWED_NAME, WLAN_PARAM_Integer,
3560 struct hdd_config, extscan_enabled,
3561 VAR_FLAGS_OPTIONAL |
3562 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3563 CFG_EXTSCAN_ALLOWED_DEF,
3564 CFG_EXTSCAN_ALLOWED_MIN,
3565 CFG_EXTSCAN_ALLOWED_MAX),
3566
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003567 REG_VARIABLE(CFG_EXTSCAN_PASSIVE_MAX_CHANNEL_TIME_NAME,
3568 WLAN_PARAM_Integer,
3569 struct hdd_config, extscan_passive_max_chn_time,
3570 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3571 CFG_EXTSCAN_PASSIVE_MAX_CHANNEL_TIME_DEFAULT,
3572 CFG_EXTSCAN_PASSIVE_MAX_CHANNEL_TIME_MIN,
3573 CFG_EXTSCAN_PASSIVE_MAX_CHANNEL_TIME_MAX),
3574
3575 REG_VARIABLE(CFG_EXTSCAN_PASSIVE_MIN_CHANNEL_TIME_NAME,
3576 WLAN_PARAM_Integer,
3577 struct hdd_config, extscan_passive_min_chn_time,
3578 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3579 CFG_EXTSCAN_PASSIVE_MIN_CHANNEL_TIME_DEFAULT,
3580 CFG_EXTSCAN_PASSIVE_MIN_CHANNEL_TIME_MIN,
3581 CFG_EXTSCAN_PASSIVE_MIN_CHANNEL_TIME_MAX),
3582
3583 REG_VARIABLE(CFG_EXTSCAN_ACTIVE_MAX_CHANNEL_TIME_NAME,
3584 WLAN_PARAM_Integer,
3585 struct hdd_config, extscan_active_max_chn_time,
3586 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3587 CFG_EXTSCAN_ACTIVE_MAX_CHANNEL_TIME_DEFAULT,
3588 CFG_EXTSCAN_ACTIVE_MAX_CHANNEL_TIME_MIN,
3589 CFG_EXTSCAN_ACTIVE_MAX_CHANNEL_TIME_MAX),
3590
3591 REG_VARIABLE(CFG_EXTSCAN_ACTIVE_MIN_CHANNEL_TIME_NAME,
3592 WLAN_PARAM_Integer,
3593 struct hdd_config, extscan_active_min_chn_time,
3594 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3595 CFG_EXTSCAN_ACTIVE_MIN_CHANNEL_TIME_DEFAULT,
3596 CFG_EXTSCAN_ACTIVE_MIN_CHANNEL_TIME_MIN,
3597 CFG_EXTSCAN_ACTIVE_MIN_CHANNEL_TIME_MAX),
3598#endif
3599
Yingying Tang95409972016-10-20 15:16:15 +08003600#ifdef WLAN_FEATURE_WOW_PULSE
3601 REG_VARIABLE(CFG_WOW_PULSE_SUPPORT_NAME, WLAN_PARAM_Integer,
3602 struct hdd_config, wow_pulse_support,
3603 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3604 CFG_WOW_PULSE_SUPPORT_DEFAULT,
3605 CFG_WOW_PULSE_SUPPORT_MIN,
3606 CFG_WOW_PULSE_SUPPORT_MAX),
3607
3608 REG_VARIABLE(CFG_WOW_PULSE_PIN_NAME, WLAN_PARAM_Integer,
3609 struct hdd_config, wow_pulse_pin,
3610 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3611 CFG_WOW_PULSE_PIN_DEFAULT,
3612 CFG_WOW_PULSE_PIN_MIN,
3613 CFG_WOW_PULSE_PIN_MAX),
3614
3615 REG_VARIABLE(CFG_WOW_PULSE_INTERVAL_LOW_NAME, WLAN_PARAM_Integer,
3616 struct hdd_config, wow_pulse_interval_low,
3617 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3618 CFG_WOW_PULSE_INTERVAL_LOW_DEFAULT,
3619 CFG_WOW_PULSE_INTERVAL_LOW_MIN,
3620 CFG_WOW_PULSE_INTERVAL_LOW_MAX),
3621
3622 REG_VARIABLE(CFG_WOW_PULSE_INTERVAL_HIGH_NAME, WLAN_PARAM_Integer,
3623 struct hdd_config, wow_pulse_interval_high,
3624 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3625 CFG_WOW_PULSE_INTERVAL_HIGH_DEFAULT,
3626 CFG_WOW_PULSE_INTERVAL_HIGH_MIN,
3627 CFG_WOW_PULSE_INTERVAL_HIGH_MAX),
3628#endif
3629
3630
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003631 REG_VARIABLE(CFG_CE_CLASSIFY_ENABLE_NAME, WLAN_PARAM_Integer,
3632 struct hdd_config, ce_classify_enabled,
3633 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3634 CFG_CE_CLASSIFY_ENABLE_DEFAULT,
3635 CFG_CE_CLASSIFY_ENABLE_MIN,
3636 CFG_CE_CLASSIFY_ENABLE_MAX),
3637
3638 REG_VARIABLE(CFG_DUAL_MAC_FEATURE_DISABLE, WLAN_PARAM_HexInteger,
3639 struct hdd_config, dual_mac_feature_disable,
3640 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3641 CFG_DUAL_MAC_FEATURE_DISABLE_DEFAULT,
3642 CFG_DUAL_MAC_FEATURE_DISABLE_MIN,
3643 CFG_DUAL_MAC_FEATURE_DISABLE_MAX),
Nitesh Shah50a3de12017-04-03 19:37:19 +05303644
3645 REG_VARIABLE_STRING(CFG_DBS_SCAN_SELECTION_NAME, WLAN_PARAM_String,
3646 struct hdd_config, dbs_scan_selection,
3647 VAR_FLAGS_OPTIONAL,
3648 (void *)CFG_DBS_SCAN_SELECTION_DEFAULT),
3649
Varun Reddy Yeturub43fda12015-09-10 18:16:21 -07003650#ifdef FEATURE_WLAN_SCAN_PNO
3651 REG_VARIABLE(CFG_PNO_CHANNEL_PREDICTION_NAME, WLAN_PARAM_Integer,
3652 struct hdd_config, pno_channel_prediction,
3653 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3654 CFG_PNO_CHANNEL_PREDICTION_DEFAULT,
3655 CFG_PNO_CHANNEL_PREDICTION_MIN,
3656 CFG_PNO_CHANNEL_PREDICTION_MAX),
3657
3658 REG_VARIABLE(CFG_TOP_K_NUM_OF_CHANNELS_NAME, WLAN_PARAM_Integer,
3659 struct hdd_config, top_k_num_of_channels,
3660 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3661 CFG_TOP_K_NUM_OF_CHANNELS_DEFAULT,
3662 CFG_TOP_K_NUM_OF_CHANNELS_MIN,
3663 CFG_TOP_K_NUM_OF_CHANNELS_MAX),
3664
3665 REG_VARIABLE(CFG_STATIONARY_THRESHOLD_NAME, WLAN_PARAM_Integer,
3666 struct hdd_config, stationary_thresh,
3667 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3668 CFG_STATIONARY_THRESHOLD_DEFAULT,
3669 CFG_STATIONARY_THRESHOLD_MIN,
3670 CFG_STATIONARY_THRESHOLD_MAX),
3671
3672 REG_VARIABLE(CFG_CHANNEL_PREDICTION_FULL_SCAN_MS_NAME,
3673 WLAN_PARAM_Integer,
3674 struct hdd_config, channel_prediction_full_scan,
3675 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3676 CFG_CHANNEL_PREDICTION_FULL_SCAN_MS_DEFAULT,
3677 CFG_CHANNEL_PREDICTION_FULL_SCAN_MS_MIN,
3678 CFG_CHANNEL_PREDICTION_FULL_SCAN_MS_MAX),
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05303679
3680 REG_VARIABLE(CFG_ADAPTIVE_PNOSCAN_DWELL_MODE_NAME,
3681 WLAN_PARAM_Integer,
3682 struct hdd_config, pnoscan_adaptive_dwell_mode,
3683 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3684 CFG_ADAPTIVE_PNOSCAN_DWELL_MODE_DEFAULT,
3685 CFG_ADAPTIVE_PNOSCAN_DWELL_MODE_MIN,
3686 CFG_ADAPTIVE_PNOSCAN_DWELL_MODE_MAX),
Varun Reddy Yeturub43fda12015-09-10 18:16:21 -07003687#endif
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003688
3689 REG_VARIABLE(CFG_TX_CHAIN_MASK_CCK, WLAN_PARAM_Integer,
3690 struct hdd_config, tx_chain_mask_cck,
3691 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3692 CFG_TX_CHAIN_MASK_CCK_DEFAULT,
3693 CFG_TX_CHAIN_MASK_CCK_MIN,
3694 CFG_TX_CHAIN_MASK_CCK_MAX),
3695
3696 REG_VARIABLE(CFG_TX_CHAIN_MASK_1SS, WLAN_PARAM_Integer,
3697 struct hdd_config, tx_chain_mask_1ss,
3698 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3699 CFG_TX_CHAIN_MASK_1SS_DEFAULT,
3700 CFG_TX_CHAIN_MASK_1SS_MIN,
3701 CFG_TX_CHAIN_MASK_1SS_MAX),
3702
Jeff Johnsona89e25d2017-02-24 12:25:07 -08003703 REG_VARIABLE(CFG_ENABLE_SMART_CHAINMASK_NAME, WLAN_PARAM_Integer,
3704 struct hdd_config, smart_chainmask_enabled,
3705 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3706 CFG_ENABLE_SMART_CHAINMASK_DEFAULT,
3707 CFG_ENABLE_SMART_CHAINMASK_MIN,
3708 CFG_ENABLE_SMART_CHAINMASK_MAX),
3709
3710 REG_VARIABLE(CFG_ENABLE_COEX_ALT_CHAINMASK_NAME, WLAN_PARAM_Integer,
3711 struct hdd_config, alternative_chainmask_enabled,
3712 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3713 CFG_ENABLE_COEX_ALT_CHAINMASK_DEFAULT,
3714 CFG_ENABLE_COEX_ALT_CHAINMASK_MIN,
3715 CFG_ENABLE_COEX_ALT_CHAINMASK_MAX),
3716
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003717 REG_VARIABLE(CFG_SELF_GEN_FRM_PWR, WLAN_PARAM_Integer,
3718 struct hdd_config, self_gen_frm_pwr,
3719 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3720 CFG_SELF_GEN_FRM_PWR_DEFAULT,
3721 CFG_SELF_GEN_FRM_PWR_MIN,
3722 CFG_SELF_GEN_FRM_PWR_MAX),
3723
Varun Reddy Yeturu05186292015-09-28 17:12:33 -07003724 REG_VARIABLE(CFG_EARLY_STOP_SCAN_ENABLE, WLAN_PARAM_Integer,
3725 struct hdd_config, early_stop_scan_enable,
3726 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3727 CFG_EARLY_STOP_SCAN_ENABLE_DEFAULT,
3728 CFG_EARLY_STOP_SCAN_ENABLE_MIN,
3729 CFG_EARLY_STOP_SCAN_ENABLE_MAX),
3730
3731 REG_VARIABLE(CFG_EARLY_STOP_SCAN_MIN_THRESHOLD,
3732 WLAN_PARAM_SignedInteger, struct hdd_config,
3733 early_stop_scan_min_threshold,
3734 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3735 CFG_EARLY_STOP_SCAN_MIN_THRESHOLD_DEFAULT,
3736 CFG_EARLY_STOP_SCAN_MIN_THRESHOLD_MIN,
3737 CFG_EARLY_STOP_SCAN_MIN_THRESHOLD_MAX),
3738
3739 REG_VARIABLE(CFG_EARLY_STOP_SCAN_MAX_THRESHOLD,
3740 WLAN_PARAM_SignedInteger, struct hdd_config,
3741 early_stop_scan_max_threshold,
3742 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3743 CFG_EARLY_STOP_SCAN_MAX_THRESHOLD_DEFAULT,
3744 CFG_EARLY_STOP_SCAN_MAX_THRESHOLD_MIN,
3745 CFG_EARLY_STOP_SCAN_MAX_THRESHOLD_MAX),
3746
Varun Reddy Yeturu044bda22015-11-21 22:03:40 -08003747 REG_VARIABLE(CFG_FIRST_SCAN_BUCKET_THRESHOLD_NAME,
3748 WLAN_PARAM_SignedInteger,
3749 struct hdd_config, first_scan_bucket_threshold,
3750 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3751 CFG_FIRST_SCAN_BUCKET_THRESHOLD_DEFAULT,
3752 CFG_FIRST_SCAN_BUCKET_THRESHOLD_MIN,
3753 CFG_FIRST_SCAN_BUCKET_THRESHOLD_MAX),
3754
Ravi Joshi742495d2015-11-09 18:56:53 -08003755#ifdef FEATURE_LFR_SUBNET_DETECTION
3756 REG_VARIABLE(CFG_ENABLE_LFR_SUBNET_DETECTION, WLAN_PARAM_Integer,
3757 struct hdd_config, enable_lfr_subnet_detection,
3758 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3759 CFG_ENABLE_LFR_SUBNET_DEFAULT,
3760 CFG_ENABLE_LFR_SUBNET_MIN,
3761 CFG_ENABLE_LFR_SUBNET_MAX),
3762#endif
Sandeep Puligilla93a29ec2016-02-12 16:10:56 -08003763 REG_VARIABLE(CFG_OBSS_HT40_SCAN_ACTIVE_DWELL_TIME_NAME,
3764 WLAN_PARAM_Integer,
3765 struct hdd_config, obss_active_dwelltime,
3766 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3767 CFG_OBSS_HT40_SCAN_ACTIVE_DWELL_TIME_DEFAULT,
3768 CFG_OBSS_HT40_SCAN_ACTIVE_DWELL_TIME_MIN,
3769 CFG_OBSS_HT40_SCAN_ACTIVE_DWELL_TIME_MAX),
3770
3771 REG_VARIABLE(CFG_OBSS_HT40_SCAN_PASSIVE_DWELL_TIME_NAME,
3772 WLAN_PARAM_Integer,
3773 struct hdd_config, obss_passive_dwelltime,
3774 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3775 CFG_OBSS_HT40_SCAN_PASSIVE_DWELL_TIME_DEFAULT,
3776 CFG_OBSS_HT40_SCAN_PASSIVE_DWELL_TIME_MIN,
3777 CFG_OBSS_HT40_SCAN_PASSIVE_DWELL_TIME_MAX),
3778
3779 REG_VARIABLE(CFG_OBSS_HT40_SCAN_WIDTH_TRIGGER_INTERVAL_NAME,
3780 WLAN_PARAM_Integer,
3781 struct hdd_config, obss_width_trigger_interval,
3782 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3783 CFG_OBSS_HT40_SCAN_WIDTH_TRIGGER_INTERVAL_DEFAULT,
3784 CFG_OBSS_HT40_SCAN_WIDTH_TRIGGER_INTERVAL_MIN,
3785 CFG_OBSS_HT40_SCAN_WIDTH_TRIGGER_INTERVAL_MAX),
Deepak Dhamdhere68929ec2015-08-05 15:16:35 -07003786
3787 REG_VARIABLE(CFG_INFORM_BSS_RSSI_RAW_NAME, WLAN_PARAM_Integer,
3788 struct hdd_config, inform_bss_rssi_raw,
3789 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3790 CFG_INFORM_BSS_RSSI_RAW_DEFAULT,
3791 CFG_INFORM_BSS_RSSI_RAW_MIN,
3792 CFG_INFORM_BSS_RSSI_RAW_MAX),
Tushnim Bhattacharyya24e12a62015-10-12 14:51:56 -07003793
Manikandan Mohan976e7562016-03-15 16:33:31 -07003794#ifdef WLAN_FEATURE_TSF
3795 REG_VARIABLE(CFG_SET_TSF_GPIO_PIN_NAME, WLAN_PARAM_Integer,
3796 struct hdd_config, tsf_gpio_pin,
3797 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3798 CFG_SET_TSF_GPIO_PIN_DEFAULT,
3799 CFG_SET_TSF_GPIO_PIN_MIN,
3800 CFG_SET_TSF_GPIO_PIN_MAX),
3801#endif
3802
Gupta, Kapilc68ad462016-02-01 19:17:23 +05303803 REG_VARIABLE(CFG_ROAM_DENSE_TRAFFIC_THRESHOLD, WLAN_PARAM_Integer,
3804 struct hdd_config, roam_dense_traffic_thresh,
3805 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3806 CFG_ROAM_DENSE_TRAFFIC_THRESHOLD_DEFAULT,
3807 CFG_ROAM_DENSE_TRAFFIC_THRESHOLD_MIN,
3808 CFG_ROAM_DENSE_TRAFFIC_THRESHOLD_MAX),
3809
3810 REG_VARIABLE(CFG_ROAM_DENSE_RSSI_THRE_OFFSET, WLAN_PARAM_Integer,
3811 struct hdd_config, roam_dense_rssi_thresh_offset,
3812 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3813 CFG_ROAM_DENSE_RSSI_THRE_OFFSET_DEFAULT,
3814 CFG_ROAM_DENSE_RSSI_THRE_OFFSET_MIN,
3815 CFG_ROAM_DENSE_RSSI_THRE_OFFSET_MAX),
3816
Abhishek Singh165bc602016-03-21 12:43:00 +05303817 REG_VARIABLE(CFG_IGNORE_PEER_HT_MODE_NAME, WLAN_PARAM_Integer,
3818 struct hdd_config, ignore_peer_ht_opmode,
3819 VAR_FLAGS_OPTIONAL |
3820 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3821 CFG_IGNORE_PEER_HT_MODE_DEFAULT,
3822 CFG_IGNORE_PEER_HT_MODE_MIN,
3823 CFG_IGNORE_PEER_HT_MODE_MAX),
3824
Gupta, Kapilc68ad462016-02-01 19:17:23 +05303825 REG_VARIABLE(CFG_ROAM_DENSE_MIN_APS, WLAN_PARAM_Integer,
3826 struct hdd_config, roam_dense_min_aps,
3827 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3828 CFG_ROAM_DENSE_MIN_APS_DEFAULT,
3829 CFG_ROAM_DENSE_MIN_APS_MIN,
3830 CFG_ROAM_DENSE_MIN_APS_MAX),
3831
Abhishek Singh5ea86532016-04-27 14:10:53 +05303832 REG_VARIABLE(CFG_ENABLE_FATAL_EVENT_TRIGGER, WLAN_PARAM_Integer,
3833 struct hdd_config, enable_fatal_event,
3834 VAR_FLAGS_OPTIONAL |
3835 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3836 CFG_ENABLE_FATAL_EVENT_TRIGGER_DEFAULT,
3837 CFG_ENABLE_FATAL_EVENT_TRIGGER_MIN,
3838 CFG_ENABLE_FATAL_EVENT_TRIGGER_MAX),
3839
Abhishek Singh10ecf582016-05-04 17:48:59 +05303840 REG_VARIABLE(CFG_ENABLE_EDCA_INI_NAME, WLAN_PARAM_Integer,
3841 struct hdd_config, enable_edca_params,
3842 VAR_FLAGS_OPTIONAL |
3843 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3844 CFG_ENABLE_EDCA_INI_DEFAULT,
3845 CFG_ENABLE_EDCA_INI_MIN,
3846 CFG_ENABLE_EDCA_INI_MAX),
3847
Agrawal Ashishb2d1a452016-05-05 12:23:58 +05303848 REG_VARIABLE(CFG_ENABLE_GO_CTS2SELF_FOR_STA, WLAN_PARAM_Integer,
3849 struct hdd_config, enable_go_cts2self_for_sta,
3850 VAR_FLAGS_OPTIONAL |
3851 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3852 CFG_ENABLE_GO_CTS2SELF_FOR_STA_DEFAULT,
3853 CFG_ENABLE_GO_CTS2SELF_FOR_STA_MIN,
3854 CFG_ENABLE_GO_CTS2SELF_FOR_STA_MAX),
3855
Abhishek Singh10ecf582016-05-04 17:48:59 +05303856 REG_VARIABLE(CFG_EDCA_VO_CWMIN_VALUE_NAME, WLAN_PARAM_Integer,
3857 struct hdd_config, edca_vo_cwmin,
3858 VAR_FLAGS_OPTIONAL |
3859 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3860 CFG_EDCA_VO_CWMIN_VALUE_DEFAULT,
3861 CFG_EDCA_VO_CWMIN_VALUE_MIN,
3862 CFG_EDCA_VO_CWMIN_VALUE_MAX),
3863
3864 REG_VARIABLE(CFG_EDCA_VI_CWMIN_VALUE_NAME, WLAN_PARAM_Integer,
3865 struct hdd_config, edca_vi_cwmin,
3866 VAR_FLAGS_OPTIONAL |
3867 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3868 CFG_EDCA_VI_CWMIN_VALUE_DEFAULT,
3869 CFG_EDCA_VI_CWMIN_VALUE_MIN,
3870 CFG_EDCA_VI_CWMIN_VALUE_MAX),
3871
3872 REG_VARIABLE(CFG_EDCA_BK_CWMIN_VALUE_NAME, WLAN_PARAM_Integer,
3873 struct hdd_config, edca_bk_cwmin,
3874 VAR_FLAGS_OPTIONAL |
3875 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3876 CFG_EDCA_BK_CWMIN_VALUE_DEFAULT,
3877 CFG_EDCA_BK_CWMIN_VALUE_MIN,
3878 CFG_EDCA_BK_CWMIN_VALUE_MAX),
3879
3880 REG_VARIABLE(CFG_EDCA_BE_CWMIN_VALUE_NAME, WLAN_PARAM_Integer,
3881 struct hdd_config, edca_be_cwmin,
3882 VAR_FLAGS_OPTIONAL |
3883 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3884 CFG_EDCA_BE_CWMIN_VALUE_DEFAULT,
3885 CFG_EDCA_BE_CWMIN_VALUE_MIN,
3886 CFG_EDCA_BE_CWMIN_VALUE_MAX),
3887
3888 REG_VARIABLE(CFG_EDCA_VO_CWMAX_VALUE_NAME, WLAN_PARAM_Integer,
3889 struct hdd_config, edca_vo_cwmax,
3890 VAR_FLAGS_OPTIONAL |
3891 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3892 CFG_EDCA_VO_CWMAX_VALUE_DEFAULT,
3893 CFG_EDCA_VO_CWMAX_VALUE_MIN,
3894 CFG_EDCA_VO_CWMAX_VALUE_MAX),
3895
3896 REG_VARIABLE(CFG_EDCA_VI_CWMAX_VALUE_NAME, WLAN_PARAM_Integer,
3897 struct hdd_config, edca_vi_cwmax,
3898 VAR_FLAGS_OPTIONAL |
3899 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3900 CFG_EDCA_VI_CWMAX_VALUE_DEFAULT,
3901 CFG_EDCA_VI_CWMAX_VALUE_MIN,
3902 CFG_EDCA_VI_CWMAX_VALUE_MAX),
3903
3904 REG_VARIABLE(CFG_EDCA_BK_CWMAX_VALUE_NAME, WLAN_PARAM_Integer,
3905 struct hdd_config, edca_bk_cwmax,
3906 VAR_FLAGS_OPTIONAL |
3907 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3908 CFG_EDCA_BK_CWMAX_VALUE_DEFAULT,
3909 CFG_EDCA_BK_CWMAX_VALUE_MIN,
3910 CFG_EDCA_BK_CWMAX_VALUE_MAX),
3911
3912 REG_VARIABLE(CFG_EDCA_BE_CWMAX_VALUE_NAME, WLAN_PARAM_Integer,
3913 struct hdd_config, edca_be_cwmax,
3914 VAR_FLAGS_OPTIONAL |
3915 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3916 CFG_EDCA_BE_CWMAX_VALUE_DEFAULT,
3917 CFG_EDCA_BE_CWMAX_VALUE_MIN,
3918 CFG_EDCA_BE_CWMAX_VALUE_MAX),
3919
3920 REG_VARIABLE(CFG_EDCA_VO_AIFS_VALUE_NAME, WLAN_PARAM_Integer,
3921 struct hdd_config, edca_vo_aifs,
3922 VAR_FLAGS_OPTIONAL |
3923 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3924 CFG_EDCA_VO_AIFS_VALUE_DEFAULT,
3925 CFG_EDCA_VO_AIFS_VALUE_MIN,
3926 CFG_EDCA_VO_AIFS_VALUE_MAX),
3927
3928 REG_VARIABLE(CFG_EDCA_VI_AIFS_VALUE_NAME, WLAN_PARAM_Integer,
3929 struct hdd_config, edca_vi_aifs,
3930 VAR_FLAGS_OPTIONAL |
3931 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3932 CFG_EDCA_VI_AIFS_VALUE_DEFAULT,
3933 CFG_EDCA_VI_AIFS_VALUE_MIN,
3934 CFG_EDCA_VI_AIFS_VALUE_MAX),
3935
3936 REG_VARIABLE(CFG_EDCA_BK_AIFS_VALUE_NAME, WLAN_PARAM_Integer,
3937 struct hdd_config, edca_bk_aifs,
3938 VAR_FLAGS_OPTIONAL |
3939 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3940 CFG_EDCA_BK_AIFS_VALUE_DEFAULT,
3941 CFG_EDCA_BK_AIFS_VALUE_MIN,
3942 CFG_EDCA_BK_AIFS_VALUE_MAX),
3943
3944 REG_VARIABLE(CFG_EDCA_BE_AIFS_VALUE_NAME, WLAN_PARAM_Integer,
3945 struct hdd_config, edca_be_aifs,
3946 VAR_FLAGS_OPTIONAL |
3947 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3948 CFG_EDCA_BE_AIFS_VALUE_DEFAULT,
3949 CFG_EDCA_BE_AIFS_VALUE_MIN,
3950 CFG_EDCA_BE_AIFS_VALUE_MAX),
gbian62edd7e2017-03-07 13:12:13 +08003951
3952 REG_VARIABLE_STRING(CFG_ENABLE_TX_SCHED_WRR_VO_NAME,
3953 WLAN_PARAM_String,
3954 struct hdd_config, tx_sched_wrr_vo,
3955 VAR_FLAGS_OPTIONAL,
3956 (void *) CFG_ENABLE_TX_SCHED_WRR_VO_DEFAULT),
3957
3958 REG_VARIABLE_STRING(CFG_ENABLE_TX_SCHED_WRR_VI_NAME,
3959 WLAN_PARAM_String,
3960 struct hdd_config, tx_sched_wrr_vi,
3961 VAR_FLAGS_OPTIONAL,
3962 (void *) CFG_ENABLE_TX_SCHED_WRR_VI_DEFAULT),
3963
3964 REG_VARIABLE_STRING(CFG_ENABLE_TX_SCHED_WRR_BE_NAME,
3965 WLAN_PARAM_String,
3966 struct hdd_config, tx_sched_wrr_be,
3967 VAR_FLAGS_OPTIONAL,
3968 (void *) CFG_ENABLE_TX_SCHED_WRR_BE_DEFAULT),
3969
3970 REG_VARIABLE_STRING(CFG_ENABLE_TX_SCHED_WRR_BK_NAME,
3971 WLAN_PARAM_String,
3972 struct hdd_config, tx_sched_wrr_bk,
3973 VAR_FLAGS_OPTIONAL,
3974 (void *) CFG_ENABLE_TX_SCHED_WRR_BK_DEFAULT),
3975
Deepak Dhamdhere3385d752016-05-25 20:36:47 -07003976#ifdef WLAN_FEATURE_NAN_DATAPATH
3977 REG_VARIABLE(CFG_ENABLE_NAN_DATAPATH_NAME, WLAN_PARAM_Integer,
3978 struct hdd_config, enable_nan_datapath,
3979 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3980 CFG_ENABLE_NAN_DATAPATH_DEFAULT,
3981 CFG_ENABLE_NAN_DATAPATH_MIN,
3982 CFG_ENABLE_NAN_DATAPATH_MAX),
3983
3984 REG_VARIABLE(CFG_ENABLE_NAN_NDI_CHANNEL_NAME, WLAN_PARAM_Integer,
3985 struct hdd_config, nan_datapath_ndi_channel,
3986 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3987 CFG_ENABLE_NAN_NDI_CHANNEL_DEFAULT,
3988 CFG_ENABLE_NAN_NDI_CHANNEL_MIN,
3989 CFG_ENABLE_NAN_NDI_CHANNEL_MAX),
3990#endif
Kapil Gupta0ed58dc2016-04-22 15:35:26 +05303991 REG_VARIABLE(CFG_CREATE_BUG_REPORT_FOR_SCAN, WLAN_PARAM_Integer,
3992 struct hdd_config, bug_report_for_no_scan_results,
3993 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3994 CFG_CREATE_BUG_REPORT_FOR_SCAN_DEFAULT,
3995 CFG_CREATE_BUG_REPORT_FOR_SCAN_DISABLE,
3996 CFG_CREATE_BUG_REPORT_FOR_SCAN_ENABLE),
Abhishek Singh5ea86532016-04-27 14:10:53 +05303997
Kapil Gupta8878ad92017-02-13 11:56:04 +05303998 REG_VARIABLE(CFG_USER_AUTO_CHANNEL_SELECTION, WLAN_PARAM_Integer,
3999 struct hdd_config, vendor_acs_support,
4000 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4001 CFG_USER_AUTO_CHANNEL_SELECTION_DEFAULT,
4002 CFG_USER_AUTO_CHANNEL_SELECTION_DISABLE,
4003 CFG_USER_AUTO_CHANNEL_SELECTION_ENABLE),
4004
4005 REG_VARIABLE(CFG_USER_ACS_DFS_LTE, WLAN_PARAM_Integer,
4006 struct hdd_config, acs_support_for_dfs_ltecoex,
4007 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4008 CFG_USER_ACS_DFS_LTE_DEFAULT,
4009 CFG_USER_ACS_DFS_LTE_DISABLE,
4010 CFG_USER_ACS_DFS_LTE_ENABLE),
4011
Nirav Shahcc1f1ae2016-04-26 11:41:29 +05304012 REG_VARIABLE(CFG_ENABLE_DP_TRACE, WLAN_PARAM_Integer,
4013 struct hdd_config, enable_dp_trace,
4014 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4015 CFG_ENABLE_DP_TRACE_DEFAULT,
4016 CFG_ENABLE_DP_TRACE_MIN,
4017 CFG_ENABLE_DP_TRACE_MAX),
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05304018
4019 REG_VARIABLE(CFG_ADAPTIVE_SCAN_DWELL_MODE_NAME, WLAN_PARAM_Integer,
4020 struct hdd_config, scan_adaptive_dwell_mode,
4021 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4022 CFG_ADAPTIVE_SCAN_DWELL_MODE_DEFAULT,
4023 CFG_ADAPTIVE_SCAN_DWELL_MODE_MIN,
4024 CFG_ADAPTIVE_SCAN_DWELL_MODE_MAX),
4025
4026 REG_VARIABLE(CFG_ADAPTIVE_ROAMSCAN_DWELL_MODE_NAME, WLAN_PARAM_Integer,
4027 struct hdd_config, roamscan_adaptive_dwell_mode,
4028 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4029 CFG_ADAPTIVE_ROAMSCAN_DWELL_MODE_DEFAULT,
4030 CFG_ADAPTIVE_ROAMSCAN_DWELL_MODE_MIN,
4031 CFG_ADAPTIVE_ROAMSCAN_DWELL_MODE_MAX),
4032
4033 REG_VARIABLE(CFG_ADAPTIVE_EXTSCAN_DWELL_MODE_NAME, WLAN_PARAM_Integer,
4034 struct hdd_config, extscan_adaptive_dwell_mode,
4035 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4036 CFG_ADAPTIVE_EXTSCAN_DWELL_MODE_DEFAULT,
4037 CFG_ADAPTIVE_EXTSCAN_DWELL_MODE_MIN,
4038 CFG_ADAPTIVE_EXTSCAN_DWELL_MODE_MAX),
4039
4040 REG_VARIABLE(CFG_ADAPTIVE_DWELL_MODE_ENABLED_NAME, WLAN_PARAM_Integer,
4041 struct hdd_config, adaptive_dwell_mode_enabled,
4042 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4043 CFG_ADAPTIVE_DWELL_MODE_ENABLED_DEFAULT,
4044 CFG_ADAPTIVE_DWELL_MODE_ENABLED_MIN,
4045 CFG_ADAPTIVE_DWELL_MODE_ENABLED_MAX),
4046
4047 REG_VARIABLE(CFG_GLOBAL_ADAPTIVE_DWELL_MODE_NAME, WLAN_PARAM_Integer,
4048 struct hdd_config, global_adapt_dwelltime_mode,
4049 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4050 CFG_GLOBAL_ADAPTIVE_DWELL_MODE_DEFAULT,
4051 CFG_GLOBAL_ADAPTIVE_DWELL_MODE_MIN,
4052 CFG_GLOBAL_ADAPTIVE_DWELL_MODE_MAX),
4053
4054 REG_VARIABLE(CFG_ADAPT_DWELL_LPF_WEIGHT_NAME, WLAN_PARAM_Integer,
4055 struct hdd_config, adapt_dwell_lpf_weight,
4056 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4057 CFG_ADAPT_DWELL_LPF_WEIGHT_DEFAULT,
4058 CFG_ADAPT_DWELL_LPF_WEIGHT_MIN,
4059 CFG_ADAPT_DWELL_LPF_WEIGHT_MAX),
4060
Naveen Rawat64e477e2016-05-20 10:34:56 -07004061 REG_VARIABLE(CFG_SUB_20_CHANNEL_WIDTH_NAME, WLAN_PARAM_Integer,
4062 struct hdd_config, enable_sub_20_channel_width,
4063 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4064 CFG_SUB_20_CHANNEL_WIDTH_DEFAULT,
4065 CFG_SUB_20_CHANNEL_WIDTH_MIN,
4066 CFG_SUB_20_CHANNEL_WIDTH_MAX),
4067
Rajeev Kumar Sirasanagandlaaf474742016-09-06 17:54:50 +05304068 REG_VARIABLE(CFG_TGT_GTX_USR_CFG_NAME, WLAN_PARAM_Integer,
4069 struct hdd_config, tgt_gtx_usr_cfg,
4070 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4071 CFG_TGT_GTX_USR_CFG_DEFAULT,
4072 CFG_TGT_GTX_USR_CFG_MIN,
4073 CFG_TGT_GTX_USR_CFG_MAX),
4074
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05304075 REG_VARIABLE(CFG_ADAPT_DWELL_PASMON_INTVAL_NAME, WLAN_PARAM_Integer,
4076 struct hdd_config, adapt_dwell_passive_mon_intval,
4077 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4078 CFG_ADAPT_DWELL_PASMON_INTVAL_DEFAULT,
4079 CFG_ADAPT_DWELL_PASMON_INTVAL_MIN,
4080 CFG_ADAPT_DWELL_PASMON_INTVAL_MAX),
4081
4082 REG_VARIABLE(CFG_ADAPT_DWELL_WIFI_THRESH_NAME, WLAN_PARAM_Integer,
4083 struct hdd_config, adapt_dwell_wifi_act_threshold,
4084 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4085 CFG_ADAPT_DWELL_WIFI_THRESH_DEFAULT,
4086 CFG_ADAPT_DWELL_WIFI_THRESH_MIN,
4087 CFG_ADAPT_DWELL_WIFI_THRESH_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004088
Nirav Shahbd36b062016-07-18 11:12:59 +05304089 REG_VARIABLE(CFG_RX_MODE_NAME, WLAN_PARAM_Integer,
4090 struct hdd_config, rx_mode,
4091 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4092 CFG_RX_MODE_DEFAULT,
4093 CFG_RX_MODE_MIN,
4094 CFG_RX_MODE_MAX),
4095
4096 REG_VARIABLE_STRING(CFG_RPS_RX_QUEUE_CPU_MAP_LIST_NAME,
4097 WLAN_PARAM_String,
4098 struct hdd_config, cpu_map_list,
4099 VAR_FLAGS_OPTIONAL,
4100 (void *)CFG_RPS_RX_QUEUE_CPU_MAP_LIST_DEFAULT),
4101
Amar Singhal18517882016-08-08 12:26:20 -07004102 REG_VARIABLE(CFG_INDOOR_CHANNEL_SUPPORT_NAME,
4103 WLAN_PARAM_Integer,
4104 struct hdd_config, indoor_channel_support,
4105 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4106 CFG_INDOOR_CHANNEL_SUPPORT_DEFAULT,
4107 CFG_INDOOR_CHANNEL_SUPPORT_MIN,
4108 CFG_INDOOR_CHANNEL_SUPPORT_MAX),
4109
Yingying Tangb4832f72016-10-20 13:44:55 +08004110 REG_VARIABLE(CFG_SAP_TX_LEAKAGE_THRESHOLD_NAME,
4111 WLAN_PARAM_Integer,
4112 struct hdd_config, sap_tx_leakage_threshold,
4113 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4114 CFG_SAP_TX_LEAKAGE_THRESHOLD_DEFAULT,
4115 CFG_SAP_TX_LEAKAGE_THRESHOLD_MIN,
4116 CFG_SAP_TX_LEAKAGE_THRESHOLD_MAX),
4117
Mukul Sharmaf7d62e12016-09-03 15:16:22 +05304118 REG_VARIABLE(CFG_BUG_ON_REINIT_FAILURE_NAME, WLAN_PARAM_Integer,
4119 struct hdd_config, bug_on_reinit_failure,
4120 VAR_FLAGS_OPTIONAL |
4121 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4122 CFG_BUG_ON_REINIT_FAILURE_DEFAULT,
4123 CFG_BUG_ON_REINIT_FAILURE_MIN,
4124 CFG_BUG_ON_REINIT_FAILURE_MAX),
4125
Rajeev Kumar Sirasanagandlab79b5462016-09-06 18:33:17 +05304126 REG_VARIABLE(CFG_SAP_FORCE_11N_FOR_11AC_NAME, WLAN_PARAM_Integer,
4127 struct hdd_config, sap_force_11n_for_11ac,
4128 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4129 CFG_SAP_FORCE_11N_FOR_11AC_DEFAULT,
4130 CFG_SAP_FORCE_11N_FOR_11AC_MIN,
4131 CFG_SAP_FORCE_11N_FOR_11AC_MAX),
4132
Arun Khandavallifae92942016-08-01 13:31:08 +05304133 REG_VARIABLE(CFG_INTERFACE_CHANGE_WAIT_NAME, WLAN_PARAM_Integer,
4134 struct hdd_config, iface_change_wait_time,
4135 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
4136 CFG_INTERFACE_CHANGE_WAIT_DEFAULT,
4137 CFG_INTERFACE_CHANGE_WAIT_MIN,
4138 CFG_INTERFACE_CHANGE_WAIT_MAX),
Ravi Joshibb8d4512016-08-22 10:14:52 -07004139
4140 REG_VARIABLE(CFG_FILTER_MULTICAST_REPLAY_NAME,
4141 WLAN_PARAM_Integer,
4142 struct hdd_config, multicast_replay_filter,
4143 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4144 CFG_FILTER_MULTICAST_REPLAY_DEFAULT,
4145 CFG_FILTER_MULTICAST_REPLAY_MIN,
4146 CFG_FILTER_MULTICAST_REPLAY_MAX),
Manjeet Singhe7ecb7c2016-09-03 12:34:53 +05304147
4148 REG_VARIABLE(CFG_SIFS_BURST_DURATION_NAME, WLAN_PARAM_Integer,
4149 struct hdd_config, sifs_burst_duration,
4150 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4151 CFG_SIFS_BURST_DURATION_DEFAULT,
4152 CFG_SIFS_BURST_DURATION_MIN,
4153 CFG_SIFS_BURST_DURATION_MAX),
Selvaraj, Sridharebda0f22016-08-29 16:05:23 +05304154 REG_VARIABLE(CFG_OPTIMIZE_CA_EVENT_NAME, WLAN_PARAM_Integer,
4155 struct hdd_config, goptimize_chan_avoid_event,
4156 VAR_FLAGS_OPTIONAL |
4157 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4158 CFG_OPTIMIZE_CA_EVENT_DEFAULT,
4159 CFG_OPTIMIZE_CA_EVENT_DISABLE,
4160 CFG_OPTIMIZE_CA_EVENT_ENABLE),
Padma, Santhosh Kumara7119672016-08-16 16:05:14 +05304161
4162 REG_VARIABLE(CFG_TX_AGGREGATION_SIZE, WLAN_PARAM_Integer,
4163 struct hdd_config, tx_aggregation_size,
4164 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4165 CFG_TX_AGGREGATION_SIZE_DEFAULT,
4166 CFG_TX_AGGREGATION_SIZE_MIN,
4167 CFG_TX_AGGREGATION_SIZE_MAX),
4168
4169 REG_VARIABLE(CFG_RX_AGGREGATION_SIZE, WLAN_PARAM_Integer,
4170 struct hdd_config, rx_aggregation_size,
4171 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4172 CFG_RX_AGGREGATION_SIZE_DEFAULT,
4173 CFG_RX_AGGREGATION_SIZE_MIN,
4174 CFG_RX_AGGREGATION_SIZE_MAX),
Agrawal, Ashish4e5fa1c2016-09-21 19:03:43 +05304175 REG_VARIABLE(CFG_SAP_MAX_INACTIVITY_OVERRIDE_NAME, WLAN_PARAM_Integer,
4176 struct hdd_config, sap_max_inactivity_override,
4177 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4178 CFG_SAP_MAX_INACTIVITY_OVERRIDE_DEFAULT,
4179 CFG_SAP_MAX_INACTIVITY_OVERRIDE_MIN,
Sandeep Puligillaafa52892016-10-26 19:03:16 -07004180 CFG_SAP_MAX_INACTIVITY_OVERRIDE_MAX),
4181 REG_VARIABLE(CFG_CRASH_FW_TIMEOUT_NAME, WLAN_PARAM_Integer,
4182 struct hdd_config, fw_timeout_crash,
4183 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4184 CFG_CRASH_FW_TIMEOUT_DEFAULT,
4185 CFG_CRASH_FW_TIMEOUT_DISABLE,
4186 CFG_CRASH_FW_TIMEOUT_ENABLE),
Dustin Browncd756942016-11-23 12:25:33 -08004187 REG_VARIABLE(CFG_RX_WAKELOCK_TIMEOUT_NAME, WLAN_PARAM_Integer,
4188 struct hdd_config, rx_wakelock_timeout,
4189 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4190 CFG_RX_WAKELOCK_TIMEOUT_DEFAULT,
4191 CFG_RX_WAKELOCK_TIMEOUT_MIN,
Anurag Chouhan7c01cc42016-12-16 21:33:43 +05304192 CFG_RX_WAKELOCK_TIMEOUT_MAX),
4193 REG_VARIABLE(CFG_MAX_SCHED_SCAN_PLAN_INT_NAME, WLAN_PARAM_Integer,
4194 struct hdd_config, max_sched_scan_plan_interval,
4195 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4196 CFG_MAX_SCHED_SCAN_PLAN_INT_DEFAULT,
4197 CFG_MAX_SCHED_SCAN_PLAN_INT_MIN,
4198 CFG_MAX_SCHED_SCAN_PLAN_INT_MAX),
4199 REG_VARIABLE(CFG_MAX_SCHED_SCAN_PLAN_ITRNS_NAME, WLAN_PARAM_Integer,
4200 struct hdd_config, max_sched_scan_plan_iterations,
4201 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4202 CFG_MAX_SCHED_SCAN_PLAN_ITRNS_DEFAULT,
4203 CFG_MAX_SCHED_SCAN_PLAN_ITRNS_MIN,
4204 CFG_MAX_SCHED_SCAN_PLAN_ITRNS_MAX),
Kapil Gupta5cda2252016-12-29 18:44:26 +05304205
Jeff Johnson441e1f72017-02-07 08:50:49 -08004206 REG_VARIABLE(CFG_STANDARD_WEXT_CONTROL_NAME, WLAN_PARAM_Integer,
4207 struct hdd_config, standard_wext_control,
4208 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4209 CFG_STANDARD_WEXT_CONTROL_DEFAULT,
4210 CFG_STANDARD_WEXT_CONTROL_MIN,
4211 CFG_STANDARD_WEXT_CONTROL_MAX),
4212 REG_VARIABLE(CFG_PRIVATE_WEXT_CONTROL_NAME, WLAN_PARAM_Integer,
4213 struct hdd_config, private_wext_control,
4214 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4215 CFG_PRIVATE_WEXT_CONTROL_DEFAULT,
4216 CFG_PRIVATE_WEXT_CONTROL_MIN,
4217 CFG_PRIVATE_WEXT_CONTROL_MAX),
Kapil Gupta5cda2252016-12-29 18:44:26 +05304218
Arun Khandavallicc544b32017-01-30 19:52:16 +05304219 REG_VARIABLE(CFG_SAP_INTERNAL_RESTART_NAME, WLAN_PARAM_Integer,
4220 struct hdd_config, sap_internal_restart,
4221 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4222 CFG_SAP_INTERNAL_RESTART_DEFAULT,
4223 CFG_SAP_INTERNAL_RESTART_MIN,
4224 CFG_SAP_INTERNAL_RESTART_MAX),
Srinivas Girigowda70e169a2017-03-07 23:55:57 -08004225
Hanumanth Reddy Pothula9c161dd2017-03-23 19:03:08 +05304226 REG_VARIABLE(CFG_SAP_RESTART_ON_CH_AVOID_NAME, WLAN_PARAM_Integer,
4227 struct hdd_config, sap_restart_on_ch_avoid,
4228 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4229 CFG_SAP_RESTART_ON_CH_AVOID_DEFAULT,
4230 CFG_SAP_RESTART_ON_CH_AVOID_MIN,
4231 CFG_SAP_RESTART_ON_CH_AVOID_MAX),
4232
Kapil Gupta5cda2252016-12-29 18:44:26 +05304233 REG_VARIABLE(CFG_PER_ROAM_ENABLE_NAME, WLAN_PARAM_Integer,
4234 struct hdd_config, is_per_roam_enabled,
4235 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4236 CFG_PER_ROAM_ENABLE_DEFAULT,
4237 CFG_PER_ROAM_ENABLE_MIN,
4238 CFG_PER_ROAM_ENABLE_MAX),
4239
4240 REG_VARIABLE(CFG_PER_ROAM_CONFIG_HIGH_RATE_TH_NAME, WLAN_PARAM_Integer,
4241 struct hdd_config, per_roam_high_rate_threshold,
4242 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4243 CFG_PER_ROAM_CONFIG_HIGH_RATE_TH_DEFAULT,
4244 CFG_PER_ROAM_CONFIG_HIGH_RATE_TH_MIN,
4245 CFG_PER_ROAM_CONFIG_HIGH_RATE_TH_MAX),
4246
4247 REG_VARIABLE(CFG_PER_ROAM_CONFIG_LOW_RATE_TH_NAME, WLAN_PARAM_Integer,
4248 struct hdd_config, per_roam_low_rate_threshold,
4249 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4250 CFG_PER_ROAM_CONFIG_LOW_RATE_TH_DEFAULT,
4251 CFG_PER_ROAM_CONFIG_LOW_RATE_TH_MIN,
4252 CFG_PER_ROAM_CONFIG_LOW_RATE_TH_MAX),
4253
4254 REG_VARIABLE(CFG_PER_ROAM_CONFIG_RATE_TH_PERCENT_NAME,
4255 WLAN_PARAM_Integer, struct hdd_config, per_roam_th_percent,
4256 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4257 CFG_PER_ROAM_CONFIG_RATE_TH_PERCENT_DEFAULT,
4258 CFG_PER_ROAM_CONFIG_RATE_TH_PERCENT_MIN,
4259 CFG_PER_ROAM_CONFIG_RATE_TH_PERCENT_MAX),
4260
4261 REG_VARIABLE(CFG_PER_ROAM_REST_TIME_NAME, WLAN_PARAM_Integer,
4262 struct hdd_config, per_roam_rest_time,
4263 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4264 CFG_PER_ROAM_REST_TIME_DEFAULT,
4265 CFG_PER_ROAM_REST_TIME_MIN,
4266 CFG_PER_ROAM_REST_TIME_MAX),
Kapil Gupta957827b2017-02-13 15:47:04 +05304267
4268 REG_VARIABLE(CFG_PER_ROAM_MONITOR_TIME, WLAN_PARAM_Integer,
4269 struct hdd_config, per_roam_mon_time,
4270 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4271 CFG_PER_ROAM_MONTIOR_TIME_DEFAULT,
4272 CFG_PER_ROAM_MONITOR_TIME_MIN,
4273 CFG_PER_ROAM_MONITOR_TIME_MAX),
4274
Selvaraj, Sridhar0641fab2017-05-17 16:02:00 +05304275 REG_VARIABLE(CFG_PER_ROAM_MIN_CANDIDATE_RSSI, WLAN_PARAM_Integer,
4276 struct hdd_config, min_candidate_rssi,
4277 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4278 CFG_PER_ROAM_MIN_CANDIDATE_RSSI_DEFAULT,
4279 CFG_PER_ROAM_MIN_CANDIDATE_RSSI_MIN,
4280 CFG_PER_ROAM_MIN_CANDIDATE_RSSI_MAX),
4281
Hanumanth Reddy Pothulae87621b2017-04-12 20:53:35 +05304282 REG_VARIABLE(CFG_ACTIVE_UC_BPF_MODE_NAME, WLAN_PARAM_Integer,
4283 struct hdd_config, active_uc_bpf_mode,
Dustin Brown13995f02017-01-12 15:38:42 -08004284 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
Hanumanth Reddy Pothulae87621b2017-04-12 20:53:35 +05304285 CFG_ACTIVE_UC_BPF_MODE_DEFAULT,
4286 CFG_ACTIVE_UC_BPF_MODE_MIN,
4287 CFG_ACTIVE_UC_BPF_MODE_MAX),
4288
4289 REG_VARIABLE(CFG_ACTIVE_MC_BC_BPF_MODE_NAME, WLAN_PARAM_Integer,
4290 struct hdd_config, active_mc_bc_bpf_mode,
4291 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4292 CFG_ACTIVE_MC_BC_BPF_MODE_DEFAULT,
4293 CFG_ACTIVE_MC_BC_BPF_MODE_MIN,
4294 CFG_ACTIVE_MC_BC_BPF_MODE_MAX),
4295
Selvaraj, Sridhar4f684bb2017-01-19 15:59:23 +05304296 REG_VARIABLE(CFG_ENABLE_BCAST_PROBE_RESP_NAME, WLAN_PARAM_Integer,
4297 struct hdd_config, enable_bcast_probe_rsp,
4298 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4299 CFG_ENABLE_BCAST_PROBE_RESP_DEFAULT,
4300 CFG_ENABLE_BCAST_PROBE_RESP_MIN,
4301 CFG_ENABLE_BCAST_PROBE_RESP_MAX),
Naveen Rawatb2fc4132017-05-10 20:42:05 -07004302
Krishna Kumaar Natarajan90bb6f12017-03-03 21:05:52 -08004303#ifdef WLAN_FEATURE_11AX
4304 REG_VARIABLE(CFG_ENABLE_UL_MIMO_NAME, WLAN_PARAM_Integer,
4305 struct hdd_config, enable_ul_mimo,
4306 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4307 CFG_ENABLE_UL_MIMO_DEFAULT,
4308 CFG_ENABLE_UL_MIMO_MIN,
4309 CFG_ENABLE_UL_MIMO_MAX),
4310
4311 REG_VARIABLE(CFG_ENABLE_UL_OFDMA_NAME, WLAN_PARAM_Integer,
4312 struct hdd_config, enable_ul_ofdma,
4313 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4314 CFG_ENABLE_UL_OFDMA_DEFAULT,
4315 CFG_ENABLE_UL_OFDMA_MIN,
4316 CFG_ENABLE_UL_OFDMA_MAX),
Manikandan Mohan39accff2017-05-02 16:09:00 -07004317
4318 REG_VARIABLE(CFG_HE_STA_OBSSPD_NAME, WLAN_PARAM_HexInteger,
4319 struct hdd_config, he_sta_obsspd,
4320 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4321 CFG_HE_STA_OBSSPD_DEFAULT,
4322 CFG_HE_STA_OBSSPD_MIN,
4323 CFG_HE_STA_OBSSPD_MAX),
Krishna Kumaar Natarajan90bb6f12017-03-03 21:05:52 -08004324#endif
Dustin Brownab1364a2017-03-27 16:59:08 -07004325
4326 REG_VARIABLE(CFG_L1SS_SLEEP_ALLOWED_NAME, WLAN_PARAM_Integer,
4327 struct hdd_config, l1ss_sleep_allowed,
4328 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4329 CFG_L1SS_SLEEP_ALLOWED_DEFAULT,
4330 CFG_L1SS_SLEEP_ALLOWED_MIN,
4331 CFG_L1SS_SLEEP_ALLOWED_MAX),
4332
Srinivas Girigowda70e169a2017-03-07 23:55:57 -08004333 REG_VARIABLE(CFG_ARP_AC_CATEGORY, WLAN_PARAM_Integer,
4334 struct hdd_config, arp_ac_category,
4335 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4336 CFG_ARP_AC_CATEGORY_DEFAULT,
4337 CFG_ARP_AC_CATEGORY_MIN,
4338 CFG_ARP_AC_CATEGORY_MAX),
Jeff Johnson12a744b2017-04-04 08:19:37 -07004339
4340 REG_VARIABLE(CFG_ENABLE_ANI_NAME, WLAN_PARAM_Integer,
4341 struct hdd_config, ani_enabled,
4342 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4343 CFG_ENABLE_ANI_DEFAULT,
4344 CFG_ENABLE_ANI_MIN,
4345 CFG_ENABLE_ANI_MAX),
Amar Singhal5cccafe2017-02-15 12:42:58 -08004346
Selvaraj, Sridhara521aab2017-03-25 16:42:34 +05304347 REG_VARIABLE(CFG_QCN_IE_SUPPORT_NAME, WLAN_PARAM_Integer,
4348 struct hdd_config, qcn_ie_support,
4349 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4350 CFG_QCN_IE_SUPPORT_DEFAULT,
4351 CFG_QCN_IE_SUPPORT_MIN,
4352 CFG_QCN_IE_SUPPORT_MAX),
Amar Singhal5cccafe2017-02-15 12:42:58 -08004353
Dustin Brown7f939932017-05-18 15:02:17 -07004354 REG_VARIABLE(CFG_TIMER_MULTIPLIER_NAME, WLAN_PARAM_Integer,
4355 struct hdd_config, timer_multiplier,
4356 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4357 CFG_TIMER_MULTIPLIER_DEFAULT,
4358 CFG_TIMER_MULTIPLIER_MIN,
4359 CFG_TIMER_MULTIPLIER_MAX),
4360
Amar Singhal5cccafe2017-02-15 12:42:58 -08004361 REG_VARIABLE(CFG_ENABLE_REG_OFFLOAD_NAME, WLAN_PARAM_Integer,
4362 struct hdd_config, reg_offload_enabled,
4363 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4364 CFG_ENABLE_REG_OFFLOAD_DEFAULT,
4365 CFG_ENABLE_REG_OFFLOAD_MIN,
4366 CFG_ENABLE_REG_OFFLOAD_MAX),
Naveen Rawat2b6e3c92017-03-20 13:59:07 -07004367
Selvaraj, Sridhar97ce6582017-01-20 17:06:34 +05304368 REG_VARIABLE(CFG_FILS_MAX_CHAN_GUARD_TIME_NAME, WLAN_PARAM_Integer,
4369 struct hdd_config, fils_max_chan_guard_time,
4370 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4371 CFG_FILS_MAX_CHAN_GUARD_TIME_DEFAULT,
4372 CFG_FILS_MAX_CHAN_GUARD_TIME_MIN,
4373 CFG_FILS_MAX_CHAN_GUARD_TIME_MAX),
Naveen Rawat2b6e3c92017-03-20 13:59:07 -07004374
Dustin Brown20b6fcf2017-05-17 15:35:17 -07004375 REG_VARIABLE(CFG_SCAN_BACKOFF_MULTIPLIER_NAME, WLAN_PARAM_Integer,
4376 struct hdd_config, scan_backoff_multiplier,
4377 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4378 CFG_SCAN_BACKOFF_MULTIPLIER_DEFAULT,
4379 CFG_SCAN_BACKOFF_MULTIPLIER_MIN,
4380 CFG_SCAN_BACKOFF_MULTIPLIER_MAX),
4381
Jayachandran Sreekumaran68c952c2017-04-24 12:42:03 +05304382 REG_VARIABLE(CFG_EXTERNAL_ACS_POLICY, WLAN_PARAM_Integer,
4383 struct hdd_config, external_acs_policy,
4384 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4385 CFG_EXTERNAL_ACS_POLICY_DEFAULT,
4386 CFG_EXTERNAL_ACS_POLICY_MIN,
4387 CFG_EXTERNAL_ACS_POLICY_MAX),
4388
4389 REG_VARIABLE(CFG_EXTERNAL_ACS_FREQ_BAND, WLAN_PARAM_Integer,
4390 struct hdd_config, external_acs_freq_band,
4391 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4392 CFG_EXTERNAL_ACS_FREQ_BAND_DEFAULT,
4393 CFG_EXTERNAL_ACS_FREQ_BAND_MIN,
4394 CFG_EXTERNAL_ACS_FREQ_BAND_MAX),
Naveen Rawat2b6e3c92017-03-20 13:59:07 -07004395
4396 REG_VARIABLE(CFG_DROPPED_PKT_DISCONNECT_TH_NAME, WLAN_PARAM_Integer,
4397 struct hdd_config, pkt_err_disconn_th,
4398 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4399 CFG_DROPPED_PKT_DISCONNECT_TH_DEFAULT,
4400 CFG_DROPPED_PKT_DISCONNECT_TH_MIN,
4401 CFG_DROPPED_PKT_DISCONNECT_TH_MAX),
Naveen Rawatb2fc4132017-05-10 20:42:05 -07004402
4403 REG_VARIABLE(CFG_FORCE_1X1_NAME, WLAN_PARAM_Integer,
4404 struct hdd_config, is_force_1x1,
4405 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4406 CFG_FORCE_1X1_DEFAULT,
4407 CFG_FORCE_1X1_MIN,
4408 CFG_FORCE_1X1_MAX),
lifeng959a04c2017-05-10 14:21:28 +08004409
4410 REG_VARIABLE(CFG_SET_RTS_FOR_SIFS_BURSTING, WLAN_PARAM_Integer,
4411 struct hdd_config, enable_rts_sifsbursting,
4412 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4413 CFG_SET_RTS_FOR_SIFS_BURSTING_DEFAULT,
4414 CFG_SET_RTS_FOR_SIFS_BURSTING_MIN,
4415 CFG_SET_RTS_FOR_SIFS_BURSTING_MAX),
4416
4417 REG_VARIABLE(CFG_MAX_MPDUS_IN_AMPDU, WLAN_PARAM_Integer,
4418 struct hdd_config, max_mpdus_inampdu,
4419 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4420 CFG_MAX_MPDUS_IN_AMPDU_DEFAULT,
4421 CFG_MAX_MPDUS_IN_AMPDU_MIN,
4422 CFG_MAX_MPDUS_IN_AMPDU_MAX),
lifeng13a89d72017-05-10 14:49:29 +08004423
4424 REG_VARIABLE(CFG_SAP_MAX_MCS_FOR_TX_DATA, WLAN_PARAM_Integer,
4425 struct hdd_config, sap_max_mcs_txdata,
4426 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4427 CFG_SAP_MAX_MCS_FOR_TX_DATA_DEFAULT,
4428 CFG_SAP_MAX_MCS_FOR_TX_DATA_MIN,
4429 CFG_SAP_MAX_MCS_FOR_TX_DATA_MAX),
Manjunathappa Prakashdab74fa2017-06-19 12:11:03 -07004430
4431 REG_VARIABLE(CFG_TX_ORPHAN_ENABLE_NAME, WLAN_PARAM_Integer,
4432 struct hdd_config, tx_orphan_enable,
4433 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4434 CFG_TX_ORPHAN_ENABLE_DEFAULT,
4435 CFG_TX_ORPHAN_ENABLE_MIN,
4436 CFG_TX_ORPHAN_ENABLE_MAX),
Ravi Kumar Bokka05c14e52017-03-27 14:48:23 +05304437
4438 REG_VARIABLE(CFG_AUTO_DETECT_POWER_FAIL_MODE_NAME, WLAN_PARAM_Integer,
4439 struct hdd_config, auto_pwr_save_fail_mode,
4440 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4441 CFG_AUTO_DETECT_POWER_FAIL_MODE_DEFAULT,
4442 CFG_AUTO_DETECT_POWER_FAIL_MODE_MIN,
4443 CFG_AUTO_DETECT_POWER_FAIL_MODE_MAX),
4444
Naveen Rawat247a8682017-06-05 15:00:31 -07004445 REG_VARIABLE(CFG_11B_NUM_TX_CHAIN_NAME, WLAN_PARAM_Integer,
4446 struct hdd_config, num_11b_tx_chains,
4447 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4448 CFG_11B_NUM_TX_CHAIN_DEFAULT,
4449 CFG_11B_NUM_TX_CHAIN_MIN,
4450 CFG_11B_NUM_TX_CHAIN_MAX),
4451
4452 REG_VARIABLE(CFG_11AG_NUM_TX_CHAIN_NAME, WLAN_PARAM_Integer,
4453 struct hdd_config, num_11ag_tx_chains,
4454 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4455 CFG_11AG_NUM_TX_CHAIN_DEFAULT,
4456 CFG_11AG_NUM_TX_CHAIN_MIN,
4457 CFG_11AG_NUM_TX_CHAIN_MAX),
Ashish Kumar Dhanotiya9335d812017-06-30 16:57:20 +05304458
4459 REG_VARIABLE(CFG_ITO_REPEAT_COUNT_NAME, WLAN_PARAM_Integer,
4460 struct hdd_config, ito_repeat_count,
4461 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4462 CFG_ITO_REPEAT_COUNT_DEFAULT,
4463 CFG_ITO_REPEAT_COUNT_MIN,
4464 CFG_ITO_REPEAT_COUNT_MAX),
4465
Selvaraj, Sridhar57ce4df2017-05-29 18:30:49 +05304466 REG_VARIABLE(CFG_ROAM_DISALLOW_DURATION_NAME, WLAN_PARAM_Integer,
4467 struct hdd_config, disallow_duration,
4468 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4469 CFG_ROAM_DISALLOW_DURATION_DEFAULT,
4470 CFG_ROAM_DISALLOW_DURATION_MIN,
4471 CFG_ROAM_DISALLOW_DURATION_MAX),
4472
4473 REG_VARIABLE(CFG_ROAM_RSSI_CHANNEL_PENALIZATION_NAME,
4474 WLAN_PARAM_Integer, struct hdd_config,
4475 rssi_channel_penalization,
4476 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4477 CFG_ROAM_RSSI_CHANNEL_PENALIZATION_DEFAULT,
4478 CFG_ROAM_RSSI_CHANNEL_PENALIZATION_MIN,
4479 CFG_ROAM_RSSI_CHANNEL_PENALIZATION_MAX),
4480
4481 REG_VARIABLE(CFG_ROAM_NUM_DISALLOWED_APS_NAME, WLAN_PARAM_Integer,
4482 struct hdd_config, num_disallowed_aps,
4483 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4484 CFG_ROAM_NUM_DISALLOWED_APS_DEFAULT,
4485 CFG_ROAM_NUM_DISALLOWED_APS_MIN,
4486 CFG_ROAM_NUM_DISALLOWED_APS_MAX),
Arun Khandavallifae92942016-08-01 13:31:08 +05304487};
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004488
Amar Singhal5cccafe2017-02-15 12:42:58 -08004489
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004490/**
4491 * get_next_line() - find and locate the new line pointer
4492 * @str: pointer to string
4493 *
4494 * This function returns a pointer to the character after the occurence
4495 * of a new line character. It also modifies the original string by replacing
4496 * the '\n' character with the null character.
4497 *
4498 * Return: the pointer to the character at new line,
4499 * or NULL if no new line character was found
4500 */
4501static char *get_next_line(char *str)
4502{
4503 char c;
4504
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07004505 if (str == NULL || *str == '\0')
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004506 return NULL;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004507
4508 c = *str;
4509 while (c != '\n' && c != '\0' && c != 0xd) {
4510 str = str + 1;
4511 c = *str;
4512 }
4513
Jeff Johnson68755312017-02-10 11:46:55 -08004514 if (c == '\0')
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004515 return NULL;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004516
Jeff Johnson68755312017-02-10 11:46:55 -08004517 *str = '\0';
Jeff Johnson68755312017-02-10 11:46:55 -08004518 return str + 1;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004519}
4520
4521/** look for space. Ascii values to look are
4522 * 0x09 == horizontal tab
4523 * 0x0a == Newline ("\n")
4524 * 0x0b == vertical tab
4525 * 0x0c == Newpage or feed form.
4526 * 0x0d == carriage return (CR or "\r")
4527 * Null ('\0') should not considered as space.
4528 */
4529#define i_isspace(ch) (((ch) >= 0x09 && (ch) <= 0x0d) || (ch) == ' ')
4530
4531/**
4532 * i_trim() - trims any leading and trailing white spaces
4533 * @str: pointer to string
4534 *
4535 * Return: the pointer of the string
4536 */
4537static char *i_trim(char *str)
4538{
4539 char *ptr;
4540
4541 if (*str == '\0')
4542 return str;
4543
4544 /* Find the first non white-space */
4545 ptr = str;
4546 while (i_isspace(*ptr))
4547 ptr++;
4548
4549 if (*ptr == '\0')
4550 return str;
4551
4552 /* This is the new start of the string */
4553 str = ptr;
4554
4555 /* Find the last non white-space */
4556 ptr += strlen(ptr) - 1;
4557
4558 while (ptr != str && i_isspace(*ptr))
4559 ptr--;
4560
4561 /* Null terminate the following character */
4562 ptr[1] = '\0';
4563
4564 return str;
4565}
4566
4567/* Maximum length of the confgiuration name and value */
4568#define CFG_VALUE_MAX_LEN 256
4569#define CFG_ENTRY_MAX_LEN (32+CFG_VALUE_MAX_LEN)
4570
4571/**
4572 * hdd_cfg_get_config() - get the configuration content
4573 * @reg_table: pointer to configuration table
4574 * @cRegTableEntries: number of the configuration entries
4575 * @ini_struct: pointer to the hdd config knob
4576 * @pHddCtx: pointer to hdd context
4577 * @pBuf: buffer to store the configuration
4578 * @buflen: size of the buffer
4579 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05304580 * Return: QDF_STATUS_SUCCESS if the configuration and buffer size can carry
4581 * the content, otherwise QDF_STATUS_E_RESOURCES
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004582 */
Srinivas Girigowda2fb677c2017-03-25 15:35:34 -07004583static QDF_STATUS hdd_cfg_get_config(struct reg_table_entry *reg_table,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004584 unsigned long cRegTableEntries,
4585 uint8_t *ini_struct,
4586 hdd_context_t *pHddCtx, char *pBuf,
4587 int buflen)
4588{
4589 unsigned int idx;
Srinivas Girigowda2fb677c2017-03-25 15:35:34 -07004590 struct reg_table_entry *pRegEntry = reg_table;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004591 uint32_t value;
4592 char valueStr[CFG_VALUE_MAX_LEN];
4593 char configStr[CFG_ENTRY_MAX_LEN];
4594 char *fmt;
4595 void *pField;
Anurag Chouhan6d760662016-02-20 16:05:43 +05304596 struct qdf_mac_addr *pMacAddr;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004597 char *pCur = pBuf;
4598 int curlen;
4599
4600 /* start with an empty string */
4601 *pCur = '\0';
4602
4603 for (idx = 0; idx < cRegTableEntries; idx++, pRegEntry++) {
4604 pField = ini_struct + pRegEntry->VarOffset;
4605
4606 if ((WLAN_PARAM_Integer == pRegEntry->RegType) ||
4607 (WLAN_PARAM_SignedInteger == pRegEntry->RegType) ||
4608 (WLAN_PARAM_HexInteger == pRegEntry->RegType)) {
4609 value = 0;
Vidyullatha Kanchanapally53241c42017-04-13 19:16:24 +05304610
4611 if ((pRegEntry->VarSize > sizeof(value)) ||
4612 (pRegEntry->VarSize == 0)) {
4613 pr_warn("Invalid length of %s: %d",
4614 pRegEntry->RegName, pRegEntry->VarSize);
4615 continue;
4616 }
4617
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004618 memcpy(&value, pField, pRegEntry->VarSize);
4619 if (WLAN_PARAM_HexInteger == pRegEntry->RegType) {
4620 fmt = "%x";
4621 } else if (WLAN_PARAM_SignedInteger ==
4622 pRegEntry->RegType) {
4623 fmt = "%d";
Vidyullatha Kanchanapally53241c42017-04-13 19:16:24 +05304624 value = sign_extend32(
4625 value,
4626 pRegEntry->VarSize * 8 - 1);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004627 } else {
4628 fmt = "%u";
4629 }
4630 snprintf(valueStr, CFG_VALUE_MAX_LEN, fmt, value);
4631 } else if (WLAN_PARAM_String == pRegEntry->RegType) {
4632 snprintf(valueStr, CFG_VALUE_MAX_LEN, "%s",
4633 (char *)pField);
4634 } else if (WLAN_PARAM_MacAddr == pRegEntry->RegType) {
Anurag Chouhan6d760662016-02-20 16:05:43 +05304635 pMacAddr = (struct qdf_mac_addr *) pField;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004636 snprintf(valueStr, CFG_VALUE_MAX_LEN,
4637 "%02x:%02x:%02x:%02x:%02x:%02x",
4638 pMacAddr->bytes[0],
4639 pMacAddr->bytes[1],
4640 pMacAddr->bytes[2],
4641 pMacAddr->bytes[3],
4642 pMacAddr->bytes[4], pMacAddr->bytes[5]);
4643 } else {
4644 snprintf(valueStr, CFG_VALUE_MAX_LEN, "(unhandled)");
4645 }
4646 curlen = scnprintf(configStr, CFG_ENTRY_MAX_LEN,
4647 "%s=[%s]%s\n",
4648 pRegEntry->RegName,
4649 valueStr,
4650 test_bit(idx,
4651 (void *)&pHddCtx->config->
4652 bExplicitCfg) ? "*" : "");
4653
4654 /* Ideally we want to return the config to the application,
4655 * however the config is too big so we just printk() for now
4656 */
4657#ifdef RETURN_IN_BUFFER
Hanumanth Reddy Pothulaadf163e2016-09-07 15:11:58 +05304658 if (curlen < buflen) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004659 /* copy string + '\0' */
4660 memcpy(pCur, configStr, curlen + 1);
4661
4662 /* account for addition; */
4663 pCur += curlen;
4664 buflen -= curlen;
4665 } else {
4666 /* buffer space exhausted, return what we have */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05304667 return QDF_STATUS_E_RESOURCES;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004668 }
4669#else
4670 printk(KERN_INFO "%s", configStr);
4671#endif /* RETURN_IN_BUFFER */
4672
4673 }
4674
4675#ifndef RETURN_IN_BUFFER
4676 /* notify application that output is in system log */
4677 snprintf(pCur, buflen, "WLAN configuration written to system log");
4678#endif /* RETURN_IN_BUFFER */
4679
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05304680 return QDF_STATUS_SUCCESS;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004681}
4682
4683/** struct tCfgIniEntry - ini configuration entry
4684 *
4685 * @name: name of the entry
4686 * @value: value of the entry
4687 */
4688typedef struct {
4689 char *name;
4690 char *value;
4691} tCfgIniEntry;
4692
4693/**
4694 * find_cfg_item() - find the configuration item
4695 * @iniTable: pointer to configuration table
4696 * @entries: number fo the configuration entries
4697 * @name: the interested configuration to find
4698 * @value: the value to read back
4699 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05304700 * Return: QDF_STATUS_SUCCESS if the interested configuration is found,
4701 * otherwise QDF_STATUS_E_FAILURE
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004702 */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05304703static QDF_STATUS find_cfg_item(tCfgIniEntry *iniTable, unsigned long entries,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004704 char *name, char **value)
4705{
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05304706 QDF_STATUS status = QDF_STATUS_E_FAILURE;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004707 unsigned long i;
4708
4709 for (i = 0; i < entries; i++) {
4710 if (strcmp(iniTable[i].name, name) == 0) {
4711 *value = iniTable[i].value;
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07004712 hdd_debug("Found %s entry for Name=[%s] Value=[%s] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004713 WLAN_INI_FILE, name, *value);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05304714 return QDF_STATUS_SUCCESS;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004715 }
4716 }
4717
4718 return status;
4719}
4720
4721/**
4722 * parse_hex_digit() - conversion to hex value
4723 * @c: the character to convert
4724 *
4725 * Return: the hex value, otherwise 0
4726 */
4727static int parse_hex_digit(char c)
4728{
4729 if (c >= '0' && c <= '9')
4730 return c - '0';
4731 if (c >= 'a' && c <= 'f')
4732 return c - 'a' + 10;
4733 if (c >= 'A' && c <= 'F')
4734 return c - 'A' + 10;
4735
4736 return 0;
4737}
4738
4739/**
4740 * update_mac_from_string() - convert string to 6 bytes mac address
4741 * @pHddCtx: the pointer to hdd context
4742 * @macTable: the macTable to carry the conversion
4743 * @num: number of the interface
4744 *
4745 * 00AA00BB00CC -> 0x00 0xAA 0x00 0xBB 0x00 0xCC
4746 *
4747 * Return: None
4748 */
4749static void update_mac_from_string(hdd_context_t *pHddCtx,
4750 tCfgIniEntry *macTable, int num)
4751{
4752 int i = 0, j = 0, res = 0;
4753 char *candidate = NULL;
Anurag Chouhan6d760662016-02-20 16:05:43 +05304754 struct qdf_mac_addr macaddr[QDF_MAX_CONCURRENCY_PERSONA];
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004755
4756 memset(macaddr, 0, sizeof(macaddr));
4757
4758 for (i = 0; i < num; i++) {
4759 candidate = macTable[i].value;
Anurag Chouhan6d760662016-02-20 16:05:43 +05304760 for (j = 0; j < QDF_MAC_ADDR_SIZE; j++) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004761 res =
4762 hex2bin(&macaddr[i].bytes[j], &candidate[(j << 1)],
4763 1);
4764 if (res < 0)
4765 break;
4766 }
Anurag Chouhanc5548422016-02-24 18:33:27 +05304767 if (res == 0 && !qdf_is_macaddr_zero(&macaddr[i])) {
Anurag Chouhan600c3a02016-03-01 10:33:54 +05304768 qdf_mem_copy((uint8_t *) &pHddCtx->config->
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004769 intfMacAddr[i].bytes[0],
4770 (uint8_t *) &macaddr[i].bytes[0],
Anurag Chouhan6d760662016-02-20 16:05:43 +05304771 QDF_MAC_ADDR_SIZE);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004772 }
4773 }
4774}
4775
4776/**
4777 * hdd_apply_cfg_ini() - apply the ini configuration file
4778 * @pHddCtx: the pointer to hdd context
4779 * @iniTable: pointer to configuration table
4780 * @entries: number fo the configuration entries
4781 * It overwrites the MAC address if config file exist.
4782 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05304783 * Return: QDF_STATUS_SUCCESS if the ini configuration file is correctly parsed,
4784 * otherwise QDF_STATUS_E_INVAL
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004785 */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05304786static QDF_STATUS hdd_apply_cfg_ini(hdd_context_t *pHddCtx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004787 tCfgIniEntry *iniTable,
4788 unsigned long entries)
4789{
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05304790 QDF_STATUS match_status = QDF_STATUS_E_FAILURE;
4791 QDF_STATUS ret_status = QDF_STATUS_SUCCESS;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004792 unsigned int idx;
4793 void *pField;
4794 char *value_str = NULL;
4795 unsigned long len_value_str;
4796 char *candidate;
4797 uint32_t value;
4798 int32_t svalue;
4799 void *pStructBase = pHddCtx->config;
Srinivas Girigowda2fb677c2017-03-25 15:35:34 -07004800 struct reg_table_entry *pRegEntry = g_registry_table;
Anurag Chouhan6d760662016-02-20 16:05:43 +05304801 unsigned long cRegTableEntries = QDF_ARRAY_SIZE(g_registry_table);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004802 uint32_t cbOutString;
4803 int i;
4804 int rv;
4805
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004806 if (MAX_CFG_INI_ITEMS < cRegTableEntries) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08004807 hdd_err("MAX_CFG_INI_ITEMS too small, must be at least %ld",
Srinivas Girigowdaba3091c2015-11-16 17:18:40 -08004808 cRegTableEntries);
4809 WARN_ON(1);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004810 }
4811
4812 for (idx = 0; idx < cRegTableEntries; idx++, pRegEntry++) {
4813 /* Calculate the address of the destination field in the structure. */
4814 pField = ((uint8_t *) pStructBase) + pRegEntry->VarOffset;
4815
4816 match_status =
4817 find_cfg_item(iniTable, entries, pRegEntry->RegName,
4818 &value_str);
4819
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05304820 if ((match_status != QDF_STATUS_SUCCESS)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004821 && (pRegEntry->Flags & VAR_FLAGS_REQUIRED)) {
4822 /* If we could not read the cfg item and it is required, this is an error. */
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08004823 hdd_err("Failed to read required config parameter %s", pRegEntry->RegName);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05304824 ret_status = QDF_STATUS_E_FAILURE;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004825 break;
4826 }
4827
4828 if ((WLAN_PARAM_Integer == pRegEntry->RegType) ||
4829 (WLAN_PARAM_HexInteger == pRegEntry->RegType)) {
4830 /* If successfully read from the registry, use the value read.
4831 * If not, use the default value.
4832 */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05304833 if (match_status == QDF_STATUS_SUCCESS
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004834 && (WLAN_PARAM_Integer == pRegEntry->RegType)) {
4835 rv = kstrtou32(value_str, 10, &value);
4836 if (rv < 0) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07004837 hdd_warn("Reg Parameter %s invalid. Enforcing default", pRegEntry->RegName);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004838 value = pRegEntry->VarDefault;
4839 }
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05304840 } else if (match_status == QDF_STATUS_SUCCESS
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004841 && (WLAN_PARAM_HexInteger ==
4842 pRegEntry->RegType)) {
4843 rv = kstrtou32(value_str, 16, &value);
4844 if (rv < 0) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07004845 hdd_warn("Reg paramter %s invalid. Enforcing default", pRegEntry->RegName);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004846 value = pRegEntry->VarDefault;
4847 }
4848 } else {
4849 value = pRegEntry->VarDefault;
4850 }
4851
Srinivas Girigowdad1b92582017-03-02 11:47:47 -08004852 /* Only if the parameter is set in the ini file, do the range check here */
4853 if (match_status == QDF_STATUS_SUCCESS &&
4854 pRegEntry->Flags & VAR_FLAGS_RANGE_CHECK) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004855 if (value > pRegEntry->VarMax) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07004856 hdd_warn("Reg Parameter %s > allowed Maximum [%u > %lu]. Enforcing Maximum", pRegEntry->RegName,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004857 value, pRegEntry->VarMax);
4858 value = pRegEntry->VarMax;
4859 }
4860
4861 if (value < pRegEntry->VarMin) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07004862 hdd_warn("Reg Parameter %s < allowed Minimum [%u < %lu]. Enforcing Minimum", pRegEntry->RegName,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004863 value, pRegEntry->VarMin);
4864 value = pRegEntry->VarMin;
4865 }
4866 }
Srinivas Girigowdad1b92582017-03-02 11:47:47 -08004867 /* Only if the parameter is set in the ini file, do the range check here */
4868 else if (match_status == QDF_STATUS_SUCCESS &&
4869 pRegEntry->Flags &
4870 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004871 if (value > pRegEntry->VarMax) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07004872 hdd_warn("Reg Parameter %s > allowed Maximum [%u > %lu]. Enforcing Default: %lu", pRegEntry->RegName,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004873 value, pRegEntry->VarMax,
4874 pRegEntry->VarDefault);
4875 value = pRegEntry->VarDefault;
4876 }
4877
4878 if (value < pRegEntry->VarMin) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07004879 hdd_warn("Reg Parameter %s < allowed Minimum [%u < %lu]. Enforcing Default: %lu", pRegEntry->RegName,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004880 value, pRegEntry->VarMin,
4881 pRegEntry->VarDefault);
4882 value = pRegEntry->VarDefault;
4883 }
4884 }
4885 /* Move the variable into the output field. */
4886 memcpy(pField, &value, pRegEntry->VarSize);
4887 } else if (WLAN_PARAM_SignedInteger == pRegEntry->RegType) {
4888 /* If successfully read from the registry, use the value read.
4889 * If not, use the default value.
4890 */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05304891 if (QDF_STATUS_SUCCESS == match_status) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004892 rv = kstrtos32(value_str, 10, &svalue);
4893 if (rv < 0) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08004894 hdd_warn("Reg Parameter %s invalid. Enforcing Default", pRegEntry->RegName);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004895 svalue =
4896 (int32_t) pRegEntry->VarDefault;
4897 }
4898 } else {
4899 svalue = (int32_t) pRegEntry->VarDefault;
4900 }
4901
Srinivas Girigowdad1b92582017-03-02 11:47:47 -08004902 /* Only if the parameter is set in the ini file, do the range check here */
4903 if (match_status == QDF_STATUS_SUCCESS &&
4904 pRegEntry->Flags & VAR_FLAGS_RANGE_CHECK) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004905 if (svalue > (int32_t) pRegEntry->VarMax) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07004906 hdd_warn("Reg Parameter %s > allowed Maximum "
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08004907 "[%d > %d]. Enforcing Maximum", pRegEntry->RegName,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004908 svalue, (int)pRegEntry->VarMax);
4909 svalue = (int32_t) pRegEntry->VarMax;
4910 }
4911
4912 if (svalue < (int32_t) pRegEntry->VarMin) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07004913 hdd_warn("Reg Parameter %s < allowed Minimum "
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08004914 "[%d < %d]. Enforcing Minimum", pRegEntry->RegName,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004915 svalue, (int)pRegEntry->VarMin);
4916 svalue = (int32_t) pRegEntry->VarMin;
4917 }
4918 }
Srinivas Girigowdad1b92582017-03-02 11:47:47 -08004919 /* Only if the parameter is set in the ini file, do the range check here */
4920 else if (match_status == QDF_STATUS_SUCCESS &&
4921 pRegEntry->Flags &
4922 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004923 if (svalue > (int32_t) pRegEntry->VarMax) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07004924 hdd_warn("Reg Parameter %s > allowed Maximum "
4925 "[%d > %d]. Enforcing Default: %d", pRegEntry->RegName,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004926 svalue, (int)pRegEntry->VarMax,
4927 (int)pRegEntry->VarDefault);
4928 svalue =
4929 (int32_t) pRegEntry->VarDefault;
4930 }
4931
4932 if (svalue < (int32_t) pRegEntry->VarMin) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07004933 hdd_warn("Reg Parameter %s < allowed Minimum "
4934 "[%d < %d]. Enforcing Default: %d", pRegEntry->RegName,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004935 svalue, (int)pRegEntry->VarMin,
4936 (int)pRegEntry->VarDefault);
4937 svalue = pRegEntry->VarDefault;
4938 }
4939 }
4940 /* Move the variable into the output field. */
4941 memcpy(pField, &svalue, pRegEntry->VarSize);
4942 }
4943 /* Handle string parameters */
4944 else if (WLAN_PARAM_String == pRegEntry->RegType) {
4945#ifdef WLAN_CFG_DEBUG
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07004946 hdd_debug("RegName = %s, VarOffset %u VarSize %u VarDefault %s",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004947 pRegEntry->RegName, pRegEntry->VarOffset,
4948 pRegEntry->VarSize,
4949 (char *)pRegEntry->VarDefault);
4950#endif
4951
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05304952 if (match_status == QDF_STATUS_SUCCESS) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004953 len_value_str = strlen(value_str);
4954
4955 if (len_value_str > (pRegEntry->VarSize - 1)) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08004956 hdd_err("Invalid Value=[%s] specified for Name=[%s] in %s", value_str,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004957 pRegEntry->RegName,
4958 WLAN_INI_FILE);
4959 cbOutString =
Srinivas Girigowda2fb677c2017-03-25 15:35:34 -07004960 QDF_MIN(strlen
4961 ((char *)pRegEntry->
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004962 VarDefault),
4963 pRegEntry->VarSize - 1);
4964 memcpy(pField,
4965 (void *)(pRegEntry->VarDefault),
4966 cbOutString);
4967 ((uint8_t *) pField)[cbOutString] =
4968 '\0';
4969 } else {
4970 memcpy(pField, (void *)(value_str),
4971 len_value_str);
4972 ((uint8_t *) pField)[len_value_str] =
4973 '\0';
4974 }
4975 } else {
4976 /* Failed to read the string parameter from the registry. Use the default. */
4977 cbOutString =
Srinivas Girigowda2fb677c2017-03-25 15:35:34 -07004978 QDF_MIN(strlen((char *)pRegEntry->VarDefault),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004979 pRegEntry->VarSize - 1);
4980 memcpy(pField, (void *)(pRegEntry->VarDefault),
4981 cbOutString);
4982 ((uint8_t *) pField)[cbOutString] = '\0';
4983 }
4984 } else if (WLAN_PARAM_MacAddr == pRegEntry->RegType) {
Anurag Chouhan6d760662016-02-20 16:05:43 +05304985 if (pRegEntry->VarSize != QDF_MAC_ADDR_SIZE) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07004986 hdd_warn("Invalid VarSize %u for Name=[%s]", pRegEntry->VarSize,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004987 pRegEntry->RegName);
4988 continue;
4989 }
4990 candidate = (char *)pRegEntry->VarDefault;
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05304991 if (match_status == QDF_STATUS_SUCCESS) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004992 len_value_str = strlen(value_str);
Anurag Chouhan6d760662016-02-20 16:05:43 +05304993 if (len_value_str != (QDF_MAC_ADDR_SIZE * 2)) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08004994 hdd_err("Invalid MAC addr [%s] specified for Name=[%s] in %s", value_str,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004995 pRegEntry->RegName,
4996 WLAN_INI_FILE);
4997 } else
4998 candidate = value_str;
4999 }
5000 /* parse the string and store it in the byte array */
Anurag Chouhan6d760662016-02-20 16:05:43 +05305001 for (i = 0; i < QDF_MAC_ADDR_SIZE; i++) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005002 ((char *)pField)[i] =
5003 (char)(parse_hex_digit(candidate[i * 2]) *
5004 16 +
5005 parse_hex_digit(candidate[i * 2 + 1]));
5006 }
5007 } else {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005008 hdd_warn("Unknown param type for name[%s] in registry table", pRegEntry->RegName);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005009 }
5010
5011 /* did we successfully parse a cfg item for this parameter? */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305012 if ((match_status == QDF_STATUS_SUCCESS) &&
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005013 (idx < MAX_CFG_INI_ITEMS)) {
5014 set_bit(idx, (void *)&pHddCtx->config->bExplicitCfg);
5015 }
5016 }
5017
5018 return ret_status;
5019}
5020
5021/**
5022 * hdd_execute_config_command() - executes an arbitrary configuration command
5023 * @reg_table: the pointer to configuration table
5024 * @tableSize: the size of the configuration table
5025 * @ini_struct: pointer to the hdd config knob
5026 * @pHddCtx: the pointer to hdd context
5027 * @command: the command to run
5028 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305029 * Return: QDF_STATUS_SUCCESS if the command is found and able to execute,
5030 * otherwise the appropriate QDF_STATUS will be returned
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005031 */
Srinivas Girigowda2fb677c2017-03-25 15:35:34 -07005032static QDF_STATUS hdd_execute_config_command(struct reg_table_entry *reg_table,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005033 unsigned long tableSize,
5034 uint8_t *ini_struct,
5035 hdd_context_t *pHddCtx,
5036 char *command)
5037{
Srinivas Girigowda2fb677c2017-03-25 15:35:34 -07005038 struct reg_table_entry *pRegEntry;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005039 char *clone;
5040 char *pCmd;
5041 void *pField;
5042 char *name;
5043 char *value_str;
5044 uint32_t value;
5045 int32_t svalue;
5046 size_t len_value_str;
5047 unsigned int idx;
5048 unsigned int i;
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305049 QDF_STATUS vstatus;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005050 int rv;
5051
5052 /* assume failure until proven otherwise */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305053 vstatus = QDF_STATUS_E_FAILURE;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005054
5055 /* clone the command so that we can manipulate it */
5056 clone = kstrdup(command, GFP_ATOMIC);
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07005057 if (NULL == clone)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005058 return vstatus;
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07005059
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005060 /* 'clone' will point to the beginning of the string so it can be freed
5061 * 'pCmd' will be used to walk/parse the command
5062 */
5063 pCmd = clone;
5064
5065 /* get rid of leading/trailing whitespace */
5066 pCmd = i_trim(pCmd);
5067 if ('\0' == *pCmd) {
5068 /* only whitespace */
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005069 hdd_err("invalid command, only whitespace:[%s]", command);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005070 goto done;
5071 }
5072 /* parse the <name> = <value> */
5073 name = pCmd;
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07005074 while (('=' != *pCmd) && ('\0' != *pCmd))
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005075 pCmd++;
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07005076
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005077 if ('\0' == *pCmd) {
5078 /* did not find '=' */
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005079 hdd_err("invalid command, no '=':[%s]", command);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005080 goto done;
5081 }
5082 /* replace '=' with NUL to terminate the <name> */
5083 *pCmd++ = '\0';
5084 name = i_trim(name);
5085 if ('\0' == *name) {
5086 /* did not find a name */
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005087 hdd_err("invalid command, no <name>:[%s]", command);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005088 goto done;
5089 }
5090
5091 value_str = i_trim(pCmd);
5092 if ('\0' == *value_str) {
5093 /* did not find a value */
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005094 hdd_err("invalid command, no <value>:[%s]", command);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005095 goto done;
5096 }
5097 /* lookup the configuration item */
5098 for (idx = 0; idx < tableSize; idx++) {
5099 if (0 == strcmp(name, reg_table[idx].RegName)) {
5100 /* found a match */
5101 break;
5102 }
5103 }
5104 if (tableSize == idx) {
5105 /* did not match the name */
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005106 hdd_err("invalid command, unknown configuration item:[%s]", command);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005107 goto done;
5108 }
5109
5110 pRegEntry = &reg_table[idx];
5111 if (!(pRegEntry->Flags & VAR_FLAGS_DYNAMIC_CFG)) {
5112 /* does not support dynamic configuration */
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005113 hdd_err("Global_Registry_Table. %s does not support "
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005114 "dynamic configuration", name);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305115 vstatus = QDF_STATUS_E_PERM;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005116 goto done;
5117 }
5118
5119 pField = ini_struct + pRegEntry->VarOffset;
5120
5121 switch (pRegEntry->RegType) {
5122 case WLAN_PARAM_Integer:
5123 rv = kstrtou32(value_str, 10, &value);
5124 if (rv < 0)
5125 goto done;
5126 if (value < pRegEntry->VarMin) {
5127 /* out of range */
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005128 hdd_err("Invalid command, value %u < min value %lu", value, pRegEntry->VarMin);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005129 goto done;
5130 }
5131 if (value > pRegEntry->VarMax) {
5132 /* out of range */
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005133 hdd_err("Invalid command, value %u > max value %lu", value, pRegEntry->VarMax);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005134 goto done;
5135 }
5136 memcpy(pField, &value, pRegEntry->VarSize);
5137 break;
5138
5139 case WLAN_PARAM_HexInteger:
5140 rv = kstrtou32(value_str, 16, &value);
5141 if (rv < 0)
5142 goto done;
5143 if (value < pRegEntry->VarMin) {
5144 /* out of range */
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005145 hdd_err("Invalid command, value %x < min value %lx", value, pRegEntry->VarMin);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005146 goto done;
5147 }
5148 if (value > pRegEntry->VarMax) {
5149 /* out of range */
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005150 hdd_err("Invalid command, value %x > max value %lx", value, pRegEntry->VarMax);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005151 goto done;
5152 }
5153 memcpy(pField, &value, pRegEntry->VarSize);
5154 break;
5155
5156 case WLAN_PARAM_SignedInteger:
5157 rv = kstrtos32(value_str, 10, &svalue);
5158 if (rv < 0)
5159 goto done;
5160 if (svalue < (int32_t) pRegEntry->VarMin) {
5161 /* out of range */
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005162 hdd_err("Invalid command, value %d < min value %d", svalue, (int)pRegEntry->VarMin);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005163 goto done;
5164 }
5165 if (svalue > (int32_t) pRegEntry->VarMax) {
5166 /* out of range */
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005167 hdd_err("Invalid command, value %d > max value %d", svalue, (int)pRegEntry->VarMax);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005168 goto done;
5169 }
5170 memcpy(pField, &svalue, pRegEntry->VarSize);
5171 break;
5172
5173 case WLAN_PARAM_String:
5174 len_value_str = strlen(value_str);
5175 if (len_value_str > (pRegEntry->VarSize - 1)) {
5176 /* too big */
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005177 hdd_err("Invalid command, string [%s] length "
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005178 "%zu exceeds maximum length %u", value_str,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005179 len_value_str, (pRegEntry->VarSize - 1));
5180 goto done;
5181 }
5182 /* copy string plus NUL */
5183 memcpy(pField, value_str, (len_value_str + 1));
5184 break;
5185
5186 case WLAN_PARAM_MacAddr:
5187 len_value_str = strlen(value_str);
Anurag Chouhan6d760662016-02-20 16:05:43 +05305188 if (len_value_str != (QDF_MAC_ADDR_SIZE * 2)) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005189 /* out of range */
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005190 hdd_err("Invalid command, MAC address [%s] length "
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005191 "%zu is not expected length %u", value_str,
Anurag Chouhan6d760662016-02-20 16:05:43 +05305192 len_value_str, (QDF_MAC_ADDR_SIZE * 2));
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005193 goto done;
5194 }
5195 /* parse the string and store it in the byte array */
Anurag Chouhan6d760662016-02-20 16:05:43 +05305196 for (i = 0; i < QDF_MAC_ADDR_SIZE; i++) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005197 ((char *)pField)[i] = (char)
5198 ((parse_hex_digit(value_str[(i * 2)]) * 16) +
5199 parse_hex_digit(value_str[(i * 2) + 1]));
5200 }
5201 break;
5202
5203 default:
5204 goto done;
5205 }
5206
5207 /* if we get here, we had a successful modification */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305208 vstatus = QDF_STATUS_SUCCESS;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005209
5210 /* config table has been modified, is there a notifier? */
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07005211 if (NULL != pRegEntry->pfnDynamicnotify)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005212 (pRegEntry->pfnDynamicnotify)(pHddCtx, pRegEntry->notifyId);
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07005213
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005214 /* note that this item was explicitly configured */
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07005215 if (idx < MAX_CFG_INI_ITEMS)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005216 set_bit(idx, (void *)&pHddCtx->config->bExplicitCfg);
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07005217
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005218done:
5219 kfree(clone);
5220 return vstatus;
5221}
5222
5223/**
5224 * hdd_set_power_save_offload_config() - set power save offload configuration
5225 * @pHddCtx: the pointer to hdd context
5226 *
5227 * Return: none
5228 */
5229static void hdd_set_power_save_offload_config(hdd_context_t *pHddCtx)
5230{
5231 struct hdd_config *pConfig = pHddCtx->config;
5232 uint32_t listenInterval = 0;
5233
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07005234 if (strcmp(pConfig->PowerUsageControl, "Min") == 0)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005235 listenInterval = pConfig->nBmpsMinListenInterval;
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07005236 else if (strcmp(pConfig->PowerUsageControl, "Max") == 0)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005237 listenInterval = pConfig->nBmpsMaxListenInterval;
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07005238 else if (strcmp(pConfig->PowerUsageControl, "Mod") == 0)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005239 listenInterval = pConfig->nBmpsModListenInterval;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005240
5241 /*
5242 * Based on Mode Set the LI
5243 * Otherwise default LI value of 1 will
5244 * be taken
5245 */
5246 if (listenInterval) {
5247 /*
5248 * setcfg for listenInterval.
5249 * Make sure CFG is updated because PE reads this
5250 * from CFG at the time of assoc or reassoc
5251 */
5252 sme_cfg_set_int(pHddCtx->hHal, WNI_CFG_LISTEN_INTERVAL,
5253 listenInterval);
5254 }
5255
5256}
5257
Houston Hoffmanc7c69f02016-03-24 22:45:52 -07005258#ifdef FEATURE_RUNTIME_PM
5259static void hdd_cfg_print_runtime_pm(hdd_context_t *hdd_ctx)
5260{
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005261 hdd_debug("Name = [gRuntimePM] Value = [%u] ",
Houston Hoffmanc7c69f02016-03-24 22:45:52 -07005262 hdd_ctx->config->runtime_pm);
5263
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005264 hdd_debug("Name = [gRuntimePMDelay] Value = [%u] ",
Houston Hoffmanc7c69f02016-03-24 22:45:52 -07005265 hdd_ctx->config->runtime_pm_delay);
5266}
5267#else
5268static void hdd_cfg_print_runtime_pm(hdd_context_t *hdd_ctx)
5269{
5270}
5271#endif
5272
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005273/**
Kapil Gupta5cda2252016-12-29 18:44:26 +05305274 * hdd_per_roam_print_ini_config()- Print PER roam specific INI configuration
5275 * @hdd_ctx: handle to hdd context
5276 *
5277 * Return: None
5278 */
5279static void hdd_per_roam_print_ini_config(hdd_context_t *hdd_ctx)
5280{
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005281 hdd_debug("Name = [%s] Value = [%u]",
Kapil Gupta5cda2252016-12-29 18:44:26 +05305282 CFG_PER_ROAM_ENABLE_NAME,
5283 hdd_ctx->config->is_per_roam_enabled);
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005284 hdd_debug("Name = [%s] Value = [%u]",
Kapil Gupta5cda2252016-12-29 18:44:26 +05305285 CFG_PER_ROAM_CONFIG_HIGH_RATE_TH_NAME,
5286 hdd_ctx->config->per_roam_high_rate_threshold);
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005287 hdd_debug("Name = [%s] Value = [%u]",
Kapil Gupta5cda2252016-12-29 18:44:26 +05305288 CFG_PER_ROAM_CONFIG_LOW_RATE_TH_NAME,
5289 hdd_ctx->config->per_roam_low_rate_threshold);
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005290 hdd_debug("Name = [%s] Value = [%u]",
Kapil Gupta5cda2252016-12-29 18:44:26 +05305291 CFG_PER_ROAM_CONFIG_RATE_TH_PERCENT_NAME,
5292 hdd_ctx->config->per_roam_th_percent);
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005293 hdd_debug("Name = [%s] Value = [%u]",
Kapil Gupta5cda2252016-12-29 18:44:26 +05305294 CFG_PER_ROAM_REST_TIME_NAME,
5295 hdd_ctx->config->per_roam_rest_time);
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005296 hdd_debug("Name = [%s] Value = [%u]",
Kapil Gupta957827b2017-02-13 15:47:04 +05305297 CFG_PER_ROAM_MONITOR_TIME,
5298 hdd_ctx->config->per_roam_mon_time);
Selvaraj, Sridhar0641fab2017-05-17 16:02:00 +05305299 hdd_debug("Name = [%s] Value = [%u]",
5300 CFG_PER_ROAM_MIN_CANDIDATE_RSSI,
5301 hdd_ctx->config->min_candidate_rssi);
Kapil Gupta5cda2252016-12-29 18:44:26 +05305302}
5303
5304/**
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005305 * hdd_cfg_print() - print the hdd configuration
5306 * @iniTable: pointer to hdd context
5307 *
5308 * Return: None
5309 */
5310void hdd_cfg_print(hdd_context_t *pHddCtx)
5311{
5312 int i;
5313
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005314 hdd_info("*********Config values in HDD Adapter*******");
5315 hdd_info("Name = [RTSThreshold] Value = %u",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005316 pHddCtx->config->RTSThreshold);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005317 hdd_info("Name = [OperatingChannel] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005318 pHddCtx->config->OperatingChannel);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005319 hdd_info("Name = [PowerUsageControl] Value = [%s]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005320 pHddCtx->config->PowerUsageControl);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005321 hdd_info("Name = [fIsImpsEnabled] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005322 pHddCtx->config->fIsImpsEnabled);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005323 hdd_info("Name = [nVccRssiTrigger] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005324 pHddCtx->config->nVccRssiTrigger);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005325 hdd_info("Name = [gIbssBssid] Value =[" MAC_ADDRESS_STR "]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005326 MAC_ADDR_ARRAY(pHddCtx->config->IbssBssid.bytes));
5327
Anurag Chouhan6d760662016-02-20 16:05:43 +05305328 for (i = 0; i < QDF_MAX_CONCURRENCY_PERSONA; i++) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005329 hdd_info("Name = [Intf%dMacAddress] Value =[" MAC_ADDRESS_STR "]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005330 i, MAC_ADDR_ARRAY(pHddCtx->config->intfMacAddr[i].bytes));
5331 }
5332
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005333 hdd_info("Name = [gApEnableUapsd] value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005334 pHddCtx->config->apUapsdEnabled);
5335
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005336 hdd_info("Name = [gEnableApProt] value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005337 pHddCtx->config->apProtEnabled);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005338 hdd_info("Name = [gAPAutoShutOff] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005339 pHddCtx->config->nAPAutoShutOff);
5340#ifdef FEATURE_WLAN_MCC_TO_SCC_SWITCH
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005341 hdd_info("Name = [gWlanMccToSccSwitchMode] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005342 pHddCtx->config->WlanMccToSccSwitchMode);
5343#endif
5344#ifdef FEATURE_WLAN_AUTO_SHUTDOWN
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005345 hdd_info("Name = [gWlanAutoShutdown] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005346 pHddCtx->config->WlanAutoShutdown);
5347#endif
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005348 hdd_info("Name = [gApProtection] value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005349 pHddCtx->config->apProtection);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005350 hdd_info("Name = [gEnableApOBSSProt] value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005351 pHddCtx->config->apOBSSProtEnabled);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005352 hdd_info("Name = [%s] value = [%u]", CFG_FORCE_SAP_ACS,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005353 pHddCtx->config->force_sap_acs);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005354 hdd_info("Name = [%s] value = [%u]", CFG_FORCE_SAP_ACS_START_CH,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005355 pHddCtx->config->force_sap_acs_st_ch);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005356 hdd_info("Name = [%s] value = [%u]", CFG_FORCE_SAP_ACS_END_CH,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005357 pHddCtx->config->force_sap_acs_end_ch);
5358#ifdef FEATURE_AP_MCC_CH_AVOIDANCE
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005359 hdd_info("Name = [sap_channel_avoidance] value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005360 pHddCtx->config->sap_channel_avoidance);
5361#endif /* FEATURE_AP_MCC_CH_AVOIDANCE */
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005362 hdd_info("Name = [%s] value = [%u]", CFG_SAP_P2P_11AC_OVERRIDE_NAME,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005363 pHddCtx->config->sap_p2p_11ac_override);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005364 hdd_info("Name = [ChannelBondingMode] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005365 pHddCtx->config->nChannelBondingMode24GHz);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005366 hdd_info("Name = [ChannelBondingMode] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005367 pHddCtx->config->nChannelBondingMode5GHz);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005368 hdd_info("Name = [dot11Mode] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005369 pHddCtx->config->dot11Mode);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005370 hdd_info("Name = [WmmMode] Value = [%u] ", pHddCtx->config->WmmMode);
5371 hdd_info("Name = [UapsdMask] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005372 pHddCtx->config->UapsdMask);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005373 hdd_info("Name = [ImplicitQosIsEnabled] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005374 (int)pHddCtx->config->bImplicitQosEnabled);
5375
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005376 hdd_info("Name = [InfraUapsdVoSrvIntv] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005377 pHddCtx->config->InfraUapsdVoSrvIntv);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005378 hdd_info("Name = [InfraUapsdVoSuspIntv] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005379 pHddCtx->config->InfraUapsdVoSuspIntv);
5380
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005381 hdd_info("Name = [InfraUapsdViSrvIntv] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005382 pHddCtx->config->InfraUapsdViSrvIntv);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005383 hdd_info("Name = [InfraUapsdViSuspIntv] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005384 pHddCtx->config->InfraUapsdViSuspIntv);
5385
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005386 hdd_info("Name = [InfraUapsdBeSrvIntv] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005387 pHddCtx->config->InfraUapsdBeSrvIntv);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005388 hdd_info("Name = [InfraUapsdBeSuspIntv] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005389 pHddCtx->config->InfraUapsdBeSuspIntv);
5390
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005391 hdd_info("Name = [InfraUapsdBkSrvIntv] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005392 pHddCtx->config->InfraUapsdBkSrvIntv);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005393 hdd_info("Name = [InfraUapsdBkSuspIntv] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005394 pHddCtx->config->InfraUapsdBkSuspIntv);
5395#ifdef FEATURE_WLAN_ESE
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005396 hdd_info("Name = [InfraInactivityInterval] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005397 pHddCtx->config->InfraInactivityInterval);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005398 hdd_info("Name = [EseEnabled] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005399 pHddCtx->config->isEseIniFeatureEnabled);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005400 hdd_info("Name = [FastTransitionEnabled] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005401 pHddCtx->config->isFastTransitionEnabled);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005402 hdd_info("Name = [gTxPowerCap] Value = [%u] dBm ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005403 pHddCtx->config->nTxPowerCap);
5404#endif
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005405 hdd_info("Name = [gAllowTPCfromAP] Value = [%u] ",
Padma, Santhosh Kumar29df3622016-08-16 19:15:16 +05305406 pHddCtx->config->allow_tpc_from_ap);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005407 hdd_info("Name = [FastRoamEnabled] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005408 pHddCtx->config->isFastRoamIniFeatureEnabled);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005409 hdd_info("Name = [MAWCEnabled] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005410 pHddCtx->config->MAWCEnabled);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005411 hdd_info("Name = [RoamRssiDiff] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005412 pHddCtx->config->RoamRssiDiff);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005413 hdd_info("Name = [isWESModeEnabled] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005414 pHddCtx->config->isWESModeEnabled);
Deepak Dhamdhere828f1892017-02-09 11:51:19 -08005415 hdd_info("Name = [pmkidModes] Value = [0x%x] ",
5416 pHddCtx->config->pmkid_modes);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005417#ifdef FEATURE_WLAN_SCAN_PNO
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005418 hdd_info("Name = [configPNOScanSupport] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005419 pHddCtx->config->configPNOScanSupport);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005420 hdd_info("Name = [configPNOScanTimerRepeatValue] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005421 pHddCtx->config->configPNOScanTimerRepeatValue);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005422 hdd_info("Name = [gPNOSlowScanMultiplier] Value = [%u] ",
Srinivas Girigowdabdc98162015-09-17 11:06:07 -07005423 pHddCtx->config->pno_slow_scan_multiplier);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005424#endif
5425#ifdef FEATURE_WLAN_TDLS
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005426 hdd_info("Name = [fEnableTDLSSupport] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005427 pHddCtx->config->fEnableTDLSSupport);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005428 hdd_info("Name = [fEnableTDLSImplicitTrigger] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005429 pHddCtx->config->fEnableTDLSImplicitTrigger);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005430 hdd_info("Name = [fTDLSExternalControl] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005431 pHddCtx->config->fTDLSExternalControl);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005432 hdd_info("Name = [fTDLSUapsdMask] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005433 pHddCtx->config->fTDLSUapsdMask);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005434 hdd_info("Name = [fEnableTDLSBufferSta] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005435 pHddCtx->config->fEnableTDLSBufferSta);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005436 hdd_info("Name = [fEnableTDLSWmmMode] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005437 pHddCtx->config->fEnableTDLSWmmMode);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005438 hdd_info("Name = [enable_tdls_scan] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005439 pHddCtx->config->enable_tdls_scan);
5440#endif
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005441 hdd_info("Name = [InfraDirAcVo] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005442 pHddCtx->config->InfraDirAcVo);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005443 hdd_info("Name = [InfraNomMsduSizeAcVo] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005444 pHddCtx->config->InfraNomMsduSizeAcVo);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005445 hdd_info("Name = [InfraMeanDataRateAcVo] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005446 pHddCtx->config->InfraMeanDataRateAcVo);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005447 hdd_info("Name = [InfraMinPhyRateAcVo] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005448 pHddCtx->config->InfraMinPhyRateAcVo);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005449 hdd_info("Name = [InfraSbaAcVo] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005450 pHddCtx->config->InfraSbaAcVo);
5451
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005452 hdd_info("Name = [InfraDirAcVi] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005453 pHddCtx->config->InfraDirAcVi);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005454 hdd_info("Name = [InfraNomMsduSizeAcVi] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005455 pHddCtx->config->InfraNomMsduSizeAcVi);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005456 hdd_info("Name = [InfraMeanDataRateAcVi] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005457 pHddCtx->config->InfraMeanDataRateAcVi);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005458 hdd_info("Name = [InfraMinPhyRateAcVi] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005459 pHddCtx->config->InfraMinPhyRateAcVi);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005460 hdd_info("Name = [InfraSbaAcVi] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005461 pHddCtx->config->InfraSbaAcVi);
5462
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005463 hdd_info("Name = [InfraDirAcBe] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005464 pHddCtx->config->InfraDirAcBe);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005465 hdd_info("Name = [InfraNomMsduSizeAcBe] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005466 pHddCtx->config->InfraNomMsduSizeAcBe);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005467 hdd_info("Name = [InfraMeanDataRateAcBe] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005468 pHddCtx->config->InfraMeanDataRateAcBe);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005469 hdd_info("Name = [InfraMinPhyRateAcBe] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005470 pHddCtx->config->InfraMinPhyRateAcBe);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005471 hdd_info("Name = [InfraSbaAcBe] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005472 pHddCtx->config->InfraSbaAcBe);
5473
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005474 hdd_info("Name = [InfraDirAcBk] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005475 pHddCtx->config->InfraDirAcBk);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005476 hdd_info("Name = [InfraNomMsduSizeAcBk] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005477 pHddCtx->config->InfraNomMsduSizeAcBk);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005478 hdd_info("Name = [InfraMeanDataRateAcBk] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005479 pHddCtx->config->InfraMeanDataRateAcBk);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005480 hdd_info("Name = [InfraMinPhyRateAcBk] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005481 pHddCtx->config->InfraMinPhyRateAcBk);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005482 hdd_info("Name = [InfraSbaAcBk] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005483 pHddCtx->config->InfraSbaAcBk);
5484
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005485 hdd_info("Name = [DelayedTriggerFrmInt] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005486 pHddCtx->config->DelayedTriggerFrmInt);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005487 hdd_info("Name = [fhostArpOffload] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005488 pHddCtx->config->fhostArpOffload);
Dustin Brown1224e212017-05-12 14:02:12 -07005489 hdd_info("Name = [%s] Value = [%u]",
5490 CFG_HW_FILTER_MODE_NAME, pHddCtx->config->hw_filter_mode);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005491 hdd_info("Name = [ssdp] Value = [%u] ", pHddCtx->config->ssdp);
Houston Hoffmanc7c69f02016-03-24 22:45:52 -07005492 hdd_cfg_print_runtime_pm(pHddCtx);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005493#ifdef FEATURE_WLAN_RA_FILTERING
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005494 hdd_info("Name = [RArateLimitInterval] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005495 pHddCtx->config->RArateLimitInterval);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005496 hdd_info("Name = [IsRArateLimitEnabled] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005497 pHddCtx->config->IsRArateLimitEnabled);
5498#endif
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005499 hdd_info("Name = [fFTResourceReqSupported] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005500 pHddCtx->config->fFTResourceReqSupported);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005501
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005502 hdd_info("Name = [nNeighborLookupRssiThreshold] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005503 pHddCtx->config->nNeighborLookupRssiThreshold);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005504 hdd_info("Name = [delay_before_vdev_stop] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005505 pHddCtx->config->delay_before_vdev_stop);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005506 hdd_info("Name = [nOpportunisticThresholdDiff] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005507 pHddCtx->config->nOpportunisticThresholdDiff);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005508 hdd_info("Name = [nRoamRescanRssiDiff] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005509 pHddCtx->config->nRoamRescanRssiDiff);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005510 hdd_info("Name = [nNeighborScanMinChanTime] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005511 pHddCtx->config->nNeighborScanMinChanTime);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005512 hdd_info("Name = [nNeighborScanMaxChanTime] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005513 pHddCtx->config->nNeighborScanMaxChanTime);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005514 hdd_info("Name = [nMaxNeighborRetries] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005515 pHddCtx->config->nMaxNeighborReqTries);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005516 hdd_info("Name = [nNeighborScanPeriod] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005517 pHddCtx->config->nNeighborScanPeriod);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005518 hdd_info("Name = [nNeighborScanResultsRefreshPeriod] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005519 pHddCtx->config->nNeighborResultsRefreshPeriod);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005520 hdd_info("Name = [nEmptyScanRefreshPeriod] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005521 pHddCtx->config->nEmptyScanRefreshPeriod);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005522 hdd_info("Name = [nRoamBmissFirstBcnt] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005523 pHddCtx->config->nRoamBmissFirstBcnt);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005524 hdd_info("Name = [nRoamBmissFinalBcnt] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005525 pHddCtx->config->nRoamBmissFinalBcnt);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005526 hdd_info("Name = [nRoamBeaconRssiWeight] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005527 pHddCtx->config->nRoamBeaconRssiWeight);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005528 hdd_info("Name = [allowDFSChannelRoam] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005529 pHddCtx->config->allowDFSChannelRoam);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005530 hdd_info("Name = [nhi_rssi_scan_max_count] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005531 pHddCtx->config->nhi_rssi_scan_max_count);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005532 hdd_info("Name = [nhi_rssi_scan_rssi_delta] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005533 pHddCtx->config->nhi_rssi_scan_rssi_delta);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005534 hdd_info("Name = [nhi_rssi_scan_delay] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005535 pHddCtx->config->nhi_rssi_scan_delay);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005536 hdd_info("Name = [nhi_rssi_scan_rssi_ub] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005537 pHddCtx->config->nhi_rssi_scan_rssi_ub);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005538 hdd_info("Name = [burstSizeDefinition] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005539 pHddCtx->config->burstSizeDefinition);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005540 hdd_info("Name = [tsInfoAckPolicy] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005541 pHddCtx->config->tsInfoAckPolicy);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005542 hdd_info("Name = [rfSettlingTimeUs] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005543 pHddCtx->config->rfSettlingTimeUs);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005544 hdd_info("Name = [bSingleTidRc] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005545 pHddCtx->config->bSingleTidRc);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005546 hdd_info("Name = [gDynamicPSPollvalue] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005547 pHddCtx->config->dynamicPsPollValue);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005548 hdd_info("Name = [gAddTSWhenACMIsOff] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005549 pHddCtx->config->AddTSWhenACMIsOff);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005550 hdd_info("Name = [gValidateScanList] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005551 pHddCtx->config->fValidateScanList);
5552
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005553 hdd_info("Name = [gStaKeepAlivePeriod] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005554 pHddCtx->config->infraStaKeepAlivePeriod);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005555 hdd_info("Name = [gApDataAvailPollInterVal] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005556 pHddCtx->config->apDataAvailPollPeriodInMs);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005557 hdd_info("Name = [BandCapability] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005558 pHddCtx->config->nBandCapability);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005559 hdd_info("Name = [teleBcnWakeupEnable] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005560 pHddCtx->config->teleBcnWakeupEn);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005561 hdd_info("Name = [transListenInterval] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005562 pHddCtx->config->nTeleBcnTransListenInterval);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005563 hdd_info("Name = [transLiNumIdleBeacons] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005564 pHddCtx->config->nTeleBcnTransLiNumIdleBeacons);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005565 hdd_info("Name = [maxListenInterval] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005566 pHddCtx->config->nTeleBcnMaxListenInterval);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005567 hdd_info("Name = [maxLiNumIdleBeacons] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005568 pHddCtx->config->nTeleBcnMaxLiNumIdleBeacons);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005569 hdd_info("Name = [gEnableBypass11d] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005570 pHddCtx->config->enableBypass11d);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005571 hdd_info("Name = [gEnableDFSChnlScan] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005572 pHddCtx->config->enableDFSChnlScan);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005573 hdd_info("Name = [gEnableDFSPnoChnlScan] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005574 pHddCtx->config->enable_dfs_pno_chnl_scan);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005575 hdd_info("Name = [gReportMaxLinkSpeed] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005576 pHddCtx->config->reportMaxLinkSpeed);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005577 hdd_info("Name = [thermalMitigationEnable] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005578 pHddCtx->config->thermalMitigationEnable);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005579 hdd_info("Name = [gVhtChannelWidth] value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005580 pHddCtx->config->vhtChannelWidth);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005581 hdd_info("Name = [enableFirstScan2GOnly] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005582 pHddCtx->config->enableFirstScan2GOnly);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005583 hdd_info("Name = [skipDfsChnlInP2pSearch] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005584 pHddCtx->config->skipDfsChnlInP2pSearch);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005585 hdd_info("Name = [ignoreDynamicDtimInP2pMode] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005586 pHddCtx->config->ignoreDynamicDtimInP2pMode);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005587 hdd_info("Name = [enableRxSTBC] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005588 pHddCtx->config->enableRxSTBC);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005589 hdd_info("Name = [gEnableLpwrImgTransition] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005590 pHddCtx->config->enableLpwrImgTransition);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005591 hdd_info("Name = [gEnableSSR] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005592 pHddCtx->config->enableSSR);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005593 hdd_info("Name = [gEnableVhtFor24GHzBand] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005594 pHddCtx->config->enableVhtFor24GHzBand);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005595 hdd_info("Name = [gEnableIbssHeartBeatOffload] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005596 pHddCtx->config->enableIbssHeartBeatOffload);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005597 hdd_info("Name = [gAntennaDiversity] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005598 pHddCtx->config->antennaDiversity);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005599 hdd_info("Name = [gGoLinkMonitorPeriod] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005600 pHddCtx->config->goLinkMonitorPeriod);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005601 hdd_info("Name = [gApLinkMonitorPeriod] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005602 pHddCtx->config->apLinkMonitorPeriod);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005603 hdd_info("Name = [gGoKeepAlivePeriod] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005604 pHddCtx->config->goKeepAlivePeriod);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005605 hdd_info("Name = [gApKeepAlivePeriod]Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005606 pHddCtx->config->apKeepAlivePeriod);
Deepak Dhamdhere612392c2016-08-28 02:56:51 -07005607 hdd_debug("Name = [max_amsdu_num] Value = [%u] ",
5608 pHddCtx->config->max_amsdu_num);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005609 hdd_info("Name = [nSelect5GHzMargin] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005610 pHddCtx->config->nSelect5GHzMargin);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005611 hdd_info("Name = [gCoalesingInIBSS] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005612 pHddCtx->config->isCoalesingInIBSSAllowed);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005613 hdd_info("Name = [gIbssATIMWinSize] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005614 pHddCtx->config->ibssATIMWinSize);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005615 hdd_info("Name = [gIbssIsPowerSaveAllowed] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005616 pHddCtx->config->isIbssPowerSaveAllowed);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005617 hdd_info("Name = [gIbssIsPowerCollapseAllowed] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005618 pHddCtx->config->isIbssPowerCollapseAllowed);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005619 hdd_info("Name = [gIbssAwakeOnTxRx] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005620 pHddCtx->config->isIbssAwakeOnTxRx);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005621 hdd_info("Name = [gIbssInactivityTime] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005622 pHddCtx->config->ibssInactivityCount);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005623 hdd_info("Name = [gIbssTxSpEndInactivityTime] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005624 pHddCtx->config->ibssTxSpEndInactivityTime);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005625 hdd_info("Name = [gIbssPsWarmupTime] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005626 pHddCtx->config->ibssPsWarmupTime);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005627 hdd_info("Name = [gIbssPs1RxChainInAtim] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005628 pHddCtx->config->ibssPs1RxChainInAtimEnable);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005629 hdd_info("Name = [fDfsPhyerrFilterOffload] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005630 pHddCtx->config->fDfsPhyerrFilterOffload);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005631 hdd_info("Name = [gIgnorePeerErpInfo] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005632 pHddCtx->config->ignore_peer_erp_info);
5633#ifdef IPA_OFFLOAD
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005634 hdd_info("Name = [gIPAConfig] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005635 pHddCtx->config->IpaConfig);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005636 hdd_info("Name = [gIPADescSize] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005637 pHddCtx->config->IpaDescSize);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005638 hdd_info("Name = [IpaHighBandwidthMbpsg] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005639 pHddCtx->config->IpaHighBandwidthMbps);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005640 hdd_info("Name = [IpaMediumBandwidthMbps] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005641 pHddCtx->config->IpaMediumBandwidthMbps);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005642 hdd_info("Name = [IpaLowBandwidthMbps] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005643 pHddCtx->config->IpaLowBandwidthMbps);
5644#endif
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005645 hdd_info("Name = [gEnableOverLapCh] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005646 pHddCtx->config->gEnableOverLapCh);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005647 hdd_info("Name = [gMaxOffloadPeers] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005648 pHddCtx->config->apMaxOffloadPeers);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005649 hdd_info("Name = [gMaxOffloadReorderBuffs] value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005650 pHddCtx->config->apMaxOffloadReorderBuffs);
Dustin Brown732ab9c2017-06-15 13:24:09 -07005651 hdd_info("Name = [%s] Value = [%d]",
5652 CFG_ENABLE_CCK_TX_FIR_OVERRIDE_NAME,
5653 pHddCtx->config->enable_cck_tx_fir_override);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005654 hdd_info("Name = [gAllowDFSChannelRoam] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005655 pHddCtx->config->allowDFSChannelRoam);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005656 hdd_info("Name = [gMaxConcurrentActiveSessions] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005657 pHddCtx->config->gMaxConcurrentActiveSessions);
5658
5659#ifdef MSM_PLATFORM
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005660 hdd_info("Name = [gBusBandwidthHighThreshold] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005661 pHddCtx->config->busBandwidthHighThreshold);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005662 hdd_info("Name = [gBusBandwidthMediumThreshold] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005663 pHddCtx->config->busBandwidthMediumThreshold);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005664 hdd_info("Name = [gBusBandwidthLowThreshold] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005665 pHddCtx->config->busBandwidthLowThreshold);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005666 hdd_info("Name = [gbusBandwidthComputeInterval] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005667 pHddCtx->config->busBandwidthComputeInterval);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005668 hdd_info("Name = [%s] Value = [%u] ",
Ravi Joshie2331e82015-07-01 18:18:54 -07005669 CFG_ENABLE_TCP_DELACK,
5670 pHddCtx->config->enable_tcp_delack);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005671 hdd_info("Name = [gTcpDelAckThresholdHigh] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005672 pHddCtx->config->tcpDelackThresholdHigh);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005673 hdd_info("Name = [gTcpDelAckThresholdLow] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005674 pHddCtx->config->tcpDelackThresholdLow);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005675 hdd_info("Name = [%s] Value = [%u] ",
Ravi Joshib89e7f72016-09-07 13:43:15 -07005676 CFG_TCP_DELACK_TIMER_COUNT,
5677 pHddCtx->config->tcp_delack_timer_count);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005678 hdd_info("Name = [%s] Value = [%u] ",
Ravi Joshib89e7f72016-09-07 13:43:15 -07005679 CFG_TCP_TX_HIGH_TPUT_THRESHOLD_NAME,
5680 pHddCtx->config->tcp_tx_high_tput_thres);
Mohit Khannae71e2262015-11-10 09:37:24 -08005681
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005682#endif
5683
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005684 hdd_info("Name = [gIgnoreCAC] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005685 pHddCtx->config->ignoreCAC);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005686 hdd_info("Name = [gSapPreferredChanLocation] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005687 pHddCtx->config->gSapPreferredChanLocation);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005688 hdd_info("Name = [gDisableDfsJapanW53] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005689 pHddCtx->config->gDisableDfsJapanW53);
5690#ifdef FEATURE_GREEN_AP
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005691 hdd_info("Name = [gEnableGreenAp] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005692 pHddCtx->config->enableGreenAP);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005693 hdd_info("Name = [gEenableEGAP] Value = [%u] ",
Ryan Hsucb118cf2015-11-09 16:03:53 -08005694 pHddCtx->config->enable_egap);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005695 hdd_info("Name = [gEGAPInactTime] Value = [%u] ",
Ryan Hsucb118cf2015-11-09 16:03:53 -08005696 pHddCtx->config->egap_inact_time);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005697 hdd_info("Name = [gEGAPWaitTime] Value = [%u] ",
Ryan Hsucb118cf2015-11-09 16:03:53 -08005698 pHddCtx->config->egap_wait_time);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005699 hdd_info("Name = [gEGAPFeatures] Value = [%u] ",
Ryan Hsucb118cf2015-11-09 16:03:53 -08005700 pHddCtx->config->egap_feature_flag);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005701#endif
5702#ifdef WLAN_FEATURE_ROAM_OFFLOAD
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005703 hdd_info("Name = [isRoamOffloadEnabled] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005704 pHddCtx->config->isRoamOffloadEnabled);
5705#endif
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005706 hdd_info("Name = [gEnableSifsBurst] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005707 pHddCtx->config->enableSifsBurst);
5708
5709#ifdef WLAN_FEATURE_LPSS
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005710 hdd_info("Name = [gEnableLpassSupport] Value = [%u] ",
Komal Seelamc11bb222016-01-27 18:57:10 +05305711 pHddCtx->config->enable_lpass_support);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005712#endif
5713
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005714 hdd_info("Name = [gEnableSelfRecovery] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005715 pHddCtx->config->enableSelfRecovery);
5716
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005717 hdd_info("Name = [gEnableSapSuspend] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005718 pHddCtx->config->enableSapSuspend);
5719
5720#ifdef WLAN_FEATURE_EXTWOW_SUPPORT
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005721 hdd_info("Name = [gExtWoWgotoSuspend] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005722 pHddCtx->config->extWowGotoSuspend);
5723
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005724 hdd_info("Name = [gExtWowApp1WakeupPinNumber] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005725 pHddCtx->config->extWowApp1WakeupPinNumber);
5726
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005727 hdd_info("Name = [gExtWowApp2WakeupPinNumber] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005728 pHddCtx->config->extWowApp2WakeupPinNumber);
5729
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005730 hdd_info("Name = [gExtWoWApp2KAInitPingInterval] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005731 pHddCtx->config->extWowApp2KAInitPingInterval);
5732
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005733 hdd_info("Name = [gExtWoWApp2KAMinPingInterval] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005734 pHddCtx->config->extWowApp2KAMinPingInterval);
5735
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005736 hdd_info("Name = [gExtWoWApp2KAMaxPingInterval] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005737 pHddCtx->config->extWowApp2KAMaxPingInterval);
5738
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005739 hdd_info("Name = [gExtWoWApp2KAIncPingInterval] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005740 pHddCtx->config->extWowApp2KAIncPingInterval);
5741
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005742 hdd_info("Name = [gExtWoWApp2TcpSrcPort] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005743 pHddCtx->config->extWowApp2TcpSrcPort);
5744
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005745 hdd_info("Name = [gExtWoWApp2TcpDstPort] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005746 pHddCtx->config->extWowApp2TcpDstPort);
5747
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005748 hdd_info("Name = [gExtWoWApp2TcpTxTimeout] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005749 pHddCtx->config->extWowApp2TcpTxTimeout);
5750
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005751 hdd_info("Name = [gExtWoWApp2TcpRxTimeout] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005752 pHddCtx->config->extWowApp2TcpRxTimeout);
5753#endif
5754
5755#ifdef DHCP_SERVER_OFFLOAD
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005756 hdd_info("Name = [gDHCPServerOffloadEnable] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005757 pHddCtx->config->enableDHCPServerOffload);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005758 hdd_info("Name = [gDHCPMaxNumClients] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005759 pHddCtx->config->dhcpMaxNumClients);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005760 hdd_info("Name = [gDHCPServerIP] Value = [%s]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005761 pHddCtx->config->dhcpServerIP);
5762#endif
5763
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005764 hdd_info("Name = [gEnableDumpCollect] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005765 pHddCtx->config->is_ramdump_enabled);
5766
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005767 hdd_info("Name = [gP2PListenDeferInterval] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005768 pHddCtx->config->p2p_listen_defer_interval);
Archana Ramachandrane87005c2016-08-23 16:57:30 -07005769 hdd_notice("Name = [is_ps_enabled] value = [%d]",
5770 pHddCtx->config->is_ps_enabled);
5771 hdd_notice("Name = [tso_enable] value = [%d]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005772 pHddCtx->config->tso_enable);
Archana Ramachandrane87005c2016-08-23 16:57:30 -07005773 hdd_notice("Name = [LROEnable] value = [%d]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005774 pHddCtx->config->lro_enable);
Archana Ramachandrane87005c2016-08-23 16:57:30 -07005775 hdd_notice("Name = [active_mode_offload] value = [%d]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005776 pHddCtx->config->active_mode_offload);
Archana Ramachandrane87005c2016-08-23 16:57:30 -07005777 hdd_notice("Name = [gfine_time_meas_cap] value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005778 pHddCtx->config->fine_time_meas_cap);
5779#ifdef WLAN_FEATURE_FASTPATH
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005780 hdd_info("Name = [fastpath_enable] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005781 pHddCtx->config->fastpath_enable);
5782#endif
Archana Ramachandrane87005c2016-08-23 16:57:30 -07005783 hdd_notice("Name = [max_scan_count] value = [%d]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005784 pHddCtx->config->max_scan_count);
Archana Ramachandrane87005c2016-08-23 16:57:30 -07005785 hdd_notice("Name = [%s] value = [%d]",
Nirav Shahbd36b062016-07-18 11:12:59 +05305786 CFG_RX_MODE_NAME, pHddCtx->config->rx_mode);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005787 hdd_info("Name = [%s] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005788 CFG_CE_CLASSIFY_ENABLE_NAME,
5789 pHddCtx->config->ce_classify_enabled);
Archana Ramachandrane87005c2016-08-23 16:57:30 -07005790 hdd_notice("Name = [%s] value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005791 CFG_DUAL_MAC_FEATURE_DISABLE,
5792 pHddCtx->config->dual_mac_feature_disable);
Nitesh Shah50a3de12017-04-03 19:37:19 +05305793 hdd_notice("Name = [%s] Value = [%s]",
5794 CFG_DBS_SCAN_SELECTION_NAME,
5795 pHddCtx->config->dbs_scan_selection);
Varun Reddy Yeturub43fda12015-09-10 18:16:21 -07005796#ifdef FEATURE_WLAN_SCAN_PNO
Archana Ramachandrane87005c2016-08-23 16:57:30 -07005797 hdd_notice("Name = [%s] Value = [%u]",
5798 CFG_PNO_CHANNEL_PREDICTION_NAME,
5799 pHddCtx->config->pno_channel_prediction);
5800 hdd_notice("Name = [%s] Value = [%u]",
5801 CFG_TOP_K_NUM_OF_CHANNELS_NAME,
5802 pHddCtx->config->top_k_num_of_channels);
5803 hdd_notice("Name = [%s] Value = [%u]",
5804 CFG_STATIONARY_THRESHOLD_NAME,
5805 pHddCtx->config->stationary_thresh);
5806 hdd_notice("Name = [%s] Value = [%u]",
5807 CFG_CHANNEL_PREDICTION_FULL_SCAN_MS_NAME,
5808 pHddCtx->config->channel_prediction_full_scan);
5809 hdd_notice("Name = [%s] Value = [%u]",
5810 CFG_ADAPTIVE_PNOSCAN_DWELL_MODE_NAME,
5811 pHddCtx->config->pnoscan_adaptive_dwell_mode);
Varun Reddy Yeturub43fda12015-09-10 18:16:21 -07005812#endif
Archana Ramachandrane87005c2016-08-23 16:57:30 -07005813 hdd_notice("Name = [%s] Value = [%d]",
5814 CFG_EARLY_STOP_SCAN_ENABLE,
5815 pHddCtx->config->early_stop_scan_enable);
5816 hdd_notice("Name = [%s] Value = [%d]",
5817 CFG_EARLY_STOP_SCAN_MIN_THRESHOLD,
5818 pHddCtx->config->early_stop_scan_min_threshold);
5819 hdd_notice("Name = [%s] Value = [%d]",
5820 CFG_EARLY_STOP_SCAN_MAX_THRESHOLD,
5821 pHddCtx->config->early_stop_scan_max_threshold);
5822 hdd_notice("Name = [%s] Value = [%d]",
5823 CFG_FIRST_SCAN_BUCKET_THRESHOLD_NAME,
5824 pHddCtx->config->first_scan_bucket_threshold);
5825 hdd_notice("Name = [%s] Value = [%u]",
5826 CFG_HT_MPDU_DENSITY_NAME,
5827 pHddCtx->config->ht_mpdu_density);
Krishna Kumaar Natarajan22b59a72015-11-23 18:54:58 -08005828
Ravi Joshi742495d2015-11-09 18:56:53 -08005829
5830#ifdef FEATURE_LFR_SUBNET_DETECTION
Archana Ramachandrane87005c2016-08-23 16:57:30 -07005831 hdd_notice("Name = [%s] Value = [%d]",
5832 CFG_ENABLE_LFR_SUBNET_DETECTION,
5833 pHddCtx->config->enable_lfr_subnet_detection);
Ravi Joshi742495d2015-11-09 18:56:53 -08005834#endif
Gupta, Kapilc68ad462016-02-01 19:17:23 +05305835 hdd_info("Name = [%s] Value = [%u]",
5836 CFG_ROAM_DENSE_TRAFFIC_THRESHOLD,
5837 pHddCtx->config->roam_dense_traffic_thresh);
5838 hdd_info("Name = [%s] Value = [%u]",
5839 CFG_ROAM_DENSE_RSSI_THRE_OFFSET,
5840 pHddCtx->config->roam_dense_rssi_thresh_offset);
5841 hdd_info("Name = [%s] Value = [%u]",
Abhishek Singh165bc602016-03-21 12:43:00 +05305842 CFG_IGNORE_PEER_HT_MODE_NAME,
5843 pHddCtx->config->ignore_peer_ht_opmode);
5844 hdd_info("Name = [%s] Value = [%u]",
Kapil Gupta4b2efbb2016-10-03 13:07:20 +05305845 CFG_ENABLE_VENDOR_VHT_FOR_24GHZ_NAME,
5846 pHddCtx->config->enable_sap_vendor_vht);
5847 hdd_info("Name = [%s] Value = [%u]",
Abhishek Singh5ea86532016-04-27 14:10:53 +05305848 CFG_ENABLE_FATAL_EVENT_TRIGGER,
5849 pHddCtx->config->enable_fatal_event);
5850 hdd_info("Name = [%s] Value = [%u]",
Gupta, Kapilc68ad462016-02-01 19:17:23 +05305851 CFG_ROAM_DENSE_MIN_APS,
5852 pHddCtx->config->roam_dense_min_aps);
Agrawal Ashish17bb3902016-05-05 13:29:40 +05305853 hdd_info("Name = [%s] Value = [%u]",
5854 CFG_MIN_REST_TIME_NAME,
5855 pHddCtx->config->min_rest_time_conc);
5856 hdd_info("Name = [%s] Value = [%u]",
5857 CFG_IDLE_TIME_NAME,
5858 pHddCtx->config->idle_time_conc);
Mukul Sharmaf7d62e12016-09-03 15:16:22 +05305859 hdd_info("Name = [%s] Value = [%d]",
5860 CFG_BUG_ON_REINIT_FAILURE_NAME,
5861 pHddCtx->config->bug_on_reinit_failure);
Arun Khandavallifae92942016-08-01 13:31:08 +05305862 hdd_info("Name = [%s] Value = [%u]",
5863 CFG_INTERFACE_CHANGE_WAIT_NAME,
5864 pHddCtx->config->iface_change_wait_time);
Agrawal Ashish17bb3902016-05-05 13:29:40 +05305865
Abhishek Singh10ecf582016-05-04 17:48:59 +05305866 hdd_info("Name = [%s] Value = [%u]",
5867 CFG_ENABLE_EDCA_INI_NAME,
5868 pHddCtx->config->enable_edca_params);
5869
5870 hdd_info("Name = [%s] Value = [%u]",
5871 CFG_EDCA_VO_CWMIN_VALUE_NAME,
5872 pHddCtx->config->edca_vo_cwmin);
5873 hdd_info("Name = [%s] Value = [%u]",
5874 CFG_EDCA_VI_CWMIN_VALUE_NAME,
5875 pHddCtx->config->edca_vi_cwmin);
5876 hdd_info("Name = [%s] Value = [%u]",
5877 CFG_EDCA_BK_CWMIN_VALUE_NAME,
5878 pHddCtx->config->edca_bk_cwmin);
5879 hdd_info("Name = [%s] Value = [%u]",
5880 CFG_EDCA_BE_CWMIN_VALUE_NAME,
5881 pHddCtx->config->edca_be_cwmin);
5882
5883 hdd_info("Name = [%s] Value = [%u]",
5884 CFG_EDCA_VO_CWMAX_VALUE_NAME,
5885 pHddCtx->config->edca_vo_cwmax);
5886 hdd_info("Name = [%s] Value = [%u]",
5887 CFG_EDCA_VI_CWMAX_VALUE_NAME,
5888 pHddCtx->config->edca_vi_cwmax);
5889 hdd_info("Name = [%s] Value = [%u]",
5890 CFG_EDCA_BK_CWMAX_VALUE_NAME,
5891 pHddCtx->config->edca_bk_cwmax);
5892 hdd_info("Name = [%s] Value = [%u]",
5893 CFG_EDCA_BE_CWMAX_VALUE_NAME,
5894 pHddCtx->config->edca_be_cwmax);
5895
5896 hdd_info("Name = [%s] Value = [%u]",
5897 CFG_EDCA_VO_AIFS_VALUE_NAME,
5898 pHddCtx->config->edca_vo_aifs);
5899 hdd_info("Name = [%s] Value = [%u]",
5900 CFG_EDCA_VI_AIFS_VALUE_NAME,
5901 pHddCtx->config->edca_vi_aifs);
5902 hdd_info("Name = [%s] Value = [%u]",
5903 CFG_EDCA_BK_AIFS_VALUE_NAME,
5904 pHddCtx->config->edca_bk_aifs);
5905 hdd_info("Name = [%s] Value = [%u]",
5906 CFG_EDCA_BE_AIFS_VALUE_NAME,
5907 pHddCtx->config->edca_be_aifs);
gbian62edd7e2017-03-07 13:12:13 +08005908
5909 hdd_info("Name = [%s] Value = [%s]",
5910 CFG_ENABLE_TX_SCHED_WRR_VO_NAME,
5911 pHddCtx->config->tx_sched_wrr_vo);
5912 hdd_info("Name = [%s] Value = [%s]",
5913 CFG_ENABLE_TX_SCHED_WRR_VI_NAME,
5914 pHddCtx->config->tx_sched_wrr_vi);
5915 hdd_info("Name = [%s] Value = [%s]",
5916 CFG_ENABLE_TX_SCHED_WRR_BK_NAME,
5917 pHddCtx->config->tx_sched_wrr_bk);
5918 hdd_info("Name = [%s] Value = [%s]",
5919 CFG_ENABLE_TX_SCHED_WRR_BE_NAME,
5920 pHddCtx->config->tx_sched_wrr_be);
5921
Nirav Shahcc1f1ae2016-04-26 11:41:29 +05305922 hdd_info("Name = [%s] Value = [%u]",
5923 CFG_ENABLE_DP_TRACE,
5924 pHddCtx->config->enable_dp_trace);
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05305925 hdd_info("Name = [%s] Value = [%u]",
5926 CFG_ADAPTIVE_SCAN_DWELL_MODE_NAME,
5927 pHddCtx->config->scan_adaptive_dwell_mode);
5928 hdd_info("Name = [%s] Value = [%u]",
5929 CFG_ADAPTIVE_ROAMSCAN_DWELL_MODE_NAME,
5930 pHddCtx->config->roamscan_adaptive_dwell_mode);
5931 hdd_info("Name = [%s] Value = [%u]",
5932 CFG_ADAPTIVE_EXTSCAN_DWELL_MODE_NAME,
5933 pHddCtx->config->extscan_adaptive_dwell_mode);
5934 hdd_info("Name = [%s] Value = [%u]",
5935 CFG_ADAPTIVE_DWELL_MODE_ENABLED_NAME,
5936 pHddCtx->config->adaptive_dwell_mode_enabled);
5937 hdd_info("Name = [%s] Value = [%u]",
5938 CFG_GLOBAL_ADAPTIVE_DWELL_MODE_NAME,
5939 pHddCtx->config->global_adapt_dwelltime_mode);
5940 hdd_info("Name = [%s] Value = [%u]",
5941 CFG_ADAPT_DWELL_LPF_WEIGHT_NAME,
5942 pHddCtx->config->adapt_dwell_lpf_weight);
5943 hdd_info("Name = [%s] Value = [%u]",
5944 CFG_ADAPT_DWELL_PASMON_INTVAL_NAME,
5945 pHddCtx->config->adapt_dwell_passive_mon_intval);
5946 hdd_info("Name = [%s] Value = [%u]",
5947 CFG_ADAPT_DWELL_WIFI_THRESH_NAME,
5948 pHddCtx->config->adapt_dwell_wifi_act_threshold);
Naveen Rawat64e477e2016-05-20 10:34:56 -07005949 hdd_info("Name = [%s] value = [%u]",
5950 CFG_SUB_20_CHANNEL_WIDTH_NAME,
5951 pHddCtx->config->enable_sub_20_channel_width);
Rajeev Kumar Sirasanagandlaaf474742016-09-06 17:54:50 +05305952 hdd_info("Name = [%s] Value = [%u]",
5953 CFG_TGT_GTX_USR_CFG_NAME,
5954 pHddCtx->config->tgt_gtx_usr_cfg);
Agrawal, Ashish4e5fa1c2016-09-21 19:03:43 +05305955 hdd_info("Name = [%s] Value = [%u]",
5956 CFG_SAP_MAX_INACTIVITY_OVERRIDE_NAME,
5957 pHddCtx->config->sap_max_inactivity_override);
Deepak Dhamdhere3385d752016-05-25 20:36:47 -07005958 hdd_ndp_print_ini_config(pHddCtx);
Krishna Kumaar Natarajancc077c22016-08-02 10:41:53 -07005959 hdd_info("Name = [%s] Value = [%s]",
5960 CFG_RM_CAPABILITY_NAME,
5961 pHddCtx->config->rm_capability);
Rajeev Kumardd3bc602016-08-16 14:21:05 -07005962 hdd_info("Name = [%s] Value = [%d]",
Rajeev Kumar Sirasanagandlab79b5462016-09-06 18:33:17 +05305963 CFG_SAP_FORCE_11N_FOR_11AC_NAME,
5964 pHddCtx->config->sap_force_11n_for_11ac);
5965 hdd_info("Name = [%s] Value = [%d]",
Rajeev Kumardd3bc602016-08-16 14:21:05 -07005966 CFG_BPF_PACKET_FILTER_OFFLOAD,
5967 pHddCtx->config->bpf_packet_filter_enable);
Nitesh Shah61c10d92016-10-19 19:29:15 +05305968 hdd_info("Name = [%s] Value = [%u]",
5969 CFG_TDLS_ENABLE_DEFER_TIMER,
5970 pHddCtx->config->tdls_enable_defer_time);
Ravi Joshibb8d4512016-08-22 10:14:52 -07005971 hdd_info("Name = [%s] Value = [%d]",
5972 CFG_FILTER_MULTICAST_REPLAY_NAME,
5973 pHddCtx->config->multicast_replay_filter);
Agrawal Ashishb2d1a452016-05-05 12:23:58 +05305974 hdd_info("Name = [%s] Value = [%u]",
5975 CFG_ENABLE_GO_CTS2SELF_FOR_STA,
5976 pHddCtx->config->enable_go_cts2self_for_sta);
Sandeep Puligillaafa52892016-10-26 19:03:16 -07005977 hdd_info("Name = [%s] Value = [%u]",
5978 CFG_CRASH_FW_TIMEOUT_NAME,
5979 pHddCtx->config->fw_timeout_crash);
Hanumanth Reddy Pothulae87621b2017-04-12 20:53:35 +05305980 hdd_debug("Name = [%s] Value = [%u]",
5981 CFG_ACTIVE_UC_BPF_MODE_NAME,
5982 pHddCtx->config->active_uc_bpf_mode);
5983 hdd_debug("Name = [%s] Value = [%u]",
5984 CFG_ACTIVE_MC_BC_BPF_MODE_NAME,
5985 pHddCtx->config->active_mc_bc_bpf_mode);
Arun Khandavallicc544b32017-01-30 19:52:16 +05305986 hdd_info("Name = [%s] Value = [%d]",
5987 CFG_SAP_INTERNAL_RESTART_NAME,
5988 pHddCtx->config->sap_internal_restart);
Ravi Kumar Bokka05c14e52017-03-27 14:48:23 +05305989 hdd_debug("Name = [%s] Value = [%u]",
5990 CFG_AUTO_DETECT_POWER_FAIL_MODE_NAME,
5991 pHddCtx->config->auto_pwr_save_fail_mode);
Hanumanth Reddy Pothula9c161dd2017-03-23 19:03:08 +05305992 hdd_debug("Name = [%s] Value = [%d]",
5993 CFG_SAP_RESTART_ON_CH_AVOID_NAME,
5994 pHddCtx->config->sap_restart_on_ch_avoid);
Ravi Kumar Bokka05c14e52017-03-27 14:48:23 +05305995
Kapil Gupta5cda2252016-12-29 18:44:26 +05305996 hdd_per_roam_print_ini_config(pHddCtx);
Krishna Kumaar Natarajan90bb6f12017-03-03 21:05:52 -08005997 hdd_he_print_ini_config(pHddCtx);
Srinivas Girigowda70e169a2017-03-07 23:55:57 -08005998 hdd_info("Name = [%s] Value = [%d]",
5999 CFG_ARP_AC_CATEGORY,
6000 pHddCtx->config->arp_ac_category);
Dustin Brown20b6fcf2017-05-17 15:35:17 -07006001 hdd_info("Name = [%s] Value = [%u]",
6002 CFG_SCAN_BACKOFF_MULTIPLIER_NAME,
6003 pHddCtx->config->scan_backoff_multiplier);
Jayachandran Sreekumaran68c952c2017-04-24 12:42:03 +05306004 hdd_info("Name = [%s] Value = [%d]",
6005 CFG_EXTERNAL_ACS_POLICY,
6006 pHddCtx->config->external_acs_policy);
6007 hdd_info("Name = [%s] Value = [%d]",
6008 CFG_EXTERNAL_ACS_FREQ_BAND,
6009 pHddCtx->config->external_acs_freq_band);
Naveen Rawat2b6e3c92017-03-20 13:59:07 -07006010 hdd_info("Name = [%s] value = [%u]",
6011 CFG_DROPPED_PKT_DISCONNECT_TH_NAME,
6012 pHddCtx->config->pkt_err_disconn_th);
Naveen Rawatb2fc4132017-05-10 20:42:05 -07006013 hdd_debug("Name = [%s] value = [%u]",
6014 CFG_FORCE_1X1_NAME,
6015 pHddCtx->config->is_force_1x1);
Ashish Kumar Dhanotiya470af292017-05-31 20:46:00 +05306016 hdd_info("Name = [%s] Value = %u",
6017 CFG_ENABLE_CONNECTED_SCAN_NAME,
6018 pHddCtx->config->enable_connected_scan);
Naveen Rawat247a8682017-06-05 15:00:31 -07006019 hdd_debug("Name = [%s] value = [%u]",
6020 CFG_11B_NUM_TX_CHAIN_NAME,
6021 pHddCtx->config->num_11b_tx_chains);
6022 hdd_debug("Name = [%s] value = [%u]",
6023 CFG_11AG_NUM_TX_CHAIN_NAME,
6024 pHddCtx->config->num_11ag_tx_chains);
Ashish Kumar Dhanotiya9335d812017-06-30 16:57:20 +05306025 hdd_debug("Name = [%s] value = [%u]",
6026 CFG_ITO_REPEAT_COUNT_NAME,
6027 pHddCtx->config->ito_repeat_count);
Selvaraj, Sridhar57ce4df2017-05-29 18:30:49 +05306028 hdd_debug("Name = [%s] Value = [%u]",
6029 CFG_ROAM_DISALLOW_DURATION_NAME,
6030 pHddCtx->config->disallow_duration);
6031 hdd_debug("Name = [%s] Value = [%u]",
6032 CFG_ROAM_RSSI_CHANNEL_PENALIZATION_NAME,
6033 pHddCtx->config->rssi_channel_penalization);
6034 hdd_debug("Name = [%s] Value = [%u]",
6035 CFG_ROAM_NUM_DISALLOWED_APS_NAME,
6036 pHddCtx->config->num_disallowed_aps);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006037}
6038
6039
6040/**
6041 * hdd_update_mac_config() - update MAC address from cfg file
6042 * @pHddCtx: the pointer to hdd context
6043 *
6044 * It overwrites the MAC address if config file exist.
6045 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306046 * Return: QDF_STATUS_SUCCESS if the MAC address is found from cfg file
6047 * and overwritten, otherwise QDF_STATUS_E_INVAL
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006048 */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306049QDF_STATUS hdd_update_mac_config(hdd_context_t *pHddCtx)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006050{
6051 int status, i = 0;
6052 const struct firmware *fw = NULL;
6053 char *line, *buffer = NULL;
Yuanyuan Liu6043d3c2016-07-25 11:40:38 -07006054 char *temp = NULL;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006055 char *name, *value;
Anurag Chouhan6d760662016-02-20 16:05:43 +05306056 tCfgIniEntry macTable[QDF_MAX_CONCURRENCY_PERSONA];
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006057 tSirMacAddr customMacAddr;
6058
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306059 QDF_STATUS qdf_status = QDF_STATUS_SUCCESS;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006060
6061 memset(macTable, 0, sizeof(macTable));
6062 status = request_firmware(&fw, WLAN_MAC_FILE, pHddCtx->parent_dev);
6063
6064 if (status) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006065 hdd_err("request_firmware failed %d", status);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306066 qdf_status = QDF_STATUS_E_FAILURE;
6067 return qdf_status;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006068 }
6069 if (!fw || !fw->data || !fw->size) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08006070 hdd_alert("invalid firmware");
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306071 qdf_status = QDF_STATUS_E_INVAL;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006072 goto config_exit;
6073 }
6074
Yuanyuan Liu6043d3c2016-07-25 11:40:38 -07006075 hdd_debug("wlan_mac.bin size %zu", fw->size);
6076
Srinivas Girigowdae6b465b2017-03-30 18:27:25 -07006077 temp = qdf_mem_malloc(fw->size + 1);
Yuanyuan Liu6043d3c2016-07-25 11:40:38 -07006078
6079 if (temp == NULL) {
6080 hdd_err("fail to alloc memory");
6081 qdf_status = QDF_STATUS_E_NOMEM;
6082 goto config_exit;
6083 }
6084 buffer = temp;
6085 qdf_mem_copy(buffer, fw->data, fw->size);
Srinivas Girigowdafb20a952017-04-05 11:38:48 -07006086 buffer[fw->size] = 0x0;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006087
6088 /* data format:
6089 * Intf0MacAddress=00AA00BB00CC
6090 * Intf1MacAddress=00AA00BB00CD
6091 * END
6092 */
6093 while (buffer != NULL) {
6094 line = get_next_line(buffer);
6095 buffer = i_trim(buffer);
6096
6097 if (strlen((char *)buffer) == 0 || *buffer == '#') {
6098 buffer = line;
6099 continue;
6100 }
6101 if (strncmp(buffer, "END", 3) == 0)
6102 break;
6103
6104 name = buffer;
6105 buffer = strnchr(buffer, strlen(buffer), '=');
6106 if (buffer) {
6107 *buffer++ = '\0';
6108 i_trim(name);
6109 if (strlen(name) != 0) {
6110 buffer = i_trim(buffer);
6111 if (strlen(buffer) == 12) {
6112 value = buffer;
6113 macTable[i].name = name;
6114 macTable[i++].value = value;
Anurag Chouhan6d760662016-02-20 16:05:43 +05306115 if (i >= QDF_MAX_CONCURRENCY_PERSONA)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006116 break;
6117 }
6118 }
6119 }
6120 buffer = line;
6121 }
Anurag Chouhan6d760662016-02-20 16:05:43 +05306122 if (i <= QDF_MAX_CONCURRENCY_PERSONA) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006123 hdd_debug("%d Mac addresses provided", i);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006124 } else {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08006125 hdd_err("invalid number of Mac address provided, nMac = %d", i);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306126 qdf_status = QDF_STATUS_E_INVAL;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006127 goto config_exit;
6128 }
6129
6130 update_mac_from_string(pHddCtx, &macTable[0], i);
6131
Anurag Chouhan600c3a02016-03-01 10:33:54 +05306132 qdf_mem_copy(&customMacAddr,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006133 &pHddCtx->config->intfMacAddr[0].bytes[0],
6134 sizeof(tSirMacAddr));
6135 sme_set_custom_mac_addr(customMacAddr);
6136
6137config_exit:
Yuanyuan Liu6043d3c2016-07-25 11:40:38 -07006138 qdf_mem_free(temp);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006139 release_firmware(fw);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306140 return qdf_status;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006141}
6142
6143/**
Manjunathappa Prakash59f861d2016-04-21 10:33:31 -07006144 * hdd_disable_runtime_pm() - Override to disable runtime_pm.
6145 * @cfg_ini: Handle to struct hdd_config
6146 *
6147 * Return: None
6148 */
6149#ifdef FEATURE_RUNTIME_PM
6150static void hdd_disable_runtime_pm(struct hdd_config *cfg_ini)
6151{
6152 cfg_ini->runtime_pm = 0;
6153}
6154#else
6155static void hdd_disable_runtime_pm(struct hdd_config *cfg_ini)
6156{
6157}
6158#endif
6159
6160/**
6161 * hdd_disable_auto_shutdown() - Override to disable auto_shutdown.
6162 * @cfg_ini: Handle to struct hdd_config
6163 *
6164 * Return: None
6165 */
6166#ifdef FEATURE_WLAN_AUTO_SHUTDOWN
6167static void hdd_disable_auto_shutdown(struct hdd_config *cfg_ini)
6168{
6169 cfg_ini->WlanAutoShutdown = 0;
6170}
6171#else
6172static void hdd_disable_auto_shutdown(struct hdd_config *cfg_ini)
6173{
6174}
6175#endif
6176
6177/**
6178 * hdd_override_all_ps() - overrides to disables all the powersave features.
6179 * @hdd_ctx: Pointer to HDD context.
6180 * Overrides below powersave ini configurations.
6181 * gEnableImps=0
6182 * gEnableBmps=0
6183 * gRuntimePM=0
6184 * gWlanAutoShutdown = 0
6185 * gEnableSuspend=0
6186 * gEnablePowerSaveOffload=0
6187 * gEnableWoW=0
6188 *
6189 * Return: None
6190 */
6191static void hdd_override_all_ps(hdd_context_t *hdd_ctx)
6192{
6193 struct hdd_config *cfg_ini = hdd_ctx->config;
6194
6195 cfg_ini->fIsImpsEnabled = 0;
6196 cfg_ini->is_ps_enabled = 0;
6197 hdd_disable_runtime_pm(cfg_ini);
6198 hdd_disable_auto_shutdown(cfg_ini);
6199 cfg_ini->enablePowersaveOffload = 0;
6200 cfg_ini->wowEnable = 0;
6201}
6202
6203/**
Nirav Shahbd36b062016-07-18 11:12:59 +05306204 * hdd_set_rx_mode_value() - set rx_mode values
6205 * @hdd_ctx: hdd context
6206 *
6207 * Return: none
6208 */
Jeff Johnsonf1bf3a62016-10-05 15:48:13 -07006209static void hdd_set_rx_mode_value(hdd_context_t *hdd_ctx)
Nirav Shahbd36b062016-07-18 11:12:59 +05306210{
6211 if (hdd_ctx->config->rx_mode & CFG_ENABLE_RX_THREAD &&
6212 hdd_ctx->config->rx_mode & CFG_ENABLE_RPS) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006213 hdd_warn("rx_mode wrong configuration. Make it default");
Nirav Shahbd36b062016-07-18 11:12:59 +05306214 hdd_ctx->config->rx_mode = CFG_RX_MODE_DEFAULT;
6215 }
6216
6217 if (hdd_ctx->config->rx_mode & CFG_ENABLE_RX_THREAD)
6218 hdd_ctx->enableRxThread = true;
6219
6220 if (hdd_ctx->config->rx_mode & CFG_ENABLE_RPS)
6221 hdd_ctx->rps = true;
6222
6223 if (hdd_ctx->config->rx_mode & CFG_ENABLE_NAPI)
6224 hdd_ctx->napi_enable = true;
6225}
6226
6227/**
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006228 * hdd_parse_config_ini() - parse the ini configuration file
6229 * @pHddCtx: the pointer to hdd context
6230 *
6231 * This function reads the qcom_cfg.ini file and
6232 * parses each 'Name=Value' pair in the ini file
6233 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306234 * Return: QDF_STATUS_SUCCESS if the qcom_cfg.ini is correctly read,
6235 * otherwise QDF_STATUS_E_INVAL
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006236 */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306237QDF_STATUS hdd_parse_config_ini(hdd_context_t *pHddCtx)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006238{
6239 int status, i = 0;
6240 /** Pointer for firmware image data */
6241 const struct firmware *fw = NULL;
6242 char *buffer, *line, *pTemp = NULL;
6243 size_t size;
6244 char *name, *value;
6245 /* cfgIniTable is static to avoid excess stack usage */
6246 static tCfgIniEntry cfgIniTable[MAX_CFG_INI_ITEMS];
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306247 QDF_STATUS qdf_status = QDF_STATUS_SUCCESS;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006248
6249 memset(cfgIniTable, 0, sizeof(cfgIniTable));
6250
6251 status = request_firmware(&fw, WLAN_INI_FILE, pHddCtx->parent_dev);
6252
6253 if (status) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08006254 hdd_alert("request_firmware failed %d", status);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306255 qdf_status = QDF_STATUS_E_FAILURE;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006256 goto config_exit;
6257 }
6258 if (!fw || !fw->data || !fw->size) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08006259 hdd_alert("%s download failed", WLAN_INI_FILE);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306260 qdf_status = QDF_STATUS_E_FAILURE;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006261 goto config_exit;
6262 }
6263
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006264 hdd_debug("qcom_cfg.ini Size %zu", fw->size);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006265
Anurag Chouhan600c3a02016-03-01 10:33:54 +05306266 buffer = (char *)qdf_mem_malloc(fw->size);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006267
6268 if (NULL == buffer) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006269 hdd_err("qdf_mem_malloc failure");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006270 release_firmware(fw);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306271 return QDF_STATUS_E_NOMEM;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006272 }
6273 pTemp = buffer;
6274
Anurag Chouhan600c3a02016-03-01 10:33:54 +05306275 qdf_mem_copy((void *)buffer, (void *)fw->data, fw->size);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006276 size = fw->size;
6277
6278 while (buffer != NULL) {
6279 line = get_next_line(buffer);
6280 buffer = i_trim(buffer);
6281
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006282 hdd_debug("%s: item", buffer);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006283
6284 if (strlen((char *)buffer) == 0 || *buffer == '#') {
6285 buffer = line;
6286 continue;
Jeff Johnson68755312017-02-10 11:46:55 -08006287 }
6288
6289 if (strncmp(buffer, "END", 3) == 0)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006290 break;
Jeff Johnson68755312017-02-10 11:46:55 -08006291
6292 name = buffer;
6293 while (*buffer != '=' && *buffer != '\0')
6294 buffer++;
6295 if (*buffer != '\0') {
6296 *buffer++ = '\0';
6297 i_trim(name);
6298 if (strlen(name) != 0) {
6299 buffer = i_trim(buffer);
6300 if (strlen(buffer) > 0) {
6301 value = buffer;
6302 while (!i_isspace(*buffer)
6303 && *buffer != '\0')
6304 buffer++;
6305 *buffer = '\0';
6306 cfgIniTable[i].name = name;
6307 cfgIniTable[i++].value = value;
6308 if (i >= MAX_CFG_INI_ITEMS) {
6309 hdd_err("Number of items in %s > %d",
6310 WLAN_INI_FILE,
6311 MAX_CFG_INI_ITEMS);
6312 break;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006313 }
6314 }
6315 }
6316 }
6317 buffer = line;
6318 }
6319
6320 /* Loop through the registry table and apply all these configs */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306321 qdf_status = hdd_apply_cfg_ini(pHddCtx, cfgIniTable, i);
Nirav Shahbd36b062016-07-18 11:12:59 +05306322 hdd_set_rx_mode_value(pHddCtx);
Manjunathappa Prakash59f861d2016-04-21 10:33:31 -07006323 if (QDF_GLOBAL_MONITOR_MODE == cds_get_conparam())
6324 hdd_override_all_ps(pHddCtx);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006325
6326config_exit:
6327 release_firmware(fw);
Anurag Chouhan600c3a02016-03-01 10:33:54 +05306328 qdf_mem_free(pTemp);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306329 return qdf_status;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006330}
6331
6332/**
6333 * hdd_cfg_xlate_to_csr_phy_mode() - convert PHY mode
6334 * @dot11Mode: the mode to convert
6335 *
6336 * Convert the configuration PHY mode to CSR PHY mode
6337 *
6338 * Return: the CSR phy mode value
6339 */
Srinivas Girigowda2fb677c2017-03-25 15:35:34 -07006340eCsrPhyMode hdd_cfg_xlate_to_csr_phy_mode(enum hdd_dot11_mode dot11Mode)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006341{
Naveen Rawat10b1c152017-01-18 11:16:06 -08006342 if (cds_is_sub_20_mhz_enabled())
6343 return eCSR_DOT11_MODE_abg;
6344
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006345 switch (dot11Mode) {
6346 case (eHDD_DOT11_MODE_abg):
6347 return eCSR_DOT11_MODE_abg;
6348 case (eHDD_DOT11_MODE_11b):
6349 return eCSR_DOT11_MODE_11b;
6350 case (eHDD_DOT11_MODE_11g):
6351 return eCSR_DOT11_MODE_11g;
6352 default:
6353 case (eHDD_DOT11_MODE_11n):
6354 return eCSR_DOT11_MODE_11n;
6355 case (eHDD_DOT11_MODE_11g_ONLY):
6356 return eCSR_DOT11_MODE_11g_ONLY;
6357 case (eHDD_DOT11_MODE_11n_ONLY):
6358 return eCSR_DOT11_MODE_11n_ONLY;
6359 case (eHDD_DOT11_MODE_11b_ONLY):
6360 return eCSR_DOT11_MODE_11b_ONLY;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006361 case (eHDD_DOT11_MODE_11ac_ONLY):
6362 return eCSR_DOT11_MODE_11ac_ONLY;
6363 case (eHDD_DOT11_MODE_11ac):
6364 return eCSR_DOT11_MODE_11ac;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006365 case (eHDD_DOT11_MODE_AUTO):
6366 return eCSR_DOT11_MODE_AUTO;
6367 case (eHDD_DOT11_MODE_11a):
6368 return eCSR_DOT11_MODE_11a;
Krishna Kumaar Natarajan4f1d7722017-03-03 21:12:51 -08006369 case (eHDD_DOT11_MODE_11ax_ONLY):
6370 return eCSR_DOT11_MODE_11ax_ONLY;
6371 case (eHDD_DOT11_MODE_11ax):
6372 return eCSR_DOT11_MODE_11ax;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006373 }
6374
6375}
6376
6377/**
6378 * hdd_set_idle_ps_config() - set idle power save configuration
6379 * @pHddCtx: the pointer to hdd context
6380 * @val: the value to configure
6381 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306382 * Return: QDF_STATUS_SUCCESS if command set correctly,
6383 * otherwise the QDF_STATUS return from SME layer
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006384 */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306385QDF_STATUS hdd_set_idle_ps_config(hdd_context_t *pHddCtx, uint32_t val)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006386{
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306387 QDF_STATUS status = QDF_STATUS_SUCCESS;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006388
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006389 hdd_debug("hdd_set_idle_ps_config: Enter Val %d", val);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006390
Kiran Kumar Lokerefc2803d2016-01-11 19:31:38 -08006391 status = sme_set_idle_powersave_config(pHddCtx->pcds_context,
6392 pHddCtx->hHal, val);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306393 if (QDF_STATUS_SUCCESS != status)
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08006394 hdd_err("Fail to Set Idle PS Config val %d", val);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006395 return status;
6396}
6397
6398/**
6399 * hdd_set_fine_time_meas_cap() - set fine timing measurement capability
6400 * @hdd_ctx: HDD context
6401 * @sme_config: pointer to SME config
6402 *
6403 * This function is used to pass fine timing measurement capability coming
6404 * from INI to SME. This function make sure that configure INI is supported
6405 * by the device. Use bit mask to mask out the unsupported capabilities.
6406 *
6407 * Return: None
6408 */
6409static void hdd_set_fine_time_meas_cap(hdd_context_t *hdd_ctx,
6410 tSmeConfigParams *sme_config)
6411{
6412 struct hdd_config *config = hdd_ctx->config;
6413 uint32_t capability = config->fine_time_meas_cap;
6414
6415 /* Make sure only supported capabilities are enabled in INI */
6416 capability &= CFG_FINE_TIME_MEAS_CAPABILITY_MAX;
Krunal Soni1878d3a2016-01-14 13:00:44 -08006417 sme_config->csrConfig.fine_time_meas_cap = capability;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006418
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006419 hdd_debug("fine time meas capability - INI: %04x Enabled: %04x",
Krunal Soni1878d3a2016-01-14 13:00:44 -08006420 config->fine_time_meas_cap,
6421 sme_config->csrConfig.fine_time_meas_cap);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006422}
6423
6424/**
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006425 * hdd_convert_string_to_u8_array() - used to convert string into u8 array
6426 * @str: String to be converted
6427 * @hex_array: Array where converted value is stored
6428 * @len: Length of the populated array
6429 * @array_max_len: Maximum length of the array
6430 * @to_hex: true, if conversion required for hex string
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006431 *
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006432 * This API is called to convert string (each byte separated by
6433 * a comma) into an u8 array
6434 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306435 * Return: QDF_STATUS
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006436 */
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006437
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306438static QDF_STATUS hdd_convert_string_to_array(char *str, uint8_t *array,
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006439 uint8_t *len, uint8_t array_max_len, bool to_hex)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006440{
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006441 char *format, *s = str;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006442
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006443 if (str == NULL || array == NULL || len == NULL)
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306444 return QDF_STATUS_E_INVAL;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006445
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006446 format = (to_hex) ? "%02x" : "%d";
6447
6448 *len = 0;
6449 while ((s != NULL) && (*len < array_max_len)) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006450 int val;
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006451 /* Increment length only if sscanf successfully extracted
6452 * one element. Any other return value means error.
Jeff Johnson78d88a82017-01-12 09:50:54 -08006453 * Ignore it.
6454 */
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006455 if (sscanf(s, format, &val) == 1) {
6456 array[*len] = (uint8_t) val;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006457 *len += 1;
6458 }
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006459
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006460 s = strpbrk(s, ",");
6461 if (s)
6462 s++;
6463 }
6464
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306465 return QDF_STATUS_SUCCESS;
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006466}
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006467
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006468/**
6469 * hdd_hex_string_to_u8_array() - used to convert hex string into u8 array
6470 * @str: Hexadecimal string
6471 * @hex_array: Array where converted value is stored
6472 * @len: Length of the populated array
6473 * @array_max_len: Maximum length of the array
6474 *
6475 * This API is called to convert hexadecimal string (each byte separated by
6476 * a comma) into an u8 array
6477 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306478 * Return: QDF_STATUS
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006479 */
Jeff Johnsonf1bf3a62016-10-05 15:48:13 -07006480static QDF_STATUS hdd_hex_string_to_u8_array(char *str, uint8_t *hex_array,
6481 uint8_t *len,
6482 uint8_t array_max_len)
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006483{
6484 return hdd_convert_string_to_array(str, hex_array, len,
6485 array_max_len, true);
6486}
6487
6488/**
6489 * hdd_string_to_u8_array() - used to convert decimal string into u8 array
6490 * @str: Decimal string
6491 * @hex_array: Array where converted value is stored
6492 * @len: Length of the populated array
6493 * @array_max_len: Maximum length of the array
6494 *
6495 * This API is called to convert decimal string (each byte separated by
6496 * a comma) into an u8 array
6497 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306498 * Return: QDF_STATUS
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006499 */
6500
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306501QDF_STATUS hdd_string_to_u8_array(char *str, uint8_t *array,
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006502 uint8_t *len, uint8_t array_max_len)
6503{
6504 return hdd_convert_string_to_array(str, array, len,
6505 array_max_len, false);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006506}
6507
6508/**
Nirav Shahbd36b062016-07-18 11:12:59 +05306509 * hdd_hex_string_to_u16_array() - convert a hex string to a uint16 array
6510 * @str: input string
6511 * @int_array: pointer to input array of type uint16
6512 * @len: pointer to number of elements which the function adds to the array
6513 * @int_array_max_len: maximum number of elements in input uint16 array
6514 *
6515 * This function is used to convert a space separated hex string to an array of
6516 * uint16_t. For example, an input string str = "a b c d" would be converted to
6517 * a unint16 array, int_array = {0xa, 0xb, 0xc, 0xd}, *len = 4.
6518 * This assumes that input value int_array_max_len >= 4.
6519 *
6520 * Return: QDF_STATUS_SUCCESS - if the conversion is successful
6521 * non zero value - if the conversion is a failure
6522 */
6523QDF_STATUS hdd_hex_string_to_u16_array(char *str,
6524 uint16_t *int_array, uint8_t *len, uint8_t int_array_max_len)
6525{
6526 char *s = str;
6527 uint32_t val = 0;
6528
6529 if (str == NULL || int_array == NULL || len == NULL)
6530 return QDF_STATUS_E_INVAL;
6531
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006532 hdd_debug("str %p intArray %p intArrayMaxLen %d",
Nirav Shahbd36b062016-07-18 11:12:59 +05306533 s, int_array, int_array_max_len);
6534
6535 *len = 0;
6536
6537 while ((s != NULL) && (*len < int_array_max_len)) {
6538 /*
6539 * Increment length only if sscanf successfully extracted one
6540 * element. Any other return value means error. Ignore it.
6541 */
6542 if (sscanf(s, "%x", &val) == 1) {
6543 int_array[*len] = (uint16_t) val;
6544 hdd_debug("s %p val %x intArray[%d]=0x%x",
6545 s, val, *len, int_array[*len]);
6546 *len += 1;
6547 }
6548 s = strpbrk(s, " ");
6549 if (s)
6550 s++;
6551 }
6552 return QDF_STATUS_SUCCESS;
6553}
6554
Nirav Shahbd36b062016-07-18 11:12:59 +05306555/**
Krunal Soni52198e42016-09-26 13:53:09 -07006556 * hdd_update_ht_cap_in_cfg() - to update HT cap in global CFG
Krunal Sonidf0f8742016-09-26 14:56:31 -07006557 * @hdd_ctx: pointer to hdd context
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006558 *
Krunal Soni52198e42016-09-26 13:53:09 -07006559 * This API will update the HT config in CFG after taking intersection
6560 * of INI and firmware capabilities provided reading CFG
6561 *
6562 * Return: true or false
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006563 */
Krunal Sonidf0f8742016-09-26 14:56:31 -07006564static bool hdd_update_ht_cap_in_cfg(hdd_context_t *hdd_ctx)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006565{
Krunal Soni5c390162016-09-26 15:07:05 -07006566 uint32_t val32;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006567 uint16_t val16;
Krunal Soni5c390162016-09-26 15:07:05 -07006568 bool status = true;
Krunal Sonidf0f8742016-09-26 14:56:31 -07006569 tSirMacHTCapabilityInfo *ht_cap_info;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006570
Krunal Sonidf0f8742016-09-26 14:56:31 -07006571 if (sme_cfg_get_int(hdd_ctx->hHal, WNI_CFG_HT_CAP_INFO,
Krunal Soni5c390162016-09-26 15:07:05 -07006572 &val32) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306573 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006574 status = false;
Krunal Soni5c390162016-09-26 15:07:05 -07006575 hdd_err("Could not get WNI_CFG_HT_CAP_INFO");
Sandeep Puligilla607f34a2016-05-25 14:37:47 -07006576 }
Krunal Soni5c390162016-09-26 15:07:05 -07006577 val16 = (uint16_t) val32;
Krunal Sonidf0f8742016-09-26 14:56:31 -07006578 ht_cap_info = (tSirMacHTCapabilityInfo *) &val16;
Krunal Sonia2c0e412017-05-04 14:12:41 +05306579 ht_cap_info->advCodingCap &= hdd_ctx->config->enable_rx_ldpc;
Krunal Soni5c390162016-09-26 15:07:05 -07006580 ht_cap_info->rxSTBC = QDF_MIN(ht_cap_info->rxSTBC,
6581 hdd_ctx->config->enableRxSTBC);
6582 ht_cap_info->txSTBC &= hdd_ctx->config->enableTxSTBC;
6583 ht_cap_info->shortGI20MHz &= hdd_ctx->config->ShortGI20MhzEnable;
6584 ht_cap_info->shortGI40MHz &= hdd_ctx->config->ShortGI40MhzEnable;
6585 val32 = val16;
6586 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_HT_CAP_INFO, val32) ==
6587 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006588 status = false;
Krunal Soni5c390162016-09-26 15:07:05 -07006589 hdd_err("Could not set WNI_CFG_HT_CAP_INFO");
Krunal Soni52198e42016-09-26 13:53:09 -07006590 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07006591 return status;
Krunal Soni52198e42016-09-26 13:53:09 -07006592}
6593
6594/**
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006595 * hdd_update_vht_cap_in_cfg() - to update VHT cap in global CFG
Krunal Sonidf0f8742016-09-26 14:56:31 -07006596 * @hdd_ctx: pointer to hdd context
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006597 *
6598 * This API will update the VHT config in CFG after taking intersection
6599 * of INI and firmware capabilities provided reading CFG
6600 *
6601 * Return: true or false
6602 */
Krunal Sonidf0f8742016-09-26 14:56:31 -07006603static bool hdd_update_vht_cap_in_cfg(hdd_context_t *hdd_ctx)
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006604{
Krunal Sonidf0f8742016-09-26 14:56:31 -07006605 bool status = true;
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006606 uint32_t val;
Krunal Sonidf0f8742016-09-26 14:56:31 -07006607 struct hdd_config *config = hdd_ctx->config;
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006608
Krunal Sonidf0f8742016-09-26 14:56:31 -07006609 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_VHT_ENABLE_TXBF_20MHZ,
6610 config->enableTxBFin20MHz) ==
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006611 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006612 status = false;
6613 hdd_err("Couldn't set value for WNI_CFG_VHT_ENABLE_TXBF_20MHZ");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006614 }
6615 /* Based on cfg.ini, update the Basic MCS set, RX/TX MCS map
6616 * in the cfg.dat. Valid values are 0(MCS0-7), 1(MCS0-8), 2(MCS0-9)
6617 * we update only the least significant 2 bits in the
6618 * corresponding fields.
6619 */
Krunal Sonidf0f8742016-09-26 14:56:31 -07006620 if ((config->dot11Mode == eHDD_DOT11_MODE_AUTO) ||
6621 (config->dot11Mode == eHDD_DOT11_MODE_11ac_ONLY) ||
6622 (config->dot11Mode == eHDD_DOT11_MODE_11ac)) {
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006623 /* Currently shortGI40Mhz is used for shortGI80Mhz */
Krunal Sonidf0f8742016-09-26 14:56:31 -07006624 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_VHT_SHORT_GI_80MHZ,
6625 config->ShortGI40MhzEnable) == QDF_STATUS_E_FAILURE) {
6626 status = false;
6627 hdd_err("Couldn't pass WNI_VHT_SHORT_GI_80MHZ to CFG");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006628 }
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07006629 /* Hardware is capable of doing
6630 * 128K AMPDU in 11AC mode
6631 */
Krunal Sonidf0f8742016-09-26 14:56:31 -07006632 if (sme_cfg_set_int(hdd_ctx->hHal,
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006633 WNI_CFG_VHT_AMPDU_LEN_EXPONENT,
Krunal Sonidf0f8742016-09-26 14:56:31 -07006634 config->fVhtAmpduLenExponent) ==
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006635 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006636 status = false;
6637 hdd_err("Couldn't pass on WNI_CFG_VHT_AMPDU_LEN_EXPONENT to CFG");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006638 }
6639 /* Change MU Bformee only when TxBF is enabled */
Krunal Sonidf0f8742016-09-26 14:56:31 -07006640 if (config->enableTxBF) {
6641 sme_cfg_get_int(hdd_ctx->hHal,
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006642 WNI_CFG_VHT_MU_BEAMFORMEE_CAP, &val);
6643
Krunal Sonidf0f8742016-09-26 14:56:31 -07006644 if (val != config->enableMuBformee) {
6645 if (sme_cfg_set_int(hdd_ctx->hHal,
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006646 WNI_CFG_VHT_MU_BEAMFORMEE_CAP,
Krunal Sonidf0f8742016-09-26 14:56:31 -07006647 config->enableMuBformee
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006648 ) == QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006649 status = false;
6650 hdd_err("Couldn't pass on WNI_CFG_VHT_MU_BEAMFORMEE_CAP to CFG");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006651 }
6652 }
6653 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07006654 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_VHT_MAX_MPDU_LENGTH,
6655 config->vhtMpduLen) == QDF_STATUS_E_FAILURE) {
6656 status = false;
6657 hdd_err("Couldn't pass on WNI_CFG_VHT_MAX_MPDU_LENGTH to CFG");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006658 }
6659
Krunal Sonidf0f8742016-09-26 14:56:31 -07006660 if (config->enable2x2 && config->enable_su_tx_bformer) {
6661 if (sme_cfg_set_int(hdd_ctx->hHal,
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006662 WNI_CFG_VHT_SU_BEAMFORMER_CAP,
Krunal Sonidf0f8742016-09-26 14:56:31 -07006663 config->enable_su_tx_bformer) ==
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006664 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006665 status = false;
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006666 hdd_err("set SU_BEAMFORMER_CAP to CFG failed");
6667 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07006668 if (sme_cfg_set_int(hdd_ctx->hHal,
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006669 WNI_CFG_VHT_NUM_SOUNDING_DIMENSIONS,
6670 NUM_OF_SOUNDING_DIMENSIONS) ==
6671 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006672 status = false;
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006673 hdd_err("failed to set NUM_OF_SOUNDING_DIM");
6674 }
6675 }
6676 }
6677
Krunal Sonidf0f8742016-09-26 14:56:31 -07006678 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_VHT_RXSTBC,
6679 config->enableRxSTBC) == QDF_STATUS_E_FAILURE) {
6680 status = false;
6681 hdd_err("Couldn't pass on WNI_CFG_VHT_RXSTBC to CFG");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006682 }
6683
Krunal Sonidf0f8742016-09-26 14:56:31 -07006684 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_VHT_TXSTBC,
6685 config->enableTxSTBC) == QDF_STATUS_E_FAILURE) {
6686 status = false;
6687 hdd_err("Couldn't pass on WNI_CFG_VHT_TXSTBC to CFG");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006688 }
6689
Krunal Soni5c390162016-09-26 15:07:05 -07006690 if (sme_cfg_get_int(hdd_ctx->hHal, WNI_CFG_VHT_LDPC_CODING_CAP, &val) ==
6691 QDF_STATUS_E_FAILURE) {
6692 status &= false;
6693 hdd_err("Could not get WNI_CFG_VHT_LDPC_CODING_CAP");
6694 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07006695 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_VHT_LDPC_CODING_CAP,
Krunal Sonia2c0e412017-05-04 14:12:41 +05306696 config->enable_rx_ldpc & val) == QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006697 status = false;
6698 hdd_err("Couldn't pass on WNI_CFG_VHT_LDPC_CODING_CAP to CFG");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006699 }
6700
Krunal Sonidf0f8742016-09-26 14:56:31 -07006701 if (sme_cfg_set_int(hdd_ctx->hHal,
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006702 WNI_CFG_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED,
Krunal Sonidf0f8742016-09-26 14:56:31 -07006703 config->txBFCsnValue) ==
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006704 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006705 status = false;
6706 hdd_err("Couldn't pass on WNI_CFG_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED to CFG");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006707 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07006708 return status;
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006709
6710}
6711
6712/**
Krunal Sonidf0f8742016-09-26 14:56:31 -07006713 * hdd_update_config_cfg() - API to update INI setting based on hw/fw caps
6714 * @hdd_ctx: pointer to hdd_ctx
Krunal Soni52198e42016-09-26 13:53:09 -07006715 *
Krunal Sonidf0f8742016-09-26 14:56:31 -07006716 * This API reads the cfg file which is updated with hardware/firmware
6717 * capabilities and intersect it with INI setting provided by user. After
6718 * taking intersection it adjust cfg it self. For example, if user has enabled
6719 * RX LDPC through INI but hardware/firmware doesn't support it then disable
6720 * it in CFG file here.
6721 *
6722 * Return: true or false based on outcome.
Krunal Soni52198e42016-09-26 13:53:09 -07006723 */
Krunal Sonidf0f8742016-09-26 14:56:31 -07006724bool hdd_update_config_cfg(hdd_context_t *hdd_ctx)
Krunal Soni52198e42016-09-26 13:53:09 -07006725{
Krunal Sonidf0f8742016-09-26 14:56:31 -07006726 bool status = true;
Krunal Soni52198e42016-09-26 13:53:09 -07006727 uint32_t val;
Krunal Sonidf0f8742016-09-26 14:56:31 -07006728 struct hdd_config *config = hdd_ctx->config;
Krunal Soni52198e42016-09-26 13:53:09 -07006729
6730 /*
6731 * During the initialization both 2G and 5G capabilities should be same.
6732 * So read 5G HT capablity and update 2G and 5G capablities.
6733 */
Krunal Sonidf0f8742016-09-26 14:56:31 -07006734 if (!hdd_update_ht_cap_in_cfg(hdd_ctx)) {
6735 status = false;
6736 hdd_err("Couldn't set HT CAP in cfg");
Krunal Soni52198e42016-09-26 13:53:09 -07006737 }
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006738
Krunal Sonidf0f8742016-09-26 14:56:31 -07006739 if (!hdd_update_vht_cap_in_cfg(hdd_ctx)) {
6740 status = false;
6741 hdd_err("Couldn't set VHT CAP in cfg");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006742 }
6743
Krishna Kumaar Natarajan90bb6f12017-03-03 21:05:52 -08006744 if (0 != hdd_update_he_cap_in_cfg(hdd_ctx)) {
6745 status = false;
6746 hdd_err("Couldn't set HE CAP in cfg");
6747 }
6748
Krunal Sonidf0f8742016-09-26 14:56:31 -07006749 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_FIXED_RATE, config->TxRate)
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306750 == QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006751 status = false;
6752 hdd_err("Couldn't pass on WNI_CFG_FIXED_RATE to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006753 }
6754
Krunal Sonidf0f8742016-09-26 14:56:31 -07006755 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_MAX_RX_AMPDU_FACTOR,
6756 config->MaxRxAmpduFactor) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306757 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006758 status = false;
6759 hdd_err("Couldn't pass on WNI_CFG_HT_AMPDU_PARAMS_MAX_RX_AMPDU_FACTOR to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006760 }
6761
Krunal Sonidf0f8742016-09-26 14:56:31 -07006762 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_MPDU_DENSITY,
6763 config->ht_mpdu_density) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306764 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006765 status = false;
6766 hdd_err("Couldn't pass on WNI_CFG_MPDU_DENSITY to CFG");
Krishna Kumaar Natarajan22b59a72015-11-23 18:54:58 -08006767 }
6768
Krunal Sonidf0f8742016-09-26 14:56:31 -07006769 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_SHORT_PREAMBLE,
6770 config->fIsShortPreamble) == QDF_STATUS_E_FAILURE) {
6771 status = false;
6772 hdd_err("Couldn't pass on WNI_CFG_SHORT_PREAMBLE to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006773 }
6774
Krunal Sonidf0f8742016-09-26 14:56:31 -07006775 if (sme_cfg_set_int(hdd_ctx->hHal,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006776 WNI_CFG_PASSIVE_MINIMUM_CHANNEL_TIME,
Krunal Sonidf0f8742016-09-26 14:56:31 -07006777 config->nPassiveMinChnTime)
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306778 == QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006779 status = false;
6780 hdd_err("Couldn't pass on WNI_CFG_PASSIVE_MINIMUM_CHANNEL_TIME to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006781 }
6782
Krunal Sonidf0f8742016-09-26 14:56:31 -07006783 if (sme_cfg_set_int(hdd_ctx->hHal,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006784 WNI_CFG_PASSIVE_MAXIMUM_CHANNEL_TIME,
Krunal Sonidf0f8742016-09-26 14:56:31 -07006785 config->nPassiveMaxChnTime)
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306786 == QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006787 status = false;
6788 hdd_err("Couldn't pass on WNI_CFG_PASSIVE_MAXIMUM_CHANNEL_TIME to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006789 }
6790
Krunal Sonidf0f8742016-09-26 14:56:31 -07006791 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_BEACON_INTERVAL,
6792 config->nBeaconInterval) == QDF_STATUS_E_FAILURE) {
6793 status = false;
6794 hdd_err("Couldn't pass on WNI_CFG_BEACON_INTERVAL to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006795 }
6796
Krunal Sonidf0f8742016-09-26 14:56:31 -07006797 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_MAX_PS_POLL,
6798 config->nMaxPsPoll) == QDF_STATUS_E_FAILURE) {
6799 status = false;
6800 hdd_err("Couldn't pass on WNI_CFG_MAX_PS_POLL to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006801 }
6802
Krunal Sonidf0f8742016-09-26 14:56:31 -07006803 if (sme_cfg_set_int (hdd_ctx->hHal, WNI_CFG_LOW_GAIN_OVERRIDE,
6804 config->fIsLowGainOverride) == QDF_STATUS_E_FAILURE) {
6805 status = false;
6806 hdd_err("Couldn't pass on WNI_CFG_LOW_GAIN_OVERRIDE to HAL");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006807 }
6808
Krunal Sonidf0f8742016-09-26 14:56:31 -07006809 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_RSSI_FILTER_PERIOD,
6810 config->nRssiFilterPeriod) == QDF_STATUS_E_FAILURE) {
6811 status = false;
6812 hdd_err("Couldn't pass on WNI_CFG_RSSI_FILTER_PERIOD to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006813 }
6814
Krunal Sonidf0f8742016-09-26 14:56:31 -07006815 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_IGNORE_DTIM,
6816 config->fIgnoreDtim) == QDF_STATUS_E_FAILURE) {
6817 status = false;
6818 hdd_err("Couldn't pass on WNI_IGNORE_DTIM 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, WNI_CFG_PS_ENABLE_HEART_BEAT,
6822 config->fEnableFwHeartBeatMonitoring)
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306823 == QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006824 status = false;
6825 hdd_err("Couldn't pass on WNI_CFG_PS_HEART_BEAT to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006826 }
6827
Krunal Sonidf0f8742016-09-26 14:56:31 -07006828 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_PS_ENABLE_BCN_FILTER,
6829 config->fEnableFwBeaconFiltering) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306830 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006831 status = false;
6832 hdd_err("Couldn't pass on WNI_CFG_PS_BCN_FILTER to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006833 }
6834
Krunal Sonidf0f8742016-09-26 14:56:31 -07006835 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_PS_ENABLE_RSSI_MONITOR,
6836 config->fEnableFwRssiMonitoring) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306837 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006838 status = false;
6839 hdd_err("Couldn't pass on WNI_CFG_PS_RSSI_MONITOR to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006840 }
6841
Krunal Sonidf0f8742016-09-26 14:56:31 -07006842 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_PS_DATA_INACTIVITY_TIMEOUT,
6843 config->nDataInactivityTimeout) == QDF_STATUS_E_FAILURE) {
6844 status = false;
6845 hdd_err("Couldn't pass on WNI_CFG_PS_DATA_INACTIVITY_TIMEOUT to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006846 }
6847
Mukul Sharmaed92f2f2017-04-20 00:06:28 +05306848 if (sme_cfg_set_int(hdd_ctx->hHal,
6849 WNI_CFG_PS_WOW_DATA_INACTIVITY_TIMEOUT,
6850 config->wow_data_inactivity_timeout) == QDF_STATUS_E_FAILURE) {
6851 status = false;
6852 hdd_err("Fail to pass WNI_CFG_PS_WOW_DATA_INACTIVITY_TO CFG");
6853 }
6854
Krunal Sonidf0f8742016-09-26 14:56:31 -07006855 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_ENABLE_LTE_COEX,
6856 config->enableLTECoex) == QDF_STATUS_E_FAILURE) {
6857 status = false;
6858 hdd_err("Couldn't pass on WNI_CFG_ENABLE_LTE_COEX 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_AP_KEEP_ALIVE_TIMEOUT,
6862 config->apKeepAlivePeriod) == QDF_STATUS_E_FAILURE) {
6863 status = false;
6864 hdd_err("Couldn't pass on WNI_CFG_AP_KEEP_ALIVE_TIMEOUT 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_GO_KEEP_ALIVE_TIMEOUT,
6868 config->goKeepAlivePeriod) == QDF_STATUS_E_FAILURE) {
6869 status = false;
6870 hdd_err("Couldn't pass on WNI_CFG_GO_KEEP_ALIVE_TIMEOUT to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006871 }
6872
Krunal Sonidf0f8742016-09-26 14:56:31 -07006873 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_AP_LINK_MONITOR_TIMEOUT,
6874 config->apLinkMonitorPeriod) == QDF_STATUS_E_FAILURE) {
6875 status = false;
6876 hdd_err("Couldn't pass on WNI_CFG_AP_LINK_MONITOR_TIMEOUT to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006877 }
6878
Krunal Sonidf0f8742016-09-26 14:56:31 -07006879 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_GO_LINK_MONITOR_TIMEOUT,
6880 config->goLinkMonitorPeriod) == QDF_STATUS_E_FAILURE) {
6881 status = false;
6882 hdd_err("Couldn't pass on WNI_CFG_GO_LINK_MONITOR_TIMEOUT to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006883 }
6884
Krunal Sonidf0f8742016-09-26 14:56:31 -07006885 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_SINGLE_TID_RC,
6886 config->bSingleTidRc) == QDF_STATUS_E_FAILURE) {
6887 status = false;
6888 hdd_err("Couldn't pass on WNI_CFG_SINGLE_TID_RC to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006889 }
6890
Krunal Sonidf0f8742016-09-26 14:56:31 -07006891 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TELE_BCN_WAKEUP_EN,
6892 config->teleBcnWakeupEn) == QDF_STATUS_E_FAILURE) {
6893 status = false;
6894 hdd_err("Couldn't pass on WNI_CFG_TELE_BCN_WAKEUP_EN to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006895 }
6896
Krunal Sonidf0f8742016-09-26 14:56:31 -07006897 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TELE_BCN_TRANS_LI,
6898 config->nTeleBcnTransListenInterval) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306899 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006900 status = false;
6901 hdd_err("Couldn't pass on WNI_CFG_TELE_BCN_TRANS_LI to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006902 }
6903
Krunal Sonidf0f8742016-09-26 14:56:31 -07006904 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TELE_BCN_MAX_LI,
6905 config->nTeleBcnMaxListenInterval) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306906 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006907 status = false;
6908 hdd_err("Couldn't pass on WNI_CFG_TELE_BCN_MAX_LI to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006909 }
6910
Krunal Sonidf0f8742016-09-26 14:56:31 -07006911 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TELE_BCN_TRANS_LI_IDLE_BCNS,
6912 config->nTeleBcnTransLiNumIdleBeacons) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306913 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006914 status = false;
6915 hdd_err("Couldn't pass on WNI_CFG_TELE_BCN_TRANS_LI_IDLE_BCNS to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006916 }
6917
Krunal Sonidf0f8742016-09-26 14:56:31 -07006918 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TELE_BCN_MAX_LI_IDLE_BCNS,
6919 config->nTeleBcnMaxLiNumIdleBeacons) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306920 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006921 status = false;
6922 hdd_err("Couldn't pass on WNI_CFG_TELE_BCN_MAX_LI_IDLE_BCNS 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_RF_SETTLING_TIME_CLK,
6926 config->rfSettlingTimeUs) == QDF_STATUS_E_FAILURE) {
6927 status = false;
6928 hdd_err("Couldn't pass on WNI_CFG_RF_SETTLING_TIME_CLK 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_INFRA_STA_KEEP_ALIVE_PERIOD,
6932 config->infraStaKeepAlivePeriod) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306933 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006934 status = false;
6935 hdd_err("Couldn't pass on WNI_CFG_INFRA_STA_KEEP_ALIVE_PERIOD to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006936 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07006937 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_DYNAMIC_PS_POLL_VALUE,
6938 config->dynamicPsPollValue) == QDF_STATUS_E_FAILURE) {
6939 status = false;
6940 hdd_err("Couldn't pass on WNI_CFG_DYNAMIC_PS_POLL_VALUE 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_PS_NULLDATA_AP_RESP_TIMEOUT,
6944 config->nNullDataApRespTimeout) == QDF_STATUS_E_FAILURE) {
6945 status = false;
6946 hdd_err("Couldn't pass on WNI_CFG_PS_NULLDATA_DELAY_TIMEOUT to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006947 }
6948
Krunal Sonidf0f8742016-09-26 14:56:31 -07006949 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_AP_DATA_AVAIL_POLL_PERIOD,
6950 config->apDataAvailPollPeriodInMs) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306951 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006952 status = false;
6953 hdd_err("Couldn't pass on WNI_CFG_AP_DATA_AVAIL_POLL_PERIOD to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006954 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07006955 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_FRAGMENTATION_THRESHOLD,
6956 config->FragmentationThreshold) == QDF_STATUS_E_FAILURE) {
6957 status = false;
6958 hdd_err("Couldn't pass on WNI_CFG_FRAGMENTATION_THRESHOLD to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006959 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07006960 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_RTS_THRESHOLD,
6961 config->RTSThreshold) == QDF_STATUS_E_FAILURE) {
6962 status = false;
6963 hdd_err("Couldn't pass on WNI_CFG_RTS_THRESHOLD to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006964 }
6965
Krunal Sonidf0f8742016-09-26 14:56:31 -07006966 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_11D_ENABLED,
6967 config->Is11dSupportEnabled) == QDF_STATUS_E_FAILURE) {
6968 status = false;
6969 hdd_err("Couldn't pass on WNI_CFG_11D_ENABLED to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006970 }
6971
Krunal Sonidf0f8742016-09-26 14:56:31 -07006972 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_DFS_MASTER_ENABLED,
6973 config->enableDFSMasterCap) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306974 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006975 status = false;
6976 hdd_err("Failure: Couldn't set value for WNI_CFG_DFS_MASTER_ENABLED");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006977 }
6978
Krunal Sonidf0f8742016-09-26 14:56:31 -07006979 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_HEART_BEAT_THRESHOLD,
6980 config->HeartbeatThresh24) == QDF_STATUS_E_FAILURE) {
6981 status = false;
6982 hdd_err("Couldn't pass on WNI_CFG_HEART_BEAT_THRESHOLD to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006983 }
6984
Krunal Sonidf0f8742016-09-26 14:56:31 -07006985 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_ENABLE_MC_ADDR_LIST,
6986 config->fEnableMCAddrList) == QDF_STATUS_E_FAILURE) {
6987 status = false;
6988 hdd_err("Couldn't pass on WNI_CFG_ENABLE_MC_ADDR_LIST to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006989 }
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006990
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006991#ifdef WLAN_SOFTAP_VSTA_FEATURE
Krunal Sonidf0f8742016-09-26 14:56:31 -07006992 if (config->fEnableVSTASupport) {
6993 sme_cfg_get_int(hdd_ctx->hHal, WNI_CFG_ASSOC_STA_LIMIT, &val);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006994 if (val <= WNI_CFG_ASSOC_STA_LIMIT_STADEF)
6995 val = WNI_CFG_ASSOC_STA_LIMIT_STAMAX;
6996 } else {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006997 val = config->maxNumberOfPeers;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006998
6999 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07007000 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_ASSOC_STA_LIMIT, val) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307001 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007002 status = false;
7003 hdd_err("Couldn't pass on WNI_CFG_ASSOC_STA_LIMIT to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007004 }
7005#endif
Krunal Sonidf0f8742016-09-26 14:56:31 -07007006 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_ENABLE_LPWR_IMG_TRANSITION,
7007 config->enableLpwrImgTransition)
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307008 == QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007009 status = false;
7010 hdd_err("Couldn't pass on WNI_CFG_ENABLE_LPWR_IMG_TRANSITION to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007011 }
7012
Krunal Sonidf0f8742016-09-26 14:56:31 -07007013 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_ENABLE_MCC_ADAPTIVE_SCHED,
7014 config->enableMCCAdaptiveScheduler) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307015 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007016 status = false;
7017 hdd_err("Couldn't pass on WNI_CFG_ENABLE_MCC_ADAPTIVE_SCHED to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007018 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07007019 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_DISABLE_LDPC_WITH_TXBF_AP,
7020 config->disableLDPCWithTxbfAP) == QDF_STATUS_E_FAILURE) {
7021 status = false;
7022 hdd_err("Couldn't pass on WNI_CFG_DISABLE_LDPC_WITH_TXBF_AP to CFG");
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_DYNAMIC_THRESHOLD_ZERO,
7026 config->retryLimitZero) == QDF_STATUS_E_FAILURE) {
7027 status = false;
7028 hdd_err("Couldn't pass on WNI_CFG_DYNAMIC_THRESHOLD_ZERO 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_DYNAMIC_THRESHOLD_ONE,
7032 config->retryLimitOne) == QDF_STATUS_E_FAILURE) {
7033 status = false;
7034 hdd_err("Couldn't pass on WNI_CFG_DYNAMIC_THRESHOLD_ONE to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007035 }
7036
Krunal Sonidf0f8742016-09-26 14:56:31 -07007037 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_DYNAMIC_THRESHOLD_TWO,
7038 config->retryLimitTwo) == QDF_STATUS_E_FAILURE) {
7039 status = false;
7040 hdd_err("Couldn't pass on WNI_CFG_DYNAMIC_THRESHOLD_TWO to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007041 }
7042
Krunal Sonidf0f8742016-09-26 14:56:31 -07007043 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_MAX_MEDIUM_TIME,
7044 config->cfgMaxMediumTime) == QDF_STATUS_E_FAILURE) {
7045 status = false;
7046 hdd_err("Couldn't pass on WNI_CFG_MAX_MEDIUM_TIME to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007047 }
7048#ifdef FEATURE_WLAN_TDLS
7049
Krunal Sonidf0f8742016-09-26 14:56:31 -07007050 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TDLS_QOS_WMM_UAPSD_MASK,
7051 config->fTDLSUapsdMask) == QDF_STATUS_E_FAILURE) {
7052 status = false;
7053 hdd_err("Couldn't pass on WNI_CFG_TDLS_QOS_WMM_UAPSD_MASK to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007054 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07007055 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TDLS_BUF_STA_ENABLED,
7056 config->fEnableTDLSBufferSta) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307057 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007058 status = false;
7059 hdd_err("Couldn't pass on WNI_CFG_TDLS_BUF_STA_ENABLED to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007060 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07007061 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TDLS_PUAPSD_INACT_TIME,
7062 config->fTDLSPuapsdInactivityTimer) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307063 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007064 status = false;
7065 hdd_err("Couldn't pass on WNI_CFG_TDLS_PUAPSD_INACT_TIME to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007066 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07007067 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TDLS_RX_FRAME_THRESHOLD,
7068 config->fTDLSRxFrameThreshold) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307069 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007070 status = false;
7071 hdd_err("Couldn't pass on WNI_CFG_TDLS_RX_FRAME_THRESHOLD to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007072 }
7073
Krunal Sonidf0f8742016-09-26 14:56:31 -07007074 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TDLS_OFF_CHANNEL_ENABLED,
7075 config->fEnableTDLSOffChannel) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307076 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007077 status = false;
7078 hdd_err("Couldn't pass on WNI_CFG_TDLS_BUF_STA_ENABLED to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007079 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07007080 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TDLS_WMM_MODE_ENABLED,
7081 config->fEnableTDLSWmmMode) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307082 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007083 status = false;
7084 hdd_err("Couldn't pass on WNI_CFG_TDLS_WMM_MODE_ENABLED to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007085 }
7086#endif
7087
Krunal Sonidf0f8742016-09-26 14:56:31 -07007088 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_ENABLE_ADAPT_RX_DRAIN,
7089 config->fEnableAdaptRxDrain) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307090 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007091 status = false;
7092 hdd_err("Couldn't pass on WNI_CFG_ENABLE_ADAPT_RX_DRAIN to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007093 }
7094
Krunal Sonidf0f8742016-09-26 14:56:31 -07007095 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_ANTENNA_DIVESITY,
7096 config->antennaDiversity) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307097 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007098 status = false;
7099 hdd_err("Couldn't pass on WNI_CFG_ANTENNA_DIVESITY to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007100 }
7101
Krunal Sonidf0f8742016-09-26 14:56:31 -07007102 if (sme_cfg_set_int(hdd_ctx->hHal,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007103 WNI_CFG_DEFAULT_RATE_INDEX_24GHZ,
Krunal Sonidf0f8742016-09-26 14:56:31 -07007104 config->defaultRateIndex24Ghz) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307105 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007106 status = false;
7107 hdd_err("Couldn't pass on WNI_CFG_DEFAULT_RATE_INDEX_24GHZ to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007108 }
7109
Krunal Sonidf0f8742016-09-26 14:56:31 -07007110 if (sme_cfg_set_int(hdd_ctx->hHal,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007111 WNI_CFG_DEBUG_P2P_REMAIN_ON_CHANNEL,
Krunal Sonidf0f8742016-09-26 14:56:31 -07007112 config->debugP2pRemainOnChannel) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307113 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007114 status = false;
7115 hdd_err("Couldn't pass on WNI_CFG_DEBUG_P2P_REMAIN_ON_CHANNEL to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007116 }
7117#ifdef WLAN_FEATURE_11W
Krunal Sonidf0f8742016-09-26 14:56:31 -07007118 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_PMF_SA_QUERY_MAX_RETRIES,
7119 config->pmfSaQueryMaxRetries) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307120 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007121 status = false;
7122 hdd_err("Couldn't pass on WNI_CFG_SA_QUERY_MAX_RETRIES to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007123 }
7124
Krunal Sonidf0f8742016-09-26 14:56:31 -07007125 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_PMF_SA_QUERY_RETRY_INTERVAL,
7126 config->pmfSaQueryRetryInterval) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307127 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007128 status = false;
7129 hdd_err("Couldn't pass on WNI_CFG_SA_QUERY_RETRY_INTERVAL to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007130 }
7131#endif
7132
Krunal Sonidf0f8742016-09-26 14:56:31 -07007133 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_IBSS_ATIM_WIN_SIZE,
7134 config->ibssATIMWinSize) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307135 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007136 status = false;
7137 hdd_err("Couldn't pass on WNI_CFG_IBSS_ATIM_WIN_SIZE to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007138 }
Krunal Soni53993f72016-07-08 18:20:03 -07007139
Krunal Sonidf0f8742016-09-26 14:56:31 -07007140 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TGT_GTX_USR_CFG,
7141 config->tgt_gtx_usr_cfg) == QDF_STATUS_E_FAILURE) {
7142 status = false;
7143 hdd_err("Couldn't pass on WNI_CFG_TGT_GTX_USR_CFG to CCM");
Rajeev Kumar Sirasanagandlaaf474742016-09-06 17:54:50 +05307144 }
Hong Shi417824f2017-01-12 02:31:14 +08007145
7146 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_MAX_HT_MCS_TX_DATA,
7147 config->max_ht_mcs_txdata) ==
7148 QDF_STATUS_E_FAILURE) {
7149 status = false;
7150 hdd_err("Couldn't pass on WNI_CFG_MAX_HT_MCS_TX_DATA to CCM");
7151 }
Hong Shia9ef8712017-02-19 21:54:02 +08007152
7153 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_DISABLE_ABG_RATE_FOR_TX_DATA,
7154 config->disable_abg_rate_txdata) ==
7155 QDF_STATUS_E_FAILURE) {
7156 status = false;
7157 hdd_err("Couldn't pass on WNI_CFG_DISABLE_ABG_RATE_FOR_TX_DATA to CCM");
7158 }
7159
Hong Shib90718f2017-02-20 00:57:22 +08007160 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_RATE_FOR_TX_MGMT,
7161 config->rate_for_tx_mgmt) ==
7162 QDF_STATUS_E_FAILURE) {
7163 status = false;
7164 hdd_err("Couldn't pass on WNI_CFG_RATE_FOR_TX_MGMT to CCM");
7165 }
7166
lifeng13a89d72017-05-10 14:49:29 +08007167 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_SAP_MAX_MCS_DATA,
7168 config->sap_max_mcs_txdata) ==
7169 QDF_STATUS_E_FAILURE) {
7170 status = false;
7171 hdd_err("Could not pass on WNI_CFG_SAP_MAX_MCS_DATA to CCM");
7172 }
7173
Hong Shi2d384fd2017-05-22 18:38:41 +08007174 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_RATE_FOR_TX_MGMT_2G,
7175 config->rate_for_tx_mgmt_2g) ==
7176 QDF_STATUS_E_FAILURE) {
7177 status = false;
7178 hdd_err("Couldn't pass on WNI_CFG_RATE_FOR_TX_MGMT_2G to CCM");
7179 }
7180
7181 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_RATE_FOR_TX_MGMT_5G,
7182 config->rate_for_tx_mgmt_5g) ==
7183 QDF_STATUS_E_FAILURE) {
7184 status = false;
7185 hdd_err("Couldn't pass on WNI_CFG_RATE_FOR_TX_MGMT_5G to CCM");
7186 }
7187
Krunal Sonidf0f8742016-09-26 14:56:31 -07007188 return status;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007189}
Krishna Kumaar Natarajan90bb6f12017-03-03 21:05:52 -08007190
Kapil Gupta5cda2252016-12-29 18:44:26 +05307191/**
7192 * hdd_update_per_config_to_sme() -initializes the sme config for PER roam
7193 *
7194 * @hdd_ctx: the pointer to hdd context
7195 * @sme_config: sme configuation pointer
7196 *
7197 * Return: None
7198 */
7199static void hdd_update_per_config_to_sme(hdd_context_t *hdd_ctx,
7200 tSmeConfigParams *sme_config)
7201{
7202 sme_config->csrConfig.per_roam_config.enable =
7203 hdd_ctx->config->is_per_roam_enabled;
7204
7205 /* Assigning Tx and Rx for same value */
7206 sme_config->csrConfig.per_roam_config.tx_high_rate_thresh =
7207 hdd_ctx->config->per_roam_high_rate_threshold;
7208 sme_config->csrConfig.per_roam_config.rx_high_rate_thresh =
7209 hdd_ctx->config->per_roam_high_rate_threshold;
7210
7211 /* Assigning Tx and Rx for same value */
7212 sme_config->csrConfig.per_roam_config.tx_low_rate_thresh =
7213 hdd_ctx->config->per_roam_low_rate_threshold;
7214 sme_config->csrConfig.per_roam_config.rx_low_rate_thresh =
7215 hdd_ctx->config->per_roam_low_rate_threshold;
7216
7217 /* Assigning Tx and Rx for same value */
7218 sme_config->csrConfig.per_roam_config.tx_rate_thresh_percnt =
7219 hdd_ctx->config->per_roam_th_percent;
7220 sme_config->csrConfig.per_roam_config.rx_rate_thresh_percnt =
7221 hdd_ctx->config->per_roam_th_percent;
7222
7223 sme_config->csrConfig.per_roam_config.per_rest_time =
7224 hdd_ctx->config->per_roam_rest_time;
Kapil Gupta957827b2017-02-13 15:47:04 +05307225 sme_config->csrConfig.per_roam_config.tx_per_mon_time =
7226 hdd_ctx->config->per_roam_mon_time;
7227 sme_config->csrConfig.per_roam_config.rx_per_mon_time =
7228 hdd_ctx->config->per_roam_mon_time;
Selvaraj, Sridhar0641fab2017-05-17 16:02:00 +05307229
7230 /* Assigning minimum roamable AP RSSI for candidate selection */
7231 sme_config->csrConfig.per_roam_config.min_candidate_rssi =
7232 hdd_ctx->config->min_candidate_rssi;
Kapil Gupta5cda2252016-12-29 18:44:26 +05307233}
7234
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007235/**
Tushnim Bhattacharyyaba8ee932017-03-23 09:27:40 -07007236 * hdd_set_policy_mgr_user_cfg() -initializes the policy manager
7237 * configuration parameters
7238 *
7239 * @pHddCtx: the pointer to hdd context
7240 *
7241 * Return: QDF_STATUS_SUCCESS if configuration is correctly applied,
7242 * otherwise the appropriate QDF_STATUS would be returned
7243 */
7244QDF_STATUS hdd_set_policy_mgr_user_cfg(hdd_context_t *hdd_ctx)
7245{
7246 QDF_STATUS status;
7247 struct policy_mgr_user_cfg *user_cfg;
7248
7249 user_cfg = qdf_mem_malloc(sizeof(*user_cfg));
7250 if (NULL == user_cfg) {
7251 hdd_err("unable to allocate user_cfg");
7252 return QDF_STATUS_E_NOMEM;
7253 }
7254
7255 user_cfg->conc_system_pref = hdd_ctx->config->conc_system_pref;
7256 user_cfg->enable_mcc_adaptive_scheduler =
7257 hdd_ctx->config->enableMCCAdaptiveScheduler;
7258 user_cfg->max_concurrent_active_sessions =
7259 hdd_ctx->config->gMaxConcurrentActiveSessions;
Tushnim Bhattacharyya7e546692017-03-23 18:30:29 -07007260 user_cfg->enable2x2 = hdd_ctx->config->enable2x2;
Tushnim Bhattacharyya5cc9edc2017-04-26 12:33:59 -07007261 user_cfg->mcc_to_scc_switch_mode =
7262 hdd_ctx->config->WlanMccToSccSwitchMode;
7263 user_cfg->sub_20_mhz_enabled = cds_is_sub_20_mhz_enabled();
Tushnim Bhattacharyyaba8ee932017-03-23 09:27:40 -07007264 status = policy_mgr_set_user_cfg(hdd_ctx->hdd_psoc, user_cfg);
7265
7266 qdf_mem_free(user_cfg);
7267
7268 return status;
7269}
7270/**
Srinivas Girigowda3ea486d2017-06-28 17:19:49 -07007271 * hdd_to_csr_wmm_mode() - Utility function to convert HDD to CSR WMM mode
7272 *
7273 * @enum hdd_wmm_user_mode - hdd WMM user mode
7274 *
7275 * Return: CSR WMM mode
7276 */
7277static eCsrRoamWmmUserModeType
7278hdd_to_csr_wmm_mode(enum hdd_wmm_user_mode mode)
7279{
7280 switch (mode) {
7281 case HDD_WMM_USER_MODE_QBSS_ONLY:
7282 return eCsrRoamWmmQbssOnly;
7283 case HDD_WMM_USER_MODE_NO_QOS:
7284 return eCsrRoamWmmNoQos;
7285 case HDD_WMM_USER_MODE_AUTO:
7286 default:
7287 return eCsrRoamWmmAuto;
7288 }
7289}
7290
7291/**
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007292 * hdd_set_sme_config() -initializes the sme configuration parameters
7293 *
7294 * @pHddCtx: the pointer to hdd context
7295 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307296 * Return: QDF_STATUS_SUCCESS if configuration is correctly applied,
7297 * otherwise the appropriate QDF_STATUS would be returned
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007298 */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307299QDF_STATUS hdd_set_sme_config(hdd_context_t *pHddCtx)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007300{
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307301 QDF_STATUS status = QDF_STATUS_SUCCESS;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007302 tSmeConfigParams *smeConfig;
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08007303 uint8_t rrm_capab_len;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007304
7305 struct hdd_config *pConfig = pHddCtx->config;
7306
Anurag Chouhan600c3a02016-03-01 10:33:54 +05307307 smeConfig = qdf_mem_malloc(sizeof(*smeConfig));
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007308 if (NULL == smeConfig) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08007309 hdd_err("unable to allocate smeConfig");
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307310 return QDF_STATUS_E_NOMEM;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007311 }
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007312
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07007313 hdd_debug("%s bWmmIsEnabled=%d 802_11e_enabled=%d dot11Mode=%d",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007314 __func__, pConfig->WmmMode, pConfig->b80211eIsEnabled,
7315 pConfig->dot11Mode);
7316
7317 /* Config params obtained from the registry
7318 * To Do: set regulatory information here
7319 */
7320
7321 smeConfig->csrConfig.RTSThreshold = pConfig->RTSThreshold;
7322 smeConfig->csrConfig.FragmentationThreshold =
7323 pConfig->FragmentationThreshold;
7324 smeConfig->csrConfig.shortSlotTime = pConfig->ShortSlotTimeEnabled;
7325 smeConfig->csrConfig.Is11dSupportEnabled = pConfig->Is11dSupportEnabled;
7326 smeConfig->csrConfig.HeartbeatThresh24 = pConfig->HeartbeatThresh24;
7327
7328 smeConfig->csrConfig.phyMode =
7329 hdd_cfg_xlate_to_csr_phy_mode(pConfig->dot11Mode);
7330
7331 if (pConfig->dot11Mode == eHDD_DOT11_MODE_abg ||
7332 pConfig->dot11Mode == eHDD_DOT11_MODE_11b ||
7333 pConfig->dot11Mode == eHDD_DOT11_MODE_11g ||
7334 pConfig->dot11Mode == eHDD_DOT11_MODE_11b_ONLY ||
7335 pConfig->dot11Mode == eHDD_DOT11_MODE_11g_ONLY) {
7336 smeConfig->csrConfig.channelBondingMode24GHz = 0;
7337 smeConfig->csrConfig.channelBondingMode5GHz = 0;
7338 } else {
7339 smeConfig->csrConfig.channelBondingMode24GHz =
7340 pConfig->nChannelBondingMode24GHz;
7341 smeConfig->csrConfig.channelBondingMode5GHz =
7342 pConfig->nChannelBondingMode5GHz;
7343 }
7344 smeConfig->csrConfig.TxRate = pConfig->TxRate;
7345 smeConfig->csrConfig.nScanResultAgeCount = pConfig->ScanResultAgeCount;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007346 smeConfig->csrConfig.AdHocChannel24 = pConfig->OperatingChannel;
7347 smeConfig->csrConfig.fSupplicantCountryCodeHasPriority =
7348 pConfig->fSupplicantCountryCodeHasPriority;
7349 smeConfig->csrConfig.bCatRssiOffset = pConfig->nRssiCatGap;
7350 smeConfig->csrConfig.vccRssiThreshold = pConfig->nVccRssiTrigger;
7351 smeConfig->csrConfig.vccUlMacLossThreshold =
7352 pConfig->nVccUlMacLossThreshold;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007353 smeConfig->csrConfig.nInitialDwellTime = pConfig->nInitialDwellTime;
7354 smeConfig->csrConfig.initial_scan_no_dfs_chnl =
7355 pConfig->initial_scan_no_dfs_chnl;
7356 smeConfig->csrConfig.nActiveMaxChnTime = pConfig->nActiveMaxChnTime;
7357 smeConfig->csrConfig.nActiveMinChnTime = pConfig->nActiveMinChnTime;
7358 smeConfig->csrConfig.nPassiveMaxChnTime = pConfig->nPassiveMaxChnTime;
7359 smeConfig->csrConfig.nPassiveMinChnTime = pConfig->nPassiveMinChnTime;
7360#ifdef WLAN_AP_STA_CONCURRENCY
7361 smeConfig->csrConfig.nActiveMaxChnTimeConc =
7362 pConfig->nActiveMaxChnTimeConc;
7363 smeConfig->csrConfig.nActiveMinChnTimeConc =
7364 pConfig->nActiveMinChnTimeConc;
7365 smeConfig->csrConfig.nPassiveMaxChnTimeConc =
7366 pConfig->nPassiveMaxChnTimeConc;
7367 smeConfig->csrConfig.nPassiveMinChnTimeConc =
7368 pConfig->nPassiveMinChnTimeConc;
7369 smeConfig->csrConfig.nRestTimeConc = pConfig->nRestTimeConc;
Agrawal Ashish17bb3902016-05-05 13:29:40 +05307370 smeConfig->csrConfig.min_rest_time_conc = pConfig->min_rest_time_conc;
7371 smeConfig->csrConfig.idle_time_conc = pConfig->idle_time_conc;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007372
7373#endif
7374 smeConfig->csrConfig.Is11eSupportEnabled = pConfig->b80211eIsEnabled;
Srinivas Girigowda3ea486d2017-06-28 17:19:49 -07007375 smeConfig->csrConfig.WMMSupportMode =
7376 hdd_to_csr_wmm_mode(pConfig->WmmMode);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007377
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08007378 smeConfig->rrmConfig.rrm_enabled = pConfig->fRrmEnable;
7379 smeConfig->rrmConfig.max_randn_interval = pConfig->nRrmRandnIntvl;
7380 hdd_hex_string_to_u8_array(pConfig->rm_capability,
7381 smeConfig->rrmConfig.rm_capability, &rrm_capab_len,
7382 DOT11F_IE_RRMENABLEDCAP_MAX_LEN);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007383 /* Remaining config params not obtained from registry
7384 * On RF EVB beacon using channel 1.
7385 */
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007386 smeConfig->csrConfig.nVhtChannelWidth = pConfig->vhtChannelWidth;
7387 smeConfig->csrConfig.enableTxBF = pConfig->enableTxBF;
Kiran Kumar Lokere5302ab62015-12-16 16:03:16 -08007388 smeConfig->csrConfig.enable_txbf_sap_mode =
7389 pConfig->enable_txbf_sap_mode;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007390 smeConfig->csrConfig.enable2x2 = pConfig->enable2x2;
7391 smeConfig->csrConfig.enableVhtFor24GHz = pConfig->enableVhtFor24GHzBand;
Kapil Gupta4b2efbb2016-10-03 13:07:20 +05307392 smeConfig->csrConfig.vendor_vht_sap =
7393 pConfig->enable_sap_vendor_vht;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007394 smeConfig->csrConfig.enableMuBformee = pConfig->enableMuBformee;
7395 smeConfig->csrConfig.enableVhtpAid = pConfig->enableVhtpAid;
7396 smeConfig->csrConfig.enableVhtGid = pConfig->enableVhtGid;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007397 smeConfig->csrConfig.enableAmpduPs = pConfig->enableAmpduPs;
7398 smeConfig->csrConfig.enableHtSmps = pConfig->enableHtSmps;
7399 smeConfig->csrConfig.htSmps = pConfig->htSmps;
Archana Ramachandranfec24812016-02-16 16:31:56 -08007400 /* This param cannot be configured from INI */
7401 smeConfig->csrConfig.send_smps_action = true;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007402 smeConfig->csrConfig.AdHocChannel5G = pConfig->AdHocChannel5G;
7403 smeConfig->csrConfig.AdHocChannel24 = pConfig->AdHocChannel24G;
7404 smeConfig->csrConfig.ProprietaryRatesEnabled = 0;
7405 smeConfig->csrConfig.HeartbeatThresh50 = 40;
7406 smeConfig->csrConfig.bandCapability = pConfig->nBandCapability;
7407 if (pConfig->nBandCapability == eCSR_BAND_24) {
7408 smeConfig->csrConfig.Is11hSupportEnabled = 0;
7409 } else {
7410 smeConfig->csrConfig.Is11hSupportEnabled =
7411 pConfig->Is11hSupportEnabled;
7412 }
7413 smeConfig->csrConfig.cbChoice = 0;
7414 smeConfig->csrConfig.eBand = pConfig->nBandCapability;
7415 smeConfig->csrConfig.nTxPowerCap = pConfig->nTxPowerCap;
Padma, Santhosh Kumar29df3622016-08-16 19:15:16 +05307416 smeConfig->csrConfig.allow_tpc_from_ap = pConfig->allow_tpc_from_ap;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007417 smeConfig->csrConfig.fEnableBypass11d = pConfig->enableBypass11d;
7418 smeConfig->csrConfig.fEnableDFSChnlScan = pConfig->enableDFSChnlScan;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007419 smeConfig->csrConfig.nRoamPrefer5GHz = pConfig->nRoamPrefer5GHz;
7420 smeConfig->csrConfig.nRoamIntraBand = pConfig->nRoamIntraBand;
7421 smeConfig->csrConfig.nProbes = pConfig->nProbes;
7422
7423 smeConfig->csrConfig.nRoamScanHomeAwayTime =
7424 pConfig->nRoamScanHomeAwayTime;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007425 smeConfig->csrConfig.fFirstScanOnly2GChnl =
7426 pConfig->enableFirstScan2GOnly;
7427
Peng Xuf5d60c82015-10-02 17:17:03 -07007428 smeConfig->csrConfig.Csr11dinfo.Channels.numChannels = 0;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007429
7430 hdd_set_power_save_offload_config(pHddCtx);
7431
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007432 smeConfig->csrConfig.csr11rConfig.IsFTResourceReqSupported =
7433 pConfig->fFTResourceReqSupported;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007434 smeConfig->csrConfig.isFastRoamIniFeatureEnabled =
7435 pConfig->isFastRoamIniFeatureEnabled;
7436 smeConfig->csrConfig.MAWCEnabled = pConfig->MAWCEnabled;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007437#ifdef FEATURE_WLAN_ESE
7438 smeConfig->csrConfig.isEseIniFeatureEnabled =
7439 pConfig->isEseIniFeatureEnabled;
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07007440 if (pConfig->isEseIniFeatureEnabled)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007441 pConfig->isFastTransitionEnabled = true;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007442#endif
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007443 smeConfig->csrConfig.isFastTransitionEnabled =
7444 pConfig->isFastTransitionEnabled;
7445 smeConfig->csrConfig.RoamRssiDiff = pConfig->RoamRssiDiff;
7446 smeConfig->csrConfig.isWESModeEnabled = pConfig->isWESModeEnabled;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007447 smeConfig->csrConfig.isRoamOffloadScanEnabled =
7448 pConfig->isRoamOffloadScanEnabled;
7449 smeConfig->csrConfig.bFastRoamInConIniFeatureEnabled =
7450 pConfig->bFastRoamInConIniFeatureEnabled;
7451
7452 if (0 == smeConfig->csrConfig.isRoamOffloadScanEnabled) {
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07007453 /* Disable roaming in concurrency if roam scan
7454 * offload is disabled
7455 */
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007456 smeConfig->csrConfig.bFastRoamInConIniFeatureEnabled = 0;
7457 }
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007458 smeConfig->csrConfig.neighborRoamConfig.nNeighborLookupRssiThreshold =
7459 pConfig->nNeighborLookupRssiThreshold;
7460 smeConfig->csrConfig.neighborRoamConfig.delay_before_vdev_stop =
7461 pConfig->delay_before_vdev_stop;
7462 smeConfig->csrConfig.neighborRoamConfig.nOpportunisticThresholdDiff =
7463 pConfig->nOpportunisticThresholdDiff;
7464 smeConfig->csrConfig.neighborRoamConfig.nRoamRescanRssiDiff =
7465 pConfig->nRoamRescanRssiDiff;
7466 smeConfig->csrConfig.neighborRoamConfig.nNeighborScanMaxChanTime =
7467 pConfig->nNeighborScanMaxChanTime;
7468 smeConfig->csrConfig.neighborRoamConfig.nNeighborScanMinChanTime =
7469 pConfig->nNeighborScanMinChanTime;
7470 smeConfig->csrConfig.neighborRoamConfig.nNeighborScanTimerPeriod =
7471 pConfig->nNeighborScanPeriod;
7472 smeConfig->csrConfig.neighborRoamConfig.nMaxNeighborRetries =
7473 pConfig->nMaxNeighborReqTries;
7474 smeConfig->csrConfig.neighborRoamConfig.nNeighborResultsRefreshPeriod =
7475 pConfig->nNeighborResultsRefreshPeriod;
7476 smeConfig->csrConfig.neighborRoamConfig.nEmptyScanRefreshPeriod =
7477 pConfig->nEmptyScanRefreshPeriod;
7478 hdd_string_to_u8_array(pConfig->neighborScanChanList,
7479 smeConfig->csrConfig.neighborRoamConfig.
7480 neighborScanChanList.channelList,
7481 &smeConfig->csrConfig.neighborRoamConfig.
7482 neighborScanChanList.numChannels,
7483 WNI_CFG_VALID_CHANNEL_LIST_LEN);
7484 smeConfig->csrConfig.neighborRoamConfig.nRoamBmissFirstBcnt =
7485 pConfig->nRoamBmissFirstBcnt;
7486 smeConfig->csrConfig.neighborRoamConfig.nRoamBmissFinalBcnt =
7487 pConfig->nRoamBmissFinalBcnt;
7488 smeConfig->csrConfig.neighborRoamConfig.nRoamBeaconRssiWeight =
7489 pConfig->nRoamBeaconRssiWeight;
7490 smeConfig->csrConfig.neighborRoamConfig.nhi_rssi_scan_max_count =
7491 pConfig->nhi_rssi_scan_max_count;
7492 smeConfig->csrConfig.neighborRoamConfig.nhi_rssi_scan_rssi_delta =
7493 pConfig->nhi_rssi_scan_rssi_delta;
7494 smeConfig->csrConfig.neighborRoamConfig.nhi_rssi_scan_delay =
7495 pConfig->nhi_rssi_scan_delay;
7496 smeConfig->csrConfig.neighborRoamConfig.nhi_rssi_scan_rssi_ub =
7497 pConfig->nhi_rssi_scan_rssi_ub;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007498 smeConfig->csrConfig.addTSWhenACMIsOff = pConfig->AddTSWhenACMIsOff;
7499 smeConfig->csrConfig.fValidateList = pConfig->fValidateScanList;
7500 smeConfig->csrConfig.allowDFSChannelRoam = pConfig->allowDFSChannelRoam;
7501
7502 /* Enable/Disable MCC */
7503 smeConfig->csrConfig.fEnableMCCMode = pConfig->enableMCC;
7504 smeConfig->csrConfig.mcc_rts_cts_prot_enable =
7505 pConfig->mcc_rts_cts_prot_enable;
7506 smeConfig->csrConfig.mcc_bcast_prob_resp_enable =
7507 pConfig->mcc_bcast_prob_resp_enable;
7508 smeConfig->csrConfig.fAllowMCCGODiffBI = pConfig->allowMCCGODiffBI;
7509
7510 /* Scan Results Aging Time out value */
7511 smeConfig->csrConfig.scanCfgAgingTime = pConfig->scanAgingTimeout;
7512
Krunal Sonia2c0e412017-05-04 14:12:41 +05307513 smeConfig->csrConfig.enable_tx_ldpc = pConfig->enable_tx_ldpc;
7514 smeConfig->csrConfig.enable_rx_ldpc = pConfig->enable_rx_ldpc;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007515#ifdef FEATURE_WLAN_MCC_TO_SCC_SWITCH
7516 smeConfig->csrConfig.cc_switch_mode = pConfig->WlanMccToSccSwitchMode;
7517#endif
7518
Deepak Dhamdhere612392c2016-08-28 02:56:51 -07007519 smeConfig->csrConfig.max_amsdu_num = pConfig->max_amsdu_num;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007520 smeConfig->csrConfig.nSelect5GHzMargin = pConfig->nSelect5GHzMargin;
7521
7522 smeConfig->csrConfig.isCoalesingInIBSSAllowed =
7523 pHddCtx->config->isCoalesingInIBSSAllowed;
7524 smeConfig->csrConfig.ignore_peer_erp_info =
7525 pConfig->ignore_peer_erp_info;
7526 /* update SSR config */
7527 sme_update_enable_ssr((tHalHandle) (pHddCtx->hHal),
7528 pHddCtx->config->enableSSR);
7529
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007530 /* Update maximum interfaces information */
Krunal Soni1878d3a2016-01-14 13:00:44 -08007531 smeConfig->csrConfig.max_intf_count = pHddCtx->max_intf_count;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007532
Krunal Soni1878d3a2016-01-14 13:00:44 -08007533 smeConfig->csrConfig.fEnableDebugLog = pHddCtx->config->gEnableDebugLog;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007534
Krunal Soni1878d3a2016-01-14 13:00:44 -08007535 smeConfig->csrConfig.enable5gEBT = pHddCtx->config->enable5gEBT;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007536
Krunal Soni1878d3a2016-01-14 13:00:44 -08007537 smeConfig->csrConfig.enableSelfRecovery =
7538 pHddCtx->config->enableSelfRecovery;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007539#ifdef WLAN_FEATURE_ROAM_OFFLOAD
7540 smeConfig->csrConfig.isRoamOffloadEnabled =
7541 pHddCtx->config->isRoamOffloadEnabled;
7542#endif
7543 smeConfig->csrConfig.conc_custom_rule1 =
7544 pHddCtx->config->conc_custom_rule1;
7545 smeConfig->csrConfig.conc_custom_rule2 =
7546 pHddCtx->config->conc_custom_rule2;
7547 smeConfig->csrConfig.is_sta_connection_in_5gz_enabled =
7548 pHddCtx->config->is_sta_connection_in_5gz_enabled;
7549
Krunal Soni1878d3a2016-01-14 13:00:44 -08007550 smeConfig->csrConfig.f_sta_miracast_mcc_rest_time_val =
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007551 pHddCtx->config->sta_miracast_mcc_rest_time_val;
7552
7553#ifdef FEATURE_AP_MCC_CH_AVOIDANCE
Krunal Soni1878d3a2016-01-14 13:00:44 -08007554 smeConfig->csrConfig.sap_channel_avoidance =
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007555 pHddCtx->config->sap_channel_avoidance;
7556#endif /* FEATURE_AP_MCC_CH_AVOIDANCE */
7557
Krunal Soni1878d3a2016-01-14 13:00:44 -08007558 smeConfig->csrConfig.f_prefer_non_dfs_on_radar =
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007559 pHddCtx->config->prefer_non_dfs_on_radar;
7560
Krunal Soni1878d3a2016-01-14 13:00:44 -08007561 smeConfig->csrConfig.is_ps_enabled = pHddCtx->config->is_ps_enabled;
Kiran Kumar Lokere0ac679c2016-11-17 17:43:36 -08007562 smeConfig->csrConfig.auto_bmps_timer_val =
7563 pHddCtx->config->auto_bmps_timer_val;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007564 hdd_set_fine_time_meas_cap(pHddCtx, smeConfig);
7565
7566 cds_set_multicast_logging(pHddCtx->config->multicast_host_fw_msgs);
7567
7568 smeConfig->csrConfig.sendDeauthBeforeCon = pConfig->sendDeauthBeforeCon;
7569
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007570 smeConfig->csrConfig.max_scan_count =
7571 pHddCtx->config->max_scan_count;
7572
7573 /* Update 802.11p config */
7574 smeConfig->csrConfig.enable_dot11p =
7575 (pHddCtx->config->dot11p_mode != WLAN_HDD_11P_DISABLED);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007576
Krunal Soni1878d3a2016-01-14 13:00:44 -08007577 smeConfig->csrConfig.early_stop_scan_enable =
Varun Reddy Yeturu05186292015-09-28 17:12:33 -07007578 pHddCtx->config->early_stop_scan_enable;
Krunal Soni1878d3a2016-01-14 13:00:44 -08007579 smeConfig->csrConfig.early_stop_scan_min_threshold =
Varun Reddy Yeturu05186292015-09-28 17:12:33 -07007580 pHddCtx->config->early_stop_scan_min_threshold;
Krunal Soni1878d3a2016-01-14 13:00:44 -08007581 smeConfig->csrConfig.early_stop_scan_max_threshold =
Varun Reddy Yeturu05186292015-09-28 17:12:33 -07007582 pHddCtx->config->early_stop_scan_max_threshold;
Varun Reddy Yeturu044bda22015-11-21 22:03:40 -08007583 smeConfig->csrConfig.first_scan_bucket_threshold =
7584 pHddCtx->config->first_scan_bucket_threshold;
Gupta, Kapilc68ad462016-02-01 19:17:23 +05307585
7586 smeConfig->csrConfig.roam_dense_rssi_thresh_offset =
7587 pHddCtx->config->roam_dense_rssi_thresh_offset;
7588 smeConfig->csrConfig.roam_dense_min_aps =
7589 pHddCtx->config->roam_dense_min_aps;
7590 smeConfig->csrConfig.roam_dense_traffic_thresh =
7591 pHddCtx->config->roam_dense_traffic_thresh;
Sandeep Puligilla93a29ec2016-02-12 16:10:56 -08007592 smeConfig->csrConfig.obss_width_interval =
7593 pHddCtx->config->obss_width_trigger_interval;
7594 smeConfig->csrConfig.obss_active_dwelltime =
7595 pHddCtx->config->obss_active_dwelltime;
7596 smeConfig->csrConfig.obss_passive_dwelltime =
7597 pHddCtx->config->obss_passive_dwelltime;
Abhishek Singh165bc602016-03-21 12:43:00 +05307598 smeConfig->csrConfig.ignore_peer_ht_opmode =
7599 pConfig->ignore_peer_ht_opmode;
Abhishek Singh5ea86532016-04-27 14:10:53 +05307600 smeConfig->csrConfig.enable_fatal_event =
7601 pConfig->enable_fatal_event;
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05307602 smeConfig->csrConfig.scan_adaptive_dwell_mode =
7603 pHddCtx->config->scan_adaptive_dwell_mode;
7604 smeConfig->csrConfig.roamscan_adaptive_dwell_mode =
7605 pHddCtx->config->roamscan_adaptive_dwell_mode;
Gupta, Kapilc68ad462016-02-01 19:17:23 +05307606
Kapil Gupta5cda2252016-12-29 18:44:26 +05307607 hdd_update_per_config_to_sme(pHddCtx, smeConfig);
7608
Abhishek Singh10ecf582016-05-04 17:48:59 +05307609 smeConfig->csrConfig.enable_edca_params =
7610 pConfig->enable_edca_params;
7611
7612 smeConfig->csrConfig.edca_vo_cwmin =
7613 pConfig->edca_vo_cwmin;
7614 smeConfig->csrConfig.edca_vi_cwmin =
7615 pConfig->edca_vi_cwmin;
7616 smeConfig->csrConfig.edca_bk_cwmin =
7617 pConfig->edca_bk_cwmin;
7618 smeConfig->csrConfig.edca_be_cwmin =
7619 pConfig->edca_be_cwmin;
7620
7621 smeConfig->csrConfig.edca_vo_cwmax =
7622 pConfig->edca_vo_cwmax;
7623 smeConfig->csrConfig.edca_vi_cwmax =
7624 pConfig->edca_vi_cwmax;
7625 smeConfig->csrConfig.edca_bk_cwmax =
7626 pConfig->edca_bk_cwmax;
7627 smeConfig->csrConfig.edca_be_cwmax =
7628 pConfig->edca_be_cwmax;
7629
7630 smeConfig->csrConfig.edca_vo_aifs =
7631 pConfig->edca_vo_aifs;
7632 smeConfig->csrConfig.edca_vi_aifs =
7633 pConfig->edca_vi_aifs;
7634 smeConfig->csrConfig.edca_bk_aifs =
7635 pConfig->edca_bk_aifs;
7636 smeConfig->csrConfig.edca_be_aifs =
7637 pConfig->edca_be_aifs;
Agrawal Ashish21ba2572016-09-03 16:40:10 +05307638 smeConfig->csrConfig.sta_roam_policy_params.dfs_mode =
7639 CSR_STA_ROAM_POLICY_DFS_ENABLED;
7640 smeConfig->csrConfig.sta_roam_policy_params.skip_unsafe_channels = 0;
Abhishek Singh10ecf582016-05-04 17:48:59 +05307641
Kapil Gupta4f0c0c12017-02-07 15:21:15 +05307642 smeConfig->snr_monitor_enabled = pHddCtx->config->fEnableSNRMonitoring;
7643
Padma, Santhosh Kumara7119672016-08-16 16:05:14 +05307644 smeConfig->csrConfig.tx_aggregation_size =
7645 pHddCtx->config->tx_aggregation_size;
7646 smeConfig->csrConfig.rx_aggregation_size =
7647 pHddCtx->config->rx_aggregation_size;
Selvaraj, Sridhar4f684bb2017-01-19 15:59:23 +05307648 smeConfig->csrConfig.enable_bcast_probe_rsp =
7649 pHddCtx->config->enable_bcast_probe_rsp;
Selvaraj, Sridhara521aab2017-03-25 16:42:34 +05307650 smeConfig->csrConfig.qcn_ie_support =
7651 pHddCtx->config->qcn_ie_support;
Selvaraj, Sridhar97ce6582017-01-20 17:06:34 +05307652 smeConfig->csrConfig.fils_max_chan_guard_time =
7653 pHddCtx->config->fils_max_chan_guard_time;
Padma, Santhosh Kumara7119672016-08-16 16:05:14 +05307654
Krishna Kumaar Natarajan90bb6f12017-03-03 21:05:52 -08007655 hdd_he_set_sme_config(smeConfig, pConfig);
7656
Naveen Rawat2b6e3c92017-03-20 13:59:07 -07007657 smeConfig->csrConfig.pkt_err_disconn_th =
7658 pHddCtx->config->pkt_err_disconn_th;
Selvaraj, Sridhar57ce4df2017-05-29 18:30:49 +05307659 smeConfig->csrConfig.disallow_duration =
7660 pHddCtx->config->disallow_duration;
7661 smeConfig->csrConfig.rssi_channel_penalization =
7662 pHddCtx->config->rssi_channel_penalization;
7663 smeConfig->csrConfig.num_disallowed_aps =
7664 pHddCtx->config->num_disallowed_aps;
7665
Naveen Rawatb2fc4132017-05-10 20:42:05 -07007666 smeConfig->csrConfig.is_force_1x1 =
7667 pHddCtx->config->is_force_1x1;
Naveen Rawat247a8682017-06-05 15:00:31 -07007668 smeConfig->csrConfig.num_11b_tx_chains =
7669 pHddCtx->config->num_11b_tx_chains;
7670 smeConfig->csrConfig.num_11ag_tx_chains =
7671 pHddCtx->config->num_11ag_tx_chains;
7672
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007673 status = sme_update_config(pHddCtx->hHal, smeConfig);
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07007674 if (!QDF_IS_STATUS_SUCCESS(status))
7675 hdd_err("sme_update_config() failure: %d", status);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007676
Anurag Chouhan600c3a02016-03-01 10:33:54 +05307677 qdf_mem_free(smeConfig);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007678 return status;
7679}
7680
7681/**
7682 * hdd_execute_global_config_command() - execute the global config command
7683 * @pHddCtx: the pointer to hdd context
7684 * @command: the command to run
7685 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307686 * Return: the QDF_STATUS return from hdd_execute_config_command
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007687 */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307688QDF_STATUS hdd_execute_global_config_command(hdd_context_t *pHddCtx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007689 char *command)
7690{
7691 return hdd_execute_config_command(g_registry_table,
7692 ARRAY_SIZE(g_registry_table),
7693 (uint8_t *) pHddCtx->config,
7694 pHddCtx, command);
7695}
7696
7697/**
7698 * hdd_cfg_get_global_config() - get the configuration table
7699 * @pHddCtx: pointer to hdd context
7700 * @pBuf: buffer to store the configuration
7701 * @buflen: size of the buffer
7702 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307703 * Return: QDF_STATUS_SUCCESS if the configuration and buffer size can carry
7704 * the content, otherwise QDF_STATUS_E_RESOURCES
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007705 */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307706QDF_STATUS hdd_cfg_get_global_config(hdd_context_t *pHddCtx, char *pBuf,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007707 int buflen)
7708{
7709 return hdd_cfg_get_config(g_registry_table,
7710 ARRAY_SIZE(g_registry_table),
7711 (uint8_t *) pHddCtx->config, pHddCtx, pBuf,
7712 buflen);
7713}
7714
7715/**
Deepak Dhamdhere828f1892017-02-09 11:51:19 -08007716 * hdd_get_pmkid_modes() - returns PMKID mode bits
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007717 * @pHddCtx: the pointer to hdd context
7718 *
Deepak Dhamdhere828f1892017-02-09 11:51:19 -08007719 * Return: value of pmkid_modes
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007720 */
Deepak Dhamdhere828f1892017-02-09 11:51:19 -08007721void hdd_get_pmkid_modes(hdd_context_t *pHddCtx,
7722 struct pmkid_mode_bits *pmkid_modes)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007723{
Deepak Dhamdhere828f1892017-02-09 11:51:19 -08007724 pmkid_modes->fw_okc = (pHddCtx->config->pmkid_modes &
7725 CFG_PMKID_MODES_OKC) ? 1 : 0;
7726 pmkid_modes->fw_pmksa_cache = (pHddCtx->config->pmkid_modes &
7727 CFG_PMKID_MODES_PMKSA_CACHING) ? 1 : 0;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007728}
7729
7730/**
7731 * hdd_update_nss() - Update the number of spatial streams supported.
7732 * Ensure that nss is either 1 or 2 before calling this.
7733 *
7734 * @hdd_ctx: the pointer to hdd context
7735 * @nss: the number of spatial streams to be updated
7736 *
7737 * This function is used to modify the number of spatial streams
7738 * supported when not in connected state.
7739 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307740 * Return: QDF_STATUS_SUCCESS if nss is correctly updated,
7741 * otherwise QDF_STATUS_E_FAILURE would be returned
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007742 */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307743QDF_STATUS hdd_update_nss(hdd_context_t *hdd_ctx, uint8_t nss)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007744{
7745 struct hdd_config *hdd_config = hdd_ctx->config;
7746 uint32_t temp = 0;
7747 uint32_t rx_supp_data_rate, tx_supp_data_rate;
7748 bool status = true;
7749 tSirMacHTCapabilityInfo *ht_cap_info;
7750 uint8_t mcs_set[SIZE_OF_SUPPORTED_MCS_SET] = {0};
7751 uint8_t mcs_set_temp[SIZE_OF_SUPPORTED_MCS_SET];
Sandeep Puligilla98917432016-06-10 13:50:28 -07007752 uint32_t val, val32;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007753 uint16_t val16;
7754 uint8_t enable2x2;
7755
7756 if ((nss == 2) && (hdd_ctx->num_rf_chains != 2)) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08007757 hdd_err("No support for 2 spatial streams");
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307758 return QDF_STATUS_E_INVAL;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007759 }
7760
7761 enable2x2 = (nss == 1) ? 0 : 1;
7762
7763 if (hdd_config->enable2x2 == enable2x2) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07007764 hdd_debug("NSS same as requested");
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307765 return QDF_STATUS_SUCCESS;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007766 }
7767
7768 if (true == sme_is_any_session_in_connected_state(hdd_ctx->hHal)) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08007769 hdd_err("Connected sessions present, Do not change NSS");
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307770 return QDF_STATUS_E_INVAL;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007771 }
7772
7773 hdd_config->enable2x2 = enable2x2;
7774
7775 if (!hdd_config->enable2x2) {
7776 /* 1x1 */
Kiran Kumar Lokere666bf852016-05-02 12:23:02 -07007777 rx_supp_data_rate = VHT_RX_HIGHEST_SUPPORTED_DATA_RATE_1_1;
7778 tx_supp_data_rate = VHT_TX_HIGHEST_SUPPORTED_DATA_RATE_1_1;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007779 } else {
7780 /* 2x2 */
Kiran Kumar Lokere666bf852016-05-02 12:23:02 -07007781 rx_supp_data_rate = VHT_RX_HIGHEST_SUPPORTED_DATA_RATE_2_2;
7782 tx_supp_data_rate = VHT_TX_HIGHEST_SUPPORTED_DATA_RATE_2_2;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007783 }
7784
7785 /* Update Rx Highest Long GI data Rate */
7786 if (sme_cfg_set_int(hdd_ctx->hHal,
7787 WNI_CFG_VHT_RX_HIGHEST_SUPPORTED_DATA_RATE,
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307788 rx_supp_data_rate) == QDF_STATUS_E_FAILURE) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007789 status = false;
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08007790 hdd_err("Could not pass on WNI_CFG_VHT_RX_HIGHEST_SUPPORTED_DATA_RATE to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007791 }
7792
7793 /* Update Tx Highest Long GI data Rate */
7794 if (sme_cfg_set_int(hdd_ctx->hHal,
7795 WNI_CFG_VHT_TX_HIGHEST_SUPPORTED_DATA_RATE,
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307796 tx_supp_data_rate) == QDF_STATUS_E_FAILURE) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007797 status = false;
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08007798 hdd_err("Could not pass on WNI_CFG_VHT_TX_HIGHEST_SUPPORTED_DATA_RATE to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007799 }
7800
7801 sme_cfg_get_int(hdd_ctx->hHal, WNI_CFG_HT_CAP_INFO, &temp);
7802 val16 = (uint16_t)temp;
7803 ht_cap_info = (tSirMacHTCapabilityInfo *)&val16;
Sandeep Puligilla98917432016-06-10 13:50:28 -07007804 if (!(hdd_ctx->ht_tx_stbc_supported && hdd_config->enable2x2)) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007805 ht_cap_info->txSTBC = 0;
Sandeep Puligilla98917432016-06-10 13:50:28 -07007806 } else {
7807 sme_cfg_get_int(hdd_ctx->hHal, WNI_CFG_VHT_TXSTBC, &val32);
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07007808 hdd_debug("STBC %d", val32);
Sandeep Puligilla98917432016-06-10 13:50:28 -07007809 ht_cap_info->txSTBC = val32;
7810 }
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007811 temp = val16;
7812 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_HT_CAP_INFO,
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307813 temp) == QDF_STATUS_E_FAILURE) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007814 status = false;
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08007815 hdd_err("Could not pass on WNI_CFG_HT_CAP_INFO to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007816 }
7817
7818 sme_cfg_get_int(hdd_ctx->hHal, WNI_CFG_VHT_BASIC_MCS_SET, &temp);
7819 temp = (temp & 0xFFFC) | hdd_config->vhtRxMCS;
7820 if (hdd_config->enable2x2)
7821 temp = (temp & 0xFFF3) | (hdd_config->vhtRxMCS2x2 << 2);
7822 else
7823 temp |= 0x000C;
7824
7825 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_VHT_BASIC_MCS_SET,
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307826 temp) == QDF_STATUS_E_FAILURE) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007827 status = false;
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08007828 hdd_err("Could not pass on WNI_CFG_VHT_BASIC_MCS_SET to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007829 }
7830
7831 sme_cfg_get_int(hdd_ctx->hHal, WNI_CFG_VHT_RX_MCS_MAP, &temp);
7832 temp = (temp & 0xFFFC) | hdd_config->vhtRxMCS;
7833 if (hdd_config->enable2x2)
7834 temp = (temp & 0xFFF3) | (hdd_config->vhtRxMCS2x2 << 2);
7835 else
7836 temp |= 0x000C;
7837
7838 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_VHT_RX_MCS_MAP,
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307839 temp) == QDF_STATUS_E_FAILURE) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007840 status = false;
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08007841 hdd_err("Could not pass on WNI_CFG_VHT_RX_MCS_MAP to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007842 }
7843
7844 sme_cfg_get_int(hdd_ctx->hHal, WNI_CFG_VHT_TX_MCS_MAP, &temp);
7845 temp = (temp & 0xFFFC) | hdd_config->vhtTxMCS;
7846 if (hdd_config->enable2x2)
7847 temp = (temp & 0xFFF3) | (hdd_config->vhtTxMCS2x2 << 2);
7848 else
7849 temp |= 0x000C;
7850
7851 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_VHT_TX_MCS_MAP,
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307852 temp) == QDF_STATUS_E_FAILURE) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007853 status = false;
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08007854 hdd_err("Could not pass on WNI_CFG_VHT_TX_MCS_MAP to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007855 }
7856
7857#define WLAN_HDD_RX_MCS_ALL_NSTREAM_RATES 0xff
7858 val = SIZE_OF_SUPPORTED_MCS_SET;
7859 sme_cfg_get_str(hdd_ctx->hHal, WNI_CFG_SUPPORTED_MCS_SET,
7860 mcs_set_temp, &val);
7861
7862 mcs_set[0] = mcs_set_temp[0];
7863 if (hdd_config->enable2x2)
7864 for (val = 0; val < nss; val++)
7865 mcs_set[val] = WLAN_HDD_RX_MCS_ALL_NSTREAM_RATES;
7866
7867 if (sme_cfg_set_str(hdd_ctx->hHal, WNI_CFG_SUPPORTED_MCS_SET,
7868 mcs_set,
7869 SIZE_OF_SUPPORTED_MCS_SET) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307870 QDF_STATUS_E_FAILURE) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007871 status = false;
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08007872 hdd_err("Could not pass on MCS SET to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007873 }
7874#undef WLAN_HDD_RX_MCS_ALL_NSTREAM_RATES
7875
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307876 if (QDF_STATUS_SUCCESS != sme_update_nss(hdd_ctx->hHal, nss))
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007877 status = false;
7878
Tushnim Bhattacharyya7e546692017-03-23 18:30:29 -07007879 hdd_set_policy_mgr_user_cfg(hdd_ctx);
7880
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307881 return (status == false) ? QDF_STATUS_E_FAILURE : QDF_STATUS_SUCCESS;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007882}