blob: d4e3f6d6222e00b73366b91a15425b6a4ac16fc6 [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[] = {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800332 REG_VARIABLE(CFG_RTS_THRESHOLD_NAME, WLAN_PARAM_Integer,
333 struct hdd_config, RTSThreshold,
334 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
335 CFG_RTS_THRESHOLD_DEFAULT,
336 CFG_RTS_THRESHOLD_MIN,
337 CFG_RTS_THRESHOLD_MAX),
338
339 REG_VARIABLE(CFG_FRAG_THRESHOLD_NAME, WLAN_PARAM_Integer,
340 struct hdd_config, FragmentationThreshold,
341 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
342 CFG_FRAG_THRESHOLD_DEFAULT,
343 CFG_FRAG_THRESHOLD_MIN,
344 CFG_FRAG_THRESHOLD_MAX),
345
346 REG_VARIABLE(CFG_OPERATING_CHANNEL_NAME, WLAN_PARAM_Integer,
347 struct hdd_config, OperatingChannel,
348 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
349 CFG_OPERATING_CHANNEL_DEFAULT,
350 CFG_OPERATING_CHANNEL_MIN,
351 CFG_OPERATING_CHANNEL_MAX),
352
353 REG_VARIABLE(CFG_SHORT_SLOT_TIME_ENABLED_NAME, WLAN_PARAM_Integer,
354 struct hdd_config, ShortSlotTimeEnabled,
355 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
356 CFG_SHORT_SLOT_TIME_ENABLED_DEFAULT,
357 CFG_SHORT_SLOT_TIME_ENABLED_MIN,
358 CFG_SHORT_SLOT_TIME_ENABLED_MAX),
359
360 REG_VARIABLE(CFG_11D_SUPPORT_ENABLED_NAME, WLAN_PARAM_Integer,
361 struct hdd_config, Is11dSupportEnabled,
362 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
363 CFG_11D_SUPPORT_ENABLED_DEFAULT,
364 CFG_11D_SUPPORT_ENABLED_MIN,
365 CFG_11D_SUPPORT_ENABLED_MAX),
366
367 REG_VARIABLE(CFG_11H_SUPPORT_ENABLED_NAME, WLAN_PARAM_Integer,
368 struct hdd_config, Is11hSupportEnabled,
369 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
370 CFG_11H_SUPPORT_ENABLED_DEFAULT,
371 CFG_11H_SUPPORT_ENABLED_MIN,
372 CFG_11H_SUPPORT_ENABLED_MAX),
373
374 REG_VARIABLE(CFG_COUNTRY_CODE_PRIORITY_NAME, WLAN_PARAM_Integer,
375 struct hdd_config, fSupplicantCountryCodeHasPriority,
376 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
377 CFG_COUNTRY_CODE_PRIORITY_DEFAULT,
378 CFG_COUNTRY_CODE_PRIORITY_MIN,
379 CFG_COUNTRY_CODE_PRIORITY_MAX),
380
381 REG_VARIABLE(CFG_HEARTBEAT_THRESH_24_NAME, WLAN_PARAM_Integer,
382 struct hdd_config, HeartbeatThresh24,
383 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
384 CFG_HEARTBEAT_THRESH_24_DEFAULT,
385 CFG_HEARTBEAT_THRESH_24_MIN,
386 CFG_HEARTBEAT_THRESH_24_MAX),
387
388 REG_VARIABLE_STRING(CFG_POWER_USAGE_NAME, WLAN_PARAM_String,
389 struct hdd_config, PowerUsageControl,
390 VAR_FLAGS_OPTIONAL,
391 (void *)CFG_POWER_USAGE_DEFAULT),
392
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800393 REG_VARIABLE(CFG_ENABLE_IMPS_NAME, WLAN_PARAM_Integer,
394 struct hdd_config, fIsImpsEnabled,
395 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
396 CFG_ENABLE_IMPS_DEFAULT,
397 CFG_ENABLE_IMPS_MIN,
398 CFG_ENABLE_IMPS_MAX),
399
400 REG_VARIABLE(CFG_ENABLE_PS_NAME, WLAN_PARAM_Integer,
401 struct hdd_config, is_ps_enabled,
402 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
403 CFG_ENABLE_PS_DEFAULT,
404 CFG_ENABLE_PS_MIN,
405 CFG_ENABLE_PS_MAX),
406
Kiran Kumar Lokere0ac679c2016-11-17 17:43:36 -0800407 REG_VARIABLE(CFG_AUTO_PS_ENABLE_TIMER_NAME, WLAN_PARAM_Integer,
408 struct hdd_config, auto_bmps_timer_val,
409 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
410 CFG_AUTO_PS_ENABLE_TIMER_DEFAULT,
411 CFG_AUTO_PS_ENABLE_TIMER_MIN,
412 CFG_AUTO_PS_ENABLE_TIMER_MAX),
413
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800414 REG_VARIABLE(CFG_BMPS_MINIMUM_LI_NAME, WLAN_PARAM_Integer,
415 struct hdd_config, nBmpsMinListenInterval,
416 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
417 CFG_BMPS_MINIMUM_LI_DEFAULT,
418 CFG_BMPS_MINIMUM_LI_MIN,
419 CFG_BMPS_MINIMUM_LI_MAX),
420
421 REG_VARIABLE(CFG_BMPS_MAXIMUM_LI_NAME, WLAN_PARAM_Integer,
422 struct hdd_config, nBmpsMaxListenInterval,
423 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
424 CFG_BMPS_MAXIMUM_LI_DEFAULT,
425 CFG_BMPS_MAXIMUM_LI_MIN,
426 CFG_BMPS_MAXIMUM_LI_MAX),
427
428 REG_VARIABLE(CFG_BMPS_MODERATE_LI_NAME, WLAN_PARAM_Integer,
429 struct hdd_config, nBmpsModListenInterval,
430 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
431 CFG_BMPS_MODERATE_LI_DEFAULT,
432 CFG_BMPS_MODERATE_LI_MIN,
433 CFG_BMPS_MODERATE_LI_MAX),
434
435 REG_VARIABLE(CFG_DOT11_MODE_NAME, WLAN_PARAM_Integer,
436 struct hdd_config, dot11Mode,
437 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
438 CFG_DOT11_MODE_DEFAULT,
439 CFG_DOT11_MODE_MIN,
440 CFG_DOT11_MODE_MAX),
441
442 REG_VARIABLE(CFG_CHANNEL_BONDING_MODE_24GHZ_NAME, WLAN_PARAM_Integer,
443 struct hdd_config, nChannelBondingMode24GHz,
444 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
445 CFG_CHANNEL_BONDING_MODE_DEFAULT,
446 CFG_CHANNEL_BONDING_MODE_MIN,
447 CFG_CHANNEL_BONDING_MODE_MAX),
448
449 REG_VARIABLE(CFG_CHANNEL_BONDING_MODE_5GHZ_NAME, WLAN_PARAM_Integer,
450 struct hdd_config, nChannelBondingMode5GHz,
451 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
452 CFG_CHANNEL_BONDING_MODE_DEFAULT,
453 CFG_CHANNEL_BONDING_MODE_MIN,
454 CFG_CHANNEL_BONDING_MODE_MAX),
455
456 REG_VARIABLE(CFG_MAX_RX_AMPDU_FACTOR_NAME, WLAN_PARAM_Integer,
457 struct hdd_config, MaxRxAmpduFactor,
458 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
459 CFG_MAX_RX_AMPDU_FACTOR_DEFAULT,
460 CFG_MAX_RX_AMPDU_FACTOR_MIN,
461 CFG_MAX_RX_AMPDU_FACTOR_MAX),
462
Krishna Kumaar Natarajan22b59a72015-11-23 18:54:58 -0800463 REG_VARIABLE(CFG_HT_MPDU_DENSITY_NAME, WLAN_PARAM_Integer,
464 struct hdd_config, ht_mpdu_density,
Jeff Johnson03294f12016-12-09 17:10:24 -0800465 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
Krishna Kumaar Natarajan22b59a72015-11-23 18:54:58 -0800466 CFG_HT_MPDU_DENSITY_DEFAULT,
467 CFG_HT_MPDU_DENSITY_MIN,
468 CFG_HT_MPDU_DENSITY_MAX),
469
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800470 REG_VARIABLE(CFG_FIXED_RATE_NAME, WLAN_PARAM_Integer,
471 struct hdd_config, TxRate,
472 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
473 CFG_FIXED_RATE_DEFAULT,
474 CFG_FIXED_RATE_MIN,
475 CFG_FIXED_RATE_MAX),
476
477 REG_VARIABLE(CFG_SHORT_GI_20MHZ_NAME, WLAN_PARAM_Integer,
478 struct hdd_config, ShortGI20MhzEnable,
479 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
480 CFG_SHORT_GI_20MHZ_DEFAULT,
481 CFG_SHORT_GI_20MHZ_MIN,
482 CFG_SHORT_GI_20MHZ_MAX),
483
484 REG_VARIABLE(CFG_SCAN_RESULT_AGE_COUNT_NAME, WLAN_PARAM_Integer,
485 struct hdd_config, ScanResultAgeCount,
486 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
487 CFG_SCAN_RESULT_AGE_COUNT_DEFAULT,
488 CFG_SCAN_RESULT_AGE_COUNT_MIN,
489 CFG_SCAN_RESULT_AGE_COUNT_MAX),
490
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800491 REG_VARIABLE(CFG_RSSI_CATEGORY_GAP_NAME, WLAN_PARAM_Integer,
492 struct hdd_config, nRssiCatGap,
493 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
494 CFG_RSSI_CATEGORY_GAP_DEFAULT,
495 CFG_RSSI_CATEGORY_GAP_MIN,
496 CFG_RSSI_CATEGORY_GAP_MAX),
497
498 REG_VARIABLE(CFG_SHORT_PREAMBLE_NAME, WLAN_PARAM_Integer,
499 struct hdd_config, fIsShortPreamble,
500 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
501 CFG_SHORT_PREAMBLE_DEFAULT,
502 CFG_SHORT_PREAMBLE_MIN,
503 CFG_SHORT_PREAMBLE_MAX),
504
505 REG_VARIABLE_STRING(CFG_IBSS_BSSID_NAME, WLAN_PARAM_MacAddr,
506 struct hdd_config, IbssBssid,
507 VAR_FLAGS_OPTIONAL,
508 (void *)CFG_IBSS_BSSID_DEFAULT),
509
510 REG_VARIABLE_STRING(CFG_INTF0_MAC_ADDR_NAME, WLAN_PARAM_MacAddr,
511 struct hdd_config, intfMacAddr[0],
512 VAR_FLAGS_OPTIONAL,
513 (void *)CFG_INTF0_MAC_ADDR_DEFAULT),
514
515 REG_VARIABLE_STRING(CFG_INTF1_MAC_ADDR_NAME, WLAN_PARAM_MacAddr,
516 struct hdd_config, intfMacAddr[1],
517 VAR_FLAGS_OPTIONAL,
518 (void *)CFG_INTF1_MAC_ADDR_DEFAULT),
519
520 REG_VARIABLE_STRING(CFG_INTF2_MAC_ADDR_NAME, WLAN_PARAM_MacAddr,
521 struct hdd_config, intfMacAddr[2],
522 VAR_FLAGS_OPTIONAL,
523 (void *)CFG_INTF2_MAC_ADDR_DEFAULT),
524
525 REG_VARIABLE_STRING(CFG_INTF3_MAC_ADDR_NAME, WLAN_PARAM_MacAddr,
526 struct hdd_config, intfMacAddr[3],
527 VAR_FLAGS_OPTIONAL,
528 (void *)CFG_INTF3_MAC_ADDR_DEFAULT),
529
530 REG_VARIABLE(CFG_AP_QOS_UAPSD_MODE_NAME, WLAN_PARAM_Integer,
531 struct hdd_config, apUapsdEnabled,
532 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
533 CFG_AP_QOS_UAPSD_MODE_DEFAULT,
534 CFG_AP_QOS_UAPSD_MODE_MIN,
535 CFG_AP_QOS_UAPSD_MODE_MAX),
536
537
538 REG_VARIABLE(CFG_AP_ENABLE_RANDOM_BSSID_NAME, WLAN_PARAM_Integer,
539 struct hdd_config, apRandomBssidEnabled,
540 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
541 CFG_AP_ENABLE_RANDOM_BSSID_DEFAULT,
542 CFG_AP_ENABLE_RANDOM_BSSID_MIN,
543 CFG_AP_ENABLE_RANDOM_BSSID_MAX),
544
545 REG_VARIABLE(CFG_AP_ENABLE_PROTECTION_MODE_NAME, WLAN_PARAM_Integer,
546 struct hdd_config, apProtEnabled,
547 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
548 CFG_AP_ENABLE_PROTECTION_MODE_DEFAULT,
549 CFG_AP_ENABLE_PROTECTION_MODE_MIN,
550 CFG_AP_ENABLE_PROTECTION_MODE_MAX),
551
552 REG_VARIABLE(CFG_AP_PROTECTION_MODE_NAME, WLAN_PARAM_HexInteger,
553 struct hdd_config, apProtection,
554 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
555 CFG_AP_PROTECTION_MODE_DEFAULT,
556 CFG_AP_PROTECTION_MODE_MIN,
557 CFG_AP_PROTECTION_MODE_MAX),
558
559 REG_VARIABLE(CFG_AP_OBSS_PROTECTION_MODE_NAME, WLAN_PARAM_Integer,
560 struct hdd_config, apOBSSProtEnabled,
561 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
562 CFG_AP_OBSS_PROTECTION_MODE_DEFAULT,
563 CFG_AP_OBSS_PROTECTION_MODE_MIN,
564 CFG_AP_OBSS_PROTECTION_MODE_MAX),
565
566 REG_VARIABLE(CFG_AP_STA_SECURITY_SEPERATION_NAME, WLAN_PARAM_Integer,
567 struct hdd_config, apDisableIntraBssFwd,
568 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
569 CFG_AP_STA_SECURITY_SEPERATION_DEFAULT,
570 CFG_AP_STA_SECURITY_SEPERATION_MIN,
571 CFG_AP_STA_SECURITY_SEPERATION_MAX),
572
573 REG_VARIABLE(CFG_ENABLE_LTE_COEX, WLAN_PARAM_Integer,
574 struct hdd_config, enableLTECoex,
575 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
576 CFG_ENABLE_LTE_COEX_DEFAULT,
577 CFG_ENABLE_LTE_COEX_MIN,
578 CFG_ENABLE_LTE_COEX_MAX),
579 REG_VARIABLE(CFG_FORCE_SAP_ACS, WLAN_PARAM_Integer,
580 struct hdd_config, force_sap_acs,
581 VAR_FLAGS_DYNAMIC_CFG |
582 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
583 CFG_FORCE_SAP_ACS_DEFAULT,
584 CFG_FORCE_SAP_ACS_MIN,
585 CFG_FORCE_SAP_ACS_MAX),
586
587 REG_VARIABLE(CFG_FORCE_SAP_ACS_START_CH, WLAN_PARAM_Integer,
588 struct hdd_config, force_sap_acs_st_ch,
589 VAR_FLAGS_DYNAMIC_CFG |
590 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
591 CFG_FORCE_SAP_ACS_START_CH_DEFAULT,
592 CFG_FORCE_SAP_ACS_START_CH_MIN,
593 CFG_FORCE_SAP_ACS_START_CH_MAX),
594
595 REG_VARIABLE(CFG_FORCE_SAP_ACS_END_CH, WLAN_PARAM_Integer,
596 struct hdd_config, force_sap_acs_end_ch,
597 VAR_FLAGS_DYNAMIC_CFG |
598 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
599 CFG_FORCE_SAP_ACS_END_CH_DEFAULT,
600 CFG_FORCE_SAP_ACS_END_CH_MIN,
601 CFG_FORCE_SAP_ACS_END_CH_MAX),
602
603 REG_VARIABLE(CFG_AP_KEEP_ALIVE_PERIOD_NAME, WLAN_PARAM_Integer,
604 struct hdd_config, apKeepAlivePeriod,
605 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
606 CFG_AP_KEEP_ALIVE_PERIOD_DEFAULT,
607 CFG_AP_KEEP_ALIVE_PERIOD_MIN,
608 CFG_AP_KEEP_ALIVE_PERIOD_MAX),
609
610 REG_VARIABLE(CFG_GO_KEEP_ALIVE_PERIOD_NAME, WLAN_PARAM_Integer,
611 struct hdd_config, goKeepAlivePeriod,
612 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
613 CFG_GO_KEEP_ALIVE_PERIOD_DEFAULT,
614 CFG_GO_KEEP_ALIVE_PERIOD_MIN,
615 CFG_GO_KEEP_ALIVE_PERIOD_MAX),
616
617 REG_VARIABLE(CFG_AP_LINK_MONITOR_PERIOD_NAME, WLAN_PARAM_Integer,
618 struct hdd_config, apLinkMonitorPeriod,
619 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
620 CFG_AP_LINK_MONITOR_PERIOD_DEFAULT,
621 CFG_AP_LINK_MONITOR_PERIOD_MIN,
622 CFG_AP_LINK_MONITOR_PERIOD_MAX),
623
624 REG_VARIABLE(CFG_GO_LINK_MONITOR_PERIOD_NAME, WLAN_PARAM_Integer,
625 struct hdd_config, goLinkMonitorPeriod,
626 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
627 CFG_GO_LINK_MONITOR_PERIOD_DEFAULT,
628 CFG_GO_LINK_MONITOR_PERIOD_MIN,
629 CFG_GO_LINK_MONITOR_PERIOD_MAX),
630
631 REG_VARIABLE(CFG_DISABLE_PACKET_FILTER, WLAN_PARAM_Integer,
632 struct hdd_config, disablePacketFilter,
633 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
634 CFG_DISABLE_PACKET_FILTER_DEFAULT,
635 CFG_DISABLE_PACKET_FILTER_MIN,
636 CFG_DISABLE_PACKET_FILTER_MAX),
637
638 REG_VARIABLE(CFG_BEACON_INTERVAL_NAME, WLAN_PARAM_Integer,
639 struct hdd_config, nBeaconInterval,
640 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
641 CFG_BEACON_INTERVAL_DEFAULT,
642 CFG_BEACON_INTERVAL_MIN,
643 CFG_BEACON_INTERVAL_MAX),
644
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800645 REG_VARIABLE(CFG_VCC_RSSI_TRIGGER_NAME, WLAN_PARAM_Integer,
646 struct hdd_config, nVccRssiTrigger,
647 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
648 CFG_VCC_RSSI_TRIGGER_DEFAULT,
649 CFG_VCC_RSSI_TRIGGER_MIN,
650 CFG_VCC_RSSI_TRIGGER_MAX),
651
652 REG_VARIABLE(CFG_VCC_UL_MAC_LOSS_THRESH_NAME, WLAN_PARAM_Integer,
653 struct hdd_config, nVccUlMacLossThreshold,
654 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
655 CFG_VCC_UL_MAC_LOSS_THRESH_DEFAULT,
656 CFG_VCC_UL_MAC_LOSS_THRESH_MIN,
657 CFG_VCC_UL_MAC_LOSS_THRESH_MAX),
658
659 REG_VARIABLE(CFG_PASSIVE_MAX_CHANNEL_TIME_NAME, WLAN_PARAM_Integer,
660 struct hdd_config, nPassiveMaxChnTime,
661 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
662 CFG_PASSIVE_MAX_CHANNEL_TIME_DEFAULT,
663 CFG_PASSIVE_MAX_CHANNEL_TIME_MIN,
664 CFG_PASSIVE_MAX_CHANNEL_TIME_MAX),
665
666 REG_VARIABLE(CFG_PASSIVE_MIN_CHANNEL_TIME_NAME, WLAN_PARAM_Integer,
667 struct hdd_config, nPassiveMinChnTime,
668 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
669 CFG_PASSIVE_MIN_CHANNEL_TIME_DEFAULT,
670 CFG_PASSIVE_MIN_CHANNEL_TIME_MIN,
671 CFG_PASSIVE_MIN_CHANNEL_TIME_MAX),
672
673 REG_VARIABLE(CFG_ACTIVE_MAX_CHANNEL_TIME_NAME, WLAN_PARAM_Integer,
674 struct hdd_config, nActiveMaxChnTime,
675 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
676 CFG_ACTIVE_MAX_CHANNEL_TIME_DEFAULT,
677 CFG_ACTIVE_MAX_CHANNEL_TIME_MIN,
678 CFG_ACTIVE_MAX_CHANNEL_TIME_MAX),
679
680 REG_VARIABLE(CFG_ACTIVE_MIN_CHANNEL_TIME_NAME, WLAN_PARAM_Integer,
681 struct hdd_config, nActiveMinChnTime,
682 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
683 CFG_ACTIVE_MIN_CHANNEL_TIME_DEFAULT,
684 CFG_ACTIVE_MIN_CHANNEL_TIME_MIN,
685 CFG_ACTIVE_MIN_CHANNEL_TIME_MAX),
686
687 REG_VARIABLE(CFG_RETRY_LIMIT_ZERO_NAME, WLAN_PARAM_Integer,
688 struct hdd_config, retryLimitZero,
689 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
690 CFG_RETRY_LIMIT_ZERO_DEFAULT,
691 CFG_RETRY_LIMIT_ZERO_MIN,
692 CFG_RETRY_LIMIT_ZERO_MAX),
693
694 REG_VARIABLE(CFG_RETRY_LIMIT_ONE_NAME, WLAN_PARAM_Integer,
695 struct hdd_config, retryLimitOne,
696 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
697 CFG_RETRY_LIMIT_ONE_DEFAULT,
698 CFG_RETRY_LIMIT_ONE_MIN,
699 CFG_RETRY_LIMIT_ONE_MAX),
700
701 REG_VARIABLE(CFG_RETRY_LIMIT_TWO_NAME, WLAN_PARAM_Integer,
702 struct hdd_config, retryLimitTwo,
703 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
704 CFG_RETRY_LIMIT_TWO_DEFAULT,
705 CFG_RETRY_LIMIT_TWO_MIN,
706 CFG_RETRY_LIMIT_TWO_MAX),
707
708#ifdef WLAN_AP_STA_CONCURRENCY
709 REG_VARIABLE(CFG_PASSIVE_MAX_CHANNEL_TIME_CONC_NAME, WLAN_PARAM_Integer,
710 struct hdd_config, nPassiveMaxChnTimeConc,
711 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
712 CFG_PASSIVE_MAX_CHANNEL_TIME_CONC_DEFAULT,
713 CFG_PASSIVE_MAX_CHANNEL_TIME_CONC_MIN,
714 CFG_PASSIVE_MAX_CHANNEL_TIME_CONC_MAX),
715
716 REG_VARIABLE(CFG_PASSIVE_MIN_CHANNEL_TIME_CONC_NAME, WLAN_PARAM_Integer,
717 struct hdd_config, nPassiveMinChnTimeConc,
718 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
719 CFG_PASSIVE_MIN_CHANNEL_TIME_CONC_DEFAULT,
720 CFG_PASSIVE_MIN_CHANNEL_TIME_CONC_MIN,
721 CFG_PASSIVE_MIN_CHANNEL_TIME_CONC_MAX),
722
723 REG_VARIABLE(CFG_ACTIVE_MAX_CHANNEL_TIME_CONC_NAME, WLAN_PARAM_Integer,
724 struct hdd_config, nActiveMaxChnTimeConc,
725 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
726 CFG_ACTIVE_MAX_CHANNEL_TIME_CONC_DEFAULT,
727 CFG_ACTIVE_MAX_CHANNEL_TIME_CONC_MIN,
728 CFG_ACTIVE_MAX_CHANNEL_TIME_CONC_MAX),
729
730 REG_VARIABLE(CFG_ACTIVE_MIN_CHANNEL_TIME_CONC_NAME, WLAN_PARAM_Integer,
731 struct hdd_config, nActiveMinChnTimeConc,
732 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
733 CFG_ACTIVE_MIN_CHANNEL_TIME_CONC_DEFAULT,
734 CFG_ACTIVE_MIN_CHANNEL_TIME_CONC_MIN,
735 CFG_ACTIVE_MIN_CHANNEL_TIME_CONC_MAX),
736
737 REG_VARIABLE(CFG_REST_TIME_CONC_NAME, WLAN_PARAM_Integer,
738 struct hdd_config, nRestTimeConc,
739 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
740 CFG_REST_TIME_CONC_DEFAULT,
741 CFG_REST_TIME_CONC_MIN,
742 CFG_REST_TIME_CONC_MAX),
743
Agrawal Ashish17bb3902016-05-05 13:29:40 +0530744 REG_VARIABLE(CFG_MIN_REST_TIME_NAME, WLAN_PARAM_Integer,
745 struct hdd_config, min_rest_time_conc,
746 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
747 CFG_MIN_REST_TIME_DEFAULT,
748 CFG_MIN_REST_TIME_MIN,
749 CFG_MIN_REST_TIME_MAX),
750
Jeff Johnson03294f12016-12-09 17:10:24 -0800751 REG_VARIABLE(CFG_IDLE_TIME_NAME, WLAN_PARAM_Integer,
Agrawal Ashish17bb3902016-05-05 13:29:40 +0530752 struct hdd_config, idle_time_conc,
753 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
754 CFG_IDLE_TIME_DEFAULT,
755 CFG_IDLE_TIME_MIN,
Jeff Johnson03294f12016-12-09 17:10:24 -0800756 CFG_IDLE_TIME_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800757#endif
758
759 REG_VARIABLE(CFG_MAX_PS_POLL_NAME, WLAN_PARAM_Integer,
760 struct hdd_config, nMaxPsPoll,
761 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
762 CFG_MAX_PS_POLL_DEFAULT,
763 CFG_MAX_PS_POLL_MIN,
764 CFG_MAX_PS_POLL_MAX),
765
766 REG_VARIABLE(CFG_MAX_TX_POWER_NAME, WLAN_PARAM_Integer,
767 struct hdd_config, nTxPowerCap,
768 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
769 CFG_MAX_TX_POWER_DEFAULT,
770 CFG_MAX_TX_POWER_MIN,
771 CFG_MAX_TX_POWER_MAX),
772
Padma, Santhosh Kumar29df3622016-08-16 19:15:16 +0530773 REG_VARIABLE(CFG_TX_POWER_CTRL_NAME, WLAN_PARAM_Integer,
774 struct hdd_config, allow_tpc_from_ap,
775 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
776 CFG_TX_POWER_CTRL_DEFAULT,
777 CFG_TX_POWER_CTRL_MIN,
778 CFG_TX_POWER_CTRL_MAX),
779
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800780 REG_VARIABLE(CFG_LOW_GAIN_OVERRIDE_NAME, WLAN_PARAM_Integer,
781 struct hdd_config, fIsLowGainOverride,
782 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
783 CFG_LOW_GAIN_OVERRIDE_DEFAULT,
784 CFG_LOW_GAIN_OVERRIDE_MIN,
785 CFG_LOW_GAIN_OVERRIDE_MAX),
786
787 REG_VARIABLE(CFG_RSSI_FILTER_PERIOD_NAME, WLAN_PARAM_Integer,
788 struct hdd_config, nRssiFilterPeriod,
789 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
790 CFG_RSSI_FILTER_PERIOD_DEFAULT,
791 CFG_RSSI_FILTER_PERIOD_MIN,
792 CFG_RSSI_FILTER_PERIOD_MAX),
793
794 REG_VARIABLE(CFG_IGNORE_DTIM_NAME, WLAN_PARAM_Integer,
795 struct hdd_config, fIgnoreDtim,
796 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
797 CFG_IGNORE_DTIM_DEFAULT,
798 CFG_IGNORE_DTIM_MIN,
799 CFG_IGNORE_DTIM_MAX),
800
801 REG_VARIABLE(CFG_MAX_LI_MODULATED_DTIM_NAME, WLAN_PARAM_Integer,
802 struct hdd_config, fMaxLIModulatedDTIM,
803 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
804 CFG_MAX_LI_MODULATED_DTIM_DEFAULT,
805 CFG_MAX_LI_MODULATED_DTIM_MIN,
806 CFG_MAX_LI_MODULATED_DTIM_MAX),
807
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800808 REG_VARIABLE(CFG_FW_HEART_BEAT_MONITORING_NAME, WLAN_PARAM_Integer,
809 struct hdd_config, fEnableFwHeartBeatMonitoring,
810 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
811 CFG_FW_HEART_BEAT_MONITORING_DEFAULT,
812 CFG_FW_HEART_BEAT_MONITORING_MIN,
813 CFG_FW_HEART_BEAT_MONITORING_MAX),
814
815 REG_VARIABLE(CFG_FW_BEACON_FILTERING_NAME, WLAN_PARAM_Integer,
816 struct hdd_config, fEnableFwBeaconFiltering,
817 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
818 CFG_FW_BEACON_FILTERING_DEFAULT,
819 CFG_FW_BEACON_FILTERING_MIN,
820 CFG_FW_BEACON_FILTERING_MAX),
821
822 REG_DYNAMIC_VARIABLE(CFG_FW_RSSI_MONITORING_NAME, WLAN_PARAM_Integer,
823 struct hdd_config, fEnableFwRssiMonitoring,
824 VAR_FLAGS_OPTIONAL |
825 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
826 CFG_FW_RSSI_MONITORING_DEFAULT,
827 CFG_FW_RSSI_MONITORING_MIN,
828 CFG_FW_RSSI_MONITORING_MAX,
829 cb_notify_set_fw_rssi_monitoring, 0),
830
831 REG_VARIABLE(CFG_FW_MCC_RTS_CTS_PROT_NAME, WLAN_PARAM_Integer,
832 struct hdd_config, mcc_rts_cts_prot_enable,
833 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
834 CFG_FW_MCC_RTS_CTS_PROT_DEFAULT,
835 CFG_FW_MCC_RTS_CTS_PROT_MIN,
836 CFG_FW_MCC_RTS_CTS_PROT_MAX),
837
838 REG_VARIABLE(CFG_FW_MCC_BCAST_PROB_RESP_NAME, WLAN_PARAM_Integer,
839 struct hdd_config, mcc_bcast_prob_resp_enable,
840 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
841 CFG_FW_MCC_BCAST_PROB_RESP_DEFAULT,
842 CFG_FW_MCC_BCAST_PROB_RESP_MIN,
843 CFG_FW_MCC_BCAST_PROB_RESP_MAX),
844
845 REG_VARIABLE(CFG_DATA_INACTIVITY_TIMEOUT_NAME, WLAN_PARAM_Integer,
846 struct hdd_config, nDataInactivityTimeout,
847 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
848 CFG_DATA_INACTIVITY_TIMEOUT_DEFAULT,
849 CFG_DATA_INACTIVITY_TIMEOUT_MIN,
850 CFG_DATA_INACTIVITY_TIMEOUT_MAX),
851
Mukul Sharmaed92f2f2017-04-20 00:06:28 +0530852 REG_VARIABLE(CFG_WOW_DATA_INACTIVITY_TIMEOUT_NAME, WLAN_PARAM_Integer,
853 struct hdd_config, wow_data_inactivity_timeout,
854 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
855 CFG_WOW_DATA_INACTIVITY_TIMEOUT_DEFAULT,
856 CFG_WOW_DATA_INACTIVITY_TIMEOUT_MIN,
857 CFG_WOW_DATA_INACTIVITY_TIMEOUT_MAX),
858
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800859 REG_VARIABLE(CFG_QOS_WMM_MODE_NAME, WLAN_PARAM_Integer,
860 struct hdd_config, WmmMode,
861 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
862 CFG_QOS_WMM_MODE_DEFAULT,
863 CFG_QOS_WMM_MODE_MIN,
864 CFG_QOS_WMM_MODE_MAX),
865
866 REG_VARIABLE(CFG_QOS_WMM_80211E_ENABLED_NAME, WLAN_PARAM_Integer,
867 struct hdd_config, b80211eIsEnabled,
868 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
869 CFG_QOS_WMM_80211E_ENABLED_DEFAULT,
870 CFG_QOS_WMM_80211E_ENABLED_MIN,
871 CFG_QOS_WMM_80211E_ENABLED_MAX),
872
873 REG_VARIABLE(CFG_QOS_WMM_UAPSD_MASK_NAME, WLAN_PARAM_HexInteger,
874 struct hdd_config, UapsdMask,
875 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
876 CFG_QOS_WMM_UAPSD_MASK_DEFAULT,
877 CFG_QOS_WMM_UAPSD_MASK_MIN,
878 CFG_QOS_WMM_UAPSD_MASK_MAX),
879
880 REG_VARIABLE(CFG_QOS_WMM_INFRA_UAPSD_VO_SRV_INTV_NAME,
881 WLAN_PARAM_Integer,
882 struct hdd_config, InfraUapsdVoSrvIntv,
883 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
884 CFG_QOS_WMM_INFRA_UAPSD_VO_SRV_INTV_DEFAULT,
885 CFG_QOS_WMM_INFRA_UAPSD_VO_SRV_INTV_MIN,
886 CFG_QOS_WMM_INFRA_UAPSD_VO_SRV_INTV_MAX),
887
888 REG_VARIABLE(CFG_QOS_WMM_INFRA_UAPSD_VO_SUS_INTV_NAME,
889 WLAN_PARAM_Integer,
890 struct hdd_config, InfraUapsdVoSuspIntv,
891 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
892 CFG_QOS_WMM_INFRA_UAPSD_VO_SUS_INTV_DEFAULT,
893 CFG_QOS_WMM_INFRA_UAPSD_VO_SUS_INTV_MIN,
894 CFG_QOS_WMM_INFRA_UAPSD_VO_SUS_INTV_MAX),
895
896 REG_VARIABLE(CFG_QOS_WMM_INFRA_UAPSD_VI_SRV_INTV_NAME,
897 WLAN_PARAM_Integer,
898 struct hdd_config, InfraUapsdViSrvIntv,
899 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
900 CFG_QOS_WMM_INFRA_UAPSD_VI_SRV_INTV_DEFAULT,
901 CFG_QOS_WMM_INFRA_UAPSD_VI_SRV_INTV_MIN,
902 CFG_QOS_WMM_INFRA_UAPSD_VI_SRV_INTV_MAX),
903
904 REG_VARIABLE(CFG_QOS_WMM_INFRA_UAPSD_VI_SUS_INTV_NAME,
905 WLAN_PARAM_Integer,
906 struct hdd_config, InfraUapsdViSuspIntv,
907 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
908 CFG_QOS_WMM_INFRA_UAPSD_VI_SUS_INTV_DEFAULT,
909 CFG_QOS_WMM_INFRA_UAPSD_VI_SUS_INTV_MIN,
910 CFG_QOS_WMM_INFRA_UAPSD_VI_SUS_INTV_MAX),
911
912 REG_VARIABLE(CFG_QOS_WMM_INFRA_UAPSD_BE_SRV_INTV_NAME,
913 WLAN_PARAM_Integer,
914 struct hdd_config, InfraUapsdBeSrvIntv,
915 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
916 CFG_QOS_WMM_INFRA_UAPSD_BE_SRV_INTV_DEFAULT,
917 CFG_QOS_WMM_INFRA_UAPSD_BE_SRV_INTV_MIN,
918 CFG_QOS_WMM_INFRA_UAPSD_BE_SRV_INTV_MAX),
919
920 REG_VARIABLE(CFG_QOS_WMM_INFRA_UAPSD_BE_SUS_INTV_NAME,
921 WLAN_PARAM_Integer,
922 struct hdd_config, InfraUapsdBeSuspIntv,
923 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
924 CFG_QOS_WMM_INFRA_UAPSD_BE_SUS_INTV_DEFAULT,
925 CFG_QOS_WMM_INFRA_UAPSD_BE_SUS_INTV_MIN,
926 CFG_QOS_WMM_INFRA_UAPSD_BE_SUS_INTV_MAX),
927
928 REG_VARIABLE(CFG_QOS_WMM_INFRA_UAPSD_BK_SRV_INTV_NAME,
929 WLAN_PARAM_Integer,
930 struct hdd_config, InfraUapsdBkSrvIntv,
931 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
932 CFG_QOS_WMM_INFRA_UAPSD_BK_SRV_INTV_DEFAULT,
933 CFG_QOS_WMM_INFRA_UAPSD_BK_SRV_INTV_MIN,
934 CFG_QOS_WMM_INFRA_UAPSD_BK_SRV_INTV_MAX),
935
936 REG_VARIABLE(CFG_QOS_WMM_INFRA_UAPSD_BK_SUS_INTV_NAME,
937 WLAN_PARAM_Integer,
938 struct hdd_config, InfraUapsdBkSuspIntv,
939 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
940 CFG_QOS_WMM_INFRA_UAPSD_BK_SUS_INTV_DEFAULT,
941 CFG_QOS_WMM_INFRA_UAPSD_BK_SUS_INTV_MIN,
942 CFG_QOS_WMM_INFRA_UAPSD_BK_SUS_INTV_MAX),
943
944#ifdef FEATURE_WLAN_ESE
945 REG_VARIABLE(CFG_QOS_WMM_INFRA_INACTIVITY_INTERVAL_NAME,
946 WLAN_PARAM_Integer,
947 struct hdd_config, InfraInactivityInterval,
948 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
949 CFG_QOS_WMM_INFRA_INACTIVITY_INTERVAL_DEFAULT,
950 CFG_QOS_WMM_INFRA_INACTIVITY_INTERVAL_MIN,
951 CFG_QOS_WMM_INFRA_INACTIVITY_INTERVAL_MAX),
952
953 REG_DYNAMIC_VARIABLE(CFG_ESE_FEATURE_ENABLED_NAME, WLAN_PARAM_Integer,
954 struct hdd_config, isEseIniFeatureEnabled,
955 VAR_FLAGS_OPTIONAL |
956 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
957 CFG_ESE_FEATURE_ENABLED_DEFAULT,
958 CFG_ESE_FEATURE_ENABLED_MIN,
959 CFG_ESE_FEATURE_ENABLED_MAX,
960 cb_notify_set_ese_feature_enabled, 0),
961#endif /* FEATURE_WLAN_ESE */
962
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800963 /* flag to turn ON/OFF Legacy Fast Roaming */
964 REG_DYNAMIC_VARIABLE(CFG_LFR_FEATURE_ENABLED_NAME, WLAN_PARAM_Integer,
965 struct hdd_config, isFastRoamIniFeatureEnabled,
966 VAR_FLAGS_OPTIONAL |
967 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
968 CFG_LFR_FEATURE_ENABLED_DEFAULT,
969 CFG_LFR_FEATURE_ENABLED_MIN,
970 CFG_LFR_FEATURE_ENABLED_MAX,
971 notify_is_fast_roam_ini_feature_enabled, 0),
972
973 /* flag to turn ON/OFF Motion assistance for Legacy Fast Roaming */
974 REG_DYNAMIC_VARIABLE(CFG_LFR_MAWC_FEATURE_ENABLED_NAME,
975 WLAN_PARAM_Integer,
976 struct hdd_config, MAWCEnabled,
977 VAR_FLAGS_OPTIONAL |
978 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
979 CFG_LFR_MAWC_FEATURE_ENABLED_DEFAULT,
980 CFG_LFR_MAWC_FEATURE_ENABLED_MIN,
981 CFG_LFR_MAWC_FEATURE_ENABLED_MAX,
982 notify_is_mawc_ini_feature_enabled, 0),
983
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800984 /* flag to turn ON/OFF 11r and ESE FastTransition */
985 REG_DYNAMIC_VARIABLE(CFG_FAST_TRANSITION_ENABLED_NAME,
986 WLAN_PARAM_Integer,
987 struct hdd_config, isFastTransitionEnabled,
988 VAR_FLAGS_OPTIONAL |
989 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
990 CFG_FAST_TRANSITION_ENABLED_NAME_DEFAULT,
991 CFG_FAST_TRANSITION_ENABLED_NAME_MIN,
992 CFG_FAST_TRANSITION_ENABLED_NAME_MAX,
993 cb_notify_set_fast_transition_enabled, 0),
994
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -0700995 /* Variable to specify the delta/difference between the
996 * RSSI of current AP and roamable AP while roaming
Jeff Johnson78d88a82017-01-12 09:50:54 -0800997 */
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800998 REG_DYNAMIC_VARIABLE(CFG_ROAM_RSSI_DIFF_NAME, WLAN_PARAM_Integer,
999 struct hdd_config, RoamRssiDiff,
1000 VAR_FLAGS_OPTIONAL |
1001 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1002 CFG_ROAM_RSSI_DIFF_DEFAULT,
1003 CFG_ROAM_RSSI_DIFF_MIN,
1004 CFG_ROAM_RSSI_DIFF_MAX,
1005 cb_notify_set_roam_rssi_diff, 0),
1006
1007 REG_DYNAMIC_VARIABLE(CFG_ENABLE_WES_MODE_NAME, WLAN_PARAM_Integer,
1008 struct hdd_config, isWESModeEnabled,
1009 VAR_FLAGS_OPTIONAL |
1010 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1011 CFG_ENABLE_WES_MODE_NAME_DEFAULT,
1012 CFG_ENABLE_WES_MODE_NAME_MIN,
1013 CFG_ENABLE_WES_MODE_NAME_MAX,
1014 cb_notify_set_wes_mode, 0),
Deepak Dhamdheref2a7d8b2016-08-19 16:17:38 -07001015 REG_VARIABLE(CFG_OKC_FEATURE_ENABLED_NAME, WLAN_PARAM_Integer,
1016 struct hdd_config, isOkcIniFeatureEnabled,
1017 VAR_FLAGS_OPTIONAL |
1018 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1019 CFG_OKC_FEATURE_ENABLED_DEFAULT,
1020 CFG_OKC_FEATURE_ENABLED_MIN,
1021 CFG_OKC_FEATURE_ENABLED_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001022 REG_DYNAMIC_VARIABLE(CFG_ROAM_SCAN_OFFLOAD_ENABLED, WLAN_PARAM_Integer,
1023 struct hdd_config, isRoamOffloadScanEnabled,
1024 VAR_FLAGS_OPTIONAL |
1025 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1026 CFG_ROAM_SCAN_OFFLOAD_ENABLED_DEFAULT,
1027 CFG_ROAM_SCAN_OFFLOAD_ENABLED_MIN,
1028 CFG_ROAM_SCAN_OFFLOAD_ENABLED_MAX,
1029 cb_notify_update_roam_scan_offload_enabled, 0),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001030
1031 REG_VARIABLE(CFG_QOS_WMM_INFRA_DIR_AC_VO_NAME, WLAN_PARAM_Integer,
1032 struct hdd_config, InfraDirAcVo,
1033 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1034 CFG_QOS_WMM_INFRA_DIR_AC_VO_DEFAULT,
1035 CFG_QOS_WMM_INFRA_DIR_AC_VO_MIN,
1036 CFG_QOS_WMM_INFRA_DIR_AC_VO_MAX),
1037
1038 REG_VARIABLE(CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VO_NAME,
1039 WLAN_PARAM_HexInteger,
1040 struct hdd_config, InfraNomMsduSizeAcVo,
1041 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1042 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VO_DEFAULT,
1043 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VO_MIN,
1044 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VO_MAX),
1045
1046 REG_VARIABLE(CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VO_NAME,
1047 WLAN_PARAM_HexInteger,
1048 struct hdd_config, InfraMeanDataRateAcVo,
1049 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1050 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VO_DEFAULT,
1051 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VO_MIN,
1052 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VO_MAX),
1053
1054 REG_VARIABLE(CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VO_NAME,
1055 WLAN_PARAM_HexInteger,
1056 struct hdd_config, InfraMinPhyRateAcVo,
1057 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1058 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VO_DEFAULT,
1059 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VO_MIN,
1060 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VO_MAX),
1061
1062 REG_VARIABLE(CFG_QOS_WMM_INFRA_SBA_AC_VO_NAME, WLAN_PARAM_HexInteger,
1063 struct hdd_config, InfraSbaAcVo,
1064 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1065 CFG_QOS_WMM_INFRA_SBA_AC_VO_DEFAULT,
1066 CFG_QOS_WMM_INFRA_SBA_AC_VO_MIN,
1067 CFG_QOS_WMM_INFRA_SBA_AC_VO_MAX),
1068
1069 REG_VARIABLE(CFG_QOS_WMM_INFRA_DIR_AC_VI_NAME, WLAN_PARAM_Integer,
1070 struct hdd_config, InfraDirAcVi,
1071 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1072 CFG_QOS_WMM_INFRA_DIR_AC_VI_DEFAULT,
1073 CFG_QOS_WMM_INFRA_DIR_AC_VI_MIN,
1074 CFG_QOS_WMM_INFRA_DIR_AC_VI_MAX),
1075
1076 REG_VARIABLE(CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VI_NAME,
1077 WLAN_PARAM_HexInteger,
1078 struct hdd_config, InfraNomMsduSizeAcVi,
1079 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1080 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VI_DEFAULT,
1081 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VI_MIN,
1082 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VI_MAX),
1083
1084 REG_VARIABLE(CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VI_NAME,
1085 WLAN_PARAM_HexInteger,
1086 struct hdd_config, InfraMeanDataRateAcVi,
1087 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1088 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VI_DEFAULT,
1089 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VI_MIN,
1090 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VI_MAX),
1091
1092 REG_VARIABLE(CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VI_NAME,
1093 WLAN_PARAM_HexInteger,
1094 struct hdd_config, InfraMinPhyRateAcVi,
1095 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1096 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VI_DEFAULT,
1097 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VI_MIN,
1098 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VI_MAX),
1099
1100 REG_VARIABLE(CFG_QOS_WMM_INFRA_SBA_AC_VI_NAME, WLAN_PARAM_HexInteger,
1101 struct hdd_config, InfraSbaAcVi,
1102 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1103 CFG_QOS_WMM_INFRA_SBA_AC_VI_DEFAULT,
1104 CFG_QOS_WMM_INFRA_SBA_AC_VI_MIN,
1105 CFG_QOS_WMM_INFRA_SBA_AC_VI_MAX),
1106
1107 REG_VARIABLE(CFG_QOS_WMM_INFRA_DIR_AC_BE_NAME, WLAN_PARAM_Integer,
1108 struct hdd_config, InfraDirAcBe,
1109 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1110 CFG_QOS_WMM_INFRA_DIR_AC_BE_DEFAULT,
1111 CFG_QOS_WMM_INFRA_DIR_AC_BE_MIN,
1112 CFG_QOS_WMM_INFRA_DIR_AC_BE_MAX),
1113
1114 REG_VARIABLE(CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_BE_NAME,
1115 WLAN_PARAM_HexInteger,
1116 struct hdd_config, InfraNomMsduSizeAcBe,
1117 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1118 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_BE_DEFAULT,
1119 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_BE_MIN,
1120 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_BE_MAX),
1121
1122 REG_VARIABLE(CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_BE_NAME,
1123 WLAN_PARAM_HexInteger,
1124 struct hdd_config, InfraMeanDataRateAcBe,
1125 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1126 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_BE_DEFAULT,
1127 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_BE_MIN,
1128 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_BE_MAX),
1129
1130 REG_VARIABLE(CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_BE_NAME,
1131 WLAN_PARAM_HexInteger,
1132 struct hdd_config, InfraMinPhyRateAcBe,
1133 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1134 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_BE_DEFAULT,
1135 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_BE_MIN,
1136 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_BE_MAX),
1137
1138 REG_VARIABLE(CFG_QOS_WMM_INFRA_SBA_AC_BE_NAME, WLAN_PARAM_HexInteger,
1139 struct hdd_config, InfraSbaAcBe,
1140 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1141 CFG_QOS_WMM_INFRA_SBA_AC_BE_DEFAULT,
1142 CFG_QOS_WMM_INFRA_SBA_AC_BE_MIN,
1143 CFG_QOS_WMM_INFRA_SBA_AC_BE_MAX),
1144
1145 REG_VARIABLE(CFG_QOS_WMM_INFRA_DIR_AC_BK_NAME, WLAN_PARAM_Integer,
1146 struct hdd_config, InfraDirAcBk,
1147 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1148 CFG_QOS_WMM_INFRA_DIR_AC_BK_DEFAULT,
1149 CFG_QOS_WMM_INFRA_DIR_AC_BK_MIN,
1150 CFG_QOS_WMM_INFRA_DIR_AC_BK_MAX),
1151
1152 REG_VARIABLE(CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_BK_NAME,
1153 WLAN_PARAM_HexInteger,
1154 struct hdd_config, InfraNomMsduSizeAcBk,
1155 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1156 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_BK_DEFAULT,
1157 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_BK_MIN,
1158 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_BK_MAX),
1159
1160 REG_VARIABLE(CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_BK_NAME,
1161 WLAN_PARAM_HexInteger,
1162 struct hdd_config, InfraMeanDataRateAcBk,
1163 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1164 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_BK_DEFAULT,
1165 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_BK_MIN,
1166 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_BK_MAX),
1167
1168 REG_VARIABLE(CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_BK_NAME,
1169 WLAN_PARAM_HexInteger,
1170 struct hdd_config, InfraMinPhyRateAcBk,
1171 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1172 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_BK_DEFAULT,
1173 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_BK_MIN,
1174 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_BK_MAX),
1175
1176 REG_VARIABLE(CFG_QOS_WMM_INFRA_SBA_AC_BK_NAME, WLAN_PARAM_HexInteger,
1177 struct hdd_config, InfraSbaAcBk,
1178 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1179 CFG_QOS_WMM_INFRA_SBA_AC_BK_DEFAULT,
1180 CFG_QOS_WMM_INFRA_SBA_AC_BK_MIN,
1181 CFG_QOS_WMM_INFRA_SBA_AC_BK_MAX),
1182
1183 REG_VARIABLE(CFG_TL_DELAYED_TRGR_FRM_INT_NAME, WLAN_PARAM_Integer,
1184 struct hdd_config, DelayedTriggerFrmInt,
1185 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1186 CFG_TL_DELAYED_TRGR_FRM_INT_DEFAULT,
1187 CFG_TL_DELAYED_TRGR_FRM_INT_MIN,
1188 CFG_TL_DELAYED_TRGR_FRM_INT_MAX),
1189
1190 REG_VARIABLE_STRING(CFG_WOWL_PATTERN_NAME, WLAN_PARAM_String,
1191 struct hdd_config, wowlPattern,
1192 VAR_FLAGS_OPTIONAL,
1193 (void *)CFG_WOWL_PATTERN_DEFAULT),
1194
1195 REG_VARIABLE(CFG_QOS_IMPLICIT_SETUP_ENABLED_NAME, WLAN_PARAM_Integer,
1196 struct hdd_config, bImplicitQosEnabled,
1197 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1198 CFG_QOS_IMPLICIT_SETUP_ENABLED_DEFAULT,
1199 CFG_QOS_IMPLICIT_SETUP_ENABLED_MIN,
1200 CFG_QOS_IMPLICIT_SETUP_ENABLED_MAX),
1201
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001202 REG_VARIABLE(CFG_AP_AUTO_SHUT_OFF, WLAN_PARAM_Integer,
1203 struct hdd_config, nAPAutoShutOff,
1204 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1205 CFG_AP_AUTO_SHUT_OFF_DEFAULT,
1206 CFG_AP_AUTO_SHUT_OFF_MIN,
1207 CFG_AP_AUTO_SHUT_OFF_MAX),
1208
1209#ifdef FEATURE_WLAN_MCC_TO_SCC_SWITCH
1210 REG_VARIABLE(CFG_WLAN_MCC_TO_SCC_SWITCH_MODE, WLAN_PARAM_Integer,
1211 struct hdd_config, WlanMccToSccSwitchMode,
1212 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1213 CFG_WLAN_MCC_TO_SCC_SWITCH_MODE_DEFAULT,
1214 CFG_WLAN_MCC_TO_SCC_SWITCH_MODE_MIN,
1215 CFG_WLAN_MCC_TO_SCC_SWITCH_MODE_MAX),
1216#endif
1217#ifdef FEATURE_WLAN_AUTO_SHUTDOWN
1218 REG_VARIABLE(CFG_WLAN_AUTO_SHUTDOWN, WLAN_PARAM_Integer,
1219 struct hdd_config, WlanAutoShutdown,
1220 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1221 CFG_WLAN_AUTO_SHUTDOWN_DEFAULT,
1222 CFG_WLAN_AUTO_SHUTDOWN_MIN,
1223 CFG_WLAN_AUTO_SHUTDOWN_MAX),
1224#endif
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001225 REG_VARIABLE(CFG_RRM_ENABLE_NAME, WLAN_PARAM_Integer,
1226 struct hdd_config, fRrmEnable,
1227 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1228 CFG_RRM_ENABLE_DEFAULT,
1229 CFG_RRM_ENABLE_MIN,
1230 CFG_RRM_ENABLE_MAX),
1231
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001232 REG_VARIABLE(CFG_RRM_MEAS_RANDOMIZATION_INTVL_NAME, WLAN_PARAM_Integer,
1233 struct hdd_config, nRrmRandnIntvl,
1234 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1235 CFG_RRM_MEAS_RANDOMIZATION_INTVL_DEFAULT,
1236 CFG_RRM_MEAS_RANDOMIZATION_INTVL_MIN,
1237 CFG_RRM_MEAS_RANDOMIZATION_INTVL_MAX),
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08001238
1239 REG_VARIABLE_STRING(CFG_RM_CAPABILITY_NAME, WLAN_PARAM_String,
1240 struct hdd_config, rm_capability,
1241 VAR_FLAGS_OPTIONAL,
1242 (void *) CFG_RM_CAPABILITY_DEFAULT),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001243
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001244 REG_VARIABLE(CFG_FT_RESOURCE_REQ_NAME, WLAN_PARAM_Integer,
1245 struct hdd_config, fFTResourceReqSupported,
1246 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1247 CFG_FT_RESOURCE_REQ_DEFAULT,
1248 CFG_FT_RESOURCE_REQ_MIN,
1249 CFG_FT_RESOURCE_REQ_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001250
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001251 REG_DYNAMIC_VARIABLE(CFG_NEIGHBOR_SCAN_TIMER_PERIOD_NAME,
1252 WLAN_PARAM_Integer,
1253 struct hdd_config, nNeighborScanPeriod,
1254 VAR_FLAGS_OPTIONAL |
1255 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1256 CFG_NEIGHBOR_SCAN_TIMER_PERIOD_DEFAULT,
1257 CFG_NEIGHBOR_SCAN_TIMER_PERIOD_MIN,
1258 CFG_NEIGHBOR_SCAN_TIMER_PERIOD_MAX,
1259 cb_notify_set_neighbor_scan_period, 0),
1260
1261 REG_DYNAMIC_VARIABLE(CFG_NEIGHBOR_LOOKUP_RSSI_THRESHOLD_NAME,
1262 WLAN_PARAM_Integer,
1263 struct hdd_config, nNeighborLookupRssiThreshold,
1264 VAR_FLAGS_OPTIONAL |
1265 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1266 CFG_NEIGHBOR_LOOKUP_RSSI_THRESHOLD_DEFAULT,
1267 CFG_NEIGHBOR_LOOKUP_RSSI_THRESHOLD_MIN,
1268 CFG_NEIGHBOR_LOOKUP_RSSI_THRESHOLD_MAX,
1269 cb_notify_set_neighbor_lookup_rssi_threshold, 0),
1270
1271 REG_DYNAMIC_VARIABLE(CFG_OPPORTUNISTIC_SCAN_THRESHOLD_DIFF_NAME,
1272 WLAN_PARAM_Integer,
1273 struct hdd_config, nOpportunisticThresholdDiff,
1274 VAR_FLAGS_OPTIONAL |
1275 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1276 CFG_OPPORTUNISTIC_SCAN_THRESHOLD_DIFF_DEFAULT,
1277 CFG_OPPORTUNISTIC_SCAN_THRESHOLD_DIFF_MIN,
1278 CFG_OPPORTUNISTIC_SCAN_THRESHOLD_DIFF_MAX,
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07001279 cb_notify_set_opportunistic_scan_threshold_diff,
1280 0),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001281
1282 REG_DYNAMIC_VARIABLE(CFG_ROAM_RESCAN_RSSI_DIFF_NAME, WLAN_PARAM_Integer,
1283 struct hdd_config, nRoamRescanRssiDiff,
1284 VAR_FLAGS_OPTIONAL |
1285 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1286 CFG_ROAM_RESCAN_RSSI_DIFF_DEFAULT,
1287 CFG_ROAM_RESCAN_RSSI_DIFF_MIN,
1288 CFG_ROAM_RESCAN_RSSI_DIFF_MAX,
1289 cb_notify_set_roam_rescan_rssi_diff, 0),
1290
1291 REG_VARIABLE_STRING(CFG_NEIGHBOR_SCAN_CHAN_LIST_NAME, WLAN_PARAM_String,
1292 struct hdd_config, neighborScanChanList,
1293 VAR_FLAGS_OPTIONAL,
1294 (void *)CFG_NEIGHBOR_SCAN_CHAN_LIST_DEFAULT),
1295
1296 REG_DYNAMIC_VARIABLE(CFG_NEIGHBOR_SCAN_MIN_CHAN_TIME_NAME,
1297 WLAN_PARAM_Integer,
1298 struct hdd_config, nNeighborScanMinChanTime,
1299 VAR_FLAGS_OPTIONAL |
1300 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1301 CFG_NEIGHBOR_SCAN_MIN_CHAN_TIME_DEFAULT,
1302 CFG_NEIGHBOR_SCAN_MIN_CHAN_TIME_MIN,
1303 CFG_NEIGHBOR_SCAN_MIN_CHAN_TIME_MAX,
1304 cb_notify_set_neighbor_scan_min_chan_time, 0),
1305
1306 REG_DYNAMIC_VARIABLE(CFG_NEIGHBOR_SCAN_MAX_CHAN_TIME_NAME,
1307 WLAN_PARAM_Integer,
1308 struct hdd_config, nNeighborScanMaxChanTime,
1309 VAR_FLAGS_OPTIONAL |
1310 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1311 CFG_NEIGHBOR_SCAN_MAX_CHAN_TIME_DEFAULT,
1312 CFG_NEIGHBOR_SCAN_MAX_CHAN_TIME_MIN,
1313 CFG_NEIGHBOR_SCAN_MAX_CHAN_TIME_MAX,
1314 cb_notify_set_neighbor_scan_max_chan_time, 0),
1315
1316 REG_VARIABLE(CFG_11R_NEIGHBOR_REQ_MAX_TRIES_NAME, WLAN_PARAM_Integer,
1317 struct hdd_config, nMaxNeighborReqTries,
1318 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1319 CFG_11R_NEIGHBOR_REQ_MAX_TRIES_DEFAULT,
1320 CFG_11R_NEIGHBOR_REQ_MAX_TRIES_MIN,
1321 CFG_11R_NEIGHBOR_REQ_MAX_TRIES_MAX),
1322
1323 REG_DYNAMIC_VARIABLE(CFG_NEIGHBOR_SCAN_RESULTS_REFRESH_PERIOD_NAME,
1324 WLAN_PARAM_Integer,
1325 struct hdd_config, nNeighborResultsRefreshPeriod,
1326 VAR_FLAGS_OPTIONAL |
1327 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1328 CFG_NEIGHBOR_SCAN_RESULTS_REFRESH_PERIOD_DEFAULT,
1329 CFG_NEIGHBOR_SCAN_RESULTS_REFRESH_PERIOD_MIN,
1330 CFG_NEIGHBOR_SCAN_RESULTS_REFRESH_PERIOD_MAX,
1331 cb_notify_set_neighbor_results_refresh_period, 0),
1332
1333 REG_DYNAMIC_VARIABLE(CFG_EMPTY_SCAN_REFRESH_PERIOD_NAME,
1334 WLAN_PARAM_Integer,
1335 struct hdd_config, nEmptyScanRefreshPeriod,
1336 VAR_FLAGS_OPTIONAL |
1337 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1338 CFG_EMPTY_SCAN_REFRESH_PERIOD_DEFAULT,
1339 CFG_EMPTY_SCAN_REFRESH_PERIOD_MIN,
1340 CFG_EMPTY_SCAN_REFRESH_PERIOD_MAX,
1341 cb_notify_set_empty_scan_refresh_period, 0),
1342
1343 REG_DYNAMIC_VARIABLE(CFG_ROAM_BMISS_FIRST_BCNT_NAME, WLAN_PARAM_Integer,
1344 struct hdd_config, nRoamBmissFirstBcnt,
1345 VAR_FLAGS_OPTIONAL |
1346 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1347 CFG_ROAM_BMISS_FIRST_BCNT_DEFAULT,
1348 CFG_ROAM_BMISS_FIRST_BCNT_MIN,
1349 CFG_ROAM_BMISS_FIRST_BCNT_MAX,
1350 cb_notify_set_roam_bmiss_first_bcnt, 0),
1351
1352 REG_DYNAMIC_VARIABLE(CFG_ROAM_BMISS_FINAL_BCNT_NAME, WLAN_PARAM_Integer,
1353 struct hdd_config, nRoamBmissFinalBcnt,
1354 VAR_FLAGS_OPTIONAL |
1355 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1356 CFG_ROAM_BMISS_FINAL_BCNT_DEFAULT,
1357 CFG_ROAM_BMISS_FINAL_BCNT_MIN,
1358 CFG_ROAM_BMISS_FINAL_BCNT_MAX,
1359 cb_notify_set_roam_bmiss_final_bcnt, 0),
1360
1361 REG_DYNAMIC_VARIABLE(CFG_ROAM_BEACON_RSSI_WEIGHT_NAME,
1362 WLAN_PARAM_Integer,
1363 struct hdd_config, nRoamBeaconRssiWeight,
1364 VAR_FLAGS_OPTIONAL |
1365 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1366 CFG_ROAM_BEACON_RSSI_WEIGHT_DEFAULT,
1367 CFG_ROAM_BEACON_RSSI_WEIGHT_MIN,
1368 CFG_ROAM_BEACON_RSSI_WEIGHT_MAX,
1369 cb_notify_set_roam_beacon_rssi_weight, 0),
1370
1371 REG_DYNAMIC_VARIABLE(CFG_ROAMING_DFS_CHANNEL_NAME, WLAN_PARAM_Integer,
1372 struct hdd_config, allowDFSChannelRoam,
1373 VAR_FLAGS_OPTIONAL |
1374 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1375 CFG_ROAMING_DFS_CHANNEL_DEFAULT,
1376 CFG_ROAMING_DFS_CHANNEL_MIN,
1377 CFG_ROAMING_DFS_CHANNEL_MAX,
1378 cb_notify_set_dfs_scan_mode, 0),
1379
1380 REG_DYNAMIC_VARIABLE(CFG_DELAY_BEFORE_VDEV_STOP_NAME,
1381 WLAN_PARAM_Integer,
1382 struct hdd_config,
1383 delay_before_vdev_stop,
1384 VAR_FLAGS_OPTIONAL |
1385 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1386 CFG_DELAY_BEFORE_VDEV_STOP_DEFAULT,
1387 CFG_DELAY_BEFORE_VDEV_STOP_MIN,
1388 CFG_DELAY_BEFORE_VDEV_STOP_MAX,
1389 cb_notify_set_delay_before_vdev_stop,
1390 0),
1391
1392 REG_DYNAMIC_VARIABLE(CFG_ROAM_SCAN_HI_RSSI_MAXCOUNT_NAME,
1393 WLAN_PARAM_Integer,
1394 struct hdd_config,
1395 nhi_rssi_scan_max_count,
1396 VAR_FLAGS_OPTIONAL |
1397 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1398 CFG_ROAM_SCAN_HI_RSSI_MAXCOUNT_DEFAULT,
1399 CFG_ROAM_SCAN_HI_RSSI_MAXCOUNT_MIN,
1400 CFG_ROAM_SCAN_HI_RSSI_MAXCOUNT_MAX,
1401 cb_notify_set_roam_scan_hi_rssi_scan_params,
1402 eCSR_HI_RSSI_SCAN_MAXCOUNT_ID),
1403
1404 REG_DYNAMIC_VARIABLE(CFG_ROAM_SCAN_HI_RSSI_DELTA_NAME,
1405 WLAN_PARAM_Integer,
1406 struct hdd_config,
1407 nhi_rssi_scan_rssi_delta,
1408 VAR_FLAGS_OPTIONAL |
1409 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1410 CFG_ROAM_SCAN_HI_RSSI_DELTA_DEFAULT,
1411 CFG_ROAM_SCAN_HI_RSSI_DELTA_MIN,
1412 CFG_ROAM_SCAN_HI_RSSI_DELTA_MAX,
1413 cb_notify_set_roam_scan_hi_rssi_scan_params,
1414 eCSR_HI_RSSI_SCAN_RSSI_DELTA_ID),
1415
1416 REG_DYNAMIC_VARIABLE(CFG_ROAM_SCAN_HI_RSSI_DELAY_NAME,
1417 WLAN_PARAM_Integer,
1418 struct hdd_config,
1419 nhi_rssi_scan_delay,
1420 VAR_FLAGS_OPTIONAL |
1421 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1422 CFG_ROAM_SCAN_HI_RSSI_DELAY_DEFAULT,
1423 CFG_ROAM_SCAN_HI_RSSI_DELAY_MIN,
1424 CFG_ROAM_SCAN_HI_RSSI_DELAY_MAX,
1425 cb_notify_set_roam_scan_hi_rssi_scan_params,
1426 eCSR_HI_RSSI_SCAN_DELAY_ID),
1427
1428 REG_DYNAMIC_VARIABLE(CFG_ROAM_SCAN_HI_RSSI_UB_NAME,
1429 WLAN_PARAM_SignedInteger,
1430 struct hdd_config,
1431 nhi_rssi_scan_rssi_ub,
1432 VAR_FLAGS_OPTIONAL |
1433 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1434 CFG_ROAM_SCAN_HI_RSSI_UB_DEFAULT,
1435 CFG_ROAM_SCAN_HI_RSSI_UB_MIN,
1436 CFG_ROAM_SCAN_HI_RSSI_UB_MAX,
1437 cb_notify_set_roam_scan_hi_rssi_scan_params,
1438 eCSR_HI_RSSI_SCAN_RSSI_UB_ID),
1439
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001440 REG_VARIABLE(CFG_QOS_WMM_BURST_SIZE_DEFN_NAME, WLAN_PARAM_Integer,
1441 struct hdd_config, burstSizeDefinition,
1442 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1443 CFG_QOS_WMM_BURST_SIZE_DEFN_DEFAULT,
1444 CFG_QOS_WMM_BURST_SIZE_DEFN_MIN,
1445 CFG_QOS_WMM_BURST_SIZE_DEFN_MAX),
1446
1447 REG_VARIABLE(CFG_MCAST_BCAST_FILTER_SETTING_NAME, WLAN_PARAM_Integer,
1448 struct hdd_config, mcastBcastFilterSetting,
1449 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1450 CFG_MCAST_BCAST_FILTER_SETTING_DEFAULT,
1451 CFG_MCAST_BCAST_FILTER_SETTING_MIN,
1452 CFG_MCAST_BCAST_FILTER_SETTING_MAX),
1453
1454 REG_VARIABLE(CFG_ENABLE_HOST_ARPOFFLOAD_NAME, WLAN_PARAM_Integer,
1455 struct hdd_config, fhostArpOffload,
1456 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1457 CFG_ENABLE_HOST_ARPOFFLOAD_DEFAULT,
1458 CFG_ENABLE_HOST_ARPOFFLOAD_MIN,
1459 CFG_ENABLE_HOST_ARPOFFLOAD_MAX),
1460
Dustin Brown1224e212017-05-12 14:02:12 -07001461 REG_VARIABLE(CFG_HW_FILTER_MODE_NAME, WLAN_PARAM_Integer,
1462 struct hdd_config, hw_filter_mode,
Ravi Kumar Bokka794fd712017-03-21 20:52:46 +05301463 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
Dustin Brown1224e212017-05-12 14:02:12 -07001464 CFG_HW_FILTER_MODE_DEFAULT,
1465 CFG_HW_FILTER_MODE_MIN,
1466 CFG_HW_FILTER_MODE_MAX),
Ravi Kumar Bokka794fd712017-03-21 20:52:46 +05301467
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001468#ifdef FEATURE_WLAN_RA_FILTERING
1469 REG_VARIABLE(CFG_RA_FILTER_ENABLE_NAME, WLAN_PARAM_Integer,
1470 struct hdd_config, IsRArateLimitEnabled,
1471 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1472 CFG_RA_FILTER_ENABLE_DEFAULT,
1473 CFG_RA_FILTER_ENABLE_MIN,
1474 CFG_RA_FILTER_ENABLE_MAX),
1475
1476 REG_VARIABLE(CFG_RA_RATE_LIMIT_INTERVAL_NAME, WLAN_PARAM_Integer,
1477 struct hdd_config, RArateLimitInterval,
1478 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1479 CFG_RA_RATE_LIMIT_INTERVAL_DEFAULT,
1480 CFG_RA_RATE_LIMIT_INTERVAL_MIN,
1481 CFG_RA_RATE_LIMIT_INTERVAL_MAX),
1482#endif
1483
1484 REG_VARIABLE(CFG_IGNORE_PEER_ERP_INFO_NAME, WLAN_PARAM_Integer,
1485 struct hdd_config, ignore_peer_erp_info,
1486 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1487 CFG_IGNORE_PEER_ERP_INFO_DEFAULT,
1488 CFG_IGNORE_PEER_ERP_INFO_MIN,
1489 CFG_IGNORE_PEER_ERP_INFO_MAX),
1490
1491 REG_VARIABLE(CFG_ENABLE_HOST_SSDP_NAME, WLAN_PARAM_Integer,
1492 struct hdd_config, ssdp,
1493 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1494 CFG_ENABLE_HOST_SSDP_DEFAULT,
1495 CFG_ENABLE_HOST_SSDP_MIN,
1496 CFG_ENABLE_HOST_SSDP_MAX),
1497
Houston Hoffmanc7c69f02016-03-24 22:45:52 -07001498#ifdef FEATURE_RUNTIME_PM
1499 REG_VARIABLE(CFG_ENABLE_RUNTIME_PM, WLAN_PARAM_Integer,
1500 struct hdd_config, runtime_pm,
1501 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1502 CFG_ENABLE_RUNTIME_PM_DEFAULT,
1503 CFG_ENABLE_RUNTIME_PM_MIN,
1504 CFG_ENABLE_RUNTIME_PM_MAX),
1505
1506 REG_VARIABLE(CFG_RUNTIME_PM_DELAY_NAME, WLAN_PARAM_Integer,
1507 struct hdd_config, runtime_pm_delay,
1508 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1509 CFG_RUNTIME_PM_DELAY_DEFAULT,
1510 CFG_RUNTIME_PM_DELAY_MIN,
1511 CFG_RUNTIME_PM_DELAY_MAX),
1512#endif
1513
1514
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001515 REG_VARIABLE(CFG_ENABLE_HOST_NSOFFLOAD_NAME, WLAN_PARAM_Integer,
1516 struct hdd_config, fhostNSOffload,
1517 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1518 CFG_ENABLE_HOST_NSOFFLOAD_DEFAULT,
1519 CFG_ENABLE_HOST_NSOFFLOAD_MIN,
1520 CFG_ENABLE_HOST_NSOFFLOAD_MAX),
1521
1522 REG_VARIABLE(CFG_QOS_WMM_TS_INFO_ACK_POLICY_NAME, WLAN_PARAM_HexInteger,
1523 struct hdd_config, tsInfoAckPolicy,
1524 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1525 CFG_QOS_WMM_TS_INFO_ACK_POLICY_DEFAULT,
1526 CFG_QOS_WMM_TS_INFO_ACK_POLICY_MIN,
1527 CFG_QOS_WMM_TS_INFO_ACK_POLICY_MAX),
1528
1529 REG_VARIABLE(CFG_SINGLE_TID_RC_NAME, WLAN_PARAM_Integer,
1530 struct hdd_config, bSingleTidRc,
1531 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1532 CFG_SINGLE_TID_RC_DEFAULT,
1533 CFG_SINGLE_TID_RC_MIN,
1534 CFG_SINGLE_TID_RC_MAX),
1535
1536 REG_VARIABLE(CFG_DYNAMIC_PSPOLL_VALUE_NAME, WLAN_PARAM_Integer,
1537 struct hdd_config, dynamicPsPollValue,
1538 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1539 CFG_DYNAMIC_PSPOLL_VALUE_DEFAULT,
1540 CFG_DYNAMIC_PSPOLL_VALUE_MIN,
1541 CFG_DYNAMIC_PSPOLL_VALUE_MAX),
1542
1543 REG_VARIABLE(CFG_TELE_BCN_WAKEUP_EN_NAME, WLAN_PARAM_Integer,
1544 struct hdd_config, teleBcnWakeupEn,
1545 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1546 CFG_TELE_BCN_WAKEUP_EN_DEFAULT,
1547 CFG_TELE_BCN_WAKEUP_EN_MIN,
1548 CFG_TELE_BCN_WAKEUP_EN_MAX),
1549
1550 REG_VARIABLE(CFG_INFRA_STA_KEEP_ALIVE_PERIOD_NAME, WLAN_PARAM_Integer,
1551 struct hdd_config, infraStaKeepAlivePeriod,
1552 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1553 CFG_INFRA_STA_KEEP_ALIVE_PERIOD_DEFAULT,
1554 CFG_INFRA_STA_KEEP_ALIVE_PERIOD_MIN,
1555 CFG_INFRA_STA_KEEP_ALIVE_PERIOD_MAX),
1556
Dustin Brownb6b0f182017-03-08 13:08:27 -08001557 REG_VARIABLE(CFG_STA_KEEPALIVE_METHOD_NAME, WLAN_PARAM_Integer,
1558 struct hdd_config, sta_keepalive_method,
1559 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1560 CFG_STA_KEEPALIVE_METHOD_DEFAULT,
1561 CFG_STA_KEEPALIVE_METHOD_MIN,
1562 CFG_STA_KEEPALIVE_METHOD_MAX),
1563
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001564 REG_VARIABLE(CFG_QOS_ADDTS_WHEN_ACM_IS_OFF_NAME, WLAN_PARAM_Integer,
1565 struct hdd_config, AddTSWhenACMIsOff,
1566 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1567 CFG_QOS_ADDTS_WHEN_ACM_IS_OFF_DEFAULT,
1568 CFG_QOS_ADDTS_WHEN_ACM_IS_OFF_MIN,
1569 CFG_QOS_ADDTS_WHEN_ACM_IS_OFF_MAX),
1570
1571 REG_VARIABLE(CFG_VALIDATE_SCAN_LIST_NAME, WLAN_PARAM_Integer,
1572 struct hdd_config, fValidateScanList,
1573 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1574 CFG_VALIDATE_SCAN_LIST_DEFAULT,
1575 CFG_VALIDATE_SCAN_LIST_MIN,
1576 CFG_VALIDATE_SCAN_LIST_MAX),
1577
1578 REG_VARIABLE(CFG_NULLDATA_AP_RESP_TIMEOUT_NAME, WLAN_PARAM_Integer,
1579 struct hdd_config, nNullDataApRespTimeout,
1580 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1581 CFG_NULLDATA_AP_RESP_TIMEOUT_DEFAULT,
1582 CFG_NULLDATA_AP_RESP_TIMEOUT_MIN,
1583 CFG_NULLDATA_AP_RESP_TIMEOUT_MAX),
1584
1585 REG_VARIABLE(CFG_AP_DATA_AVAIL_POLL_PERIOD_NAME, WLAN_PARAM_Integer,
1586 struct hdd_config, apDataAvailPollPeriodInMs,
1587 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1588 CFG_AP_DATA_AVAIL_POLL_PERIOD_DEFAULT,
1589 CFG_AP_DATA_AVAIL_POLL_PERIOD_MIN,
1590 CFG_AP_DATA_AVAIL_POLL_PERIOD_MAX),
1591
1592 REG_VARIABLE(CFG_BAND_CAPABILITY_NAME, WLAN_PARAM_Integer,
1593 struct hdd_config, nBandCapability,
1594 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1595 CFG_BAND_CAPABILITY_DEFAULT,
1596 CFG_BAND_CAPABILITY_MIN,
1597 CFG_BAND_CAPABILITY_MAX),
1598
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301599/* CFG_QDF_TRACE_ENABLE Parameters */
1600 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_WDI_NAME, WLAN_PARAM_Integer,
1601 struct hdd_config, qdf_trace_enable_wdi,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001602 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301603 CFG_QDF_TRACE_ENABLE_DEFAULT,
1604 CFG_QDF_TRACE_ENABLE_MIN,
1605 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001606
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301607 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_HDD_NAME, WLAN_PARAM_Integer,
1608 struct hdd_config, qdf_trace_enable_hdd,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001609 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301610 CFG_QDF_TRACE_ENABLE_DEFAULT,
1611 CFG_QDF_TRACE_ENABLE_MIN,
1612 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001613
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301614 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_BMI_NAME, WLAN_PARAM_Integer,
1615 struct hdd_config, qdf_trace_enable_bmi,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001616 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301617 CFG_QDF_TRACE_ENABLE_DEFAULT,
1618 CFG_QDF_TRACE_ENABLE_MIN,
1619 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001620
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301621 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_SME_NAME, WLAN_PARAM_Integer,
1622 struct hdd_config, qdf_trace_enable_sme,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001623 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301624 CFG_QDF_TRACE_ENABLE_DEFAULT,
1625 CFG_QDF_TRACE_ENABLE_MIN,
1626 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001627
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301628 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_PE_NAME, WLAN_PARAM_Integer,
1629 struct hdd_config, qdf_trace_enable_pe,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001630 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301631 CFG_QDF_TRACE_ENABLE_DEFAULT,
1632 CFG_QDF_TRACE_ENABLE_MIN,
1633 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001634
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301635 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_WMA_NAME, WLAN_PARAM_Integer,
1636 struct hdd_config, qdf_trace_enable_wma,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001637 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301638 CFG_QDF_TRACE_ENABLE_DEFAULT,
1639 CFG_QDF_TRACE_ENABLE_MIN,
1640 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001641
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301642 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_SYS_NAME, WLAN_PARAM_Integer,
1643 struct hdd_config, qdf_trace_enable_sys,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001644 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301645 CFG_QDF_TRACE_ENABLE_DEFAULT,
1646 CFG_QDF_TRACE_ENABLE_MIN,
1647 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001648
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301649 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_QDF_NAME, WLAN_PARAM_Integer,
1650 struct hdd_config, qdf_trace_enable_qdf,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001651 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301652 CFG_QDF_TRACE_ENABLE_DEFAULT,
1653 CFG_QDF_TRACE_ENABLE_MIN,
1654 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001655
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301656 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_SAP_NAME, WLAN_PARAM_Integer,
1657 struct hdd_config, qdf_trace_enable_sap,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001658 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301659 CFG_QDF_TRACE_ENABLE_DEFAULT,
1660 CFG_QDF_TRACE_ENABLE_MIN,
1661 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001662
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301663 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_HDD_SAP_NAME, WLAN_PARAM_Integer,
1664 struct hdd_config, qdf_trace_enable_hdd_sap,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001665 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301666 CFG_QDF_TRACE_ENABLE_DEFAULT,
1667 CFG_QDF_TRACE_ENABLE_MIN,
1668 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001669
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301670 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_CFG_NAME, WLAN_PARAM_Integer,
1671 struct hdd_config, qdf_trace_enable_cfg,
Bhargav Shah480a90f2015-06-24 15:10:14 +05301672 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301673 CFG_QDF_TRACE_ENABLE_DEFAULT,
1674 CFG_QDF_TRACE_ENABLE_MIN,
1675 CFG_QDF_TRACE_ENABLE_MAX),
Bhargav Shah480a90f2015-06-24 15:10:14 +05301676
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301677 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_TXRX_NAME, WLAN_PARAM_Integer,
Bhargav Shah480a90f2015-06-24 15:10:14 +05301678 struct hdd_config, cfd_trace_enable_txrx,
1679 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301680 CFG_QDF_TRACE_ENABLE_DEFAULT,
1681 CFG_QDF_TRACE_ENABLE_MIN,
1682 CFG_QDF_TRACE_ENABLE_MAX),
Bhargav Shah480a90f2015-06-24 15:10:14 +05301683
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301684 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_HTC_NAME, WLAN_PARAM_Integer,
1685 struct hdd_config, qdf_trace_enable_htc,
Bhargav Shah480a90f2015-06-24 15:10:14 +05301686 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301687 CFG_QDF_TRACE_ENABLE_DEFAULT,
1688 CFG_QDF_TRACE_ENABLE_MIN,
1689 CFG_QDF_TRACE_ENABLE_MAX),
Bhargav Shah480a90f2015-06-24 15:10:14 +05301690
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301691 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_HIF_NAME, WLAN_PARAM_Integer,
1692 struct hdd_config, qdf_trace_enable_hif,
Bhargav Shah480a90f2015-06-24 15:10:14 +05301693 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301694 CFG_QDF_TRACE_ENABLE_DEFAULT,
1695 CFG_QDF_TRACE_ENABLE_MIN,
1696 CFG_QDF_TRACE_ENABLE_MAX),
Bhargav Shah480a90f2015-06-24 15:10:14 +05301697
1698 REG_VARIABLE(CFG_CDR_TRACE_ENABLE_HDD_SAP_DATA_NAME, WLAN_PARAM_Integer,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301699 struct hdd_config, qdf_trace_enable_hdd_sap_data,
Bhargav Shah480a90f2015-06-24 15:10:14 +05301700 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301701 CFG_QDF_TRACE_ENABLE_DEFAULT,
1702 CFG_QDF_TRACE_ENABLE_MIN,
1703 CFG_QDF_TRACE_ENABLE_MAX),
Bhargav Shah480a90f2015-06-24 15:10:14 +05301704
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301705 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_HDD_DATA_NAME, WLAN_PARAM_Integer,
1706 struct hdd_config, qdf_trace_enable_hdd_data,
Bhargav Shah480a90f2015-06-24 15:10:14 +05301707 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301708 CFG_QDF_TRACE_ENABLE_DEFAULT,
1709 CFG_QDF_TRACE_ENABLE_MIN,
1710 CFG_QDF_TRACE_ENABLE_MAX),
Bhargav Shah480a90f2015-06-24 15:10:14 +05301711
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301712 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_EPPING, WLAN_PARAM_Integer,
1713 struct hdd_config, qdf_trace_enable_epping,
Bhargav Shah480a90f2015-06-24 15:10:14 +05301714 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301715 CFG_QDF_TRACE_ENABLE_DEFAULT,
1716 CFG_QDF_TRACE_ENABLE_MIN,
1717 CFG_QDF_TRACE_ENABLE_MAX),
Bhargav Shah480a90f2015-06-24 15:10:14 +05301718
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301719 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_QDF_DEVICES, WLAN_PARAM_Integer,
1720 struct hdd_config, qdf_trace_enable_qdf_devices,
Bhargav Shah480a90f2015-06-24 15:10:14 +05301721 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301722 CFG_QDF_TRACE_ENABLE_DEFAULT,
1723 CFG_QDF_TRACE_ENABLE_MIN,
1724 CFG_QDF_TRACE_ENABLE_MAX),
Bhargav Shah480a90f2015-06-24 15:10:14 +05301725
Naveen Rawat7df31862017-03-01 17:09:30 -08001726 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_WIFI_POS, WLAN_PARAM_Integer,
1727 struct hdd_config, qdf_trace_enable_wifi_pos,
1728 VAR_FLAGS_OPTIONAL,
1729 CFG_QDF_TRACE_ENABLE_DEFAULT,
1730 CFG_QDF_TRACE_ENABLE_MIN,
1731 CFG_QDF_TRACE_ENABLE_MAX),
1732
Naveen Rawatf2b0dbd2017-03-27 10:00:15 -07001733 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_NAN, WLAN_PARAM_Integer,
1734 struct hdd_config, qdf_trace_enable_nan,
1735 VAR_FLAGS_OPTIONAL,
1736 CFG_QDF_TRACE_ENABLE_DEFAULT,
1737 CFG_QDF_TRACE_ENABLE_MIN,
1738 CFG_QDF_TRACE_ENABLE_MAX),
1739
Kiran Kumar Lokere798de7e2017-03-30 14:01:12 -07001740 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_REGULATORY, WLAN_PARAM_Integer,
1741 struct hdd_config, qdf_trace_enable_regulatory,
1742 VAR_FLAGS_OPTIONAL,
1743 CFG_QDF_TRACE_ENABLE_DEFAULT,
1744 CFG_QDF_TRACE_ENABLE_MIN,
1745 CFG_QDF_TRACE_ENABLE_MAX),
1746
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001747 REG_VARIABLE(CFG_TELE_BCN_TRANS_LI_NAME, WLAN_PARAM_Integer,
1748 struct hdd_config, nTeleBcnTransListenInterval,
1749 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1750 CFG_TELE_BCN_TRANS_LI_DEFAULT,
1751 CFG_TELE_BCN_TRANS_LI_MIN,
1752 CFG_TELE_BCN_TRANS_LI_MAX),
1753
1754 REG_VARIABLE(CFG_TELE_BCN_TRANS_LI_NUM_IDLE_BCNS_NAME,
1755 WLAN_PARAM_Integer,
1756 struct hdd_config, nTeleBcnTransLiNumIdleBeacons,
1757 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1758 CFG_TELE_BCN_TRANS_LI_NUM_IDLE_BCNS_DEFAULT,
1759 CFG_TELE_BCN_TRANS_LI_NUM_IDLE_BCNS_MIN,
1760 CFG_TELE_BCN_TRANS_LI_NUM_IDLE_BCNS_MAX),
1761
1762 REG_VARIABLE(CFG_TELE_BCN_MAX_LI_NAME, WLAN_PARAM_Integer,
1763 struct hdd_config, nTeleBcnMaxListenInterval,
1764 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1765 CFG_TELE_BCN_MAX_LI_DEFAULT,
1766 CFG_TELE_BCN_MAX_LI_MIN,
1767 CFG_TELE_BCN_MAX_LI_MAX),
1768
1769 REG_VARIABLE(CFG_TELE_BCN_MAX_LI_NUM_IDLE_BCNS_NAME, WLAN_PARAM_Integer,
1770 struct hdd_config, nTeleBcnMaxLiNumIdleBeacons,
1771 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1772 CFG_TELE_BCN_MAX_LI_NUM_IDLE_BCNS_DEFAULT,
1773 CFG_TELE_BCN_MAX_LI_NUM_IDLE_BCNS_MIN,
1774 CFG_TELE_BCN_MAX_LI_NUM_IDLE_BCNS_MAX),
1775
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001776 REG_VARIABLE(CFG_ENABLE_BYPASS_11D_NAME, WLAN_PARAM_Integer,
1777 struct hdd_config, enableBypass11d,
1778 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1779 CFG_ENABLE_BYPASS_11D_DEFAULT,
1780 CFG_ENABLE_BYPASS_11D_MIN,
1781 CFG_ENABLE_BYPASS_11D_MAX),
1782
1783 REG_VARIABLE(CFG_ENABLE_DFS_CHNL_SCAN_NAME, WLAN_PARAM_Integer,
1784 struct hdd_config, enableDFSChnlScan,
1785 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1786 CFG_ENABLE_DFS_CHNL_SCAN_DEFAULT,
1787 CFG_ENABLE_DFS_CHNL_SCAN_MIN,
1788 CFG_ENABLE_DFS_CHNL_SCAN_MAX),
1789
1790 REG_VARIABLE(CFG_ENABLE_DFS_PNO_CHNL_SCAN_NAME, WLAN_PARAM_Integer,
1791 struct hdd_config, enable_dfs_pno_chnl_scan,
1792 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1793 CFG_ENABLE_DFS_PNO_CHNL_SCAN_DEFAULT,
1794 CFG_ENABLE_DFS_PNO_CHNL_SCAN_MIN,
1795 CFG_ENABLE_DFS_PNO_CHNL_SCAN_MAX),
1796
1797 REG_VARIABLE(CFG_ENABLE_DYNAMIC_DTIM_NAME, WLAN_PARAM_Integer,
1798 struct hdd_config, enableDynamicDTIM,
1799 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1800 CFG_ENABLE_DYNAMIC_DTIM_DEFAULT,
1801 CFG_ENABLE_DYNAMIC_DTIM_MIN,
1802 CFG_ENABLE_DYNAMIC_DTIM_MAX),
1803
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001804 REG_VARIABLE(CFG_SHORT_GI_40MHZ_NAME, WLAN_PARAM_Integer,
1805 struct hdd_config, ShortGI40MhzEnable,
1806 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1807 CFG_SHORT_GI_40MHZ_DEFAULT,
1808 CFG_SHORT_GI_40MHZ_MIN,
1809 CFG_SHORT_GI_40MHZ_MAX),
1810
1811 REG_DYNAMIC_VARIABLE(CFG_REPORT_MAX_LINK_SPEED, WLAN_PARAM_Integer,
1812 struct hdd_config, reportMaxLinkSpeed,
1813 VAR_FLAGS_OPTIONAL |
1814 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1815 CFG_REPORT_MAX_LINK_SPEED_DEFAULT,
1816 CFG_REPORT_MAX_LINK_SPEED_MIN,
1817 CFG_REPORT_MAX_LINK_SPEED_MAX,
1818 NULL, 0),
1819
1820 REG_DYNAMIC_VARIABLE(CFG_LINK_SPEED_RSSI_HIGH, WLAN_PARAM_SignedInteger,
1821 struct hdd_config, linkSpeedRssiHigh,
1822 VAR_FLAGS_OPTIONAL |
1823 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1824 CFG_LINK_SPEED_RSSI_HIGH_DEFAULT,
1825 CFG_LINK_SPEED_RSSI_HIGH_MIN,
1826 CFG_LINK_SPEED_RSSI_HIGH_MAX,
1827 NULL, 0),
1828
1829 REG_DYNAMIC_VARIABLE(CFG_LINK_SPEED_RSSI_MID, WLAN_PARAM_SignedInteger,
1830 struct hdd_config, linkSpeedRssiMid,
1831 VAR_FLAGS_OPTIONAL |
1832 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1833 CFG_LINK_SPEED_RSSI_MID_DEFAULT,
1834 CFG_LINK_SPEED_RSSI_MID_MIN,
1835 CFG_LINK_SPEED_RSSI_MID_MAX,
1836 NULL, 0),
1837
1838 REG_DYNAMIC_VARIABLE(CFG_LINK_SPEED_RSSI_LOW, WLAN_PARAM_SignedInteger,
1839 struct hdd_config, linkSpeedRssiLow,
1840 VAR_FLAGS_OPTIONAL |
1841 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1842 CFG_LINK_SPEED_RSSI_LOW_DEFAULT,
1843 CFG_LINK_SPEED_RSSI_LOW_MIN,
1844 CFG_LINK_SPEED_RSSI_LOW_MAX,
1845 NULL, 0),
1846
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001847 REG_DYNAMIC_VARIABLE(CFG_ROAM_PREFER_5GHZ, WLAN_PARAM_Integer,
1848 struct hdd_config, nRoamPrefer5GHz,
1849 VAR_FLAGS_OPTIONAL |
1850 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1851 CFG_ROAM_PREFER_5GHZ_DEFAULT,
1852 CFG_ROAM_PREFER_5GHZ_MIN,
1853 CFG_ROAM_PREFER_5GHZ_MAX,
1854 cb_notify_set_roam_prefer5_g_hz, 0),
1855
1856 REG_DYNAMIC_VARIABLE(CFG_ROAM_INTRA_BAND, WLAN_PARAM_Integer,
1857 struct hdd_config, nRoamIntraBand,
1858 VAR_FLAGS_OPTIONAL |
1859 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1860 CFG_ROAM_INTRA_BAND_DEFAULT,
1861 CFG_ROAM_INTRA_BAND_MIN,
1862 CFG_ROAM_INTRA_BAND_MAX,
1863 cb_notify_set_roam_intra_band, 0),
1864
1865 REG_DYNAMIC_VARIABLE(CFG_ROAM_SCAN_N_PROBES, WLAN_PARAM_Integer,
1866 struct hdd_config, nProbes,
1867 VAR_FLAGS_OPTIONAL |
1868 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1869 CFG_ROAM_SCAN_N_PROBES_DEFAULT,
1870 CFG_ROAM_SCAN_N_PROBES_MIN,
1871 CFG_ROAM_SCAN_N_PROBES_MAX,
1872 cb_notify_set_roam_scan_n_probes, 0),
1873
1874 REG_DYNAMIC_VARIABLE(CFG_ROAM_SCAN_HOME_AWAY_TIME, WLAN_PARAM_Integer,
1875 struct hdd_config, nRoamScanHomeAwayTime,
1876 VAR_FLAGS_OPTIONAL |
1877 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1878 CFG_ROAM_SCAN_HOME_AWAY_TIME_DEFAULT,
1879 CFG_ROAM_SCAN_HOME_AWAY_TIME_MIN,
1880 CFG_ROAM_SCAN_HOME_AWAY_TIME_MAX,
1881 cb_notify_set_roam_scan_home_away_time, 0),
1882
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001883 REG_VARIABLE(CFG_P2P_DEVICE_ADDRESS_ADMINISTRATED_NAME,
1884 WLAN_PARAM_Integer,
1885 struct hdd_config, isP2pDeviceAddrAdministrated,
1886 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1887 CFG_P2P_DEVICE_ADDRESS_ADMINISTRATED_DEFAULT,
1888 CFG_P2P_DEVICE_ADDRESS_ADMINISTRATED_MIN,
1889 CFG_P2P_DEVICE_ADDRESS_ADMINISTRATED_MAX),
1890
1891 REG_VARIABLE(CFG_ENABLE_MCC_ENABLED_NAME, WLAN_PARAM_Integer,
1892 struct hdd_config, enableMCC,
1893 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1894 CFG_ENABLE_MCC_ENABLED_DEFAULT,
1895 CFG_ENABLE_MCC_ENABLED_MIN,
1896 CFG_ENABLE_MCC_ENABLED_MAX),
1897
1898 REG_VARIABLE(CFG_ALLOW_MCC_GO_DIFF_BI_NAME, WLAN_PARAM_Integer,
1899 struct hdd_config, allowMCCGODiffBI,
1900 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1901 CFG_ALLOW_MCC_GO_DIFF_BI_DEFAULT,
1902 CFG_ALLOW_MCC_GO_DIFF_BI_MIN,
1903 CFG_ALLOW_MCC_GO_DIFF_BI_MAX),
1904
1905 REG_VARIABLE(CFG_THERMAL_MIGRATION_ENABLE_NAME, WLAN_PARAM_Integer,
1906 struct hdd_config, thermalMitigationEnable,
1907 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1908 CFG_THERMAL_MIGRATION_ENABLE_DEFAULT,
1909 CFG_THERMAL_MIGRATION_ENABLE_MIN,
1910 CFG_THERMAL_MIGRATION_ENABLE_MAX),
1911
1912 REG_VARIABLE(CFG_THROTTLE_PERIOD_NAME, WLAN_PARAM_Integer,
1913 struct hdd_config, throttlePeriod,
1914 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1915 CFG_THROTTLE_PERIOD_DEFAULT,
1916 CFG_THROTTLE_PERIOD_MIN,
1917 CFG_THROTTLE_PERIOD_MAX),
1918
Poddar, Siddarth83905022016-04-16 17:56:08 -07001919 REG_VARIABLE(CFG_THROTTLE_DUTY_CYCLE_LEVEL0_NAME, WLAN_PARAM_Integer,
1920 struct hdd_config, throttle_dutycycle_level0,
1921 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1922 CFG_THROTTLE_DUTY_CYCLE_LEVEL0_DEFAULT,
1923 CFG_THROTTLE_DUTY_CYCLE_LEVEL0_MIN,
1924 CFG_THROTTLE_DUTY_CYCLE_LEVEL0_MAX),
1925
1926 REG_VARIABLE(CFG_THROTTLE_DUTY_CYCLE_LEVEL1_NAME, WLAN_PARAM_Integer,
1927 struct hdd_config, throttle_dutycycle_level1,
1928 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1929 CFG_THROTTLE_DUTY_CYCLE_LEVEL1_DEFAULT,
1930 CFG_THROTTLE_DUTY_CYCLE_LEVEL1_MIN,
1931 CFG_THROTTLE_DUTY_CYCLE_LEVEL1_MAX),
1932
1933 REG_VARIABLE(CFG_THROTTLE_DUTY_CYCLE_LEVEL2_NAME, WLAN_PARAM_Integer,
1934 struct hdd_config, throttle_dutycycle_level2,
1935 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1936 CFG_THROTTLE_DUTY_CYCLE_LEVEL2_DEFAULT,
1937 CFG_THROTTLE_DUTY_CYCLE_LEVEL2_MIN,
1938 CFG_THROTTLE_DUTY_CYCLE_LEVEL2_MAX),
1939
1940 REG_VARIABLE(CFG_THROTTLE_DUTY_CYCLE_LEVEL3_NAME, WLAN_PARAM_Integer,
1941 struct hdd_config, throttle_dutycycle_level3,
1942 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1943 CFG_THROTTLE_DUTY_CYCLE_LEVEL3_DEFAULT,
1944 CFG_THROTTLE_DUTY_CYCLE_LEVEL3_MIN,
1945 CFG_THROTTLE_DUTY_CYCLE_LEVEL3_MAX),
1946
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001947 REG_VARIABLE(CFG_ENABLE_MODULATED_DTIM_NAME, WLAN_PARAM_Integer,
1948 struct hdd_config, enableModulatedDTIM,
1949 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1950 CFG_ENABLE_MODULATED_DTIM_DEFAULT,
1951 CFG_ENABLE_MODULATED_DTIM_MIN,
1952 CFG_ENABLE_MODULATED_DTIM_MAX),
1953
1954 REG_VARIABLE(CFG_MC_ADDR_LIST_ENABLE_NAME, WLAN_PARAM_Integer,
1955 struct hdd_config, fEnableMCAddrList,
1956 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1957 CFG_MC_ADDR_LIST_ENABLE_DEFAULT,
1958 CFG_MC_ADDR_LIST_ENABLE_MIN,
1959 CFG_MC_ADDR_LIST_ENABLE_MAX),
1960
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001961 REG_VARIABLE(CFG_VHT_CHANNEL_WIDTH, WLAN_PARAM_Integer,
1962 struct hdd_config, vhtChannelWidth,
1963 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
1964 CFG_VHT_CHANNEL_WIDTH_DEFAULT,
1965 CFG_VHT_CHANNEL_WIDTH_MIN,
1966 CFG_VHT_CHANNEL_WIDTH_MAX),
1967
1968 REG_VARIABLE(CFG_VHT_ENABLE_RX_MCS_8_9, WLAN_PARAM_Integer,
1969 struct hdd_config, vhtRxMCS,
1970 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
1971 CFG_VHT_ENABLE_RX_MCS_8_9_DEFAULT,
1972 CFG_VHT_ENABLE_RX_MCS_8_9_MIN,
1973 CFG_VHT_ENABLE_RX_MCS_8_9_MAX),
1974
1975 REG_VARIABLE(CFG_VHT_ENABLE_TX_MCS_8_9, WLAN_PARAM_Integer,
1976 struct hdd_config, vhtTxMCS,
1977 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
1978 CFG_VHT_ENABLE_TX_MCS_8_9_DEFAULT,
1979 CFG_VHT_ENABLE_TX_MCS_8_9_MIN,
1980 CFG_VHT_ENABLE_TX_MCS_8_9_MAX),
1981
1982 REG_VARIABLE(CFG_VHT_ENABLE_RX_MCS2x2_8_9, WLAN_PARAM_Integer,
1983 struct hdd_config, vhtRxMCS2x2,
1984 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
1985 CFG_VHT_ENABLE_RX_MCS2x2_8_9_DEFAULT,
1986 CFG_VHT_ENABLE_RX_MCS2x2_8_9_MIN,
1987 CFG_VHT_ENABLE_RX_MCS2x2_8_9_MAX),
1988
1989 REG_VARIABLE(CFG_VHT_ENABLE_TX_MCS2x2_8_9, WLAN_PARAM_Integer,
1990 struct hdd_config, vhtTxMCS2x2,
1991 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
1992 CFG_VHT_ENABLE_TX_MCS2x2_8_9_DEFAULT,
1993 CFG_VHT_ENABLE_TX_MCS2x2_8_9_MIN,
1994 CFG_VHT_ENABLE_TX_MCS2x2_8_9_MAX),
1995
1996 REG_VARIABLE(CFG_VHT_ENABLE_2x2_CAP_FEATURE, WLAN_PARAM_Integer,
1997 struct hdd_config, enable2x2,
1998 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1999 CFG_VHT_ENABLE_2x2_CAP_FEATURE_DEFAULT,
2000 CFG_VHT_ENABLE_2x2_CAP_FEATURE_MIN,
2001 CFG_VHT_ENABLE_2x2_CAP_FEATURE_MAX),
2002
Nitesh Shah0e5c7322017-03-23 14:55:11 +05302003 REG_VARIABLE(CFG_VDEV_TYPE_NSS_2G, WLAN_PARAM_Integer,
Kiran Kumar Lokere666bf852016-05-02 12:23:02 -07002004 struct hdd_config, vdev_type_nss_2g,
2005 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2006 CFG_VDEV_TYPE_NSS_2G_DEFAULT,
2007 CFG_VDEV_TYPE_NSS_2G_MIN,
2008 CFG_VDEV_TYPE_NSS_2G_MAX),
2009
Kiran Kumar Lokere1aa9c9a2016-10-05 18:50:59 -07002010 REG_VARIABLE(CFG_STA_PREFER_80MHZ_OVER_160MHZ, WLAN_PARAM_Integer,
2011 struct hdd_config, sta_prefer_80MHz_over_160MHz,
2012 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2013 CFG_STA_PREFER_80MHZ_OVER_160MHZ_DEFAULT,
2014 CFG_STA_PREFER_80MHZ_OVER_160MHZ_MIN,
2015 CFG_STA_PREFER_80MHZ_OVER_160MHZ_MAX),
2016
Nitesh Shah0e5c7322017-03-23 14:55:11 +05302017 REG_VARIABLE(CFG_VDEV_TYPE_NSS_5G, WLAN_PARAM_Integer,
Kiran Kumar Lokere666bf852016-05-02 12:23:02 -07002018 struct hdd_config, vdev_type_nss_5g,
2019 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2020 CFG_VDEV_TYPE_NSS_5G_DEFAULT,
2021 CFG_VDEV_TYPE_NSS_5G_MIN,
2022 CFG_VDEV_TYPE_NSS_5G_MAX),
2023
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002024 REG_VARIABLE(CFG_VHT_ENABLE_MU_BFORMEE_CAP_FEATURE, WLAN_PARAM_Integer,
2025 struct hdd_config, enableMuBformee,
2026 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2027 CFG_VHT_ENABLE_MU_BFORMEE_CAP_FEATURE_DEFAULT,
2028 CFG_VHT_ENABLE_MU_BFORMEE_CAP_FEATURE_MIN,
2029 CFG_VHT_ENABLE_MU_BFORMEE_CAP_FEATURE_MAX),
2030
2031 REG_VARIABLE(CFG_VHT_ENABLE_PAID_FEATURE, WLAN_PARAM_Integer,
2032 struct hdd_config, enableVhtpAid,
2033 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2034 CFG_VHT_ENABLE_PAID_FEATURE_DEFAULT,
2035 CFG_VHT_ENABLE_PAID_FEATURE_MIN,
2036 CFG_VHT_ENABLE_PAID_FEATURE_MAX),
2037
2038 REG_VARIABLE(CFG_VHT_ENABLE_GID_FEATURE, WLAN_PARAM_Integer,
2039 struct hdd_config, enableVhtGid,
2040 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2041 CFG_VHT_ENABLE_GID_FEATURE_DEFAULT,
2042 CFG_VHT_ENABLE_GID_FEATURE_MIN,
2043 CFG_VHT_ENABLE_GID_FEATURE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002044
2045 REG_VARIABLE(CFG_VHT_ENABLE_1x1_TX_CHAINMASK, WLAN_PARAM_Integer,
2046 struct hdd_config, txchainmask1x1,
2047 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2048 CFG_VHT_ENABLE_1x1_TX_CHAINMASK_DEFAULT,
2049 CFG_VHT_ENABLE_1x1_TX_CHAINMASK_MIN,
2050 CFG_VHT_ENABLE_1x1_TX_CHAINMASK_MAX),
2051
2052 REG_VARIABLE(CFG_VHT_ENABLE_1x1_RX_CHAINMASK, WLAN_PARAM_Integer,
2053 struct hdd_config, rxchainmask1x1,
2054 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2055 CFG_VHT_ENABLE_1x1_RX_CHAINMASK_DEFAULT,
2056 CFG_VHT_ENABLE_1x1_RX_CHAINMASK_MIN,
2057 CFG_VHT_ENABLE_1x1_RX_CHAINMASK_MAX),
2058
2059 REG_VARIABLE(CFG_ENABLE_AMPDUPS_FEATURE, WLAN_PARAM_Integer,
2060 struct hdd_config, enableAmpduPs,
2061 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2062 CFG_ENABLE_AMPDUPS_FEATURE_DEFAULT,
2063 CFG_ENABLE_AMPDUPS_FEATURE_MIN,
2064 CFG_ENABLE_AMPDUPS_FEATURE_MAX),
2065
2066 REG_VARIABLE(CFG_HT_ENABLE_SMPS_CAP_FEATURE, WLAN_PARAM_Integer,
2067 struct hdd_config, enableHtSmps,
2068 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2069 CFG_HT_ENABLE_SMPS_CAP_FEATURE_DEFAULT,
2070 CFG_HT_ENABLE_SMPS_CAP_FEATURE_MIN,
2071 CFG_HT_ENABLE_SMPS_CAP_FEATURE_MAX),
2072
2073 REG_VARIABLE(CFG_HT_SMPS_CAP_FEATURE, WLAN_PARAM_Integer,
2074 struct hdd_config, htSmps,
2075 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2076 CFG_HT_SMPS_CAP_FEATURE_DEFAULT,
2077 CFG_HT_SMPS_CAP_FEATURE_MIN,
2078 CFG_HT_SMPS_CAP_FEATURE_MAX),
2079
2080 REG_VARIABLE(CFG_DISABLE_DFS_CH_SWITCH, WLAN_PARAM_Integer,
2081 struct hdd_config, disableDFSChSwitch,
2082 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2083 CFG_DISABLE_DFS_CH_SWITCH_DEFAULT,
2084 CFG_DISABLE_DFS_CH_SWITCH_MIN,
2085 CFG_DISABLE_DFS_CH_SWITCH_MAX),
2086
2087 REG_VARIABLE(CFG_ENABLE_DFS_MASTER_CAPABILITY, WLAN_PARAM_Integer,
2088 struct hdd_config, enableDFSMasterCap,
2089 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2090 CFG_ENABLE_DFS_MASTER_CAPABILITY_DEFAULT,
2091 CFG_ENABLE_DFS_MASTER_CAPABILITY_MIN,
2092 CFG_ENABLE_DFS_MASTER_CAPABILITY_MAX),
2093
2094 REG_DYNAMIC_VARIABLE(CFG_SAP_PREFERRED_CHANNEL_LOCATION,
2095 WLAN_PARAM_Integer,
2096 struct hdd_config, gSapPreferredChanLocation,
2097 VAR_FLAGS_OPTIONAL |
2098 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2099 CFG_SAP_PREFERRED_CHANNEL_LOCATION_DEFAULT,
2100 CFG_SAP_PREFERRED_CHANNEL_LOCATION_MIN,
2101 CFG_SAP_PREFERRED_CHANNEL_LOCATION_MAX,
2102 cb_notify_set_g_sap_preferred_chan_location, 0),
2103 REG_DYNAMIC_VARIABLE(CFG_DISABLE_DFS_JAPAN_W53, WLAN_PARAM_Integer,
2104 struct hdd_config, gDisableDfsJapanW53,
2105 VAR_FLAGS_OPTIONAL |
2106 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2107 CFG_DISABLE_DFS_JAPAN_W53_DEFAULT,
2108 CFG_DISABLE_DFS_JAPAN_W53_MIN,
2109 CFG_DISABLE_DFS_JAPAN_W53_MAX,
2110 ch_notify_set_g_disable_dfs_japan_w53, 0),
Hong Shi417824f2017-01-12 02:31:14 +08002111
2112 REG_VARIABLE(CFG_MAX_HT_MCS_FOR_TX_DATA, WLAN_PARAM_HexInteger,
2113 struct hdd_config, max_ht_mcs_txdata,
2114 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2115 CFG_MAX_HT_MCS_FOR_TX_DATA_DEFAULT,
2116 CFG_MAX_HT_MCS_FOR_TX_DATA_MIN,
2117 CFG_MAX_HT_MCS_FOR_TX_DATA_MAX),
2118
Hong Shia9ef8712017-02-19 21:54:02 +08002119 REG_VARIABLE(CFG_DISABLE_ABG_RATE_FOR_TX_DATA, WLAN_PARAM_Integer,
2120 struct hdd_config, disable_abg_rate_txdata,
2121 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2122 CFG_DISABLE_ABG_RATE_FOR_TX_DATA_DEFAULT,
2123 CFG_DISABLE_ABG_RATE_FOR_TX_DATA_MIN,
2124 CFG_DISABLE_ABG_RATE_FOR_TX_DATA_MAX),
2125
Hong Shib90718f2017-02-20 00:57:22 +08002126 REG_VARIABLE(CFG_RATE_FOR_TX_MGMT, WLAN_PARAM_HexInteger,
2127 struct hdd_config, rate_for_tx_mgmt,
2128 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2129 CFG_RATE_FOR_TX_MGMT_DEFAULT,
2130 CFG_RATE_FOR_TX_MGMT_MIN,
2131 CFG_RATE_FOR_TX_MGMT_MAX),
2132
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002133 REG_VARIABLE(CFG_ENABLE_FIRST_SCAN_2G_ONLY_NAME, WLAN_PARAM_Integer,
2134 struct hdd_config, enableFirstScan2GOnly,
2135 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2136 CFG_ENABLE_FIRST_SCAN_2G_ONLY_DEFAULT,
2137 CFG_ENABLE_FIRST_SCAN_2G_ONLY_MIN,
2138 CFG_ENABLE_FIRST_SCAN_2G_ONLY_MAX),
2139
2140 REG_VARIABLE(CFG_ENABLE_SKIP_DFS_IN_P2P_SEARCH_NAME, WLAN_PARAM_Integer,
2141 struct hdd_config, skipDfsChnlInP2pSearch,
2142 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2143 CFG_ENABLE_SKIP_DFS_IN_P2P_SEARCH_DEFAULT,
2144 CFG_ENABLE_SKIP_DFS_IN_P2P_SEARCH_MIN,
2145 CFG_ENABLE_SKIP_DFS_IN_P2P_SEARCH_MAX),
2146
2147 REG_VARIABLE(CFG_IGNORE_DYNAMIC_DTIM_IN_P2P_MODE_NAME,
2148 WLAN_PARAM_Integer,
2149 struct hdd_config, ignoreDynamicDtimInP2pMode,
2150 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2151 CFG_IGNORE_DYNAMIC_DTIM_IN_P2P_MODE_DEFAULT,
2152 CFG_IGNORE_DYNAMIC_DTIM_IN_P2P_MODE_MIN,
2153 CFG_IGNORE_DYNAMIC_DTIM_IN_P2P_MODE_MAX),
2154
2155 REG_VARIABLE(CFG_ENABLE_RX_STBC, WLAN_PARAM_Integer,
2156 struct hdd_config, enableRxSTBC,
2157 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2158 CFG_ENABLE_RX_STBC_DEFAULT,
2159 CFG_ENABLE_RX_STBC_MIN,
2160 CFG_ENABLE_RX_STBC_MAX),
2161
2162 REG_VARIABLE(CFG_ENABLE_TX_STBC, WLAN_PARAM_Integer,
2163 struct hdd_config, enableTxSTBC,
2164 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2165 CFG_ENABLE_TX_STBC_DEFAULT,
2166 CFG_ENABLE_TX_STBC_MIN,
2167 CFG_ENABLE_TX_STBC_MAX),
2168
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002169 REG_VARIABLE(CFG_PPS_ENABLE_5G_EBT, WLAN_PARAM_Integer,
2170 struct hdd_config, enable5gEBT,
2171 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2172 CFG_PPS_ENABLE_5G_EBT_FEATURE_DEFAULT,
2173 CFG_PPS_ENABLE_5G_EBT_FEATURE_MIN,
2174 CFG_PPS_ENABLE_5G_EBT_FEATURE_MAX),
2175
2176#ifdef FEATURE_WLAN_TDLS
2177 REG_VARIABLE(CFG_TDLS_SUPPORT_ENABLE, WLAN_PARAM_Integer,
2178 struct hdd_config, fEnableTDLSSupport,
2179 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2180 CFG_TDLS_SUPPORT_ENABLE_DEFAULT,
2181 CFG_TDLS_SUPPORT_ENABLE_MIN,
2182 CFG_TDLS_SUPPORT_ENABLE_MAX),
2183
2184 REG_VARIABLE(CFG_TDLS_IMPLICIT_TRIGGER, WLAN_PARAM_Integer,
2185 struct hdd_config, fEnableTDLSImplicitTrigger,
2186 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2187 CFG_TDLS_IMPLICIT_TRIGGER_DEFAULT,
2188 CFG_TDLS_IMPLICIT_TRIGGER_MIN,
2189 CFG_TDLS_IMPLICIT_TRIGGER_MAX),
2190
2191 REG_VARIABLE(CFG_TDLS_TX_STATS_PERIOD, WLAN_PARAM_Integer,
2192 struct hdd_config, fTDLSTxStatsPeriod,
2193 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2194 CFG_TDLS_TX_STATS_PERIOD_DEFAULT,
2195 CFG_TDLS_TX_STATS_PERIOD_MIN,
2196 CFG_TDLS_TX_STATS_PERIOD_MAX),
2197
2198 REG_VARIABLE(CFG_TDLS_TX_PACKET_THRESHOLD, WLAN_PARAM_Integer,
2199 struct hdd_config, fTDLSTxPacketThreshold,
2200 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2201 CFG_TDLS_TX_PACKET_THRESHOLD_DEFAULT,
2202 CFG_TDLS_TX_PACKET_THRESHOLD_MIN,
2203 CFG_TDLS_TX_PACKET_THRESHOLD_MAX),
2204
2205 REG_VARIABLE(CFG_TDLS_MAX_DISCOVERY_ATTEMPT, WLAN_PARAM_Integer,
2206 struct hdd_config, fTDLSMaxDiscoveryAttempt,
2207 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2208 CFG_TDLS_MAX_DISCOVERY_ATTEMPT_DEFAULT,
2209 CFG_TDLS_MAX_DISCOVERY_ATTEMPT_MIN,
2210 CFG_TDLS_MAX_DISCOVERY_ATTEMPT_MAX),
2211
Kabilan Kannanca670be2015-11-23 01:56:12 -08002212 REG_VARIABLE(CFG_TDLS_IDLE_TIMEOUT, WLAN_PARAM_Integer,
2213 struct hdd_config, tdls_idle_timeout,
2214 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2215 CFG_TDLS_IDLE_TIMEOUT_DEFAULT,
2216 CFG_TDLS_IDLE_TIMEOUT_MIN,
2217 CFG_TDLS_IDLE_TIMEOUT_MAX),
2218
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002219 REG_VARIABLE(CFG_TDLS_IDLE_PACKET_THRESHOLD, WLAN_PARAM_Integer,
2220 struct hdd_config, fTDLSIdlePacketThreshold,
2221 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2222 CFG_TDLS_IDLE_PACKET_THRESHOLD_DEFAULT,
2223 CFG_TDLS_IDLE_PACKET_THRESHOLD_MIN,
2224 CFG_TDLS_IDLE_PACKET_THRESHOLD_MAX),
2225
2226 REG_VARIABLE(CFG_TDLS_RSSI_TRIGGER_THRESHOLD, WLAN_PARAM_SignedInteger,
2227 struct hdd_config, fTDLSRSSITriggerThreshold,
2228 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2229 CFG_TDLS_RSSI_TRIGGER_THRESHOLD_DEFAULT,
2230 CFG_TDLS_RSSI_TRIGGER_THRESHOLD_MIN,
2231 CFG_TDLS_RSSI_TRIGGER_THRESHOLD_MAX),
2232
2233 REG_VARIABLE(CFG_TDLS_RSSI_TEARDOWN_THRESHOLD, WLAN_PARAM_SignedInteger,
2234 struct hdd_config, fTDLSRSSITeardownThreshold,
2235 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2236 CFG_TDLS_RSSI_TEARDOWN_THRESHOLD_DEFAULT,
2237 CFG_TDLS_RSSI_TEARDOWN_THRESHOLD_MIN,
2238 CFG_TDLS_RSSI_TEARDOWN_THRESHOLD_MAX),
2239
2240 REG_VARIABLE(CFG_TDLS_RSSI_DELTA, WLAN_PARAM_SignedInteger,
2241 struct hdd_config, fTDLSRSSIDelta,
2242 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2243 CFG_TDLS_RSSI_DELTA_DEFAULT,
2244 CFG_TDLS_RSSI_DELTA_MIN,
2245 CFG_TDLS_RSSI_DELTA_MAX),
2246
2247 REG_VARIABLE(CFG_TDLS_QOS_WMM_UAPSD_MASK_NAME, WLAN_PARAM_HexInteger,
2248 struct hdd_config, fTDLSUapsdMask,
2249 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2250 CFG_TDLS_QOS_WMM_UAPSD_MASK_DEFAULT,
2251 CFG_TDLS_QOS_WMM_UAPSD_MASK_MIN,
2252 CFG_TDLS_QOS_WMM_UAPSD_MASK_MAX),
2253
2254 REG_VARIABLE(CFG_TDLS_BUFFER_STA_SUPPORT_ENABLE, WLAN_PARAM_Integer,
2255 struct hdd_config, fEnableTDLSBufferSta,
2256 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2257 CFG_TDLS_BUFFER_STA_SUPPORT_ENABLE_DEFAULT,
2258 CFG_TDLS_BUFFER_STA_SUPPORT_ENABLE_MIN,
2259 CFG_TDLS_BUFFER_STA_SUPPORT_ENABLE_MAX),
2260
2261 REG_VARIABLE(CFG_TDLS_OFF_CHANNEL_SUPPORT_ENABLE, WLAN_PARAM_Integer,
2262 struct hdd_config, fEnableTDLSOffChannel,
2263 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2264 CFG_TDLS_OFF_CHANNEL_SUPPORT_ENABLE_DEFAULT,
2265 CFG_TDLS_OFF_CHANNEL_SUPPORT_ENABLE_MIN,
2266 CFG_TDLS_OFF_CHANNEL_SUPPORT_ENABLE_MAX),
2267
2268 REG_VARIABLE(CFG_TDLS_PREFERRED_OFF_CHANNEL_NUM, WLAN_PARAM_Integer,
2269 struct hdd_config, fTDLSPrefOffChanNum,
2270 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2271 CFG_TDLS_PREFERRED_OFF_CHANNEL_NUM_DEFAULT,
2272 CFG_TDLS_PREFERRED_OFF_CHANNEL_NUM_MIN,
2273 CFG_TDLS_PREFERRED_OFF_CHANNEL_NUM_MAX),
2274
2275 REG_VARIABLE(CFG_TDLS_PREFERRED_OFF_CHANNEL_BW, WLAN_PARAM_Integer,
2276 struct hdd_config, fTDLSPrefOffChanBandwidth,
2277 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2278 CFG_TDLS_PREFERRED_OFF_CHANNEL_BW_DEFAULT,
2279 CFG_TDLS_PREFERRED_OFF_CHANNEL_BW_MIN,
2280 CFG_TDLS_PREFERRED_OFF_CHANNEL_BW_MAX),
2281
2282 REG_VARIABLE(CFG_TDLS_PUAPSD_INACTIVITY_TIME, WLAN_PARAM_Integer,
2283 struct hdd_config, fTDLSPuapsdInactivityTimer,
2284 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2285 CFG_TDLS_PUAPSD_INACTIVITY_TIME_DEFAULT,
2286 CFG_TDLS_PUAPSD_INACTIVITY_TIME_MIN,
2287 CFG_TDLS_PUAPSD_INACTIVITY_TIME_MAX),
2288
2289 REG_VARIABLE(CFG_TDLS_PUAPSD_RX_FRAME_THRESHOLD, WLAN_PARAM_Integer,
2290 struct hdd_config, fTDLSRxFrameThreshold,
2291 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2292 CFG_TDLS_PUAPSD_RX_FRAME_THRESHOLD_DEFAULT,
2293 CFG_TDLS_PUAPSD_RX_FRAME_THRESHOLD_MIN,
2294 CFG_TDLS_PUAPSD_RX_FRAME_THRESHOLD_MAX),
2295
2296 REG_VARIABLE(CFG_TDLS_PUAPSD_PEER_TRAFFIC_IND_WINDOW,
2297 WLAN_PARAM_Integer,
2298 struct hdd_config, fTDLSPuapsdPTIWindow,
2299 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2300 CFG_TDLS_PUAPSD_PEER_TRAFFIC_IND_WINDOW_DEFAULT,
2301 CFG_TDLS_PUAPSD_PEER_TRAFFIC_IND_WINDOW_MIN,
2302 CFG_TDLS_PUAPSD_PEER_TRAFFIC_IND_WINDOW_MAX),
2303
2304 REG_VARIABLE(CFG_TDLS_PUAPSD_PEER_TRAFFIC_RSP_TIMEOUT,
2305 WLAN_PARAM_Integer,
2306 struct hdd_config, fTDLSPuapsdPTRTimeout,
2307 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2308 CFG_TDLS_PUAPSD_PEER_TRAFFIC_RSP_TIMEOUT_DEFAULT,
2309 CFG_TDLS_PUAPSD_PEER_TRAFFIC_RSP_TIMEOUT_MIN,
2310 CFG_TDLS_PUAPSD_PEER_TRAFFIC_RSP_TIMEOUT_MAX),
2311
2312 REG_VARIABLE(CFG_TDLS_EXTERNAL_CONTROL, WLAN_PARAM_Integer,
2313 struct hdd_config, fTDLSExternalControl,
2314 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2315 CFG_TDLS_EXTERNAL_CONTROL_DEFAULT,
2316 CFG_TDLS_EXTERNAL_CONTROL_MIN,
2317 CFG_TDLS_EXTERNAL_CONTROL_MAX),
2318 REG_VARIABLE(CFG_TDLS_WMM_MODE_ENABLE, WLAN_PARAM_Integer,
2319 struct hdd_config, fEnableTDLSWmmMode,
2320 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2321 CFG_TDLS_WMM_MODE_ENABLE_DEFAULT,
2322 CFG_TDLS_WMM_MODE_ENABLE_MIN,
2323 CFG_TDLS_WMM_MODE_ENABLE_MAX),
2324
2325 REG_VARIABLE(CFG_TDLS_SCAN_ENABLE, WLAN_PARAM_Integer,
2326 struct hdd_config, enable_tdls_scan,
2327 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2328 CFG_TDLS_SCAN_ENABLE_DEFAULT,
2329 CFG_TDLS_SCAN_ENABLE_MIN,
2330 CFG_TDLS_SCAN_ENABLE_MAX),
Kabilan Kannan421714b2015-11-23 04:44:59 -08002331
2332 REG_VARIABLE(CFG_TDLS_PEER_KICKOUT_THRESHOLD, WLAN_PARAM_Integer,
2333 struct hdd_config, tdls_peer_kickout_threshold,
2334 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2335 CFG_TDLS_PEER_KICKOUT_THRESHOLD_DEFAULT,
2336 CFG_TDLS_PEER_KICKOUT_THRESHOLD_MIN,
2337 CFG_TDLS_PEER_KICKOUT_THRESHOLD_MAX),
2338
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002339#endif
2340
2341#ifdef WLAN_SOFTAP_VSTA_FEATURE
2342 REG_VARIABLE(CFG_VSTA_SUPPORT_ENABLE, WLAN_PARAM_Integer,
2343 struct hdd_config, fEnableVSTASupport,
2344 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2345 CFG_VSTA_SUPPORT_ENABLE_DEFAULT,
2346 CFG_VSTA_SUPPORT_ENABLE_MIN,
2347 CFG_VSTA_SUPPORT_ENABLE_MAX),
2348#endif
2349 REG_VARIABLE(CFG_ENABLE_LPWR_IMG_TRANSITION_NAME, WLAN_PARAM_Integer,
2350 struct hdd_config, enableLpwrImgTransition,
2351 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2352 CFG_ENABLE_LPWR_IMG_TRANSITION_DEFAULT,
2353 CFG_ENABLE_LPWR_IMG_TRANSITION_MIN,
2354 CFG_ENABLE_LPWR_IMG_TRANSITION_MAX),
2355
2356 REG_VARIABLE(CFG_ENABLE_LPWR_IMG_TRANSITION_NAME, WLAN_PARAM_Integer,
2357 struct hdd_config, enableLpwrImgTransition,
2358 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2359 CFG_ENABLE_LPWR_IMG_TRANSITION_DEFAULT,
2360 CFG_ENABLE_LPWR_IMG_TRANSITION_MIN,
2361 CFG_ENABLE_LPWR_IMG_TRANSITION_MAX),
2362
2363 REG_VARIABLE(CFG_SCAN_AGING_PARAM_NAME, WLAN_PARAM_Integer,
2364 struct hdd_config, scanAgingTimeout,
2365 VAR_FLAGS_OPTIONAL,
2366 CFG_SCAN_AGING_PARAM_DEFAULT,
2367 CFG_SCAN_AGING_PARAM_MIN,
2368 CFG_SCAN_AGING_PARAM_MAX),
2369
2370 REG_VARIABLE(CFG_TX_LDPC_ENABLE_FEATURE, WLAN_PARAM_Integer,
Krunal Sonia2c0e412017-05-04 14:12:41 +05302371 struct hdd_config, enable_tx_ldpc,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002372 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2373 CFG_TX_LDPC_ENABLE_FEATURE_DEFAULT,
2374 CFG_TX_LDPC_ENABLE_FEATURE_MIN,
2375 CFG_TX_LDPC_ENABLE_FEATURE_MAX),
2376
Krunal Sonia2c0e412017-05-04 14:12:41 +05302377 REG_VARIABLE(CFG_ENABLE_RX_LDPC, WLAN_PARAM_Integer,
2378 struct hdd_config, enable_rx_ldpc,
2379 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2380 CFG_ENABLE_RX_LDPC_DEFAULT,
2381 CFG_ENABLE_RX_LDPC_MIN,
2382 CFG_ENABLE_RX_LDPC_MAX),
2383
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002384 REG_VARIABLE(CFG_ENABLE_MCC_ADATIVE_SCHEDULER_ENABLED_NAME,
2385 WLAN_PARAM_Integer,
2386 struct hdd_config, enableMCCAdaptiveScheduler,
2387 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2388 CFG_ENABLE_MCC_ADATIVE_SCHEDULER_ENABLED_DEFAULT,
2389 CFG_ENABLE_MCC_ADATIVE_SCHEDULER_ENABLED_MIN,
2390 CFG_ENABLE_MCC_ADATIVE_SCHEDULER_ENABLED_MAX),
2391
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002392 REG_VARIABLE(CFG_IBSS_ADHOC_CHANNEL_5GHZ_NAME, WLAN_PARAM_Integer,
2393 struct hdd_config, AdHocChannel5G,
2394 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2395 CFG_IBSS_ADHOC_CHANNEL_5GHZ_DEFAULT,
2396 CFG_IBSS_ADHOC_CHANNEL_5GHZ_MIN,
2397 CFG_IBSS_ADHOC_CHANNEL_5GHZ_MAX),
2398
2399 REG_VARIABLE(CFG_IBSS_ADHOC_CHANNEL_24GHZ_NAME, WLAN_PARAM_Integer,
2400 struct hdd_config, AdHocChannel24G,
2401 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2402 CFG_IBSS_ADHOC_CHANNEL_24GHZ_DEFAULT,
2403 CFG_IBSS_ADHOC_CHANNEL_24GHZ_MIN,
2404 CFG_IBSS_ADHOC_CHANNEL_24GHZ_MAX),
2405
2406 REG_VARIABLE(CFG_VHT_SU_BEAMFORMEE_CAP_FEATURE, WLAN_PARAM_Integer,
2407 struct hdd_config, enableTxBF,
2408 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2409 CFG_VHT_SU_BEAMFORMEE_CAP_FEATURE_DEFAULT,
2410 CFG_VHT_SU_BEAMFORMEE_CAP_FEATURE_MIN,
2411 CFG_VHT_SU_BEAMFORMEE_CAP_FEATURE_MAX),
2412
Kiran Kumar Lokere5302ab62015-12-16 16:03:16 -08002413 REG_VARIABLE(CFG_VHT_ENABLE_TXBF_SAP_MODE, WLAN_PARAM_Integer,
2414 struct hdd_config, enable_txbf_sap_mode,
2415 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2416 CFG_VHT_ENABLE_TXBF_SAP_MODE_DEFAULT,
2417 CFG_VHT_ENABLE_TXBF_SAP_MODE_MIN,
2418 CFG_VHT_ENABLE_TXBF_SAP_MODE_MAX),
2419
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002420 REG_VARIABLE(CFG_VHT_ENABLE_TXBF_IN_20MHZ, WLAN_PARAM_Integer,
2421 struct hdd_config, enableTxBFin20MHz,
2422 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2423 CFG_VHT_ENABLE_TXBF_IN_20MHZ_DEFAULT,
2424 CFG_VHT_ENABLE_TXBF_IN_20MHZ_MIN,
2425 CFG_VHT_ENABLE_TXBF_IN_20MHZ_MAX),
2426
2427 REG_VARIABLE(CFG_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED, WLAN_PARAM_Integer,
2428 struct hdd_config, txBFCsnValue,
2429 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2430 CFG_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED_DEFAULT,
2431 CFG_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED_MIN,
2432 CFG_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED_MAX),
2433
2434 REG_VARIABLE(CFG_VHT_ENABLE_TX_SU_BEAM_FORMER, WLAN_PARAM_Integer,
2435 struct hdd_config, enable_su_tx_bformer,
2436 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2437 CFG_VHT_ENABLE_TX_SU_BEAM_FORMER_DEFAULT,
2438 CFG_VHT_ENABLE_TX_SU_BEAM_FORMER_MIN,
2439 CFG_VHT_ENABLE_TX_SU_BEAM_FORMER_MAX),
2440
2441 REG_VARIABLE(CFG_SAP_ALLOW_ALL_CHANNEL_PARAM_NAME, WLAN_PARAM_Integer,
2442 struct hdd_config, sapAllowAllChannel,
2443 VAR_FLAGS_OPTIONAL,
2444 CFG_SAP_ALLOW_ALL_CHANNEL_PARAM_DEFAULT,
2445 CFG_SAP_ALLOW_ALL_CHANNEL_PARAM_MIN,
2446 CFG_SAP_ALLOW_ALL_CHANNEL_PARAM_MAX),
2447
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002448 REG_VARIABLE(CFG_DISABLE_LDPC_WITH_TXBF_AP, WLAN_PARAM_Integer,
2449 struct hdd_config, disableLDPCWithTxbfAP,
2450 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2451 CFG_DISABLE_LDPC_WITH_TXBF_AP_DEFAULT,
2452 CFG_DISABLE_LDPC_WITH_TXBF_AP_MIN,
2453 CFG_DISABLE_LDPC_WITH_TXBF_AP_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002454
2455 REG_DYNAMIC_VARIABLE(CFG_ENABLE_SSR, WLAN_PARAM_Integer,
2456 struct hdd_config, enableSSR,
2457 VAR_FLAGS_OPTIONAL |
2458 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2459 CFG_ENABLE_SSR_DEFAULT,
2460 CFG_ENABLE_SSR_MIN,
2461 CFG_ENABLE_SSR_MAX,
2462 cb_notify_set_enable_ssr, 0),
2463
2464 REG_VARIABLE(CFG_MAX_MEDIUM_TIME, WLAN_PARAM_Integer,
2465 struct hdd_config, cfgMaxMediumTime,
2466 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2467 CFG_MAX_MEDIUM_TIME_STADEFAULT,
2468 CFG_MAX_MEDIUM_TIME_STAMIN,
2469 CFG_MAX_MEDIUM_TIME_STAMAX),
2470
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002471 REG_VARIABLE(CFG_ENABLE_VHT_FOR_24GHZ_NAME, WLAN_PARAM_Integer,
2472 struct hdd_config, enableVhtFor24GHzBand,
2473 VAR_FLAGS_OPTIONAL,
2474 CFG_ENABLE_VHT_FOR_24GHZ_DEFAULT,
2475 CFG_ENABLE_VHT_FOR_24GHZ_MIN,
2476 CFG_ENABLE_VHT_FOR_24GHZ_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002477
Kapil Gupta4b2efbb2016-10-03 13:07:20 +05302478
2479 REG_VARIABLE(CFG_ENABLE_VENDOR_VHT_FOR_24GHZ_NAME, WLAN_PARAM_Integer,
2480 struct hdd_config, enable_sap_vendor_vht,
2481 VAR_FLAGS_OPTIONAL,
2482 CFG_ENABLE_VENDOR_VHT_FOR_24GHZ_DEFAULT,
2483 CFG_ENABLE_VENDOR_VHT_FOR_24GHZ_MIN,
2484 CFG_ENABLE_VENDOR_VHT_FOR_24GHZ_MAX),
2485
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002486 REG_DYNAMIC_VARIABLE(CFG_ENABLE_FAST_ROAM_IN_CONCURRENCY,
2487 WLAN_PARAM_Integer,
2488 struct hdd_config, bFastRoamInConIniFeatureEnabled,
2489 VAR_FLAGS_OPTIONAL |
2490 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2491 CFG_ENABLE_FAST_ROAM_IN_CONCURRENCY_DEFAULT,
2492 CFG_ENABLE_FAST_ROAM_IN_CONCURRENCY_MIN,
2493 CFG_ENABLE_FAST_ROAM_IN_CONCURRENCY_MAX,
2494 cb_notify_set_enable_fast_roam_in_concurrency, 0),
2495
2496 REG_VARIABLE(CFG_ENABLE_ADAPT_RX_DRAIN_NAME, WLAN_PARAM_Integer,
2497 struct hdd_config, fEnableAdaptRxDrain,
2498 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2499 CFG_ENABLE_ADAPT_RX_DRAIN_DEFAULT,
2500 CFG_ENABLE_ADAPT_RX_DRAIN_MIN,
2501 CFG_ENABLE_ADAPT_RX_DRAIN_MAX),
2502
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002503 REG_VARIABLE(CFG_ENABLE_HEART_BEAT_OFFLOAD, WLAN_PARAM_Integer,
2504 struct hdd_config, enableIbssHeartBeatOffload,
2505 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2506 CFG_ENABLE_HEART_BEAT_OFFLOAD_DEFAULT,
2507 CFG_ENABLE_HEART_BEAT_OFFLOAD_MIN,
2508 CFG_ENABLE_HEART_BEAT_OFFLOAD_MAX),
2509
2510 REG_VARIABLE(CFG_ANTENNA_DIVERSITY_PARAM_NAME, WLAN_PARAM_Integer,
2511 struct hdd_config, antennaDiversity,
2512 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2513 CFG_ANTENNA_DIVERSITY_PARAM_DEFAULT,
2514 CFG_ANTENNA_DIVERSITY_PARAM_MIN,
2515 CFG_ANTENNA_DIVERSITY_PARAM_MAX),
2516
2517 REG_VARIABLE(CFG_ENABLE_SNR_MONITORING_NAME, WLAN_PARAM_Integer,
2518 struct hdd_config, fEnableSNRMonitoring,
2519 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2520 CFG_ENABLE_SNR_MONITORING_DEFAULT,
2521 CFG_ENABLE_SNR_MONITORING_MIN,
2522 CFG_ENABLE_SNR_MONITORING_MAX),
2523
2524#ifdef FEATURE_WLAN_SCAN_PNO
2525 REG_VARIABLE(CFG_PNO_SCAN_SUPPORT, WLAN_PARAM_Integer,
2526 struct hdd_config, configPNOScanSupport,
2527 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2528 CFG_PNO_SCAN_SUPPORT_DEFAULT,
2529 CFG_PNO_SCAN_SUPPORT_DISABLE,
2530 CFG_PNO_SCAN_SUPPORT_ENABLE),
2531
2532 REG_VARIABLE(CFG_PNO_SCAN_TIMER_REPEAT_VALUE, WLAN_PARAM_Integer,
2533 struct hdd_config, configPNOScanTimerRepeatValue,
2534 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2535 CFG_PNO_SCAN_TIMER_REPEAT_VALUE_DEFAULT,
2536 CFG_PNO_SCAN_TIMER_REPEAT_VALUE_MIN,
2537 CFG_PNO_SCAN_TIMER_REPEAT_VALUE_MAX),
Srinivas Girigowdabdc98162015-09-17 11:06:07 -07002538
2539 REG_VARIABLE(CFG_PNO_SLOW_SCAN_MULTIPLIER, WLAN_PARAM_Integer,
2540 struct hdd_config, pno_slow_scan_multiplier,
2541 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2542 CFG_PNO_SLOW_SCAN_MULTIPLIER_DEFAULT,
2543 CFG_PNO_SLOW_SCAN_MULTIPLIER_MIN,
2544 CFG_PNO_SLOW_SCAN_MULTIPLIER_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002545#endif
2546 REG_VARIABLE(CFG_AMSDU_SUPPORT_IN_AMPDU_NAME, WLAN_PARAM_Integer,
2547 struct hdd_config, isAmsduSupportInAMPDU,
2548 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2549 CFG_AMSDU_SUPPORT_IN_AMPDU_DEFAULT,
2550 CFG_AMSDU_SUPPORT_IN_AMPDU_MIN,
2551 CFG_AMSDU_SUPPORT_IN_AMPDU_MAX),
2552
2553 REG_VARIABLE(CFG_STRICT_5GHZ_PREF_BY_MARGIN, WLAN_PARAM_Integer,
2554 struct hdd_config, nSelect5GHzMargin,
2555 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2556 CFG_STRICT_5GHZ_PREF_BY_MARGIN_DEFAULT,
2557 CFG_STRICT_5GHZ_PREF_BY_MARGIN_MIN,
2558 CFG_STRICT_5GHZ_PREF_BY_MARGIN_MAX),
2559
2560 REG_VARIABLE(CFG_ENABLE_IP_TCP_UDP_CHKSUM_OFFLOAD, WLAN_PARAM_Integer,
2561 struct hdd_config, enable_ip_tcp_udp_checksum_offload,
2562 VAR_FLAGS_OPTIONAL,
2563 CFG_ENABLE_IP_TCP_UDP_CHKSUM_OFFLOAD_DEFAULT,
2564 CFG_ENABLE_IP_TCP_UDP_CHKSUM_OFFLOAD_DISABLE,
2565 CFG_ENABLE_IP_TCP_UDP_CHKSUM_OFFLOAD_ENABLE),
2566
2567 REG_VARIABLE(CFG_POWERSAVE_OFFLOAD_NAME, WLAN_PARAM_Integer,
2568 struct hdd_config, enablePowersaveOffload,
2569 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2570 CFG_POWERSAVE_OFFLOAD_DEFAULT,
2571 CFG_POWERSAVE_OFFLOAD_MIN,
2572 CFG_POWERSAVE_OFFLOAD_MAX),
2573
2574 REG_VARIABLE(CFG_ENABLE_FW_UART_PRINT_NAME, WLAN_PARAM_Integer,
2575 struct hdd_config, enablefwprint,
2576 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2577 CFG_ENABLE_FW_UART_PRINT_DEFAULT,
2578 CFG_ENABLE_FW_UART_PRINT_DISABLE,
2579 CFG_ENABLE_FW_UART_PRINT_ENABLE),
2580
2581 REG_VARIABLE(CFG_ENABLE_FW_LOG_NAME, WLAN_PARAM_Integer,
Komal Seelamc11bb222016-01-27 18:57:10 +05302582 struct hdd_config, enable_fw_log,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002583 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2584 CFG_ENABLE_FW_LOG_DEFAULT,
2585 CFG_ENABLE_FW_LOG_DISABLE,
Yuanyuan Liu7a97b8f2017-01-27 10:42:52 -08002586 CFG_ENABLE_FW_LOG_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002587
2588#ifdef IPA_OFFLOAD
2589 REG_VARIABLE(CFG_IPA_OFFLOAD_CONFIG_NAME, WLAN_PARAM_HexInteger,
2590 struct hdd_config, IpaConfig,
2591 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2592 CFG_IPA_OFFLOAD_CONFIG_DEFAULT,
2593 CFG_IPA_OFFLOAD_CONFIG_MIN,
2594 CFG_IPA_OFFLOAD_CONFIG_MAX),
2595
2596 REG_VARIABLE(CFG_IPA_DESC_SIZE_NAME, WLAN_PARAM_Integer,
2597 struct hdd_config, IpaDescSize,
2598 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2599 CFG_IPA_DESC_SIZE_DEFAULT,
2600 CFG_IPA_DESC_SIZE_MIN,
2601 CFG_IPA_DESC_SIZE_MAX),
2602
2603 REG_VARIABLE(CFG_IPA_HIGH_BANDWIDTH_MBPS, WLAN_PARAM_Integer,
2604 struct hdd_config, IpaHighBandwidthMbps,
2605 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2606 CFG_IPA_HIGH_BANDWIDTH_MBPS_DEFAULT,
2607 CFG_IPA_HIGH_BANDWIDTH_MBPS_MIN,
2608 CFG_IPA_HIGH_BANDWIDTH_MBPS_MAX),
2609
2610 REG_VARIABLE(CFG_IPA_MEDIUM_BANDWIDTH_MBPS, WLAN_PARAM_Integer,
2611 struct hdd_config, IpaMediumBandwidthMbps,
2612 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2613 CFG_IPA_MEDIUM_BANDWIDTH_MBPS_DEFAULT,
2614 CFG_IPA_MEDIUM_BANDWIDTH_MBPS_MIN,
2615 CFG_IPA_MEDIUM_BANDWIDTH_MBPS_MAX),
2616
2617 REG_VARIABLE(CFG_IPA_LOW_BANDWIDTH_MBPS, WLAN_PARAM_Integer,
2618 struct hdd_config, IpaLowBandwidthMbps,
2619 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2620 CFG_IPA_LOW_BANDWIDTH_MBPS_DEFAULT,
2621 CFG_IPA_LOW_BANDWIDTH_MBPS_MIN,
2622 CFG_IPA_LOW_BANDWIDTH_MBPS_MAX),
2623#endif
2624
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002625 REG_VARIABLE(CFG_VHT_AMPDU_LEN_EXPONENT_NAME, WLAN_PARAM_Integer,
2626 struct hdd_config, fVhtAmpduLenExponent,
2627 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2628 CFG_VHT_AMPDU_LEN_EXPONENT_DEFAULT,
2629 CFG_VHT_AMPDU_LEN_EXPONENT_MIN,
2630 CFG_VHT_AMPDU_LEN_EXPONENT_MAX),
2631
2632 REG_VARIABLE(CFG_VHT_MPDU_LEN_NAME, WLAN_PARAM_Integer,
2633 struct hdd_config, vhtMpduLen,
2634 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2635 CFG_VHT_MPDU_LEN_DEFAULT,
2636 CFG_VHT_MPDU_LEN_MIN,
2637 CFG_VHT_MPDU_LEN_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002638
2639 REG_VARIABLE(CFG_MAX_WOW_FILTERS_NAME, WLAN_PARAM_Integer,
2640 struct hdd_config, maxWoWFilters,
2641 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2642 CFG_MAX_WOW_FILTERS_DEFAULT,
2643 CFG_MAX_WOW_FILTERS_MIN,
2644 CFG_MAX_WOW_FILTERS_MAX),
2645
2646 REG_VARIABLE(CFG_WOW_STATUS_NAME, WLAN_PARAM_Integer,
2647 struct hdd_config, wowEnable,
2648 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2649 CFG_WOW_STATUS_DEFAULT,
2650 CFG_WOW_ENABLE_MIN,
2651 CFG_WOW_ENABLE_MAX),
2652
2653 REG_VARIABLE(CFG_COALESING_IN_IBSS_NAME, WLAN_PARAM_Integer,
2654 struct hdd_config, isCoalesingInIBSSAllowed,
2655 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2656 CFG_COALESING_IN_IBSS_DEFAULT,
2657 CFG_COALESING_IN_IBSS_MIN,
2658 CFG_COALESING_IN_IBSS_MAX),
2659
2660 REG_VARIABLE(CFG_IBSS_ATIM_WIN_SIZE_NAME, WLAN_PARAM_Integer,
2661 struct hdd_config, ibssATIMWinSize,
2662 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2663 CFG_IBSS_ATIM_WIN_SIZE_DEFAULT,
2664 CFG_IBSS_ATIM_WIN_SIZE_MIN,
2665 CFG_IBSS_ATIM_WIN_SIZE_MAX),
2666
2667 REG_VARIABLE(CFG_SAP_MAX_NO_PEERS, WLAN_PARAM_Integer,
2668 struct hdd_config, maxNumberOfPeers,
2669 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2670 CFG_SAP_MAX_NO_PEERS_DEFAULT,
2671 CFG_SAP_MAX_NO_PEERS_MIN,
2672 CFG_SAP_MAX_NO_PEERS_MAX),
2673
2674 REG_VARIABLE(CFG_IBSS_IS_POWER_SAVE_ALLOWED_NAME, WLAN_PARAM_Integer,
2675 struct hdd_config, isIbssPowerSaveAllowed,
2676 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2677 CFG_IBSS_IS_POWER_SAVE_ALLOWED_DEFAULT,
2678 CFG_IBSS_IS_POWER_SAVE_ALLOWED_MIN,
2679 CFG_IBSS_IS_POWER_SAVE_ALLOWED_MAX),
2680
2681 REG_VARIABLE(CFG_IBSS_IS_POWER_COLLAPSE_ALLOWED_NAME,
2682 WLAN_PARAM_Integer,
2683 struct hdd_config, isIbssPowerCollapseAllowed,
2684 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2685 CFG_IBSS_IS_POWER_COLLAPSE_ALLOWED_DEFAULT,
2686 CFG_IBSS_IS_POWER_COLLAPSE_ALLOWED_MIN,
2687 CFG_IBSS_IS_POWER_COLLAPSE_ALLOWED_MAX),
2688
2689 REG_VARIABLE(CFG_IBSS_AWAKE_ON_TX_RX_NAME, WLAN_PARAM_Integer,
2690 struct hdd_config, isIbssAwakeOnTxRx,
2691 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2692 CFG_IBSS_AWAKE_ON_TX_RX_DEFAULT,
2693 CFG_IBSS_AWAKE_ON_TX_RX_MIN,
2694 CFG_IBSS_AWAKE_ON_TX_RX_MAX),
2695
2696 REG_VARIABLE(CFG_IBSS_INACTIVITY_TIME_NAME, WLAN_PARAM_Integer,
2697 struct hdd_config, ibssInactivityCount,
2698 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2699 CFG_IBSS_INACTIVITY_TIME_DEFAULT,
2700 CFG_IBSS_INACTIVITY_TIME_MIN,
2701 CFG_IBSS_INACTIVITY_TIME_MAX),
2702
2703 REG_VARIABLE(CFG_IBSS_TXSP_END_INACTIVITY_NAME, WLAN_PARAM_Integer,
2704 struct hdd_config, ibssTxSpEndInactivityTime,
2705 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2706 CFG_IBSS_TXSP_END_INACTIVITY_DEFAULT,
2707 CFG_IBSS_TXSP_END_INACTIVITY_MIN,
2708 CFG_IBSS_TXSP_END_INACTIVITY_MAX),
2709
2710 REG_VARIABLE(CFG_IBSS_PS_WARMUP_TIME_NAME, WLAN_PARAM_Integer,
2711 struct hdd_config, ibssPsWarmupTime,
2712 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2713 CFG_IBSS_PS_WARMUP_TIME_DEFAULT,
2714 CFG_IBSS_PS_WARMUP_TIME_MIN,
2715 CFG_IBSS_PS_WARMUP_TIME_MAX),
2716
2717 REG_VARIABLE(CFG_IBSS_PS_1RX_CHAIN_IN_ATIM_WINDOW_NAME,
2718 WLAN_PARAM_Integer,
2719 struct hdd_config, ibssPs1RxChainInAtimEnable,
2720 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2721 CFG_IBSS_PS_1RX_CHAIN_IN_ATIM_WINDOW_DEFAULT,
2722 CFG_IBSS_PS_1RX_CHAIN_IN_ATIM_WINDOW_MIN,
2723 CFG_IBSS_PS_1RX_CHAIN_IN_ATIM_WINDOW_MAX),
2724
2725 REG_VARIABLE(CFG_THERMAL_TEMP_MIN_LEVEL0_NAME, WLAN_PARAM_Integer,
2726 struct hdd_config, thermalTempMinLevel0,
2727 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2728 CFG_THERMAL_TEMP_MIN_LEVEL0_DEFAULT,
2729 CFG_THERMAL_TEMP_MIN_LEVEL0_MIN,
2730 CFG_THERMAL_TEMP_MIN_LEVEL0_MAX),
2731
2732 REG_VARIABLE(CFG_THERMAL_TEMP_MAX_LEVEL0_NAME, WLAN_PARAM_Integer,
2733 struct hdd_config, thermalTempMaxLevel0,
2734 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2735 CFG_THERMAL_TEMP_MAX_LEVEL0_DEFAULT,
2736 CFG_THERMAL_TEMP_MAX_LEVEL0_MIN,
2737 CFG_THERMAL_TEMP_MAX_LEVEL0_MAX),
2738
2739 REG_VARIABLE(CFG_THERMAL_TEMP_MIN_LEVEL1_NAME, WLAN_PARAM_Integer,
2740 struct hdd_config, thermalTempMinLevel1,
2741 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2742 CFG_THERMAL_TEMP_MIN_LEVEL1_DEFAULT,
2743 CFG_THERMAL_TEMP_MIN_LEVEL1_MIN,
2744 CFG_THERMAL_TEMP_MIN_LEVEL1_MAX),
2745
2746 REG_VARIABLE(CFG_THERMAL_TEMP_MAX_LEVEL1_NAME, WLAN_PARAM_Integer,
2747 struct hdd_config, thermalTempMaxLevel1,
2748 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2749 CFG_THERMAL_TEMP_MAX_LEVEL1_DEFAULT,
2750 CFG_THERMAL_TEMP_MAX_LEVEL1_MIN,
2751 CFG_THERMAL_TEMP_MAX_LEVEL1_MAX),
2752
2753 REG_VARIABLE(CFG_THERMAL_TEMP_MIN_LEVEL2_NAME, WLAN_PARAM_Integer,
2754 struct hdd_config, thermalTempMinLevel2,
2755 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2756 CFG_THERMAL_TEMP_MIN_LEVEL2_DEFAULT,
2757 CFG_THERMAL_TEMP_MIN_LEVEL2_MIN,
2758 CFG_THERMAL_TEMP_MIN_LEVEL2_MAX),
2759
2760 REG_VARIABLE(CFG_THERMAL_TEMP_MAX_LEVEL2_NAME, WLAN_PARAM_Integer,
2761 struct hdd_config, thermalTempMaxLevel2,
2762 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2763 CFG_THERMAL_TEMP_MAX_LEVEL2_DEFAULT,
2764 CFG_THERMAL_TEMP_MAX_LEVEL2_MIN,
2765 CFG_THERMAL_TEMP_MAX_LEVEL2_MAX),
2766
2767 REG_VARIABLE(CFG_THERMAL_TEMP_MIN_LEVEL3_NAME, WLAN_PARAM_Integer,
2768 struct hdd_config, thermalTempMinLevel3,
2769 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2770 CFG_THERMAL_TEMP_MIN_LEVEL3_DEFAULT,
2771 CFG_THERMAL_TEMP_MIN_LEVEL3_MIN,
2772 CFG_THERMAL_TEMP_MIN_LEVEL3_MAX),
2773
2774 REG_VARIABLE(CFG_THERMAL_TEMP_MAX_LEVEL3_NAME, WLAN_PARAM_Integer,
2775 struct hdd_config, thermalTempMaxLevel3,
2776 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2777 CFG_THERMAL_TEMP_MAX_LEVEL3_DEFAULT,
2778 CFG_THERMAL_TEMP_MAX_LEVEL3_MIN,
2779 CFG_THERMAL_TEMP_MAX_LEVEL3_MAX),
2780
2781 REG_VARIABLE(CFG_SET_TXPOWER_LIMIT2G_NAME, WLAN_PARAM_Integer,
2782 struct hdd_config, TxPower2g,
2783 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2784 CFG_SET_TXPOWER_LIMIT2G_DEFAULT,
2785 CFG_SET_TXPOWER_LIMIT2G_MIN,
2786 CFG_SET_TXPOWER_LIMIT2G_MAX),
2787
2788 REG_VARIABLE(CFG_SET_TXPOWER_LIMIT5G_NAME, WLAN_PARAM_Integer,
2789 struct hdd_config, TxPower5g,
2790 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2791 CFG_SET_TXPOWER_LIMIT5G_DEFAULT,
2792 CFG_SET_TXPOWER_LIMIT5G_MIN,
2793 CFG_SET_TXPOWER_LIMIT5G_MAX),
2794
2795 REG_VARIABLE(CFG_ENABLE_DEBUG_CONNECT_ISSUE, WLAN_PARAM_Integer,
2796 struct hdd_config, gEnableDebugLog,
2797 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2798 CFG_ENABLE_DEBUG_CONNECT_ISSUE_DEFAULT,
2799 CFG_ENABLE_DEBUG_CONNECT_ISSUE_MIN,
2800 CFG_ENABLE_DEBUG_CONNECT_ISSUE_MAX),
2801
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002802 REG_VARIABLE(CFG_ENABLE_DFS_PHYERR_FILTEROFFLOAD_NAME,
2803 WLAN_PARAM_Integer,
2804 struct hdd_config, fDfsPhyerrFilterOffload,
2805 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2806 CFG_ENABLE_DFS_PHYERR_FILTEROFFLOAD_DEFAULT,
2807 CFG_ENABLE_DFS_PHYERR_FILTEROFFLOAD_MIN,
2808 CFG_ENABLE_DFS_PHYERR_FILTEROFFLOAD_MAX),
2809
2810 REG_VARIABLE(CFG_ENABLE_OVERLAP_CH, WLAN_PARAM_Integer,
2811 struct hdd_config, gEnableOverLapCh,
2812 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2813 CFG_ENABLE_OVERLAP_CH_DEFAULT,
2814 CFG_ENABLE_OVERLAP_CH_MIN,
2815 CFG_ENABLE_OVERLAP_CH_MAX),
2816
2817 REG_VARIABLE(CFG_REG_CHANGE_DEF_COUNTRY_NAME, WLAN_PARAM_Integer,
2818 struct hdd_config, fRegChangeDefCountry,
2819 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2820 CFG_REG_CHANGE_DEF_COUNTRY_DEFAULT,
2821 CFG_REG_CHANGE_DEF_COUNTRY_MIN,
2822 CFG_REG_CHANGE_DEF_COUNTRY_MAX),
2823
2824#ifdef QCA_LL_LEGACY_TX_FLOW_CONTROL
2825 REG_VARIABLE(CFG_LL_TX_FLOW_LWM, WLAN_PARAM_Integer,
2826 struct hdd_config, TxFlowLowWaterMark,
2827 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2828 CFG_LL_TX_FLOW_LWM_DEFAULT,
2829 CFG_LL_TX_FLOW_LWM_MIN,
2830 CFG_LL_TX_FLOW_LWM_MAX),
2831 REG_VARIABLE(CFG_LL_TX_FLOW_HWM_OFFSET, WLAN_PARAM_Integer,
2832 struct hdd_config, TxFlowHighWaterMarkOffset,
2833 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2834 CFG_LL_TX_FLOW_HWM_OFFSET_DEFAULT,
2835 CFG_LL_TX_FLOW_HWM_OFFSET_MIN,
2836 CFG_LL_TX_FLOW_HWM_OFFSET_MAX),
2837 REG_VARIABLE(CFG_LL_TX_FLOW_MAX_Q_DEPTH, WLAN_PARAM_Integer,
2838 struct hdd_config, TxFlowMaxQueueDepth,
2839 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2840 CFG_LL_TX_FLOW_MAX_Q_DEPTH_DEFAULT,
2841 CFG_LL_TX_FLOW_MAX_Q_DEPTH_MIN,
2842 CFG_LL_TX_FLOW_MAX_Q_DEPTH_MAX),
2843 REG_VARIABLE(CFG_LL_TX_LBW_FLOW_LWM, WLAN_PARAM_Integer,
2844 struct hdd_config, TxLbwFlowLowWaterMark,
2845 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2846 CFG_LL_TX_LBW_FLOW_LWM_DEFAULT,
2847 CFG_LL_TX_LBW_FLOW_LWM_MIN,
2848 CFG_LL_TX_LBW_FLOW_LWM_MAX),
2849
2850 REG_VARIABLE(CFG_LL_TX_LBW_FLOW_HWM_OFFSET, WLAN_PARAM_Integer,
2851 struct hdd_config, TxLbwFlowHighWaterMarkOffset,
2852 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2853 CFG_LL_TX_LBW_FLOW_HWM_OFFSET_DEFAULT,
2854 CFG_LL_TX_LBW_FLOW_HWM_OFFSET_MIN,
2855 CFG_LL_TX_LBW_FLOW_HWM_OFFSET_MAX),
2856
2857 REG_VARIABLE(CFG_LL_TX_LBW_FLOW_MAX_Q_DEPTH, WLAN_PARAM_Integer,
2858 struct hdd_config, TxLbwFlowMaxQueueDepth,
2859 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2860 CFG_LL_TX_LBW_FLOW_MAX_Q_DEPTH_DEFAULT,
2861 CFG_LL_TX_LBW_FLOW_MAX_Q_DEPTH_MIN,
2862 CFG_LL_TX_LBW_FLOW_MAX_Q_DEPTH_MAX),
2863
2864 REG_VARIABLE(CFG_LL_TX_HBW_FLOW_LWM, WLAN_PARAM_Integer,
2865 struct hdd_config, TxHbwFlowLowWaterMark,
2866 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2867 CFG_LL_TX_HBW_FLOW_LWM_DEFAULT,
2868 CFG_LL_TX_HBW_FLOW_LWM_MIN,
2869 CFG_LL_TX_HBW_FLOW_LWM_MAX),
2870
2871 REG_VARIABLE(CFG_LL_TX_HBW_FLOW_HWM_OFFSET, WLAN_PARAM_Integer,
2872 struct hdd_config, TxHbwFlowHighWaterMarkOffset,
2873 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2874 CFG_LL_TX_HBW_FLOW_HWM_OFFSET_DEFAULT,
2875 CFG_LL_TX_HBW_FLOW_HWM_OFFSET_MIN,
2876 CFG_LL_TX_HBW_FLOW_HWM_OFFSET_MAX),
2877
2878 REG_VARIABLE(CFG_LL_TX_HBW_FLOW_MAX_Q_DEPTH, WLAN_PARAM_Integer,
2879 struct hdd_config, TxHbwFlowMaxQueueDepth,
2880 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2881 CFG_LL_TX_HBW_FLOW_MAX_Q_DEPTH_DEFAULT,
2882 CFG_LL_TX_HBW_FLOW_MAX_Q_DEPTH_MIN,
2883 CFG_LL_TX_HBW_FLOW_MAX_Q_DEPTH_MAX),
2884#endif /* QCA_LL_LEGACY_TX_FLOW_CONTROL */
2885#ifdef QCA_LL_TX_FLOW_CONTROL_V2
2886
2887 REG_VARIABLE(CFG_LL_TX_FLOW_STOP_QUEUE_TH, WLAN_PARAM_Integer,
2888 struct hdd_config, TxFlowStopQueueThreshold,
2889 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2890 CFG_LL_TX_FLOW_STOP_QUEUE_TH_DEFAULT,
2891 CFG_LL_TX_FLOW_STOP_QUEUE_TH_MIN,
2892 CFG_LL_TX_FLOW_STOP_QUEUE_TH_MAX),
2893
2894 REG_VARIABLE(CFG_LL_TX_FLOW_START_QUEUE_OFFSET, WLAN_PARAM_Integer,
2895 struct hdd_config, TxFlowStartQueueOffset,
2896 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2897 CFG_LL_TX_FLOW_START_QUEUE_OFFSET_DEFAULT,
2898 CFG_LL_TX_FLOW_START_QUEUE_OFFSET_MIN,
2899 CFG_LL_TX_FLOW_START_QUEUE_OFFSET_MAX),
2900
2901#endif
2902 REG_VARIABLE(CFG_INITIAL_DWELL_TIME_NAME, WLAN_PARAM_Integer,
2903 struct hdd_config, nInitialDwellTime,
2904 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2905 CFG_INITIAL_DWELL_TIME_DEFAULT,
2906 CFG_INITIAL_DWELL_TIME_MIN,
2907 CFG_INITIAL_DWELL_TIME_MAX),
2908
2909 REG_VARIABLE(CFG_INITIAL_SCAN_NO_DFS_CHNL_NAME, WLAN_PARAM_Integer,
2910 struct hdd_config, initial_scan_no_dfs_chnl,
2911 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2912 CFG_INITIAL_SCAN_NO_DFS_CHNL_DEFAULT,
2913 CFG_INITIAL_SCAN_NO_DFS_CHNL_MIN,
2914 CFG_INITIAL_SCAN_NO_DFS_CHNL_MAX),
2915
2916 REG_VARIABLE(CFG_SAP_MAX_OFFLOAD_PEERS, WLAN_PARAM_Integer,
2917 struct hdd_config, apMaxOffloadPeers,
2918 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2919 CFG_SAP_MAX_OFFLOAD_PEERS_DEFAULT,
2920 CFG_SAP_MAX_OFFLOAD_PEERS_MIN,
2921 CFG_SAP_MAX_OFFLOAD_PEERS_MAX),
2922
2923 REG_VARIABLE(CFG_SAP_MAX_OFFLOAD_REORDER_BUFFS, WLAN_PARAM_Integer,
2924 struct hdd_config, apMaxOffloadReorderBuffs,
2925 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2926 CFG_SAP_MAX_OFFLOAD_REORDER_BUFFS_DEFAULT,
2927 CFG_SAP_MAX_OFFLOAD_REORDER_BUFFS_MIN,
2928 CFG_SAP_MAX_OFFLOAD_REORDER_BUFFS_MAX),
2929
2930 REG_VARIABLE(CFG_ADVERTISE_CONCURRENT_OPERATION_NAME,
2931 WLAN_PARAM_Integer,
2932 struct hdd_config, advertiseConcurrentOperation,
2933 VAR_FLAGS_OPTIONAL,
2934 CFG_ADVERTISE_CONCURRENT_OPERATION_DEFAULT,
2935 CFG_ADVERTISE_CONCURRENT_OPERATION_MIN,
2936 CFG_ADVERTISE_CONCURRENT_OPERATION_MAX),
2937
2938 REG_VARIABLE(CFG_ENABLE_MEMORY_DEEP_SLEEP, WLAN_PARAM_Integer,
2939 struct hdd_config, enableMemDeepSleep,
2940 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2941 CFG_ENABLE_MEMORY_DEEP_SLEEP_DEFAULT,
2942 CFG_ENABLE_MEMORY_DEEP_SLEEP_MIN,
2943 CFG_ENABLE_MEMORY_DEEP_SLEEP_MAX),
2944
2945 REG_VARIABLE(CFG_DEFAULT_RATE_INDEX_24GH, WLAN_PARAM_Integer,
2946 struct hdd_config, defaultRateIndex24Ghz,
2947 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2948 CFG_DEFAULT_RATE_INDEX_24GH_DEFAULT,
2949 CFG_DEFAULT_RATE_INDEX_24GH_MIN,
2950 CFG_DEFAULT_RATE_INDEX_24GH_MAX),
2951
2952#ifdef MEMORY_DEBUG
2953 REG_VARIABLE(CFG_ENABLE_MEMORY_DEBUG_NAME, WLAN_PARAM_Integer,
2954 struct hdd_config, IsMemoryDebugSupportEnabled,
2955 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2956 CFG_ENABLE_MEMORY_DEBUG_DEFAULT,
2957 CFG_ENABLE_MEMORY_DEBUG_MIN,
2958 CFG_ENABLE_MEMORY_DEBUG_MAX),
2959#endif
2960
2961 REG_VARIABLE(CFG_DEBUG_P2P_REMAIN_ON_CHANNEL_NAME, WLAN_PARAM_Integer,
2962 struct hdd_config, debugP2pRemainOnChannel,
2963 VAR_FLAGS_OPTIONAL,
2964 CFG_DEBUG_P2P_REMAIN_ON_CHANNEL_DEFAULT,
2965 CFG_DEBUG_P2P_REMAIN_ON_CHANNEL_MIN,
2966 CFG_DEBUG_P2P_REMAIN_ON_CHANNEL_MAX),
2967
2968 REG_VARIABLE(CFG_ENABLE_PACKET_LOG, WLAN_PARAM_Integer,
2969 struct hdd_config, enablePacketLog,
2970 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2971 CFG_ENABLE_PACKET_LOG_DEFAULT,
2972 CFG_ENABLE_PACKET_LOG_MIN,
2973 CFG_ENABLE_PACKET_LOG_MAX),
2974
2975#ifdef WLAN_FEATURE_ROAM_OFFLOAD
2976 REG_VARIABLE(CFG_ROAMING_OFFLOAD_NAME, WLAN_PARAM_Integer,
2977 struct hdd_config, isRoamOffloadEnabled,
2978 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2979 CFG_ROAMING_OFFLOAD_DEFAULT,
2980 CFG_ROAMING_OFFLOAD_MIN,
2981 CFG_ROAMING_OFFLOAD_MAX),
2982#endif
2983#ifdef MSM_PLATFORM
2984 REG_VARIABLE(CFG_BUS_BANDWIDTH_HIGH_THRESHOLD, WLAN_PARAM_Integer,
2985 struct hdd_config, busBandwidthHighThreshold,
2986 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2987 CFG_BUS_BANDWIDTH_HIGH_THRESHOLD_DEFAULT,
2988 CFG_BUS_BANDWIDTH_HIGH_THRESHOLD_MIN,
2989 CFG_BUS_BANDWIDTH_HIGH_THRESHOLD_MAX),
2990
2991 REG_VARIABLE(CFG_BUS_BANDWIDTH_MEDIUM_THRESHOLD, WLAN_PARAM_Integer,
2992 struct hdd_config, busBandwidthMediumThreshold,
2993 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2994 CFG_BUS_BANDWIDTH_MEDIUM_THRESHOLD_DEFAULT,
2995 CFG_BUS_BANDWIDTH_MEDIUM_THRESHOLD_MIN,
2996 CFG_BUS_BANDWIDTH_MEDIUM_THRESHOLD_MAX),
2997
2998 REG_VARIABLE(CFG_BUS_BANDWIDTH_LOW_THRESHOLD, WLAN_PARAM_Integer,
2999 struct hdd_config, busBandwidthLowThreshold,
3000 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3001 CFG_BUS_BANDWIDTH_LOW_THRESHOLD_DEFAULT,
3002 CFG_BUS_BANDWIDTH_LOW_THRESHOLD_MIN,
3003 CFG_BUS_BANDWIDTH_LOW_THRESHOLD_MAX),
3004
3005 REG_VARIABLE(CFG_BUS_BANDWIDTH_COMPUTE_INTERVAL, WLAN_PARAM_Integer,
3006 struct hdd_config, busBandwidthComputeInterval,
3007 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3008 CFG_BUS_BANDWIDTH_COMPUTE_INTERVAL_DEFAULT,
3009 CFG_BUS_BANDWIDTH_COMPUTE_INTERVAL_MIN,
3010 CFG_BUS_BANDWIDTH_COMPUTE_INTERVAL_MAX),
Ravi Joshie2331e82015-07-01 18:18:54 -07003011
3012 REG_VARIABLE(CFG_ENABLE_TCP_DELACK, WLAN_PARAM_Integer,
3013 struct hdd_config, enable_tcp_delack,
3014 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3015 CFG_ENABLE_TCP_DELACK_DEFAULT,
3016 CFG_ENABLE_TCP_DELACK_MIN,
3017 CFG_ENABLE_TCP_DELACK_MAX),
3018
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003019 REG_VARIABLE(CFG_TCP_DELACK_THRESHOLD_HIGH, WLAN_PARAM_Integer,
3020 struct hdd_config, tcpDelackThresholdHigh,
3021 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3022 CFG_TCP_DELACK_THRESHOLD_HIGH_DEFAULT,
3023 CFG_TCP_DELACK_THRESHOLD_HIGH_MIN,
3024 CFG_TCP_DELACK_THRESHOLD_HIGH_MAX),
Ravi Joshie2331e82015-07-01 18:18:54 -07003025
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003026 REG_VARIABLE(CFG_TCP_DELACK_THRESHOLD_LOW, WLAN_PARAM_Integer,
3027 struct hdd_config, tcpDelackThresholdLow,
3028 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3029 CFG_TCP_DELACK_THRESHOLD_LOW_DEFAULT,
3030 CFG_TCP_DELACK_THRESHOLD_LOW_MIN,
3031 CFG_TCP_DELACK_THRESHOLD_LOW_MAX),
Mohit Khannae71e2262015-11-10 09:37:24 -08003032
Ravi Joshib89e7f72016-09-07 13:43:15 -07003033 REG_VARIABLE(CFG_TCP_DELACK_TIMER_COUNT, WLAN_PARAM_Integer,
3034 struct hdd_config, tcp_delack_timer_count,
3035 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3036 CFG_TCP_DELACK_TIMER_COUNT_DEFAULT,
3037 CFG_TCP_DELACK_TIMER_COUNT_MIN,
3038 CFG_TCP_DELACK_TIMER_COUNT_MAX),
Mohit Khannae71e2262015-11-10 09:37:24 -08003039
Ravi Joshib89e7f72016-09-07 13:43:15 -07003040 REG_VARIABLE(CFG_TCP_TX_HIGH_TPUT_THRESHOLD_NAME, WLAN_PARAM_Integer,
3041 struct hdd_config, tcp_tx_high_tput_thres,
3042 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3043 CFG_TCP_TX_HIGH_TPUT_THRESHOLD_DEFAULT,
3044 CFG_TCP_TX_HIGH_TPUT_THRESHOLD_MIN,
3045 CFG_TCP_TX_HIGH_TPUT_THRESHOLD_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003046#endif
3047
3048 REG_VARIABLE(CFG_ENABLE_FW_LOG_TYPE, WLAN_PARAM_Integer,
3049 struct hdd_config, enableFwLogType,
3050 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3051 CFG_ENABLE_FW_LOG_TYPE_DEFAULT,
3052 CFG_ENABLE_FW_LOG_TYPE_MIN,
3053 CFG_ENABLE_FW_LOG_TYPE_MAX),
3054
3055 REG_VARIABLE(CFG_ENABLE_FW_DEBUG_LOG_LEVEL, WLAN_PARAM_Integer,
3056 struct hdd_config, enableFwLogLevel,
3057 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3058 CFG_ENABLE_FW_DEBUG_LOG_LEVEL_DEFAULT,
3059 CFG_ENABLE_FW_DEBUG_LOG_LEVEL_MIN,
3060 CFG_ENABLE_FW_DEBUG_LOG_LEVEL_MAX),
3061
Rajeev Kumar Sirasanagandla0be56df2016-09-08 19:19:47 +05303062 REG_VARIABLE(CFG_ENABLE_FW_RTS_PROFILE, WLAN_PARAM_Integer,
3063 struct hdd_config, rts_profile,
3064 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3065 CFG_ENABLE_FW_RTS_PROFILE_DEFAULT,
3066 CFG_ENABLE_FW_RTS_PROFILE_MIN,
3067 CFG_ENABLE_FW_RTS_PROFILE_MAX),
3068
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003069 REG_VARIABLE_STRING(CFG_ENABLE_FW_MODULE_LOG_LEVEL, WLAN_PARAM_String,
3070 struct hdd_config, enableFwModuleLogLevel,
3071 VAR_FLAGS_OPTIONAL,
3072 (void *)CFG_ENABLE_FW_MODULE_LOG_DEFAULT),
3073
3074#ifdef WLAN_FEATURE_11W
3075 REG_VARIABLE(CFG_PMF_SA_QUERY_MAX_RETRIES_NAME, WLAN_PARAM_Integer,
3076 struct hdd_config, pmfSaQueryMaxRetries,
3077 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3078 CFG_PMF_SA_QUERY_MAX_RETRIES_DEFAULT,
3079 CFG_PMF_SA_QUERY_MAX_RETRIES_MIN,
3080 CFG_PMF_SA_QUERY_MAX_RETRIES_MAX),
3081
3082 REG_VARIABLE(CFG_PMF_SA_QUERY_RETRY_INTERVAL_NAME, WLAN_PARAM_Integer,
3083 struct hdd_config, pmfSaQueryRetryInterval,
3084 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3085 CFG_PMF_SA_QUERY_RETRY_INTERVAL_DEFAULT,
3086 CFG_PMF_SA_QUERY_RETRY_INTERVAL_MIN,
3087 CFG_PMF_SA_QUERY_RETRY_INTERVAL_MAX),
3088#endif
3089 REG_VARIABLE(CFG_MAX_CONCURRENT_CONNECTIONS_NAME, WLAN_PARAM_Integer,
3090 struct hdd_config, gMaxConcurrentActiveSessions,
3091 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3092 CFG_MAX_CONCURRENT_CONNECTIONS_DEFAULT,
3093 CFG_MAX_CONCURRENT_CONNECTIONS_MIN,
3094 CFG_MAX_CONCURRENT_CONNECTIONS_MAX),
3095
3096#ifdef FEATURE_GREEN_AP
3097 REG_VARIABLE(CFG_ENABLE_GREEN_AP_FEATURE, WLAN_PARAM_Integer,
3098 struct hdd_config, enableGreenAP,
3099 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3100 CFG_ENABLE_GREEN_AP_FEATURE_DEFAULT,
3101 CFG_ENABLE_GREEN_AP_FEATURE_MIN,
3102 CFG_ENABLE_GREEN_AP_FEATURE_MAX),
Ryan Hsucb118cf2015-11-09 16:03:53 -08003103 REG_VARIABLE(CFG_ENABLE_EGAP_ENABLE_FEATURE, WLAN_PARAM_Integer,
3104 struct hdd_config, enable_egap,
3105 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3106 CFG_ENABLE_EGAP_ENABLE_FEATURE_DEFAULT,
3107 CFG_ENABLE_EGAP_ENABLE_FEATURE_MIN,
3108 CFG_ENABLE_EGAP_ENABLE_FEATURE_MAX),
3109 REG_VARIABLE(CFG_ENABLE_EGAP_INACT_TIME_FEATURE, WLAN_PARAM_Integer,
3110 struct hdd_config, egap_inact_time,
3111 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3112 CFG_ENABLE_EGAP_INACT_TIME_FEATURE_DEFAULT,
3113 CFG_ENABLE_EGAP_INACT_TIME_FEATURE_MIN,
3114 CFG_ENABLE_EGAP_INACT_TIME_FEATURE_MAX),
3115 REG_VARIABLE(CFG_ENABLE_EGAP_WAIT_TIME_FEATURE, WLAN_PARAM_Integer,
3116 struct hdd_config, egap_wait_time,
3117 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3118 CFG_ENABLE_EGAP_WAIT_TIME_FEATURE_DEFAULT,
3119 CFG_ENABLE_EGAP_WAIT_TIME_FEATURE_MIN,
3120 CFG_ENABLE_EGAP_WAIT_TIME_FEATURE_MAX),
3121 REG_VARIABLE(CFG_ENABLE_EGAP_FLAGS_FEATURE, WLAN_PARAM_Integer,
3122 struct hdd_config, egap_feature_flag,
3123 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3124 CFG_ENABLE_EGAP_FLAGS_FEATURE_DEFAULT,
3125 CFG_ENABLE_EGAP_FLAGS_FEATURE_MIN,
3126 CFG_ENABLE_EGAP_FLAGS_FEATURE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003127#endif
3128
3129 REG_VARIABLE(CFG_IGNORE_CAC_NAME, WLAN_PARAM_Integer,
3130 struct hdd_config, ignoreCAC,
3131 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3132 CFG_IGNORE_CAC_DEFAULT,
3133 CFG_IGNORE_CAC_MIN,
3134 CFG_IGNORE_CAC_MAX),
3135
3136 REG_VARIABLE(CFG_ENABLE_SAP_DFS_CH_SIFS_BURST_NAME, WLAN_PARAM_Integer,
3137 struct hdd_config, IsSapDfsChSifsBurstEnabled,
3138 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3139 CFG_ENABLE_SAP_DFS_CH_SIFS_BURST_DEFAULT,
3140 CFG_ENABLE_SAP_DFS_CH_SIFS_BURST_MIN,
3141 CFG_ENABLE_SAP_DFS_CH_SIFS_BURST_MAX),
3142
3143 REG_VARIABLE(CFG_DFS_RADAR_PRI_MULTIPLIER_NAME, WLAN_PARAM_Integer,
3144 struct hdd_config, dfsRadarPriMultiplier,
3145 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3146 CFG_DFS_RADAR_PRI_MULTIPLIER_DEFAULT,
3147 CFG_DFS_RADAR_PRI_MULTIPLIER_MIN,
3148 CFG_DFS_RADAR_PRI_MULTIPLIER_MAX),
3149
3150 REG_VARIABLE(CFG_REORDER_OFFLOAD_SUPPORT_NAME, WLAN_PARAM_Integer,
3151 struct hdd_config, reorderOffloadSupport,
3152 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3153 CFG_REORDER_OFFLOAD_SUPPORT_DEFAULT,
3154 CFG_REORDER_OFFLOAD_SUPPORT_MIN,
3155 CFG_REORDER_OFFLOAD_SUPPORT_MAX),
3156
3157 REG_VARIABLE(CFG_IPA_UC_TX_BUF_COUNT_NAME, WLAN_PARAM_Integer,
3158 struct hdd_config, IpaUcTxBufCount,
3159 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
3160 CFG_IPA_UC_TX_BUF_COUNT_DEFAULT,
3161 CFG_IPA_UC_TX_BUF_COUNT_MIN,
3162 CFG_IPA_UC_TX_BUF_COUNT_MAX),
3163
3164 REG_VARIABLE(CFG_IPA_UC_TX_BUF_SIZE_NAME, WLAN_PARAM_Integer,
3165 struct hdd_config, IpaUcTxBufSize,
3166 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
3167 CFG_IPA_UC_TX_BUF_SIZE_DEFAULT,
3168 CFG_IPA_UC_TX_BUF_SIZE_MIN,
3169 CFG_IPA_UC_TX_BUF_SIZE_MAX),
3170
3171 REG_VARIABLE(CFG_IPA_UC_RX_IND_RING_COUNT_NAME, WLAN_PARAM_Integer,
3172 struct hdd_config, IpaUcRxIndRingCount,
3173 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
3174 CFG_IPA_UC_RX_IND_RING_COUNT_DEFAULT,
3175 CFG_IPA_UC_RX_IND_RING_COUNT_MIN,
3176 CFG_IPA_UC_RX_IND_RING_COUNT_MAX),
3177
3178 REG_VARIABLE(CFG_IPA_UC_TX_PARTITION_BASE_NAME, WLAN_PARAM_Integer,
3179 struct hdd_config, IpaUcTxPartitionBase,
3180 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
3181 CFG_IPA_UC_TX_PARTITION_BASE_DEFAULT,
3182 CFG_IPA_UC_TX_PARTITION_BASE_MIN,
3183 CFG_IPA_UC_TX_PARTITION_BASE_MAX),
3184#ifdef WLAN_LOGGING_SOCK_SVC_ENABLE
3185 REG_VARIABLE(CFG_WLAN_LOGGING_SUPPORT_NAME, WLAN_PARAM_Integer,
3186 struct hdd_config, wlanLoggingEnable,
3187 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3188 CFG_WLAN_LOGGING_SUPPORT_DEFAULT,
3189 CFG_WLAN_LOGGING_SUPPORT_DISABLE,
3190 CFG_WLAN_LOGGING_SUPPORT_ENABLE),
3191
Srinivas Girigowda8187e792017-03-03 11:50:59 -08003192 REG_VARIABLE(CFG_WLAN_LOGGING_CONSOLE_SUPPORT_NAME,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003193 WLAN_PARAM_Integer,
Srinivas Girigowda8187e792017-03-03 11:50:59 -08003194 struct hdd_config, wlanLoggingToConsole,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003195 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
Srinivas Girigowda8187e792017-03-03 11:50:59 -08003196 CFG_WLAN_LOGGING_CONSOLE_SUPPORT_DEFAULT,
3197 CFG_WLAN_LOGGING_CONSOLE_SUPPORT_DISABLE,
3198 CFG_WLAN_LOGGING_CONSOLE_SUPPORT_ENABLE),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003199
3200 REG_VARIABLE(CFG_WLAN_LOGGING_NUM_BUF_NAME, WLAN_PARAM_Integer,
3201 struct hdd_config, wlanLoggingNumBuf,
3202 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3203 CFG_WLAN_LOGGING_NUM_BUF_DEFAULT,
3204 CFG_WLAN_LOGGING_NUM_BUF_MIN,
3205 CFG_WLAN_LOGGING_NUM_BUF_MAX),
3206#endif /* WLAN_LOGGING_SOCK_SVC_ENABLE */
3207
3208 REG_VARIABLE(CFG_ENABLE_SIFS_BURST, WLAN_PARAM_Integer,
3209 struct hdd_config, enableSifsBurst,
3210 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3211 CFG_ENABLE_SIFS_BURST_DEFAULT,
3212 CFG_ENABLE_SIFS_BURST_MIN,
3213 CFG_ENABLE_SIFS_BURST_MAX),
3214
3215#ifdef WLAN_FEATURE_LPSS
3216 REG_VARIABLE(CFG_ENABLE_LPASS_SUPPORT, WLAN_PARAM_Integer,
Komal Seelamc11bb222016-01-27 18:57:10 +05303217 struct hdd_config, enable_lpass_support,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003218 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3219 CFG_ENABLE_LPASS_SUPPORT_DEFAULT,
3220 CFG_ENABLE_LPASS_SUPPORT_MIN,
3221 CFG_ENABLE_LPASS_SUPPORT_MAX),
3222#endif
3223
3224#ifdef WLAN_FEATURE_NAN
3225 REG_VARIABLE(CFG_ENABLE_NAN_SUPPORT, WLAN_PARAM_Integer,
3226 struct hdd_config, enable_nan_support,
3227 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3228 CFG_ENABLE_NAN_SUPPORT_DEFAULT,
3229 CFG_ENABLE_NAN_SUPPORT_MIN,
3230 CFG_ENABLE_NAN_SUPPORT_MAX),
3231#endif
3232
3233 REG_VARIABLE(CFG_ENABLE_SELF_RECOVERY, WLAN_PARAM_Integer,
3234 struct hdd_config, enableSelfRecovery,
3235 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3236 CFG_ENABLE_SELF_RECOVERY_DEFAULT,
3237 CFG_ENABLE_SELF_RECOVERY_MIN,
3238 CFG_ENABLE_SELF_RECOVERY_MAX),
3239
3240#ifdef FEATURE_WLAN_FORCE_SAP_SCC
3241 REG_VARIABLE(CFG_SAP_SCC_CHAN_AVOIDANCE, WLAN_PARAM_Integer,
3242 struct hdd_config, SapSccChanAvoidance,
3243 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3244 CFG_SAP_SCC_CHAN_AVOIDANCE_DEFAULT,
3245 CFG_SAP_SCC_CHAN_AVOIDANCE_MIN,
3246 CFG_SAP_SCC_CHAN_AVOIDANCE_MAX),
3247#endif /* FEATURE_WLAN_FORCE_SAP_SCC */
3248
3249 REG_VARIABLE(CFG_ENABLE_SAP_SUSPEND, WLAN_PARAM_Integer,
3250 struct hdd_config, enableSapSuspend,
3251 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3252 CFG_ENABLE_SAP_SUSPEND_DEFAULT,
3253 CFG_ENABLE_SAP_SUSPEND_MIN,
3254 CFG_ENABLE_SAP_SUSPEND_MAX),
3255
3256#ifdef WLAN_FEATURE_EXTWOW_SUPPORT
3257 REG_VARIABLE(CFG_EXTWOW_GO_TO_SUSPEND, WLAN_PARAM_Integer,
3258 struct hdd_config, extWowGotoSuspend,
3259 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3260 CFG_EXTWOW_GO_TO_SUSPEND_DEFAULT,
3261 CFG_EXTWOW_GO_TO_SUSPEND_MIN,
3262 CFG_EXTWOW_GO_TO_SUSPEND_MAX),
3263
3264 REG_VARIABLE(CFG_EXTWOW_APP1_WAKE_PIN_NUMBER, WLAN_PARAM_Integer,
3265 struct hdd_config, extWowApp1WakeupPinNumber,
3266 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3267 CFG_EXTWOW_APP1_WAKE_PIN_NUMBER_DEFAULT,
3268 CFG_EXTWOW_APP1_WAKE_PIN_NUMBER_MIN,
3269 CFG_EXTWOW_APP1_WAKE_PIN_NUMBER_MAX),
3270
3271 REG_VARIABLE(CFG_EXTWOW_APP2_WAKE_PIN_NUMBER, WLAN_PARAM_Integer,
3272 struct hdd_config, extWowApp2WakeupPinNumber,
3273 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3274 CFG_EXTWOW_APP2_WAKE_PIN_NUMBER_DEFAULT,
3275 CFG_EXTWOW_APP2_WAKE_PIN_NUMBER_MIN,
3276 CFG_EXTWOW_APP2_WAKE_PIN_NUMBER_MAX),
3277
3278 REG_VARIABLE(CFG_EXTWOW_KA_INIT_PING_INTERVAL, WLAN_PARAM_Integer,
3279 struct hdd_config, extWowApp2KAInitPingInterval,
3280 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3281 CFG_EXTWOW_KA_INIT_PING_INTERVAL_DEFAULT,
3282 CFG_EXTWOW_KA_INIT_PING_INTERVAL_MIN,
3283 CFG_EXTWOW_KA_INIT_PING_INTERVAL_MAX),
3284
3285 REG_VARIABLE(CFG_EXTWOW_KA_MIN_PING_INTERVAL, WLAN_PARAM_Integer,
3286 struct hdd_config, extWowApp2KAMinPingInterval,
3287 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3288 CFG_EXTWOW_KA_MIN_PING_INTERVAL_DEFAULT,
3289 CFG_EXTWOW_KA_MIN_PING_INTERVAL_MIN,
3290 CFG_EXTWOW_KA_MIN_PING_INTERVAL_MAX),
3291
3292 REG_VARIABLE(CFG_EXTWOW_KA_MAX_PING_INTERVAL, WLAN_PARAM_Integer,
3293 struct hdd_config, extWowApp2KAMaxPingInterval,
3294 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3295 CFG_EXTWOW_KA_MAX_PING_INTERVAL_DEFAULT,
3296 CFG_EXTWOW_KA_MAX_PING_INTERVAL_MIN,
3297 CFG_EXTWOW_KA_MAX_PING_INTERVAL_MAX),
3298
3299 REG_VARIABLE(CFG_EXTWOW_KA_INC_PING_INTERVAL, WLAN_PARAM_Integer,
3300 struct hdd_config, extWowApp2KAIncPingInterval,
3301 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3302 CFG_EXTWOW_KA_INC_PING_INTERVAL_DEFAULT,
3303 CFG_EXTWOW_KA_INC_PING_INTERVAL_MIN,
3304 CFG_EXTWOW_KA_INC_PING_INTERVAL_MAX),
3305
3306 REG_VARIABLE(CFG_EXTWOW_TCP_SRC_PORT, WLAN_PARAM_Integer,
3307 struct hdd_config, extWowApp2TcpSrcPort,
3308 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3309 CFG_EXTWOW_TCP_SRC_PORT_DEFAULT,
3310 CFG_EXTWOW_TCP_SRC_PORT_MIN,
3311 CFG_EXTWOW_TCP_SRC_PORT_MAX),
3312
3313 REG_VARIABLE(CFG_EXTWOW_TCP_DST_PORT, WLAN_PARAM_Integer,
3314 struct hdd_config, extWowApp2TcpDstPort,
3315 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3316 CFG_EXTWOW_TCP_DST_PORT_DEFAULT,
3317 CFG_EXTWOW_TCP_DST_PORT_MIN,
3318 CFG_EXTWOW_TCP_DST_PORT_MAX),
3319
3320 REG_VARIABLE(CFG_EXTWOW_TCP_TX_TIMEOUT, WLAN_PARAM_Integer,
3321 struct hdd_config, extWowApp2TcpTxTimeout,
3322 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3323 CFG_EXTWOW_TCP_TX_TIMEOUT_DEFAULT,
3324 CFG_EXTWOW_TCP_TX_TIMEOUT_MIN,
3325 CFG_EXTWOW_TCP_TX_TIMEOUT_MAX),
3326
3327 REG_VARIABLE(CFG_EXTWOW_TCP_RX_TIMEOUT, WLAN_PARAM_Integer,
3328 struct hdd_config, extWowApp2TcpRxTimeout,
3329 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3330 CFG_EXTWOW_TCP_RX_TIMEOUT_DEFAULT,
3331 CFG_EXTWOW_TCP_RX_TIMEOUT_MIN,
3332 CFG_EXTWOW_TCP_RX_TIMEOUT_MAX),
3333#endif
3334 REG_VARIABLE(CFG_ENABLE_DEAUTH_TO_DISASSOC_MAP_NAME, WLAN_PARAM_Integer,
3335 struct hdd_config, gEnableDeauthToDisassocMap,
3336 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3337 CFG_ENABLE_DEAUTH_TO_DISASSOC_MAP_DEFAULT,
3338 CFG_ENABLE_DEAUTH_TO_DISASSOC_MAP_MIN,
3339 CFG_ENABLE_DEAUTH_TO_DISASSOC_MAP_MAX),
3340#ifdef DHCP_SERVER_OFFLOAD
3341 REG_VARIABLE(CFG_DHCP_SERVER_OFFLOAD_SUPPORT_NAME, WLAN_PARAM_Integer,
3342 struct hdd_config, enableDHCPServerOffload,
3343 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3344 CFG_DHCP_SERVER_OFFLOAD_SUPPORT_DEFAULT,
3345 CFG_DHCP_SERVER_OFFLOAD_SUPPORT_MIN,
3346 CFG_DHCP_SERVER_OFFLOAD_SUPPORT_MAX),
3347 REG_VARIABLE(CFG_DHCP_SERVER_OFFLOAD_NUM_CLIENT_NAME,
3348 WLAN_PARAM_Integer,
3349 struct hdd_config, dhcpMaxNumClients,
3350 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3351 CFG_DHCP_SERVER_OFFLOAD_NUM_CLIENT_DEFAULT,
3352 CFG_DHCP_SERVER_OFFLOAD_NUM_CLIENT_MIN,
3353 CFG_DHCP_SERVER_OFFLOAD_NUM_CLIENT_MAX),
3354 REG_VARIABLE_STRING(CFG_DHCP_SERVER_IP_NAME, WLAN_PARAM_String,
3355 struct hdd_config, dhcpServerIP,
3356 VAR_FLAGS_OPTIONAL,
3357 (void *)CFG_DHCP_SERVER_IP_DEFAULT),
3358#endif /* DHCP_SERVER_OFFLOAD */
3359
3360 REG_VARIABLE(CFG_ENABLE_DEAUTH_BEFORE_CONNECTION, WLAN_PARAM_Integer,
3361 struct hdd_config, sendDeauthBeforeCon,
3362 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3363 CFG_ENABLE_DEAUTH_BEFORE_CONNECTION_DEFAULT,
3364 CFG_ENABLE_DEAUTH_BEFORE_CONNECTION_MIN,
3365 CFG_ENABLE_DEAUTH_BEFORE_CONNECTION_MAX),
3366
3367 REG_VARIABLE(CFG_ENABLE_MAC_ADDR_SPOOFING, WLAN_PARAM_Integer,
3368 struct hdd_config, enable_mac_spoofing,
3369 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3370 CFG_ENABLE_MAC_ADDR_SPOOFING_DEFAULT,
3371 CFG_ENABLE_MAC_ADDR_SPOOFING_MIN,
3372 CFG_ENABLE_MAC_ADDR_SPOOFING_MAX),
3373
3374 REG_VARIABLE(CFG_ENABLE_CUSTOM_CONC_RULE1_NAME, WLAN_PARAM_Integer,
3375 struct hdd_config, conc_custom_rule1,
3376 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
3377 CFG_ENABLE_CUSTOM_CONC_RULE1_NAME_DEFAULT,
3378 CFG_ENABLE_CUSTOM_CONC_RULE1_NAME_MIN,
3379 CFG_ENABLE_CUSTOM_CONC_RULE1_NAME_MAX),
3380
3381 REG_VARIABLE(CFG_ENABLE_CUSTOM_CONC_RULE2_NAME, WLAN_PARAM_Integer,
3382 struct hdd_config, conc_custom_rule2,
3383 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
3384 CFG_ENABLE_CUSTOM_CONC_RULE2_NAME_DEFAULT,
3385 CFG_ENABLE_CUSTOM_CONC_RULE2_NAME_MIN,
3386 CFG_ENABLE_CUSTOM_CONC_RULE2_NAME_MAX),
3387
3388 REG_VARIABLE(CFG_ENABLE_STA_CONNECTION_IN_5GHZ, WLAN_PARAM_Integer,
3389 struct hdd_config, is_sta_connection_in_5gz_enabled,
3390 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
3391 CFG_ENABLE_STA_CONNECTION_IN_5GHZ_DEFAULT,
3392 CFG_ENABLE_STA_CONNECTION_IN_5GHZ_MIN,
3393 CFG_ENABLE_STA_CONNECTION_IN_5GHZ_MAX),
3394
3395 REG_VARIABLE(CFG_STA_MIRACAST_MCC_REST_TIME_VAL, WLAN_PARAM_Integer,
3396 struct hdd_config, sta_miracast_mcc_rest_time_val,
3397 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3398 CFG_STA_MIRACAST_MCC_REST_TIME_VAL_DEFAULT,
3399 CFG_STA_MIRACAST_MCC_REST_TIME_VAL_MIN,
3400 CFG_STA_MIRACAST_MCC_REST_TIME_VAL_MAX),
3401
3402#ifdef FEATURE_AP_MCC_CH_AVOIDANCE
3403 REG_VARIABLE(CFG_SAP_MCC_CHANNEL_AVOIDANCE_NAME,
3404 WLAN_PARAM_Integer,
3405 struct hdd_config,
3406 sap_channel_avoidance,
3407 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
3408 CFG_SAP_MCC_CHANNEL_AVOIDANCE_DEFAULT,
3409 CFG_SAP_MCC_CHANNEL_AVOIDANCE_MIN,
3410 CFG_SAP_MCC_CHANNEL_AVOIDANCE_MAX),
3411#endif /* FEATURE_AP_MCC_CH_AVOIDANCE */
3412
3413 REG_VARIABLE(CFG_SAP_P2P_11AC_OVERRIDE_NAME, WLAN_PARAM_Integer,
3414 struct hdd_config, sap_p2p_11ac_override,
3415 VAR_FLAGS_OPTIONAL |
3416 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3417 CFG_SAP_P2P_11AC_OVERRIDE_DEFAULT,
3418 CFG_SAP_P2P_11AC_OVERRIDE_MIN,
3419 CFG_SAP_P2P_11AC_OVERRIDE_MAX),
3420
3421 REG_VARIABLE(CFG_ENABLE_RAMDUMP_COLLECTION, WLAN_PARAM_Integer,
3422 struct hdd_config, is_ramdump_enabled,
3423 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3424 CFG_ENABLE_RAMDUMP_COLLECTION_DEFAULT,
3425 CFG_ENABLE_RAMDUMP_COLLECTION_MIN,
3426 CFG_ENABLE_RAMDUMP_COLLECTION_MAX),
3427
3428 REG_VARIABLE(CFG_SAP_DOT11MC, WLAN_PARAM_Integer,
3429 struct hdd_config, sap_dot11mc,
3430 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3431 CFG_SAP_DOT11MC_DEFAULT,
3432 CFG_SAP_DOT11MC_MIN,
3433 CFG_SAP_DOT11MC_MAX),
3434
3435 REG_VARIABLE(CFG_ENABLE_NON_DFS_CHAN_ON_RADAR, WLAN_PARAM_Integer,
3436 struct hdd_config, prefer_non_dfs_on_radar,
3437 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3438 CFG_ENABLE_NON_DFS_CHAN_ON_RADAR_DEFAULT,
3439 CFG_ENABLE_NON_DFS_CHAN_ON_RADAR_MIN,
3440 CFG_ENABLE_NON_DFS_CHAN_ON_RADAR_MAX),
3441
3442 REG_VARIABLE(CFG_MULTICAST_HOST_FW_MSGS, WLAN_PARAM_Integer,
3443 struct hdd_config, multicast_host_fw_msgs,
3444 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3445 CFG_MULTICAST_HOST_FW_MSGS_DEFAULT,
3446 CFG_MULTICAST_HOST_FW_MSGS_MIN,
3447 CFG_MULTICAST_HOST_FW_MSGS_MAX),
3448
3449 REG_VARIABLE(CFG_CONC_SYSTEM_PREF, WLAN_PARAM_Integer,
3450 struct hdd_config, conc_system_pref,
3451 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3452 CFG_CONC_SYSTEM_PREF_DEFAULT,
3453 CFG_CONC_SYSTEM_PREF_MIN,
3454 CFG_CONC_SYSTEM_PREF_MAX),
3455
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003456 REG_VARIABLE(CFG_TSO_ENABLED_NAME, WLAN_PARAM_Integer,
3457 struct hdd_config, tso_enable,
3458 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3459 CFG_TSO_ENABLED_DEFAULT,
3460 CFG_TSO_ENABLED_MIN,
3461 CFG_TSO_ENABLED_MAX),
3462
3463 REG_VARIABLE(CFG_LRO_ENABLED_NAME, WLAN_PARAM_Integer,
3464 struct hdd_config, lro_enable,
3465 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3466 CFG_LRO_ENABLED_DEFAULT,
3467 CFG_LRO_ENABLED_MIN,
3468 CFG_LRO_ENABLED_MAX),
3469
Rajeev Kumardd3bc602016-08-16 14:21:05 -07003470 REG_VARIABLE(CFG_BPF_PACKET_FILTER_OFFLOAD, WLAN_PARAM_Integer,
3471 struct hdd_config, bpf_packet_filter_enable,
3472 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3473 CFG_BPF_PACKET_FILTER_OFFLOAD_DEFAULT,
3474 CFG_BPF_PACKET_FILTER_OFFLOAD_MIN,
3475 CFG_BPF_PACKET_FILTER_OFFLOAD_MAX),
3476
Nitesh Shah61c10d92016-10-19 19:29:15 +05303477 REG_VARIABLE(CFG_TDLS_ENABLE_DEFER_TIMER, WLAN_PARAM_Integer,
3478 struct hdd_config, tdls_enable_defer_time,
3479 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3480 CFG_TDLS_ENABLE_DEFER_TIMER_DEFAULT,
3481 CFG_TDLS_ENABLE_DEFER_TIMER_MIN,
3482 CFG_TDLS_ENABLE_DEFER_TIMER_MAX),
3483
Manjunathappa Prakashfff753c2016-09-01 19:34:56 -07003484 REG_VARIABLE(CFG_FLOW_STEERING_ENABLED_NAME, WLAN_PARAM_Integer,
3485 struct hdd_config, flow_steering_enable,
3486 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3487 CFG_FLOW_STEERING_ENABLED_DEFAULT,
3488 CFG_FLOW_STEERING_ENABLED_MIN,
3489 CFG_FLOW_STEERING_ENABLED_MAX),
3490
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003491 REG_VARIABLE(CFG_ACTIVE_MODE_OFFLOAD, WLAN_PARAM_Integer,
3492 struct hdd_config, active_mode_offload,
3493 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3494 CFG_ACTIVE_MODE_OFFLOAD_DEFAULT,
3495 CFG_ACTIVE_MODE_OFFLOAD_MIN,
3496 CFG_ACTIVE_MODE_OFFLOAD_MAX),
3497
3498 REG_VARIABLE(CFG_FINE_TIME_MEAS_CAPABILITY, WLAN_PARAM_HexInteger,
3499 struct hdd_config, fine_time_meas_cap,
3500 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3501 CFG_FINE_TIME_MEAS_CAPABILITY_DEFAULT,
3502 CFG_FINE_TIME_MEAS_CAPABILITY_MIN,
3503 CFG_FINE_TIME_MEAS_CAPABILITY_MAX),
3504
3505#ifdef WLAN_FEATURE_FASTPATH
3506 REG_VARIABLE(CFG_ENABLE_FASTPATH, WLAN_PARAM_Integer,
3507 struct hdd_config, fastpath_enable,
3508 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3509 CFG_ENABLE_FASTPATH_DEFAULT,
3510 CFG_ENABLE_FASTPATH_MIN,
3511 CFG_ENABLE_FASTPATH_MAX),
3512#endif
3513 REG_VARIABLE(CFG_MAX_SCAN_COUNT_NAME, WLAN_PARAM_Integer,
3514 struct hdd_config, max_scan_count,
3515 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3516 CFG_MAX_SCAN_COUNT_DEFAULT,
3517 CFG_MAX_SCAN_COUNT_MIN,
3518 CFG_MAX_SCAN_COUNT_MAX),
3519
3520 REG_VARIABLE(CFG_DOT11P_MODE_NAME, WLAN_PARAM_Integer,
3521 struct hdd_config, dot11p_mode,
3522 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3523 CFG_DOT11P_MODE_DEFAULT,
3524 CFG_DOT11P_MODE_MIN,
3525 CFG_DOT11P_MODE_MAX),
3526
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003527#ifdef FEATURE_WLAN_EXTSCAN
Manjeet Singh0f2ce5c2016-09-01 12:08:57 +05303528 REG_VARIABLE(CFG_EXTSCAN_ALLOWED_NAME, WLAN_PARAM_Integer,
3529 struct hdd_config, extscan_enabled,
3530 VAR_FLAGS_OPTIONAL |
3531 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3532 CFG_EXTSCAN_ALLOWED_DEF,
3533 CFG_EXTSCAN_ALLOWED_MIN,
3534 CFG_EXTSCAN_ALLOWED_MAX),
3535
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003536 REG_VARIABLE(CFG_EXTSCAN_PASSIVE_MAX_CHANNEL_TIME_NAME,
3537 WLAN_PARAM_Integer,
3538 struct hdd_config, extscan_passive_max_chn_time,
3539 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3540 CFG_EXTSCAN_PASSIVE_MAX_CHANNEL_TIME_DEFAULT,
3541 CFG_EXTSCAN_PASSIVE_MAX_CHANNEL_TIME_MIN,
3542 CFG_EXTSCAN_PASSIVE_MAX_CHANNEL_TIME_MAX),
3543
3544 REG_VARIABLE(CFG_EXTSCAN_PASSIVE_MIN_CHANNEL_TIME_NAME,
3545 WLAN_PARAM_Integer,
3546 struct hdd_config, extscan_passive_min_chn_time,
3547 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3548 CFG_EXTSCAN_PASSIVE_MIN_CHANNEL_TIME_DEFAULT,
3549 CFG_EXTSCAN_PASSIVE_MIN_CHANNEL_TIME_MIN,
3550 CFG_EXTSCAN_PASSIVE_MIN_CHANNEL_TIME_MAX),
3551
3552 REG_VARIABLE(CFG_EXTSCAN_ACTIVE_MAX_CHANNEL_TIME_NAME,
3553 WLAN_PARAM_Integer,
3554 struct hdd_config, extscan_active_max_chn_time,
3555 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3556 CFG_EXTSCAN_ACTIVE_MAX_CHANNEL_TIME_DEFAULT,
3557 CFG_EXTSCAN_ACTIVE_MAX_CHANNEL_TIME_MIN,
3558 CFG_EXTSCAN_ACTIVE_MAX_CHANNEL_TIME_MAX),
3559
3560 REG_VARIABLE(CFG_EXTSCAN_ACTIVE_MIN_CHANNEL_TIME_NAME,
3561 WLAN_PARAM_Integer,
3562 struct hdd_config, extscan_active_min_chn_time,
3563 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3564 CFG_EXTSCAN_ACTIVE_MIN_CHANNEL_TIME_DEFAULT,
3565 CFG_EXTSCAN_ACTIVE_MIN_CHANNEL_TIME_MIN,
3566 CFG_EXTSCAN_ACTIVE_MIN_CHANNEL_TIME_MAX),
3567#endif
3568
Yingying Tang95409972016-10-20 15:16:15 +08003569#ifdef WLAN_FEATURE_WOW_PULSE
3570 REG_VARIABLE(CFG_WOW_PULSE_SUPPORT_NAME, WLAN_PARAM_Integer,
3571 struct hdd_config, wow_pulse_support,
3572 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3573 CFG_WOW_PULSE_SUPPORT_DEFAULT,
3574 CFG_WOW_PULSE_SUPPORT_MIN,
3575 CFG_WOW_PULSE_SUPPORT_MAX),
3576
3577 REG_VARIABLE(CFG_WOW_PULSE_PIN_NAME, WLAN_PARAM_Integer,
3578 struct hdd_config, wow_pulse_pin,
3579 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3580 CFG_WOW_PULSE_PIN_DEFAULT,
3581 CFG_WOW_PULSE_PIN_MIN,
3582 CFG_WOW_PULSE_PIN_MAX),
3583
3584 REG_VARIABLE(CFG_WOW_PULSE_INTERVAL_LOW_NAME, WLAN_PARAM_Integer,
3585 struct hdd_config, wow_pulse_interval_low,
3586 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3587 CFG_WOW_PULSE_INTERVAL_LOW_DEFAULT,
3588 CFG_WOW_PULSE_INTERVAL_LOW_MIN,
3589 CFG_WOW_PULSE_INTERVAL_LOW_MAX),
3590
3591 REG_VARIABLE(CFG_WOW_PULSE_INTERVAL_HIGH_NAME, WLAN_PARAM_Integer,
3592 struct hdd_config, wow_pulse_interval_high,
3593 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3594 CFG_WOW_PULSE_INTERVAL_HIGH_DEFAULT,
3595 CFG_WOW_PULSE_INTERVAL_HIGH_MIN,
3596 CFG_WOW_PULSE_INTERVAL_HIGH_MAX),
3597#endif
3598
3599
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003600 REG_VARIABLE(CFG_CE_CLASSIFY_ENABLE_NAME, WLAN_PARAM_Integer,
3601 struct hdd_config, ce_classify_enabled,
3602 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3603 CFG_CE_CLASSIFY_ENABLE_DEFAULT,
3604 CFG_CE_CLASSIFY_ENABLE_MIN,
3605 CFG_CE_CLASSIFY_ENABLE_MAX),
3606
3607 REG_VARIABLE(CFG_DUAL_MAC_FEATURE_DISABLE, WLAN_PARAM_HexInteger,
3608 struct hdd_config, dual_mac_feature_disable,
3609 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3610 CFG_DUAL_MAC_FEATURE_DISABLE_DEFAULT,
3611 CFG_DUAL_MAC_FEATURE_DISABLE_MIN,
3612 CFG_DUAL_MAC_FEATURE_DISABLE_MAX),
Nitesh Shah50a3de12017-04-03 19:37:19 +05303613
3614 REG_VARIABLE_STRING(CFG_DBS_SCAN_SELECTION_NAME, WLAN_PARAM_String,
3615 struct hdd_config, dbs_scan_selection,
3616 VAR_FLAGS_OPTIONAL,
3617 (void *)CFG_DBS_SCAN_SELECTION_DEFAULT),
3618
Varun Reddy Yeturub43fda12015-09-10 18:16:21 -07003619#ifdef FEATURE_WLAN_SCAN_PNO
3620 REG_VARIABLE(CFG_PNO_CHANNEL_PREDICTION_NAME, WLAN_PARAM_Integer,
3621 struct hdd_config, pno_channel_prediction,
3622 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3623 CFG_PNO_CHANNEL_PREDICTION_DEFAULT,
3624 CFG_PNO_CHANNEL_PREDICTION_MIN,
3625 CFG_PNO_CHANNEL_PREDICTION_MAX),
3626
3627 REG_VARIABLE(CFG_TOP_K_NUM_OF_CHANNELS_NAME, WLAN_PARAM_Integer,
3628 struct hdd_config, top_k_num_of_channels,
3629 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3630 CFG_TOP_K_NUM_OF_CHANNELS_DEFAULT,
3631 CFG_TOP_K_NUM_OF_CHANNELS_MIN,
3632 CFG_TOP_K_NUM_OF_CHANNELS_MAX),
3633
3634 REG_VARIABLE(CFG_STATIONARY_THRESHOLD_NAME, WLAN_PARAM_Integer,
3635 struct hdd_config, stationary_thresh,
3636 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3637 CFG_STATIONARY_THRESHOLD_DEFAULT,
3638 CFG_STATIONARY_THRESHOLD_MIN,
3639 CFG_STATIONARY_THRESHOLD_MAX),
3640
3641 REG_VARIABLE(CFG_CHANNEL_PREDICTION_FULL_SCAN_MS_NAME,
3642 WLAN_PARAM_Integer,
3643 struct hdd_config, channel_prediction_full_scan,
3644 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3645 CFG_CHANNEL_PREDICTION_FULL_SCAN_MS_DEFAULT,
3646 CFG_CHANNEL_PREDICTION_FULL_SCAN_MS_MIN,
3647 CFG_CHANNEL_PREDICTION_FULL_SCAN_MS_MAX),
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05303648
3649 REG_VARIABLE(CFG_ADAPTIVE_PNOSCAN_DWELL_MODE_NAME,
3650 WLAN_PARAM_Integer,
3651 struct hdd_config, pnoscan_adaptive_dwell_mode,
3652 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3653 CFG_ADAPTIVE_PNOSCAN_DWELL_MODE_DEFAULT,
3654 CFG_ADAPTIVE_PNOSCAN_DWELL_MODE_MIN,
3655 CFG_ADAPTIVE_PNOSCAN_DWELL_MODE_MAX),
Varun Reddy Yeturub43fda12015-09-10 18:16:21 -07003656#endif
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003657
3658 REG_VARIABLE(CFG_TX_CHAIN_MASK_CCK, WLAN_PARAM_Integer,
3659 struct hdd_config, tx_chain_mask_cck,
3660 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3661 CFG_TX_CHAIN_MASK_CCK_DEFAULT,
3662 CFG_TX_CHAIN_MASK_CCK_MIN,
3663 CFG_TX_CHAIN_MASK_CCK_MAX),
3664
3665 REG_VARIABLE(CFG_TX_CHAIN_MASK_1SS, WLAN_PARAM_Integer,
3666 struct hdd_config, tx_chain_mask_1ss,
3667 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3668 CFG_TX_CHAIN_MASK_1SS_DEFAULT,
3669 CFG_TX_CHAIN_MASK_1SS_MIN,
3670 CFG_TX_CHAIN_MASK_1SS_MAX),
3671
Jeff Johnsona89e25d2017-02-24 12:25:07 -08003672 REG_VARIABLE(CFG_ENABLE_SMART_CHAINMASK_NAME, WLAN_PARAM_Integer,
3673 struct hdd_config, smart_chainmask_enabled,
3674 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3675 CFG_ENABLE_SMART_CHAINMASK_DEFAULT,
3676 CFG_ENABLE_SMART_CHAINMASK_MIN,
3677 CFG_ENABLE_SMART_CHAINMASK_MAX),
3678
3679 REG_VARIABLE(CFG_ENABLE_COEX_ALT_CHAINMASK_NAME, WLAN_PARAM_Integer,
3680 struct hdd_config, alternative_chainmask_enabled,
3681 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3682 CFG_ENABLE_COEX_ALT_CHAINMASK_DEFAULT,
3683 CFG_ENABLE_COEX_ALT_CHAINMASK_MIN,
3684 CFG_ENABLE_COEX_ALT_CHAINMASK_MAX),
3685
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003686 REG_VARIABLE(CFG_SELF_GEN_FRM_PWR, WLAN_PARAM_Integer,
3687 struct hdd_config, self_gen_frm_pwr,
3688 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3689 CFG_SELF_GEN_FRM_PWR_DEFAULT,
3690 CFG_SELF_GEN_FRM_PWR_MIN,
3691 CFG_SELF_GEN_FRM_PWR_MAX),
3692
Varun Reddy Yeturu05186292015-09-28 17:12:33 -07003693 REG_VARIABLE(CFG_EARLY_STOP_SCAN_ENABLE, WLAN_PARAM_Integer,
3694 struct hdd_config, early_stop_scan_enable,
3695 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3696 CFG_EARLY_STOP_SCAN_ENABLE_DEFAULT,
3697 CFG_EARLY_STOP_SCAN_ENABLE_MIN,
3698 CFG_EARLY_STOP_SCAN_ENABLE_MAX),
3699
3700 REG_VARIABLE(CFG_EARLY_STOP_SCAN_MIN_THRESHOLD,
3701 WLAN_PARAM_SignedInteger, struct hdd_config,
3702 early_stop_scan_min_threshold,
3703 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3704 CFG_EARLY_STOP_SCAN_MIN_THRESHOLD_DEFAULT,
3705 CFG_EARLY_STOP_SCAN_MIN_THRESHOLD_MIN,
3706 CFG_EARLY_STOP_SCAN_MIN_THRESHOLD_MAX),
3707
3708 REG_VARIABLE(CFG_EARLY_STOP_SCAN_MAX_THRESHOLD,
3709 WLAN_PARAM_SignedInteger, struct hdd_config,
3710 early_stop_scan_max_threshold,
3711 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3712 CFG_EARLY_STOP_SCAN_MAX_THRESHOLD_DEFAULT,
3713 CFG_EARLY_STOP_SCAN_MAX_THRESHOLD_MIN,
3714 CFG_EARLY_STOP_SCAN_MAX_THRESHOLD_MAX),
3715
Varun Reddy Yeturu044bda22015-11-21 22:03:40 -08003716 REG_VARIABLE(CFG_FIRST_SCAN_BUCKET_THRESHOLD_NAME,
3717 WLAN_PARAM_SignedInteger,
3718 struct hdd_config, first_scan_bucket_threshold,
3719 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3720 CFG_FIRST_SCAN_BUCKET_THRESHOLD_DEFAULT,
3721 CFG_FIRST_SCAN_BUCKET_THRESHOLD_MIN,
3722 CFG_FIRST_SCAN_BUCKET_THRESHOLD_MAX),
3723
Ravi Joshi742495d2015-11-09 18:56:53 -08003724#ifdef FEATURE_LFR_SUBNET_DETECTION
3725 REG_VARIABLE(CFG_ENABLE_LFR_SUBNET_DETECTION, WLAN_PARAM_Integer,
3726 struct hdd_config, enable_lfr_subnet_detection,
3727 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3728 CFG_ENABLE_LFR_SUBNET_DEFAULT,
3729 CFG_ENABLE_LFR_SUBNET_MIN,
3730 CFG_ENABLE_LFR_SUBNET_MAX),
3731#endif
Sandeep Puligilla93a29ec2016-02-12 16:10:56 -08003732 REG_VARIABLE(CFG_OBSS_HT40_SCAN_ACTIVE_DWELL_TIME_NAME,
3733 WLAN_PARAM_Integer,
3734 struct hdd_config, obss_active_dwelltime,
3735 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3736 CFG_OBSS_HT40_SCAN_ACTIVE_DWELL_TIME_DEFAULT,
3737 CFG_OBSS_HT40_SCAN_ACTIVE_DWELL_TIME_MIN,
3738 CFG_OBSS_HT40_SCAN_ACTIVE_DWELL_TIME_MAX),
3739
3740 REG_VARIABLE(CFG_OBSS_HT40_SCAN_PASSIVE_DWELL_TIME_NAME,
3741 WLAN_PARAM_Integer,
3742 struct hdd_config, obss_passive_dwelltime,
3743 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3744 CFG_OBSS_HT40_SCAN_PASSIVE_DWELL_TIME_DEFAULT,
3745 CFG_OBSS_HT40_SCAN_PASSIVE_DWELL_TIME_MIN,
3746 CFG_OBSS_HT40_SCAN_PASSIVE_DWELL_TIME_MAX),
3747
3748 REG_VARIABLE(CFG_OBSS_HT40_SCAN_WIDTH_TRIGGER_INTERVAL_NAME,
3749 WLAN_PARAM_Integer,
3750 struct hdd_config, obss_width_trigger_interval,
3751 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3752 CFG_OBSS_HT40_SCAN_WIDTH_TRIGGER_INTERVAL_DEFAULT,
3753 CFG_OBSS_HT40_SCAN_WIDTH_TRIGGER_INTERVAL_MIN,
3754 CFG_OBSS_HT40_SCAN_WIDTH_TRIGGER_INTERVAL_MAX),
Deepak Dhamdhere68929ec2015-08-05 15:16:35 -07003755
3756 REG_VARIABLE(CFG_INFORM_BSS_RSSI_RAW_NAME, WLAN_PARAM_Integer,
3757 struct hdd_config, inform_bss_rssi_raw,
3758 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3759 CFG_INFORM_BSS_RSSI_RAW_DEFAULT,
3760 CFG_INFORM_BSS_RSSI_RAW_MIN,
3761 CFG_INFORM_BSS_RSSI_RAW_MAX),
Tushnim Bhattacharyya24e12a62015-10-12 14:51:56 -07003762
Manikandan Mohan976e7562016-03-15 16:33:31 -07003763#ifdef WLAN_FEATURE_TSF
3764 REG_VARIABLE(CFG_SET_TSF_GPIO_PIN_NAME, WLAN_PARAM_Integer,
3765 struct hdd_config, tsf_gpio_pin,
3766 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3767 CFG_SET_TSF_GPIO_PIN_DEFAULT,
3768 CFG_SET_TSF_GPIO_PIN_MIN,
3769 CFG_SET_TSF_GPIO_PIN_MAX),
3770#endif
3771
Gupta, Kapilc68ad462016-02-01 19:17:23 +05303772 REG_VARIABLE(CFG_ROAM_DENSE_TRAFFIC_THRESHOLD, WLAN_PARAM_Integer,
3773 struct hdd_config, roam_dense_traffic_thresh,
3774 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3775 CFG_ROAM_DENSE_TRAFFIC_THRESHOLD_DEFAULT,
3776 CFG_ROAM_DENSE_TRAFFIC_THRESHOLD_MIN,
3777 CFG_ROAM_DENSE_TRAFFIC_THRESHOLD_MAX),
3778
3779 REG_VARIABLE(CFG_ROAM_DENSE_RSSI_THRE_OFFSET, WLAN_PARAM_Integer,
3780 struct hdd_config, roam_dense_rssi_thresh_offset,
3781 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3782 CFG_ROAM_DENSE_RSSI_THRE_OFFSET_DEFAULT,
3783 CFG_ROAM_DENSE_RSSI_THRE_OFFSET_MIN,
3784 CFG_ROAM_DENSE_RSSI_THRE_OFFSET_MAX),
3785
Abhishek Singh165bc602016-03-21 12:43:00 +05303786 REG_VARIABLE(CFG_IGNORE_PEER_HT_MODE_NAME, WLAN_PARAM_Integer,
3787 struct hdd_config, ignore_peer_ht_opmode,
3788 VAR_FLAGS_OPTIONAL |
3789 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3790 CFG_IGNORE_PEER_HT_MODE_DEFAULT,
3791 CFG_IGNORE_PEER_HT_MODE_MIN,
3792 CFG_IGNORE_PEER_HT_MODE_MAX),
3793
Gupta, Kapilc68ad462016-02-01 19:17:23 +05303794 REG_VARIABLE(CFG_ROAM_DENSE_MIN_APS, WLAN_PARAM_Integer,
3795 struct hdd_config, roam_dense_min_aps,
3796 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3797 CFG_ROAM_DENSE_MIN_APS_DEFAULT,
3798 CFG_ROAM_DENSE_MIN_APS_MIN,
3799 CFG_ROAM_DENSE_MIN_APS_MAX),
3800
Abhishek Singh5ea86532016-04-27 14:10:53 +05303801 REG_VARIABLE(CFG_ENABLE_FATAL_EVENT_TRIGGER, WLAN_PARAM_Integer,
3802 struct hdd_config, enable_fatal_event,
3803 VAR_FLAGS_OPTIONAL |
3804 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3805 CFG_ENABLE_FATAL_EVENT_TRIGGER_DEFAULT,
3806 CFG_ENABLE_FATAL_EVENT_TRIGGER_MIN,
3807 CFG_ENABLE_FATAL_EVENT_TRIGGER_MAX),
3808
Abhishek Singh10ecf582016-05-04 17:48:59 +05303809 REG_VARIABLE(CFG_ENABLE_EDCA_INI_NAME, WLAN_PARAM_Integer,
3810 struct hdd_config, enable_edca_params,
3811 VAR_FLAGS_OPTIONAL |
3812 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3813 CFG_ENABLE_EDCA_INI_DEFAULT,
3814 CFG_ENABLE_EDCA_INI_MIN,
3815 CFG_ENABLE_EDCA_INI_MAX),
3816
Agrawal Ashishb2d1a452016-05-05 12:23:58 +05303817 REG_VARIABLE(CFG_ENABLE_GO_CTS2SELF_FOR_STA, WLAN_PARAM_Integer,
3818 struct hdd_config, enable_go_cts2self_for_sta,
3819 VAR_FLAGS_OPTIONAL |
3820 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3821 CFG_ENABLE_GO_CTS2SELF_FOR_STA_DEFAULT,
3822 CFG_ENABLE_GO_CTS2SELF_FOR_STA_MIN,
3823 CFG_ENABLE_GO_CTS2SELF_FOR_STA_MAX),
3824
Abhishek Singh10ecf582016-05-04 17:48:59 +05303825 REG_VARIABLE(CFG_EDCA_VO_CWMIN_VALUE_NAME, WLAN_PARAM_Integer,
3826 struct hdd_config, edca_vo_cwmin,
3827 VAR_FLAGS_OPTIONAL |
3828 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3829 CFG_EDCA_VO_CWMIN_VALUE_DEFAULT,
3830 CFG_EDCA_VO_CWMIN_VALUE_MIN,
3831 CFG_EDCA_VO_CWMIN_VALUE_MAX),
3832
3833 REG_VARIABLE(CFG_EDCA_VI_CWMIN_VALUE_NAME, WLAN_PARAM_Integer,
3834 struct hdd_config, edca_vi_cwmin,
3835 VAR_FLAGS_OPTIONAL |
3836 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3837 CFG_EDCA_VI_CWMIN_VALUE_DEFAULT,
3838 CFG_EDCA_VI_CWMIN_VALUE_MIN,
3839 CFG_EDCA_VI_CWMIN_VALUE_MAX),
3840
3841 REG_VARIABLE(CFG_EDCA_BK_CWMIN_VALUE_NAME, WLAN_PARAM_Integer,
3842 struct hdd_config, edca_bk_cwmin,
3843 VAR_FLAGS_OPTIONAL |
3844 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3845 CFG_EDCA_BK_CWMIN_VALUE_DEFAULT,
3846 CFG_EDCA_BK_CWMIN_VALUE_MIN,
3847 CFG_EDCA_BK_CWMIN_VALUE_MAX),
3848
3849 REG_VARIABLE(CFG_EDCA_BE_CWMIN_VALUE_NAME, WLAN_PARAM_Integer,
3850 struct hdd_config, edca_be_cwmin,
3851 VAR_FLAGS_OPTIONAL |
3852 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3853 CFG_EDCA_BE_CWMIN_VALUE_DEFAULT,
3854 CFG_EDCA_BE_CWMIN_VALUE_MIN,
3855 CFG_EDCA_BE_CWMIN_VALUE_MAX),
3856
3857 REG_VARIABLE(CFG_EDCA_VO_CWMAX_VALUE_NAME, WLAN_PARAM_Integer,
3858 struct hdd_config, edca_vo_cwmax,
3859 VAR_FLAGS_OPTIONAL |
3860 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3861 CFG_EDCA_VO_CWMAX_VALUE_DEFAULT,
3862 CFG_EDCA_VO_CWMAX_VALUE_MIN,
3863 CFG_EDCA_VO_CWMAX_VALUE_MAX),
3864
3865 REG_VARIABLE(CFG_EDCA_VI_CWMAX_VALUE_NAME, WLAN_PARAM_Integer,
3866 struct hdd_config, edca_vi_cwmax,
3867 VAR_FLAGS_OPTIONAL |
3868 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3869 CFG_EDCA_VI_CWMAX_VALUE_DEFAULT,
3870 CFG_EDCA_VI_CWMAX_VALUE_MIN,
3871 CFG_EDCA_VI_CWMAX_VALUE_MAX),
3872
3873 REG_VARIABLE(CFG_EDCA_BK_CWMAX_VALUE_NAME, WLAN_PARAM_Integer,
3874 struct hdd_config, edca_bk_cwmax,
3875 VAR_FLAGS_OPTIONAL |
3876 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3877 CFG_EDCA_BK_CWMAX_VALUE_DEFAULT,
3878 CFG_EDCA_BK_CWMAX_VALUE_MIN,
3879 CFG_EDCA_BK_CWMAX_VALUE_MAX),
3880
3881 REG_VARIABLE(CFG_EDCA_BE_CWMAX_VALUE_NAME, WLAN_PARAM_Integer,
3882 struct hdd_config, edca_be_cwmax,
3883 VAR_FLAGS_OPTIONAL |
3884 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3885 CFG_EDCA_BE_CWMAX_VALUE_DEFAULT,
3886 CFG_EDCA_BE_CWMAX_VALUE_MIN,
3887 CFG_EDCA_BE_CWMAX_VALUE_MAX),
3888
3889 REG_VARIABLE(CFG_EDCA_VO_AIFS_VALUE_NAME, WLAN_PARAM_Integer,
3890 struct hdd_config, edca_vo_aifs,
3891 VAR_FLAGS_OPTIONAL |
3892 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3893 CFG_EDCA_VO_AIFS_VALUE_DEFAULT,
3894 CFG_EDCA_VO_AIFS_VALUE_MIN,
3895 CFG_EDCA_VO_AIFS_VALUE_MAX),
3896
3897 REG_VARIABLE(CFG_EDCA_VI_AIFS_VALUE_NAME, WLAN_PARAM_Integer,
3898 struct hdd_config, edca_vi_aifs,
3899 VAR_FLAGS_OPTIONAL |
3900 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3901 CFG_EDCA_VI_AIFS_VALUE_DEFAULT,
3902 CFG_EDCA_VI_AIFS_VALUE_MIN,
3903 CFG_EDCA_VI_AIFS_VALUE_MAX),
3904
3905 REG_VARIABLE(CFG_EDCA_BK_AIFS_VALUE_NAME, WLAN_PARAM_Integer,
3906 struct hdd_config, edca_bk_aifs,
3907 VAR_FLAGS_OPTIONAL |
3908 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3909 CFG_EDCA_BK_AIFS_VALUE_DEFAULT,
3910 CFG_EDCA_BK_AIFS_VALUE_MIN,
3911 CFG_EDCA_BK_AIFS_VALUE_MAX),
3912
3913 REG_VARIABLE(CFG_EDCA_BE_AIFS_VALUE_NAME, WLAN_PARAM_Integer,
3914 struct hdd_config, edca_be_aifs,
3915 VAR_FLAGS_OPTIONAL |
3916 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3917 CFG_EDCA_BE_AIFS_VALUE_DEFAULT,
3918 CFG_EDCA_BE_AIFS_VALUE_MIN,
3919 CFG_EDCA_BE_AIFS_VALUE_MAX),
gbian62edd7e2017-03-07 13:12:13 +08003920
3921 REG_VARIABLE_STRING(CFG_ENABLE_TX_SCHED_WRR_VO_NAME,
3922 WLAN_PARAM_String,
3923 struct hdd_config, tx_sched_wrr_vo,
3924 VAR_FLAGS_OPTIONAL,
3925 (void *) CFG_ENABLE_TX_SCHED_WRR_VO_DEFAULT),
3926
3927 REG_VARIABLE_STRING(CFG_ENABLE_TX_SCHED_WRR_VI_NAME,
3928 WLAN_PARAM_String,
3929 struct hdd_config, tx_sched_wrr_vi,
3930 VAR_FLAGS_OPTIONAL,
3931 (void *) CFG_ENABLE_TX_SCHED_WRR_VI_DEFAULT),
3932
3933 REG_VARIABLE_STRING(CFG_ENABLE_TX_SCHED_WRR_BE_NAME,
3934 WLAN_PARAM_String,
3935 struct hdd_config, tx_sched_wrr_be,
3936 VAR_FLAGS_OPTIONAL,
3937 (void *) CFG_ENABLE_TX_SCHED_WRR_BE_DEFAULT),
3938
3939 REG_VARIABLE_STRING(CFG_ENABLE_TX_SCHED_WRR_BK_NAME,
3940 WLAN_PARAM_String,
3941 struct hdd_config, tx_sched_wrr_bk,
3942 VAR_FLAGS_OPTIONAL,
3943 (void *) CFG_ENABLE_TX_SCHED_WRR_BK_DEFAULT),
3944
Deepak Dhamdhere3385d752016-05-25 20:36:47 -07003945#ifdef WLAN_FEATURE_NAN_DATAPATH
3946 REG_VARIABLE(CFG_ENABLE_NAN_DATAPATH_NAME, WLAN_PARAM_Integer,
3947 struct hdd_config, enable_nan_datapath,
3948 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3949 CFG_ENABLE_NAN_DATAPATH_DEFAULT,
3950 CFG_ENABLE_NAN_DATAPATH_MIN,
3951 CFG_ENABLE_NAN_DATAPATH_MAX),
3952
3953 REG_VARIABLE(CFG_ENABLE_NAN_NDI_CHANNEL_NAME, WLAN_PARAM_Integer,
3954 struct hdd_config, nan_datapath_ndi_channel,
3955 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3956 CFG_ENABLE_NAN_NDI_CHANNEL_DEFAULT,
3957 CFG_ENABLE_NAN_NDI_CHANNEL_MIN,
3958 CFG_ENABLE_NAN_NDI_CHANNEL_MAX),
3959#endif
Kapil Gupta0ed58dc2016-04-22 15:35:26 +05303960 REG_VARIABLE(CFG_CREATE_BUG_REPORT_FOR_SCAN, WLAN_PARAM_Integer,
3961 struct hdd_config, bug_report_for_no_scan_results,
3962 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3963 CFG_CREATE_BUG_REPORT_FOR_SCAN_DEFAULT,
3964 CFG_CREATE_BUG_REPORT_FOR_SCAN_DISABLE,
3965 CFG_CREATE_BUG_REPORT_FOR_SCAN_ENABLE),
Abhishek Singh5ea86532016-04-27 14:10:53 +05303966
Kapil Gupta8878ad92017-02-13 11:56:04 +05303967 REG_VARIABLE(CFG_USER_AUTO_CHANNEL_SELECTION, WLAN_PARAM_Integer,
3968 struct hdd_config, vendor_acs_support,
3969 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3970 CFG_USER_AUTO_CHANNEL_SELECTION_DEFAULT,
3971 CFG_USER_AUTO_CHANNEL_SELECTION_DISABLE,
3972 CFG_USER_AUTO_CHANNEL_SELECTION_ENABLE),
3973
3974 REG_VARIABLE(CFG_USER_ACS_DFS_LTE, WLAN_PARAM_Integer,
3975 struct hdd_config, acs_support_for_dfs_ltecoex,
3976 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3977 CFG_USER_ACS_DFS_LTE_DEFAULT,
3978 CFG_USER_ACS_DFS_LTE_DISABLE,
3979 CFG_USER_ACS_DFS_LTE_ENABLE),
3980
Nirav Shahcc1f1ae2016-04-26 11:41:29 +05303981 REG_VARIABLE(CFG_ENABLE_DP_TRACE, WLAN_PARAM_Integer,
3982 struct hdd_config, enable_dp_trace,
3983 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3984 CFG_ENABLE_DP_TRACE_DEFAULT,
3985 CFG_ENABLE_DP_TRACE_MIN,
3986 CFG_ENABLE_DP_TRACE_MAX),
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05303987
3988 REG_VARIABLE(CFG_ADAPTIVE_SCAN_DWELL_MODE_NAME, WLAN_PARAM_Integer,
3989 struct hdd_config, scan_adaptive_dwell_mode,
3990 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3991 CFG_ADAPTIVE_SCAN_DWELL_MODE_DEFAULT,
3992 CFG_ADAPTIVE_SCAN_DWELL_MODE_MIN,
3993 CFG_ADAPTIVE_SCAN_DWELL_MODE_MAX),
3994
3995 REG_VARIABLE(CFG_ADAPTIVE_ROAMSCAN_DWELL_MODE_NAME, WLAN_PARAM_Integer,
3996 struct hdd_config, roamscan_adaptive_dwell_mode,
3997 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3998 CFG_ADAPTIVE_ROAMSCAN_DWELL_MODE_DEFAULT,
3999 CFG_ADAPTIVE_ROAMSCAN_DWELL_MODE_MIN,
4000 CFG_ADAPTIVE_ROAMSCAN_DWELL_MODE_MAX),
4001
4002 REG_VARIABLE(CFG_ADAPTIVE_EXTSCAN_DWELL_MODE_NAME, WLAN_PARAM_Integer,
4003 struct hdd_config, extscan_adaptive_dwell_mode,
4004 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4005 CFG_ADAPTIVE_EXTSCAN_DWELL_MODE_DEFAULT,
4006 CFG_ADAPTIVE_EXTSCAN_DWELL_MODE_MIN,
4007 CFG_ADAPTIVE_EXTSCAN_DWELL_MODE_MAX),
4008
4009 REG_VARIABLE(CFG_ADAPTIVE_DWELL_MODE_ENABLED_NAME, WLAN_PARAM_Integer,
4010 struct hdd_config, adaptive_dwell_mode_enabled,
4011 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4012 CFG_ADAPTIVE_DWELL_MODE_ENABLED_DEFAULT,
4013 CFG_ADAPTIVE_DWELL_MODE_ENABLED_MIN,
4014 CFG_ADAPTIVE_DWELL_MODE_ENABLED_MAX),
4015
4016 REG_VARIABLE(CFG_GLOBAL_ADAPTIVE_DWELL_MODE_NAME, WLAN_PARAM_Integer,
4017 struct hdd_config, global_adapt_dwelltime_mode,
4018 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4019 CFG_GLOBAL_ADAPTIVE_DWELL_MODE_DEFAULT,
4020 CFG_GLOBAL_ADAPTIVE_DWELL_MODE_MIN,
4021 CFG_GLOBAL_ADAPTIVE_DWELL_MODE_MAX),
4022
4023 REG_VARIABLE(CFG_ADAPT_DWELL_LPF_WEIGHT_NAME, WLAN_PARAM_Integer,
4024 struct hdd_config, adapt_dwell_lpf_weight,
4025 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4026 CFG_ADAPT_DWELL_LPF_WEIGHT_DEFAULT,
4027 CFG_ADAPT_DWELL_LPF_WEIGHT_MIN,
4028 CFG_ADAPT_DWELL_LPF_WEIGHT_MAX),
4029
Naveen Rawat64e477e2016-05-20 10:34:56 -07004030 REG_VARIABLE(CFG_SUB_20_CHANNEL_WIDTH_NAME, WLAN_PARAM_Integer,
4031 struct hdd_config, enable_sub_20_channel_width,
4032 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4033 CFG_SUB_20_CHANNEL_WIDTH_DEFAULT,
4034 CFG_SUB_20_CHANNEL_WIDTH_MIN,
4035 CFG_SUB_20_CHANNEL_WIDTH_MAX),
4036
Rajeev Kumar Sirasanagandlaaf474742016-09-06 17:54:50 +05304037 REG_VARIABLE(CFG_TGT_GTX_USR_CFG_NAME, WLAN_PARAM_Integer,
4038 struct hdd_config, tgt_gtx_usr_cfg,
4039 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4040 CFG_TGT_GTX_USR_CFG_DEFAULT,
4041 CFG_TGT_GTX_USR_CFG_MIN,
4042 CFG_TGT_GTX_USR_CFG_MAX),
4043
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05304044 REG_VARIABLE(CFG_ADAPT_DWELL_PASMON_INTVAL_NAME, WLAN_PARAM_Integer,
4045 struct hdd_config, adapt_dwell_passive_mon_intval,
4046 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4047 CFG_ADAPT_DWELL_PASMON_INTVAL_DEFAULT,
4048 CFG_ADAPT_DWELL_PASMON_INTVAL_MIN,
4049 CFG_ADAPT_DWELL_PASMON_INTVAL_MAX),
4050
4051 REG_VARIABLE(CFG_ADAPT_DWELL_WIFI_THRESH_NAME, WLAN_PARAM_Integer,
4052 struct hdd_config, adapt_dwell_wifi_act_threshold,
4053 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4054 CFG_ADAPT_DWELL_WIFI_THRESH_DEFAULT,
4055 CFG_ADAPT_DWELL_WIFI_THRESH_MIN,
4056 CFG_ADAPT_DWELL_WIFI_THRESH_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004057
Nirav Shahbd36b062016-07-18 11:12:59 +05304058 REG_VARIABLE(CFG_RX_MODE_NAME, WLAN_PARAM_Integer,
4059 struct hdd_config, rx_mode,
4060 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4061 CFG_RX_MODE_DEFAULT,
4062 CFG_RX_MODE_MIN,
4063 CFG_RX_MODE_MAX),
4064
4065 REG_VARIABLE_STRING(CFG_RPS_RX_QUEUE_CPU_MAP_LIST_NAME,
4066 WLAN_PARAM_String,
4067 struct hdd_config, cpu_map_list,
4068 VAR_FLAGS_OPTIONAL,
4069 (void *)CFG_RPS_RX_QUEUE_CPU_MAP_LIST_DEFAULT),
4070
Amar Singhal18517882016-08-08 12:26:20 -07004071 REG_VARIABLE(CFG_INDOOR_CHANNEL_SUPPORT_NAME,
4072 WLAN_PARAM_Integer,
4073 struct hdd_config, indoor_channel_support,
4074 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4075 CFG_INDOOR_CHANNEL_SUPPORT_DEFAULT,
4076 CFG_INDOOR_CHANNEL_SUPPORT_MIN,
4077 CFG_INDOOR_CHANNEL_SUPPORT_MAX),
4078
Yingying Tangb4832f72016-10-20 13:44:55 +08004079 REG_VARIABLE(CFG_SAP_TX_LEAKAGE_THRESHOLD_NAME,
4080 WLAN_PARAM_Integer,
4081 struct hdd_config, sap_tx_leakage_threshold,
4082 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4083 CFG_SAP_TX_LEAKAGE_THRESHOLD_DEFAULT,
4084 CFG_SAP_TX_LEAKAGE_THRESHOLD_MIN,
4085 CFG_SAP_TX_LEAKAGE_THRESHOLD_MAX),
4086
Mukul Sharmaf7d62e12016-09-03 15:16:22 +05304087 REG_VARIABLE(CFG_BUG_ON_REINIT_FAILURE_NAME, WLAN_PARAM_Integer,
4088 struct hdd_config, bug_on_reinit_failure,
4089 VAR_FLAGS_OPTIONAL |
4090 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4091 CFG_BUG_ON_REINIT_FAILURE_DEFAULT,
4092 CFG_BUG_ON_REINIT_FAILURE_MIN,
4093 CFG_BUG_ON_REINIT_FAILURE_MAX),
4094
Rajeev Kumar Sirasanagandlab79b5462016-09-06 18:33:17 +05304095 REG_VARIABLE(CFG_SAP_FORCE_11N_FOR_11AC_NAME, WLAN_PARAM_Integer,
4096 struct hdd_config, sap_force_11n_for_11ac,
4097 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4098 CFG_SAP_FORCE_11N_FOR_11AC_DEFAULT,
4099 CFG_SAP_FORCE_11N_FOR_11AC_MIN,
4100 CFG_SAP_FORCE_11N_FOR_11AC_MAX),
4101
Arun Khandavallifae92942016-08-01 13:31:08 +05304102 REG_VARIABLE(CFG_INTERFACE_CHANGE_WAIT_NAME, WLAN_PARAM_Integer,
4103 struct hdd_config, iface_change_wait_time,
4104 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
4105 CFG_INTERFACE_CHANGE_WAIT_DEFAULT,
4106 CFG_INTERFACE_CHANGE_WAIT_MIN,
4107 CFG_INTERFACE_CHANGE_WAIT_MAX),
Ravi Joshibb8d4512016-08-22 10:14:52 -07004108
4109 REG_VARIABLE(CFG_FILTER_MULTICAST_REPLAY_NAME,
4110 WLAN_PARAM_Integer,
4111 struct hdd_config, multicast_replay_filter,
4112 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4113 CFG_FILTER_MULTICAST_REPLAY_DEFAULT,
4114 CFG_FILTER_MULTICAST_REPLAY_MIN,
4115 CFG_FILTER_MULTICAST_REPLAY_MAX),
Manjeet Singhe7ecb7c2016-09-03 12:34:53 +05304116
4117 REG_VARIABLE(CFG_SIFS_BURST_DURATION_NAME, WLAN_PARAM_Integer,
4118 struct hdd_config, sifs_burst_duration,
4119 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4120 CFG_SIFS_BURST_DURATION_DEFAULT,
4121 CFG_SIFS_BURST_DURATION_MIN,
4122 CFG_SIFS_BURST_DURATION_MAX),
Selvaraj, Sridharebda0f22016-08-29 16:05:23 +05304123 REG_VARIABLE(CFG_OPTIMIZE_CA_EVENT_NAME, WLAN_PARAM_Integer,
4124 struct hdd_config, goptimize_chan_avoid_event,
4125 VAR_FLAGS_OPTIONAL |
4126 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4127 CFG_OPTIMIZE_CA_EVENT_DEFAULT,
4128 CFG_OPTIMIZE_CA_EVENT_DISABLE,
4129 CFG_OPTIMIZE_CA_EVENT_ENABLE),
Padma, Santhosh Kumara7119672016-08-16 16:05:14 +05304130
4131 REG_VARIABLE(CFG_TX_AGGREGATION_SIZE, WLAN_PARAM_Integer,
4132 struct hdd_config, tx_aggregation_size,
4133 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4134 CFG_TX_AGGREGATION_SIZE_DEFAULT,
4135 CFG_TX_AGGREGATION_SIZE_MIN,
4136 CFG_TX_AGGREGATION_SIZE_MAX),
4137
4138 REG_VARIABLE(CFG_RX_AGGREGATION_SIZE, WLAN_PARAM_Integer,
4139 struct hdd_config, rx_aggregation_size,
4140 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4141 CFG_RX_AGGREGATION_SIZE_DEFAULT,
4142 CFG_RX_AGGREGATION_SIZE_MIN,
4143 CFG_RX_AGGREGATION_SIZE_MAX),
Agrawal, Ashish4e5fa1c2016-09-21 19:03:43 +05304144 REG_VARIABLE(CFG_SAP_MAX_INACTIVITY_OVERRIDE_NAME, WLAN_PARAM_Integer,
4145 struct hdd_config, sap_max_inactivity_override,
4146 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4147 CFG_SAP_MAX_INACTIVITY_OVERRIDE_DEFAULT,
4148 CFG_SAP_MAX_INACTIVITY_OVERRIDE_MIN,
Sandeep Puligillaafa52892016-10-26 19:03:16 -07004149 CFG_SAP_MAX_INACTIVITY_OVERRIDE_MAX),
4150 REG_VARIABLE(CFG_CRASH_FW_TIMEOUT_NAME, WLAN_PARAM_Integer,
4151 struct hdd_config, fw_timeout_crash,
4152 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4153 CFG_CRASH_FW_TIMEOUT_DEFAULT,
4154 CFG_CRASH_FW_TIMEOUT_DISABLE,
4155 CFG_CRASH_FW_TIMEOUT_ENABLE),
Dustin Browncd756942016-11-23 12:25:33 -08004156 REG_VARIABLE(CFG_RX_WAKELOCK_TIMEOUT_NAME, WLAN_PARAM_Integer,
4157 struct hdd_config, rx_wakelock_timeout,
4158 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4159 CFG_RX_WAKELOCK_TIMEOUT_DEFAULT,
4160 CFG_RX_WAKELOCK_TIMEOUT_MIN,
Anurag Chouhan7c01cc42016-12-16 21:33:43 +05304161 CFG_RX_WAKELOCK_TIMEOUT_MAX),
4162 REG_VARIABLE(CFG_MAX_SCHED_SCAN_PLAN_INT_NAME, WLAN_PARAM_Integer,
4163 struct hdd_config, max_sched_scan_plan_interval,
4164 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4165 CFG_MAX_SCHED_SCAN_PLAN_INT_DEFAULT,
4166 CFG_MAX_SCHED_SCAN_PLAN_INT_MIN,
4167 CFG_MAX_SCHED_SCAN_PLAN_INT_MAX),
4168 REG_VARIABLE(CFG_MAX_SCHED_SCAN_PLAN_ITRNS_NAME, WLAN_PARAM_Integer,
4169 struct hdd_config, max_sched_scan_plan_iterations,
4170 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4171 CFG_MAX_SCHED_SCAN_PLAN_ITRNS_DEFAULT,
4172 CFG_MAX_SCHED_SCAN_PLAN_ITRNS_MIN,
4173 CFG_MAX_SCHED_SCAN_PLAN_ITRNS_MAX),
Kapil Gupta5cda2252016-12-29 18:44:26 +05304174
Jeff Johnson441e1f72017-02-07 08:50:49 -08004175 REG_VARIABLE(CFG_STANDARD_WEXT_CONTROL_NAME, WLAN_PARAM_Integer,
4176 struct hdd_config, standard_wext_control,
4177 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4178 CFG_STANDARD_WEXT_CONTROL_DEFAULT,
4179 CFG_STANDARD_WEXT_CONTROL_MIN,
4180 CFG_STANDARD_WEXT_CONTROL_MAX),
4181 REG_VARIABLE(CFG_PRIVATE_WEXT_CONTROL_NAME, WLAN_PARAM_Integer,
4182 struct hdd_config, private_wext_control,
4183 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4184 CFG_PRIVATE_WEXT_CONTROL_DEFAULT,
4185 CFG_PRIVATE_WEXT_CONTROL_MIN,
4186 CFG_PRIVATE_WEXT_CONTROL_MAX),
Kapil Gupta5cda2252016-12-29 18:44:26 +05304187
Arun Khandavallicc544b32017-01-30 19:52:16 +05304188 REG_VARIABLE(CFG_SAP_INTERNAL_RESTART_NAME, WLAN_PARAM_Integer,
4189 struct hdd_config, sap_internal_restart,
4190 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4191 CFG_SAP_INTERNAL_RESTART_DEFAULT,
4192 CFG_SAP_INTERNAL_RESTART_MIN,
4193 CFG_SAP_INTERNAL_RESTART_MAX),
Srinivas Girigowda70e169a2017-03-07 23:55:57 -08004194
Kapil Gupta5cda2252016-12-29 18:44:26 +05304195 REG_VARIABLE(CFG_PER_ROAM_ENABLE_NAME, WLAN_PARAM_Integer,
4196 struct hdd_config, is_per_roam_enabled,
4197 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4198 CFG_PER_ROAM_ENABLE_DEFAULT,
4199 CFG_PER_ROAM_ENABLE_MIN,
4200 CFG_PER_ROAM_ENABLE_MAX),
4201
4202 REG_VARIABLE(CFG_PER_ROAM_CONFIG_HIGH_RATE_TH_NAME, WLAN_PARAM_Integer,
4203 struct hdd_config, per_roam_high_rate_threshold,
4204 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4205 CFG_PER_ROAM_CONFIG_HIGH_RATE_TH_DEFAULT,
4206 CFG_PER_ROAM_CONFIG_HIGH_RATE_TH_MIN,
4207 CFG_PER_ROAM_CONFIG_HIGH_RATE_TH_MAX),
4208
4209 REG_VARIABLE(CFG_PER_ROAM_CONFIG_LOW_RATE_TH_NAME, WLAN_PARAM_Integer,
4210 struct hdd_config, per_roam_low_rate_threshold,
4211 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4212 CFG_PER_ROAM_CONFIG_LOW_RATE_TH_DEFAULT,
4213 CFG_PER_ROAM_CONFIG_LOW_RATE_TH_MIN,
4214 CFG_PER_ROAM_CONFIG_LOW_RATE_TH_MAX),
4215
4216 REG_VARIABLE(CFG_PER_ROAM_CONFIG_RATE_TH_PERCENT_NAME,
4217 WLAN_PARAM_Integer, struct hdd_config, per_roam_th_percent,
4218 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4219 CFG_PER_ROAM_CONFIG_RATE_TH_PERCENT_DEFAULT,
4220 CFG_PER_ROAM_CONFIG_RATE_TH_PERCENT_MIN,
4221 CFG_PER_ROAM_CONFIG_RATE_TH_PERCENT_MAX),
4222
4223 REG_VARIABLE(CFG_PER_ROAM_REST_TIME_NAME, WLAN_PARAM_Integer,
4224 struct hdd_config, per_roam_rest_time,
4225 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4226 CFG_PER_ROAM_REST_TIME_DEFAULT,
4227 CFG_PER_ROAM_REST_TIME_MIN,
4228 CFG_PER_ROAM_REST_TIME_MAX),
Kapil Gupta957827b2017-02-13 15:47:04 +05304229
4230 REG_VARIABLE(CFG_PER_ROAM_MONITOR_TIME, WLAN_PARAM_Integer,
4231 struct hdd_config, per_roam_mon_time,
4232 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4233 CFG_PER_ROAM_MONTIOR_TIME_DEFAULT,
4234 CFG_PER_ROAM_MONITOR_TIME_MIN,
4235 CFG_PER_ROAM_MONITOR_TIME_MAX),
4236
Hanumanth Reddy Pothulae87621b2017-04-12 20:53:35 +05304237 REG_VARIABLE(CFG_ACTIVE_UC_BPF_MODE_NAME, WLAN_PARAM_Integer,
4238 struct hdd_config, active_uc_bpf_mode,
Dustin Brown13995f02017-01-12 15:38:42 -08004239 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
Hanumanth Reddy Pothulae87621b2017-04-12 20:53:35 +05304240 CFG_ACTIVE_UC_BPF_MODE_DEFAULT,
4241 CFG_ACTIVE_UC_BPF_MODE_MIN,
4242 CFG_ACTIVE_UC_BPF_MODE_MAX),
4243
4244 REG_VARIABLE(CFG_ACTIVE_MC_BC_BPF_MODE_NAME, WLAN_PARAM_Integer,
4245 struct hdd_config, active_mc_bc_bpf_mode,
4246 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4247 CFG_ACTIVE_MC_BC_BPF_MODE_DEFAULT,
4248 CFG_ACTIVE_MC_BC_BPF_MODE_MIN,
4249 CFG_ACTIVE_MC_BC_BPF_MODE_MAX),
4250
Selvaraj, Sridhar4f684bb2017-01-19 15:59:23 +05304251 REG_VARIABLE(CFG_ENABLE_BCAST_PROBE_RESP_NAME, WLAN_PARAM_Integer,
4252 struct hdd_config, enable_bcast_probe_rsp,
4253 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4254 CFG_ENABLE_BCAST_PROBE_RESP_DEFAULT,
4255 CFG_ENABLE_BCAST_PROBE_RESP_MIN,
4256 CFG_ENABLE_BCAST_PROBE_RESP_MAX),
Naveen Rawatb2fc4132017-05-10 20:42:05 -07004257
Krishna Kumaar Natarajan90bb6f12017-03-03 21:05:52 -08004258#ifdef WLAN_FEATURE_11AX
4259 REG_VARIABLE(CFG_ENABLE_UL_MIMO_NAME, WLAN_PARAM_Integer,
4260 struct hdd_config, enable_ul_mimo,
4261 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4262 CFG_ENABLE_UL_MIMO_DEFAULT,
4263 CFG_ENABLE_UL_MIMO_MIN,
4264 CFG_ENABLE_UL_MIMO_MAX),
4265
4266 REG_VARIABLE(CFG_ENABLE_UL_OFDMA_NAME, WLAN_PARAM_Integer,
4267 struct hdd_config, enable_ul_ofdma,
4268 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4269 CFG_ENABLE_UL_OFDMA_DEFAULT,
4270 CFG_ENABLE_UL_OFDMA_MIN,
4271 CFG_ENABLE_UL_OFDMA_MAX),
Manikandan Mohan39accff2017-05-02 16:09:00 -07004272
4273 REG_VARIABLE(CFG_HE_STA_OBSSPD_NAME, WLAN_PARAM_HexInteger,
4274 struct hdd_config, he_sta_obsspd,
4275 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4276 CFG_HE_STA_OBSSPD_DEFAULT,
4277 CFG_HE_STA_OBSSPD_MIN,
4278 CFG_HE_STA_OBSSPD_MAX),
Krishna Kumaar Natarajan90bb6f12017-03-03 21:05:52 -08004279#endif
Dustin Brownab1364a2017-03-27 16:59:08 -07004280
4281 REG_VARIABLE(CFG_L1SS_SLEEP_ALLOWED_NAME, WLAN_PARAM_Integer,
4282 struct hdd_config, l1ss_sleep_allowed,
4283 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4284 CFG_L1SS_SLEEP_ALLOWED_DEFAULT,
4285 CFG_L1SS_SLEEP_ALLOWED_MIN,
4286 CFG_L1SS_SLEEP_ALLOWED_MAX),
4287
Srinivas Girigowda70e169a2017-03-07 23:55:57 -08004288 REG_VARIABLE(CFG_ARP_AC_CATEGORY, WLAN_PARAM_Integer,
4289 struct hdd_config, arp_ac_category,
4290 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4291 CFG_ARP_AC_CATEGORY_DEFAULT,
4292 CFG_ARP_AC_CATEGORY_MIN,
4293 CFG_ARP_AC_CATEGORY_MAX),
Jeff Johnson12a744b2017-04-04 08:19:37 -07004294
4295 REG_VARIABLE(CFG_ENABLE_ANI_NAME, WLAN_PARAM_Integer,
4296 struct hdd_config, ani_enabled,
4297 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4298 CFG_ENABLE_ANI_DEFAULT,
4299 CFG_ENABLE_ANI_MIN,
4300 CFG_ENABLE_ANI_MAX),
Amar Singhal5cccafe2017-02-15 12:42:58 -08004301
Selvaraj, Sridhara521aab2017-03-25 16:42:34 +05304302 REG_VARIABLE(CFG_QCN_IE_SUPPORT_NAME, WLAN_PARAM_Integer,
4303 struct hdd_config, qcn_ie_support,
4304 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4305 CFG_QCN_IE_SUPPORT_DEFAULT,
4306 CFG_QCN_IE_SUPPORT_MIN,
4307 CFG_QCN_IE_SUPPORT_MAX),
Amar Singhal5cccafe2017-02-15 12:42:58 -08004308
Dustin Brown7f939932017-05-18 15:02:17 -07004309 REG_VARIABLE(CFG_TIMER_MULTIPLIER_NAME, WLAN_PARAM_Integer,
4310 struct hdd_config, timer_multiplier,
4311 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4312 CFG_TIMER_MULTIPLIER_DEFAULT,
4313 CFG_TIMER_MULTIPLIER_MIN,
4314 CFG_TIMER_MULTIPLIER_MAX),
4315
Amar Singhal5cccafe2017-02-15 12:42:58 -08004316 REG_VARIABLE(CFG_ENABLE_REG_OFFLOAD_NAME, WLAN_PARAM_Integer,
4317 struct hdd_config, reg_offload_enabled,
4318 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4319 CFG_ENABLE_REG_OFFLOAD_DEFAULT,
4320 CFG_ENABLE_REG_OFFLOAD_MIN,
4321 CFG_ENABLE_REG_OFFLOAD_MAX),
Naveen Rawat2b6e3c92017-03-20 13:59:07 -07004322
Selvaraj, Sridhar97ce6582017-01-20 17:06:34 +05304323 REG_VARIABLE(CFG_FILS_MAX_CHAN_GUARD_TIME_NAME, WLAN_PARAM_Integer,
4324 struct hdd_config, fils_max_chan_guard_time,
4325 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4326 CFG_FILS_MAX_CHAN_GUARD_TIME_DEFAULT,
4327 CFG_FILS_MAX_CHAN_GUARD_TIME_MIN,
4328 CFG_FILS_MAX_CHAN_GUARD_TIME_MAX),
Naveen Rawat2b6e3c92017-03-20 13:59:07 -07004329
Dustin Brown20b6fcf2017-05-17 15:35:17 -07004330 REG_VARIABLE(CFG_SCAN_BACKOFF_MULTIPLIER_NAME, WLAN_PARAM_Integer,
4331 struct hdd_config, scan_backoff_multiplier,
4332 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4333 CFG_SCAN_BACKOFF_MULTIPLIER_DEFAULT,
4334 CFG_SCAN_BACKOFF_MULTIPLIER_MIN,
4335 CFG_SCAN_BACKOFF_MULTIPLIER_MAX),
4336
Jayachandran Sreekumaran68c952c2017-04-24 12:42:03 +05304337 REG_VARIABLE(CFG_EXTERNAL_ACS_POLICY, WLAN_PARAM_Integer,
4338 struct hdd_config, external_acs_policy,
4339 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4340 CFG_EXTERNAL_ACS_POLICY_DEFAULT,
4341 CFG_EXTERNAL_ACS_POLICY_MIN,
4342 CFG_EXTERNAL_ACS_POLICY_MAX),
4343
4344 REG_VARIABLE(CFG_EXTERNAL_ACS_FREQ_BAND, WLAN_PARAM_Integer,
4345 struct hdd_config, external_acs_freq_band,
4346 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4347 CFG_EXTERNAL_ACS_FREQ_BAND_DEFAULT,
4348 CFG_EXTERNAL_ACS_FREQ_BAND_MIN,
4349 CFG_EXTERNAL_ACS_FREQ_BAND_MAX),
Naveen Rawat2b6e3c92017-03-20 13:59:07 -07004350
4351 REG_VARIABLE(CFG_DROPPED_PKT_DISCONNECT_TH_NAME, WLAN_PARAM_Integer,
4352 struct hdd_config, pkt_err_disconn_th,
4353 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4354 CFG_DROPPED_PKT_DISCONNECT_TH_DEFAULT,
4355 CFG_DROPPED_PKT_DISCONNECT_TH_MIN,
4356 CFG_DROPPED_PKT_DISCONNECT_TH_MAX),
Naveen Rawatb2fc4132017-05-10 20:42:05 -07004357
4358 REG_VARIABLE(CFG_FORCE_1X1_NAME, WLAN_PARAM_Integer,
4359 struct hdd_config, is_force_1x1,
4360 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4361 CFG_FORCE_1X1_DEFAULT,
4362 CFG_FORCE_1X1_MIN,
4363 CFG_FORCE_1X1_MAX),
lifeng959a04c2017-05-10 14:21:28 +08004364
4365 REG_VARIABLE(CFG_SET_RTS_FOR_SIFS_BURSTING, WLAN_PARAM_Integer,
4366 struct hdd_config, enable_rts_sifsbursting,
4367 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4368 CFG_SET_RTS_FOR_SIFS_BURSTING_DEFAULT,
4369 CFG_SET_RTS_FOR_SIFS_BURSTING_MIN,
4370 CFG_SET_RTS_FOR_SIFS_BURSTING_MAX),
4371
4372 REG_VARIABLE(CFG_MAX_MPDUS_IN_AMPDU, WLAN_PARAM_Integer,
4373 struct hdd_config, max_mpdus_inampdu,
4374 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4375 CFG_MAX_MPDUS_IN_AMPDU_DEFAULT,
4376 CFG_MAX_MPDUS_IN_AMPDU_MIN,
4377 CFG_MAX_MPDUS_IN_AMPDU_MAX),
lifeng13a89d72017-05-10 14:49:29 +08004378
4379 REG_VARIABLE(CFG_SAP_MAX_MCS_FOR_TX_DATA, WLAN_PARAM_Integer,
4380 struct hdd_config, sap_max_mcs_txdata,
4381 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4382 CFG_SAP_MAX_MCS_FOR_TX_DATA_DEFAULT,
4383 CFG_SAP_MAX_MCS_FOR_TX_DATA_MIN,
4384 CFG_SAP_MAX_MCS_FOR_TX_DATA_MAX),
Arun Khandavallifae92942016-08-01 13:31:08 +05304385};
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004386
Amar Singhal5cccafe2017-02-15 12:42:58 -08004387
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004388/**
4389 * get_next_line() - find and locate the new line pointer
4390 * @str: pointer to string
4391 *
4392 * This function returns a pointer to the character after the occurence
4393 * of a new line character. It also modifies the original string by replacing
4394 * the '\n' character with the null character.
4395 *
4396 * Return: the pointer to the character at new line,
4397 * or NULL if no new line character was found
4398 */
4399static char *get_next_line(char *str)
4400{
4401 char c;
4402
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07004403 if (str == NULL || *str == '\0')
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004404 return NULL;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004405
4406 c = *str;
4407 while (c != '\n' && c != '\0' && c != 0xd) {
4408 str = str + 1;
4409 c = *str;
4410 }
4411
Jeff Johnson68755312017-02-10 11:46:55 -08004412 if (c == '\0')
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004413 return NULL;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004414
Jeff Johnson68755312017-02-10 11:46:55 -08004415 *str = '\0';
Jeff Johnson68755312017-02-10 11:46:55 -08004416 return str + 1;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004417}
4418
4419/** look for space. Ascii values to look are
4420 * 0x09 == horizontal tab
4421 * 0x0a == Newline ("\n")
4422 * 0x0b == vertical tab
4423 * 0x0c == Newpage or feed form.
4424 * 0x0d == carriage return (CR or "\r")
4425 * Null ('\0') should not considered as space.
4426 */
4427#define i_isspace(ch) (((ch) >= 0x09 && (ch) <= 0x0d) || (ch) == ' ')
4428
4429/**
4430 * i_trim() - trims any leading and trailing white spaces
4431 * @str: pointer to string
4432 *
4433 * Return: the pointer of the string
4434 */
4435static char *i_trim(char *str)
4436{
4437 char *ptr;
4438
4439 if (*str == '\0')
4440 return str;
4441
4442 /* Find the first non white-space */
4443 ptr = str;
4444 while (i_isspace(*ptr))
4445 ptr++;
4446
4447 if (*ptr == '\0')
4448 return str;
4449
4450 /* This is the new start of the string */
4451 str = ptr;
4452
4453 /* Find the last non white-space */
4454 ptr += strlen(ptr) - 1;
4455
4456 while (ptr != str && i_isspace(*ptr))
4457 ptr--;
4458
4459 /* Null terminate the following character */
4460 ptr[1] = '\0';
4461
4462 return str;
4463}
4464
4465/* Maximum length of the confgiuration name and value */
4466#define CFG_VALUE_MAX_LEN 256
4467#define CFG_ENTRY_MAX_LEN (32+CFG_VALUE_MAX_LEN)
4468
4469/**
4470 * hdd_cfg_get_config() - get the configuration content
4471 * @reg_table: pointer to configuration table
4472 * @cRegTableEntries: number of the configuration entries
4473 * @ini_struct: pointer to the hdd config knob
4474 * @pHddCtx: pointer to hdd context
4475 * @pBuf: buffer to store the configuration
4476 * @buflen: size of the buffer
4477 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05304478 * Return: QDF_STATUS_SUCCESS if the configuration and buffer size can carry
4479 * the content, otherwise QDF_STATUS_E_RESOURCES
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004480 */
Srinivas Girigowda2fb677c2017-03-25 15:35:34 -07004481static QDF_STATUS hdd_cfg_get_config(struct reg_table_entry *reg_table,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004482 unsigned long cRegTableEntries,
4483 uint8_t *ini_struct,
4484 hdd_context_t *pHddCtx, char *pBuf,
4485 int buflen)
4486{
4487 unsigned int idx;
Srinivas Girigowda2fb677c2017-03-25 15:35:34 -07004488 struct reg_table_entry *pRegEntry = reg_table;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004489 uint32_t value;
4490 char valueStr[CFG_VALUE_MAX_LEN];
4491 char configStr[CFG_ENTRY_MAX_LEN];
4492 char *fmt;
4493 void *pField;
Anurag Chouhan6d760662016-02-20 16:05:43 +05304494 struct qdf_mac_addr *pMacAddr;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004495 char *pCur = pBuf;
4496 int curlen;
4497
4498 /* start with an empty string */
4499 *pCur = '\0';
4500
4501 for (idx = 0; idx < cRegTableEntries; idx++, pRegEntry++) {
4502 pField = ini_struct + pRegEntry->VarOffset;
4503
4504 if ((WLAN_PARAM_Integer == pRegEntry->RegType) ||
4505 (WLAN_PARAM_SignedInteger == pRegEntry->RegType) ||
4506 (WLAN_PARAM_HexInteger == pRegEntry->RegType)) {
4507 value = 0;
Vidyullatha Kanchanapally53241c42017-04-13 19:16:24 +05304508
4509 if ((pRegEntry->VarSize > sizeof(value)) ||
4510 (pRegEntry->VarSize == 0)) {
4511 pr_warn("Invalid length of %s: %d",
4512 pRegEntry->RegName, pRegEntry->VarSize);
4513 continue;
4514 }
4515
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004516 memcpy(&value, pField, pRegEntry->VarSize);
4517 if (WLAN_PARAM_HexInteger == pRegEntry->RegType) {
4518 fmt = "%x";
4519 } else if (WLAN_PARAM_SignedInteger ==
4520 pRegEntry->RegType) {
4521 fmt = "%d";
Vidyullatha Kanchanapally53241c42017-04-13 19:16:24 +05304522 value = sign_extend32(
4523 value,
4524 pRegEntry->VarSize * 8 - 1);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004525 } else {
4526 fmt = "%u";
4527 }
4528 snprintf(valueStr, CFG_VALUE_MAX_LEN, fmt, value);
4529 } else if (WLAN_PARAM_String == pRegEntry->RegType) {
4530 snprintf(valueStr, CFG_VALUE_MAX_LEN, "%s",
4531 (char *)pField);
4532 } else if (WLAN_PARAM_MacAddr == pRegEntry->RegType) {
Anurag Chouhan6d760662016-02-20 16:05:43 +05304533 pMacAddr = (struct qdf_mac_addr *) pField;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004534 snprintf(valueStr, CFG_VALUE_MAX_LEN,
4535 "%02x:%02x:%02x:%02x:%02x:%02x",
4536 pMacAddr->bytes[0],
4537 pMacAddr->bytes[1],
4538 pMacAddr->bytes[2],
4539 pMacAddr->bytes[3],
4540 pMacAddr->bytes[4], pMacAddr->bytes[5]);
4541 } else {
4542 snprintf(valueStr, CFG_VALUE_MAX_LEN, "(unhandled)");
4543 }
4544 curlen = scnprintf(configStr, CFG_ENTRY_MAX_LEN,
4545 "%s=[%s]%s\n",
4546 pRegEntry->RegName,
4547 valueStr,
4548 test_bit(idx,
4549 (void *)&pHddCtx->config->
4550 bExplicitCfg) ? "*" : "");
4551
4552 /* Ideally we want to return the config to the application,
4553 * however the config is too big so we just printk() for now
4554 */
4555#ifdef RETURN_IN_BUFFER
Hanumanth Reddy Pothulaadf163e2016-09-07 15:11:58 +05304556 if (curlen < buflen) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004557 /* copy string + '\0' */
4558 memcpy(pCur, configStr, curlen + 1);
4559
4560 /* account for addition; */
4561 pCur += curlen;
4562 buflen -= curlen;
4563 } else {
4564 /* buffer space exhausted, return what we have */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05304565 return QDF_STATUS_E_RESOURCES;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004566 }
4567#else
4568 printk(KERN_INFO "%s", configStr);
4569#endif /* RETURN_IN_BUFFER */
4570
4571 }
4572
4573#ifndef RETURN_IN_BUFFER
4574 /* notify application that output is in system log */
4575 snprintf(pCur, buflen, "WLAN configuration written to system log");
4576#endif /* RETURN_IN_BUFFER */
4577
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05304578 return QDF_STATUS_SUCCESS;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004579}
4580
4581/** struct tCfgIniEntry - ini configuration entry
4582 *
4583 * @name: name of the entry
4584 * @value: value of the entry
4585 */
4586typedef struct {
4587 char *name;
4588 char *value;
4589} tCfgIniEntry;
4590
4591/**
4592 * find_cfg_item() - find the configuration item
4593 * @iniTable: pointer to configuration table
4594 * @entries: number fo the configuration entries
4595 * @name: the interested configuration to find
4596 * @value: the value to read back
4597 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05304598 * Return: QDF_STATUS_SUCCESS if the interested configuration is found,
4599 * otherwise QDF_STATUS_E_FAILURE
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004600 */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05304601static QDF_STATUS find_cfg_item(tCfgIniEntry *iniTable, unsigned long entries,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004602 char *name, char **value)
4603{
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05304604 QDF_STATUS status = QDF_STATUS_E_FAILURE;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004605 unsigned long i;
4606
4607 for (i = 0; i < entries; i++) {
4608 if (strcmp(iniTable[i].name, name) == 0) {
4609 *value = iniTable[i].value;
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07004610 hdd_debug("Found %s entry for Name=[%s] Value=[%s] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004611 WLAN_INI_FILE, name, *value);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05304612 return QDF_STATUS_SUCCESS;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004613 }
4614 }
4615
4616 return status;
4617}
4618
4619/**
4620 * parse_hex_digit() - conversion to hex value
4621 * @c: the character to convert
4622 *
4623 * Return: the hex value, otherwise 0
4624 */
4625static int parse_hex_digit(char c)
4626{
4627 if (c >= '0' && c <= '9')
4628 return c - '0';
4629 if (c >= 'a' && c <= 'f')
4630 return c - 'a' + 10;
4631 if (c >= 'A' && c <= 'F')
4632 return c - 'A' + 10;
4633
4634 return 0;
4635}
4636
4637/**
4638 * update_mac_from_string() - convert string to 6 bytes mac address
4639 * @pHddCtx: the pointer to hdd context
4640 * @macTable: the macTable to carry the conversion
4641 * @num: number of the interface
4642 *
4643 * 00AA00BB00CC -> 0x00 0xAA 0x00 0xBB 0x00 0xCC
4644 *
4645 * Return: None
4646 */
4647static void update_mac_from_string(hdd_context_t *pHddCtx,
4648 tCfgIniEntry *macTable, int num)
4649{
4650 int i = 0, j = 0, res = 0;
4651 char *candidate = NULL;
Anurag Chouhan6d760662016-02-20 16:05:43 +05304652 struct qdf_mac_addr macaddr[QDF_MAX_CONCURRENCY_PERSONA];
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004653
4654 memset(macaddr, 0, sizeof(macaddr));
4655
4656 for (i = 0; i < num; i++) {
4657 candidate = macTable[i].value;
Anurag Chouhan6d760662016-02-20 16:05:43 +05304658 for (j = 0; j < QDF_MAC_ADDR_SIZE; j++) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004659 res =
4660 hex2bin(&macaddr[i].bytes[j], &candidate[(j << 1)],
4661 1);
4662 if (res < 0)
4663 break;
4664 }
Anurag Chouhanc5548422016-02-24 18:33:27 +05304665 if (res == 0 && !qdf_is_macaddr_zero(&macaddr[i])) {
Anurag Chouhan600c3a02016-03-01 10:33:54 +05304666 qdf_mem_copy((uint8_t *) &pHddCtx->config->
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004667 intfMacAddr[i].bytes[0],
4668 (uint8_t *) &macaddr[i].bytes[0],
Anurag Chouhan6d760662016-02-20 16:05:43 +05304669 QDF_MAC_ADDR_SIZE);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004670 }
4671 }
4672}
4673
4674/**
4675 * hdd_apply_cfg_ini() - apply the ini configuration file
4676 * @pHddCtx: the pointer to hdd context
4677 * @iniTable: pointer to configuration table
4678 * @entries: number fo the configuration entries
4679 * It overwrites the MAC address if config file exist.
4680 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05304681 * Return: QDF_STATUS_SUCCESS if the ini configuration file is correctly parsed,
4682 * otherwise QDF_STATUS_E_INVAL
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004683 */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05304684static QDF_STATUS hdd_apply_cfg_ini(hdd_context_t *pHddCtx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004685 tCfgIniEntry *iniTable,
4686 unsigned long entries)
4687{
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05304688 QDF_STATUS match_status = QDF_STATUS_E_FAILURE;
4689 QDF_STATUS ret_status = QDF_STATUS_SUCCESS;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004690 unsigned int idx;
4691 void *pField;
4692 char *value_str = NULL;
4693 unsigned long len_value_str;
4694 char *candidate;
4695 uint32_t value;
4696 int32_t svalue;
4697 void *pStructBase = pHddCtx->config;
Srinivas Girigowda2fb677c2017-03-25 15:35:34 -07004698 struct reg_table_entry *pRegEntry = g_registry_table;
Anurag Chouhan6d760662016-02-20 16:05:43 +05304699 unsigned long cRegTableEntries = QDF_ARRAY_SIZE(g_registry_table);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004700 uint32_t cbOutString;
4701 int i;
4702 int rv;
4703
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004704 if (MAX_CFG_INI_ITEMS < cRegTableEntries) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08004705 hdd_err("MAX_CFG_INI_ITEMS too small, must be at least %ld",
Srinivas Girigowdaba3091c2015-11-16 17:18:40 -08004706 cRegTableEntries);
4707 WARN_ON(1);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004708 }
4709
4710 for (idx = 0; idx < cRegTableEntries; idx++, pRegEntry++) {
4711 /* Calculate the address of the destination field in the structure. */
4712 pField = ((uint8_t *) pStructBase) + pRegEntry->VarOffset;
4713
4714 match_status =
4715 find_cfg_item(iniTable, entries, pRegEntry->RegName,
4716 &value_str);
4717
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05304718 if ((match_status != QDF_STATUS_SUCCESS)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004719 && (pRegEntry->Flags & VAR_FLAGS_REQUIRED)) {
4720 /* If we could not read the cfg item and it is required, this is an error. */
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08004721 hdd_err("Failed to read required config parameter %s", pRegEntry->RegName);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05304722 ret_status = QDF_STATUS_E_FAILURE;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004723 break;
4724 }
4725
4726 if ((WLAN_PARAM_Integer == pRegEntry->RegType) ||
4727 (WLAN_PARAM_HexInteger == pRegEntry->RegType)) {
4728 /* If successfully read from the registry, use the value read.
4729 * If not, use the default value.
4730 */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05304731 if (match_status == QDF_STATUS_SUCCESS
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004732 && (WLAN_PARAM_Integer == pRegEntry->RegType)) {
4733 rv = kstrtou32(value_str, 10, &value);
4734 if (rv < 0) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07004735 hdd_warn("Reg Parameter %s invalid. Enforcing default", pRegEntry->RegName);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004736 value = pRegEntry->VarDefault;
4737 }
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05304738 } else if (match_status == QDF_STATUS_SUCCESS
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004739 && (WLAN_PARAM_HexInteger ==
4740 pRegEntry->RegType)) {
4741 rv = kstrtou32(value_str, 16, &value);
4742 if (rv < 0) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07004743 hdd_warn("Reg paramter %s invalid. Enforcing default", pRegEntry->RegName);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004744 value = pRegEntry->VarDefault;
4745 }
4746 } else {
4747 value = pRegEntry->VarDefault;
4748 }
4749
Srinivas Girigowdad1b92582017-03-02 11:47:47 -08004750 /* Only if the parameter is set in the ini file, do the range check here */
4751 if (match_status == QDF_STATUS_SUCCESS &&
4752 pRegEntry->Flags & VAR_FLAGS_RANGE_CHECK) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004753 if (value > pRegEntry->VarMax) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07004754 hdd_warn("Reg Parameter %s > allowed Maximum [%u > %lu]. Enforcing Maximum", pRegEntry->RegName,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004755 value, pRegEntry->VarMax);
4756 value = pRegEntry->VarMax;
4757 }
4758
4759 if (value < pRegEntry->VarMin) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07004760 hdd_warn("Reg Parameter %s < allowed Minimum [%u < %lu]. Enforcing Minimum", pRegEntry->RegName,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004761 value, pRegEntry->VarMin);
4762 value = pRegEntry->VarMin;
4763 }
4764 }
Srinivas Girigowdad1b92582017-03-02 11:47:47 -08004765 /* Only if the parameter is set in the ini file, do the range check here */
4766 else if (match_status == QDF_STATUS_SUCCESS &&
4767 pRegEntry->Flags &
4768 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004769 if (value > pRegEntry->VarMax) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07004770 hdd_warn("Reg Parameter %s > allowed Maximum [%u > %lu]. Enforcing Default: %lu", pRegEntry->RegName,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004771 value, pRegEntry->VarMax,
4772 pRegEntry->VarDefault);
4773 value = pRegEntry->VarDefault;
4774 }
4775
4776 if (value < pRegEntry->VarMin) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07004777 hdd_warn("Reg Parameter %s < allowed Minimum [%u < %lu]. Enforcing Default: %lu", pRegEntry->RegName,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004778 value, pRegEntry->VarMin,
4779 pRegEntry->VarDefault);
4780 value = pRegEntry->VarDefault;
4781 }
4782 }
4783 /* Move the variable into the output field. */
4784 memcpy(pField, &value, pRegEntry->VarSize);
4785 } else if (WLAN_PARAM_SignedInteger == pRegEntry->RegType) {
4786 /* If successfully read from the registry, use the value read.
4787 * If not, use the default value.
4788 */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05304789 if (QDF_STATUS_SUCCESS == match_status) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004790 rv = kstrtos32(value_str, 10, &svalue);
4791 if (rv < 0) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08004792 hdd_warn("Reg Parameter %s invalid. Enforcing Default", pRegEntry->RegName);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004793 svalue =
4794 (int32_t) pRegEntry->VarDefault;
4795 }
4796 } else {
4797 svalue = (int32_t) pRegEntry->VarDefault;
4798 }
4799
Srinivas Girigowdad1b92582017-03-02 11:47:47 -08004800 /* Only if the parameter is set in the ini file, do the range check here */
4801 if (match_status == QDF_STATUS_SUCCESS &&
4802 pRegEntry->Flags & VAR_FLAGS_RANGE_CHECK) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004803 if (svalue > (int32_t) pRegEntry->VarMax) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07004804 hdd_warn("Reg Parameter %s > allowed Maximum "
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08004805 "[%d > %d]. Enforcing Maximum", pRegEntry->RegName,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004806 svalue, (int)pRegEntry->VarMax);
4807 svalue = (int32_t) pRegEntry->VarMax;
4808 }
4809
4810 if (svalue < (int32_t) pRegEntry->VarMin) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07004811 hdd_warn("Reg Parameter %s < allowed Minimum "
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08004812 "[%d < %d]. Enforcing Minimum", pRegEntry->RegName,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004813 svalue, (int)pRegEntry->VarMin);
4814 svalue = (int32_t) pRegEntry->VarMin;
4815 }
4816 }
Srinivas Girigowdad1b92582017-03-02 11:47:47 -08004817 /* Only if the parameter is set in the ini file, do the range check here */
4818 else if (match_status == QDF_STATUS_SUCCESS &&
4819 pRegEntry->Flags &
4820 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004821 if (svalue > (int32_t) pRegEntry->VarMax) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07004822 hdd_warn("Reg Parameter %s > allowed Maximum "
4823 "[%d > %d]. Enforcing Default: %d", pRegEntry->RegName,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004824 svalue, (int)pRegEntry->VarMax,
4825 (int)pRegEntry->VarDefault);
4826 svalue =
4827 (int32_t) pRegEntry->VarDefault;
4828 }
4829
4830 if (svalue < (int32_t) pRegEntry->VarMin) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07004831 hdd_warn("Reg Parameter %s < allowed Minimum "
4832 "[%d < %d]. Enforcing Default: %d", pRegEntry->RegName,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004833 svalue, (int)pRegEntry->VarMin,
4834 (int)pRegEntry->VarDefault);
4835 svalue = pRegEntry->VarDefault;
4836 }
4837 }
4838 /* Move the variable into the output field. */
4839 memcpy(pField, &svalue, pRegEntry->VarSize);
4840 }
4841 /* Handle string parameters */
4842 else if (WLAN_PARAM_String == pRegEntry->RegType) {
4843#ifdef WLAN_CFG_DEBUG
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07004844 hdd_debug("RegName = %s, VarOffset %u VarSize %u VarDefault %s",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004845 pRegEntry->RegName, pRegEntry->VarOffset,
4846 pRegEntry->VarSize,
4847 (char *)pRegEntry->VarDefault);
4848#endif
4849
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05304850 if (match_status == QDF_STATUS_SUCCESS) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004851 len_value_str = strlen(value_str);
4852
4853 if (len_value_str > (pRegEntry->VarSize - 1)) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08004854 hdd_err("Invalid Value=[%s] specified for Name=[%s] in %s", value_str,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004855 pRegEntry->RegName,
4856 WLAN_INI_FILE);
4857 cbOutString =
Srinivas Girigowda2fb677c2017-03-25 15:35:34 -07004858 QDF_MIN(strlen
4859 ((char *)pRegEntry->
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004860 VarDefault),
4861 pRegEntry->VarSize - 1);
4862 memcpy(pField,
4863 (void *)(pRegEntry->VarDefault),
4864 cbOutString);
4865 ((uint8_t *) pField)[cbOutString] =
4866 '\0';
4867 } else {
4868 memcpy(pField, (void *)(value_str),
4869 len_value_str);
4870 ((uint8_t *) pField)[len_value_str] =
4871 '\0';
4872 }
4873 } else {
4874 /* Failed to read the string parameter from the registry. Use the default. */
4875 cbOutString =
Srinivas Girigowda2fb677c2017-03-25 15:35:34 -07004876 QDF_MIN(strlen((char *)pRegEntry->VarDefault),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004877 pRegEntry->VarSize - 1);
4878 memcpy(pField, (void *)(pRegEntry->VarDefault),
4879 cbOutString);
4880 ((uint8_t *) pField)[cbOutString] = '\0';
4881 }
4882 } else if (WLAN_PARAM_MacAddr == pRegEntry->RegType) {
Anurag Chouhan6d760662016-02-20 16:05:43 +05304883 if (pRegEntry->VarSize != QDF_MAC_ADDR_SIZE) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07004884 hdd_warn("Invalid VarSize %u for Name=[%s]", pRegEntry->VarSize,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004885 pRegEntry->RegName);
4886 continue;
4887 }
4888 candidate = (char *)pRegEntry->VarDefault;
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05304889 if (match_status == QDF_STATUS_SUCCESS) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004890 len_value_str = strlen(value_str);
Anurag Chouhan6d760662016-02-20 16:05:43 +05304891 if (len_value_str != (QDF_MAC_ADDR_SIZE * 2)) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08004892 hdd_err("Invalid MAC addr [%s] specified for Name=[%s] in %s", value_str,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004893 pRegEntry->RegName,
4894 WLAN_INI_FILE);
4895 } else
4896 candidate = value_str;
4897 }
4898 /* parse the string and store it in the byte array */
Anurag Chouhan6d760662016-02-20 16:05:43 +05304899 for (i = 0; i < QDF_MAC_ADDR_SIZE; i++) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004900 ((char *)pField)[i] =
4901 (char)(parse_hex_digit(candidate[i * 2]) *
4902 16 +
4903 parse_hex_digit(candidate[i * 2 + 1]));
4904 }
4905 } else {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07004906 hdd_warn("Unknown param type for name[%s] in registry table", pRegEntry->RegName);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004907 }
4908
4909 /* did we successfully parse a cfg item for this parameter? */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05304910 if ((match_status == QDF_STATUS_SUCCESS) &&
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004911 (idx < MAX_CFG_INI_ITEMS)) {
4912 set_bit(idx, (void *)&pHddCtx->config->bExplicitCfg);
4913 }
4914 }
4915
4916 return ret_status;
4917}
4918
4919/**
4920 * hdd_execute_config_command() - executes an arbitrary configuration command
4921 * @reg_table: the pointer to configuration table
4922 * @tableSize: the size of the configuration table
4923 * @ini_struct: pointer to the hdd config knob
4924 * @pHddCtx: the pointer to hdd context
4925 * @command: the command to run
4926 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05304927 * Return: QDF_STATUS_SUCCESS if the command is found and able to execute,
4928 * otherwise the appropriate QDF_STATUS will be returned
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004929 */
Srinivas Girigowda2fb677c2017-03-25 15:35:34 -07004930static QDF_STATUS hdd_execute_config_command(struct reg_table_entry *reg_table,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004931 unsigned long tableSize,
4932 uint8_t *ini_struct,
4933 hdd_context_t *pHddCtx,
4934 char *command)
4935{
Srinivas Girigowda2fb677c2017-03-25 15:35:34 -07004936 struct reg_table_entry *pRegEntry;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004937 char *clone;
4938 char *pCmd;
4939 void *pField;
4940 char *name;
4941 char *value_str;
4942 uint32_t value;
4943 int32_t svalue;
4944 size_t len_value_str;
4945 unsigned int idx;
4946 unsigned int i;
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05304947 QDF_STATUS vstatus;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004948 int rv;
4949
4950 /* assume failure until proven otherwise */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05304951 vstatus = QDF_STATUS_E_FAILURE;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004952
4953 /* clone the command so that we can manipulate it */
4954 clone = kstrdup(command, GFP_ATOMIC);
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07004955 if (NULL == clone)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004956 return vstatus;
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07004957
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004958 /* 'clone' will point to the beginning of the string so it can be freed
4959 * 'pCmd' will be used to walk/parse the command
4960 */
4961 pCmd = clone;
4962
4963 /* get rid of leading/trailing whitespace */
4964 pCmd = i_trim(pCmd);
4965 if ('\0' == *pCmd) {
4966 /* only whitespace */
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08004967 hdd_err("invalid command, only whitespace:[%s]", command);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004968 goto done;
4969 }
4970 /* parse the <name> = <value> */
4971 name = pCmd;
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07004972 while (('=' != *pCmd) && ('\0' != *pCmd))
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004973 pCmd++;
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07004974
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004975 if ('\0' == *pCmd) {
4976 /* did not find '=' */
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08004977 hdd_err("invalid command, no '=':[%s]", command);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004978 goto done;
4979 }
4980 /* replace '=' with NUL to terminate the <name> */
4981 *pCmd++ = '\0';
4982 name = i_trim(name);
4983 if ('\0' == *name) {
4984 /* did not find a name */
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08004985 hdd_err("invalid command, no <name>:[%s]", command);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004986 goto done;
4987 }
4988
4989 value_str = i_trim(pCmd);
4990 if ('\0' == *value_str) {
4991 /* did not find a value */
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08004992 hdd_err("invalid command, no <value>:[%s]", command);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004993 goto done;
4994 }
4995 /* lookup the configuration item */
4996 for (idx = 0; idx < tableSize; idx++) {
4997 if (0 == strcmp(name, reg_table[idx].RegName)) {
4998 /* found a match */
4999 break;
5000 }
5001 }
5002 if (tableSize == idx) {
5003 /* did not match the name */
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005004 hdd_err("invalid command, unknown configuration item:[%s]", command);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005005 goto done;
5006 }
5007
5008 pRegEntry = &reg_table[idx];
5009 if (!(pRegEntry->Flags & VAR_FLAGS_DYNAMIC_CFG)) {
5010 /* does not support dynamic configuration */
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005011 hdd_err("Global_Registry_Table. %s does not support "
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005012 "dynamic configuration", name);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305013 vstatus = QDF_STATUS_E_PERM;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005014 goto done;
5015 }
5016
5017 pField = ini_struct + pRegEntry->VarOffset;
5018
5019 switch (pRegEntry->RegType) {
5020 case WLAN_PARAM_Integer:
5021 rv = kstrtou32(value_str, 10, &value);
5022 if (rv < 0)
5023 goto done;
5024 if (value < pRegEntry->VarMin) {
5025 /* out of range */
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005026 hdd_err("Invalid command, value %u < min value %lu", value, pRegEntry->VarMin);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005027 goto done;
5028 }
5029 if (value > pRegEntry->VarMax) {
5030 /* out of range */
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005031 hdd_err("Invalid command, value %u > max value %lu", value, pRegEntry->VarMax);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005032 goto done;
5033 }
5034 memcpy(pField, &value, pRegEntry->VarSize);
5035 break;
5036
5037 case WLAN_PARAM_HexInteger:
5038 rv = kstrtou32(value_str, 16, &value);
5039 if (rv < 0)
5040 goto done;
5041 if (value < pRegEntry->VarMin) {
5042 /* out of range */
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005043 hdd_err("Invalid command, value %x < min value %lx", value, pRegEntry->VarMin);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005044 goto done;
5045 }
5046 if (value > pRegEntry->VarMax) {
5047 /* out of range */
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005048 hdd_err("Invalid command, value %x > max value %lx", value, pRegEntry->VarMax);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005049 goto done;
5050 }
5051 memcpy(pField, &value, pRegEntry->VarSize);
5052 break;
5053
5054 case WLAN_PARAM_SignedInteger:
5055 rv = kstrtos32(value_str, 10, &svalue);
5056 if (rv < 0)
5057 goto done;
5058 if (svalue < (int32_t) pRegEntry->VarMin) {
5059 /* out of range */
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005060 hdd_err("Invalid command, value %d < min value %d", svalue, (int)pRegEntry->VarMin);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005061 goto done;
5062 }
5063 if (svalue > (int32_t) pRegEntry->VarMax) {
5064 /* out of range */
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005065 hdd_err("Invalid command, value %d > max value %d", svalue, (int)pRegEntry->VarMax);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005066 goto done;
5067 }
5068 memcpy(pField, &svalue, pRegEntry->VarSize);
5069 break;
5070
5071 case WLAN_PARAM_String:
5072 len_value_str = strlen(value_str);
5073 if (len_value_str > (pRegEntry->VarSize - 1)) {
5074 /* too big */
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005075 hdd_err("Invalid command, string [%s] length "
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005076 "%zu exceeds maximum length %u", value_str,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005077 len_value_str, (pRegEntry->VarSize - 1));
5078 goto done;
5079 }
5080 /* copy string plus NUL */
5081 memcpy(pField, value_str, (len_value_str + 1));
5082 break;
5083
5084 case WLAN_PARAM_MacAddr:
5085 len_value_str = strlen(value_str);
Anurag Chouhan6d760662016-02-20 16:05:43 +05305086 if (len_value_str != (QDF_MAC_ADDR_SIZE * 2)) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005087 /* out of range */
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005088 hdd_err("Invalid command, MAC address [%s] length "
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005089 "%zu is not expected length %u", value_str,
Anurag Chouhan6d760662016-02-20 16:05:43 +05305090 len_value_str, (QDF_MAC_ADDR_SIZE * 2));
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005091 goto done;
5092 }
5093 /* parse the string and store it in the byte array */
Anurag Chouhan6d760662016-02-20 16:05:43 +05305094 for (i = 0; i < QDF_MAC_ADDR_SIZE; i++) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005095 ((char *)pField)[i] = (char)
5096 ((parse_hex_digit(value_str[(i * 2)]) * 16) +
5097 parse_hex_digit(value_str[(i * 2) + 1]));
5098 }
5099 break;
5100
5101 default:
5102 goto done;
5103 }
5104
5105 /* if we get here, we had a successful modification */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305106 vstatus = QDF_STATUS_SUCCESS;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005107
5108 /* config table has been modified, is there a notifier? */
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07005109 if (NULL != pRegEntry->pfnDynamicnotify)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005110 (pRegEntry->pfnDynamicnotify)(pHddCtx, pRegEntry->notifyId);
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07005111
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005112 /* note that this item was explicitly configured */
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07005113 if (idx < MAX_CFG_INI_ITEMS)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005114 set_bit(idx, (void *)&pHddCtx->config->bExplicitCfg);
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07005115
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005116done:
5117 kfree(clone);
5118 return vstatus;
5119}
5120
5121/**
5122 * hdd_set_power_save_offload_config() - set power save offload configuration
5123 * @pHddCtx: the pointer to hdd context
5124 *
5125 * Return: none
5126 */
5127static void hdd_set_power_save_offload_config(hdd_context_t *pHddCtx)
5128{
5129 struct hdd_config *pConfig = pHddCtx->config;
5130 uint32_t listenInterval = 0;
5131
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07005132 if (strcmp(pConfig->PowerUsageControl, "Min") == 0)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005133 listenInterval = pConfig->nBmpsMinListenInterval;
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07005134 else if (strcmp(pConfig->PowerUsageControl, "Max") == 0)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005135 listenInterval = pConfig->nBmpsMaxListenInterval;
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07005136 else if (strcmp(pConfig->PowerUsageControl, "Mod") == 0)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005137 listenInterval = pConfig->nBmpsModListenInterval;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005138
5139 /*
5140 * Based on Mode Set the LI
5141 * Otherwise default LI value of 1 will
5142 * be taken
5143 */
5144 if (listenInterval) {
5145 /*
5146 * setcfg for listenInterval.
5147 * Make sure CFG is updated because PE reads this
5148 * from CFG at the time of assoc or reassoc
5149 */
5150 sme_cfg_set_int(pHddCtx->hHal, WNI_CFG_LISTEN_INTERVAL,
5151 listenInterval);
5152 }
5153
5154}
5155
Houston Hoffmanc7c69f02016-03-24 22:45:52 -07005156#ifdef FEATURE_RUNTIME_PM
5157static void hdd_cfg_print_runtime_pm(hdd_context_t *hdd_ctx)
5158{
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005159 hdd_debug("Name = [gRuntimePM] Value = [%u] ",
Houston Hoffmanc7c69f02016-03-24 22:45:52 -07005160 hdd_ctx->config->runtime_pm);
5161
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005162 hdd_debug("Name = [gRuntimePMDelay] Value = [%u] ",
Houston Hoffmanc7c69f02016-03-24 22:45:52 -07005163 hdd_ctx->config->runtime_pm_delay);
5164}
5165#else
5166static void hdd_cfg_print_runtime_pm(hdd_context_t *hdd_ctx)
5167{
5168}
5169#endif
5170
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005171/**
Kapil Gupta5cda2252016-12-29 18:44:26 +05305172 * hdd_per_roam_print_ini_config()- Print PER roam specific INI configuration
5173 * @hdd_ctx: handle to hdd context
5174 *
5175 * Return: None
5176 */
5177static void hdd_per_roam_print_ini_config(hdd_context_t *hdd_ctx)
5178{
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005179 hdd_debug("Name = [%s] Value = [%u]",
Kapil Gupta5cda2252016-12-29 18:44:26 +05305180 CFG_PER_ROAM_ENABLE_NAME,
5181 hdd_ctx->config->is_per_roam_enabled);
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005182 hdd_debug("Name = [%s] Value = [%u]",
Kapil Gupta5cda2252016-12-29 18:44:26 +05305183 CFG_PER_ROAM_CONFIG_HIGH_RATE_TH_NAME,
5184 hdd_ctx->config->per_roam_high_rate_threshold);
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005185 hdd_debug("Name = [%s] Value = [%u]",
Kapil Gupta5cda2252016-12-29 18:44:26 +05305186 CFG_PER_ROAM_CONFIG_LOW_RATE_TH_NAME,
5187 hdd_ctx->config->per_roam_low_rate_threshold);
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005188 hdd_debug("Name = [%s] Value = [%u]",
Kapil Gupta5cda2252016-12-29 18:44:26 +05305189 CFG_PER_ROAM_CONFIG_RATE_TH_PERCENT_NAME,
5190 hdd_ctx->config->per_roam_th_percent);
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005191 hdd_debug("Name = [%s] Value = [%u]",
Kapil Gupta5cda2252016-12-29 18:44:26 +05305192 CFG_PER_ROAM_REST_TIME_NAME,
5193 hdd_ctx->config->per_roam_rest_time);
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005194 hdd_debug("Name = [%s] Value = [%u]",
Kapil Gupta957827b2017-02-13 15:47:04 +05305195 CFG_PER_ROAM_MONITOR_TIME,
5196 hdd_ctx->config->per_roam_mon_time);
5197
Kapil Gupta5cda2252016-12-29 18:44:26 +05305198}
5199
5200/**
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005201 * hdd_cfg_print() - print the hdd configuration
5202 * @iniTable: pointer to hdd context
5203 *
5204 * Return: None
5205 */
5206void hdd_cfg_print(hdd_context_t *pHddCtx)
5207{
5208 int i;
5209
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005210 hdd_info("*********Config values in HDD Adapter*******");
5211 hdd_info("Name = [RTSThreshold] Value = %u",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005212 pHddCtx->config->RTSThreshold);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005213 hdd_info("Name = [OperatingChannel] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005214 pHddCtx->config->OperatingChannel);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005215 hdd_info("Name = [PowerUsageControl] Value = [%s]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005216 pHddCtx->config->PowerUsageControl);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005217 hdd_info("Name = [fIsImpsEnabled] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005218 pHddCtx->config->fIsImpsEnabled);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005219 hdd_info("Name = [nVccRssiTrigger] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005220 pHddCtx->config->nVccRssiTrigger);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005221 hdd_info("Name = [gIbssBssid] Value =[" MAC_ADDRESS_STR "]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005222 MAC_ADDR_ARRAY(pHddCtx->config->IbssBssid.bytes));
5223
Anurag Chouhan6d760662016-02-20 16:05:43 +05305224 for (i = 0; i < QDF_MAX_CONCURRENCY_PERSONA; i++) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005225 hdd_info("Name = [Intf%dMacAddress] Value =[" MAC_ADDRESS_STR "]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005226 i, MAC_ADDR_ARRAY(pHddCtx->config->intfMacAddr[i].bytes));
5227 }
5228
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005229 hdd_info("Name = [gApEnableUapsd] value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005230 pHddCtx->config->apUapsdEnabled);
5231
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005232 hdd_info("Name = [gEnableApProt] value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005233 pHddCtx->config->apProtEnabled);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005234 hdd_info("Name = [gAPAutoShutOff] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005235 pHddCtx->config->nAPAutoShutOff);
5236#ifdef FEATURE_WLAN_MCC_TO_SCC_SWITCH
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005237 hdd_info("Name = [gWlanMccToSccSwitchMode] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005238 pHddCtx->config->WlanMccToSccSwitchMode);
5239#endif
5240#ifdef FEATURE_WLAN_AUTO_SHUTDOWN
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005241 hdd_info("Name = [gWlanAutoShutdown] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005242 pHddCtx->config->WlanAutoShutdown);
5243#endif
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005244 hdd_info("Name = [gApProtection] value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005245 pHddCtx->config->apProtection);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005246 hdd_info("Name = [gEnableApOBSSProt] value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005247 pHddCtx->config->apOBSSProtEnabled);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005248 hdd_info("Name = [%s] value = [%u]", CFG_FORCE_SAP_ACS,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005249 pHddCtx->config->force_sap_acs);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005250 hdd_info("Name = [%s] value = [%u]", CFG_FORCE_SAP_ACS_START_CH,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005251 pHddCtx->config->force_sap_acs_st_ch);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005252 hdd_info("Name = [%s] value = [%u]", CFG_FORCE_SAP_ACS_END_CH,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005253 pHddCtx->config->force_sap_acs_end_ch);
5254#ifdef FEATURE_AP_MCC_CH_AVOIDANCE
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005255 hdd_info("Name = [sap_channel_avoidance] value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005256 pHddCtx->config->sap_channel_avoidance);
5257#endif /* FEATURE_AP_MCC_CH_AVOIDANCE */
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005258 hdd_info("Name = [%s] value = [%u]", CFG_SAP_P2P_11AC_OVERRIDE_NAME,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005259 pHddCtx->config->sap_p2p_11ac_override);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005260 hdd_info("Name = [ChannelBondingMode] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005261 pHddCtx->config->nChannelBondingMode24GHz);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005262 hdd_info("Name = [ChannelBondingMode] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005263 pHddCtx->config->nChannelBondingMode5GHz);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005264 hdd_info("Name = [dot11Mode] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005265 pHddCtx->config->dot11Mode);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005266 hdd_info("Name = [WmmMode] Value = [%u] ", pHddCtx->config->WmmMode);
5267 hdd_info("Name = [UapsdMask] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005268 pHddCtx->config->UapsdMask);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005269 hdd_info("Name = [ImplicitQosIsEnabled] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005270 (int)pHddCtx->config->bImplicitQosEnabled);
5271
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005272 hdd_info("Name = [InfraUapsdVoSrvIntv] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005273 pHddCtx->config->InfraUapsdVoSrvIntv);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005274 hdd_info("Name = [InfraUapsdVoSuspIntv] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005275 pHddCtx->config->InfraUapsdVoSuspIntv);
5276
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005277 hdd_info("Name = [InfraUapsdViSrvIntv] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005278 pHddCtx->config->InfraUapsdViSrvIntv);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005279 hdd_info("Name = [InfraUapsdViSuspIntv] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005280 pHddCtx->config->InfraUapsdViSuspIntv);
5281
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005282 hdd_info("Name = [InfraUapsdBeSrvIntv] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005283 pHddCtx->config->InfraUapsdBeSrvIntv);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005284 hdd_info("Name = [InfraUapsdBeSuspIntv] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005285 pHddCtx->config->InfraUapsdBeSuspIntv);
5286
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005287 hdd_info("Name = [InfraUapsdBkSrvIntv] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005288 pHddCtx->config->InfraUapsdBkSrvIntv);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005289 hdd_info("Name = [InfraUapsdBkSuspIntv] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005290 pHddCtx->config->InfraUapsdBkSuspIntv);
5291#ifdef FEATURE_WLAN_ESE
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005292 hdd_info("Name = [InfraInactivityInterval] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005293 pHddCtx->config->InfraInactivityInterval);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005294 hdd_info("Name = [EseEnabled] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005295 pHddCtx->config->isEseIniFeatureEnabled);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005296 hdd_info("Name = [FastTransitionEnabled] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005297 pHddCtx->config->isFastTransitionEnabled);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005298 hdd_info("Name = [gTxPowerCap] Value = [%u] dBm ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005299 pHddCtx->config->nTxPowerCap);
5300#endif
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005301 hdd_info("Name = [gAllowTPCfromAP] Value = [%u] ",
Padma, Santhosh Kumar29df3622016-08-16 19:15:16 +05305302 pHddCtx->config->allow_tpc_from_ap);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005303 hdd_info("Name = [FastRoamEnabled] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005304 pHddCtx->config->isFastRoamIniFeatureEnabled);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005305 hdd_info("Name = [MAWCEnabled] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005306 pHddCtx->config->MAWCEnabled);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005307 hdd_info("Name = [RoamRssiDiff] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005308 pHddCtx->config->RoamRssiDiff);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005309 hdd_info("Name = [isWESModeEnabled] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005310 pHddCtx->config->isWESModeEnabled);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005311 hdd_info("Name = [OkcEnabled] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005312 pHddCtx->config->isOkcIniFeatureEnabled);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005313#ifdef FEATURE_WLAN_SCAN_PNO
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005314 hdd_info("Name = [configPNOScanSupport] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005315 pHddCtx->config->configPNOScanSupport);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005316 hdd_info("Name = [configPNOScanTimerRepeatValue] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005317 pHddCtx->config->configPNOScanTimerRepeatValue);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005318 hdd_info("Name = [gPNOSlowScanMultiplier] Value = [%u] ",
Srinivas Girigowdabdc98162015-09-17 11:06:07 -07005319 pHddCtx->config->pno_slow_scan_multiplier);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005320#endif
5321#ifdef FEATURE_WLAN_TDLS
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005322 hdd_info("Name = [fEnableTDLSSupport] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005323 pHddCtx->config->fEnableTDLSSupport);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005324 hdd_info("Name = [fEnableTDLSImplicitTrigger] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005325 pHddCtx->config->fEnableTDLSImplicitTrigger);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005326 hdd_info("Name = [fTDLSExternalControl] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005327 pHddCtx->config->fTDLSExternalControl);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005328 hdd_info("Name = [fTDLSUapsdMask] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005329 pHddCtx->config->fTDLSUapsdMask);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005330 hdd_info("Name = [fEnableTDLSBufferSta] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005331 pHddCtx->config->fEnableTDLSBufferSta);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005332 hdd_info("Name = [fEnableTDLSWmmMode] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005333 pHddCtx->config->fEnableTDLSWmmMode);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005334 hdd_info("Name = [enable_tdls_scan] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005335 pHddCtx->config->enable_tdls_scan);
5336#endif
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005337 hdd_info("Name = [InfraDirAcVo] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005338 pHddCtx->config->InfraDirAcVo);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005339 hdd_info("Name = [InfraNomMsduSizeAcVo] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005340 pHddCtx->config->InfraNomMsduSizeAcVo);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005341 hdd_info("Name = [InfraMeanDataRateAcVo] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005342 pHddCtx->config->InfraMeanDataRateAcVo);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005343 hdd_info("Name = [InfraMinPhyRateAcVo] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005344 pHddCtx->config->InfraMinPhyRateAcVo);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005345 hdd_info("Name = [InfraSbaAcVo] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005346 pHddCtx->config->InfraSbaAcVo);
5347
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005348 hdd_info("Name = [InfraDirAcVi] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005349 pHddCtx->config->InfraDirAcVi);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005350 hdd_info("Name = [InfraNomMsduSizeAcVi] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005351 pHddCtx->config->InfraNomMsduSizeAcVi);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005352 hdd_info("Name = [InfraMeanDataRateAcVi] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005353 pHddCtx->config->InfraMeanDataRateAcVi);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005354 hdd_info("Name = [InfraMinPhyRateAcVi] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005355 pHddCtx->config->InfraMinPhyRateAcVi);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005356 hdd_info("Name = [InfraSbaAcVi] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005357 pHddCtx->config->InfraSbaAcVi);
5358
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005359 hdd_info("Name = [InfraDirAcBe] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005360 pHddCtx->config->InfraDirAcBe);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005361 hdd_info("Name = [InfraNomMsduSizeAcBe] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005362 pHddCtx->config->InfraNomMsduSizeAcBe);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005363 hdd_info("Name = [InfraMeanDataRateAcBe] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005364 pHddCtx->config->InfraMeanDataRateAcBe);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005365 hdd_info("Name = [InfraMinPhyRateAcBe] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005366 pHddCtx->config->InfraMinPhyRateAcBe);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005367 hdd_info("Name = [InfraSbaAcBe] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005368 pHddCtx->config->InfraSbaAcBe);
5369
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005370 hdd_info("Name = [InfraDirAcBk] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005371 pHddCtx->config->InfraDirAcBk);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005372 hdd_info("Name = [InfraNomMsduSizeAcBk] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005373 pHddCtx->config->InfraNomMsduSizeAcBk);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005374 hdd_info("Name = [InfraMeanDataRateAcBk] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005375 pHddCtx->config->InfraMeanDataRateAcBk);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005376 hdd_info("Name = [InfraMinPhyRateAcBk] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005377 pHddCtx->config->InfraMinPhyRateAcBk);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005378 hdd_info("Name = [InfraSbaAcBk] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005379 pHddCtx->config->InfraSbaAcBk);
5380
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005381 hdd_info("Name = [DelayedTriggerFrmInt] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005382 pHddCtx->config->DelayedTriggerFrmInt);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005383 hdd_info("Name = [mcastBcastFilterSetting] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005384 pHddCtx->config->mcastBcastFilterSetting);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005385 hdd_info("Name = [fhostArpOffload] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005386 pHddCtx->config->fhostArpOffload);
Dustin Brown1224e212017-05-12 14:02:12 -07005387 hdd_info("Name = [%s] Value = [%u]",
5388 CFG_HW_FILTER_MODE_NAME, pHddCtx->config->hw_filter_mode);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005389 hdd_info("Name = [ssdp] Value = [%u] ", pHddCtx->config->ssdp);
Houston Hoffmanc7c69f02016-03-24 22:45:52 -07005390 hdd_cfg_print_runtime_pm(pHddCtx);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005391#ifdef FEATURE_WLAN_RA_FILTERING
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005392 hdd_info("Name = [RArateLimitInterval] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005393 pHddCtx->config->RArateLimitInterval);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005394 hdd_info("Name = [IsRArateLimitEnabled] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005395 pHddCtx->config->IsRArateLimitEnabled);
5396#endif
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005397 hdd_info("Name = [fFTResourceReqSupported] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005398 pHddCtx->config->fFTResourceReqSupported);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005399
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005400 hdd_info("Name = [nNeighborLookupRssiThreshold] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005401 pHddCtx->config->nNeighborLookupRssiThreshold);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005402 hdd_info("Name = [delay_before_vdev_stop] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005403 pHddCtx->config->delay_before_vdev_stop);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005404 hdd_info("Name = [nOpportunisticThresholdDiff] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005405 pHddCtx->config->nOpportunisticThresholdDiff);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005406 hdd_info("Name = [nRoamRescanRssiDiff] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005407 pHddCtx->config->nRoamRescanRssiDiff);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005408 hdd_info("Name = [nNeighborScanMinChanTime] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005409 pHddCtx->config->nNeighborScanMinChanTime);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005410 hdd_info("Name = [nNeighborScanMaxChanTime] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005411 pHddCtx->config->nNeighborScanMaxChanTime);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005412 hdd_info("Name = [nMaxNeighborRetries] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005413 pHddCtx->config->nMaxNeighborReqTries);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005414 hdd_info("Name = [nNeighborScanPeriod] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005415 pHddCtx->config->nNeighborScanPeriod);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005416 hdd_info("Name = [nNeighborScanResultsRefreshPeriod] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005417 pHddCtx->config->nNeighborResultsRefreshPeriod);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005418 hdd_info("Name = [nEmptyScanRefreshPeriod] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005419 pHddCtx->config->nEmptyScanRefreshPeriod);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005420 hdd_info("Name = [nRoamBmissFirstBcnt] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005421 pHddCtx->config->nRoamBmissFirstBcnt);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005422 hdd_info("Name = [nRoamBmissFinalBcnt] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005423 pHddCtx->config->nRoamBmissFinalBcnt);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005424 hdd_info("Name = [nRoamBeaconRssiWeight] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005425 pHddCtx->config->nRoamBeaconRssiWeight);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005426 hdd_info("Name = [allowDFSChannelRoam] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005427 pHddCtx->config->allowDFSChannelRoam);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005428 hdd_info("Name = [nhi_rssi_scan_max_count] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005429 pHddCtx->config->nhi_rssi_scan_max_count);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005430 hdd_info("Name = [nhi_rssi_scan_rssi_delta] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005431 pHddCtx->config->nhi_rssi_scan_rssi_delta);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005432 hdd_info("Name = [nhi_rssi_scan_delay] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005433 pHddCtx->config->nhi_rssi_scan_delay);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005434 hdd_info("Name = [nhi_rssi_scan_rssi_ub] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005435 pHddCtx->config->nhi_rssi_scan_rssi_ub);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005436 hdd_info("Name = [burstSizeDefinition] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005437 pHddCtx->config->burstSizeDefinition);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005438 hdd_info("Name = [tsInfoAckPolicy] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005439 pHddCtx->config->tsInfoAckPolicy);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005440 hdd_info("Name = [rfSettlingTimeUs] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005441 pHddCtx->config->rfSettlingTimeUs);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005442 hdd_info("Name = [bSingleTidRc] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005443 pHddCtx->config->bSingleTidRc);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005444 hdd_info("Name = [gDynamicPSPollvalue] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005445 pHddCtx->config->dynamicPsPollValue);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005446 hdd_info("Name = [gAddTSWhenACMIsOff] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005447 pHddCtx->config->AddTSWhenACMIsOff);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005448 hdd_info("Name = [gValidateScanList] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005449 pHddCtx->config->fValidateScanList);
5450
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005451 hdd_info("Name = [gStaKeepAlivePeriod] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005452 pHddCtx->config->infraStaKeepAlivePeriod);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005453 hdd_info("Name = [gApDataAvailPollInterVal] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005454 pHddCtx->config->apDataAvailPollPeriodInMs);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005455 hdd_info("Name = [BandCapability] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005456 pHddCtx->config->nBandCapability);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005457 hdd_info("Name = [teleBcnWakeupEnable] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005458 pHddCtx->config->teleBcnWakeupEn);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005459 hdd_info("Name = [transListenInterval] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005460 pHddCtx->config->nTeleBcnTransListenInterval);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005461 hdd_info("Name = [transLiNumIdleBeacons] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005462 pHddCtx->config->nTeleBcnTransLiNumIdleBeacons);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005463 hdd_info("Name = [maxListenInterval] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005464 pHddCtx->config->nTeleBcnMaxListenInterval);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005465 hdd_info("Name = [maxLiNumIdleBeacons] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005466 pHddCtx->config->nTeleBcnMaxLiNumIdleBeacons);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005467 hdd_info("Name = [gEnableBypass11d] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005468 pHddCtx->config->enableBypass11d);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005469 hdd_info("Name = [gEnableDFSChnlScan] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005470 pHddCtx->config->enableDFSChnlScan);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005471 hdd_info("Name = [gEnableDFSPnoChnlScan] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005472 pHddCtx->config->enable_dfs_pno_chnl_scan);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005473 hdd_info("Name = [gReportMaxLinkSpeed] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005474 pHddCtx->config->reportMaxLinkSpeed);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005475 hdd_info("Name = [thermalMitigationEnable] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005476 pHddCtx->config->thermalMitigationEnable);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005477 hdd_info("Name = [gVhtChannelWidth] value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005478 pHddCtx->config->vhtChannelWidth);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005479 hdd_info("Name = [enableFirstScan2GOnly] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005480 pHddCtx->config->enableFirstScan2GOnly);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005481 hdd_info("Name = [skipDfsChnlInP2pSearch] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005482 pHddCtx->config->skipDfsChnlInP2pSearch);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005483 hdd_info("Name = [ignoreDynamicDtimInP2pMode] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005484 pHddCtx->config->ignoreDynamicDtimInP2pMode);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005485 hdd_info("Name = [enableRxSTBC] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005486 pHddCtx->config->enableRxSTBC);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005487 hdd_info("Name = [gEnableLpwrImgTransition] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005488 pHddCtx->config->enableLpwrImgTransition);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005489 hdd_info("Name = [gEnableSSR] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005490 pHddCtx->config->enableSSR);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005491 hdd_info("Name = [gEnableVhtFor24GHzBand] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005492 pHddCtx->config->enableVhtFor24GHzBand);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005493 hdd_info("Name = [gEnableIbssHeartBeatOffload] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005494 pHddCtx->config->enableIbssHeartBeatOffload);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005495 hdd_info("Name = [gAntennaDiversity] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005496 pHddCtx->config->antennaDiversity);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005497 hdd_info("Name = [gGoLinkMonitorPeriod] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005498 pHddCtx->config->goLinkMonitorPeriod);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005499 hdd_info("Name = [gApLinkMonitorPeriod] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005500 pHddCtx->config->apLinkMonitorPeriod);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005501 hdd_info("Name = [gGoKeepAlivePeriod] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005502 pHddCtx->config->goKeepAlivePeriod);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005503 hdd_info("Name = [gApKeepAlivePeriod]Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005504 pHddCtx->config->apKeepAlivePeriod);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005505 hdd_info("Name = [gAmsduSupportInAMPDU] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005506 pHddCtx->config->isAmsduSupportInAMPDU);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005507 hdd_info("Name = [nSelect5GHzMargin] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005508 pHddCtx->config->nSelect5GHzMargin);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005509 hdd_info("Name = [gCoalesingInIBSS] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005510 pHddCtx->config->isCoalesingInIBSSAllowed);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005511 hdd_info("Name = [gIbssATIMWinSize] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005512 pHddCtx->config->ibssATIMWinSize);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005513 hdd_info("Name = [gIbssIsPowerSaveAllowed] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005514 pHddCtx->config->isIbssPowerSaveAllowed);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005515 hdd_info("Name = [gIbssIsPowerCollapseAllowed] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005516 pHddCtx->config->isIbssPowerCollapseAllowed);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005517 hdd_info("Name = [gIbssAwakeOnTxRx] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005518 pHddCtx->config->isIbssAwakeOnTxRx);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005519 hdd_info("Name = [gIbssInactivityTime] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005520 pHddCtx->config->ibssInactivityCount);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005521 hdd_info("Name = [gIbssTxSpEndInactivityTime] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005522 pHddCtx->config->ibssTxSpEndInactivityTime);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005523 hdd_info("Name = [gIbssPsWarmupTime] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005524 pHddCtx->config->ibssPsWarmupTime);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005525 hdd_info("Name = [gIbssPs1RxChainInAtim] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005526 pHddCtx->config->ibssPs1RxChainInAtimEnable);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005527 hdd_info("Name = [fDfsPhyerrFilterOffload] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005528 pHddCtx->config->fDfsPhyerrFilterOffload);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005529 hdd_info("Name = [gIgnorePeerErpInfo] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005530 pHddCtx->config->ignore_peer_erp_info);
5531#ifdef IPA_OFFLOAD
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005532 hdd_info("Name = [gIPAConfig] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005533 pHddCtx->config->IpaConfig);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005534 hdd_info("Name = [gIPADescSize] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005535 pHddCtx->config->IpaDescSize);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005536 hdd_info("Name = [IpaHighBandwidthMbpsg] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005537 pHddCtx->config->IpaHighBandwidthMbps);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005538 hdd_info("Name = [IpaMediumBandwidthMbps] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005539 pHddCtx->config->IpaMediumBandwidthMbps);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005540 hdd_info("Name = [IpaLowBandwidthMbps] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005541 pHddCtx->config->IpaLowBandwidthMbps);
5542#endif
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005543 hdd_info("Name = [gEnableOverLapCh] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005544 pHddCtx->config->gEnableOverLapCh);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005545 hdd_info("Name = [gMaxOffloadPeers] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005546 pHddCtx->config->apMaxOffloadPeers);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005547 hdd_info("Name = [gMaxOffloadReorderBuffs] value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005548 pHddCtx->config->apMaxOffloadReorderBuffs);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005549 hdd_info("Name = [gAllowDFSChannelRoam] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005550 pHddCtx->config->allowDFSChannelRoam);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005551 hdd_info("Name = [gMaxConcurrentActiveSessions] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005552 pHddCtx->config->gMaxConcurrentActiveSessions);
5553
5554#ifdef MSM_PLATFORM
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005555 hdd_info("Name = [gBusBandwidthHighThreshold] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005556 pHddCtx->config->busBandwidthHighThreshold);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005557 hdd_info("Name = [gBusBandwidthMediumThreshold] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005558 pHddCtx->config->busBandwidthMediumThreshold);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005559 hdd_info("Name = [gBusBandwidthLowThreshold] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005560 pHddCtx->config->busBandwidthLowThreshold);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005561 hdd_info("Name = [gbusBandwidthComputeInterval] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005562 pHddCtx->config->busBandwidthComputeInterval);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005563 hdd_info("Name = [%s] Value = [%u] ",
Ravi Joshie2331e82015-07-01 18:18:54 -07005564 CFG_ENABLE_TCP_DELACK,
5565 pHddCtx->config->enable_tcp_delack);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005566 hdd_info("Name = [gTcpDelAckThresholdHigh] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005567 pHddCtx->config->tcpDelackThresholdHigh);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005568 hdd_info("Name = [gTcpDelAckThresholdLow] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005569 pHddCtx->config->tcpDelackThresholdLow);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005570 hdd_info("Name = [%s] Value = [%u] ",
Ravi Joshib89e7f72016-09-07 13:43:15 -07005571 CFG_TCP_DELACK_TIMER_COUNT,
5572 pHddCtx->config->tcp_delack_timer_count);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005573 hdd_info("Name = [%s] Value = [%u] ",
Ravi Joshib89e7f72016-09-07 13:43:15 -07005574 CFG_TCP_TX_HIGH_TPUT_THRESHOLD_NAME,
5575 pHddCtx->config->tcp_tx_high_tput_thres);
Mohit Khannae71e2262015-11-10 09:37:24 -08005576
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005577#endif
5578
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005579 hdd_info("Name = [gIgnoreCAC] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005580 pHddCtx->config->ignoreCAC);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005581 hdd_info("Name = [gSapPreferredChanLocation] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005582 pHddCtx->config->gSapPreferredChanLocation);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005583 hdd_info("Name = [gDisableDfsJapanW53] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005584 pHddCtx->config->gDisableDfsJapanW53);
5585#ifdef FEATURE_GREEN_AP
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005586 hdd_info("Name = [gEnableGreenAp] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005587 pHddCtx->config->enableGreenAP);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005588 hdd_info("Name = [gEenableEGAP] Value = [%u] ",
Ryan Hsucb118cf2015-11-09 16:03:53 -08005589 pHddCtx->config->enable_egap);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005590 hdd_info("Name = [gEGAPInactTime] Value = [%u] ",
Ryan Hsucb118cf2015-11-09 16:03:53 -08005591 pHddCtx->config->egap_inact_time);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005592 hdd_info("Name = [gEGAPWaitTime] Value = [%u] ",
Ryan Hsucb118cf2015-11-09 16:03:53 -08005593 pHddCtx->config->egap_wait_time);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005594 hdd_info("Name = [gEGAPFeatures] Value = [%u] ",
Ryan Hsucb118cf2015-11-09 16:03:53 -08005595 pHddCtx->config->egap_feature_flag);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005596#endif
5597#ifdef WLAN_FEATURE_ROAM_OFFLOAD
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005598 hdd_info("Name = [isRoamOffloadEnabled] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005599 pHddCtx->config->isRoamOffloadEnabled);
5600#endif
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005601 hdd_info("Name = [gEnableSifsBurst] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005602 pHddCtx->config->enableSifsBurst);
5603
5604#ifdef WLAN_FEATURE_LPSS
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005605 hdd_info("Name = [gEnableLpassSupport] Value = [%u] ",
Komal Seelamc11bb222016-01-27 18:57:10 +05305606 pHddCtx->config->enable_lpass_support);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005607#endif
5608
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005609 hdd_info("Name = [gEnableSelfRecovery] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005610 pHddCtx->config->enableSelfRecovery);
5611
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005612 hdd_info("Name = [gEnableSapSuspend] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005613 pHddCtx->config->enableSapSuspend);
5614
5615#ifdef WLAN_FEATURE_EXTWOW_SUPPORT
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005616 hdd_info("Name = [gExtWoWgotoSuspend] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005617 pHddCtx->config->extWowGotoSuspend);
5618
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005619 hdd_info("Name = [gExtWowApp1WakeupPinNumber] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005620 pHddCtx->config->extWowApp1WakeupPinNumber);
5621
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005622 hdd_info("Name = [gExtWowApp2WakeupPinNumber] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005623 pHddCtx->config->extWowApp2WakeupPinNumber);
5624
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005625 hdd_info("Name = [gExtWoWApp2KAInitPingInterval] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005626 pHddCtx->config->extWowApp2KAInitPingInterval);
5627
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005628 hdd_info("Name = [gExtWoWApp2KAMinPingInterval] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005629 pHddCtx->config->extWowApp2KAMinPingInterval);
5630
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005631 hdd_info("Name = [gExtWoWApp2KAMaxPingInterval] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005632 pHddCtx->config->extWowApp2KAMaxPingInterval);
5633
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005634 hdd_info("Name = [gExtWoWApp2KAIncPingInterval] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005635 pHddCtx->config->extWowApp2KAIncPingInterval);
5636
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005637 hdd_info("Name = [gExtWoWApp2TcpSrcPort] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005638 pHddCtx->config->extWowApp2TcpSrcPort);
5639
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005640 hdd_info("Name = [gExtWoWApp2TcpDstPort] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005641 pHddCtx->config->extWowApp2TcpDstPort);
5642
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005643 hdd_info("Name = [gExtWoWApp2TcpTxTimeout] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005644 pHddCtx->config->extWowApp2TcpTxTimeout);
5645
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005646 hdd_info("Name = [gExtWoWApp2TcpRxTimeout] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005647 pHddCtx->config->extWowApp2TcpRxTimeout);
5648#endif
5649
5650#ifdef DHCP_SERVER_OFFLOAD
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005651 hdd_info("Name = [gDHCPServerOffloadEnable] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005652 pHddCtx->config->enableDHCPServerOffload);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005653 hdd_info("Name = [gDHCPMaxNumClients] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005654 pHddCtx->config->dhcpMaxNumClients);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005655 hdd_info("Name = [gDHCPServerIP] Value = [%s]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005656 pHddCtx->config->dhcpServerIP);
5657#endif
5658
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005659 hdd_info("Name = [gEnableDumpCollect] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005660 pHddCtx->config->is_ramdump_enabled);
5661
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005662 hdd_info("Name = [gP2PListenDeferInterval] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005663 pHddCtx->config->p2p_listen_defer_interval);
Archana Ramachandrane87005c2016-08-23 16:57:30 -07005664 hdd_notice("Name = [is_ps_enabled] value = [%d]",
5665 pHddCtx->config->is_ps_enabled);
5666 hdd_notice("Name = [tso_enable] value = [%d]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005667 pHddCtx->config->tso_enable);
Archana Ramachandrane87005c2016-08-23 16:57:30 -07005668 hdd_notice("Name = [LROEnable] value = [%d]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005669 pHddCtx->config->lro_enable);
Archana Ramachandrane87005c2016-08-23 16:57:30 -07005670 hdd_notice("Name = [active_mode_offload] value = [%d]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005671 pHddCtx->config->active_mode_offload);
Archana Ramachandrane87005c2016-08-23 16:57:30 -07005672 hdd_notice("Name = [gfine_time_meas_cap] value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005673 pHddCtx->config->fine_time_meas_cap);
5674#ifdef WLAN_FEATURE_FASTPATH
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005675 hdd_info("Name = [fastpath_enable] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005676 pHddCtx->config->fastpath_enable);
5677#endif
Archana Ramachandrane87005c2016-08-23 16:57:30 -07005678 hdd_notice("Name = [max_scan_count] value = [%d]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005679 pHddCtx->config->max_scan_count);
Archana Ramachandrane87005c2016-08-23 16:57:30 -07005680 hdd_notice("Name = [%s] value = [%d]",
Nirav Shahbd36b062016-07-18 11:12:59 +05305681 CFG_RX_MODE_NAME, pHddCtx->config->rx_mode);
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005682 hdd_info("Name = [%s] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005683 CFG_CE_CLASSIFY_ENABLE_NAME,
5684 pHddCtx->config->ce_classify_enabled);
Archana Ramachandrane87005c2016-08-23 16:57:30 -07005685 hdd_notice("Name = [%s] value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005686 CFG_DUAL_MAC_FEATURE_DISABLE,
5687 pHddCtx->config->dual_mac_feature_disable);
Nitesh Shah50a3de12017-04-03 19:37:19 +05305688 hdd_notice("Name = [%s] Value = [%s]",
5689 CFG_DBS_SCAN_SELECTION_NAME,
5690 pHddCtx->config->dbs_scan_selection);
Varun Reddy Yeturub43fda12015-09-10 18:16:21 -07005691#ifdef FEATURE_WLAN_SCAN_PNO
Archana Ramachandrane87005c2016-08-23 16:57:30 -07005692 hdd_notice("Name = [%s] Value = [%u]",
5693 CFG_PNO_CHANNEL_PREDICTION_NAME,
5694 pHddCtx->config->pno_channel_prediction);
5695 hdd_notice("Name = [%s] Value = [%u]",
5696 CFG_TOP_K_NUM_OF_CHANNELS_NAME,
5697 pHddCtx->config->top_k_num_of_channels);
5698 hdd_notice("Name = [%s] Value = [%u]",
5699 CFG_STATIONARY_THRESHOLD_NAME,
5700 pHddCtx->config->stationary_thresh);
5701 hdd_notice("Name = [%s] Value = [%u]",
5702 CFG_CHANNEL_PREDICTION_FULL_SCAN_MS_NAME,
5703 pHddCtx->config->channel_prediction_full_scan);
5704 hdd_notice("Name = [%s] Value = [%u]",
5705 CFG_ADAPTIVE_PNOSCAN_DWELL_MODE_NAME,
5706 pHddCtx->config->pnoscan_adaptive_dwell_mode);
Varun Reddy Yeturub43fda12015-09-10 18:16:21 -07005707#endif
Archana Ramachandrane87005c2016-08-23 16:57:30 -07005708 hdd_notice("Name = [%s] Value = [%d]",
5709 CFG_EARLY_STOP_SCAN_ENABLE,
5710 pHddCtx->config->early_stop_scan_enable);
5711 hdd_notice("Name = [%s] Value = [%d]",
5712 CFG_EARLY_STOP_SCAN_MIN_THRESHOLD,
5713 pHddCtx->config->early_stop_scan_min_threshold);
5714 hdd_notice("Name = [%s] Value = [%d]",
5715 CFG_EARLY_STOP_SCAN_MAX_THRESHOLD,
5716 pHddCtx->config->early_stop_scan_max_threshold);
5717 hdd_notice("Name = [%s] Value = [%d]",
5718 CFG_FIRST_SCAN_BUCKET_THRESHOLD_NAME,
5719 pHddCtx->config->first_scan_bucket_threshold);
5720 hdd_notice("Name = [%s] Value = [%u]",
5721 CFG_HT_MPDU_DENSITY_NAME,
5722 pHddCtx->config->ht_mpdu_density);
Krishna Kumaar Natarajan22b59a72015-11-23 18:54:58 -08005723
Ravi Joshi742495d2015-11-09 18:56:53 -08005724
5725#ifdef FEATURE_LFR_SUBNET_DETECTION
Archana Ramachandrane87005c2016-08-23 16:57:30 -07005726 hdd_notice("Name = [%s] Value = [%d]",
5727 CFG_ENABLE_LFR_SUBNET_DETECTION,
5728 pHddCtx->config->enable_lfr_subnet_detection);
Ravi Joshi742495d2015-11-09 18:56:53 -08005729#endif
Gupta, Kapilc68ad462016-02-01 19:17:23 +05305730 hdd_info("Name = [%s] Value = [%u]",
5731 CFG_ROAM_DENSE_TRAFFIC_THRESHOLD,
5732 pHddCtx->config->roam_dense_traffic_thresh);
5733 hdd_info("Name = [%s] Value = [%u]",
5734 CFG_ROAM_DENSE_RSSI_THRE_OFFSET,
5735 pHddCtx->config->roam_dense_rssi_thresh_offset);
5736 hdd_info("Name = [%s] Value = [%u]",
Abhishek Singh165bc602016-03-21 12:43:00 +05305737 CFG_IGNORE_PEER_HT_MODE_NAME,
5738 pHddCtx->config->ignore_peer_ht_opmode);
5739 hdd_info("Name = [%s] Value = [%u]",
Kapil Gupta4b2efbb2016-10-03 13:07:20 +05305740 CFG_ENABLE_VENDOR_VHT_FOR_24GHZ_NAME,
5741 pHddCtx->config->enable_sap_vendor_vht);
5742 hdd_info("Name = [%s] Value = [%u]",
Abhishek Singh5ea86532016-04-27 14:10:53 +05305743 CFG_ENABLE_FATAL_EVENT_TRIGGER,
5744 pHddCtx->config->enable_fatal_event);
5745 hdd_info("Name = [%s] Value = [%u]",
Gupta, Kapilc68ad462016-02-01 19:17:23 +05305746 CFG_ROAM_DENSE_MIN_APS,
5747 pHddCtx->config->roam_dense_min_aps);
Agrawal Ashish17bb3902016-05-05 13:29:40 +05305748 hdd_info("Name = [%s] Value = [%u]",
5749 CFG_MIN_REST_TIME_NAME,
5750 pHddCtx->config->min_rest_time_conc);
5751 hdd_info("Name = [%s] Value = [%u]",
5752 CFG_IDLE_TIME_NAME,
5753 pHddCtx->config->idle_time_conc);
Mukul Sharmaf7d62e12016-09-03 15:16:22 +05305754 hdd_info("Name = [%s] Value = [%d]",
5755 CFG_BUG_ON_REINIT_FAILURE_NAME,
5756 pHddCtx->config->bug_on_reinit_failure);
Arun Khandavallifae92942016-08-01 13:31:08 +05305757 hdd_info("Name = [%s] Value = [%u]",
5758 CFG_INTERFACE_CHANGE_WAIT_NAME,
5759 pHddCtx->config->iface_change_wait_time);
Agrawal Ashish17bb3902016-05-05 13:29:40 +05305760
Abhishek Singh10ecf582016-05-04 17:48:59 +05305761 hdd_info("Name = [%s] Value = [%u]",
5762 CFG_ENABLE_EDCA_INI_NAME,
5763 pHddCtx->config->enable_edca_params);
5764
5765 hdd_info("Name = [%s] Value = [%u]",
5766 CFG_EDCA_VO_CWMIN_VALUE_NAME,
5767 pHddCtx->config->edca_vo_cwmin);
5768 hdd_info("Name = [%s] Value = [%u]",
5769 CFG_EDCA_VI_CWMIN_VALUE_NAME,
5770 pHddCtx->config->edca_vi_cwmin);
5771 hdd_info("Name = [%s] Value = [%u]",
5772 CFG_EDCA_BK_CWMIN_VALUE_NAME,
5773 pHddCtx->config->edca_bk_cwmin);
5774 hdd_info("Name = [%s] Value = [%u]",
5775 CFG_EDCA_BE_CWMIN_VALUE_NAME,
5776 pHddCtx->config->edca_be_cwmin);
5777
5778 hdd_info("Name = [%s] Value = [%u]",
5779 CFG_EDCA_VO_CWMAX_VALUE_NAME,
5780 pHddCtx->config->edca_vo_cwmax);
5781 hdd_info("Name = [%s] Value = [%u]",
5782 CFG_EDCA_VI_CWMAX_VALUE_NAME,
5783 pHddCtx->config->edca_vi_cwmax);
5784 hdd_info("Name = [%s] Value = [%u]",
5785 CFG_EDCA_BK_CWMAX_VALUE_NAME,
5786 pHddCtx->config->edca_bk_cwmax);
5787 hdd_info("Name = [%s] Value = [%u]",
5788 CFG_EDCA_BE_CWMAX_VALUE_NAME,
5789 pHddCtx->config->edca_be_cwmax);
5790
5791 hdd_info("Name = [%s] Value = [%u]",
5792 CFG_EDCA_VO_AIFS_VALUE_NAME,
5793 pHddCtx->config->edca_vo_aifs);
5794 hdd_info("Name = [%s] Value = [%u]",
5795 CFG_EDCA_VI_AIFS_VALUE_NAME,
5796 pHddCtx->config->edca_vi_aifs);
5797 hdd_info("Name = [%s] Value = [%u]",
5798 CFG_EDCA_BK_AIFS_VALUE_NAME,
5799 pHddCtx->config->edca_bk_aifs);
5800 hdd_info("Name = [%s] Value = [%u]",
5801 CFG_EDCA_BE_AIFS_VALUE_NAME,
5802 pHddCtx->config->edca_be_aifs);
gbian62edd7e2017-03-07 13:12:13 +08005803
5804 hdd_info("Name = [%s] Value = [%s]",
5805 CFG_ENABLE_TX_SCHED_WRR_VO_NAME,
5806 pHddCtx->config->tx_sched_wrr_vo);
5807 hdd_info("Name = [%s] Value = [%s]",
5808 CFG_ENABLE_TX_SCHED_WRR_VI_NAME,
5809 pHddCtx->config->tx_sched_wrr_vi);
5810 hdd_info("Name = [%s] Value = [%s]",
5811 CFG_ENABLE_TX_SCHED_WRR_BK_NAME,
5812 pHddCtx->config->tx_sched_wrr_bk);
5813 hdd_info("Name = [%s] Value = [%s]",
5814 CFG_ENABLE_TX_SCHED_WRR_BE_NAME,
5815 pHddCtx->config->tx_sched_wrr_be);
5816
Nirav Shahcc1f1ae2016-04-26 11:41:29 +05305817 hdd_info("Name = [%s] Value = [%u]",
5818 CFG_ENABLE_DP_TRACE,
5819 pHddCtx->config->enable_dp_trace);
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05305820 hdd_info("Name = [%s] Value = [%u]",
5821 CFG_ADAPTIVE_SCAN_DWELL_MODE_NAME,
5822 pHddCtx->config->scan_adaptive_dwell_mode);
5823 hdd_info("Name = [%s] Value = [%u]",
5824 CFG_ADAPTIVE_ROAMSCAN_DWELL_MODE_NAME,
5825 pHddCtx->config->roamscan_adaptive_dwell_mode);
5826 hdd_info("Name = [%s] Value = [%u]",
5827 CFG_ADAPTIVE_EXTSCAN_DWELL_MODE_NAME,
5828 pHddCtx->config->extscan_adaptive_dwell_mode);
5829 hdd_info("Name = [%s] Value = [%u]",
5830 CFG_ADAPTIVE_DWELL_MODE_ENABLED_NAME,
5831 pHddCtx->config->adaptive_dwell_mode_enabled);
5832 hdd_info("Name = [%s] Value = [%u]",
5833 CFG_GLOBAL_ADAPTIVE_DWELL_MODE_NAME,
5834 pHddCtx->config->global_adapt_dwelltime_mode);
5835 hdd_info("Name = [%s] Value = [%u]",
5836 CFG_ADAPT_DWELL_LPF_WEIGHT_NAME,
5837 pHddCtx->config->adapt_dwell_lpf_weight);
5838 hdd_info("Name = [%s] Value = [%u]",
5839 CFG_ADAPT_DWELL_PASMON_INTVAL_NAME,
5840 pHddCtx->config->adapt_dwell_passive_mon_intval);
5841 hdd_info("Name = [%s] Value = [%u]",
5842 CFG_ADAPT_DWELL_WIFI_THRESH_NAME,
5843 pHddCtx->config->adapt_dwell_wifi_act_threshold);
Naveen Rawat64e477e2016-05-20 10:34:56 -07005844 hdd_info("Name = [%s] value = [%u]",
5845 CFG_SUB_20_CHANNEL_WIDTH_NAME,
5846 pHddCtx->config->enable_sub_20_channel_width);
Rajeev Kumar Sirasanagandlaaf474742016-09-06 17:54:50 +05305847 hdd_info("Name = [%s] Value = [%u]",
5848 CFG_TGT_GTX_USR_CFG_NAME,
5849 pHddCtx->config->tgt_gtx_usr_cfg);
Agrawal, Ashish4e5fa1c2016-09-21 19:03:43 +05305850 hdd_info("Name = [%s] Value = [%u]",
5851 CFG_SAP_MAX_INACTIVITY_OVERRIDE_NAME,
5852 pHddCtx->config->sap_max_inactivity_override);
Deepak Dhamdhere3385d752016-05-25 20:36:47 -07005853 hdd_ndp_print_ini_config(pHddCtx);
Krishna Kumaar Natarajancc077c22016-08-02 10:41:53 -07005854 hdd_info("Name = [%s] Value = [%s]",
5855 CFG_RM_CAPABILITY_NAME,
5856 pHddCtx->config->rm_capability);
Rajeev Kumardd3bc602016-08-16 14:21:05 -07005857 hdd_info("Name = [%s] Value = [%d]",
Rajeev Kumar Sirasanagandlab79b5462016-09-06 18:33:17 +05305858 CFG_SAP_FORCE_11N_FOR_11AC_NAME,
5859 pHddCtx->config->sap_force_11n_for_11ac);
5860 hdd_info("Name = [%s] Value = [%d]",
Rajeev Kumardd3bc602016-08-16 14:21:05 -07005861 CFG_BPF_PACKET_FILTER_OFFLOAD,
5862 pHddCtx->config->bpf_packet_filter_enable);
Nitesh Shah61c10d92016-10-19 19:29:15 +05305863 hdd_info("Name = [%s] Value = [%u]",
5864 CFG_TDLS_ENABLE_DEFER_TIMER,
5865 pHddCtx->config->tdls_enable_defer_time);
Ravi Joshibb8d4512016-08-22 10:14:52 -07005866 hdd_info("Name = [%s] Value = [%d]",
5867 CFG_FILTER_MULTICAST_REPLAY_NAME,
5868 pHddCtx->config->multicast_replay_filter);
Agrawal Ashishb2d1a452016-05-05 12:23:58 +05305869 hdd_info("Name = [%s] Value = [%u]",
5870 CFG_ENABLE_GO_CTS2SELF_FOR_STA,
5871 pHddCtx->config->enable_go_cts2self_for_sta);
Sandeep Puligillaafa52892016-10-26 19:03:16 -07005872 hdd_info("Name = [%s] Value = [%u]",
5873 CFG_CRASH_FW_TIMEOUT_NAME,
5874 pHddCtx->config->fw_timeout_crash);
Hanumanth Reddy Pothulae87621b2017-04-12 20:53:35 +05305875 hdd_debug("Name = [%s] Value = [%u]",
5876 CFG_ACTIVE_UC_BPF_MODE_NAME,
5877 pHddCtx->config->active_uc_bpf_mode);
5878 hdd_debug("Name = [%s] Value = [%u]",
5879 CFG_ACTIVE_MC_BC_BPF_MODE_NAME,
5880 pHddCtx->config->active_mc_bc_bpf_mode);
Arun Khandavallicc544b32017-01-30 19:52:16 +05305881 hdd_info("Name = [%s] Value = [%d]",
5882 CFG_SAP_INTERNAL_RESTART_NAME,
5883 pHddCtx->config->sap_internal_restart);
Kapil Gupta5cda2252016-12-29 18:44:26 +05305884 hdd_per_roam_print_ini_config(pHddCtx);
Krishna Kumaar Natarajan90bb6f12017-03-03 21:05:52 -08005885 hdd_he_print_ini_config(pHddCtx);
Srinivas Girigowda70e169a2017-03-07 23:55:57 -08005886 hdd_info("Name = [%s] Value = [%d]",
5887 CFG_ARP_AC_CATEGORY,
5888 pHddCtx->config->arp_ac_category);
Dustin Brown20b6fcf2017-05-17 15:35:17 -07005889 hdd_info("Name = [%s] Value = [%u]",
5890 CFG_SCAN_BACKOFF_MULTIPLIER_NAME,
5891 pHddCtx->config->scan_backoff_multiplier);
Jayachandran Sreekumaran68c952c2017-04-24 12:42:03 +05305892 hdd_info("Name = [%s] Value = [%d]",
5893 CFG_EXTERNAL_ACS_POLICY,
5894 pHddCtx->config->external_acs_policy);
5895 hdd_info("Name = [%s] Value = [%d]",
5896 CFG_EXTERNAL_ACS_FREQ_BAND,
5897 pHddCtx->config->external_acs_freq_band);
Naveen Rawat2b6e3c92017-03-20 13:59:07 -07005898 hdd_info("Name = [%s] value = [%u]",
5899 CFG_DROPPED_PKT_DISCONNECT_TH_NAME,
5900 pHddCtx->config->pkt_err_disconn_th);
Naveen Rawatb2fc4132017-05-10 20:42:05 -07005901 hdd_debug("Name = [%s] value = [%u]",
5902 CFG_FORCE_1X1_NAME,
5903 pHddCtx->config->is_force_1x1);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005904}
5905
5906
5907/**
5908 * hdd_update_mac_config() - update MAC address from cfg file
5909 * @pHddCtx: the pointer to hdd context
5910 *
5911 * It overwrites the MAC address if config file exist.
5912 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305913 * Return: QDF_STATUS_SUCCESS if the MAC address is found from cfg file
5914 * and overwritten, otherwise QDF_STATUS_E_INVAL
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005915 */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305916QDF_STATUS hdd_update_mac_config(hdd_context_t *pHddCtx)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005917{
5918 int status, i = 0;
5919 const struct firmware *fw = NULL;
5920 char *line, *buffer = NULL;
Yuanyuan Liu6043d3c2016-07-25 11:40:38 -07005921 char *temp = NULL;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005922 char *name, *value;
Anurag Chouhan6d760662016-02-20 16:05:43 +05305923 tCfgIniEntry macTable[QDF_MAX_CONCURRENCY_PERSONA];
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005924 tSirMacAddr customMacAddr;
5925
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305926 QDF_STATUS qdf_status = QDF_STATUS_SUCCESS;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005927
5928 memset(macTable, 0, sizeof(macTable));
5929 status = request_firmware(&fw, WLAN_MAC_FILE, pHddCtx->parent_dev);
5930
5931 if (status) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005932 hdd_err("request_firmware failed %d", status);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305933 qdf_status = QDF_STATUS_E_FAILURE;
5934 return qdf_status;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005935 }
5936 if (!fw || !fw->data || !fw->size) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005937 hdd_alert("invalid firmware");
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305938 qdf_status = QDF_STATUS_E_INVAL;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005939 goto config_exit;
5940 }
5941
Yuanyuan Liu6043d3c2016-07-25 11:40:38 -07005942 hdd_debug("wlan_mac.bin size %zu", fw->size);
5943
Srinivas Girigowdae6b465b2017-03-30 18:27:25 -07005944 temp = qdf_mem_malloc(fw->size + 1);
Yuanyuan Liu6043d3c2016-07-25 11:40:38 -07005945
5946 if (temp == NULL) {
5947 hdd_err("fail to alloc memory");
5948 qdf_status = QDF_STATUS_E_NOMEM;
5949 goto config_exit;
5950 }
5951 buffer = temp;
5952 qdf_mem_copy(buffer, fw->data, fw->size);
Srinivas Girigowdafb20a952017-04-05 11:38:48 -07005953 buffer[fw->size] = 0x0;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005954
5955 /* data format:
5956 * Intf0MacAddress=00AA00BB00CC
5957 * Intf1MacAddress=00AA00BB00CD
5958 * END
5959 */
5960 while (buffer != NULL) {
5961 line = get_next_line(buffer);
5962 buffer = i_trim(buffer);
5963
5964 if (strlen((char *)buffer) == 0 || *buffer == '#') {
5965 buffer = line;
5966 continue;
5967 }
5968 if (strncmp(buffer, "END", 3) == 0)
5969 break;
5970
5971 name = buffer;
5972 buffer = strnchr(buffer, strlen(buffer), '=');
5973 if (buffer) {
5974 *buffer++ = '\0';
5975 i_trim(name);
5976 if (strlen(name) != 0) {
5977 buffer = i_trim(buffer);
5978 if (strlen(buffer) == 12) {
5979 value = buffer;
5980 macTable[i].name = name;
5981 macTable[i++].value = value;
Anurag Chouhan6d760662016-02-20 16:05:43 +05305982 if (i >= QDF_MAX_CONCURRENCY_PERSONA)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005983 break;
5984 }
5985 }
5986 }
5987 buffer = line;
5988 }
Anurag Chouhan6d760662016-02-20 16:05:43 +05305989 if (i <= QDF_MAX_CONCURRENCY_PERSONA) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005990 hdd_debug("%d Mac addresses provided", i);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005991 } else {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005992 hdd_err("invalid number of Mac address provided, nMac = %d", i);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305993 qdf_status = QDF_STATUS_E_INVAL;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005994 goto config_exit;
5995 }
5996
5997 update_mac_from_string(pHddCtx, &macTable[0], i);
5998
Anurag Chouhan600c3a02016-03-01 10:33:54 +05305999 qdf_mem_copy(&customMacAddr,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006000 &pHddCtx->config->intfMacAddr[0].bytes[0],
6001 sizeof(tSirMacAddr));
6002 sme_set_custom_mac_addr(customMacAddr);
6003
6004config_exit:
Yuanyuan Liu6043d3c2016-07-25 11:40:38 -07006005 qdf_mem_free(temp);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006006 release_firmware(fw);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306007 return qdf_status;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006008}
6009
6010/**
Manjunathappa Prakash59f861d2016-04-21 10:33:31 -07006011 * hdd_disable_runtime_pm() - Override to disable runtime_pm.
6012 * @cfg_ini: Handle to struct hdd_config
6013 *
6014 * Return: None
6015 */
6016#ifdef FEATURE_RUNTIME_PM
6017static void hdd_disable_runtime_pm(struct hdd_config *cfg_ini)
6018{
6019 cfg_ini->runtime_pm = 0;
6020}
6021#else
6022static void hdd_disable_runtime_pm(struct hdd_config *cfg_ini)
6023{
6024}
6025#endif
6026
6027/**
6028 * hdd_disable_auto_shutdown() - Override to disable auto_shutdown.
6029 * @cfg_ini: Handle to struct hdd_config
6030 *
6031 * Return: None
6032 */
6033#ifdef FEATURE_WLAN_AUTO_SHUTDOWN
6034static void hdd_disable_auto_shutdown(struct hdd_config *cfg_ini)
6035{
6036 cfg_ini->WlanAutoShutdown = 0;
6037}
6038#else
6039static void hdd_disable_auto_shutdown(struct hdd_config *cfg_ini)
6040{
6041}
6042#endif
6043
6044/**
6045 * hdd_override_all_ps() - overrides to disables all the powersave features.
6046 * @hdd_ctx: Pointer to HDD context.
6047 * Overrides below powersave ini configurations.
6048 * gEnableImps=0
6049 * gEnableBmps=0
6050 * gRuntimePM=0
6051 * gWlanAutoShutdown = 0
6052 * gEnableSuspend=0
6053 * gEnablePowerSaveOffload=0
6054 * gEnableWoW=0
6055 *
6056 * Return: None
6057 */
6058static void hdd_override_all_ps(hdd_context_t *hdd_ctx)
6059{
6060 struct hdd_config *cfg_ini = hdd_ctx->config;
6061
6062 cfg_ini->fIsImpsEnabled = 0;
6063 cfg_ini->is_ps_enabled = 0;
6064 hdd_disable_runtime_pm(cfg_ini);
6065 hdd_disable_auto_shutdown(cfg_ini);
6066 cfg_ini->enablePowersaveOffload = 0;
6067 cfg_ini->wowEnable = 0;
6068}
6069
6070/**
Nirav Shahbd36b062016-07-18 11:12:59 +05306071 * hdd_set_rx_mode_value() - set rx_mode values
6072 * @hdd_ctx: hdd context
6073 *
6074 * Return: none
6075 */
Jeff Johnsonf1bf3a62016-10-05 15:48:13 -07006076static void hdd_set_rx_mode_value(hdd_context_t *hdd_ctx)
Nirav Shahbd36b062016-07-18 11:12:59 +05306077{
6078 if (hdd_ctx->config->rx_mode & CFG_ENABLE_RX_THREAD &&
6079 hdd_ctx->config->rx_mode & CFG_ENABLE_RPS) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006080 hdd_warn("rx_mode wrong configuration. Make it default");
Nirav Shahbd36b062016-07-18 11:12:59 +05306081 hdd_ctx->config->rx_mode = CFG_RX_MODE_DEFAULT;
6082 }
6083
6084 if (hdd_ctx->config->rx_mode & CFG_ENABLE_RX_THREAD)
6085 hdd_ctx->enableRxThread = true;
6086
6087 if (hdd_ctx->config->rx_mode & CFG_ENABLE_RPS)
6088 hdd_ctx->rps = true;
6089
6090 if (hdd_ctx->config->rx_mode & CFG_ENABLE_NAPI)
6091 hdd_ctx->napi_enable = true;
6092}
6093
6094/**
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006095 * hdd_parse_config_ini() - parse the ini configuration file
6096 * @pHddCtx: the pointer to hdd context
6097 *
6098 * This function reads the qcom_cfg.ini file and
6099 * parses each 'Name=Value' pair in the ini file
6100 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306101 * Return: QDF_STATUS_SUCCESS if the qcom_cfg.ini is correctly read,
6102 * otherwise QDF_STATUS_E_INVAL
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006103 */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306104QDF_STATUS hdd_parse_config_ini(hdd_context_t *pHddCtx)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006105{
6106 int status, i = 0;
6107 /** Pointer for firmware image data */
6108 const struct firmware *fw = NULL;
6109 char *buffer, *line, *pTemp = NULL;
6110 size_t size;
6111 char *name, *value;
6112 /* cfgIniTable is static to avoid excess stack usage */
6113 static tCfgIniEntry cfgIniTable[MAX_CFG_INI_ITEMS];
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306114 QDF_STATUS qdf_status = QDF_STATUS_SUCCESS;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006115
6116 memset(cfgIniTable, 0, sizeof(cfgIniTable));
6117
6118 status = request_firmware(&fw, WLAN_INI_FILE, pHddCtx->parent_dev);
6119
6120 if (status) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08006121 hdd_alert("request_firmware failed %d", status);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306122 qdf_status = QDF_STATUS_E_FAILURE;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006123 goto config_exit;
6124 }
6125 if (!fw || !fw->data || !fw->size) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08006126 hdd_alert("%s download failed", WLAN_INI_FILE);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306127 qdf_status = QDF_STATUS_E_FAILURE;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006128 goto config_exit;
6129 }
6130
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006131 hdd_debug("qcom_cfg.ini Size %zu", fw->size);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006132
Anurag Chouhan600c3a02016-03-01 10:33:54 +05306133 buffer = (char *)qdf_mem_malloc(fw->size);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006134
6135 if (NULL == buffer) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006136 hdd_err("qdf_mem_malloc failure");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006137 release_firmware(fw);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306138 return QDF_STATUS_E_NOMEM;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006139 }
6140 pTemp = buffer;
6141
Anurag Chouhan600c3a02016-03-01 10:33:54 +05306142 qdf_mem_copy((void *)buffer, (void *)fw->data, fw->size);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006143 size = fw->size;
6144
6145 while (buffer != NULL) {
6146 line = get_next_line(buffer);
6147 buffer = i_trim(buffer);
6148
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006149 hdd_debug("%s: item", buffer);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006150
6151 if (strlen((char *)buffer) == 0 || *buffer == '#') {
6152 buffer = line;
6153 continue;
Jeff Johnson68755312017-02-10 11:46:55 -08006154 }
6155
6156 if (strncmp(buffer, "END", 3) == 0)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006157 break;
Jeff Johnson68755312017-02-10 11:46:55 -08006158
6159 name = buffer;
6160 while (*buffer != '=' && *buffer != '\0')
6161 buffer++;
6162 if (*buffer != '\0') {
6163 *buffer++ = '\0';
6164 i_trim(name);
6165 if (strlen(name) != 0) {
6166 buffer = i_trim(buffer);
6167 if (strlen(buffer) > 0) {
6168 value = buffer;
6169 while (!i_isspace(*buffer)
6170 && *buffer != '\0')
6171 buffer++;
6172 *buffer = '\0';
6173 cfgIniTable[i].name = name;
6174 cfgIniTable[i++].value = value;
6175 if (i >= MAX_CFG_INI_ITEMS) {
6176 hdd_err("Number of items in %s > %d",
6177 WLAN_INI_FILE,
6178 MAX_CFG_INI_ITEMS);
6179 break;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006180 }
6181 }
6182 }
6183 }
6184 buffer = line;
6185 }
6186
6187 /* Loop through the registry table and apply all these configs */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306188 qdf_status = hdd_apply_cfg_ini(pHddCtx, cfgIniTable, i);
Nirav Shahbd36b062016-07-18 11:12:59 +05306189 hdd_set_rx_mode_value(pHddCtx);
Manjunathappa Prakash59f861d2016-04-21 10:33:31 -07006190 if (QDF_GLOBAL_MONITOR_MODE == cds_get_conparam())
6191 hdd_override_all_ps(pHddCtx);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006192
6193config_exit:
6194 release_firmware(fw);
Anurag Chouhan600c3a02016-03-01 10:33:54 +05306195 qdf_mem_free(pTemp);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306196 return qdf_status;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006197}
6198
6199/**
6200 * hdd_cfg_xlate_to_csr_phy_mode() - convert PHY mode
6201 * @dot11Mode: the mode to convert
6202 *
6203 * Convert the configuration PHY mode to CSR PHY mode
6204 *
6205 * Return: the CSR phy mode value
6206 */
Srinivas Girigowda2fb677c2017-03-25 15:35:34 -07006207eCsrPhyMode hdd_cfg_xlate_to_csr_phy_mode(enum hdd_dot11_mode dot11Mode)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006208{
Naveen Rawat10b1c152017-01-18 11:16:06 -08006209 if (cds_is_sub_20_mhz_enabled())
6210 return eCSR_DOT11_MODE_abg;
6211
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006212 switch (dot11Mode) {
6213 case (eHDD_DOT11_MODE_abg):
6214 return eCSR_DOT11_MODE_abg;
6215 case (eHDD_DOT11_MODE_11b):
6216 return eCSR_DOT11_MODE_11b;
6217 case (eHDD_DOT11_MODE_11g):
6218 return eCSR_DOT11_MODE_11g;
6219 default:
6220 case (eHDD_DOT11_MODE_11n):
6221 return eCSR_DOT11_MODE_11n;
6222 case (eHDD_DOT11_MODE_11g_ONLY):
6223 return eCSR_DOT11_MODE_11g_ONLY;
6224 case (eHDD_DOT11_MODE_11n_ONLY):
6225 return eCSR_DOT11_MODE_11n_ONLY;
6226 case (eHDD_DOT11_MODE_11b_ONLY):
6227 return eCSR_DOT11_MODE_11b_ONLY;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006228 case (eHDD_DOT11_MODE_11ac_ONLY):
6229 return eCSR_DOT11_MODE_11ac_ONLY;
6230 case (eHDD_DOT11_MODE_11ac):
6231 return eCSR_DOT11_MODE_11ac;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006232 case (eHDD_DOT11_MODE_AUTO):
6233 return eCSR_DOT11_MODE_AUTO;
6234 case (eHDD_DOT11_MODE_11a):
6235 return eCSR_DOT11_MODE_11a;
Krishna Kumaar Natarajan4f1d7722017-03-03 21:12:51 -08006236 case (eHDD_DOT11_MODE_11ax_ONLY):
6237 return eCSR_DOT11_MODE_11ax_ONLY;
6238 case (eHDD_DOT11_MODE_11ax):
6239 return eCSR_DOT11_MODE_11ax;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006240 }
6241
6242}
6243
6244/**
6245 * hdd_set_idle_ps_config() - set idle power save configuration
6246 * @pHddCtx: the pointer to hdd context
6247 * @val: the value to configure
6248 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306249 * Return: QDF_STATUS_SUCCESS if command set correctly,
6250 * otherwise the QDF_STATUS return from SME layer
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006251 */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306252QDF_STATUS hdd_set_idle_ps_config(hdd_context_t *pHddCtx, uint32_t val)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006253{
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306254 QDF_STATUS status = QDF_STATUS_SUCCESS;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006255
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006256 hdd_debug("hdd_set_idle_ps_config: Enter Val %d", val);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006257
Kiran Kumar Lokerefc2803d2016-01-11 19:31:38 -08006258 status = sme_set_idle_powersave_config(pHddCtx->pcds_context,
6259 pHddCtx->hHal, val);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306260 if (QDF_STATUS_SUCCESS != status)
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08006261 hdd_err("Fail to Set Idle PS Config val %d", val);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006262 return status;
6263}
6264
6265/**
6266 * hdd_set_fine_time_meas_cap() - set fine timing measurement capability
6267 * @hdd_ctx: HDD context
6268 * @sme_config: pointer to SME config
6269 *
6270 * This function is used to pass fine timing measurement capability coming
6271 * from INI to SME. This function make sure that configure INI is supported
6272 * by the device. Use bit mask to mask out the unsupported capabilities.
6273 *
6274 * Return: None
6275 */
6276static void hdd_set_fine_time_meas_cap(hdd_context_t *hdd_ctx,
6277 tSmeConfigParams *sme_config)
6278{
6279 struct hdd_config *config = hdd_ctx->config;
6280 uint32_t capability = config->fine_time_meas_cap;
6281
6282 /* Make sure only supported capabilities are enabled in INI */
6283 capability &= CFG_FINE_TIME_MEAS_CAPABILITY_MAX;
Krunal Soni1878d3a2016-01-14 13:00:44 -08006284 sme_config->csrConfig.fine_time_meas_cap = capability;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006285
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006286 hdd_debug("fine time meas capability - INI: %04x Enabled: %04x",
Krunal Soni1878d3a2016-01-14 13:00:44 -08006287 config->fine_time_meas_cap,
6288 sme_config->csrConfig.fine_time_meas_cap);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006289}
6290
6291/**
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006292 * hdd_convert_string_to_u8_array() - used to convert string into u8 array
6293 * @str: String to be converted
6294 * @hex_array: Array where converted value is stored
6295 * @len: Length of the populated array
6296 * @array_max_len: Maximum length of the array
6297 * @to_hex: true, if conversion required for hex string
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006298 *
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006299 * This API is called to convert string (each byte separated by
6300 * a comma) into an u8 array
6301 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306302 * Return: QDF_STATUS
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006303 */
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006304
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306305static QDF_STATUS hdd_convert_string_to_array(char *str, uint8_t *array,
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006306 uint8_t *len, uint8_t array_max_len, bool to_hex)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006307{
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006308 char *format, *s = str;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006309
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006310 if (str == NULL || array == NULL || len == NULL)
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306311 return QDF_STATUS_E_INVAL;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006312
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006313 format = (to_hex) ? "%02x" : "%d";
6314
6315 *len = 0;
6316 while ((s != NULL) && (*len < array_max_len)) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006317 int val;
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006318 /* Increment length only if sscanf successfully extracted
6319 * one element. Any other return value means error.
Jeff Johnson78d88a82017-01-12 09:50:54 -08006320 * Ignore it.
6321 */
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006322 if (sscanf(s, format, &val) == 1) {
6323 array[*len] = (uint8_t) val;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006324 *len += 1;
6325 }
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006326
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006327 s = strpbrk(s, ",");
6328 if (s)
6329 s++;
6330 }
6331
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306332 return QDF_STATUS_SUCCESS;
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006333}
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006334
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006335/**
6336 * hdd_hex_string_to_u8_array() - used to convert hex string into u8 array
6337 * @str: Hexadecimal string
6338 * @hex_array: Array where converted value is stored
6339 * @len: Length of the populated array
6340 * @array_max_len: Maximum length of the array
6341 *
6342 * This API is called to convert hexadecimal string (each byte separated by
6343 * a comma) into an u8 array
6344 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306345 * Return: QDF_STATUS
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006346 */
Jeff Johnsonf1bf3a62016-10-05 15:48:13 -07006347static QDF_STATUS hdd_hex_string_to_u8_array(char *str, uint8_t *hex_array,
6348 uint8_t *len,
6349 uint8_t array_max_len)
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006350{
6351 return hdd_convert_string_to_array(str, hex_array, len,
6352 array_max_len, true);
6353}
6354
6355/**
6356 * hdd_string_to_u8_array() - used to convert decimal string into u8 array
6357 * @str: Decimal string
6358 * @hex_array: Array where converted value is stored
6359 * @len: Length of the populated array
6360 * @array_max_len: Maximum length of the array
6361 *
6362 * This API is called to convert decimal string (each byte separated by
6363 * a comma) into an u8 array
6364 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306365 * Return: QDF_STATUS
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006366 */
6367
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306368QDF_STATUS hdd_string_to_u8_array(char *str, uint8_t *array,
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006369 uint8_t *len, uint8_t array_max_len)
6370{
6371 return hdd_convert_string_to_array(str, array, len,
6372 array_max_len, false);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006373}
6374
6375/**
Nirav Shahbd36b062016-07-18 11:12:59 +05306376 * hdd_hex_string_to_u16_array() - convert a hex string to a uint16 array
6377 * @str: input string
6378 * @int_array: pointer to input array of type uint16
6379 * @len: pointer to number of elements which the function adds to the array
6380 * @int_array_max_len: maximum number of elements in input uint16 array
6381 *
6382 * This function is used to convert a space separated hex string to an array of
6383 * uint16_t. For example, an input string str = "a b c d" would be converted to
6384 * a unint16 array, int_array = {0xa, 0xb, 0xc, 0xd}, *len = 4.
6385 * This assumes that input value int_array_max_len >= 4.
6386 *
6387 * Return: QDF_STATUS_SUCCESS - if the conversion is successful
6388 * non zero value - if the conversion is a failure
6389 */
6390QDF_STATUS hdd_hex_string_to_u16_array(char *str,
6391 uint16_t *int_array, uint8_t *len, uint8_t int_array_max_len)
6392{
6393 char *s = str;
6394 uint32_t val = 0;
6395
6396 if (str == NULL || int_array == NULL || len == NULL)
6397 return QDF_STATUS_E_INVAL;
6398
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006399 hdd_debug("str %p intArray %p intArrayMaxLen %d",
Nirav Shahbd36b062016-07-18 11:12:59 +05306400 s, int_array, int_array_max_len);
6401
6402 *len = 0;
6403
6404 while ((s != NULL) && (*len < int_array_max_len)) {
6405 /*
6406 * Increment length only if sscanf successfully extracted one
6407 * element. Any other return value means error. Ignore it.
6408 */
6409 if (sscanf(s, "%x", &val) == 1) {
6410 int_array[*len] = (uint16_t) val;
6411 hdd_debug("s %p val %x intArray[%d]=0x%x",
6412 s, val, *len, int_array[*len]);
6413 *len += 1;
6414 }
6415 s = strpbrk(s, " ");
6416 if (s)
6417 s++;
6418 }
6419 return QDF_STATUS_SUCCESS;
6420}
6421
Nirav Shahbd36b062016-07-18 11:12:59 +05306422/**
Krunal Soni52198e42016-09-26 13:53:09 -07006423 * hdd_update_ht_cap_in_cfg() - to update HT cap in global CFG
Krunal Sonidf0f8742016-09-26 14:56:31 -07006424 * @hdd_ctx: pointer to hdd context
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006425 *
Krunal Soni52198e42016-09-26 13:53:09 -07006426 * This API will update the HT config in CFG after taking intersection
6427 * of INI and firmware capabilities provided reading CFG
6428 *
6429 * Return: true or false
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006430 */
Krunal Sonidf0f8742016-09-26 14:56:31 -07006431static bool hdd_update_ht_cap_in_cfg(hdd_context_t *hdd_ctx)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006432{
Krunal Soni5c390162016-09-26 15:07:05 -07006433 uint32_t val32;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006434 uint16_t val16;
Krunal Soni5c390162016-09-26 15:07:05 -07006435 bool status = true;
Krunal Sonidf0f8742016-09-26 14:56:31 -07006436 tSirMacHTCapabilityInfo *ht_cap_info;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006437
Krunal Sonidf0f8742016-09-26 14:56:31 -07006438 if (sme_cfg_get_int(hdd_ctx->hHal, WNI_CFG_HT_CAP_INFO,
Krunal Soni5c390162016-09-26 15:07:05 -07006439 &val32) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306440 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006441 status = false;
Krunal Soni5c390162016-09-26 15:07:05 -07006442 hdd_err("Could not get WNI_CFG_HT_CAP_INFO");
Sandeep Puligilla607f34a2016-05-25 14:37:47 -07006443 }
Krunal Soni5c390162016-09-26 15:07:05 -07006444 val16 = (uint16_t) val32;
Krunal Sonidf0f8742016-09-26 14:56:31 -07006445 ht_cap_info = (tSirMacHTCapabilityInfo *) &val16;
Krunal Sonia2c0e412017-05-04 14:12:41 +05306446 ht_cap_info->advCodingCap &= hdd_ctx->config->enable_rx_ldpc;
Krunal Soni5c390162016-09-26 15:07:05 -07006447 ht_cap_info->rxSTBC = QDF_MIN(ht_cap_info->rxSTBC,
6448 hdd_ctx->config->enableRxSTBC);
6449 ht_cap_info->txSTBC &= hdd_ctx->config->enableTxSTBC;
6450 ht_cap_info->shortGI20MHz &= hdd_ctx->config->ShortGI20MhzEnable;
6451 ht_cap_info->shortGI40MHz &= hdd_ctx->config->ShortGI40MhzEnable;
6452 val32 = val16;
6453 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_HT_CAP_INFO, val32) ==
6454 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006455 status = false;
Krunal Soni5c390162016-09-26 15:07:05 -07006456 hdd_err("Could not set WNI_CFG_HT_CAP_INFO");
Krunal Soni52198e42016-09-26 13:53:09 -07006457 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07006458 return status;
Krunal Soni52198e42016-09-26 13:53:09 -07006459}
6460
6461/**
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006462 * hdd_update_vht_cap_in_cfg() - to update VHT cap in global CFG
Krunal Sonidf0f8742016-09-26 14:56:31 -07006463 * @hdd_ctx: pointer to hdd context
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006464 *
6465 * This API will update the VHT config in CFG after taking intersection
6466 * of INI and firmware capabilities provided reading CFG
6467 *
6468 * Return: true or false
6469 */
Krunal Sonidf0f8742016-09-26 14:56:31 -07006470static bool hdd_update_vht_cap_in_cfg(hdd_context_t *hdd_ctx)
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006471{
Krunal Sonidf0f8742016-09-26 14:56:31 -07006472 bool status = true;
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006473 uint32_t val;
Krunal Sonidf0f8742016-09-26 14:56:31 -07006474 struct hdd_config *config = hdd_ctx->config;
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006475
Krunal Sonidf0f8742016-09-26 14:56:31 -07006476 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_VHT_ENABLE_TXBF_20MHZ,
6477 config->enableTxBFin20MHz) ==
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006478 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006479 status = false;
6480 hdd_err("Couldn't set value for WNI_CFG_VHT_ENABLE_TXBF_20MHZ");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006481 }
6482 /* Based on cfg.ini, update the Basic MCS set, RX/TX MCS map
6483 * in the cfg.dat. Valid values are 0(MCS0-7), 1(MCS0-8), 2(MCS0-9)
6484 * we update only the least significant 2 bits in the
6485 * corresponding fields.
6486 */
Krunal Sonidf0f8742016-09-26 14:56:31 -07006487 if ((config->dot11Mode == eHDD_DOT11_MODE_AUTO) ||
6488 (config->dot11Mode == eHDD_DOT11_MODE_11ac_ONLY) ||
6489 (config->dot11Mode == eHDD_DOT11_MODE_11ac)) {
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006490 /* Currently shortGI40Mhz is used for shortGI80Mhz */
Krunal Sonidf0f8742016-09-26 14:56:31 -07006491 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_VHT_SHORT_GI_80MHZ,
6492 config->ShortGI40MhzEnable) == QDF_STATUS_E_FAILURE) {
6493 status = false;
6494 hdd_err("Couldn't pass WNI_VHT_SHORT_GI_80MHZ to CFG");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006495 }
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07006496 /* Hardware is capable of doing
6497 * 128K AMPDU in 11AC mode
6498 */
Krunal Sonidf0f8742016-09-26 14:56:31 -07006499 if (sme_cfg_set_int(hdd_ctx->hHal,
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006500 WNI_CFG_VHT_AMPDU_LEN_EXPONENT,
Krunal Sonidf0f8742016-09-26 14:56:31 -07006501 config->fVhtAmpduLenExponent) ==
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006502 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006503 status = false;
6504 hdd_err("Couldn't pass on WNI_CFG_VHT_AMPDU_LEN_EXPONENT to CFG");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006505 }
6506 /* Change MU Bformee only when TxBF is enabled */
Krunal Sonidf0f8742016-09-26 14:56:31 -07006507 if (config->enableTxBF) {
6508 sme_cfg_get_int(hdd_ctx->hHal,
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006509 WNI_CFG_VHT_MU_BEAMFORMEE_CAP, &val);
6510
Krunal Sonidf0f8742016-09-26 14:56:31 -07006511 if (val != config->enableMuBformee) {
6512 if (sme_cfg_set_int(hdd_ctx->hHal,
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006513 WNI_CFG_VHT_MU_BEAMFORMEE_CAP,
Krunal Sonidf0f8742016-09-26 14:56:31 -07006514 config->enableMuBformee
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006515 ) == QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006516 status = false;
6517 hdd_err("Couldn't pass on WNI_CFG_VHT_MU_BEAMFORMEE_CAP to CFG");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006518 }
6519 }
6520 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07006521 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_VHT_MAX_MPDU_LENGTH,
6522 config->vhtMpduLen) == QDF_STATUS_E_FAILURE) {
6523 status = false;
6524 hdd_err("Couldn't pass on WNI_CFG_VHT_MAX_MPDU_LENGTH to CFG");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006525 }
6526
Krunal Sonidf0f8742016-09-26 14:56:31 -07006527 if (config->enable2x2 && config->enable_su_tx_bformer) {
6528 if (sme_cfg_set_int(hdd_ctx->hHal,
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006529 WNI_CFG_VHT_SU_BEAMFORMER_CAP,
Krunal Sonidf0f8742016-09-26 14:56:31 -07006530 config->enable_su_tx_bformer) ==
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006531 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006532 status = false;
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006533 hdd_err("set SU_BEAMFORMER_CAP to CFG failed");
6534 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07006535 if (sme_cfg_set_int(hdd_ctx->hHal,
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006536 WNI_CFG_VHT_NUM_SOUNDING_DIMENSIONS,
6537 NUM_OF_SOUNDING_DIMENSIONS) ==
6538 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006539 status = false;
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006540 hdd_err("failed to set NUM_OF_SOUNDING_DIM");
6541 }
6542 }
6543 }
6544
Krunal Sonidf0f8742016-09-26 14:56:31 -07006545 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_VHT_RXSTBC,
6546 config->enableRxSTBC) == QDF_STATUS_E_FAILURE) {
6547 status = false;
6548 hdd_err("Couldn't pass on WNI_CFG_VHT_RXSTBC to CFG");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006549 }
6550
Krunal Sonidf0f8742016-09-26 14:56:31 -07006551 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_VHT_TXSTBC,
6552 config->enableTxSTBC) == QDF_STATUS_E_FAILURE) {
6553 status = false;
6554 hdd_err("Couldn't pass on WNI_CFG_VHT_TXSTBC to CFG");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006555 }
6556
Krunal Soni5c390162016-09-26 15:07:05 -07006557 if (sme_cfg_get_int(hdd_ctx->hHal, WNI_CFG_VHT_LDPC_CODING_CAP, &val) ==
6558 QDF_STATUS_E_FAILURE) {
6559 status &= false;
6560 hdd_err("Could not get WNI_CFG_VHT_LDPC_CODING_CAP");
6561 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07006562 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_VHT_LDPC_CODING_CAP,
Krunal Sonia2c0e412017-05-04 14:12:41 +05306563 config->enable_rx_ldpc & val) == QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006564 status = false;
6565 hdd_err("Couldn't pass on WNI_CFG_VHT_LDPC_CODING_CAP to CFG");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006566 }
6567
Krunal Sonidf0f8742016-09-26 14:56:31 -07006568 if (sme_cfg_set_int(hdd_ctx->hHal,
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006569 WNI_CFG_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED,
Krunal Sonidf0f8742016-09-26 14:56:31 -07006570 config->txBFCsnValue) ==
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006571 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006572 status = false;
6573 hdd_err("Couldn't pass on WNI_CFG_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED to CFG");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006574 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07006575 return status;
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006576
6577}
6578
6579/**
Krunal Sonidf0f8742016-09-26 14:56:31 -07006580 * hdd_update_config_cfg() - API to update INI setting based on hw/fw caps
6581 * @hdd_ctx: pointer to hdd_ctx
Krunal Soni52198e42016-09-26 13:53:09 -07006582 *
Krunal Sonidf0f8742016-09-26 14:56:31 -07006583 * This API reads the cfg file which is updated with hardware/firmware
6584 * capabilities and intersect it with INI setting provided by user. After
6585 * taking intersection it adjust cfg it self. For example, if user has enabled
6586 * RX LDPC through INI but hardware/firmware doesn't support it then disable
6587 * it in CFG file here.
6588 *
6589 * Return: true or false based on outcome.
Krunal Soni52198e42016-09-26 13:53:09 -07006590 */
Krunal Sonidf0f8742016-09-26 14:56:31 -07006591bool hdd_update_config_cfg(hdd_context_t *hdd_ctx)
Krunal Soni52198e42016-09-26 13:53:09 -07006592{
Krunal Sonidf0f8742016-09-26 14:56:31 -07006593 bool status = true;
Krunal Soni52198e42016-09-26 13:53:09 -07006594 uint32_t val;
Krunal Sonidf0f8742016-09-26 14:56:31 -07006595 struct hdd_config *config = hdd_ctx->config;
Krunal Soni52198e42016-09-26 13:53:09 -07006596
6597 /*
6598 * During the initialization both 2G and 5G capabilities should be same.
6599 * So read 5G HT capablity and update 2G and 5G capablities.
6600 */
Krunal Sonidf0f8742016-09-26 14:56:31 -07006601 if (!hdd_update_ht_cap_in_cfg(hdd_ctx)) {
6602 status = false;
6603 hdd_err("Couldn't set HT CAP in cfg");
Krunal Soni52198e42016-09-26 13:53:09 -07006604 }
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006605
Krunal Sonidf0f8742016-09-26 14:56:31 -07006606 if (!hdd_update_vht_cap_in_cfg(hdd_ctx)) {
6607 status = false;
6608 hdd_err("Couldn't set VHT CAP in cfg");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006609 }
6610
Krishna Kumaar Natarajan90bb6f12017-03-03 21:05:52 -08006611 if (0 != hdd_update_he_cap_in_cfg(hdd_ctx)) {
6612 status = false;
6613 hdd_err("Couldn't set HE CAP in cfg");
6614 }
6615
Krunal Sonidf0f8742016-09-26 14:56:31 -07006616 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_FIXED_RATE, config->TxRate)
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306617 == QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006618 status = false;
6619 hdd_err("Couldn't pass on WNI_CFG_FIXED_RATE to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006620 }
6621
Krunal Sonidf0f8742016-09-26 14:56:31 -07006622 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_MAX_RX_AMPDU_FACTOR,
6623 config->MaxRxAmpduFactor) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306624 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006625 status = false;
6626 hdd_err("Couldn't pass on WNI_CFG_HT_AMPDU_PARAMS_MAX_RX_AMPDU_FACTOR to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006627 }
6628
Krunal Sonidf0f8742016-09-26 14:56:31 -07006629 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_MPDU_DENSITY,
6630 config->ht_mpdu_density) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306631 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006632 status = false;
6633 hdd_err("Couldn't pass on WNI_CFG_MPDU_DENSITY to CFG");
Krishna Kumaar Natarajan22b59a72015-11-23 18:54:58 -08006634 }
6635
Krunal Sonidf0f8742016-09-26 14:56:31 -07006636 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_SHORT_PREAMBLE,
6637 config->fIsShortPreamble) == QDF_STATUS_E_FAILURE) {
6638 status = false;
6639 hdd_err("Couldn't pass on WNI_CFG_SHORT_PREAMBLE to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006640 }
6641
Krunal Sonidf0f8742016-09-26 14:56:31 -07006642 if (sme_cfg_set_int(hdd_ctx->hHal,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006643 WNI_CFG_PASSIVE_MINIMUM_CHANNEL_TIME,
Krunal Sonidf0f8742016-09-26 14:56:31 -07006644 config->nPassiveMinChnTime)
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306645 == QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006646 status = false;
6647 hdd_err("Couldn't pass on WNI_CFG_PASSIVE_MINIMUM_CHANNEL_TIME to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006648 }
6649
Krunal Sonidf0f8742016-09-26 14:56:31 -07006650 if (sme_cfg_set_int(hdd_ctx->hHal,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006651 WNI_CFG_PASSIVE_MAXIMUM_CHANNEL_TIME,
Krunal Sonidf0f8742016-09-26 14:56:31 -07006652 config->nPassiveMaxChnTime)
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306653 == QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006654 status = false;
6655 hdd_err("Couldn't pass on WNI_CFG_PASSIVE_MAXIMUM_CHANNEL_TIME to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006656 }
6657
Krunal Sonidf0f8742016-09-26 14:56:31 -07006658 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_BEACON_INTERVAL,
6659 config->nBeaconInterval) == QDF_STATUS_E_FAILURE) {
6660 status = false;
6661 hdd_err("Couldn't pass on WNI_CFG_BEACON_INTERVAL to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006662 }
6663
Krunal Sonidf0f8742016-09-26 14:56:31 -07006664 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_MAX_PS_POLL,
6665 config->nMaxPsPoll) == QDF_STATUS_E_FAILURE) {
6666 status = false;
6667 hdd_err("Couldn't pass on WNI_CFG_MAX_PS_POLL to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006668 }
6669
Krunal Sonidf0f8742016-09-26 14:56:31 -07006670 if (sme_cfg_set_int (hdd_ctx->hHal, WNI_CFG_LOW_GAIN_OVERRIDE,
6671 config->fIsLowGainOverride) == QDF_STATUS_E_FAILURE) {
6672 status = false;
6673 hdd_err("Couldn't pass on WNI_CFG_LOW_GAIN_OVERRIDE to HAL");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006674 }
6675
Krunal Sonidf0f8742016-09-26 14:56:31 -07006676 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_RSSI_FILTER_PERIOD,
6677 config->nRssiFilterPeriod) == QDF_STATUS_E_FAILURE) {
6678 status = false;
6679 hdd_err("Couldn't pass on WNI_CFG_RSSI_FILTER_PERIOD to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006680 }
6681
Krunal Sonidf0f8742016-09-26 14:56:31 -07006682 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_IGNORE_DTIM,
6683 config->fIgnoreDtim) == QDF_STATUS_E_FAILURE) {
6684 status = false;
6685 hdd_err("Couldn't pass on WNI_IGNORE_DTIM to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006686 }
6687
Krunal Sonidf0f8742016-09-26 14:56:31 -07006688 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_PS_ENABLE_HEART_BEAT,
6689 config->fEnableFwHeartBeatMonitoring)
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306690 == QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006691 status = false;
6692 hdd_err("Couldn't pass on WNI_CFG_PS_HEART_BEAT to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006693 }
6694
Krunal Sonidf0f8742016-09-26 14:56:31 -07006695 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_PS_ENABLE_BCN_FILTER,
6696 config->fEnableFwBeaconFiltering) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306697 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006698 status = false;
6699 hdd_err("Couldn't pass on WNI_CFG_PS_BCN_FILTER to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006700 }
6701
Krunal Sonidf0f8742016-09-26 14:56:31 -07006702 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_PS_ENABLE_RSSI_MONITOR,
6703 config->fEnableFwRssiMonitoring) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306704 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006705 status = false;
6706 hdd_err("Couldn't pass on WNI_CFG_PS_RSSI_MONITOR to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006707 }
6708
Krunal Sonidf0f8742016-09-26 14:56:31 -07006709 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_PS_DATA_INACTIVITY_TIMEOUT,
6710 config->nDataInactivityTimeout) == QDF_STATUS_E_FAILURE) {
6711 status = false;
6712 hdd_err("Couldn't pass on WNI_CFG_PS_DATA_INACTIVITY_TIMEOUT to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006713 }
6714
Mukul Sharmaed92f2f2017-04-20 00:06:28 +05306715 if (sme_cfg_set_int(hdd_ctx->hHal,
6716 WNI_CFG_PS_WOW_DATA_INACTIVITY_TIMEOUT,
6717 config->wow_data_inactivity_timeout) == QDF_STATUS_E_FAILURE) {
6718 status = false;
6719 hdd_err("Fail to pass WNI_CFG_PS_WOW_DATA_INACTIVITY_TO CFG");
6720 }
6721
Krunal Sonidf0f8742016-09-26 14:56:31 -07006722 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_ENABLE_LTE_COEX,
6723 config->enableLTECoex) == QDF_STATUS_E_FAILURE) {
6724 status = false;
6725 hdd_err("Couldn't pass on WNI_CFG_ENABLE_LTE_COEX to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006726 }
6727
Krunal Sonidf0f8742016-09-26 14:56:31 -07006728 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_AP_KEEP_ALIVE_TIMEOUT,
6729 config->apKeepAlivePeriod) == QDF_STATUS_E_FAILURE) {
6730 status = false;
6731 hdd_err("Couldn't pass on WNI_CFG_AP_KEEP_ALIVE_TIMEOUT to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006732 }
6733
Krunal Sonidf0f8742016-09-26 14:56:31 -07006734 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_GO_KEEP_ALIVE_TIMEOUT,
6735 config->goKeepAlivePeriod) == QDF_STATUS_E_FAILURE) {
6736 status = false;
6737 hdd_err("Couldn't pass on WNI_CFG_GO_KEEP_ALIVE_TIMEOUT to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006738 }
6739
Krunal Sonidf0f8742016-09-26 14:56:31 -07006740 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_AP_LINK_MONITOR_TIMEOUT,
6741 config->apLinkMonitorPeriod) == QDF_STATUS_E_FAILURE) {
6742 status = false;
6743 hdd_err("Couldn't pass on WNI_CFG_AP_LINK_MONITOR_TIMEOUT to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006744 }
6745
Krunal Sonidf0f8742016-09-26 14:56:31 -07006746 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_GO_LINK_MONITOR_TIMEOUT,
6747 config->goLinkMonitorPeriod) == QDF_STATUS_E_FAILURE) {
6748 status = false;
6749 hdd_err("Couldn't pass on WNI_CFG_GO_LINK_MONITOR_TIMEOUT to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006750 }
6751
Krunal Sonidf0f8742016-09-26 14:56:31 -07006752 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_MCAST_BCAST_FILTER_SETTING,
Ashish Kumar Dhanotiya7ebf5692017-04-12 20:04:47 +05306753 config->mcastBcastFilterSetting) == QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006754 status = false;
6755 hdd_err("Couldn't pass on WNI_CFG_MCAST_BCAST_FILTER_SETTING to CFG");
Ashish Kumar Dhanotiya7ebf5692017-04-12 20:04:47 +05306756 }
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006757
Krunal Sonidf0f8742016-09-26 14:56:31 -07006758 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_SINGLE_TID_RC,
6759 config->bSingleTidRc) == QDF_STATUS_E_FAILURE) {
6760 status = false;
6761 hdd_err("Couldn't pass on WNI_CFG_SINGLE_TID_RC to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006762 }
6763
Krunal Sonidf0f8742016-09-26 14:56:31 -07006764 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TELE_BCN_WAKEUP_EN,
6765 config->teleBcnWakeupEn) == QDF_STATUS_E_FAILURE) {
6766 status = false;
6767 hdd_err("Couldn't pass on WNI_CFG_TELE_BCN_WAKEUP_EN to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006768 }
6769
Krunal Sonidf0f8742016-09-26 14:56:31 -07006770 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TELE_BCN_TRANS_LI,
6771 config->nTeleBcnTransListenInterval) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306772 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006773 status = false;
6774 hdd_err("Couldn't pass on WNI_CFG_TELE_BCN_TRANS_LI to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006775 }
6776
Krunal Sonidf0f8742016-09-26 14:56:31 -07006777 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TELE_BCN_MAX_LI,
6778 config->nTeleBcnMaxListenInterval) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306779 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006780 status = false;
6781 hdd_err("Couldn't pass on WNI_CFG_TELE_BCN_MAX_LI to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006782 }
6783
Krunal Sonidf0f8742016-09-26 14:56:31 -07006784 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TELE_BCN_TRANS_LI_IDLE_BCNS,
6785 config->nTeleBcnTransLiNumIdleBeacons) ==
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_TELE_BCN_TRANS_LI_IDLE_BCNS 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_TELE_BCN_MAX_LI_IDLE_BCNS,
6792 config->nTeleBcnMaxLiNumIdleBeacons) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306793 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006794 status = false;
6795 hdd_err("Couldn't pass on WNI_CFG_TELE_BCN_MAX_LI_IDLE_BCNS to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006796 }
6797
Krunal Sonidf0f8742016-09-26 14:56:31 -07006798 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_RF_SETTLING_TIME_CLK,
6799 config->rfSettlingTimeUs) == QDF_STATUS_E_FAILURE) {
6800 status = false;
6801 hdd_err("Couldn't pass on WNI_CFG_RF_SETTLING_TIME_CLK to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006802 }
6803
Krunal Sonidf0f8742016-09-26 14:56:31 -07006804 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_INFRA_STA_KEEP_ALIVE_PERIOD,
6805 config->infraStaKeepAlivePeriod) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306806 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006807 status = false;
6808 hdd_err("Couldn't pass on WNI_CFG_INFRA_STA_KEEP_ALIVE_PERIOD to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006809 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07006810 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_DYNAMIC_PS_POLL_VALUE,
6811 config->dynamicPsPollValue) == QDF_STATUS_E_FAILURE) {
6812 status = false;
6813 hdd_err("Couldn't pass on WNI_CFG_DYNAMIC_PS_POLL_VALUE to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006814 }
6815
Krunal Sonidf0f8742016-09-26 14:56:31 -07006816 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_PS_NULLDATA_AP_RESP_TIMEOUT,
6817 config->nNullDataApRespTimeout) == QDF_STATUS_E_FAILURE) {
6818 status = false;
6819 hdd_err("Couldn't pass on WNI_CFG_PS_NULLDATA_DELAY_TIMEOUT to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006820 }
6821
Krunal Sonidf0f8742016-09-26 14:56:31 -07006822 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_AP_DATA_AVAIL_POLL_PERIOD,
6823 config->apDataAvailPollPeriodInMs) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306824 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006825 status = false;
6826 hdd_err("Couldn't pass on WNI_CFG_AP_DATA_AVAIL_POLL_PERIOD to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006827 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07006828 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_FRAGMENTATION_THRESHOLD,
6829 config->FragmentationThreshold) == QDF_STATUS_E_FAILURE) {
6830 status = false;
6831 hdd_err("Couldn't pass on WNI_CFG_FRAGMENTATION_THRESHOLD to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006832 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07006833 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_RTS_THRESHOLD,
6834 config->RTSThreshold) == QDF_STATUS_E_FAILURE) {
6835 status = false;
6836 hdd_err("Couldn't pass on WNI_CFG_RTS_THRESHOLD to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006837 }
6838
Krunal Sonidf0f8742016-09-26 14:56:31 -07006839 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_11D_ENABLED,
6840 config->Is11dSupportEnabled) == QDF_STATUS_E_FAILURE) {
6841 status = false;
6842 hdd_err("Couldn't pass on WNI_CFG_11D_ENABLED to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006843 }
6844
Krunal Sonidf0f8742016-09-26 14:56:31 -07006845 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_DFS_MASTER_ENABLED,
6846 config->enableDFSMasterCap) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306847 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006848 status = false;
6849 hdd_err("Failure: Couldn't set value for WNI_CFG_DFS_MASTER_ENABLED");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006850 }
6851
Krunal Sonidf0f8742016-09-26 14:56:31 -07006852 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_HEART_BEAT_THRESHOLD,
6853 config->HeartbeatThresh24) == QDF_STATUS_E_FAILURE) {
6854 status = false;
6855 hdd_err("Couldn't pass on WNI_CFG_HEART_BEAT_THRESHOLD to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006856 }
6857
Krunal Sonidf0f8742016-09-26 14:56:31 -07006858 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_ENABLE_MC_ADDR_LIST,
6859 config->fEnableMCAddrList) == QDF_STATUS_E_FAILURE) {
6860 status = false;
6861 hdd_err("Couldn't pass on WNI_CFG_ENABLE_MC_ADDR_LIST to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006862 }
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006863
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006864#ifdef WLAN_SOFTAP_VSTA_FEATURE
Krunal Sonidf0f8742016-09-26 14:56:31 -07006865 if (config->fEnableVSTASupport) {
6866 sme_cfg_get_int(hdd_ctx->hHal, WNI_CFG_ASSOC_STA_LIMIT, &val);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006867 if (val <= WNI_CFG_ASSOC_STA_LIMIT_STADEF)
6868 val = WNI_CFG_ASSOC_STA_LIMIT_STAMAX;
6869 } else {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006870 val = config->maxNumberOfPeers;
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_ASSOC_STA_LIMIT, val) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306874 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006875 status = false;
6876 hdd_err("Couldn't pass on WNI_CFG_ASSOC_STA_LIMIT to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006877 }
6878#endif
Krunal Sonidf0f8742016-09-26 14:56:31 -07006879 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_ENABLE_LPWR_IMG_TRANSITION,
6880 config->enableLpwrImgTransition)
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306881 == QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006882 status = false;
6883 hdd_err("Couldn't pass on WNI_CFG_ENABLE_LPWR_IMG_TRANSITION to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006884 }
6885
Krunal Sonidf0f8742016-09-26 14:56:31 -07006886 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_ENABLE_MCC_ADAPTIVE_SCHED,
6887 config->enableMCCAdaptiveScheduler) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306888 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006889 status = false;
6890 hdd_err("Couldn't pass on WNI_CFG_ENABLE_MCC_ADAPTIVE_SCHED to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006891 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07006892 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_DISABLE_LDPC_WITH_TXBF_AP,
6893 config->disableLDPCWithTxbfAP) == QDF_STATUS_E_FAILURE) {
6894 status = false;
6895 hdd_err("Couldn't pass on WNI_CFG_DISABLE_LDPC_WITH_TXBF_AP to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006896 }
6897
Krunal Sonidf0f8742016-09-26 14:56:31 -07006898 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_DYNAMIC_THRESHOLD_ZERO,
6899 config->retryLimitZero) == QDF_STATUS_E_FAILURE) {
6900 status = false;
6901 hdd_err("Couldn't pass on WNI_CFG_DYNAMIC_THRESHOLD_ZERO 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_DYNAMIC_THRESHOLD_ONE,
6905 config->retryLimitOne) == QDF_STATUS_E_FAILURE) {
6906 status = false;
6907 hdd_err("Couldn't pass on WNI_CFG_DYNAMIC_THRESHOLD_ONE to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006908 }
6909
Krunal Sonidf0f8742016-09-26 14:56:31 -07006910 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_DYNAMIC_THRESHOLD_TWO,
6911 config->retryLimitTwo) == QDF_STATUS_E_FAILURE) {
6912 status = false;
6913 hdd_err("Couldn't pass on WNI_CFG_DYNAMIC_THRESHOLD_TWO to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006914 }
6915
Krunal Sonidf0f8742016-09-26 14:56:31 -07006916 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_MAX_MEDIUM_TIME,
6917 config->cfgMaxMediumTime) == QDF_STATUS_E_FAILURE) {
6918 status = false;
6919 hdd_err("Couldn't pass on WNI_CFG_MAX_MEDIUM_TIME to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006920 }
6921#ifdef FEATURE_WLAN_TDLS
6922
Krunal Sonidf0f8742016-09-26 14:56:31 -07006923 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TDLS_QOS_WMM_UAPSD_MASK,
6924 config->fTDLSUapsdMask) == QDF_STATUS_E_FAILURE) {
6925 status = false;
6926 hdd_err("Couldn't pass on WNI_CFG_TDLS_QOS_WMM_UAPSD_MASK to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006927 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07006928 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TDLS_BUF_STA_ENABLED,
6929 config->fEnableTDLSBufferSta) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306930 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006931 status = false;
6932 hdd_err("Couldn't pass on WNI_CFG_TDLS_BUF_STA_ENABLED to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006933 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07006934 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TDLS_PUAPSD_INACT_TIME,
6935 config->fTDLSPuapsdInactivityTimer) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306936 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006937 status = false;
6938 hdd_err("Couldn't pass on WNI_CFG_TDLS_PUAPSD_INACT_TIME to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006939 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07006940 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TDLS_RX_FRAME_THRESHOLD,
6941 config->fTDLSRxFrameThreshold) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306942 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006943 status = false;
6944 hdd_err("Couldn't pass on WNI_CFG_TDLS_RX_FRAME_THRESHOLD to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006945 }
6946
Krunal Sonidf0f8742016-09-26 14:56:31 -07006947 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TDLS_OFF_CHANNEL_ENABLED,
6948 config->fEnableTDLSOffChannel) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306949 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006950 status = false;
6951 hdd_err("Couldn't pass on WNI_CFG_TDLS_BUF_STA_ENABLED to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006952 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07006953 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TDLS_WMM_MODE_ENABLED,
6954 config->fEnableTDLSWmmMode) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306955 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006956 status = false;
6957 hdd_err("Couldn't pass on WNI_CFG_TDLS_WMM_MODE_ENABLED to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006958 }
6959#endif
6960
Krunal Sonidf0f8742016-09-26 14:56:31 -07006961 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_ENABLE_ADAPT_RX_DRAIN,
6962 config->fEnableAdaptRxDrain) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306963 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006964 status = false;
6965 hdd_err("Couldn't pass on WNI_CFG_ENABLE_ADAPT_RX_DRAIN to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006966 }
6967
Krunal Sonidf0f8742016-09-26 14:56:31 -07006968 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_ANTENNA_DIVESITY,
6969 config->antennaDiversity) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306970 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006971 status = false;
6972 hdd_err("Couldn't pass on WNI_CFG_ANTENNA_DIVESITY to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006973 }
6974
Krunal Sonidf0f8742016-09-26 14:56:31 -07006975 if (sme_cfg_set_int(hdd_ctx->hHal,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006976 WNI_CFG_DEFAULT_RATE_INDEX_24GHZ,
Krunal Sonidf0f8742016-09-26 14:56:31 -07006977 config->defaultRateIndex24Ghz) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306978 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006979 status = false;
6980 hdd_err("Couldn't pass on WNI_CFG_DEFAULT_RATE_INDEX_24GHZ to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006981 }
6982
Krunal Sonidf0f8742016-09-26 14:56:31 -07006983 if (sme_cfg_set_int(hdd_ctx->hHal,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006984 WNI_CFG_DEBUG_P2P_REMAIN_ON_CHANNEL,
Krunal Sonidf0f8742016-09-26 14:56:31 -07006985 config->debugP2pRemainOnChannel) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306986 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006987 status = false;
6988 hdd_err("Couldn't pass on WNI_CFG_DEBUG_P2P_REMAIN_ON_CHANNEL to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006989 }
6990#ifdef WLAN_FEATURE_11W
Krunal Sonidf0f8742016-09-26 14:56:31 -07006991 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_PMF_SA_QUERY_MAX_RETRIES,
6992 config->pmfSaQueryMaxRetries) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306993 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006994 status = false;
6995 hdd_err("Couldn't pass on WNI_CFG_SA_QUERY_MAX_RETRIES to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006996 }
6997
Krunal Sonidf0f8742016-09-26 14:56:31 -07006998 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_PMF_SA_QUERY_RETRY_INTERVAL,
6999 config->pmfSaQueryRetryInterval) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307000 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007001 status = false;
7002 hdd_err("Couldn't pass on WNI_CFG_SA_QUERY_RETRY_INTERVAL to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007003 }
7004#endif
7005
Krunal Sonidf0f8742016-09-26 14:56:31 -07007006 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_IBSS_ATIM_WIN_SIZE,
7007 config->ibssATIMWinSize) ==
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_IBSS_ATIM_WIN_SIZE to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007011 }
Krunal Soni53993f72016-07-08 18:20:03 -07007012
Krunal Sonidf0f8742016-09-26 14:56:31 -07007013 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TGT_GTX_USR_CFG,
7014 config->tgt_gtx_usr_cfg) == QDF_STATUS_E_FAILURE) {
7015 status = false;
7016 hdd_err("Couldn't pass on WNI_CFG_TGT_GTX_USR_CFG to CCM");
Rajeev Kumar Sirasanagandlaaf474742016-09-06 17:54:50 +05307017 }
Hong Shi417824f2017-01-12 02:31:14 +08007018
7019 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_MAX_HT_MCS_TX_DATA,
7020 config->max_ht_mcs_txdata) ==
7021 QDF_STATUS_E_FAILURE) {
7022 status = false;
7023 hdd_err("Couldn't pass on WNI_CFG_MAX_HT_MCS_TX_DATA to CCM");
7024 }
Hong Shia9ef8712017-02-19 21:54:02 +08007025
7026 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_DISABLE_ABG_RATE_FOR_TX_DATA,
7027 config->disable_abg_rate_txdata) ==
7028 QDF_STATUS_E_FAILURE) {
7029 status = false;
7030 hdd_err("Couldn't pass on WNI_CFG_DISABLE_ABG_RATE_FOR_TX_DATA to CCM");
7031 }
7032
Hong Shib90718f2017-02-20 00:57:22 +08007033 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_RATE_FOR_TX_MGMT,
7034 config->rate_for_tx_mgmt) ==
7035 QDF_STATUS_E_FAILURE) {
7036 status = false;
7037 hdd_err("Couldn't pass on WNI_CFG_RATE_FOR_TX_MGMT to CCM");
7038 }
7039
lifeng13a89d72017-05-10 14:49:29 +08007040 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_SAP_MAX_MCS_DATA,
7041 config->sap_max_mcs_txdata) ==
7042 QDF_STATUS_E_FAILURE) {
7043 status = false;
7044 hdd_err("Could not pass on WNI_CFG_SAP_MAX_MCS_DATA to CCM");
7045 }
7046
Krunal Sonidf0f8742016-09-26 14:56:31 -07007047 return status;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007048}
Krishna Kumaar Natarajan90bb6f12017-03-03 21:05:52 -08007049
Kapil Gupta5cda2252016-12-29 18:44:26 +05307050/**
7051 * hdd_update_per_config_to_sme() -initializes the sme config for PER roam
7052 *
7053 * @hdd_ctx: the pointer to hdd context
7054 * @sme_config: sme configuation pointer
7055 *
7056 * Return: None
7057 */
7058static void hdd_update_per_config_to_sme(hdd_context_t *hdd_ctx,
7059 tSmeConfigParams *sme_config)
7060{
7061 sme_config->csrConfig.per_roam_config.enable =
7062 hdd_ctx->config->is_per_roam_enabled;
7063
7064 /* Assigning Tx and Rx for same value */
7065 sme_config->csrConfig.per_roam_config.tx_high_rate_thresh =
7066 hdd_ctx->config->per_roam_high_rate_threshold;
7067 sme_config->csrConfig.per_roam_config.rx_high_rate_thresh =
7068 hdd_ctx->config->per_roam_high_rate_threshold;
7069
7070 /* Assigning Tx and Rx for same value */
7071 sme_config->csrConfig.per_roam_config.tx_low_rate_thresh =
7072 hdd_ctx->config->per_roam_low_rate_threshold;
7073 sme_config->csrConfig.per_roam_config.rx_low_rate_thresh =
7074 hdd_ctx->config->per_roam_low_rate_threshold;
7075
7076 /* Assigning Tx and Rx for same value */
7077 sme_config->csrConfig.per_roam_config.tx_rate_thresh_percnt =
7078 hdd_ctx->config->per_roam_th_percent;
7079 sme_config->csrConfig.per_roam_config.rx_rate_thresh_percnt =
7080 hdd_ctx->config->per_roam_th_percent;
7081
7082 sme_config->csrConfig.per_roam_config.per_rest_time =
7083 hdd_ctx->config->per_roam_rest_time;
Kapil Gupta957827b2017-02-13 15:47:04 +05307084 sme_config->csrConfig.per_roam_config.tx_per_mon_time =
7085 hdd_ctx->config->per_roam_mon_time;
7086 sme_config->csrConfig.per_roam_config.rx_per_mon_time =
7087 hdd_ctx->config->per_roam_mon_time;
Kapil Gupta5cda2252016-12-29 18:44:26 +05307088}
7089
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007090/**
Tushnim Bhattacharyyaba8ee932017-03-23 09:27:40 -07007091 * hdd_set_policy_mgr_user_cfg() -initializes the policy manager
7092 * configuration parameters
7093 *
7094 * @pHddCtx: the pointer to hdd context
7095 *
7096 * Return: QDF_STATUS_SUCCESS if configuration is correctly applied,
7097 * otherwise the appropriate QDF_STATUS would be returned
7098 */
7099QDF_STATUS hdd_set_policy_mgr_user_cfg(hdd_context_t *hdd_ctx)
7100{
7101 QDF_STATUS status;
7102 struct policy_mgr_user_cfg *user_cfg;
7103
7104 user_cfg = qdf_mem_malloc(sizeof(*user_cfg));
7105 if (NULL == user_cfg) {
7106 hdd_err("unable to allocate user_cfg");
7107 return QDF_STATUS_E_NOMEM;
7108 }
7109
7110 user_cfg->conc_system_pref = hdd_ctx->config->conc_system_pref;
7111 user_cfg->enable_mcc_adaptive_scheduler =
7112 hdd_ctx->config->enableMCCAdaptiveScheduler;
7113 user_cfg->max_concurrent_active_sessions =
7114 hdd_ctx->config->gMaxConcurrentActiveSessions;
Tushnim Bhattacharyya7e546692017-03-23 18:30:29 -07007115 user_cfg->enable2x2 = hdd_ctx->config->enable2x2;
Tushnim Bhattacharyya5cc9edc2017-04-26 12:33:59 -07007116 user_cfg->mcc_to_scc_switch_mode =
7117 hdd_ctx->config->WlanMccToSccSwitchMode;
7118 user_cfg->sub_20_mhz_enabled = cds_is_sub_20_mhz_enabled();
Tushnim Bhattacharyyaba8ee932017-03-23 09:27:40 -07007119 status = policy_mgr_set_user_cfg(hdd_ctx->hdd_psoc, user_cfg);
7120
7121 qdf_mem_free(user_cfg);
7122
7123 return status;
7124}
7125/**
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007126 * hdd_set_sme_config() -initializes the sme configuration parameters
7127 *
7128 * @pHddCtx: the pointer to hdd context
7129 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307130 * Return: QDF_STATUS_SUCCESS if configuration is correctly applied,
7131 * otherwise the appropriate QDF_STATUS would be returned
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007132 */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307133QDF_STATUS hdd_set_sme_config(hdd_context_t *pHddCtx)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007134{
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307135 QDF_STATUS status = QDF_STATUS_SUCCESS;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007136 tSmeConfigParams *smeConfig;
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08007137 uint8_t rrm_capab_len;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007138
7139 struct hdd_config *pConfig = pHddCtx->config;
7140
Anurag Chouhan600c3a02016-03-01 10:33:54 +05307141 smeConfig = qdf_mem_malloc(sizeof(*smeConfig));
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007142 if (NULL == smeConfig) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08007143 hdd_err("unable to allocate smeConfig");
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307144 return QDF_STATUS_E_NOMEM;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007145 }
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007146
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07007147 hdd_debug("%s bWmmIsEnabled=%d 802_11e_enabled=%d dot11Mode=%d",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007148 __func__, pConfig->WmmMode, pConfig->b80211eIsEnabled,
7149 pConfig->dot11Mode);
7150
7151 /* Config params obtained from the registry
7152 * To Do: set regulatory information here
7153 */
7154
7155 smeConfig->csrConfig.RTSThreshold = pConfig->RTSThreshold;
7156 smeConfig->csrConfig.FragmentationThreshold =
7157 pConfig->FragmentationThreshold;
7158 smeConfig->csrConfig.shortSlotTime = pConfig->ShortSlotTimeEnabled;
7159 smeConfig->csrConfig.Is11dSupportEnabled = pConfig->Is11dSupportEnabled;
7160 smeConfig->csrConfig.HeartbeatThresh24 = pConfig->HeartbeatThresh24;
7161
7162 smeConfig->csrConfig.phyMode =
7163 hdd_cfg_xlate_to_csr_phy_mode(pConfig->dot11Mode);
7164
7165 if (pConfig->dot11Mode == eHDD_DOT11_MODE_abg ||
7166 pConfig->dot11Mode == eHDD_DOT11_MODE_11b ||
7167 pConfig->dot11Mode == eHDD_DOT11_MODE_11g ||
7168 pConfig->dot11Mode == eHDD_DOT11_MODE_11b_ONLY ||
7169 pConfig->dot11Mode == eHDD_DOT11_MODE_11g_ONLY) {
7170 smeConfig->csrConfig.channelBondingMode24GHz = 0;
7171 smeConfig->csrConfig.channelBondingMode5GHz = 0;
7172 } else {
7173 smeConfig->csrConfig.channelBondingMode24GHz =
7174 pConfig->nChannelBondingMode24GHz;
7175 smeConfig->csrConfig.channelBondingMode5GHz =
7176 pConfig->nChannelBondingMode5GHz;
7177 }
7178 smeConfig->csrConfig.TxRate = pConfig->TxRate;
7179 smeConfig->csrConfig.nScanResultAgeCount = pConfig->ScanResultAgeCount;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007180 smeConfig->csrConfig.AdHocChannel24 = pConfig->OperatingChannel;
7181 smeConfig->csrConfig.fSupplicantCountryCodeHasPriority =
7182 pConfig->fSupplicantCountryCodeHasPriority;
7183 smeConfig->csrConfig.bCatRssiOffset = pConfig->nRssiCatGap;
7184 smeConfig->csrConfig.vccRssiThreshold = pConfig->nVccRssiTrigger;
7185 smeConfig->csrConfig.vccUlMacLossThreshold =
7186 pConfig->nVccUlMacLossThreshold;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007187 smeConfig->csrConfig.nInitialDwellTime = pConfig->nInitialDwellTime;
7188 smeConfig->csrConfig.initial_scan_no_dfs_chnl =
7189 pConfig->initial_scan_no_dfs_chnl;
7190 smeConfig->csrConfig.nActiveMaxChnTime = pConfig->nActiveMaxChnTime;
7191 smeConfig->csrConfig.nActiveMinChnTime = pConfig->nActiveMinChnTime;
7192 smeConfig->csrConfig.nPassiveMaxChnTime = pConfig->nPassiveMaxChnTime;
7193 smeConfig->csrConfig.nPassiveMinChnTime = pConfig->nPassiveMinChnTime;
7194#ifdef WLAN_AP_STA_CONCURRENCY
7195 smeConfig->csrConfig.nActiveMaxChnTimeConc =
7196 pConfig->nActiveMaxChnTimeConc;
7197 smeConfig->csrConfig.nActiveMinChnTimeConc =
7198 pConfig->nActiveMinChnTimeConc;
7199 smeConfig->csrConfig.nPassiveMaxChnTimeConc =
7200 pConfig->nPassiveMaxChnTimeConc;
7201 smeConfig->csrConfig.nPassiveMinChnTimeConc =
7202 pConfig->nPassiveMinChnTimeConc;
7203 smeConfig->csrConfig.nRestTimeConc = pConfig->nRestTimeConc;
Agrawal Ashish17bb3902016-05-05 13:29:40 +05307204 smeConfig->csrConfig.min_rest_time_conc = pConfig->min_rest_time_conc;
7205 smeConfig->csrConfig.idle_time_conc = pConfig->idle_time_conc;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007206
7207#endif
7208 smeConfig->csrConfig.Is11eSupportEnabled = pConfig->b80211eIsEnabled;
7209 smeConfig->csrConfig.WMMSupportMode = pConfig->WmmMode;
7210
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08007211 smeConfig->rrmConfig.rrm_enabled = pConfig->fRrmEnable;
7212 smeConfig->rrmConfig.max_randn_interval = pConfig->nRrmRandnIntvl;
7213 hdd_hex_string_to_u8_array(pConfig->rm_capability,
7214 smeConfig->rrmConfig.rm_capability, &rrm_capab_len,
7215 DOT11F_IE_RRMENABLEDCAP_MAX_LEN);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007216 /* Remaining config params not obtained from registry
7217 * On RF EVB beacon using channel 1.
7218 */
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007219 smeConfig->csrConfig.nVhtChannelWidth = pConfig->vhtChannelWidth;
7220 smeConfig->csrConfig.enableTxBF = pConfig->enableTxBF;
Kiran Kumar Lokere5302ab62015-12-16 16:03:16 -08007221 smeConfig->csrConfig.enable_txbf_sap_mode =
7222 pConfig->enable_txbf_sap_mode;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007223 smeConfig->csrConfig.enable2x2 = pConfig->enable2x2;
7224 smeConfig->csrConfig.enableVhtFor24GHz = pConfig->enableVhtFor24GHzBand;
Kapil Gupta4b2efbb2016-10-03 13:07:20 +05307225 smeConfig->csrConfig.vendor_vht_sap =
7226 pConfig->enable_sap_vendor_vht;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007227 smeConfig->csrConfig.enableMuBformee = pConfig->enableMuBformee;
7228 smeConfig->csrConfig.enableVhtpAid = pConfig->enableVhtpAid;
7229 smeConfig->csrConfig.enableVhtGid = pConfig->enableVhtGid;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007230 smeConfig->csrConfig.enableAmpduPs = pConfig->enableAmpduPs;
7231 smeConfig->csrConfig.enableHtSmps = pConfig->enableHtSmps;
7232 smeConfig->csrConfig.htSmps = pConfig->htSmps;
Archana Ramachandranfec24812016-02-16 16:31:56 -08007233 /* This param cannot be configured from INI */
7234 smeConfig->csrConfig.send_smps_action = true;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007235 smeConfig->csrConfig.AdHocChannel5G = pConfig->AdHocChannel5G;
7236 smeConfig->csrConfig.AdHocChannel24 = pConfig->AdHocChannel24G;
7237 smeConfig->csrConfig.ProprietaryRatesEnabled = 0;
7238 smeConfig->csrConfig.HeartbeatThresh50 = 40;
7239 smeConfig->csrConfig.bandCapability = pConfig->nBandCapability;
7240 if (pConfig->nBandCapability == eCSR_BAND_24) {
7241 smeConfig->csrConfig.Is11hSupportEnabled = 0;
7242 } else {
7243 smeConfig->csrConfig.Is11hSupportEnabled =
7244 pConfig->Is11hSupportEnabled;
7245 }
7246 smeConfig->csrConfig.cbChoice = 0;
7247 smeConfig->csrConfig.eBand = pConfig->nBandCapability;
7248 smeConfig->csrConfig.nTxPowerCap = pConfig->nTxPowerCap;
Padma, Santhosh Kumar29df3622016-08-16 19:15:16 +05307249 smeConfig->csrConfig.allow_tpc_from_ap = pConfig->allow_tpc_from_ap;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007250 smeConfig->csrConfig.fEnableBypass11d = pConfig->enableBypass11d;
7251 smeConfig->csrConfig.fEnableDFSChnlScan = pConfig->enableDFSChnlScan;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007252 smeConfig->csrConfig.nRoamPrefer5GHz = pConfig->nRoamPrefer5GHz;
7253 smeConfig->csrConfig.nRoamIntraBand = pConfig->nRoamIntraBand;
7254 smeConfig->csrConfig.nProbes = pConfig->nProbes;
7255
7256 smeConfig->csrConfig.nRoamScanHomeAwayTime =
7257 pConfig->nRoamScanHomeAwayTime;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007258 smeConfig->csrConfig.fFirstScanOnly2GChnl =
7259 pConfig->enableFirstScan2GOnly;
7260
Peng Xuf5d60c82015-10-02 17:17:03 -07007261 smeConfig->csrConfig.Csr11dinfo.Channels.numChannels = 0;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007262
7263 hdd_set_power_save_offload_config(pHddCtx);
7264
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007265 smeConfig->csrConfig.csr11rConfig.IsFTResourceReqSupported =
7266 pConfig->fFTResourceReqSupported;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007267 smeConfig->csrConfig.isFastRoamIniFeatureEnabled =
7268 pConfig->isFastRoamIniFeatureEnabled;
7269 smeConfig->csrConfig.MAWCEnabled = pConfig->MAWCEnabled;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007270#ifdef FEATURE_WLAN_ESE
7271 smeConfig->csrConfig.isEseIniFeatureEnabled =
7272 pConfig->isEseIniFeatureEnabled;
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07007273 if (pConfig->isEseIniFeatureEnabled)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007274 pConfig->isFastTransitionEnabled = true;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007275#endif
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007276 smeConfig->csrConfig.isFastTransitionEnabled =
7277 pConfig->isFastTransitionEnabled;
7278 smeConfig->csrConfig.RoamRssiDiff = pConfig->RoamRssiDiff;
7279 smeConfig->csrConfig.isWESModeEnabled = pConfig->isWESModeEnabled;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007280 smeConfig->csrConfig.isRoamOffloadScanEnabled =
7281 pConfig->isRoamOffloadScanEnabled;
7282 smeConfig->csrConfig.bFastRoamInConIniFeatureEnabled =
7283 pConfig->bFastRoamInConIniFeatureEnabled;
7284
7285 if (0 == smeConfig->csrConfig.isRoamOffloadScanEnabled) {
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07007286 /* Disable roaming in concurrency if roam scan
7287 * offload is disabled
7288 */
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007289 smeConfig->csrConfig.bFastRoamInConIniFeatureEnabled = 0;
7290 }
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007291 smeConfig->csrConfig.neighborRoamConfig.nNeighborLookupRssiThreshold =
7292 pConfig->nNeighborLookupRssiThreshold;
7293 smeConfig->csrConfig.neighborRoamConfig.delay_before_vdev_stop =
7294 pConfig->delay_before_vdev_stop;
7295 smeConfig->csrConfig.neighborRoamConfig.nOpportunisticThresholdDiff =
7296 pConfig->nOpportunisticThresholdDiff;
7297 smeConfig->csrConfig.neighborRoamConfig.nRoamRescanRssiDiff =
7298 pConfig->nRoamRescanRssiDiff;
7299 smeConfig->csrConfig.neighborRoamConfig.nNeighborScanMaxChanTime =
7300 pConfig->nNeighborScanMaxChanTime;
7301 smeConfig->csrConfig.neighborRoamConfig.nNeighborScanMinChanTime =
7302 pConfig->nNeighborScanMinChanTime;
7303 smeConfig->csrConfig.neighborRoamConfig.nNeighborScanTimerPeriod =
7304 pConfig->nNeighborScanPeriod;
7305 smeConfig->csrConfig.neighborRoamConfig.nMaxNeighborRetries =
7306 pConfig->nMaxNeighborReqTries;
7307 smeConfig->csrConfig.neighborRoamConfig.nNeighborResultsRefreshPeriod =
7308 pConfig->nNeighborResultsRefreshPeriod;
7309 smeConfig->csrConfig.neighborRoamConfig.nEmptyScanRefreshPeriod =
7310 pConfig->nEmptyScanRefreshPeriod;
7311 hdd_string_to_u8_array(pConfig->neighborScanChanList,
7312 smeConfig->csrConfig.neighborRoamConfig.
7313 neighborScanChanList.channelList,
7314 &smeConfig->csrConfig.neighborRoamConfig.
7315 neighborScanChanList.numChannels,
7316 WNI_CFG_VALID_CHANNEL_LIST_LEN);
7317 smeConfig->csrConfig.neighborRoamConfig.nRoamBmissFirstBcnt =
7318 pConfig->nRoamBmissFirstBcnt;
7319 smeConfig->csrConfig.neighborRoamConfig.nRoamBmissFinalBcnt =
7320 pConfig->nRoamBmissFinalBcnt;
7321 smeConfig->csrConfig.neighborRoamConfig.nRoamBeaconRssiWeight =
7322 pConfig->nRoamBeaconRssiWeight;
7323 smeConfig->csrConfig.neighborRoamConfig.nhi_rssi_scan_max_count =
7324 pConfig->nhi_rssi_scan_max_count;
7325 smeConfig->csrConfig.neighborRoamConfig.nhi_rssi_scan_rssi_delta =
7326 pConfig->nhi_rssi_scan_rssi_delta;
7327 smeConfig->csrConfig.neighborRoamConfig.nhi_rssi_scan_delay =
7328 pConfig->nhi_rssi_scan_delay;
7329 smeConfig->csrConfig.neighborRoamConfig.nhi_rssi_scan_rssi_ub =
7330 pConfig->nhi_rssi_scan_rssi_ub;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007331 smeConfig->csrConfig.addTSWhenACMIsOff = pConfig->AddTSWhenACMIsOff;
7332 smeConfig->csrConfig.fValidateList = pConfig->fValidateScanList;
7333 smeConfig->csrConfig.allowDFSChannelRoam = pConfig->allowDFSChannelRoam;
7334
7335 /* Enable/Disable MCC */
7336 smeConfig->csrConfig.fEnableMCCMode = pConfig->enableMCC;
7337 smeConfig->csrConfig.mcc_rts_cts_prot_enable =
7338 pConfig->mcc_rts_cts_prot_enable;
7339 smeConfig->csrConfig.mcc_bcast_prob_resp_enable =
7340 pConfig->mcc_bcast_prob_resp_enable;
7341 smeConfig->csrConfig.fAllowMCCGODiffBI = pConfig->allowMCCGODiffBI;
7342
7343 /* Scan Results Aging Time out value */
7344 smeConfig->csrConfig.scanCfgAgingTime = pConfig->scanAgingTimeout;
7345
Krunal Sonia2c0e412017-05-04 14:12:41 +05307346 smeConfig->csrConfig.enable_tx_ldpc = pConfig->enable_tx_ldpc;
7347 smeConfig->csrConfig.enable_rx_ldpc = pConfig->enable_rx_ldpc;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007348#ifdef FEATURE_WLAN_MCC_TO_SCC_SWITCH
7349 smeConfig->csrConfig.cc_switch_mode = pConfig->WlanMccToSccSwitchMode;
7350#endif
7351
7352 smeConfig->csrConfig.isAmsduSupportInAMPDU =
7353 pConfig->isAmsduSupportInAMPDU;
7354 smeConfig->csrConfig.nSelect5GHzMargin = pConfig->nSelect5GHzMargin;
7355
7356 smeConfig->csrConfig.isCoalesingInIBSSAllowed =
7357 pHddCtx->config->isCoalesingInIBSSAllowed;
7358 smeConfig->csrConfig.ignore_peer_erp_info =
7359 pConfig->ignore_peer_erp_info;
7360 /* update SSR config */
7361 sme_update_enable_ssr((tHalHandle) (pHddCtx->hHal),
7362 pHddCtx->config->enableSSR);
7363
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007364 /* Update maximum interfaces information */
Krunal Soni1878d3a2016-01-14 13:00:44 -08007365 smeConfig->csrConfig.max_intf_count = pHddCtx->max_intf_count;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007366
Krunal Soni1878d3a2016-01-14 13:00:44 -08007367 smeConfig->csrConfig.fEnableDebugLog = pHddCtx->config->gEnableDebugLog;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007368
Krunal Soni1878d3a2016-01-14 13:00:44 -08007369 smeConfig->csrConfig.enable5gEBT = pHddCtx->config->enable5gEBT;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007370
Krunal Soni1878d3a2016-01-14 13:00:44 -08007371 smeConfig->csrConfig.enableSelfRecovery =
7372 pHddCtx->config->enableSelfRecovery;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007373#ifdef WLAN_FEATURE_ROAM_OFFLOAD
7374 smeConfig->csrConfig.isRoamOffloadEnabled =
7375 pHddCtx->config->isRoamOffloadEnabled;
7376#endif
7377 smeConfig->csrConfig.conc_custom_rule1 =
7378 pHddCtx->config->conc_custom_rule1;
7379 smeConfig->csrConfig.conc_custom_rule2 =
7380 pHddCtx->config->conc_custom_rule2;
7381 smeConfig->csrConfig.is_sta_connection_in_5gz_enabled =
7382 pHddCtx->config->is_sta_connection_in_5gz_enabled;
7383
Krunal Soni1878d3a2016-01-14 13:00:44 -08007384 smeConfig->csrConfig.f_sta_miracast_mcc_rest_time_val =
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007385 pHddCtx->config->sta_miracast_mcc_rest_time_val;
7386
7387#ifdef FEATURE_AP_MCC_CH_AVOIDANCE
Krunal Soni1878d3a2016-01-14 13:00:44 -08007388 smeConfig->csrConfig.sap_channel_avoidance =
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007389 pHddCtx->config->sap_channel_avoidance;
7390#endif /* FEATURE_AP_MCC_CH_AVOIDANCE */
7391
Krunal Soni1878d3a2016-01-14 13:00:44 -08007392 smeConfig->csrConfig.f_prefer_non_dfs_on_radar =
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007393 pHddCtx->config->prefer_non_dfs_on_radar;
7394
Krunal Soni1878d3a2016-01-14 13:00:44 -08007395 smeConfig->csrConfig.is_ps_enabled = pHddCtx->config->is_ps_enabled;
Kiran Kumar Lokere0ac679c2016-11-17 17:43:36 -08007396 smeConfig->csrConfig.auto_bmps_timer_val =
7397 pHddCtx->config->auto_bmps_timer_val;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007398 hdd_set_fine_time_meas_cap(pHddCtx, smeConfig);
7399
7400 cds_set_multicast_logging(pHddCtx->config->multicast_host_fw_msgs);
7401
7402 smeConfig->csrConfig.sendDeauthBeforeCon = pConfig->sendDeauthBeforeCon;
7403
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007404 smeConfig->csrConfig.max_scan_count =
7405 pHddCtx->config->max_scan_count;
7406
7407 /* Update 802.11p config */
7408 smeConfig->csrConfig.enable_dot11p =
7409 (pHddCtx->config->dot11p_mode != WLAN_HDD_11P_DISABLED);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007410
Krunal Soni1878d3a2016-01-14 13:00:44 -08007411 smeConfig->csrConfig.early_stop_scan_enable =
Varun Reddy Yeturu05186292015-09-28 17:12:33 -07007412 pHddCtx->config->early_stop_scan_enable;
Krunal Soni1878d3a2016-01-14 13:00:44 -08007413 smeConfig->csrConfig.early_stop_scan_min_threshold =
Varun Reddy Yeturu05186292015-09-28 17:12:33 -07007414 pHddCtx->config->early_stop_scan_min_threshold;
Krunal Soni1878d3a2016-01-14 13:00:44 -08007415 smeConfig->csrConfig.early_stop_scan_max_threshold =
Varun Reddy Yeturu05186292015-09-28 17:12:33 -07007416 pHddCtx->config->early_stop_scan_max_threshold;
Varun Reddy Yeturu044bda22015-11-21 22:03:40 -08007417 smeConfig->csrConfig.first_scan_bucket_threshold =
7418 pHddCtx->config->first_scan_bucket_threshold;
Gupta, Kapilc68ad462016-02-01 19:17:23 +05307419
7420 smeConfig->csrConfig.roam_dense_rssi_thresh_offset =
7421 pHddCtx->config->roam_dense_rssi_thresh_offset;
7422 smeConfig->csrConfig.roam_dense_min_aps =
7423 pHddCtx->config->roam_dense_min_aps;
7424 smeConfig->csrConfig.roam_dense_traffic_thresh =
7425 pHddCtx->config->roam_dense_traffic_thresh;
Sandeep Puligilla93a29ec2016-02-12 16:10:56 -08007426 smeConfig->csrConfig.obss_width_interval =
7427 pHddCtx->config->obss_width_trigger_interval;
7428 smeConfig->csrConfig.obss_active_dwelltime =
7429 pHddCtx->config->obss_active_dwelltime;
7430 smeConfig->csrConfig.obss_passive_dwelltime =
7431 pHddCtx->config->obss_passive_dwelltime;
Abhishek Singh165bc602016-03-21 12:43:00 +05307432 smeConfig->csrConfig.ignore_peer_ht_opmode =
7433 pConfig->ignore_peer_ht_opmode;
Abhishek Singh5ea86532016-04-27 14:10:53 +05307434 smeConfig->csrConfig.enable_fatal_event =
7435 pConfig->enable_fatal_event;
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05307436 smeConfig->csrConfig.scan_adaptive_dwell_mode =
7437 pHddCtx->config->scan_adaptive_dwell_mode;
7438 smeConfig->csrConfig.roamscan_adaptive_dwell_mode =
7439 pHddCtx->config->roamscan_adaptive_dwell_mode;
Gupta, Kapilc68ad462016-02-01 19:17:23 +05307440
Kapil Gupta5cda2252016-12-29 18:44:26 +05307441 hdd_update_per_config_to_sme(pHddCtx, smeConfig);
7442
Abhishek Singh10ecf582016-05-04 17:48:59 +05307443 smeConfig->csrConfig.enable_edca_params =
7444 pConfig->enable_edca_params;
7445
7446 smeConfig->csrConfig.edca_vo_cwmin =
7447 pConfig->edca_vo_cwmin;
7448 smeConfig->csrConfig.edca_vi_cwmin =
7449 pConfig->edca_vi_cwmin;
7450 smeConfig->csrConfig.edca_bk_cwmin =
7451 pConfig->edca_bk_cwmin;
7452 smeConfig->csrConfig.edca_be_cwmin =
7453 pConfig->edca_be_cwmin;
7454
7455 smeConfig->csrConfig.edca_vo_cwmax =
7456 pConfig->edca_vo_cwmax;
7457 smeConfig->csrConfig.edca_vi_cwmax =
7458 pConfig->edca_vi_cwmax;
7459 smeConfig->csrConfig.edca_bk_cwmax =
7460 pConfig->edca_bk_cwmax;
7461 smeConfig->csrConfig.edca_be_cwmax =
7462 pConfig->edca_be_cwmax;
7463
7464 smeConfig->csrConfig.edca_vo_aifs =
7465 pConfig->edca_vo_aifs;
7466 smeConfig->csrConfig.edca_vi_aifs =
7467 pConfig->edca_vi_aifs;
7468 smeConfig->csrConfig.edca_bk_aifs =
7469 pConfig->edca_bk_aifs;
7470 smeConfig->csrConfig.edca_be_aifs =
7471 pConfig->edca_be_aifs;
Agrawal Ashish21ba2572016-09-03 16:40:10 +05307472 smeConfig->csrConfig.sta_roam_policy_params.dfs_mode =
7473 CSR_STA_ROAM_POLICY_DFS_ENABLED;
7474 smeConfig->csrConfig.sta_roam_policy_params.skip_unsafe_channels = 0;
Abhishek Singh10ecf582016-05-04 17:48:59 +05307475
Kapil Gupta4f0c0c12017-02-07 15:21:15 +05307476 smeConfig->snr_monitor_enabled = pHddCtx->config->fEnableSNRMonitoring;
7477
Padma, Santhosh Kumara7119672016-08-16 16:05:14 +05307478 smeConfig->csrConfig.tx_aggregation_size =
7479 pHddCtx->config->tx_aggregation_size;
7480 smeConfig->csrConfig.rx_aggregation_size =
7481 pHddCtx->config->rx_aggregation_size;
Selvaraj, Sridhar4f684bb2017-01-19 15:59:23 +05307482 smeConfig->csrConfig.enable_bcast_probe_rsp =
7483 pHddCtx->config->enable_bcast_probe_rsp;
Selvaraj, Sridhara521aab2017-03-25 16:42:34 +05307484 smeConfig->csrConfig.qcn_ie_support =
7485 pHddCtx->config->qcn_ie_support;
Selvaraj, Sridhar97ce6582017-01-20 17:06:34 +05307486 smeConfig->csrConfig.fils_max_chan_guard_time =
7487 pHddCtx->config->fils_max_chan_guard_time;
Padma, Santhosh Kumara7119672016-08-16 16:05:14 +05307488
Krishna Kumaar Natarajan90bb6f12017-03-03 21:05:52 -08007489 hdd_he_set_sme_config(smeConfig, pConfig);
7490
Naveen Rawat2b6e3c92017-03-20 13:59:07 -07007491 smeConfig->csrConfig.pkt_err_disconn_th =
7492 pHddCtx->config->pkt_err_disconn_th;
Naveen Rawatb2fc4132017-05-10 20:42:05 -07007493 smeConfig->csrConfig.is_force_1x1 =
7494 pHddCtx->config->is_force_1x1;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007495 status = sme_update_config(pHddCtx->hHal, smeConfig);
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07007496 if (!QDF_IS_STATUS_SUCCESS(status))
7497 hdd_err("sme_update_config() failure: %d", status);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007498
Anurag Chouhan600c3a02016-03-01 10:33:54 +05307499 qdf_mem_free(smeConfig);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007500 return status;
7501}
7502
7503/**
7504 * hdd_execute_global_config_command() - execute the global config command
7505 * @pHddCtx: the pointer to hdd context
7506 * @command: the command to run
7507 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307508 * Return: the QDF_STATUS return from hdd_execute_config_command
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007509 */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307510QDF_STATUS hdd_execute_global_config_command(hdd_context_t *pHddCtx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007511 char *command)
7512{
7513 return hdd_execute_config_command(g_registry_table,
7514 ARRAY_SIZE(g_registry_table),
7515 (uint8_t *) pHddCtx->config,
7516 pHddCtx, command);
7517}
7518
7519/**
7520 * hdd_cfg_get_global_config() - get the configuration table
7521 * @pHddCtx: pointer to hdd context
7522 * @pBuf: buffer to store the configuration
7523 * @buflen: size of the buffer
7524 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307525 * Return: QDF_STATUS_SUCCESS if the configuration and buffer size can carry
7526 * the content, otherwise QDF_STATUS_E_RESOURCES
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007527 */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307528QDF_STATUS hdd_cfg_get_global_config(hdd_context_t *pHddCtx, char *pBuf,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007529 int buflen)
7530{
7531 return hdd_cfg_get_config(g_registry_table,
7532 ARRAY_SIZE(g_registry_table),
7533 (uint8_t *) pHddCtx->config, pHddCtx, pBuf,
7534 buflen);
7535}
7536
7537/**
7538 * hdd_is_okc_mode_enabled() - returns whether OKC mode is enabled or not
7539 * @pHddCtx: the pointer to hdd context
7540 *
7541 * Return: true if OKC is enabled, otherwise false
7542 */
7543bool hdd_is_okc_mode_enabled(hdd_context_t *pHddCtx)
7544{
7545 if (NULL == pHddCtx) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08007546 hdd_alert("pHddCtx is NULL");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007547 return -EINVAL;
7548 }
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007549 return pHddCtx->config->isOkcIniFeatureEnabled;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007550}
7551
7552/**
7553 * hdd_update_nss() - Update the number of spatial streams supported.
7554 * Ensure that nss is either 1 or 2 before calling this.
7555 *
7556 * @hdd_ctx: the pointer to hdd context
7557 * @nss: the number of spatial streams to be updated
7558 *
7559 * This function is used to modify the number of spatial streams
7560 * supported when not in connected state.
7561 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307562 * Return: QDF_STATUS_SUCCESS if nss is correctly updated,
7563 * otherwise QDF_STATUS_E_FAILURE would be returned
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007564 */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307565QDF_STATUS hdd_update_nss(hdd_context_t *hdd_ctx, uint8_t nss)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007566{
7567 struct hdd_config *hdd_config = hdd_ctx->config;
7568 uint32_t temp = 0;
7569 uint32_t rx_supp_data_rate, tx_supp_data_rate;
7570 bool status = true;
7571 tSirMacHTCapabilityInfo *ht_cap_info;
7572 uint8_t mcs_set[SIZE_OF_SUPPORTED_MCS_SET] = {0};
7573 uint8_t mcs_set_temp[SIZE_OF_SUPPORTED_MCS_SET];
Sandeep Puligilla98917432016-06-10 13:50:28 -07007574 uint32_t val, val32;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007575 uint16_t val16;
7576 uint8_t enable2x2;
7577
7578 if ((nss == 2) && (hdd_ctx->num_rf_chains != 2)) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08007579 hdd_err("No support for 2 spatial streams");
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307580 return QDF_STATUS_E_INVAL;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007581 }
7582
7583 enable2x2 = (nss == 1) ? 0 : 1;
7584
7585 if (hdd_config->enable2x2 == enable2x2) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07007586 hdd_debug("NSS same as requested");
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307587 return QDF_STATUS_SUCCESS;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007588 }
7589
7590 if (true == sme_is_any_session_in_connected_state(hdd_ctx->hHal)) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08007591 hdd_err("Connected sessions present, Do not change NSS");
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307592 return QDF_STATUS_E_INVAL;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007593 }
7594
7595 hdd_config->enable2x2 = enable2x2;
7596
7597 if (!hdd_config->enable2x2) {
7598 /* 1x1 */
Kiran Kumar Lokere666bf852016-05-02 12:23:02 -07007599 rx_supp_data_rate = VHT_RX_HIGHEST_SUPPORTED_DATA_RATE_1_1;
7600 tx_supp_data_rate = VHT_TX_HIGHEST_SUPPORTED_DATA_RATE_1_1;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007601 } else {
7602 /* 2x2 */
Kiran Kumar Lokere666bf852016-05-02 12:23:02 -07007603 rx_supp_data_rate = VHT_RX_HIGHEST_SUPPORTED_DATA_RATE_2_2;
7604 tx_supp_data_rate = VHT_TX_HIGHEST_SUPPORTED_DATA_RATE_2_2;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007605 }
7606
7607 /* Update Rx Highest Long GI data Rate */
7608 if (sme_cfg_set_int(hdd_ctx->hHal,
7609 WNI_CFG_VHT_RX_HIGHEST_SUPPORTED_DATA_RATE,
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307610 rx_supp_data_rate) == QDF_STATUS_E_FAILURE) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007611 status = false;
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08007612 hdd_err("Could not pass on WNI_CFG_VHT_RX_HIGHEST_SUPPORTED_DATA_RATE to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007613 }
7614
7615 /* Update Tx Highest Long GI data Rate */
7616 if (sme_cfg_set_int(hdd_ctx->hHal,
7617 WNI_CFG_VHT_TX_HIGHEST_SUPPORTED_DATA_RATE,
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307618 tx_supp_data_rate) == QDF_STATUS_E_FAILURE) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007619 status = false;
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08007620 hdd_err("Could not pass on WNI_CFG_VHT_TX_HIGHEST_SUPPORTED_DATA_RATE to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007621 }
7622
7623 sme_cfg_get_int(hdd_ctx->hHal, WNI_CFG_HT_CAP_INFO, &temp);
7624 val16 = (uint16_t)temp;
7625 ht_cap_info = (tSirMacHTCapabilityInfo *)&val16;
Sandeep Puligilla98917432016-06-10 13:50:28 -07007626 if (!(hdd_ctx->ht_tx_stbc_supported && hdd_config->enable2x2)) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007627 ht_cap_info->txSTBC = 0;
Sandeep Puligilla98917432016-06-10 13:50:28 -07007628 } else {
7629 sme_cfg_get_int(hdd_ctx->hHal, WNI_CFG_VHT_TXSTBC, &val32);
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07007630 hdd_debug("STBC %d", val32);
Sandeep Puligilla98917432016-06-10 13:50:28 -07007631 ht_cap_info->txSTBC = val32;
7632 }
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007633 temp = val16;
7634 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_HT_CAP_INFO,
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307635 temp) == QDF_STATUS_E_FAILURE) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007636 status = false;
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08007637 hdd_err("Could not pass on WNI_CFG_HT_CAP_INFO to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007638 }
7639
7640 sme_cfg_get_int(hdd_ctx->hHal, WNI_CFG_VHT_BASIC_MCS_SET, &temp);
7641 temp = (temp & 0xFFFC) | hdd_config->vhtRxMCS;
7642 if (hdd_config->enable2x2)
7643 temp = (temp & 0xFFF3) | (hdd_config->vhtRxMCS2x2 << 2);
7644 else
7645 temp |= 0x000C;
7646
7647 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_VHT_BASIC_MCS_SET,
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307648 temp) == QDF_STATUS_E_FAILURE) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007649 status = false;
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08007650 hdd_err("Could not pass on WNI_CFG_VHT_BASIC_MCS_SET to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007651 }
7652
7653 sme_cfg_get_int(hdd_ctx->hHal, WNI_CFG_VHT_RX_MCS_MAP, &temp);
7654 temp = (temp & 0xFFFC) | hdd_config->vhtRxMCS;
7655 if (hdd_config->enable2x2)
7656 temp = (temp & 0xFFF3) | (hdd_config->vhtRxMCS2x2 << 2);
7657 else
7658 temp |= 0x000C;
7659
7660 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_VHT_RX_MCS_MAP,
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307661 temp) == QDF_STATUS_E_FAILURE) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007662 status = false;
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08007663 hdd_err("Could not pass on WNI_CFG_VHT_RX_MCS_MAP to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007664 }
7665
7666 sme_cfg_get_int(hdd_ctx->hHal, WNI_CFG_VHT_TX_MCS_MAP, &temp);
7667 temp = (temp & 0xFFFC) | hdd_config->vhtTxMCS;
7668 if (hdd_config->enable2x2)
7669 temp = (temp & 0xFFF3) | (hdd_config->vhtTxMCS2x2 << 2);
7670 else
7671 temp |= 0x000C;
7672
7673 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_VHT_TX_MCS_MAP,
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307674 temp) == QDF_STATUS_E_FAILURE) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007675 status = false;
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08007676 hdd_err("Could not pass on WNI_CFG_VHT_TX_MCS_MAP to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007677 }
7678
7679#define WLAN_HDD_RX_MCS_ALL_NSTREAM_RATES 0xff
7680 val = SIZE_OF_SUPPORTED_MCS_SET;
7681 sme_cfg_get_str(hdd_ctx->hHal, WNI_CFG_SUPPORTED_MCS_SET,
7682 mcs_set_temp, &val);
7683
7684 mcs_set[0] = mcs_set_temp[0];
7685 if (hdd_config->enable2x2)
7686 for (val = 0; val < nss; val++)
7687 mcs_set[val] = WLAN_HDD_RX_MCS_ALL_NSTREAM_RATES;
7688
7689 if (sme_cfg_set_str(hdd_ctx->hHal, WNI_CFG_SUPPORTED_MCS_SET,
7690 mcs_set,
7691 SIZE_OF_SUPPORTED_MCS_SET) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307692 QDF_STATUS_E_FAILURE) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007693 status = false;
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08007694 hdd_err("Could not pass on MCS SET to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007695 }
7696#undef WLAN_HDD_RX_MCS_ALL_NSTREAM_RATES
7697
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307698 if (QDF_STATUS_SUCCESS != sme_update_nss(hdd_ctx->hHal, nss))
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007699 status = false;
7700
Tushnim Bhattacharyya7e546692017-03-23 18:30:29 -07007701 hdd_set_policy_mgr_user_cfg(hdd_ctx);
7702
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307703 return (status == false) ? QDF_STATUS_E_FAILURE : QDF_STATUS_SUCCESS;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007704}