blob: 80a33c7fdc7e6cd6f3f9618dc98ba2d1e82b5131 [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
Jeff Johnsonb6909be2017-08-28 12:07:19 -070052cb_notify_set_roam_prefer5_g_hz(struct hdd_context *pHddCtx, unsigned long notifyId)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080053{
54 sme_update_roam_prefer5_g_hz(pHddCtx->hHal,
55 pHddCtx->config->nRoamPrefer5GHz);
56}
57
58static void
Jeff Johnsonb6909be2017-08-28 12:07:19 -070059cb_notify_set_roam_rssi_diff(struct hdd_context *pHddCtx, unsigned long notifyId)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080060{
61 sme_update_roam_rssi_diff(pHddCtx->hHal,
62 0, pHddCtx->config->RoamRssiDiff);
63}
64
65static void
Jeff Johnsonb6909be2017-08-28 12:07:19 -070066cb_notify_set_fast_transition_enabled(struct hdd_context *pHddCtx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080067 unsigned long notifyId)
68{
69 sme_update_fast_transition_enabled(pHddCtx->hHal,
70 pHddCtx->config->
71 isFastTransitionEnabled);
72}
73
74static void
Jeff Johnsonb6909be2017-08-28 12:07:19 -070075cb_notify_set_roam_intra_band(struct hdd_context *pHddCtx, unsigned long notifyId)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080076{
77 sme_set_roam_intra_band(pHddCtx->hHal, pHddCtx->config->nRoamIntraBand);
78}
79
Jeff Johnsonb6909be2017-08-28 12:07:19 -070080static void cb_notify_set_wes_mode(struct hdd_context *pHddCtx,
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -070081 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
Jeff Johnsonb6909be2017-08-28 12:07:19 -070088cb_notify_set_roam_scan_n_probes(struct hdd_context *pHddCtx, unsigned long notifyId)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080089{
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
Jeff Johnsonb6909be2017-08-28 12:07:19 -070095cb_notify_set_roam_scan_home_away_time(struct hdd_context *pHddCtx,
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -070096 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
Jeff Johnsonb6909be2017-08-28 12:07:19 -0700104notify_is_fast_roam_ini_feature_enabled(struct hdd_context *pHddCtx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800105 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
Jeff Johnsonb6909be2017-08-28 12:07:19 -0700113notify_is_mawc_ini_feature_enabled(struct hdd_context *pHddCtx,
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -0700114 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
Jeff Johnsonb6909be2017-08-28 12:07:19 -0700122cb_notify_set_ese_feature_enabled(struct hdd_context *pHddCtx,
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -0700123 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
Jeff Johnsonb6909be2017-08-28 12:07:19 -0700131cb_notify_set_fw_rssi_monitoring(struct hdd_context *pHddCtx, unsigned long notifyId)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800132{
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800133 sme_update_config_fw_rssi_monitoring(pHddCtx->hHal,
134 pHddCtx->config->
135 fEnableFwRssiMonitoring);
136}
137
Jeff Johnsonb6909be2017-08-28 12:07:19 -0700138static void cb_notify_set_opportunistic_scan_threshold_diff(struct hdd_context *pHddCtx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800139 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
Jeff Johnsonb6909be2017-08-28 12:07:19 -0700146static void cb_notify_set_roam_rescan_rssi_diff(struct hdd_context *pHddCtx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800147 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
Jeff Johnsonb6909be2017-08-28 12:07:19 -0700154cb_notify_set_neighbor_lookup_rssi_threshold(struct hdd_context *pHddCtx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800155 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
Jeff Johnsonb6909be2017-08-28 12:07:19 -0700163cb_notify_set_delay_before_vdev_stop(struct hdd_context *hdd_ctx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800164 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
Jeff Johnsonb6909be2017-08-28 12:07:19 -0700171cb_notify_set_neighbor_scan_period(struct hdd_context *pHddCtx,
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -0700172 unsigned long notifyId)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800173{
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800174 sme_set_neighbor_scan_period(pHddCtx->hHal, 0,
175 pHddCtx->config->nNeighborScanPeriod);
176}
177
Sridhar Selvaraj1b2330c2017-07-21 15:16:42 +0530178/*
179 * cb_notify_set_neighbor_scan_min_period() - configure min rest
180 * time during roaming scan
181 *
182 * @hdd_ctx: HDD context data structure
183 * @notify_id: Identifies 1 of the 4 parameters to be modified
184 *
185 * Picks up the value from hdd configuration and passes it to SME.
186 * Return: void
187 */
188static void
Jeff Johnsonb6909be2017-08-28 12:07:19 -0700189cb_notify_set_neighbor_scan_min_period(struct hdd_context *pHddCtx,
Sridhar Selvaraj1b2330c2017-07-21 15:16:42 +0530190 unsigned long notifyId)
191{
192 sme_set_neighbor_scan_min_period(pHddCtx->hHal, 0,
193 pHddCtx->config->
194 neighbor_scan_min_period);
195}
196
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800197static void
Jeff Johnsonb6909be2017-08-28 12:07:19 -0700198cb_notify_set_neighbor_results_refresh_period(struct hdd_context *pHddCtx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800199 unsigned long notifyId)
200{
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800201 sme_set_neighbor_scan_refresh_period(pHddCtx->hHal, 0,
202 pHddCtx->config->
203 nNeighborResultsRefreshPeriod);
204}
205
206static void
Jeff Johnsonb6909be2017-08-28 12:07:19 -0700207cb_notify_set_empty_scan_refresh_period(struct hdd_context *pHddCtx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800208 unsigned long notifyId)
209{
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800210 sme_update_empty_scan_refresh_period(pHddCtx->hHal, 0,
211 pHddCtx->config->
212 nEmptyScanRefreshPeriod);
213}
214
215static void
Jeff Johnsonb6909be2017-08-28 12:07:19 -0700216cb_notify_set_neighbor_scan_min_chan_time(struct hdd_context *pHddCtx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800217 unsigned long notifyId)
218{
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800219 sme_set_neighbor_scan_min_chan_time(pHddCtx->hHal,
220 pHddCtx->config->
221 nNeighborScanMinChanTime, 0);
222}
223
224static void
Jeff Johnsonb6909be2017-08-28 12:07:19 -0700225cb_notify_set_neighbor_scan_max_chan_time(struct hdd_context *pHddCtx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800226 unsigned long notifyId)
227{
228 sme_set_neighbor_scan_max_chan_time(pHddCtx->hHal, 0,
229 pHddCtx->config->
230 nNeighborScanMaxChanTime);
231}
232
Jeff Johnsonb6909be2017-08-28 12:07:19 -0700233static void cb_notify_set_roam_bmiss_first_bcnt(struct hdd_context *pHddCtx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800234 unsigned long notifyId)
235{
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800236 sme_set_roam_bmiss_first_bcnt(pHddCtx->hHal,
237 0, pHddCtx->config->nRoamBmissFirstBcnt);
238}
239
Jeff Johnsonb6909be2017-08-28 12:07:19 -0700240static void cb_notify_set_roam_bmiss_final_bcnt(struct hdd_context *pHddCtx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800241 unsigned long notifyId)
242{
243 sme_set_roam_bmiss_final_bcnt(pHddCtx->hHal, 0,
244 pHddCtx->config->nRoamBmissFinalBcnt);
245}
246
Jeff Johnsonb6909be2017-08-28 12:07:19 -0700247static void cb_notify_set_roam_beacon_rssi_weight(struct hdd_context *pHddCtx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800248 unsigned long notifyId)
249{
250 sme_set_roam_beacon_rssi_weight(pHddCtx->hHal, 0,
251 pHddCtx->config->nRoamBeaconRssiWeight);
252}
253
254static void
Jeff Johnsonb6909be2017-08-28 12:07:19 -0700255cb_notify_set_dfs_scan_mode(struct hdd_context *pHddCtx, unsigned long notifyId)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800256{
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800257 sme_update_dfs_scan_mode(pHddCtx->hHal, 0,
258 pHddCtx->config->allowDFSChannelRoam);
259}
260
Jeff Johnsonb6909be2017-08-28 12:07:19 -0700261static void cb_notify_set_enable_ssr(struct hdd_context *pHddCtx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800262 unsigned long notifyId)
263{
264 sme_update_enable_ssr(pHddCtx->hHal, pHddCtx->config->enableSSR);
265}
266
Jeff Johnsonb6909be2017-08-28 12:07:19 -0700267static void cb_notify_set_g_sap_preferred_chan_location(struct hdd_context *pHddCtx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800268 unsigned long notifyId)
269{
270 wlansap_set_dfs_preferred_channel_location(pHddCtx->hHal,
271 pHddCtx->config->
272 gSapPreferredChanLocation);
273}
Jeff Johnsonb6909be2017-08-28 12:07:19 -0700274static void ch_notify_set_g_disable_dfs_japan_w53(struct hdd_context *pHddCtx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800275 unsigned long notifyId)
276{
277 wlansap_set_dfs_restrict_japan_w53(pHddCtx->hHal,
278 pHddCtx->config->
279 gDisableDfsJapanW53);
280}
281static void
Jeff Johnsonb6909be2017-08-28 12:07:19 -0700282cb_notify_update_roam_scan_offload_enabled(struct hdd_context *pHddCtx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800283 unsigned long notifyId)
284{
285 sme_update_roam_scan_offload_enabled(pHddCtx->hHal,
286 pHddCtx->config->
287 isRoamOffloadScanEnabled);
288 if (0 == pHddCtx->config->isRoamOffloadScanEnabled) {
289 pHddCtx->config->bFastRoamInConIniFeatureEnabled = 0;
290 sme_update_enable_fast_roam_in_concurrency(pHddCtx->hHal,
291 pHddCtx->config->
292 bFastRoamInConIniFeatureEnabled);
293 }
294}
295
296static void
Jeff Johnsonb6909be2017-08-28 12:07:19 -0700297cb_notify_set_enable_fast_roam_in_concurrency(struct hdd_context *pHddCtx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800298 unsigned long notifyId)
299{
300 sme_update_enable_fast_roam_in_concurrency(pHddCtx->hHal,
301 pHddCtx->config->
302 bFastRoamInConIniFeatureEnabled);
303}
304
305/**
306 * cb_notify_set_roam_scan_hi_rssi_scan_params() - configure hi rssi
307 * scan params from cfg to sme.
308 * @hdd_ctx: HDD context data structure
309 * @notify_id: Identifies 1 of the 4 parameters to be modified
310 *
311 * Picks up the value from hdd configuration and passes it to SME.
312 * Return: void
313 */
314
315static void
Jeff Johnsonb6909be2017-08-28 12:07:19 -0700316cb_notify_set_roam_scan_hi_rssi_scan_params(struct hdd_context *hdd_ctx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800317 unsigned long notify_id)
318{
319 int32_t val;
320
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -0700321 if (wlan_hdd_validate_context(hdd_ctx))
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800322 return;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800323
324 switch (notify_id) {
325 case eCSR_HI_RSSI_SCAN_MAXCOUNT_ID:
326 val = hdd_ctx->config->nhi_rssi_scan_max_count;
327 break;
328
329 case eCSR_HI_RSSI_SCAN_RSSI_DELTA_ID:
330 val = hdd_ctx->config->nhi_rssi_scan_rssi_delta;
331 break;
332
333 case eCSR_HI_RSSI_SCAN_DELAY_ID:
334 val = hdd_ctx->config->nhi_rssi_scan_delay;
335 break;
336
337 case eCSR_HI_RSSI_SCAN_RSSI_UB_ID:
338 val = hdd_ctx->config->nhi_rssi_scan_rssi_ub;
339 break;
340
341 default:
342 return;
343 }
344
345 sme_update_roam_scan_hi_rssi_scan_params(hdd_ctx->hHal, 0,
346 notify_id, val);
347}
348
349
Srinivas Girigowda2fb677c2017-03-25 15:35:34 -0700350struct reg_table_entry g_registry_table[] = {
Ashish Kumar Dhanotiya470af292017-05-31 20:46:00 +0530351 REG_VARIABLE(CFG_ENABLE_CONNECTED_SCAN_NAME, WLAN_PARAM_Integer,
352 struct hdd_config, enable_connected_scan,
353 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
354 CFG_ENABLE_CONNECTED_SCAN_DEFAULT,
355 CFG_ENABLE_CONNECTED_SCAN_MIN,
356 CFG_ENABLE_CONNECTED_SCAN_MAX),
357
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800358 REG_VARIABLE(CFG_RTS_THRESHOLD_NAME, WLAN_PARAM_Integer,
359 struct hdd_config, RTSThreshold,
360 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
361 CFG_RTS_THRESHOLD_DEFAULT,
362 CFG_RTS_THRESHOLD_MIN,
363 CFG_RTS_THRESHOLD_MAX),
364
365 REG_VARIABLE(CFG_FRAG_THRESHOLD_NAME, WLAN_PARAM_Integer,
366 struct hdd_config, FragmentationThreshold,
367 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
368 CFG_FRAG_THRESHOLD_DEFAULT,
369 CFG_FRAG_THRESHOLD_MIN,
370 CFG_FRAG_THRESHOLD_MAX),
371
372 REG_VARIABLE(CFG_OPERATING_CHANNEL_NAME, WLAN_PARAM_Integer,
373 struct hdd_config, OperatingChannel,
374 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
375 CFG_OPERATING_CHANNEL_DEFAULT,
376 CFG_OPERATING_CHANNEL_MIN,
377 CFG_OPERATING_CHANNEL_MAX),
378
379 REG_VARIABLE(CFG_SHORT_SLOT_TIME_ENABLED_NAME, WLAN_PARAM_Integer,
380 struct hdd_config, ShortSlotTimeEnabled,
381 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
382 CFG_SHORT_SLOT_TIME_ENABLED_DEFAULT,
383 CFG_SHORT_SLOT_TIME_ENABLED_MIN,
384 CFG_SHORT_SLOT_TIME_ENABLED_MAX),
385
386 REG_VARIABLE(CFG_11D_SUPPORT_ENABLED_NAME, WLAN_PARAM_Integer,
387 struct hdd_config, Is11dSupportEnabled,
388 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
389 CFG_11D_SUPPORT_ENABLED_DEFAULT,
390 CFG_11D_SUPPORT_ENABLED_MIN,
391 CFG_11D_SUPPORT_ENABLED_MAX),
392
393 REG_VARIABLE(CFG_11H_SUPPORT_ENABLED_NAME, WLAN_PARAM_Integer,
394 struct hdd_config, Is11hSupportEnabled,
395 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
396 CFG_11H_SUPPORT_ENABLED_DEFAULT,
397 CFG_11H_SUPPORT_ENABLED_MIN,
398 CFG_11H_SUPPORT_ENABLED_MAX),
399
400 REG_VARIABLE(CFG_COUNTRY_CODE_PRIORITY_NAME, WLAN_PARAM_Integer,
401 struct hdd_config, fSupplicantCountryCodeHasPriority,
402 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
403 CFG_COUNTRY_CODE_PRIORITY_DEFAULT,
404 CFG_COUNTRY_CODE_PRIORITY_MIN,
405 CFG_COUNTRY_CODE_PRIORITY_MAX),
406
407 REG_VARIABLE(CFG_HEARTBEAT_THRESH_24_NAME, WLAN_PARAM_Integer,
408 struct hdd_config, HeartbeatThresh24,
409 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
410 CFG_HEARTBEAT_THRESH_24_DEFAULT,
411 CFG_HEARTBEAT_THRESH_24_MIN,
412 CFG_HEARTBEAT_THRESH_24_MAX),
413
414 REG_VARIABLE_STRING(CFG_POWER_USAGE_NAME, WLAN_PARAM_String,
415 struct hdd_config, PowerUsageControl,
416 VAR_FLAGS_OPTIONAL,
417 (void *)CFG_POWER_USAGE_DEFAULT),
418
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800419 REG_VARIABLE(CFG_ENABLE_IMPS_NAME, WLAN_PARAM_Integer,
420 struct hdd_config, fIsImpsEnabled,
421 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
422 CFG_ENABLE_IMPS_DEFAULT,
423 CFG_ENABLE_IMPS_MIN,
424 CFG_ENABLE_IMPS_MAX),
425
426 REG_VARIABLE(CFG_ENABLE_PS_NAME, WLAN_PARAM_Integer,
427 struct hdd_config, is_ps_enabled,
428 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
429 CFG_ENABLE_PS_DEFAULT,
430 CFG_ENABLE_PS_MIN,
431 CFG_ENABLE_PS_MAX),
432
Kiran Kumar Lokere0ac679c2016-11-17 17:43:36 -0800433 REG_VARIABLE(CFG_AUTO_PS_ENABLE_TIMER_NAME, WLAN_PARAM_Integer,
434 struct hdd_config, auto_bmps_timer_val,
435 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
436 CFG_AUTO_PS_ENABLE_TIMER_DEFAULT,
437 CFG_AUTO_PS_ENABLE_TIMER_MIN,
438 CFG_AUTO_PS_ENABLE_TIMER_MAX),
439
Zhu Jianmin04392c42017-05-12 16:34:53 +0800440#ifdef WLAN_ICMP_DISABLE_PS
441 REG_VARIABLE(CFG_ICMP_DISABLE_PS_NAME, WLAN_PARAM_Integer,
442 struct hdd_config, icmp_disable_ps_val,
443 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
444 CFG_ICMP_DISABLE_PS_DEFAULT,
445 CFG_ICMP_DISABLE_PS_MIN,
446 CFG_ICMP_DISABLE_PS_MAX),
447#endif
448
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800449 REG_VARIABLE(CFG_BMPS_MINIMUM_LI_NAME, WLAN_PARAM_Integer,
450 struct hdd_config, nBmpsMinListenInterval,
451 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
452 CFG_BMPS_MINIMUM_LI_DEFAULT,
453 CFG_BMPS_MINIMUM_LI_MIN,
454 CFG_BMPS_MINIMUM_LI_MAX),
455
456 REG_VARIABLE(CFG_BMPS_MAXIMUM_LI_NAME, WLAN_PARAM_Integer,
457 struct hdd_config, nBmpsMaxListenInterval,
458 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
459 CFG_BMPS_MAXIMUM_LI_DEFAULT,
460 CFG_BMPS_MAXIMUM_LI_MIN,
461 CFG_BMPS_MAXIMUM_LI_MAX),
462
463 REG_VARIABLE(CFG_BMPS_MODERATE_LI_NAME, WLAN_PARAM_Integer,
464 struct hdd_config, nBmpsModListenInterval,
465 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
466 CFG_BMPS_MODERATE_LI_DEFAULT,
467 CFG_BMPS_MODERATE_LI_MIN,
468 CFG_BMPS_MODERATE_LI_MAX),
469
470 REG_VARIABLE(CFG_DOT11_MODE_NAME, WLAN_PARAM_Integer,
471 struct hdd_config, dot11Mode,
472 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
473 CFG_DOT11_MODE_DEFAULT,
474 CFG_DOT11_MODE_MIN,
475 CFG_DOT11_MODE_MAX),
476
477 REG_VARIABLE(CFG_CHANNEL_BONDING_MODE_24GHZ_NAME, WLAN_PARAM_Integer,
478 struct hdd_config, nChannelBondingMode24GHz,
479 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
480 CFG_CHANNEL_BONDING_MODE_DEFAULT,
481 CFG_CHANNEL_BONDING_MODE_MIN,
482 CFG_CHANNEL_BONDING_MODE_MAX),
483
Abhishek Singhb59f8d42017-07-31 14:42:47 +0530484 REG_VARIABLE(CFG_OVERRIDE_HT40_20_24GHZ_NAME, WLAN_PARAM_Integer,
485 struct hdd_config, override_ht20_40_24g,
486 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
487 CFG_OVERRIDE_HT40_20_24GHZ_DEFAULT,
488 CFG_OVERRIDE_HT40_20_24GHZ_MIN,
489 CFG_OVERRIDE_HT40_20_24GHZ_MAX),
490
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800491 REG_VARIABLE(CFG_CHANNEL_BONDING_MODE_5GHZ_NAME, WLAN_PARAM_Integer,
492 struct hdd_config, nChannelBondingMode5GHz,
493 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
494 CFG_CHANNEL_BONDING_MODE_DEFAULT,
495 CFG_CHANNEL_BONDING_MODE_MIN,
496 CFG_CHANNEL_BONDING_MODE_MAX),
497
498 REG_VARIABLE(CFG_MAX_RX_AMPDU_FACTOR_NAME, WLAN_PARAM_Integer,
499 struct hdd_config, MaxRxAmpduFactor,
500 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
501 CFG_MAX_RX_AMPDU_FACTOR_DEFAULT,
502 CFG_MAX_RX_AMPDU_FACTOR_MIN,
503 CFG_MAX_RX_AMPDU_FACTOR_MAX),
504
Krishna Kumaar Natarajan22b59a72015-11-23 18:54:58 -0800505 REG_VARIABLE(CFG_HT_MPDU_DENSITY_NAME, WLAN_PARAM_Integer,
506 struct hdd_config, ht_mpdu_density,
Jeff Johnson03294f12016-12-09 17:10:24 -0800507 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
Krishna Kumaar Natarajan22b59a72015-11-23 18:54:58 -0800508 CFG_HT_MPDU_DENSITY_DEFAULT,
509 CFG_HT_MPDU_DENSITY_MIN,
510 CFG_HT_MPDU_DENSITY_MAX),
511
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800512 REG_VARIABLE(CFG_FIXED_RATE_NAME, WLAN_PARAM_Integer,
513 struct hdd_config, TxRate,
514 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
515 CFG_FIXED_RATE_DEFAULT,
516 CFG_FIXED_RATE_MIN,
517 CFG_FIXED_RATE_MAX),
518
519 REG_VARIABLE(CFG_SHORT_GI_20MHZ_NAME, WLAN_PARAM_Integer,
520 struct hdd_config, ShortGI20MhzEnable,
521 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
522 CFG_SHORT_GI_20MHZ_DEFAULT,
523 CFG_SHORT_GI_20MHZ_MIN,
524 CFG_SHORT_GI_20MHZ_MAX),
525
526 REG_VARIABLE(CFG_SCAN_RESULT_AGE_COUNT_NAME, WLAN_PARAM_Integer,
527 struct hdd_config, ScanResultAgeCount,
528 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
529 CFG_SCAN_RESULT_AGE_COUNT_DEFAULT,
530 CFG_SCAN_RESULT_AGE_COUNT_MIN,
531 CFG_SCAN_RESULT_AGE_COUNT_MAX),
532
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800533 REG_VARIABLE(CFG_RSSI_CATEGORY_GAP_NAME, WLAN_PARAM_Integer,
534 struct hdd_config, nRssiCatGap,
535 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
536 CFG_RSSI_CATEGORY_GAP_DEFAULT,
537 CFG_RSSI_CATEGORY_GAP_MIN,
538 CFG_RSSI_CATEGORY_GAP_MAX),
539
540 REG_VARIABLE(CFG_SHORT_PREAMBLE_NAME, WLAN_PARAM_Integer,
541 struct hdd_config, fIsShortPreamble,
542 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
543 CFG_SHORT_PREAMBLE_DEFAULT,
544 CFG_SHORT_PREAMBLE_MIN,
545 CFG_SHORT_PREAMBLE_MAX),
546
547 REG_VARIABLE_STRING(CFG_IBSS_BSSID_NAME, WLAN_PARAM_MacAddr,
548 struct hdd_config, IbssBssid,
549 VAR_FLAGS_OPTIONAL,
550 (void *)CFG_IBSS_BSSID_DEFAULT),
551
552 REG_VARIABLE_STRING(CFG_INTF0_MAC_ADDR_NAME, WLAN_PARAM_MacAddr,
553 struct hdd_config, intfMacAddr[0],
554 VAR_FLAGS_OPTIONAL,
555 (void *)CFG_INTF0_MAC_ADDR_DEFAULT),
556
557 REG_VARIABLE_STRING(CFG_INTF1_MAC_ADDR_NAME, WLAN_PARAM_MacAddr,
558 struct hdd_config, intfMacAddr[1],
559 VAR_FLAGS_OPTIONAL,
560 (void *)CFG_INTF1_MAC_ADDR_DEFAULT),
561
562 REG_VARIABLE_STRING(CFG_INTF2_MAC_ADDR_NAME, WLAN_PARAM_MacAddr,
563 struct hdd_config, intfMacAddr[2],
564 VAR_FLAGS_OPTIONAL,
565 (void *)CFG_INTF2_MAC_ADDR_DEFAULT),
566
567 REG_VARIABLE_STRING(CFG_INTF3_MAC_ADDR_NAME, WLAN_PARAM_MacAddr,
568 struct hdd_config, intfMacAddr[3],
569 VAR_FLAGS_OPTIONAL,
570 (void *)CFG_INTF3_MAC_ADDR_DEFAULT),
571
572 REG_VARIABLE(CFG_AP_QOS_UAPSD_MODE_NAME, WLAN_PARAM_Integer,
573 struct hdd_config, apUapsdEnabled,
574 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
575 CFG_AP_QOS_UAPSD_MODE_DEFAULT,
576 CFG_AP_QOS_UAPSD_MODE_MIN,
577 CFG_AP_QOS_UAPSD_MODE_MAX),
578
579
580 REG_VARIABLE(CFG_AP_ENABLE_RANDOM_BSSID_NAME, WLAN_PARAM_Integer,
581 struct hdd_config, apRandomBssidEnabled,
582 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
583 CFG_AP_ENABLE_RANDOM_BSSID_DEFAULT,
584 CFG_AP_ENABLE_RANDOM_BSSID_MIN,
585 CFG_AP_ENABLE_RANDOM_BSSID_MAX),
586
587 REG_VARIABLE(CFG_AP_ENABLE_PROTECTION_MODE_NAME, WLAN_PARAM_Integer,
588 struct hdd_config, apProtEnabled,
589 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
590 CFG_AP_ENABLE_PROTECTION_MODE_DEFAULT,
591 CFG_AP_ENABLE_PROTECTION_MODE_MIN,
592 CFG_AP_ENABLE_PROTECTION_MODE_MAX),
593
594 REG_VARIABLE(CFG_AP_PROTECTION_MODE_NAME, WLAN_PARAM_HexInteger,
595 struct hdd_config, apProtection,
596 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
597 CFG_AP_PROTECTION_MODE_DEFAULT,
598 CFG_AP_PROTECTION_MODE_MIN,
599 CFG_AP_PROTECTION_MODE_MAX),
600
601 REG_VARIABLE(CFG_AP_OBSS_PROTECTION_MODE_NAME, WLAN_PARAM_Integer,
602 struct hdd_config, apOBSSProtEnabled,
603 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
604 CFG_AP_OBSS_PROTECTION_MODE_DEFAULT,
605 CFG_AP_OBSS_PROTECTION_MODE_MIN,
606 CFG_AP_OBSS_PROTECTION_MODE_MAX),
607
608 REG_VARIABLE(CFG_AP_STA_SECURITY_SEPERATION_NAME, WLAN_PARAM_Integer,
609 struct hdd_config, apDisableIntraBssFwd,
610 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
611 CFG_AP_STA_SECURITY_SEPERATION_DEFAULT,
612 CFG_AP_STA_SECURITY_SEPERATION_MIN,
613 CFG_AP_STA_SECURITY_SEPERATION_MAX),
614
615 REG_VARIABLE(CFG_ENABLE_LTE_COEX, WLAN_PARAM_Integer,
616 struct hdd_config, enableLTECoex,
617 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
618 CFG_ENABLE_LTE_COEX_DEFAULT,
619 CFG_ENABLE_LTE_COEX_MIN,
620 CFG_ENABLE_LTE_COEX_MAX),
Agrawal Ashishbafaff12016-12-27 17:43:08 +0530621
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800622 REG_VARIABLE(CFG_FORCE_SAP_ACS, WLAN_PARAM_Integer,
Agrawal Ashishbafaff12016-12-27 17:43:08 +0530623 struct hdd_config, force_sap_acs,
624 VAR_FLAGS_DYNAMIC_CFG |
625 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
626 CFG_FORCE_SAP_ACS_DEFAULT,
627 CFG_FORCE_SAP_ACS_MIN,
628 CFG_FORCE_SAP_ACS_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800629
630 REG_VARIABLE(CFG_FORCE_SAP_ACS_START_CH, WLAN_PARAM_Integer,
Agrawal Ashishbafaff12016-12-27 17:43:08 +0530631 struct hdd_config, force_sap_acs_st_ch,
632 VAR_FLAGS_DYNAMIC_CFG |
633 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
634 CFG_FORCE_SAP_ACS_START_CH_DEFAULT,
635 CFG_FORCE_SAP_ACS_START_CH_MIN,
636 CFG_FORCE_SAP_ACS_START_CH_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800637
638 REG_VARIABLE(CFG_FORCE_SAP_ACS_END_CH, WLAN_PARAM_Integer,
Agrawal Ashishbafaff12016-12-27 17:43:08 +0530639 struct hdd_config, force_sap_acs_end_ch,
640 VAR_FLAGS_DYNAMIC_CFG |
641 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
642 CFG_FORCE_SAP_ACS_END_CH_DEFAULT,
643 CFG_FORCE_SAP_ACS_END_CH_MIN,
644 CFG_FORCE_SAP_ACS_END_CH_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800645
646 REG_VARIABLE(CFG_AP_KEEP_ALIVE_PERIOD_NAME, WLAN_PARAM_Integer,
647 struct hdd_config, apKeepAlivePeriod,
648 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
649 CFG_AP_KEEP_ALIVE_PERIOD_DEFAULT,
650 CFG_AP_KEEP_ALIVE_PERIOD_MIN,
651 CFG_AP_KEEP_ALIVE_PERIOD_MAX),
652
653 REG_VARIABLE(CFG_GO_KEEP_ALIVE_PERIOD_NAME, WLAN_PARAM_Integer,
654 struct hdd_config, goKeepAlivePeriod,
655 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
656 CFG_GO_KEEP_ALIVE_PERIOD_DEFAULT,
657 CFG_GO_KEEP_ALIVE_PERIOD_MIN,
658 CFG_GO_KEEP_ALIVE_PERIOD_MAX),
659
660 REG_VARIABLE(CFG_AP_LINK_MONITOR_PERIOD_NAME, WLAN_PARAM_Integer,
661 struct hdd_config, apLinkMonitorPeriod,
662 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
663 CFG_AP_LINK_MONITOR_PERIOD_DEFAULT,
664 CFG_AP_LINK_MONITOR_PERIOD_MIN,
665 CFG_AP_LINK_MONITOR_PERIOD_MAX),
666
667 REG_VARIABLE(CFG_GO_LINK_MONITOR_PERIOD_NAME, WLAN_PARAM_Integer,
668 struct hdd_config, goLinkMonitorPeriod,
669 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
670 CFG_GO_LINK_MONITOR_PERIOD_DEFAULT,
671 CFG_GO_LINK_MONITOR_PERIOD_MIN,
672 CFG_GO_LINK_MONITOR_PERIOD_MAX),
673
674 REG_VARIABLE(CFG_DISABLE_PACKET_FILTER, WLAN_PARAM_Integer,
675 struct hdd_config, disablePacketFilter,
676 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
677 CFG_DISABLE_PACKET_FILTER_DEFAULT,
678 CFG_DISABLE_PACKET_FILTER_MIN,
679 CFG_DISABLE_PACKET_FILTER_MAX),
680
681 REG_VARIABLE(CFG_BEACON_INTERVAL_NAME, WLAN_PARAM_Integer,
682 struct hdd_config, nBeaconInterval,
683 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
684 CFG_BEACON_INTERVAL_DEFAULT,
685 CFG_BEACON_INTERVAL_MIN,
686 CFG_BEACON_INTERVAL_MAX),
687
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800688 REG_VARIABLE(CFG_VCC_RSSI_TRIGGER_NAME, WLAN_PARAM_Integer,
689 struct hdd_config, nVccRssiTrigger,
690 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
691 CFG_VCC_RSSI_TRIGGER_DEFAULT,
692 CFG_VCC_RSSI_TRIGGER_MIN,
693 CFG_VCC_RSSI_TRIGGER_MAX),
694
695 REG_VARIABLE(CFG_VCC_UL_MAC_LOSS_THRESH_NAME, WLAN_PARAM_Integer,
696 struct hdd_config, nVccUlMacLossThreshold,
697 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
698 CFG_VCC_UL_MAC_LOSS_THRESH_DEFAULT,
699 CFG_VCC_UL_MAC_LOSS_THRESH_MIN,
700 CFG_VCC_UL_MAC_LOSS_THRESH_MAX),
701
702 REG_VARIABLE(CFG_PASSIVE_MAX_CHANNEL_TIME_NAME, WLAN_PARAM_Integer,
703 struct hdd_config, nPassiveMaxChnTime,
704 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
705 CFG_PASSIVE_MAX_CHANNEL_TIME_DEFAULT,
706 CFG_PASSIVE_MAX_CHANNEL_TIME_MIN,
707 CFG_PASSIVE_MAX_CHANNEL_TIME_MAX),
708
709 REG_VARIABLE(CFG_PASSIVE_MIN_CHANNEL_TIME_NAME, WLAN_PARAM_Integer,
710 struct hdd_config, nPassiveMinChnTime,
711 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
712 CFG_PASSIVE_MIN_CHANNEL_TIME_DEFAULT,
713 CFG_PASSIVE_MIN_CHANNEL_TIME_MIN,
714 CFG_PASSIVE_MIN_CHANNEL_TIME_MAX),
715
716 REG_VARIABLE(CFG_ACTIVE_MAX_CHANNEL_TIME_NAME, WLAN_PARAM_Integer,
717 struct hdd_config, nActiveMaxChnTime,
718 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
719 CFG_ACTIVE_MAX_CHANNEL_TIME_DEFAULT,
720 CFG_ACTIVE_MAX_CHANNEL_TIME_MIN,
721 CFG_ACTIVE_MAX_CHANNEL_TIME_MAX),
722
723 REG_VARIABLE(CFG_ACTIVE_MIN_CHANNEL_TIME_NAME, WLAN_PARAM_Integer,
724 struct hdd_config, nActiveMinChnTime,
725 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
726 CFG_ACTIVE_MIN_CHANNEL_TIME_DEFAULT,
727 CFG_ACTIVE_MIN_CHANNEL_TIME_MIN,
728 CFG_ACTIVE_MIN_CHANNEL_TIME_MAX),
729
730 REG_VARIABLE(CFG_RETRY_LIMIT_ZERO_NAME, WLAN_PARAM_Integer,
731 struct hdd_config, retryLimitZero,
732 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
733 CFG_RETRY_LIMIT_ZERO_DEFAULT,
734 CFG_RETRY_LIMIT_ZERO_MIN,
735 CFG_RETRY_LIMIT_ZERO_MAX),
736
737 REG_VARIABLE(CFG_RETRY_LIMIT_ONE_NAME, WLAN_PARAM_Integer,
738 struct hdd_config, retryLimitOne,
739 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
740 CFG_RETRY_LIMIT_ONE_DEFAULT,
741 CFG_RETRY_LIMIT_ONE_MIN,
742 CFG_RETRY_LIMIT_ONE_MAX),
743
744 REG_VARIABLE(CFG_RETRY_LIMIT_TWO_NAME, WLAN_PARAM_Integer,
745 struct hdd_config, retryLimitTwo,
746 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
747 CFG_RETRY_LIMIT_TWO_DEFAULT,
748 CFG_RETRY_LIMIT_TWO_MIN,
749 CFG_RETRY_LIMIT_TWO_MAX),
750
751#ifdef WLAN_AP_STA_CONCURRENCY
752 REG_VARIABLE(CFG_PASSIVE_MAX_CHANNEL_TIME_CONC_NAME, WLAN_PARAM_Integer,
753 struct hdd_config, nPassiveMaxChnTimeConc,
754 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
755 CFG_PASSIVE_MAX_CHANNEL_TIME_CONC_DEFAULT,
756 CFG_PASSIVE_MAX_CHANNEL_TIME_CONC_MIN,
757 CFG_PASSIVE_MAX_CHANNEL_TIME_CONC_MAX),
758
759 REG_VARIABLE(CFG_PASSIVE_MIN_CHANNEL_TIME_CONC_NAME, WLAN_PARAM_Integer,
760 struct hdd_config, nPassiveMinChnTimeConc,
761 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
762 CFG_PASSIVE_MIN_CHANNEL_TIME_CONC_DEFAULT,
763 CFG_PASSIVE_MIN_CHANNEL_TIME_CONC_MIN,
764 CFG_PASSIVE_MIN_CHANNEL_TIME_CONC_MAX),
765
766 REG_VARIABLE(CFG_ACTIVE_MAX_CHANNEL_TIME_CONC_NAME, WLAN_PARAM_Integer,
767 struct hdd_config, nActiveMaxChnTimeConc,
768 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
769 CFG_ACTIVE_MAX_CHANNEL_TIME_CONC_DEFAULT,
770 CFG_ACTIVE_MAX_CHANNEL_TIME_CONC_MIN,
771 CFG_ACTIVE_MAX_CHANNEL_TIME_CONC_MAX),
772
773 REG_VARIABLE(CFG_ACTIVE_MIN_CHANNEL_TIME_CONC_NAME, WLAN_PARAM_Integer,
774 struct hdd_config, nActiveMinChnTimeConc,
775 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
776 CFG_ACTIVE_MIN_CHANNEL_TIME_CONC_DEFAULT,
777 CFG_ACTIVE_MIN_CHANNEL_TIME_CONC_MIN,
778 CFG_ACTIVE_MIN_CHANNEL_TIME_CONC_MAX),
779
780 REG_VARIABLE(CFG_REST_TIME_CONC_NAME, WLAN_PARAM_Integer,
781 struct hdd_config, nRestTimeConc,
782 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
783 CFG_REST_TIME_CONC_DEFAULT,
784 CFG_REST_TIME_CONC_MIN,
785 CFG_REST_TIME_CONC_MAX),
786
Agrawal Ashish17bb3902016-05-05 13:29:40 +0530787 REG_VARIABLE(CFG_MIN_REST_TIME_NAME, WLAN_PARAM_Integer,
788 struct hdd_config, min_rest_time_conc,
789 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
790 CFG_MIN_REST_TIME_DEFAULT,
791 CFG_MIN_REST_TIME_MIN,
792 CFG_MIN_REST_TIME_MAX),
793
Jeff Johnson03294f12016-12-09 17:10:24 -0800794 REG_VARIABLE(CFG_IDLE_TIME_NAME, WLAN_PARAM_Integer,
Agrawal Ashish17bb3902016-05-05 13:29:40 +0530795 struct hdd_config, idle_time_conc,
796 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
797 CFG_IDLE_TIME_DEFAULT,
798 CFG_IDLE_TIME_MIN,
Jeff Johnson03294f12016-12-09 17:10:24 -0800799 CFG_IDLE_TIME_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800800#endif
801
802 REG_VARIABLE(CFG_MAX_PS_POLL_NAME, WLAN_PARAM_Integer,
803 struct hdd_config, nMaxPsPoll,
804 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
805 CFG_MAX_PS_POLL_DEFAULT,
806 CFG_MAX_PS_POLL_MIN,
807 CFG_MAX_PS_POLL_MAX),
808
809 REG_VARIABLE(CFG_MAX_TX_POWER_NAME, WLAN_PARAM_Integer,
810 struct hdd_config, nTxPowerCap,
811 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
812 CFG_MAX_TX_POWER_DEFAULT,
813 CFG_MAX_TX_POWER_MIN,
814 CFG_MAX_TX_POWER_MAX),
815
Padma, Santhosh Kumar29df3622016-08-16 19:15:16 +0530816 REG_VARIABLE(CFG_TX_POWER_CTRL_NAME, WLAN_PARAM_Integer,
817 struct hdd_config, allow_tpc_from_ap,
818 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
819 CFG_TX_POWER_CTRL_DEFAULT,
820 CFG_TX_POWER_CTRL_MIN,
821 CFG_TX_POWER_CTRL_MAX),
822
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800823 REG_VARIABLE(CFG_LOW_GAIN_OVERRIDE_NAME, WLAN_PARAM_Integer,
824 struct hdd_config, fIsLowGainOverride,
825 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
826 CFG_LOW_GAIN_OVERRIDE_DEFAULT,
827 CFG_LOW_GAIN_OVERRIDE_MIN,
828 CFG_LOW_GAIN_OVERRIDE_MAX),
829
830 REG_VARIABLE(CFG_RSSI_FILTER_PERIOD_NAME, WLAN_PARAM_Integer,
831 struct hdd_config, nRssiFilterPeriod,
832 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
833 CFG_RSSI_FILTER_PERIOD_DEFAULT,
834 CFG_RSSI_FILTER_PERIOD_MIN,
835 CFG_RSSI_FILTER_PERIOD_MAX),
836
837 REG_VARIABLE(CFG_IGNORE_DTIM_NAME, WLAN_PARAM_Integer,
838 struct hdd_config, fIgnoreDtim,
839 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
840 CFG_IGNORE_DTIM_DEFAULT,
841 CFG_IGNORE_DTIM_MIN,
842 CFG_IGNORE_DTIM_MAX),
843
844 REG_VARIABLE(CFG_MAX_LI_MODULATED_DTIM_NAME, WLAN_PARAM_Integer,
845 struct hdd_config, fMaxLIModulatedDTIM,
846 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
847 CFG_MAX_LI_MODULATED_DTIM_DEFAULT,
848 CFG_MAX_LI_MODULATED_DTIM_MIN,
849 CFG_MAX_LI_MODULATED_DTIM_MAX),
850
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800851 REG_VARIABLE(CFG_FW_HEART_BEAT_MONITORING_NAME, WLAN_PARAM_Integer,
852 struct hdd_config, fEnableFwHeartBeatMonitoring,
853 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
854 CFG_FW_HEART_BEAT_MONITORING_DEFAULT,
855 CFG_FW_HEART_BEAT_MONITORING_MIN,
856 CFG_FW_HEART_BEAT_MONITORING_MAX),
857
858 REG_VARIABLE(CFG_FW_BEACON_FILTERING_NAME, WLAN_PARAM_Integer,
859 struct hdd_config, fEnableFwBeaconFiltering,
860 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
861 CFG_FW_BEACON_FILTERING_DEFAULT,
862 CFG_FW_BEACON_FILTERING_MIN,
863 CFG_FW_BEACON_FILTERING_MAX),
864
865 REG_DYNAMIC_VARIABLE(CFG_FW_RSSI_MONITORING_NAME, WLAN_PARAM_Integer,
866 struct hdd_config, fEnableFwRssiMonitoring,
867 VAR_FLAGS_OPTIONAL |
868 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
869 CFG_FW_RSSI_MONITORING_DEFAULT,
870 CFG_FW_RSSI_MONITORING_MIN,
871 CFG_FW_RSSI_MONITORING_MAX,
872 cb_notify_set_fw_rssi_monitoring, 0),
873
874 REG_VARIABLE(CFG_FW_MCC_RTS_CTS_PROT_NAME, WLAN_PARAM_Integer,
875 struct hdd_config, mcc_rts_cts_prot_enable,
876 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
877 CFG_FW_MCC_RTS_CTS_PROT_DEFAULT,
878 CFG_FW_MCC_RTS_CTS_PROT_MIN,
879 CFG_FW_MCC_RTS_CTS_PROT_MAX),
880
881 REG_VARIABLE(CFG_FW_MCC_BCAST_PROB_RESP_NAME, WLAN_PARAM_Integer,
882 struct hdd_config, mcc_bcast_prob_resp_enable,
883 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
884 CFG_FW_MCC_BCAST_PROB_RESP_DEFAULT,
885 CFG_FW_MCC_BCAST_PROB_RESP_MIN,
886 CFG_FW_MCC_BCAST_PROB_RESP_MAX),
887
888 REG_VARIABLE(CFG_DATA_INACTIVITY_TIMEOUT_NAME, WLAN_PARAM_Integer,
889 struct hdd_config, nDataInactivityTimeout,
890 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
891 CFG_DATA_INACTIVITY_TIMEOUT_DEFAULT,
892 CFG_DATA_INACTIVITY_TIMEOUT_MIN,
893 CFG_DATA_INACTIVITY_TIMEOUT_MAX),
894
Mukul Sharmaed92f2f2017-04-20 00:06:28 +0530895 REG_VARIABLE(CFG_WOW_DATA_INACTIVITY_TIMEOUT_NAME, WLAN_PARAM_Integer,
896 struct hdd_config, wow_data_inactivity_timeout,
897 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
898 CFG_WOW_DATA_INACTIVITY_TIMEOUT_DEFAULT,
899 CFG_WOW_DATA_INACTIVITY_TIMEOUT_MIN,
900 CFG_WOW_DATA_INACTIVITY_TIMEOUT_MAX),
901
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800902 REG_VARIABLE(CFG_QOS_WMM_MODE_NAME, WLAN_PARAM_Integer,
903 struct hdd_config, WmmMode,
904 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
905 CFG_QOS_WMM_MODE_DEFAULT,
906 CFG_QOS_WMM_MODE_MIN,
907 CFG_QOS_WMM_MODE_MAX),
908
909 REG_VARIABLE(CFG_QOS_WMM_80211E_ENABLED_NAME, WLAN_PARAM_Integer,
910 struct hdd_config, b80211eIsEnabled,
911 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
912 CFG_QOS_WMM_80211E_ENABLED_DEFAULT,
913 CFG_QOS_WMM_80211E_ENABLED_MIN,
914 CFG_QOS_WMM_80211E_ENABLED_MAX),
915
916 REG_VARIABLE(CFG_QOS_WMM_UAPSD_MASK_NAME, WLAN_PARAM_HexInteger,
917 struct hdd_config, UapsdMask,
918 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
919 CFG_QOS_WMM_UAPSD_MASK_DEFAULT,
920 CFG_QOS_WMM_UAPSD_MASK_MIN,
921 CFG_QOS_WMM_UAPSD_MASK_MAX),
922
923 REG_VARIABLE(CFG_QOS_WMM_INFRA_UAPSD_VO_SRV_INTV_NAME,
924 WLAN_PARAM_Integer,
925 struct hdd_config, InfraUapsdVoSrvIntv,
926 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
927 CFG_QOS_WMM_INFRA_UAPSD_VO_SRV_INTV_DEFAULT,
928 CFG_QOS_WMM_INFRA_UAPSD_VO_SRV_INTV_MIN,
929 CFG_QOS_WMM_INFRA_UAPSD_VO_SRV_INTV_MAX),
930
931 REG_VARIABLE(CFG_QOS_WMM_INFRA_UAPSD_VO_SUS_INTV_NAME,
932 WLAN_PARAM_Integer,
933 struct hdd_config, InfraUapsdVoSuspIntv,
934 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
935 CFG_QOS_WMM_INFRA_UAPSD_VO_SUS_INTV_DEFAULT,
936 CFG_QOS_WMM_INFRA_UAPSD_VO_SUS_INTV_MIN,
937 CFG_QOS_WMM_INFRA_UAPSD_VO_SUS_INTV_MAX),
938
939 REG_VARIABLE(CFG_QOS_WMM_INFRA_UAPSD_VI_SRV_INTV_NAME,
940 WLAN_PARAM_Integer,
941 struct hdd_config, InfraUapsdViSrvIntv,
942 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
943 CFG_QOS_WMM_INFRA_UAPSD_VI_SRV_INTV_DEFAULT,
944 CFG_QOS_WMM_INFRA_UAPSD_VI_SRV_INTV_MIN,
945 CFG_QOS_WMM_INFRA_UAPSD_VI_SRV_INTV_MAX),
946
947 REG_VARIABLE(CFG_QOS_WMM_INFRA_UAPSD_VI_SUS_INTV_NAME,
948 WLAN_PARAM_Integer,
949 struct hdd_config, InfraUapsdViSuspIntv,
950 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
951 CFG_QOS_WMM_INFRA_UAPSD_VI_SUS_INTV_DEFAULT,
952 CFG_QOS_WMM_INFRA_UAPSD_VI_SUS_INTV_MIN,
953 CFG_QOS_WMM_INFRA_UAPSD_VI_SUS_INTV_MAX),
954
955 REG_VARIABLE(CFG_QOS_WMM_INFRA_UAPSD_BE_SRV_INTV_NAME,
956 WLAN_PARAM_Integer,
957 struct hdd_config, InfraUapsdBeSrvIntv,
958 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
959 CFG_QOS_WMM_INFRA_UAPSD_BE_SRV_INTV_DEFAULT,
960 CFG_QOS_WMM_INFRA_UAPSD_BE_SRV_INTV_MIN,
961 CFG_QOS_WMM_INFRA_UAPSD_BE_SRV_INTV_MAX),
962
963 REG_VARIABLE(CFG_QOS_WMM_INFRA_UAPSD_BE_SUS_INTV_NAME,
964 WLAN_PARAM_Integer,
965 struct hdd_config, InfraUapsdBeSuspIntv,
966 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
967 CFG_QOS_WMM_INFRA_UAPSD_BE_SUS_INTV_DEFAULT,
968 CFG_QOS_WMM_INFRA_UAPSD_BE_SUS_INTV_MIN,
969 CFG_QOS_WMM_INFRA_UAPSD_BE_SUS_INTV_MAX),
970
971 REG_VARIABLE(CFG_QOS_WMM_INFRA_UAPSD_BK_SRV_INTV_NAME,
972 WLAN_PARAM_Integer,
973 struct hdd_config, InfraUapsdBkSrvIntv,
974 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
975 CFG_QOS_WMM_INFRA_UAPSD_BK_SRV_INTV_DEFAULT,
976 CFG_QOS_WMM_INFRA_UAPSD_BK_SRV_INTV_MIN,
977 CFG_QOS_WMM_INFRA_UAPSD_BK_SRV_INTV_MAX),
978
979 REG_VARIABLE(CFG_QOS_WMM_INFRA_UAPSD_BK_SUS_INTV_NAME,
980 WLAN_PARAM_Integer,
981 struct hdd_config, InfraUapsdBkSuspIntv,
982 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
983 CFG_QOS_WMM_INFRA_UAPSD_BK_SUS_INTV_DEFAULT,
984 CFG_QOS_WMM_INFRA_UAPSD_BK_SUS_INTV_MIN,
985 CFG_QOS_WMM_INFRA_UAPSD_BK_SUS_INTV_MAX),
986
987#ifdef FEATURE_WLAN_ESE
988 REG_VARIABLE(CFG_QOS_WMM_INFRA_INACTIVITY_INTERVAL_NAME,
989 WLAN_PARAM_Integer,
990 struct hdd_config, InfraInactivityInterval,
991 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
992 CFG_QOS_WMM_INFRA_INACTIVITY_INTERVAL_DEFAULT,
993 CFG_QOS_WMM_INFRA_INACTIVITY_INTERVAL_MIN,
994 CFG_QOS_WMM_INFRA_INACTIVITY_INTERVAL_MAX),
995
996 REG_DYNAMIC_VARIABLE(CFG_ESE_FEATURE_ENABLED_NAME, WLAN_PARAM_Integer,
997 struct hdd_config, isEseIniFeatureEnabled,
998 VAR_FLAGS_OPTIONAL |
999 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1000 CFG_ESE_FEATURE_ENABLED_DEFAULT,
1001 CFG_ESE_FEATURE_ENABLED_MIN,
1002 CFG_ESE_FEATURE_ENABLED_MAX,
1003 cb_notify_set_ese_feature_enabled, 0),
1004#endif /* FEATURE_WLAN_ESE */
1005
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001006 /* flag to turn ON/OFF Legacy Fast Roaming */
1007 REG_DYNAMIC_VARIABLE(CFG_LFR_FEATURE_ENABLED_NAME, WLAN_PARAM_Integer,
1008 struct hdd_config, isFastRoamIniFeatureEnabled,
1009 VAR_FLAGS_OPTIONAL |
1010 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1011 CFG_LFR_FEATURE_ENABLED_DEFAULT,
1012 CFG_LFR_FEATURE_ENABLED_MIN,
1013 CFG_LFR_FEATURE_ENABLED_MAX,
1014 notify_is_fast_roam_ini_feature_enabled, 0),
1015
1016 /* flag to turn ON/OFF Motion assistance for Legacy Fast Roaming */
1017 REG_DYNAMIC_VARIABLE(CFG_LFR_MAWC_FEATURE_ENABLED_NAME,
1018 WLAN_PARAM_Integer,
1019 struct hdd_config, MAWCEnabled,
1020 VAR_FLAGS_OPTIONAL |
1021 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1022 CFG_LFR_MAWC_FEATURE_ENABLED_DEFAULT,
1023 CFG_LFR_MAWC_FEATURE_ENABLED_MIN,
1024 CFG_LFR_MAWC_FEATURE_ENABLED_MAX,
1025 notify_is_mawc_ini_feature_enabled, 0),
1026
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001027 /* flag to turn ON/OFF 11r and ESE FastTransition */
1028 REG_DYNAMIC_VARIABLE(CFG_FAST_TRANSITION_ENABLED_NAME,
1029 WLAN_PARAM_Integer,
1030 struct hdd_config, isFastTransitionEnabled,
1031 VAR_FLAGS_OPTIONAL |
1032 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1033 CFG_FAST_TRANSITION_ENABLED_NAME_DEFAULT,
1034 CFG_FAST_TRANSITION_ENABLED_NAME_MIN,
1035 CFG_FAST_TRANSITION_ENABLED_NAME_MAX,
1036 cb_notify_set_fast_transition_enabled, 0),
1037
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07001038 /* Variable to specify the delta/difference between the
1039 * RSSI of current AP and roamable AP while roaming
Jeff Johnson78d88a82017-01-12 09:50:54 -08001040 */
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001041 REG_DYNAMIC_VARIABLE(CFG_ROAM_RSSI_DIFF_NAME, WLAN_PARAM_Integer,
1042 struct hdd_config, RoamRssiDiff,
1043 VAR_FLAGS_OPTIONAL |
1044 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1045 CFG_ROAM_RSSI_DIFF_DEFAULT,
1046 CFG_ROAM_RSSI_DIFF_MIN,
1047 CFG_ROAM_RSSI_DIFF_MAX,
1048 cb_notify_set_roam_rssi_diff, 0),
1049
1050 REG_DYNAMIC_VARIABLE(CFG_ENABLE_WES_MODE_NAME, WLAN_PARAM_Integer,
1051 struct hdd_config, isWESModeEnabled,
1052 VAR_FLAGS_OPTIONAL |
1053 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1054 CFG_ENABLE_WES_MODE_NAME_DEFAULT,
1055 CFG_ENABLE_WES_MODE_NAME_MIN,
1056 CFG_ENABLE_WES_MODE_NAME_MAX,
1057 cb_notify_set_wes_mode, 0),
Deepak Dhamdhere828f1892017-02-09 11:51:19 -08001058 REG_VARIABLE(CFG_PMKID_MODES_NAME, WLAN_PARAM_Integer,
1059 struct hdd_config, pmkid_modes,
Deepak Dhamdheref2a7d8b2016-08-19 16:17:38 -07001060 VAR_FLAGS_OPTIONAL |
1061 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
Deepak Dhamdhere828f1892017-02-09 11:51:19 -08001062 CFG_PMKID_MODES_DEFAULT,
1063 CFG_PMKID_MODES_MIN,
1064 CFG_PMKID_MODES_MAX),
1065
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001066 REG_DYNAMIC_VARIABLE(CFG_ROAM_SCAN_OFFLOAD_ENABLED, WLAN_PARAM_Integer,
1067 struct hdd_config, isRoamOffloadScanEnabled,
1068 VAR_FLAGS_OPTIONAL |
1069 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1070 CFG_ROAM_SCAN_OFFLOAD_ENABLED_DEFAULT,
1071 CFG_ROAM_SCAN_OFFLOAD_ENABLED_MIN,
1072 CFG_ROAM_SCAN_OFFLOAD_ENABLED_MAX,
1073 cb_notify_update_roam_scan_offload_enabled, 0),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001074
1075 REG_VARIABLE(CFG_QOS_WMM_INFRA_DIR_AC_VO_NAME, WLAN_PARAM_Integer,
1076 struct hdd_config, InfraDirAcVo,
1077 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1078 CFG_QOS_WMM_INFRA_DIR_AC_VO_DEFAULT,
1079 CFG_QOS_WMM_INFRA_DIR_AC_VO_MIN,
1080 CFG_QOS_WMM_INFRA_DIR_AC_VO_MAX),
1081
1082 REG_VARIABLE(CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VO_NAME,
1083 WLAN_PARAM_HexInteger,
1084 struct hdd_config, InfraNomMsduSizeAcVo,
1085 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1086 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VO_DEFAULT,
1087 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VO_MIN,
1088 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VO_MAX),
1089
1090 REG_VARIABLE(CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VO_NAME,
1091 WLAN_PARAM_HexInteger,
1092 struct hdd_config, InfraMeanDataRateAcVo,
1093 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1094 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VO_DEFAULT,
1095 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VO_MIN,
1096 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VO_MAX),
1097
1098 REG_VARIABLE(CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VO_NAME,
1099 WLAN_PARAM_HexInteger,
1100 struct hdd_config, InfraMinPhyRateAcVo,
1101 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1102 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VO_DEFAULT,
1103 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VO_MIN,
1104 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VO_MAX),
1105
1106 REG_VARIABLE(CFG_QOS_WMM_INFRA_SBA_AC_VO_NAME, WLAN_PARAM_HexInteger,
1107 struct hdd_config, InfraSbaAcVo,
1108 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1109 CFG_QOS_WMM_INFRA_SBA_AC_VO_DEFAULT,
1110 CFG_QOS_WMM_INFRA_SBA_AC_VO_MIN,
1111 CFG_QOS_WMM_INFRA_SBA_AC_VO_MAX),
1112
1113 REG_VARIABLE(CFG_QOS_WMM_INFRA_DIR_AC_VI_NAME, WLAN_PARAM_Integer,
1114 struct hdd_config, InfraDirAcVi,
1115 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1116 CFG_QOS_WMM_INFRA_DIR_AC_VI_DEFAULT,
1117 CFG_QOS_WMM_INFRA_DIR_AC_VI_MIN,
1118 CFG_QOS_WMM_INFRA_DIR_AC_VI_MAX),
1119
1120 REG_VARIABLE(CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VI_NAME,
1121 WLAN_PARAM_HexInteger,
1122 struct hdd_config, InfraNomMsduSizeAcVi,
1123 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1124 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VI_DEFAULT,
1125 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VI_MIN,
1126 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VI_MAX),
1127
1128 REG_VARIABLE(CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VI_NAME,
1129 WLAN_PARAM_HexInteger,
1130 struct hdd_config, InfraMeanDataRateAcVi,
1131 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1132 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VI_DEFAULT,
1133 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VI_MIN,
1134 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VI_MAX),
1135
1136 REG_VARIABLE(CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VI_NAME,
1137 WLAN_PARAM_HexInteger,
1138 struct hdd_config, InfraMinPhyRateAcVi,
1139 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1140 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VI_DEFAULT,
1141 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VI_MIN,
1142 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VI_MAX),
1143
1144 REG_VARIABLE(CFG_QOS_WMM_INFRA_SBA_AC_VI_NAME, WLAN_PARAM_HexInteger,
1145 struct hdd_config, InfraSbaAcVi,
1146 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1147 CFG_QOS_WMM_INFRA_SBA_AC_VI_DEFAULT,
1148 CFG_QOS_WMM_INFRA_SBA_AC_VI_MIN,
1149 CFG_QOS_WMM_INFRA_SBA_AC_VI_MAX),
1150
1151 REG_VARIABLE(CFG_QOS_WMM_INFRA_DIR_AC_BE_NAME, WLAN_PARAM_Integer,
1152 struct hdd_config, InfraDirAcBe,
1153 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1154 CFG_QOS_WMM_INFRA_DIR_AC_BE_DEFAULT,
1155 CFG_QOS_WMM_INFRA_DIR_AC_BE_MIN,
1156 CFG_QOS_WMM_INFRA_DIR_AC_BE_MAX),
1157
1158 REG_VARIABLE(CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_BE_NAME,
1159 WLAN_PARAM_HexInteger,
1160 struct hdd_config, InfraNomMsduSizeAcBe,
1161 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1162 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_BE_DEFAULT,
1163 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_BE_MIN,
1164 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_BE_MAX),
1165
1166 REG_VARIABLE(CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_BE_NAME,
1167 WLAN_PARAM_HexInteger,
1168 struct hdd_config, InfraMeanDataRateAcBe,
1169 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1170 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_BE_DEFAULT,
1171 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_BE_MIN,
1172 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_BE_MAX),
1173
1174 REG_VARIABLE(CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_BE_NAME,
1175 WLAN_PARAM_HexInteger,
1176 struct hdd_config, InfraMinPhyRateAcBe,
1177 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1178 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_BE_DEFAULT,
1179 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_BE_MIN,
1180 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_BE_MAX),
1181
1182 REG_VARIABLE(CFG_QOS_WMM_INFRA_SBA_AC_BE_NAME, WLAN_PARAM_HexInteger,
1183 struct hdd_config, InfraSbaAcBe,
1184 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1185 CFG_QOS_WMM_INFRA_SBA_AC_BE_DEFAULT,
1186 CFG_QOS_WMM_INFRA_SBA_AC_BE_MIN,
1187 CFG_QOS_WMM_INFRA_SBA_AC_BE_MAX),
1188
1189 REG_VARIABLE(CFG_QOS_WMM_INFRA_DIR_AC_BK_NAME, WLAN_PARAM_Integer,
1190 struct hdd_config, InfraDirAcBk,
1191 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1192 CFG_QOS_WMM_INFRA_DIR_AC_BK_DEFAULT,
1193 CFG_QOS_WMM_INFRA_DIR_AC_BK_MIN,
1194 CFG_QOS_WMM_INFRA_DIR_AC_BK_MAX),
1195
1196 REG_VARIABLE(CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_BK_NAME,
1197 WLAN_PARAM_HexInteger,
1198 struct hdd_config, InfraNomMsduSizeAcBk,
1199 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1200 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_BK_DEFAULT,
1201 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_BK_MIN,
1202 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_BK_MAX),
1203
1204 REG_VARIABLE(CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_BK_NAME,
1205 WLAN_PARAM_HexInteger,
1206 struct hdd_config, InfraMeanDataRateAcBk,
1207 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1208 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_BK_DEFAULT,
1209 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_BK_MIN,
1210 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_BK_MAX),
1211
1212 REG_VARIABLE(CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_BK_NAME,
1213 WLAN_PARAM_HexInteger,
1214 struct hdd_config, InfraMinPhyRateAcBk,
1215 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1216 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_BK_DEFAULT,
1217 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_BK_MIN,
1218 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_BK_MAX),
1219
1220 REG_VARIABLE(CFG_QOS_WMM_INFRA_SBA_AC_BK_NAME, WLAN_PARAM_HexInteger,
1221 struct hdd_config, InfraSbaAcBk,
1222 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1223 CFG_QOS_WMM_INFRA_SBA_AC_BK_DEFAULT,
1224 CFG_QOS_WMM_INFRA_SBA_AC_BK_MIN,
1225 CFG_QOS_WMM_INFRA_SBA_AC_BK_MAX),
1226
1227 REG_VARIABLE(CFG_TL_DELAYED_TRGR_FRM_INT_NAME, WLAN_PARAM_Integer,
1228 struct hdd_config, DelayedTriggerFrmInt,
1229 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1230 CFG_TL_DELAYED_TRGR_FRM_INT_DEFAULT,
1231 CFG_TL_DELAYED_TRGR_FRM_INT_MIN,
1232 CFG_TL_DELAYED_TRGR_FRM_INT_MAX),
1233
1234 REG_VARIABLE_STRING(CFG_WOWL_PATTERN_NAME, WLAN_PARAM_String,
1235 struct hdd_config, wowlPattern,
1236 VAR_FLAGS_OPTIONAL,
1237 (void *)CFG_WOWL_PATTERN_DEFAULT),
1238
1239 REG_VARIABLE(CFG_QOS_IMPLICIT_SETUP_ENABLED_NAME, WLAN_PARAM_Integer,
1240 struct hdd_config, bImplicitQosEnabled,
1241 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1242 CFG_QOS_IMPLICIT_SETUP_ENABLED_DEFAULT,
1243 CFG_QOS_IMPLICIT_SETUP_ENABLED_MIN,
1244 CFG_QOS_IMPLICIT_SETUP_ENABLED_MAX),
1245
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001246 REG_VARIABLE(CFG_AP_AUTO_SHUT_OFF, WLAN_PARAM_Integer,
1247 struct hdd_config, nAPAutoShutOff,
1248 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1249 CFG_AP_AUTO_SHUT_OFF_DEFAULT,
1250 CFG_AP_AUTO_SHUT_OFF_MIN,
1251 CFG_AP_AUTO_SHUT_OFF_MAX),
1252
1253#ifdef FEATURE_WLAN_MCC_TO_SCC_SWITCH
1254 REG_VARIABLE(CFG_WLAN_MCC_TO_SCC_SWITCH_MODE, WLAN_PARAM_Integer,
1255 struct hdd_config, WlanMccToSccSwitchMode,
1256 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1257 CFG_WLAN_MCC_TO_SCC_SWITCH_MODE_DEFAULT,
1258 CFG_WLAN_MCC_TO_SCC_SWITCH_MODE_MIN,
1259 CFG_WLAN_MCC_TO_SCC_SWITCH_MODE_MAX),
1260#endif
1261#ifdef FEATURE_WLAN_AUTO_SHUTDOWN
1262 REG_VARIABLE(CFG_WLAN_AUTO_SHUTDOWN, WLAN_PARAM_Integer,
1263 struct hdd_config, WlanAutoShutdown,
1264 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1265 CFG_WLAN_AUTO_SHUTDOWN_DEFAULT,
1266 CFG_WLAN_AUTO_SHUTDOWN_MIN,
1267 CFG_WLAN_AUTO_SHUTDOWN_MAX),
1268#endif
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001269 REG_VARIABLE(CFG_RRM_ENABLE_NAME, WLAN_PARAM_Integer,
1270 struct hdd_config, fRrmEnable,
1271 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1272 CFG_RRM_ENABLE_DEFAULT,
1273 CFG_RRM_ENABLE_MIN,
1274 CFG_RRM_ENABLE_MAX),
1275
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001276 REG_VARIABLE(CFG_RRM_MEAS_RANDOMIZATION_INTVL_NAME, WLAN_PARAM_Integer,
1277 struct hdd_config, nRrmRandnIntvl,
1278 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1279 CFG_RRM_MEAS_RANDOMIZATION_INTVL_DEFAULT,
1280 CFG_RRM_MEAS_RANDOMIZATION_INTVL_MIN,
1281 CFG_RRM_MEAS_RANDOMIZATION_INTVL_MAX),
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08001282
1283 REG_VARIABLE_STRING(CFG_RM_CAPABILITY_NAME, WLAN_PARAM_String,
1284 struct hdd_config, rm_capability,
1285 VAR_FLAGS_OPTIONAL,
1286 (void *) CFG_RM_CAPABILITY_DEFAULT),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001287
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001288 REG_VARIABLE(CFG_FT_RESOURCE_REQ_NAME, WLAN_PARAM_Integer,
1289 struct hdd_config, fFTResourceReqSupported,
1290 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1291 CFG_FT_RESOURCE_REQ_DEFAULT,
1292 CFG_FT_RESOURCE_REQ_MIN,
1293 CFG_FT_RESOURCE_REQ_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001294
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001295 REG_DYNAMIC_VARIABLE(CFG_NEIGHBOR_SCAN_TIMER_PERIOD_NAME,
1296 WLAN_PARAM_Integer,
1297 struct hdd_config, nNeighborScanPeriod,
1298 VAR_FLAGS_OPTIONAL |
1299 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1300 CFG_NEIGHBOR_SCAN_TIMER_PERIOD_DEFAULT,
1301 CFG_NEIGHBOR_SCAN_TIMER_PERIOD_MIN,
1302 CFG_NEIGHBOR_SCAN_TIMER_PERIOD_MAX,
1303 cb_notify_set_neighbor_scan_period, 0),
1304
Sridhar Selvaraj1b2330c2017-07-21 15:16:42 +05301305 REG_DYNAMIC_VARIABLE(CFG_NEIGHBOR_SCAN_MIN_TIMER_PERIOD_NAME,
1306 WLAN_PARAM_Integer,
1307 struct hdd_config, neighbor_scan_min_period,
1308 VAR_FLAGS_OPTIONAL |
1309 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1310 CFG_NEIGHBOR_SCAN_MIN_TIMER_PERIOD_DEFAULT,
1311 CFG_NEIGHBOR_SCAN_MIN_TIMER_PERIOD_MIN,
1312 CFG_NEIGHBOR_SCAN_MIN_TIMER_PERIOD_MAX,
1313 cb_notify_set_neighbor_scan_min_period, 0),
1314
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001315 REG_DYNAMIC_VARIABLE(CFG_NEIGHBOR_LOOKUP_RSSI_THRESHOLD_NAME,
1316 WLAN_PARAM_Integer,
1317 struct hdd_config, nNeighborLookupRssiThreshold,
1318 VAR_FLAGS_OPTIONAL |
1319 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1320 CFG_NEIGHBOR_LOOKUP_RSSI_THRESHOLD_DEFAULT,
1321 CFG_NEIGHBOR_LOOKUP_RSSI_THRESHOLD_MIN,
1322 CFG_NEIGHBOR_LOOKUP_RSSI_THRESHOLD_MAX,
1323 cb_notify_set_neighbor_lookup_rssi_threshold, 0),
1324
Varun Reddy Yeturu168134f2017-06-26 13:46:05 -07001325 REG_VARIABLE(CFG_5G_RSSI_THRESHOLD_OFFSET_NAME,
1326 WLAN_PARAM_SignedInteger, struct hdd_config,
1327 rssi_thresh_offset_5g,
1328 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1329 CFG_5G_RSSI_THRESHOLD_OFFSET_DEFAULT,
1330 CFG_5G_RSSI_THRESHOLD_OFFSET_MIN,
1331 CFG_5G_RSSI_THRESHOLD_OFFSET_MAX),
1332
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001333 REG_DYNAMIC_VARIABLE(CFG_OPPORTUNISTIC_SCAN_THRESHOLD_DIFF_NAME,
1334 WLAN_PARAM_Integer,
1335 struct hdd_config, nOpportunisticThresholdDiff,
1336 VAR_FLAGS_OPTIONAL |
1337 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1338 CFG_OPPORTUNISTIC_SCAN_THRESHOLD_DIFF_DEFAULT,
1339 CFG_OPPORTUNISTIC_SCAN_THRESHOLD_DIFF_MIN,
1340 CFG_OPPORTUNISTIC_SCAN_THRESHOLD_DIFF_MAX,
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07001341 cb_notify_set_opportunistic_scan_threshold_diff,
1342 0),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001343
1344 REG_DYNAMIC_VARIABLE(CFG_ROAM_RESCAN_RSSI_DIFF_NAME, WLAN_PARAM_Integer,
1345 struct hdd_config, nRoamRescanRssiDiff,
1346 VAR_FLAGS_OPTIONAL |
1347 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1348 CFG_ROAM_RESCAN_RSSI_DIFF_DEFAULT,
1349 CFG_ROAM_RESCAN_RSSI_DIFF_MIN,
1350 CFG_ROAM_RESCAN_RSSI_DIFF_MAX,
1351 cb_notify_set_roam_rescan_rssi_diff, 0),
1352
1353 REG_VARIABLE_STRING(CFG_NEIGHBOR_SCAN_CHAN_LIST_NAME, WLAN_PARAM_String,
1354 struct hdd_config, neighborScanChanList,
1355 VAR_FLAGS_OPTIONAL,
1356 (void *)CFG_NEIGHBOR_SCAN_CHAN_LIST_DEFAULT),
1357
1358 REG_DYNAMIC_VARIABLE(CFG_NEIGHBOR_SCAN_MIN_CHAN_TIME_NAME,
1359 WLAN_PARAM_Integer,
1360 struct hdd_config, nNeighborScanMinChanTime,
1361 VAR_FLAGS_OPTIONAL |
1362 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1363 CFG_NEIGHBOR_SCAN_MIN_CHAN_TIME_DEFAULT,
1364 CFG_NEIGHBOR_SCAN_MIN_CHAN_TIME_MIN,
1365 CFG_NEIGHBOR_SCAN_MIN_CHAN_TIME_MAX,
1366 cb_notify_set_neighbor_scan_min_chan_time, 0),
1367
1368 REG_DYNAMIC_VARIABLE(CFG_NEIGHBOR_SCAN_MAX_CHAN_TIME_NAME,
1369 WLAN_PARAM_Integer,
1370 struct hdd_config, nNeighborScanMaxChanTime,
1371 VAR_FLAGS_OPTIONAL |
1372 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1373 CFG_NEIGHBOR_SCAN_MAX_CHAN_TIME_DEFAULT,
1374 CFG_NEIGHBOR_SCAN_MAX_CHAN_TIME_MIN,
1375 CFG_NEIGHBOR_SCAN_MAX_CHAN_TIME_MAX,
1376 cb_notify_set_neighbor_scan_max_chan_time, 0),
1377
1378 REG_VARIABLE(CFG_11R_NEIGHBOR_REQ_MAX_TRIES_NAME, WLAN_PARAM_Integer,
1379 struct hdd_config, nMaxNeighborReqTries,
1380 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1381 CFG_11R_NEIGHBOR_REQ_MAX_TRIES_DEFAULT,
1382 CFG_11R_NEIGHBOR_REQ_MAX_TRIES_MIN,
1383 CFG_11R_NEIGHBOR_REQ_MAX_TRIES_MAX),
1384
1385 REG_DYNAMIC_VARIABLE(CFG_NEIGHBOR_SCAN_RESULTS_REFRESH_PERIOD_NAME,
1386 WLAN_PARAM_Integer,
1387 struct hdd_config, nNeighborResultsRefreshPeriod,
1388 VAR_FLAGS_OPTIONAL |
1389 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1390 CFG_NEIGHBOR_SCAN_RESULTS_REFRESH_PERIOD_DEFAULT,
1391 CFG_NEIGHBOR_SCAN_RESULTS_REFRESH_PERIOD_MIN,
1392 CFG_NEIGHBOR_SCAN_RESULTS_REFRESH_PERIOD_MAX,
1393 cb_notify_set_neighbor_results_refresh_period, 0),
1394
1395 REG_DYNAMIC_VARIABLE(CFG_EMPTY_SCAN_REFRESH_PERIOD_NAME,
1396 WLAN_PARAM_Integer,
1397 struct hdd_config, nEmptyScanRefreshPeriod,
1398 VAR_FLAGS_OPTIONAL |
1399 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1400 CFG_EMPTY_SCAN_REFRESH_PERIOD_DEFAULT,
1401 CFG_EMPTY_SCAN_REFRESH_PERIOD_MIN,
1402 CFG_EMPTY_SCAN_REFRESH_PERIOD_MAX,
1403 cb_notify_set_empty_scan_refresh_period, 0),
1404
1405 REG_DYNAMIC_VARIABLE(CFG_ROAM_BMISS_FIRST_BCNT_NAME, WLAN_PARAM_Integer,
1406 struct hdd_config, nRoamBmissFirstBcnt,
1407 VAR_FLAGS_OPTIONAL |
1408 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1409 CFG_ROAM_BMISS_FIRST_BCNT_DEFAULT,
1410 CFG_ROAM_BMISS_FIRST_BCNT_MIN,
1411 CFG_ROAM_BMISS_FIRST_BCNT_MAX,
1412 cb_notify_set_roam_bmiss_first_bcnt, 0),
1413
1414 REG_DYNAMIC_VARIABLE(CFG_ROAM_BMISS_FINAL_BCNT_NAME, WLAN_PARAM_Integer,
1415 struct hdd_config, nRoamBmissFinalBcnt,
1416 VAR_FLAGS_OPTIONAL |
1417 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1418 CFG_ROAM_BMISS_FINAL_BCNT_DEFAULT,
1419 CFG_ROAM_BMISS_FINAL_BCNT_MIN,
1420 CFG_ROAM_BMISS_FINAL_BCNT_MAX,
1421 cb_notify_set_roam_bmiss_final_bcnt, 0),
1422
1423 REG_DYNAMIC_VARIABLE(CFG_ROAM_BEACON_RSSI_WEIGHT_NAME,
1424 WLAN_PARAM_Integer,
1425 struct hdd_config, nRoamBeaconRssiWeight,
1426 VAR_FLAGS_OPTIONAL |
1427 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1428 CFG_ROAM_BEACON_RSSI_WEIGHT_DEFAULT,
1429 CFG_ROAM_BEACON_RSSI_WEIGHT_MIN,
1430 CFG_ROAM_BEACON_RSSI_WEIGHT_MAX,
1431 cb_notify_set_roam_beacon_rssi_weight, 0),
1432
1433 REG_DYNAMIC_VARIABLE(CFG_ROAMING_DFS_CHANNEL_NAME, WLAN_PARAM_Integer,
1434 struct hdd_config, allowDFSChannelRoam,
1435 VAR_FLAGS_OPTIONAL |
1436 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1437 CFG_ROAMING_DFS_CHANNEL_DEFAULT,
1438 CFG_ROAMING_DFS_CHANNEL_MIN,
1439 CFG_ROAMING_DFS_CHANNEL_MAX,
1440 cb_notify_set_dfs_scan_mode, 0),
1441
1442 REG_DYNAMIC_VARIABLE(CFG_DELAY_BEFORE_VDEV_STOP_NAME,
1443 WLAN_PARAM_Integer,
1444 struct hdd_config,
1445 delay_before_vdev_stop,
1446 VAR_FLAGS_OPTIONAL |
1447 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1448 CFG_DELAY_BEFORE_VDEV_STOP_DEFAULT,
1449 CFG_DELAY_BEFORE_VDEV_STOP_MIN,
1450 CFG_DELAY_BEFORE_VDEV_STOP_MAX,
1451 cb_notify_set_delay_before_vdev_stop,
1452 0),
1453
1454 REG_DYNAMIC_VARIABLE(CFG_ROAM_SCAN_HI_RSSI_MAXCOUNT_NAME,
1455 WLAN_PARAM_Integer,
1456 struct hdd_config,
1457 nhi_rssi_scan_max_count,
1458 VAR_FLAGS_OPTIONAL |
1459 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1460 CFG_ROAM_SCAN_HI_RSSI_MAXCOUNT_DEFAULT,
1461 CFG_ROAM_SCAN_HI_RSSI_MAXCOUNT_MIN,
1462 CFG_ROAM_SCAN_HI_RSSI_MAXCOUNT_MAX,
1463 cb_notify_set_roam_scan_hi_rssi_scan_params,
1464 eCSR_HI_RSSI_SCAN_MAXCOUNT_ID),
1465
1466 REG_DYNAMIC_VARIABLE(CFG_ROAM_SCAN_HI_RSSI_DELTA_NAME,
1467 WLAN_PARAM_Integer,
1468 struct hdd_config,
1469 nhi_rssi_scan_rssi_delta,
1470 VAR_FLAGS_OPTIONAL |
1471 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1472 CFG_ROAM_SCAN_HI_RSSI_DELTA_DEFAULT,
1473 CFG_ROAM_SCAN_HI_RSSI_DELTA_MIN,
1474 CFG_ROAM_SCAN_HI_RSSI_DELTA_MAX,
1475 cb_notify_set_roam_scan_hi_rssi_scan_params,
1476 eCSR_HI_RSSI_SCAN_RSSI_DELTA_ID),
1477
1478 REG_DYNAMIC_VARIABLE(CFG_ROAM_SCAN_HI_RSSI_DELAY_NAME,
1479 WLAN_PARAM_Integer,
1480 struct hdd_config,
1481 nhi_rssi_scan_delay,
1482 VAR_FLAGS_OPTIONAL |
1483 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1484 CFG_ROAM_SCAN_HI_RSSI_DELAY_DEFAULT,
1485 CFG_ROAM_SCAN_HI_RSSI_DELAY_MIN,
1486 CFG_ROAM_SCAN_HI_RSSI_DELAY_MAX,
1487 cb_notify_set_roam_scan_hi_rssi_scan_params,
1488 eCSR_HI_RSSI_SCAN_DELAY_ID),
1489
1490 REG_DYNAMIC_VARIABLE(CFG_ROAM_SCAN_HI_RSSI_UB_NAME,
1491 WLAN_PARAM_SignedInteger,
1492 struct hdd_config,
1493 nhi_rssi_scan_rssi_ub,
1494 VAR_FLAGS_OPTIONAL |
1495 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1496 CFG_ROAM_SCAN_HI_RSSI_UB_DEFAULT,
1497 CFG_ROAM_SCAN_HI_RSSI_UB_MIN,
1498 CFG_ROAM_SCAN_HI_RSSI_UB_MAX,
1499 cb_notify_set_roam_scan_hi_rssi_scan_params,
1500 eCSR_HI_RSSI_SCAN_RSSI_UB_ID),
1501
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001502 REG_VARIABLE(CFG_QOS_WMM_BURST_SIZE_DEFN_NAME, WLAN_PARAM_Integer,
1503 struct hdd_config, burstSizeDefinition,
1504 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1505 CFG_QOS_WMM_BURST_SIZE_DEFN_DEFAULT,
1506 CFG_QOS_WMM_BURST_SIZE_DEFN_MIN,
1507 CFG_QOS_WMM_BURST_SIZE_DEFN_MAX),
1508
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001509 REG_VARIABLE(CFG_ENABLE_HOST_ARPOFFLOAD_NAME, WLAN_PARAM_Integer,
1510 struct hdd_config, fhostArpOffload,
1511 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1512 CFG_ENABLE_HOST_ARPOFFLOAD_DEFAULT,
1513 CFG_ENABLE_HOST_ARPOFFLOAD_MIN,
1514 CFG_ENABLE_HOST_ARPOFFLOAD_MAX),
1515
Dustin Brown1224e212017-05-12 14:02:12 -07001516 REG_VARIABLE(CFG_HW_FILTER_MODE_NAME, WLAN_PARAM_Integer,
1517 struct hdd_config, hw_filter_mode,
Ravi Kumar Bokka794fd712017-03-21 20:52:46 +05301518 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
Dustin Brown1224e212017-05-12 14:02:12 -07001519 CFG_HW_FILTER_MODE_DEFAULT,
1520 CFG_HW_FILTER_MODE_MIN,
1521 CFG_HW_FILTER_MODE_MAX),
Ravi Kumar Bokka794fd712017-03-21 20:52:46 +05301522
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001523#ifdef FEATURE_WLAN_RA_FILTERING
1524 REG_VARIABLE(CFG_RA_FILTER_ENABLE_NAME, WLAN_PARAM_Integer,
1525 struct hdd_config, IsRArateLimitEnabled,
1526 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1527 CFG_RA_FILTER_ENABLE_DEFAULT,
1528 CFG_RA_FILTER_ENABLE_MIN,
1529 CFG_RA_FILTER_ENABLE_MAX),
1530
1531 REG_VARIABLE(CFG_RA_RATE_LIMIT_INTERVAL_NAME, WLAN_PARAM_Integer,
1532 struct hdd_config, RArateLimitInterval,
1533 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1534 CFG_RA_RATE_LIMIT_INTERVAL_DEFAULT,
1535 CFG_RA_RATE_LIMIT_INTERVAL_MIN,
1536 CFG_RA_RATE_LIMIT_INTERVAL_MAX),
1537#endif
1538
1539 REG_VARIABLE(CFG_IGNORE_PEER_ERP_INFO_NAME, WLAN_PARAM_Integer,
1540 struct hdd_config, ignore_peer_erp_info,
1541 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1542 CFG_IGNORE_PEER_ERP_INFO_DEFAULT,
1543 CFG_IGNORE_PEER_ERP_INFO_MIN,
1544 CFG_IGNORE_PEER_ERP_INFO_MAX),
1545
1546 REG_VARIABLE(CFG_ENABLE_HOST_SSDP_NAME, WLAN_PARAM_Integer,
1547 struct hdd_config, ssdp,
1548 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1549 CFG_ENABLE_HOST_SSDP_DEFAULT,
1550 CFG_ENABLE_HOST_SSDP_MIN,
1551 CFG_ENABLE_HOST_SSDP_MAX),
1552
Houston Hoffmanc7c69f02016-03-24 22:45:52 -07001553#ifdef FEATURE_RUNTIME_PM
1554 REG_VARIABLE(CFG_ENABLE_RUNTIME_PM, WLAN_PARAM_Integer,
1555 struct hdd_config, runtime_pm,
1556 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1557 CFG_ENABLE_RUNTIME_PM_DEFAULT,
1558 CFG_ENABLE_RUNTIME_PM_MIN,
1559 CFG_ENABLE_RUNTIME_PM_MAX),
1560
1561 REG_VARIABLE(CFG_RUNTIME_PM_DELAY_NAME, WLAN_PARAM_Integer,
1562 struct hdd_config, runtime_pm_delay,
1563 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1564 CFG_RUNTIME_PM_DELAY_DEFAULT,
1565 CFG_RUNTIME_PM_DELAY_MIN,
1566 CFG_RUNTIME_PM_DELAY_MAX),
1567#endif
1568
1569
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001570 REG_VARIABLE(CFG_ENABLE_HOST_NSOFFLOAD_NAME, WLAN_PARAM_Integer,
1571 struct hdd_config, fhostNSOffload,
1572 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1573 CFG_ENABLE_HOST_NSOFFLOAD_DEFAULT,
1574 CFG_ENABLE_HOST_NSOFFLOAD_MIN,
1575 CFG_ENABLE_HOST_NSOFFLOAD_MAX),
1576
1577 REG_VARIABLE(CFG_QOS_WMM_TS_INFO_ACK_POLICY_NAME, WLAN_PARAM_HexInteger,
1578 struct hdd_config, tsInfoAckPolicy,
1579 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1580 CFG_QOS_WMM_TS_INFO_ACK_POLICY_DEFAULT,
1581 CFG_QOS_WMM_TS_INFO_ACK_POLICY_MIN,
1582 CFG_QOS_WMM_TS_INFO_ACK_POLICY_MAX),
1583
1584 REG_VARIABLE(CFG_SINGLE_TID_RC_NAME, WLAN_PARAM_Integer,
1585 struct hdd_config, bSingleTidRc,
1586 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1587 CFG_SINGLE_TID_RC_DEFAULT,
1588 CFG_SINGLE_TID_RC_MIN,
1589 CFG_SINGLE_TID_RC_MAX),
1590
1591 REG_VARIABLE(CFG_DYNAMIC_PSPOLL_VALUE_NAME, WLAN_PARAM_Integer,
1592 struct hdd_config, dynamicPsPollValue,
1593 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1594 CFG_DYNAMIC_PSPOLL_VALUE_DEFAULT,
1595 CFG_DYNAMIC_PSPOLL_VALUE_MIN,
1596 CFG_DYNAMIC_PSPOLL_VALUE_MAX),
1597
1598 REG_VARIABLE(CFG_TELE_BCN_WAKEUP_EN_NAME, WLAN_PARAM_Integer,
1599 struct hdd_config, teleBcnWakeupEn,
1600 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1601 CFG_TELE_BCN_WAKEUP_EN_DEFAULT,
1602 CFG_TELE_BCN_WAKEUP_EN_MIN,
1603 CFG_TELE_BCN_WAKEUP_EN_MAX),
1604
1605 REG_VARIABLE(CFG_INFRA_STA_KEEP_ALIVE_PERIOD_NAME, WLAN_PARAM_Integer,
1606 struct hdd_config, infraStaKeepAlivePeriod,
1607 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1608 CFG_INFRA_STA_KEEP_ALIVE_PERIOD_DEFAULT,
1609 CFG_INFRA_STA_KEEP_ALIVE_PERIOD_MIN,
1610 CFG_INFRA_STA_KEEP_ALIVE_PERIOD_MAX),
1611
Dustin Brownb6b0f182017-03-08 13:08:27 -08001612 REG_VARIABLE(CFG_STA_KEEPALIVE_METHOD_NAME, WLAN_PARAM_Integer,
1613 struct hdd_config, sta_keepalive_method,
1614 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1615 CFG_STA_KEEPALIVE_METHOD_DEFAULT,
1616 CFG_STA_KEEPALIVE_METHOD_MIN,
1617 CFG_STA_KEEPALIVE_METHOD_MAX),
1618
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001619 REG_VARIABLE(CFG_QOS_ADDTS_WHEN_ACM_IS_OFF_NAME, WLAN_PARAM_Integer,
1620 struct hdd_config, AddTSWhenACMIsOff,
1621 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1622 CFG_QOS_ADDTS_WHEN_ACM_IS_OFF_DEFAULT,
1623 CFG_QOS_ADDTS_WHEN_ACM_IS_OFF_MIN,
1624 CFG_QOS_ADDTS_WHEN_ACM_IS_OFF_MAX),
1625
1626 REG_VARIABLE(CFG_VALIDATE_SCAN_LIST_NAME, WLAN_PARAM_Integer,
1627 struct hdd_config, fValidateScanList,
1628 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1629 CFG_VALIDATE_SCAN_LIST_DEFAULT,
1630 CFG_VALIDATE_SCAN_LIST_MIN,
1631 CFG_VALIDATE_SCAN_LIST_MAX),
1632
1633 REG_VARIABLE(CFG_NULLDATA_AP_RESP_TIMEOUT_NAME, WLAN_PARAM_Integer,
1634 struct hdd_config, nNullDataApRespTimeout,
1635 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1636 CFG_NULLDATA_AP_RESP_TIMEOUT_DEFAULT,
1637 CFG_NULLDATA_AP_RESP_TIMEOUT_MIN,
1638 CFG_NULLDATA_AP_RESP_TIMEOUT_MAX),
1639
1640 REG_VARIABLE(CFG_AP_DATA_AVAIL_POLL_PERIOD_NAME, WLAN_PARAM_Integer,
1641 struct hdd_config, apDataAvailPollPeriodInMs,
1642 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1643 CFG_AP_DATA_AVAIL_POLL_PERIOD_DEFAULT,
1644 CFG_AP_DATA_AVAIL_POLL_PERIOD_MIN,
1645 CFG_AP_DATA_AVAIL_POLL_PERIOD_MAX),
1646
1647 REG_VARIABLE(CFG_BAND_CAPABILITY_NAME, WLAN_PARAM_Integer,
1648 struct hdd_config, nBandCapability,
1649 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1650 CFG_BAND_CAPABILITY_DEFAULT,
1651 CFG_BAND_CAPABILITY_MIN,
1652 CFG_BAND_CAPABILITY_MAX),
1653
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301654/* CFG_QDF_TRACE_ENABLE Parameters */
1655 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_WDI_NAME, WLAN_PARAM_Integer,
1656 struct hdd_config, qdf_trace_enable_wdi,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001657 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301658 CFG_QDF_TRACE_ENABLE_DEFAULT,
1659 CFG_QDF_TRACE_ENABLE_MIN,
1660 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001661
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301662 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_HDD_NAME, WLAN_PARAM_Integer,
1663 struct hdd_config, qdf_trace_enable_hdd,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001664 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301665 CFG_QDF_TRACE_ENABLE_DEFAULT,
1666 CFG_QDF_TRACE_ENABLE_MIN,
1667 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001668
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301669 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_BMI_NAME, WLAN_PARAM_Integer,
1670 struct hdd_config, qdf_trace_enable_bmi,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001671 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301672 CFG_QDF_TRACE_ENABLE_DEFAULT,
1673 CFG_QDF_TRACE_ENABLE_MIN,
1674 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001675
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301676 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_SME_NAME, WLAN_PARAM_Integer,
1677 struct hdd_config, qdf_trace_enable_sme,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001678 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301679 CFG_QDF_TRACE_ENABLE_DEFAULT,
1680 CFG_QDF_TRACE_ENABLE_MIN,
1681 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001682
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301683 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_PE_NAME, WLAN_PARAM_Integer,
1684 struct hdd_config, qdf_trace_enable_pe,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001685 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301686 CFG_QDF_TRACE_ENABLE_DEFAULT,
1687 CFG_QDF_TRACE_ENABLE_MIN,
1688 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001689
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301690 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_WMA_NAME, WLAN_PARAM_Integer,
1691 struct hdd_config, qdf_trace_enable_wma,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001692 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301693 CFG_QDF_TRACE_ENABLE_DEFAULT,
1694 CFG_QDF_TRACE_ENABLE_MIN,
1695 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001696
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301697 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_SYS_NAME, WLAN_PARAM_Integer,
1698 struct hdd_config, qdf_trace_enable_sys,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001699 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301700 CFG_QDF_TRACE_ENABLE_DEFAULT,
1701 CFG_QDF_TRACE_ENABLE_MIN,
1702 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001703
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301704 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_QDF_NAME, WLAN_PARAM_Integer,
1705 struct hdd_config, qdf_trace_enable_qdf,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001706 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301707 CFG_QDF_TRACE_ENABLE_DEFAULT,
1708 CFG_QDF_TRACE_ENABLE_MIN,
1709 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001710
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301711 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_SAP_NAME, WLAN_PARAM_Integer,
1712 struct hdd_config, qdf_trace_enable_sap,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001713 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301714 CFG_QDF_TRACE_ENABLE_DEFAULT,
1715 CFG_QDF_TRACE_ENABLE_MIN,
1716 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001717
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301718 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_HDD_SAP_NAME, WLAN_PARAM_Integer,
1719 struct hdd_config, qdf_trace_enable_hdd_sap,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001720 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301721 CFG_QDF_TRACE_ENABLE_DEFAULT,
1722 CFG_QDF_TRACE_ENABLE_MIN,
1723 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001724
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301725 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_CFG_NAME, WLAN_PARAM_Integer,
1726 struct hdd_config, qdf_trace_enable_cfg,
Bhargav Shah480a90f2015-06-24 15:10:14 +05301727 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301728 CFG_QDF_TRACE_ENABLE_DEFAULT,
1729 CFG_QDF_TRACE_ENABLE_MIN,
1730 CFG_QDF_TRACE_ENABLE_MAX),
Bhargav Shah480a90f2015-06-24 15:10:14 +05301731
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301732 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_TXRX_NAME, WLAN_PARAM_Integer,
Bhargav Shah480a90f2015-06-24 15:10:14 +05301733 struct hdd_config, cfd_trace_enable_txrx,
1734 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301735 CFG_QDF_TRACE_ENABLE_DEFAULT,
1736 CFG_QDF_TRACE_ENABLE_MIN,
1737 CFG_QDF_TRACE_ENABLE_MAX),
Bhargav Shah480a90f2015-06-24 15:10:14 +05301738
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301739 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_HTC_NAME, WLAN_PARAM_Integer,
1740 struct hdd_config, qdf_trace_enable_htc,
Bhargav Shah480a90f2015-06-24 15:10:14 +05301741 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301742 CFG_QDF_TRACE_ENABLE_DEFAULT,
1743 CFG_QDF_TRACE_ENABLE_MIN,
1744 CFG_QDF_TRACE_ENABLE_MAX),
Bhargav Shah480a90f2015-06-24 15:10:14 +05301745
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301746 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_HIF_NAME, WLAN_PARAM_Integer,
1747 struct hdd_config, qdf_trace_enable_hif,
Bhargav Shah480a90f2015-06-24 15:10:14 +05301748 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301749 CFG_QDF_TRACE_ENABLE_DEFAULT,
1750 CFG_QDF_TRACE_ENABLE_MIN,
1751 CFG_QDF_TRACE_ENABLE_MAX),
Bhargav Shah480a90f2015-06-24 15:10:14 +05301752
1753 REG_VARIABLE(CFG_CDR_TRACE_ENABLE_HDD_SAP_DATA_NAME, WLAN_PARAM_Integer,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301754 struct hdd_config, qdf_trace_enable_hdd_sap_data,
Bhargav Shah480a90f2015-06-24 15:10:14 +05301755 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301756 CFG_QDF_TRACE_ENABLE_DEFAULT,
1757 CFG_QDF_TRACE_ENABLE_MIN,
1758 CFG_QDF_TRACE_ENABLE_MAX),
Bhargav Shah480a90f2015-06-24 15:10:14 +05301759
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301760 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_HDD_DATA_NAME, WLAN_PARAM_Integer,
1761 struct hdd_config, qdf_trace_enable_hdd_data,
Bhargav Shah480a90f2015-06-24 15:10:14 +05301762 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301763 CFG_QDF_TRACE_ENABLE_DEFAULT,
1764 CFG_QDF_TRACE_ENABLE_MIN,
1765 CFG_QDF_TRACE_ENABLE_MAX),
Bhargav Shah480a90f2015-06-24 15:10:14 +05301766
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301767 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_EPPING, WLAN_PARAM_Integer,
1768 struct hdd_config, qdf_trace_enable_epping,
Bhargav Shah480a90f2015-06-24 15:10:14 +05301769 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301770 CFG_QDF_TRACE_ENABLE_DEFAULT,
1771 CFG_QDF_TRACE_ENABLE_MIN,
1772 CFG_QDF_TRACE_ENABLE_MAX),
Bhargav Shah480a90f2015-06-24 15:10:14 +05301773
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301774 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_QDF_DEVICES, WLAN_PARAM_Integer,
1775 struct hdd_config, qdf_trace_enable_qdf_devices,
Bhargav Shah480a90f2015-06-24 15:10:14 +05301776 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301777 CFG_QDF_TRACE_ENABLE_DEFAULT,
1778 CFG_QDF_TRACE_ENABLE_MIN,
1779 CFG_QDF_TRACE_ENABLE_MAX),
Bhargav Shah480a90f2015-06-24 15:10:14 +05301780
Naveen Rawat7df31862017-03-01 17:09:30 -08001781 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_WIFI_POS, WLAN_PARAM_Integer,
1782 struct hdd_config, qdf_trace_enable_wifi_pos,
1783 VAR_FLAGS_OPTIONAL,
1784 CFG_QDF_TRACE_ENABLE_DEFAULT,
1785 CFG_QDF_TRACE_ENABLE_MIN,
1786 CFG_QDF_TRACE_ENABLE_MAX),
1787
Naveen Rawatf2b0dbd2017-03-27 10:00:15 -07001788 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_NAN, WLAN_PARAM_Integer,
1789 struct hdd_config, qdf_trace_enable_nan,
1790 VAR_FLAGS_OPTIONAL,
1791 CFG_QDF_TRACE_ENABLE_DEFAULT,
1792 CFG_QDF_TRACE_ENABLE_MIN,
1793 CFG_QDF_TRACE_ENABLE_MAX),
1794
Kiran Kumar Lokere798de7e2017-03-30 14:01:12 -07001795 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_REGULATORY, WLAN_PARAM_Integer,
1796 struct hdd_config, qdf_trace_enable_regulatory,
1797 VAR_FLAGS_OPTIONAL,
1798 CFG_QDF_TRACE_ENABLE_DEFAULT,
1799 CFG_QDF_TRACE_ENABLE_MIN,
1800 CFG_QDF_TRACE_ENABLE_MAX),
1801
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001802 REG_VARIABLE(CFG_TELE_BCN_TRANS_LI_NAME, WLAN_PARAM_Integer,
1803 struct hdd_config, nTeleBcnTransListenInterval,
1804 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1805 CFG_TELE_BCN_TRANS_LI_DEFAULT,
1806 CFG_TELE_BCN_TRANS_LI_MIN,
1807 CFG_TELE_BCN_TRANS_LI_MAX),
1808
1809 REG_VARIABLE(CFG_TELE_BCN_TRANS_LI_NUM_IDLE_BCNS_NAME,
1810 WLAN_PARAM_Integer,
1811 struct hdd_config, nTeleBcnTransLiNumIdleBeacons,
1812 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1813 CFG_TELE_BCN_TRANS_LI_NUM_IDLE_BCNS_DEFAULT,
1814 CFG_TELE_BCN_TRANS_LI_NUM_IDLE_BCNS_MIN,
1815 CFG_TELE_BCN_TRANS_LI_NUM_IDLE_BCNS_MAX),
1816
1817 REG_VARIABLE(CFG_TELE_BCN_MAX_LI_NAME, WLAN_PARAM_Integer,
1818 struct hdd_config, nTeleBcnMaxListenInterval,
1819 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1820 CFG_TELE_BCN_MAX_LI_DEFAULT,
1821 CFG_TELE_BCN_MAX_LI_MIN,
1822 CFG_TELE_BCN_MAX_LI_MAX),
1823
1824 REG_VARIABLE(CFG_TELE_BCN_MAX_LI_NUM_IDLE_BCNS_NAME, WLAN_PARAM_Integer,
1825 struct hdd_config, nTeleBcnMaxLiNumIdleBeacons,
1826 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1827 CFG_TELE_BCN_MAX_LI_NUM_IDLE_BCNS_DEFAULT,
1828 CFG_TELE_BCN_MAX_LI_NUM_IDLE_BCNS_MIN,
1829 CFG_TELE_BCN_MAX_LI_NUM_IDLE_BCNS_MAX),
1830
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001831 REG_VARIABLE(CFG_ENABLE_BYPASS_11D_NAME, WLAN_PARAM_Integer,
1832 struct hdd_config, enableBypass11d,
1833 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1834 CFG_ENABLE_BYPASS_11D_DEFAULT,
1835 CFG_ENABLE_BYPASS_11D_MIN,
1836 CFG_ENABLE_BYPASS_11D_MAX),
1837
1838 REG_VARIABLE(CFG_ENABLE_DFS_CHNL_SCAN_NAME, WLAN_PARAM_Integer,
1839 struct hdd_config, enableDFSChnlScan,
1840 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1841 CFG_ENABLE_DFS_CHNL_SCAN_DEFAULT,
1842 CFG_ENABLE_DFS_CHNL_SCAN_MIN,
1843 CFG_ENABLE_DFS_CHNL_SCAN_MAX),
1844
1845 REG_VARIABLE(CFG_ENABLE_DFS_PNO_CHNL_SCAN_NAME, WLAN_PARAM_Integer,
1846 struct hdd_config, enable_dfs_pno_chnl_scan,
1847 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1848 CFG_ENABLE_DFS_PNO_CHNL_SCAN_DEFAULT,
1849 CFG_ENABLE_DFS_PNO_CHNL_SCAN_MIN,
1850 CFG_ENABLE_DFS_PNO_CHNL_SCAN_MAX),
1851
1852 REG_VARIABLE(CFG_ENABLE_DYNAMIC_DTIM_NAME, WLAN_PARAM_Integer,
1853 struct hdd_config, enableDynamicDTIM,
1854 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1855 CFG_ENABLE_DYNAMIC_DTIM_DEFAULT,
1856 CFG_ENABLE_DYNAMIC_DTIM_MIN,
1857 CFG_ENABLE_DYNAMIC_DTIM_MAX),
1858
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001859 REG_VARIABLE(CFG_SHORT_GI_40MHZ_NAME, WLAN_PARAM_Integer,
1860 struct hdd_config, ShortGI40MhzEnable,
1861 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1862 CFG_SHORT_GI_40MHZ_DEFAULT,
1863 CFG_SHORT_GI_40MHZ_MIN,
1864 CFG_SHORT_GI_40MHZ_MAX),
1865
1866 REG_DYNAMIC_VARIABLE(CFG_REPORT_MAX_LINK_SPEED, WLAN_PARAM_Integer,
1867 struct hdd_config, reportMaxLinkSpeed,
1868 VAR_FLAGS_OPTIONAL |
1869 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1870 CFG_REPORT_MAX_LINK_SPEED_DEFAULT,
1871 CFG_REPORT_MAX_LINK_SPEED_MIN,
1872 CFG_REPORT_MAX_LINK_SPEED_MAX,
1873 NULL, 0),
1874
1875 REG_DYNAMIC_VARIABLE(CFG_LINK_SPEED_RSSI_HIGH, WLAN_PARAM_SignedInteger,
1876 struct hdd_config, linkSpeedRssiHigh,
1877 VAR_FLAGS_OPTIONAL |
1878 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1879 CFG_LINK_SPEED_RSSI_HIGH_DEFAULT,
1880 CFG_LINK_SPEED_RSSI_HIGH_MIN,
1881 CFG_LINK_SPEED_RSSI_HIGH_MAX,
1882 NULL, 0),
1883
1884 REG_DYNAMIC_VARIABLE(CFG_LINK_SPEED_RSSI_MID, WLAN_PARAM_SignedInteger,
1885 struct hdd_config, linkSpeedRssiMid,
1886 VAR_FLAGS_OPTIONAL |
1887 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1888 CFG_LINK_SPEED_RSSI_MID_DEFAULT,
1889 CFG_LINK_SPEED_RSSI_MID_MIN,
1890 CFG_LINK_SPEED_RSSI_MID_MAX,
1891 NULL, 0),
1892
1893 REG_DYNAMIC_VARIABLE(CFG_LINK_SPEED_RSSI_LOW, WLAN_PARAM_SignedInteger,
1894 struct hdd_config, linkSpeedRssiLow,
1895 VAR_FLAGS_OPTIONAL |
1896 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1897 CFG_LINK_SPEED_RSSI_LOW_DEFAULT,
1898 CFG_LINK_SPEED_RSSI_LOW_MIN,
1899 CFG_LINK_SPEED_RSSI_LOW_MAX,
1900 NULL, 0),
1901
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001902 REG_DYNAMIC_VARIABLE(CFG_ROAM_PREFER_5GHZ, WLAN_PARAM_Integer,
1903 struct hdd_config, nRoamPrefer5GHz,
1904 VAR_FLAGS_OPTIONAL |
1905 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1906 CFG_ROAM_PREFER_5GHZ_DEFAULT,
1907 CFG_ROAM_PREFER_5GHZ_MIN,
1908 CFG_ROAM_PREFER_5GHZ_MAX,
1909 cb_notify_set_roam_prefer5_g_hz, 0),
1910
1911 REG_DYNAMIC_VARIABLE(CFG_ROAM_INTRA_BAND, WLAN_PARAM_Integer,
1912 struct hdd_config, nRoamIntraBand,
1913 VAR_FLAGS_OPTIONAL |
1914 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1915 CFG_ROAM_INTRA_BAND_DEFAULT,
1916 CFG_ROAM_INTRA_BAND_MIN,
1917 CFG_ROAM_INTRA_BAND_MAX,
1918 cb_notify_set_roam_intra_band, 0),
1919
1920 REG_DYNAMIC_VARIABLE(CFG_ROAM_SCAN_N_PROBES, WLAN_PARAM_Integer,
1921 struct hdd_config, nProbes,
1922 VAR_FLAGS_OPTIONAL |
1923 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1924 CFG_ROAM_SCAN_N_PROBES_DEFAULT,
1925 CFG_ROAM_SCAN_N_PROBES_MIN,
1926 CFG_ROAM_SCAN_N_PROBES_MAX,
1927 cb_notify_set_roam_scan_n_probes, 0),
1928
1929 REG_DYNAMIC_VARIABLE(CFG_ROAM_SCAN_HOME_AWAY_TIME, WLAN_PARAM_Integer,
1930 struct hdd_config, nRoamScanHomeAwayTime,
1931 VAR_FLAGS_OPTIONAL |
1932 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1933 CFG_ROAM_SCAN_HOME_AWAY_TIME_DEFAULT,
1934 CFG_ROAM_SCAN_HOME_AWAY_TIME_MIN,
1935 CFG_ROAM_SCAN_HOME_AWAY_TIME_MAX,
1936 cb_notify_set_roam_scan_home_away_time, 0),
1937
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001938 REG_VARIABLE(CFG_P2P_DEVICE_ADDRESS_ADMINISTRATED_NAME,
1939 WLAN_PARAM_Integer,
1940 struct hdd_config, isP2pDeviceAddrAdministrated,
1941 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1942 CFG_P2P_DEVICE_ADDRESS_ADMINISTRATED_DEFAULT,
1943 CFG_P2P_DEVICE_ADDRESS_ADMINISTRATED_MIN,
1944 CFG_P2P_DEVICE_ADDRESS_ADMINISTRATED_MAX),
1945
1946 REG_VARIABLE(CFG_ENABLE_MCC_ENABLED_NAME, WLAN_PARAM_Integer,
1947 struct hdd_config, enableMCC,
1948 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1949 CFG_ENABLE_MCC_ENABLED_DEFAULT,
1950 CFG_ENABLE_MCC_ENABLED_MIN,
1951 CFG_ENABLE_MCC_ENABLED_MAX),
1952
1953 REG_VARIABLE(CFG_ALLOW_MCC_GO_DIFF_BI_NAME, WLAN_PARAM_Integer,
1954 struct hdd_config, allowMCCGODiffBI,
1955 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1956 CFG_ALLOW_MCC_GO_DIFF_BI_DEFAULT,
1957 CFG_ALLOW_MCC_GO_DIFF_BI_MIN,
1958 CFG_ALLOW_MCC_GO_DIFF_BI_MAX),
1959
1960 REG_VARIABLE(CFG_THERMAL_MIGRATION_ENABLE_NAME, WLAN_PARAM_Integer,
1961 struct hdd_config, thermalMitigationEnable,
1962 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1963 CFG_THERMAL_MIGRATION_ENABLE_DEFAULT,
1964 CFG_THERMAL_MIGRATION_ENABLE_MIN,
1965 CFG_THERMAL_MIGRATION_ENABLE_MAX),
1966
1967 REG_VARIABLE(CFG_THROTTLE_PERIOD_NAME, WLAN_PARAM_Integer,
1968 struct hdd_config, throttlePeriod,
1969 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1970 CFG_THROTTLE_PERIOD_DEFAULT,
1971 CFG_THROTTLE_PERIOD_MIN,
1972 CFG_THROTTLE_PERIOD_MAX),
1973
Poddar, Siddarth83905022016-04-16 17:56:08 -07001974 REG_VARIABLE(CFG_THROTTLE_DUTY_CYCLE_LEVEL0_NAME, WLAN_PARAM_Integer,
1975 struct hdd_config, throttle_dutycycle_level0,
1976 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1977 CFG_THROTTLE_DUTY_CYCLE_LEVEL0_DEFAULT,
1978 CFG_THROTTLE_DUTY_CYCLE_LEVEL0_MIN,
1979 CFG_THROTTLE_DUTY_CYCLE_LEVEL0_MAX),
1980
1981 REG_VARIABLE(CFG_THROTTLE_DUTY_CYCLE_LEVEL1_NAME, WLAN_PARAM_Integer,
1982 struct hdd_config, throttle_dutycycle_level1,
1983 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1984 CFG_THROTTLE_DUTY_CYCLE_LEVEL1_DEFAULT,
1985 CFG_THROTTLE_DUTY_CYCLE_LEVEL1_MIN,
1986 CFG_THROTTLE_DUTY_CYCLE_LEVEL1_MAX),
1987
1988 REG_VARIABLE(CFG_THROTTLE_DUTY_CYCLE_LEVEL2_NAME, WLAN_PARAM_Integer,
1989 struct hdd_config, throttle_dutycycle_level2,
1990 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1991 CFG_THROTTLE_DUTY_CYCLE_LEVEL2_DEFAULT,
1992 CFG_THROTTLE_DUTY_CYCLE_LEVEL2_MIN,
1993 CFG_THROTTLE_DUTY_CYCLE_LEVEL2_MAX),
1994
1995 REG_VARIABLE(CFG_THROTTLE_DUTY_CYCLE_LEVEL3_NAME, WLAN_PARAM_Integer,
1996 struct hdd_config, throttle_dutycycle_level3,
1997 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1998 CFG_THROTTLE_DUTY_CYCLE_LEVEL3_DEFAULT,
1999 CFG_THROTTLE_DUTY_CYCLE_LEVEL3_MIN,
2000 CFG_THROTTLE_DUTY_CYCLE_LEVEL3_MAX),
2001
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002002 REG_VARIABLE(CFG_ENABLE_MODULATED_DTIM_NAME, WLAN_PARAM_Integer,
2003 struct hdd_config, enableModulatedDTIM,
2004 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2005 CFG_ENABLE_MODULATED_DTIM_DEFAULT,
2006 CFG_ENABLE_MODULATED_DTIM_MIN,
2007 CFG_ENABLE_MODULATED_DTIM_MAX),
2008
2009 REG_VARIABLE(CFG_MC_ADDR_LIST_ENABLE_NAME, WLAN_PARAM_Integer,
2010 struct hdd_config, fEnableMCAddrList,
2011 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2012 CFG_MC_ADDR_LIST_ENABLE_DEFAULT,
2013 CFG_MC_ADDR_LIST_ENABLE_MIN,
2014 CFG_MC_ADDR_LIST_ENABLE_MAX),
2015
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002016 REG_VARIABLE(CFG_VHT_CHANNEL_WIDTH, WLAN_PARAM_Integer,
2017 struct hdd_config, vhtChannelWidth,
2018 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2019 CFG_VHT_CHANNEL_WIDTH_DEFAULT,
2020 CFG_VHT_CHANNEL_WIDTH_MIN,
2021 CFG_VHT_CHANNEL_WIDTH_MAX),
2022
2023 REG_VARIABLE(CFG_VHT_ENABLE_RX_MCS_8_9, WLAN_PARAM_Integer,
2024 struct hdd_config, vhtRxMCS,
2025 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2026 CFG_VHT_ENABLE_RX_MCS_8_9_DEFAULT,
2027 CFG_VHT_ENABLE_RX_MCS_8_9_MIN,
2028 CFG_VHT_ENABLE_RX_MCS_8_9_MAX),
2029
2030 REG_VARIABLE(CFG_VHT_ENABLE_TX_MCS_8_9, WLAN_PARAM_Integer,
2031 struct hdd_config, vhtTxMCS,
2032 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2033 CFG_VHT_ENABLE_TX_MCS_8_9_DEFAULT,
2034 CFG_VHT_ENABLE_TX_MCS_8_9_MIN,
2035 CFG_VHT_ENABLE_TX_MCS_8_9_MAX),
2036
2037 REG_VARIABLE(CFG_VHT_ENABLE_RX_MCS2x2_8_9, WLAN_PARAM_Integer,
2038 struct hdd_config, vhtRxMCS2x2,
2039 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2040 CFG_VHT_ENABLE_RX_MCS2x2_8_9_DEFAULT,
2041 CFG_VHT_ENABLE_RX_MCS2x2_8_9_MIN,
2042 CFG_VHT_ENABLE_RX_MCS2x2_8_9_MAX),
2043
2044 REG_VARIABLE(CFG_VHT_ENABLE_TX_MCS2x2_8_9, WLAN_PARAM_Integer,
2045 struct hdd_config, vhtTxMCS2x2,
2046 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2047 CFG_VHT_ENABLE_TX_MCS2x2_8_9_DEFAULT,
2048 CFG_VHT_ENABLE_TX_MCS2x2_8_9_MIN,
2049 CFG_VHT_ENABLE_TX_MCS2x2_8_9_MAX),
2050
2051 REG_VARIABLE(CFG_VHT_ENABLE_2x2_CAP_FEATURE, WLAN_PARAM_Integer,
2052 struct hdd_config, enable2x2,
2053 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2054 CFG_VHT_ENABLE_2x2_CAP_FEATURE_DEFAULT,
2055 CFG_VHT_ENABLE_2x2_CAP_FEATURE_MIN,
2056 CFG_VHT_ENABLE_2x2_CAP_FEATURE_MAX),
2057
Krunal Soni158bfe62017-08-02 12:33:08 -07002058 REG_VARIABLE(CFG_DISABLE_HIGH_HT_RX_MCS_2x2, WLAN_PARAM_Integer,
2059 struct hdd_config, disable_high_ht_mcs_2x2,
2060 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2061 CFG_DISABLE_HIGH_HT_RX_MCS_2x2_DEFAULT,
2062 CFG_DISABLE_HIGH_HT_RX_MCS_2x2_MIN,
2063 CFG_DISABLE_HIGH_HT_RX_MCS_2x2_MAX),
2064
Nitesh Shah0e5c7322017-03-23 14:55:11 +05302065 REG_VARIABLE(CFG_VDEV_TYPE_NSS_2G, WLAN_PARAM_Integer,
Kiran Kumar Lokere666bf852016-05-02 12:23:02 -07002066 struct hdd_config, vdev_type_nss_2g,
2067 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2068 CFG_VDEV_TYPE_NSS_2G_DEFAULT,
2069 CFG_VDEV_TYPE_NSS_2G_MIN,
2070 CFG_VDEV_TYPE_NSS_2G_MAX),
2071
Kiran Kumar Lokere1aa9c9a2016-10-05 18:50:59 -07002072 REG_VARIABLE(CFG_STA_PREFER_80MHZ_OVER_160MHZ, WLAN_PARAM_Integer,
2073 struct hdd_config, sta_prefer_80MHz_over_160MHz,
2074 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2075 CFG_STA_PREFER_80MHZ_OVER_160MHZ_DEFAULT,
2076 CFG_STA_PREFER_80MHZ_OVER_160MHZ_MIN,
2077 CFG_STA_PREFER_80MHZ_OVER_160MHZ_MAX),
2078
Nitesh Shah0e5c7322017-03-23 14:55:11 +05302079 REG_VARIABLE(CFG_VDEV_TYPE_NSS_5G, WLAN_PARAM_Integer,
Kiran Kumar Lokere666bf852016-05-02 12:23:02 -07002080 struct hdd_config, vdev_type_nss_5g,
2081 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2082 CFG_VDEV_TYPE_NSS_5G_DEFAULT,
2083 CFG_VDEV_TYPE_NSS_5G_MIN,
2084 CFG_VDEV_TYPE_NSS_5G_MAX),
2085
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002086 REG_VARIABLE(CFG_VHT_ENABLE_MU_BFORMEE_CAP_FEATURE, WLAN_PARAM_Integer,
2087 struct hdd_config, enableMuBformee,
2088 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2089 CFG_VHT_ENABLE_MU_BFORMEE_CAP_FEATURE_DEFAULT,
2090 CFG_VHT_ENABLE_MU_BFORMEE_CAP_FEATURE_MIN,
2091 CFG_VHT_ENABLE_MU_BFORMEE_CAP_FEATURE_MAX),
2092
2093 REG_VARIABLE(CFG_VHT_ENABLE_PAID_FEATURE, WLAN_PARAM_Integer,
2094 struct hdd_config, enableVhtpAid,
2095 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2096 CFG_VHT_ENABLE_PAID_FEATURE_DEFAULT,
2097 CFG_VHT_ENABLE_PAID_FEATURE_MIN,
2098 CFG_VHT_ENABLE_PAID_FEATURE_MAX),
2099
2100 REG_VARIABLE(CFG_VHT_ENABLE_GID_FEATURE, WLAN_PARAM_Integer,
2101 struct hdd_config, enableVhtGid,
2102 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2103 CFG_VHT_ENABLE_GID_FEATURE_DEFAULT,
2104 CFG_VHT_ENABLE_GID_FEATURE_MIN,
2105 CFG_VHT_ENABLE_GID_FEATURE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002106
2107 REG_VARIABLE(CFG_VHT_ENABLE_1x1_TX_CHAINMASK, WLAN_PARAM_Integer,
2108 struct hdd_config, txchainmask1x1,
2109 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2110 CFG_VHT_ENABLE_1x1_TX_CHAINMASK_DEFAULT,
2111 CFG_VHT_ENABLE_1x1_TX_CHAINMASK_MIN,
2112 CFG_VHT_ENABLE_1x1_TX_CHAINMASK_MAX),
2113
2114 REG_VARIABLE(CFG_VHT_ENABLE_1x1_RX_CHAINMASK, WLAN_PARAM_Integer,
2115 struct hdd_config, rxchainmask1x1,
2116 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2117 CFG_VHT_ENABLE_1x1_RX_CHAINMASK_DEFAULT,
2118 CFG_VHT_ENABLE_1x1_RX_CHAINMASK_MIN,
2119 CFG_VHT_ENABLE_1x1_RX_CHAINMASK_MAX),
2120
2121 REG_VARIABLE(CFG_ENABLE_AMPDUPS_FEATURE, WLAN_PARAM_Integer,
2122 struct hdd_config, enableAmpduPs,
2123 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2124 CFG_ENABLE_AMPDUPS_FEATURE_DEFAULT,
2125 CFG_ENABLE_AMPDUPS_FEATURE_MIN,
2126 CFG_ENABLE_AMPDUPS_FEATURE_MAX),
2127
2128 REG_VARIABLE(CFG_HT_ENABLE_SMPS_CAP_FEATURE, WLAN_PARAM_Integer,
2129 struct hdd_config, enableHtSmps,
2130 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2131 CFG_HT_ENABLE_SMPS_CAP_FEATURE_DEFAULT,
2132 CFG_HT_ENABLE_SMPS_CAP_FEATURE_MIN,
2133 CFG_HT_ENABLE_SMPS_CAP_FEATURE_MAX),
2134
2135 REG_VARIABLE(CFG_HT_SMPS_CAP_FEATURE, WLAN_PARAM_Integer,
2136 struct hdd_config, htSmps,
2137 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2138 CFG_HT_SMPS_CAP_FEATURE_DEFAULT,
2139 CFG_HT_SMPS_CAP_FEATURE_MIN,
2140 CFG_HT_SMPS_CAP_FEATURE_MAX),
2141
2142 REG_VARIABLE(CFG_DISABLE_DFS_CH_SWITCH, WLAN_PARAM_Integer,
2143 struct hdd_config, disableDFSChSwitch,
2144 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2145 CFG_DISABLE_DFS_CH_SWITCH_DEFAULT,
2146 CFG_DISABLE_DFS_CH_SWITCH_MIN,
2147 CFG_DISABLE_DFS_CH_SWITCH_MAX),
2148
2149 REG_VARIABLE(CFG_ENABLE_DFS_MASTER_CAPABILITY, WLAN_PARAM_Integer,
2150 struct hdd_config, enableDFSMasterCap,
2151 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2152 CFG_ENABLE_DFS_MASTER_CAPABILITY_DEFAULT,
2153 CFG_ENABLE_DFS_MASTER_CAPABILITY_MIN,
2154 CFG_ENABLE_DFS_MASTER_CAPABILITY_MAX),
2155
2156 REG_DYNAMIC_VARIABLE(CFG_SAP_PREFERRED_CHANNEL_LOCATION,
2157 WLAN_PARAM_Integer,
2158 struct hdd_config, gSapPreferredChanLocation,
2159 VAR_FLAGS_OPTIONAL |
2160 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2161 CFG_SAP_PREFERRED_CHANNEL_LOCATION_DEFAULT,
2162 CFG_SAP_PREFERRED_CHANNEL_LOCATION_MIN,
2163 CFG_SAP_PREFERRED_CHANNEL_LOCATION_MAX,
2164 cb_notify_set_g_sap_preferred_chan_location, 0),
2165 REG_DYNAMIC_VARIABLE(CFG_DISABLE_DFS_JAPAN_W53, WLAN_PARAM_Integer,
2166 struct hdd_config, gDisableDfsJapanW53,
2167 VAR_FLAGS_OPTIONAL |
2168 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2169 CFG_DISABLE_DFS_JAPAN_W53_DEFAULT,
2170 CFG_DISABLE_DFS_JAPAN_W53_MIN,
2171 CFG_DISABLE_DFS_JAPAN_W53_MAX,
2172 ch_notify_set_g_disable_dfs_japan_w53, 0),
Hong Shi417824f2017-01-12 02:31:14 +08002173
2174 REG_VARIABLE(CFG_MAX_HT_MCS_FOR_TX_DATA, WLAN_PARAM_HexInteger,
2175 struct hdd_config, max_ht_mcs_txdata,
2176 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2177 CFG_MAX_HT_MCS_FOR_TX_DATA_DEFAULT,
2178 CFG_MAX_HT_MCS_FOR_TX_DATA_MIN,
2179 CFG_MAX_HT_MCS_FOR_TX_DATA_MAX),
2180
Will Huang496b36c2017-07-11 16:38:50 +08002181 REG_VARIABLE(CFG_SAP_GET_PEER_INFO, WLAN_PARAM_Integer,
2182 struct hdd_config, sap_get_peer_info,
2183 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2184 CFG_SAP_GET_PEER_INFO_DEFAULT,
2185 CFG_SAP_GET_PEER_INFO_MIN,
2186 CFG_SAP_GET_PEER_INFO_MAX),
2187
Hong Shia9ef8712017-02-19 21:54:02 +08002188 REG_VARIABLE(CFG_DISABLE_ABG_RATE_FOR_TX_DATA, WLAN_PARAM_Integer,
2189 struct hdd_config, disable_abg_rate_txdata,
2190 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2191 CFG_DISABLE_ABG_RATE_FOR_TX_DATA_DEFAULT,
2192 CFG_DISABLE_ABG_RATE_FOR_TX_DATA_MIN,
2193 CFG_DISABLE_ABG_RATE_FOR_TX_DATA_MAX),
2194
Hong Shib90718f2017-02-20 00:57:22 +08002195 REG_VARIABLE(CFG_RATE_FOR_TX_MGMT, WLAN_PARAM_HexInteger,
2196 struct hdd_config, rate_for_tx_mgmt,
2197 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2198 CFG_RATE_FOR_TX_MGMT_DEFAULT,
2199 CFG_RATE_FOR_TX_MGMT_MIN,
2200 CFG_RATE_FOR_TX_MGMT_MAX),
2201
Hong Shi2d384fd2017-05-22 18:38:41 +08002202 REG_VARIABLE(CFG_RATE_FOR_TX_MGMT_2G, WLAN_PARAM_HexInteger,
2203 struct hdd_config, rate_for_tx_mgmt_2g,
2204 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2205 CFG_RATE_FOR_TX_MGMT_2G_DEFAULT,
2206 CFG_RATE_FOR_TX_MGMT_2G_MIN,
2207 CFG_RATE_FOR_TX_MGMT_2G_MAX),
2208
2209 REG_VARIABLE(CFG_RATE_FOR_TX_MGMT_5G, WLAN_PARAM_HexInteger,
2210 struct hdd_config, rate_for_tx_mgmt_5g,
2211 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2212 CFG_RATE_FOR_TX_MGMT_5G_DEFAULT,
2213 CFG_RATE_FOR_TX_MGMT_5G_MIN,
2214 CFG_RATE_FOR_TX_MGMT_5G_MAX),
2215
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002216 REG_VARIABLE(CFG_ENABLE_FIRST_SCAN_2G_ONLY_NAME, WLAN_PARAM_Integer,
2217 struct hdd_config, enableFirstScan2GOnly,
2218 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2219 CFG_ENABLE_FIRST_SCAN_2G_ONLY_DEFAULT,
2220 CFG_ENABLE_FIRST_SCAN_2G_ONLY_MIN,
2221 CFG_ENABLE_FIRST_SCAN_2G_ONLY_MAX),
2222
2223 REG_VARIABLE(CFG_ENABLE_SKIP_DFS_IN_P2P_SEARCH_NAME, WLAN_PARAM_Integer,
2224 struct hdd_config, skipDfsChnlInP2pSearch,
2225 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2226 CFG_ENABLE_SKIP_DFS_IN_P2P_SEARCH_DEFAULT,
2227 CFG_ENABLE_SKIP_DFS_IN_P2P_SEARCH_MIN,
2228 CFG_ENABLE_SKIP_DFS_IN_P2P_SEARCH_MAX),
2229
2230 REG_VARIABLE(CFG_IGNORE_DYNAMIC_DTIM_IN_P2P_MODE_NAME,
2231 WLAN_PARAM_Integer,
2232 struct hdd_config, ignoreDynamicDtimInP2pMode,
2233 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2234 CFG_IGNORE_DYNAMIC_DTIM_IN_P2P_MODE_DEFAULT,
2235 CFG_IGNORE_DYNAMIC_DTIM_IN_P2P_MODE_MIN,
2236 CFG_IGNORE_DYNAMIC_DTIM_IN_P2P_MODE_MAX),
2237
2238 REG_VARIABLE(CFG_ENABLE_RX_STBC, WLAN_PARAM_Integer,
2239 struct hdd_config, enableRxSTBC,
2240 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2241 CFG_ENABLE_RX_STBC_DEFAULT,
2242 CFG_ENABLE_RX_STBC_MIN,
2243 CFG_ENABLE_RX_STBC_MAX),
2244
2245 REG_VARIABLE(CFG_ENABLE_TX_STBC, WLAN_PARAM_Integer,
2246 struct hdd_config, enableTxSTBC,
2247 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2248 CFG_ENABLE_TX_STBC_DEFAULT,
2249 CFG_ENABLE_TX_STBC_MIN,
2250 CFG_ENABLE_TX_STBC_MAX),
2251
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002252 REG_VARIABLE(CFG_PPS_ENABLE_5G_EBT, WLAN_PARAM_Integer,
2253 struct hdd_config, enable5gEBT,
2254 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2255 CFG_PPS_ENABLE_5G_EBT_FEATURE_DEFAULT,
2256 CFG_PPS_ENABLE_5G_EBT_FEATURE_MIN,
2257 CFG_PPS_ENABLE_5G_EBT_FEATURE_MAX),
2258
Dustin Brownfe7aa872017-06-26 10:52:08 -07002259 REG_VARIABLE(CFG_PREVENT_LINK_DOWN_NAME, WLAN_PARAM_Integer,
2260 struct hdd_config, prevent_link_down,
2261 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2262 CFG_PREVENT_LINK_DOWN_DEFAULT,
2263 CFG_PREVENT_LINK_DOWN_MIN,
2264 CFG_PREVENT_LINK_DOWN_MAX),
2265
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002266#ifdef FEATURE_WLAN_TDLS
2267 REG_VARIABLE(CFG_TDLS_SUPPORT_ENABLE, WLAN_PARAM_Integer,
2268 struct hdd_config, fEnableTDLSSupport,
2269 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2270 CFG_TDLS_SUPPORT_ENABLE_DEFAULT,
2271 CFG_TDLS_SUPPORT_ENABLE_MIN,
2272 CFG_TDLS_SUPPORT_ENABLE_MAX),
2273
2274 REG_VARIABLE(CFG_TDLS_IMPLICIT_TRIGGER, WLAN_PARAM_Integer,
2275 struct hdd_config, fEnableTDLSImplicitTrigger,
2276 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2277 CFG_TDLS_IMPLICIT_TRIGGER_DEFAULT,
2278 CFG_TDLS_IMPLICIT_TRIGGER_MIN,
2279 CFG_TDLS_IMPLICIT_TRIGGER_MAX),
2280
2281 REG_VARIABLE(CFG_TDLS_TX_STATS_PERIOD, WLAN_PARAM_Integer,
2282 struct hdd_config, fTDLSTxStatsPeriod,
2283 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2284 CFG_TDLS_TX_STATS_PERIOD_DEFAULT,
2285 CFG_TDLS_TX_STATS_PERIOD_MIN,
2286 CFG_TDLS_TX_STATS_PERIOD_MAX),
2287
2288 REG_VARIABLE(CFG_TDLS_TX_PACKET_THRESHOLD, WLAN_PARAM_Integer,
2289 struct hdd_config, fTDLSTxPacketThreshold,
2290 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2291 CFG_TDLS_TX_PACKET_THRESHOLD_DEFAULT,
2292 CFG_TDLS_TX_PACKET_THRESHOLD_MIN,
2293 CFG_TDLS_TX_PACKET_THRESHOLD_MAX),
2294
2295 REG_VARIABLE(CFG_TDLS_MAX_DISCOVERY_ATTEMPT, WLAN_PARAM_Integer,
2296 struct hdd_config, fTDLSMaxDiscoveryAttempt,
2297 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2298 CFG_TDLS_MAX_DISCOVERY_ATTEMPT_DEFAULT,
2299 CFG_TDLS_MAX_DISCOVERY_ATTEMPT_MIN,
2300 CFG_TDLS_MAX_DISCOVERY_ATTEMPT_MAX),
2301
Kabilan Kannanca670be2015-11-23 01:56:12 -08002302 REG_VARIABLE(CFG_TDLS_IDLE_TIMEOUT, WLAN_PARAM_Integer,
2303 struct hdd_config, tdls_idle_timeout,
2304 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2305 CFG_TDLS_IDLE_TIMEOUT_DEFAULT,
2306 CFG_TDLS_IDLE_TIMEOUT_MIN,
2307 CFG_TDLS_IDLE_TIMEOUT_MAX),
2308
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002309 REG_VARIABLE(CFG_TDLS_IDLE_PACKET_THRESHOLD, WLAN_PARAM_Integer,
2310 struct hdd_config, fTDLSIdlePacketThreshold,
2311 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2312 CFG_TDLS_IDLE_PACKET_THRESHOLD_DEFAULT,
2313 CFG_TDLS_IDLE_PACKET_THRESHOLD_MIN,
2314 CFG_TDLS_IDLE_PACKET_THRESHOLD_MAX),
2315
2316 REG_VARIABLE(CFG_TDLS_RSSI_TRIGGER_THRESHOLD, WLAN_PARAM_SignedInteger,
2317 struct hdd_config, fTDLSRSSITriggerThreshold,
2318 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2319 CFG_TDLS_RSSI_TRIGGER_THRESHOLD_DEFAULT,
2320 CFG_TDLS_RSSI_TRIGGER_THRESHOLD_MIN,
2321 CFG_TDLS_RSSI_TRIGGER_THRESHOLD_MAX),
2322
2323 REG_VARIABLE(CFG_TDLS_RSSI_TEARDOWN_THRESHOLD, WLAN_PARAM_SignedInteger,
2324 struct hdd_config, fTDLSRSSITeardownThreshold,
2325 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2326 CFG_TDLS_RSSI_TEARDOWN_THRESHOLD_DEFAULT,
2327 CFG_TDLS_RSSI_TEARDOWN_THRESHOLD_MIN,
2328 CFG_TDLS_RSSI_TEARDOWN_THRESHOLD_MAX),
2329
2330 REG_VARIABLE(CFG_TDLS_RSSI_DELTA, WLAN_PARAM_SignedInteger,
2331 struct hdd_config, fTDLSRSSIDelta,
2332 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2333 CFG_TDLS_RSSI_DELTA_DEFAULT,
2334 CFG_TDLS_RSSI_DELTA_MIN,
2335 CFG_TDLS_RSSI_DELTA_MAX),
2336
2337 REG_VARIABLE(CFG_TDLS_QOS_WMM_UAPSD_MASK_NAME, WLAN_PARAM_HexInteger,
2338 struct hdd_config, fTDLSUapsdMask,
2339 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2340 CFG_TDLS_QOS_WMM_UAPSD_MASK_DEFAULT,
2341 CFG_TDLS_QOS_WMM_UAPSD_MASK_MIN,
2342 CFG_TDLS_QOS_WMM_UAPSD_MASK_MAX),
2343
2344 REG_VARIABLE(CFG_TDLS_BUFFER_STA_SUPPORT_ENABLE, WLAN_PARAM_Integer,
2345 struct hdd_config, fEnableTDLSBufferSta,
2346 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2347 CFG_TDLS_BUFFER_STA_SUPPORT_ENABLE_DEFAULT,
2348 CFG_TDLS_BUFFER_STA_SUPPORT_ENABLE_MIN,
2349 CFG_TDLS_BUFFER_STA_SUPPORT_ENABLE_MAX),
2350
2351 REG_VARIABLE(CFG_TDLS_OFF_CHANNEL_SUPPORT_ENABLE, WLAN_PARAM_Integer,
2352 struct hdd_config, fEnableTDLSOffChannel,
2353 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2354 CFG_TDLS_OFF_CHANNEL_SUPPORT_ENABLE_DEFAULT,
2355 CFG_TDLS_OFF_CHANNEL_SUPPORT_ENABLE_MIN,
2356 CFG_TDLS_OFF_CHANNEL_SUPPORT_ENABLE_MAX),
2357
2358 REG_VARIABLE(CFG_TDLS_PREFERRED_OFF_CHANNEL_NUM, WLAN_PARAM_Integer,
2359 struct hdd_config, fTDLSPrefOffChanNum,
2360 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2361 CFG_TDLS_PREFERRED_OFF_CHANNEL_NUM_DEFAULT,
2362 CFG_TDLS_PREFERRED_OFF_CHANNEL_NUM_MIN,
2363 CFG_TDLS_PREFERRED_OFF_CHANNEL_NUM_MAX),
2364
2365 REG_VARIABLE(CFG_TDLS_PREFERRED_OFF_CHANNEL_BW, WLAN_PARAM_Integer,
2366 struct hdd_config, fTDLSPrefOffChanBandwidth,
2367 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2368 CFG_TDLS_PREFERRED_OFF_CHANNEL_BW_DEFAULT,
2369 CFG_TDLS_PREFERRED_OFF_CHANNEL_BW_MIN,
2370 CFG_TDLS_PREFERRED_OFF_CHANNEL_BW_MAX),
2371
2372 REG_VARIABLE(CFG_TDLS_PUAPSD_INACTIVITY_TIME, WLAN_PARAM_Integer,
2373 struct hdd_config, fTDLSPuapsdInactivityTimer,
2374 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2375 CFG_TDLS_PUAPSD_INACTIVITY_TIME_DEFAULT,
2376 CFG_TDLS_PUAPSD_INACTIVITY_TIME_MIN,
2377 CFG_TDLS_PUAPSD_INACTIVITY_TIME_MAX),
2378
2379 REG_VARIABLE(CFG_TDLS_PUAPSD_RX_FRAME_THRESHOLD, WLAN_PARAM_Integer,
2380 struct hdd_config, fTDLSRxFrameThreshold,
2381 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2382 CFG_TDLS_PUAPSD_RX_FRAME_THRESHOLD_DEFAULT,
2383 CFG_TDLS_PUAPSD_RX_FRAME_THRESHOLD_MIN,
2384 CFG_TDLS_PUAPSD_RX_FRAME_THRESHOLD_MAX),
2385
2386 REG_VARIABLE(CFG_TDLS_PUAPSD_PEER_TRAFFIC_IND_WINDOW,
2387 WLAN_PARAM_Integer,
2388 struct hdd_config, fTDLSPuapsdPTIWindow,
2389 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2390 CFG_TDLS_PUAPSD_PEER_TRAFFIC_IND_WINDOW_DEFAULT,
2391 CFG_TDLS_PUAPSD_PEER_TRAFFIC_IND_WINDOW_MIN,
2392 CFG_TDLS_PUAPSD_PEER_TRAFFIC_IND_WINDOW_MAX),
2393
2394 REG_VARIABLE(CFG_TDLS_PUAPSD_PEER_TRAFFIC_RSP_TIMEOUT,
2395 WLAN_PARAM_Integer,
2396 struct hdd_config, fTDLSPuapsdPTRTimeout,
2397 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2398 CFG_TDLS_PUAPSD_PEER_TRAFFIC_RSP_TIMEOUT_DEFAULT,
2399 CFG_TDLS_PUAPSD_PEER_TRAFFIC_RSP_TIMEOUT_MIN,
2400 CFG_TDLS_PUAPSD_PEER_TRAFFIC_RSP_TIMEOUT_MAX),
2401
2402 REG_VARIABLE(CFG_TDLS_EXTERNAL_CONTROL, WLAN_PARAM_Integer,
2403 struct hdd_config, fTDLSExternalControl,
2404 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2405 CFG_TDLS_EXTERNAL_CONTROL_DEFAULT,
2406 CFG_TDLS_EXTERNAL_CONTROL_MIN,
2407 CFG_TDLS_EXTERNAL_CONTROL_MAX),
2408 REG_VARIABLE(CFG_TDLS_WMM_MODE_ENABLE, WLAN_PARAM_Integer,
2409 struct hdd_config, fEnableTDLSWmmMode,
2410 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2411 CFG_TDLS_WMM_MODE_ENABLE_DEFAULT,
2412 CFG_TDLS_WMM_MODE_ENABLE_MIN,
2413 CFG_TDLS_WMM_MODE_ENABLE_MAX),
2414
2415 REG_VARIABLE(CFG_TDLS_SCAN_ENABLE, WLAN_PARAM_Integer,
2416 struct hdd_config, enable_tdls_scan,
2417 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2418 CFG_TDLS_SCAN_ENABLE_DEFAULT,
2419 CFG_TDLS_SCAN_ENABLE_MIN,
2420 CFG_TDLS_SCAN_ENABLE_MAX),
Kabilan Kannan421714b2015-11-23 04:44:59 -08002421
2422 REG_VARIABLE(CFG_TDLS_PEER_KICKOUT_THRESHOLD, WLAN_PARAM_Integer,
2423 struct hdd_config, tdls_peer_kickout_threshold,
2424 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2425 CFG_TDLS_PEER_KICKOUT_THRESHOLD_DEFAULT,
2426 CFG_TDLS_PEER_KICKOUT_THRESHOLD_MIN,
2427 CFG_TDLS_PEER_KICKOUT_THRESHOLD_MAX),
2428
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002429#endif
2430
2431#ifdef WLAN_SOFTAP_VSTA_FEATURE
2432 REG_VARIABLE(CFG_VSTA_SUPPORT_ENABLE, WLAN_PARAM_Integer,
2433 struct hdd_config, fEnableVSTASupport,
2434 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2435 CFG_VSTA_SUPPORT_ENABLE_DEFAULT,
2436 CFG_VSTA_SUPPORT_ENABLE_MIN,
2437 CFG_VSTA_SUPPORT_ENABLE_MAX),
2438#endif
2439 REG_VARIABLE(CFG_ENABLE_LPWR_IMG_TRANSITION_NAME, WLAN_PARAM_Integer,
2440 struct hdd_config, enableLpwrImgTransition,
2441 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2442 CFG_ENABLE_LPWR_IMG_TRANSITION_DEFAULT,
2443 CFG_ENABLE_LPWR_IMG_TRANSITION_MIN,
2444 CFG_ENABLE_LPWR_IMG_TRANSITION_MAX),
2445
2446 REG_VARIABLE(CFG_ENABLE_LPWR_IMG_TRANSITION_NAME, WLAN_PARAM_Integer,
2447 struct hdd_config, enableLpwrImgTransition,
2448 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2449 CFG_ENABLE_LPWR_IMG_TRANSITION_DEFAULT,
2450 CFG_ENABLE_LPWR_IMG_TRANSITION_MIN,
2451 CFG_ENABLE_LPWR_IMG_TRANSITION_MAX),
2452
2453 REG_VARIABLE(CFG_SCAN_AGING_PARAM_NAME, WLAN_PARAM_Integer,
2454 struct hdd_config, scanAgingTimeout,
2455 VAR_FLAGS_OPTIONAL,
2456 CFG_SCAN_AGING_PARAM_DEFAULT,
2457 CFG_SCAN_AGING_PARAM_MIN,
2458 CFG_SCAN_AGING_PARAM_MAX),
2459
2460 REG_VARIABLE(CFG_TX_LDPC_ENABLE_FEATURE, WLAN_PARAM_Integer,
Krunal Sonia2c0e412017-05-04 14:12:41 +05302461 struct hdd_config, enable_tx_ldpc,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002462 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2463 CFG_TX_LDPC_ENABLE_FEATURE_DEFAULT,
2464 CFG_TX_LDPC_ENABLE_FEATURE_MIN,
2465 CFG_TX_LDPC_ENABLE_FEATURE_MAX),
2466
Krunal Sonia2c0e412017-05-04 14:12:41 +05302467 REG_VARIABLE(CFG_ENABLE_RX_LDPC, WLAN_PARAM_Integer,
2468 struct hdd_config, enable_rx_ldpc,
2469 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2470 CFG_ENABLE_RX_LDPC_DEFAULT,
2471 CFG_ENABLE_RX_LDPC_MIN,
2472 CFG_ENABLE_RX_LDPC_MAX),
2473
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002474 REG_VARIABLE(CFG_ENABLE_MCC_ADATIVE_SCHEDULER_ENABLED_NAME,
2475 WLAN_PARAM_Integer,
2476 struct hdd_config, enableMCCAdaptiveScheduler,
2477 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2478 CFG_ENABLE_MCC_ADATIVE_SCHEDULER_ENABLED_DEFAULT,
2479 CFG_ENABLE_MCC_ADATIVE_SCHEDULER_ENABLED_MIN,
2480 CFG_ENABLE_MCC_ADATIVE_SCHEDULER_ENABLED_MAX),
2481
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002482 REG_VARIABLE(CFG_IBSS_ADHOC_CHANNEL_5GHZ_NAME, WLAN_PARAM_Integer,
2483 struct hdd_config, AdHocChannel5G,
2484 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2485 CFG_IBSS_ADHOC_CHANNEL_5GHZ_DEFAULT,
2486 CFG_IBSS_ADHOC_CHANNEL_5GHZ_MIN,
2487 CFG_IBSS_ADHOC_CHANNEL_5GHZ_MAX),
2488
2489 REG_VARIABLE(CFG_IBSS_ADHOC_CHANNEL_24GHZ_NAME, WLAN_PARAM_Integer,
2490 struct hdd_config, AdHocChannel24G,
2491 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2492 CFG_IBSS_ADHOC_CHANNEL_24GHZ_DEFAULT,
2493 CFG_IBSS_ADHOC_CHANNEL_24GHZ_MIN,
2494 CFG_IBSS_ADHOC_CHANNEL_24GHZ_MAX),
2495
2496 REG_VARIABLE(CFG_VHT_SU_BEAMFORMEE_CAP_FEATURE, WLAN_PARAM_Integer,
2497 struct hdd_config, enableTxBF,
2498 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2499 CFG_VHT_SU_BEAMFORMEE_CAP_FEATURE_DEFAULT,
2500 CFG_VHT_SU_BEAMFORMEE_CAP_FEATURE_MIN,
2501 CFG_VHT_SU_BEAMFORMEE_CAP_FEATURE_MAX),
2502
Kiran Kumar Lokere5302ab62015-12-16 16:03:16 -08002503 REG_VARIABLE(CFG_VHT_ENABLE_TXBF_SAP_MODE, WLAN_PARAM_Integer,
2504 struct hdd_config, enable_txbf_sap_mode,
2505 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2506 CFG_VHT_ENABLE_TXBF_SAP_MODE_DEFAULT,
2507 CFG_VHT_ENABLE_TXBF_SAP_MODE_MIN,
2508 CFG_VHT_ENABLE_TXBF_SAP_MODE_MAX),
2509
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002510 REG_VARIABLE(CFG_VHT_ENABLE_TXBF_IN_20MHZ, WLAN_PARAM_Integer,
2511 struct hdd_config, enableTxBFin20MHz,
2512 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2513 CFG_VHT_ENABLE_TXBF_IN_20MHZ_DEFAULT,
2514 CFG_VHT_ENABLE_TXBF_IN_20MHZ_MIN,
2515 CFG_VHT_ENABLE_TXBF_IN_20MHZ_MAX),
2516
2517 REG_VARIABLE(CFG_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED, WLAN_PARAM_Integer,
2518 struct hdd_config, txBFCsnValue,
2519 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2520 CFG_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED_DEFAULT,
2521 CFG_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED_MIN,
2522 CFG_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED_MAX),
2523
2524 REG_VARIABLE(CFG_VHT_ENABLE_TX_SU_BEAM_FORMER, WLAN_PARAM_Integer,
2525 struct hdd_config, enable_su_tx_bformer,
2526 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2527 CFG_VHT_ENABLE_TX_SU_BEAM_FORMER_DEFAULT,
2528 CFG_VHT_ENABLE_TX_SU_BEAM_FORMER_MIN,
2529 CFG_VHT_ENABLE_TX_SU_BEAM_FORMER_MAX),
2530
2531 REG_VARIABLE(CFG_SAP_ALLOW_ALL_CHANNEL_PARAM_NAME, WLAN_PARAM_Integer,
2532 struct hdd_config, sapAllowAllChannel,
2533 VAR_FLAGS_OPTIONAL,
2534 CFG_SAP_ALLOW_ALL_CHANNEL_PARAM_DEFAULT,
2535 CFG_SAP_ALLOW_ALL_CHANNEL_PARAM_MIN,
2536 CFG_SAP_ALLOW_ALL_CHANNEL_PARAM_MAX),
2537
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002538 REG_VARIABLE(CFG_DISABLE_LDPC_WITH_TXBF_AP, WLAN_PARAM_Integer,
2539 struct hdd_config, disableLDPCWithTxbfAP,
2540 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2541 CFG_DISABLE_LDPC_WITH_TXBF_AP_DEFAULT,
2542 CFG_DISABLE_LDPC_WITH_TXBF_AP_MIN,
2543 CFG_DISABLE_LDPC_WITH_TXBF_AP_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002544
2545 REG_DYNAMIC_VARIABLE(CFG_ENABLE_SSR, WLAN_PARAM_Integer,
2546 struct hdd_config, enableSSR,
2547 VAR_FLAGS_OPTIONAL |
2548 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2549 CFG_ENABLE_SSR_DEFAULT,
2550 CFG_ENABLE_SSR_MIN,
2551 CFG_ENABLE_SSR_MAX,
2552 cb_notify_set_enable_ssr, 0),
2553
2554 REG_VARIABLE(CFG_MAX_MEDIUM_TIME, WLAN_PARAM_Integer,
2555 struct hdd_config, cfgMaxMediumTime,
2556 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2557 CFG_MAX_MEDIUM_TIME_STADEFAULT,
2558 CFG_MAX_MEDIUM_TIME_STAMIN,
2559 CFG_MAX_MEDIUM_TIME_STAMAX),
2560
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002561 REG_VARIABLE(CFG_ENABLE_VHT_FOR_24GHZ_NAME, WLAN_PARAM_Integer,
2562 struct hdd_config, enableVhtFor24GHzBand,
2563 VAR_FLAGS_OPTIONAL,
2564 CFG_ENABLE_VHT_FOR_24GHZ_DEFAULT,
2565 CFG_ENABLE_VHT_FOR_24GHZ_MIN,
2566 CFG_ENABLE_VHT_FOR_24GHZ_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002567
Kapil Gupta4b2efbb2016-10-03 13:07:20 +05302568
2569 REG_VARIABLE(CFG_ENABLE_VENDOR_VHT_FOR_24GHZ_NAME, WLAN_PARAM_Integer,
2570 struct hdd_config, enable_sap_vendor_vht,
2571 VAR_FLAGS_OPTIONAL,
2572 CFG_ENABLE_VENDOR_VHT_FOR_24GHZ_DEFAULT,
2573 CFG_ENABLE_VENDOR_VHT_FOR_24GHZ_MIN,
2574 CFG_ENABLE_VENDOR_VHT_FOR_24GHZ_MAX),
2575
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002576 REG_DYNAMIC_VARIABLE(CFG_ENABLE_FAST_ROAM_IN_CONCURRENCY,
2577 WLAN_PARAM_Integer,
2578 struct hdd_config, bFastRoamInConIniFeatureEnabled,
2579 VAR_FLAGS_OPTIONAL |
2580 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2581 CFG_ENABLE_FAST_ROAM_IN_CONCURRENCY_DEFAULT,
2582 CFG_ENABLE_FAST_ROAM_IN_CONCURRENCY_MIN,
2583 CFG_ENABLE_FAST_ROAM_IN_CONCURRENCY_MAX,
2584 cb_notify_set_enable_fast_roam_in_concurrency, 0),
2585
2586 REG_VARIABLE(CFG_ENABLE_ADAPT_RX_DRAIN_NAME, WLAN_PARAM_Integer,
2587 struct hdd_config, fEnableAdaptRxDrain,
2588 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2589 CFG_ENABLE_ADAPT_RX_DRAIN_DEFAULT,
2590 CFG_ENABLE_ADAPT_RX_DRAIN_MIN,
2591 CFG_ENABLE_ADAPT_RX_DRAIN_MAX),
2592
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002593 REG_VARIABLE(CFG_ENABLE_HEART_BEAT_OFFLOAD, WLAN_PARAM_Integer,
2594 struct hdd_config, enableIbssHeartBeatOffload,
2595 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2596 CFG_ENABLE_HEART_BEAT_OFFLOAD_DEFAULT,
2597 CFG_ENABLE_HEART_BEAT_OFFLOAD_MIN,
2598 CFG_ENABLE_HEART_BEAT_OFFLOAD_MAX),
2599
2600 REG_VARIABLE(CFG_ANTENNA_DIVERSITY_PARAM_NAME, WLAN_PARAM_Integer,
2601 struct hdd_config, antennaDiversity,
2602 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2603 CFG_ANTENNA_DIVERSITY_PARAM_DEFAULT,
2604 CFG_ANTENNA_DIVERSITY_PARAM_MIN,
2605 CFG_ANTENNA_DIVERSITY_PARAM_MAX),
2606
2607 REG_VARIABLE(CFG_ENABLE_SNR_MONITORING_NAME, WLAN_PARAM_Integer,
2608 struct hdd_config, fEnableSNRMonitoring,
2609 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2610 CFG_ENABLE_SNR_MONITORING_DEFAULT,
2611 CFG_ENABLE_SNR_MONITORING_MIN,
2612 CFG_ENABLE_SNR_MONITORING_MAX),
2613
2614#ifdef FEATURE_WLAN_SCAN_PNO
2615 REG_VARIABLE(CFG_PNO_SCAN_SUPPORT, WLAN_PARAM_Integer,
2616 struct hdd_config, configPNOScanSupport,
2617 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2618 CFG_PNO_SCAN_SUPPORT_DEFAULT,
2619 CFG_PNO_SCAN_SUPPORT_DISABLE,
2620 CFG_PNO_SCAN_SUPPORT_ENABLE),
2621
2622 REG_VARIABLE(CFG_PNO_SCAN_TIMER_REPEAT_VALUE, WLAN_PARAM_Integer,
2623 struct hdd_config, configPNOScanTimerRepeatValue,
2624 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2625 CFG_PNO_SCAN_TIMER_REPEAT_VALUE_DEFAULT,
2626 CFG_PNO_SCAN_TIMER_REPEAT_VALUE_MIN,
2627 CFG_PNO_SCAN_TIMER_REPEAT_VALUE_MAX),
Srinivas Girigowdabdc98162015-09-17 11:06:07 -07002628
2629 REG_VARIABLE(CFG_PNO_SLOW_SCAN_MULTIPLIER, WLAN_PARAM_Integer,
2630 struct hdd_config, pno_slow_scan_multiplier,
2631 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2632 CFG_PNO_SLOW_SCAN_MULTIPLIER_DEFAULT,
2633 CFG_PNO_SLOW_SCAN_MULTIPLIER_MIN,
2634 CFG_PNO_SLOW_SCAN_MULTIPLIER_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002635#endif
Deepak Dhamdhere612392c2016-08-28 02:56:51 -07002636 REG_VARIABLE(CFG_MAX_AMSDU_NUM_NAME , WLAN_PARAM_Integer,
2637 struct hdd_config, max_amsdu_num,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002638 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
Deepak Dhamdhere612392c2016-08-28 02:56:51 -07002639 CFG_MAX_AMSDU_NUM_DEFAULT,
2640 CFG_MAX_AMSDU_NUM_MIN,
2641 CFG_MAX_AMSDU_NUM_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002642
2643 REG_VARIABLE(CFG_STRICT_5GHZ_PREF_BY_MARGIN, WLAN_PARAM_Integer,
2644 struct hdd_config, nSelect5GHzMargin,
2645 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2646 CFG_STRICT_5GHZ_PREF_BY_MARGIN_DEFAULT,
2647 CFG_STRICT_5GHZ_PREF_BY_MARGIN_MIN,
2648 CFG_STRICT_5GHZ_PREF_BY_MARGIN_MAX),
2649
2650 REG_VARIABLE(CFG_ENABLE_IP_TCP_UDP_CHKSUM_OFFLOAD, WLAN_PARAM_Integer,
2651 struct hdd_config, enable_ip_tcp_udp_checksum_offload,
2652 VAR_FLAGS_OPTIONAL,
2653 CFG_ENABLE_IP_TCP_UDP_CHKSUM_OFFLOAD_DEFAULT,
2654 CFG_ENABLE_IP_TCP_UDP_CHKSUM_OFFLOAD_DISABLE,
2655 CFG_ENABLE_IP_TCP_UDP_CHKSUM_OFFLOAD_ENABLE),
2656
2657 REG_VARIABLE(CFG_POWERSAVE_OFFLOAD_NAME, WLAN_PARAM_Integer,
2658 struct hdd_config, enablePowersaveOffload,
2659 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2660 CFG_POWERSAVE_OFFLOAD_DEFAULT,
2661 CFG_POWERSAVE_OFFLOAD_MIN,
2662 CFG_POWERSAVE_OFFLOAD_MAX),
2663
2664 REG_VARIABLE(CFG_ENABLE_FW_UART_PRINT_NAME, WLAN_PARAM_Integer,
2665 struct hdd_config, enablefwprint,
2666 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2667 CFG_ENABLE_FW_UART_PRINT_DEFAULT,
2668 CFG_ENABLE_FW_UART_PRINT_DISABLE,
2669 CFG_ENABLE_FW_UART_PRINT_ENABLE),
2670
2671 REG_VARIABLE(CFG_ENABLE_FW_LOG_NAME, WLAN_PARAM_Integer,
Komal Seelamc11bb222016-01-27 18:57:10 +05302672 struct hdd_config, enable_fw_log,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002673 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2674 CFG_ENABLE_FW_LOG_DEFAULT,
2675 CFG_ENABLE_FW_LOG_DISABLE,
Yuanyuan Liu7a97b8f2017-01-27 10:42:52 -08002676 CFG_ENABLE_FW_LOG_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002677
2678#ifdef IPA_OFFLOAD
2679 REG_VARIABLE(CFG_IPA_OFFLOAD_CONFIG_NAME, WLAN_PARAM_HexInteger,
2680 struct hdd_config, IpaConfig,
2681 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2682 CFG_IPA_OFFLOAD_CONFIG_DEFAULT,
2683 CFG_IPA_OFFLOAD_CONFIG_MIN,
2684 CFG_IPA_OFFLOAD_CONFIG_MAX),
2685
2686 REG_VARIABLE(CFG_IPA_DESC_SIZE_NAME, WLAN_PARAM_Integer,
2687 struct hdd_config, IpaDescSize,
2688 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2689 CFG_IPA_DESC_SIZE_DEFAULT,
2690 CFG_IPA_DESC_SIZE_MIN,
2691 CFG_IPA_DESC_SIZE_MAX),
2692
2693 REG_VARIABLE(CFG_IPA_HIGH_BANDWIDTH_MBPS, WLAN_PARAM_Integer,
2694 struct hdd_config, IpaHighBandwidthMbps,
2695 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2696 CFG_IPA_HIGH_BANDWIDTH_MBPS_DEFAULT,
2697 CFG_IPA_HIGH_BANDWIDTH_MBPS_MIN,
2698 CFG_IPA_HIGH_BANDWIDTH_MBPS_MAX),
2699
2700 REG_VARIABLE(CFG_IPA_MEDIUM_BANDWIDTH_MBPS, WLAN_PARAM_Integer,
2701 struct hdd_config, IpaMediumBandwidthMbps,
2702 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2703 CFG_IPA_MEDIUM_BANDWIDTH_MBPS_DEFAULT,
2704 CFG_IPA_MEDIUM_BANDWIDTH_MBPS_MIN,
2705 CFG_IPA_MEDIUM_BANDWIDTH_MBPS_MAX),
2706
2707 REG_VARIABLE(CFG_IPA_LOW_BANDWIDTH_MBPS, WLAN_PARAM_Integer,
2708 struct hdd_config, IpaLowBandwidthMbps,
2709 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2710 CFG_IPA_LOW_BANDWIDTH_MBPS_DEFAULT,
2711 CFG_IPA_LOW_BANDWIDTH_MBPS_MIN,
2712 CFG_IPA_LOW_BANDWIDTH_MBPS_MAX),
jiad14fe4fb2017-08-08 13:33:14 +08002713
2714 REG_VARIABLE(CFG_IPA_MCC_TX_DESC_SIZE, WLAN_PARAM_Integer,
2715 struct hdd_config, IpaMccTxDescSize,
2716 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2717 CFG_IPA_MCC_TX_DESC_SIZE_DEFAULT,
2718 CFG_IPA_MCC_TX_DESC_SIZE_MIN,
2719 CFG_IPA_MCC_TX_DESC_SIZE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002720#endif
2721
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002722 REG_VARIABLE(CFG_VHT_AMPDU_LEN_EXPONENT_NAME, WLAN_PARAM_Integer,
2723 struct hdd_config, fVhtAmpduLenExponent,
2724 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2725 CFG_VHT_AMPDU_LEN_EXPONENT_DEFAULT,
2726 CFG_VHT_AMPDU_LEN_EXPONENT_MIN,
2727 CFG_VHT_AMPDU_LEN_EXPONENT_MAX),
2728
2729 REG_VARIABLE(CFG_VHT_MPDU_LEN_NAME, WLAN_PARAM_Integer,
2730 struct hdd_config, vhtMpduLen,
2731 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2732 CFG_VHT_MPDU_LEN_DEFAULT,
2733 CFG_VHT_MPDU_LEN_MIN,
2734 CFG_VHT_MPDU_LEN_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002735
2736 REG_VARIABLE(CFG_MAX_WOW_FILTERS_NAME, WLAN_PARAM_Integer,
2737 struct hdd_config, maxWoWFilters,
2738 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2739 CFG_MAX_WOW_FILTERS_DEFAULT,
2740 CFG_MAX_WOW_FILTERS_MIN,
2741 CFG_MAX_WOW_FILTERS_MAX),
2742
2743 REG_VARIABLE(CFG_WOW_STATUS_NAME, WLAN_PARAM_Integer,
2744 struct hdd_config, wowEnable,
2745 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2746 CFG_WOW_STATUS_DEFAULT,
2747 CFG_WOW_ENABLE_MIN,
2748 CFG_WOW_ENABLE_MAX),
2749
2750 REG_VARIABLE(CFG_COALESING_IN_IBSS_NAME, WLAN_PARAM_Integer,
2751 struct hdd_config, isCoalesingInIBSSAllowed,
2752 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2753 CFG_COALESING_IN_IBSS_DEFAULT,
2754 CFG_COALESING_IN_IBSS_MIN,
2755 CFG_COALESING_IN_IBSS_MAX),
2756
2757 REG_VARIABLE(CFG_IBSS_ATIM_WIN_SIZE_NAME, WLAN_PARAM_Integer,
2758 struct hdd_config, ibssATIMWinSize,
2759 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2760 CFG_IBSS_ATIM_WIN_SIZE_DEFAULT,
2761 CFG_IBSS_ATIM_WIN_SIZE_MIN,
2762 CFG_IBSS_ATIM_WIN_SIZE_MAX),
2763
2764 REG_VARIABLE(CFG_SAP_MAX_NO_PEERS, WLAN_PARAM_Integer,
2765 struct hdd_config, maxNumberOfPeers,
2766 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2767 CFG_SAP_MAX_NO_PEERS_DEFAULT,
2768 CFG_SAP_MAX_NO_PEERS_MIN,
2769 CFG_SAP_MAX_NO_PEERS_MAX),
2770
2771 REG_VARIABLE(CFG_IBSS_IS_POWER_SAVE_ALLOWED_NAME, WLAN_PARAM_Integer,
2772 struct hdd_config, isIbssPowerSaveAllowed,
2773 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2774 CFG_IBSS_IS_POWER_SAVE_ALLOWED_DEFAULT,
2775 CFG_IBSS_IS_POWER_SAVE_ALLOWED_MIN,
2776 CFG_IBSS_IS_POWER_SAVE_ALLOWED_MAX),
2777
2778 REG_VARIABLE(CFG_IBSS_IS_POWER_COLLAPSE_ALLOWED_NAME,
2779 WLAN_PARAM_Integer,
2780 struct hdd_config, isIbssPowerCollapseAllowed,
2781 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2782 CFG_IBSS_IS_POWER_COLLAPSE_ALLOWED_DEFAULT,
2783 CFG_IBSS_IS_POWER_COLLAPSE_ALLOWED_MIN,
2784 CFG_IBSS_IS_POWER_COLLAPSE_ALLOWED_MAX),
2785
2786 REG_VARIABLE(CFG_IBSS_AWAKE_ON_TX_RX_NAME, WLAN_PARAM_Integer,
2787 struct hdd_config, isIbssAwakeOnTxRx,
2788 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2789 CFG_IBSS_AWAKE_ON_TX_RX_DEFAULT,
2790 CFG_IBSS_AWAKE_ON_TX_RX_MIN,
2791 CFG_IBSS_AWAKE_ON_TX_RX_MAX),
2792
2793 REG_VARIABLE(CFG_IBSS_INACTIVITY_TIME_NAME, WLAN_PARAM_Integer,
2794 struct hdd_config, ibssInactivityCount,
2795 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2796 CFG_IBSS_INACTIVITY_TIME_DEFAULT,
2797 CFG_IBSS_INACTIVITY_TIME_MIN,
2798 CFG_IBSS_INACTIVITY_TIME_MAX),
2799
2800 REG_VARIABLE(CFG_IBSS_TXSP_END_INACTIVITY_NAME, WLAN_PARAM_Integer,
2801 struct hdd_config, ibssTxSpEndInactivityTime,
2802 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2803 CFG_IBSS_TXSP_END_INACTIVITY_DEFAULT,
2804 CFG_IBSS_TXSP_END_INACTIVITY_MIN,
2805 CFG_IBSS_TXSP_END_INACTIVITY_MAX),
2806
2807 REG_VARIABLE(CFG_IBSS_PS_WARMUP_TIME_NAME, WLAN_PARAM_Integer,
2808 struct hdd_config, ibssPsWarmupTime,
2809 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2810 CFG_IBSS_PS_WARMUP_TIME_DEFAULT,
2811 CFG_IBSS_PS_WARMUP_TIME_MIN,
2812 CFG_IBSS_PS_WARMUP_TIME_MAX),
2813
2814 REG_VARIABLE(CFG_IBSS_PS_1RX_CHAIN_IN_ATIM_WINDOW_NAME,
2815 WLAN_PARAM_Integer,
2816 struct hdd_config, ibssPs1RxChainInAtimEnable,
2817 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2818 CFG_IBSS_PS_1RX_CHAIN_IN_ATIM_WINDOW_DEFAULT,
2819 CFG_IBSS_PS_1RX_CHAIN_IN_ATIM_WINDOW_MIN,
2820 CFG_IBSS_PS_1RX_CHAIN_IN_ATIM_WINDOW_MAX),
2821
2822 REG_VARIABLE(CFG_THERMAL_TEMP_MIN_LEVEL0_NAME, WLAN_PARAM_Integer,
2823 struct hdd_config, thermalTempMinLevel0,
2824 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2825 CFG_THERMAL_TEMP_MIN_LEVEL0_DEFAULT,
2826 CFG_THERMAL_TEMP_MIN_LEVEL0_MIN,
2827 CFG_THERMAL_TEMP_MIN_LEVEL0_MAX),
2828
2829 REG_VARIABLE(CFG_THERMAL_TEMP_MAX_LEVEL0_NAME, WLAN_PARAM_Integer,
2830 struct hdd_config, thermalTempMaxLevel0,
2831 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2832 CFG_THERMAL_TEMP_MAX_LEVEL0_DEFAULT,
2833 CFG_THERMAL_TEMP_MAX_LEVEL0_MIN,
2834 CFG_THERMAL_TEMP_MAX_LEVEL0_MAX),
2835
2836 REG_VARIABLE(CFG_THERMAL_TEMP_MIN_LEVEL1_NAME, WLAN_PARAM_Integer,
2837 struct hdd_config, thermalTempMinLevel1,
2838 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2839 CFG_THERMAL_TEMP_MIN_LEVEL1_DEFAULT,
2840 CFG_THERMAL_TEMP_MIN_LEVEL1_MIN,
2841 CFG_THERMAL_TEMP_MIN_LEVEL1_MAX),
2842
2843 REG_VARIABLE(CFG_THERMAL_TEMP_MAX_LEVEL1_NAME, WLAN_PARAM_Integer,
2844 struct hdd_config, thermalTempMaxLevel1,
2845 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2846 CFG_THERMAL_TEMP_MAX_LEVEL1_DEFAULT,
2847 CFG_THERMAL_TEMP_MAX_LEVEL1_MIN,
2848 CFG_THERMAL_TEMP_MAX_LEVEL1_MAX),
2849
2850 REG_VARIABLE(CFG_THERMAL_TEMP_MIN_LEVEL2_NAME, WLAN_PARAM_Integer,
2851 struct hdd_config, thermalTempMinLevel2,
2852 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2853 CFG_THERMAL_TEMP_MIN_LEVEL2_DEFAULT,
2854 CFG_THERMAL_TEMP_MIN_LEVEL2_MIN,
2855 CFG_THERMAL_TEMP_MIN_LEVEL2_MAX),
2856
2857 REG_VARIABLE(CFG_THERMAL_TEMP_MAX_LEVEL2_NAME, WLAN_PARAM_Integer,
2858 struct hdd_config, thermalTempMaxLevel2,
2859 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2860 CFG_THERMAL_TEMP_MAX_LEVEL2_DEFAULT,
2861 CFG_THERMAL_TEMP_MAX_LEVEL2_MIN,
2862 CFG_THERMAL_TEMP_MAX_LEVEL2_MAX),
2863
2864 REG_VARIABLE(CFG_THERMAL_TEMP_MIN_LEVEL3_NAME, WLAN_PARAM_Integer,
2865 struct hdd_config, thermalTempMinLevel3,
2866 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2867 CFG_THERMAL_TEMP_MIN_LEVEL3_DEFAULT,
2868 CFG_THERMAL_TEMP_MIN_LEVEL3_MIN,
2869 CFG_THERMAL_TEMP_MIN_LEVEL3_MAX),
2870
2871 REG_VARIABLE(CFG_THERMAL_TEMP_MAX_LEVEL3_NAME, WLAN_PARAM_Integer,
2872 struct hdd_config, thermalTempMaxLevel3,
2873 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2874 CFG_THERMAL_TEMP_MAX_LEVEL3_DEFAULT,
2875 CFG_THERMAL_TEMP_MAX_LEVEL3_MIN,
2876 CFG_THERMAL_TEMP_MAX_LEVEL3_MAX),
2877
2878 REG_VARIABLE(CFG_SET_TXPOWER_LIMIT2G_NAME, WLAN_PARAM_Integer,
2879 struct hdd_config, TxPower2g,
2880 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2881 CFG_SET_TXPOWER_LIMIT2G_DEFAULT,
2882 CFG_SET_TXPOWER_LIMIT2G_MIN,
2883 CFG_SET_TXPOWER_LIMIT2G_MAX),
2884
2885 REG_VARIABLE(CFG_SET_TXPOWER_LIMIT5G_NAME, WLAN_PARAM_Integer,
2886 struct hdd_config, TxPower5g,
2887 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2888 CFG_SET_TXPOWER_LIMIT5G_DEFAULT,
2889 CFG_SET_TXPOWER_LIMIT5G_MIN,
2890 CFG_SET_TXPOWER_LIMIT5G_MAX),
2891
2892 REG_VARIABLE(CFG_ENABLE_DEBUG_CONNECT_ISSUE, WLAN_PARAM_Integer,
2893 struct hdd_config, gEnableDebugLog,
2894 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2895 CFG_ENABLE_DEBUG_CONNECT_ISSUE_DEFAULT,
2896 CFG_ENABLE_DEBUG_CONNECT_ISSUE_MIN,
2897 CFG_ENABLE_DEBUG_CONNECT_ISSUE_MAX),
2898
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002899 REG_VARIABLE(CFG_ENABLE_DFS_PHYERR_FILTEROFFLOAD_NAME,
2900 WLAN_PARAM_Integer,
2901 struct hdd_config, fDfsPhyerrFilterOffload,
2902 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2903 CFG_ENABLE_DFS_PHYERR_FILTEROFFLOAD_DEFAULT,
2904 CFG_ENABLE_DFS_PHYERR_FILTEROFFLOAD_MIN,
2905 CFG_ENABLE_DFS_PHYERR_FILTEROFFLOAD_MAX),
2906
2907 REG_VARIABLE(CFG_ENABLE_OVERLAP_CH, WLAN_PARAM_Integer,
2908 struct hdd_config, gEnableOverLapCh,
2909 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2910 CFG_ENABLE_OVERLAP_CH_DEFAULT,
2911 CFG_ENABLE_OVERLAP_CH_MIN,
2912 CFG_ENABLE_OVERLAP_CH_MAX),
2913
2914 REG_VARIABLE(CFG_REG_CHANGE_DEF_COUNTRY_NAME, WLAN_PARAM_Integer,
2915 struct hdd_config, fRegChangeDefCountry,
2916 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2917 CFG_REG_CHANGE_DEF_COUNTRY_DEFAULT,
2918 CFG_REG_CHANGE_DEF_COUNTRY_MIN,
2919 CFG_REG_CHANGE_DEF_COUNTRY_MAX),
2920
gaoleze5108942017-03-31 16:56:42 +08002921 REG_VARIABLE(CFG_ACS_WITH_MORE_PARAM_NAME, WLAN_PARAM_Integer,
2922 struct hdd_config, acs_with_more_param,
2923 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2924 CFG_ACS_WITH_MORE_PARAM_DEFAULT,
2925 CFG_ACS_WITH_MORE_PARAM_MIN,
2926 CFG_ACS_WITH_MORE_PARAM_MAX),
2927
2928 REG_VARIABLE(CFG_AUTO_CHANNEL_SELECT_WEIGHT, WLAN_PARAM_HexInteger,
2929 struct hdd_config, auto_channel_select_weight,
2930 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2931 CFG_AUTO_CHANNEL_SELECT_WEIGHT_DEFAULT,
2932 CFG_AUTO_CHANNEL_SELECT_WEIGHT_MIN,
2933 CFG_AUTO_CHANNEL_SELECT_WEIGHT_MAX),
2934
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002935#ifdef QCA_LL_LEGACY_TX_FLOW_CONTROL
2936 REG_VARIABLE(CFG_LL_TX_FLOW_LWM, WLAN_PARAM_Integer,
2937 struct hdd_config, TxFlowLowWaterMark,
2938 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2939 CFG_LL_TX_FLOW_LWM_DEFAULT,
2940 CFG_LL_TX_FLOW_LWM_MIN,
2941 CFG_LL_TX_FLOW_LWM_MAX),
2942 REG_VARIABLE(CFG_LL_TX_FLOW_HWM_OFFSET, WLAN_PARAM_Integer,
2943 struct hdd_config, TxFlowHighWaterMarkOffset,
2944 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2945 CFG_LL_TX_FLOW_HWM_OFFSET_DEFAULT,
2946 CFG_LL_TX_FLOW_HWM_OFFSET_MIN,
2947 CFG_LL_TX_FLOW_HWM_OFFSET_MAX),
2948 REG_VARIABLE(CFG_LL_TX_FLOW_MAX_Q_DEPTH, WLAN_PARAM_Integer,
2949 struct hdd_config, TxFlowMaxQueueDepth,
2950 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2951 CFG_LL_TX_FLOW_MAX_Q_DEPTH_DEFAULT,
2952 CFG_LL_TX_FLOW_MAX_Q_DEPTH_MIN,
2953 CFG_LL_TX_FLOW_MAX_Q_DEPTH_MAX),
2954 REG_VARIABLE(CFG_LL_TX_LBW_FLOW_LWM, WLAN_PARAM_Integer,
2955 struct hdd_config, TxLbwFlowLowWaterMark,
2956 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2957 CFG_LL_TX_LBW_FLOW_LWM_DEFAULT,
2958 CFG_LL_TX_LBW_FLOW_LWM_MIN,
2959 CFG_LL_TX_LBW_FLOW_LWM_MAX),
2960
2961 REG_VARIABLE(CFG_LL_TX_LBW_FLOW_HWM_OFFSET, WLAN_PARAM_Integer,
2962 struct hdd_config, TxLbwFlowHighWaterMarkOffset,
2963 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2964 CFG_LL_TX_LBW_FLOW_HWM_OFFSET_DEFAULT,
2965 CFG_LL_TX_LBW_FLOW_HWM_OFFSET_MIN,
2966 CFG_LL_TX_LBW_FLOW_HWM_OFFSET_MAX),
2967
2968 REG_VARIABLE(CFG_LL_TX_LBW_FLOW_MAX_Q_DEPTH, WLAN_PARAM_Integer,
2969 struct hdd_config, TxLbwFlowMaxQueueDepth,
2970 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2971 CFG_LL_TX_LBW_FLOW_MAX_Q_DEPTH_DEFAULT,
2972 CFG_LL_TX_LBW_FLOW_MAX_Q_DEPTH_MIN,
2973 CFG_LL_TX_LBW_FLOW_MAX_Q_DEPTH_MAX),
2974
2975 REG_VARIABLE(CFG_LL_TX_HBW_FLOW_LWM, WLAN_PARAM_Integer,
2976 struct hdd_config, TxHbwFlowLowWaterMark,
2977 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2978 CFG_LL_TX_HBW_FLOW_LWM_DEFAULT,
2979 CFG_LL_TX_HBW_FLOW_LWM_MIN,
2980 CFG_LL_TX_HBW_FLOW_LWM_MAX),
2981
2982 REG_VARIABLE(CFG_LL_TX_HBW_FLOW_HWM_OFFSET, WLAN_PARAM_Integer,
2983 struct hdd_config, TxHbwFlowHighWaterMarkOffset,
2984 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2985 CFG_LL_TX_HBW_FLOW_HWM_OFFSET_DEFAULT,
2986 CFG_LL_TX_HBW_FLOW_HWM_OFFSET_MIN,
2987 CFG_LL_TX_HBW_FLOW_HWM_OFFSET_MAX),
2988
2989 REG_VARIABLE(CFG_LL_TX_HBW_FLOW_MAX_Q_DEPTH, WLAN_PARAM_Integer,
2990 struct hdd_config, TxHbwFlowMaxQueueDepth,
2991 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2992 CFG_LL_TX_HBW_FLOW_MAX_Q_DEPTH_DEFAULT,
2993 CFG_LL_TX_HBW_FLOW_MAX_Q_DEPTH_MIN,
2994 CFG_LL_TX_HBW_FLOW_MAX_Q_DEPTH_MAX),
2995#endif /* QCA_LL_LEGACY_TX_FLOW_CONTROL */
2996#ifdef QCA_LL_TX_FLOW_CONTROL_V2
2997
2998 REG_VARIABLE(CFG_LL_TX_FLOW_STOP_QUEUE_TH, WLAN_PARAM_Integer,
2999 struct hdd_config, TxFlowStopQueueThreshold,
3000 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3001 CFG_LL_TX_FLOW_STOP_QUEUE_TH_DEFAULT,
3002 CFG_LL_TX_FLOW_STOP_QUEUE_TH_MIN,
3003 CFG_LL_TX_FLOW_STOP_QUEUE_TH_MAX),
3004
3005 REG_VARIABLE(CFG_LL_TX_FLOW_START_QUEUE_OFFSET, WLAN_PARAM_Integer,
3006 struct hdd_config, TxFlowStartQueueOffset,
3007 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3008 CFG_LL_TX_FLOW_START_QUEUE_OFFSET_DEFAULT,
3009 CFG_LL_TX_FLOW_START_QUEUE_OFFSET_MIN,
3010 CFG_LL_TX_FLOW_START_QUEUE_OFFSET_MAX),
3011
3012#endif
3013 REG_VARIABLE(CFG_INITIAL_DWELL_TIME_NAME, WLAN_PARAM_Integer,
3014 struct hdd_config, nInitialDwellTime,
3015 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3016 CFG_INITIAL_DWELL_TIME_DEFAULT,
3017 CFG_INITIAL_DWELL_TIME_MIN,
3018 CFG_INITIAL_DWELL_TIME_MAX),
3019
3020 REG_VARIABLE(CFG_INITIAL_SCAN_NO_DFS_CHNL_NAME, WLAN_PARAM_Integer,
3021 struct hdd_config, initial_scan_no_dfs_chnl,
3022 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3023 CFG_INITIAL_SCAN_NO_DFS_CHNL_DEFAULT,
3024 CFG_INITIAL_SCAN_NO_DFS_CHNL_MIN,
3025 CFG_INITIAL_SCAN_NO_DFS_CHNL_MAX),
3026
3027 REG_VARIABLE(CFG_SAP_MAX_OFFLOAD_PEERS, WLAN_PARAM_Integer,
3028 struct hdd_config, apMaxOffloadPeers,
3029 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
3030 CFG_SAP_MAX_OFFLOAD_PEERS_DEFAULT,
3031 CFG_SAP_MAX_OFFLOAD_PEERS_MIN,
3032 CFG_SAP_MAX_OFFLOAD_PEERS_MAX),
3033
3034 REG_VARIABLE(CFG_SAP_MAX_OFFLOAD_REORDER_BUFFS, WLAN_PARAM_Integer,
3035 struct hdd_config, apMaxOffloadReorderBuffs,
3036 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
3037 CFG_SAP_MAX_OFFLOAD_REORDER_BUFFS_DEFAULT,
3038 CFG_SAP_MAX_OFFLOAD_REORDER_BUFFS_MIN,
3039 CFG_SAP_MAX_OFFLOAD_REORDER_BUFFS_MAX),
3040
3041 REG_VARIABLE(CFG_ADVERTISE_CONCURRENT_OPERATION_NAME,
3042 WLAN_PARAM_Integer,
3043 struct hdd_config, advertiseConcurrentOperation,
3044 VAR_FLAGS_OPTIONAL,
3045 CFG_ADVERTISE_CONCURRENT_OPERATION_DEFAULT,
3046 CFG_ADVERTISE_CONCURRENT_OPERATION_MIN,
3047 CFG_ADVERTISE_CONCURRENT_OPERATION_MAX),
3048
3049 REG_VARIABLE(CFG_ENABLE_MEMORY_DEEP_SLEEP, WLAN_PARAM_Integer,
3050 struct hdd_config, enableMemDeepSleep,
3051 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3052 CFG_ENABLE_MEMORY_DEEP_SLEEP_DEFAULT,
3053 CFG_ENABLE_MEMORY_DEEP_SLEEP_MIN,
3054 CFG_ENABLE_MEMORY_DEEP_SLEEP_MAX),
3055
Dustin Brown732ab9c2017-06-15 13:24:09 -07003056 REG_VARIABLE(CFG_ENABLE_CCK_TX_FIR_OVERRIDE_NAME, WLAN_PARAM_Integer,
3057 struct hdd_config, enable_cck_tx_fir_override,
3058 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3059 CFG_ENABLE_CCK_TX_FIR_OVERRIDE_DEFAULT,
3060 CFG_ENABLE_CCK_TX_FIR_OVERRIDE_MIN,
3061 CFG_ENABLE_CCK_TX_FIR_OVERRIDE_MAX),
3062
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003063 REG_VARIABLE(CFG_DEFAULT_RATE_INDEX_24GH, WLAN_PARAM_Integer,
3064 struct hdd_config, defaultRateIndex24Ghz,
3065 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3066 CFG_DEFAULT_RATE_INDEX_24GH_DEFAULT,
3067 CFG_DEFAULT_RATE_INDEX_24GH_MIN,
3068 CFG_DEFAULT_RATE_INDEX_24GH_MAX),
3069
3070#ifdef MEMORY_DEBUG
3071 REG_VARIABLE(CFG_ENABLE_MEMORY_DEBUG_NAME, WLAN_PARAM_Integer,
3072 struct hdd_config, IsMemoryDebugSupportEnabled,
3073 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3074 CFG_ENABLE_MEMORY_DEBUG_DEFAULT,
3075 CFG_ENABLE_MEMORY_DEBUG_MIN,
3076 CFG_ENABLE_MEMORY_DEBUG_MAX),
3077#endif
3078
3079 REG_VARIABLE(CFG_DEBUG_P2P_REMAIN_ON_CHANNEL_NAME, WLAN_PARAM_Integer,
3080 struct hdd_config, debugP2pRemainOnChannel,
3081 VAR_FLAGS_OPTIONAL,
3082 CFG_DEBUG_P2P_REMAIN_ON_CHANNEL_DEFAULT,
3083 CFG_DEBUG_P2P_REMAIN_ON_CHANNEL_MIN,
3084 CFG_DEBUG_P2P_REMAIN_ON_CHANNEL_MAX),
3085
3086 REG_VARIABLE(CFG_ENABLE_PACKET_LOG, WLAN_PARAM_Integer,
3087 struct hdd_config, enablePacketLog,
3088 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3089 CFG_ENABLE_PACKET_LOG_DEFAULT,
3090 CFG_ENABLE_PACKET_LOG_MIN,
3091 CFG_ENABLE_PACKET_LOG_MAX),
3092
3093#ifdef WLAN_FEATURE_ROAM_OFFLOAD
3094 REG_VARIABLE(CFG_ROAMING_OFFLOAD_NAME, WLAN_PARAM_Integer,
3095 struct hdd_config, isRoamOffloadEnabled,
3096 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
3097 CFG_ROAMING_OFFLOAD_DEFAULT,
3098 CFG_ROAMING_OFFLOAD_MIN,
3099 CFG_ROAMING_OFFLOAD_MAX),
3100#endif
3101#ifdef MSM_PLATFORM
3102 REG_VARIABLE(CFG_BUS_BANDWIDTH_HIGH_THRESHOLD, WLAN_PARAM_Integer,
3103 struct hdd_config, busBandwidthHighThreshold,
3104 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3105 CFG_BUS_BANDWIDTH_HIGH_THRESHOLD_DEFAULT,
3106 CFG_BUS_BANDWIDTH_HIGH_THRESHOLD_MIN,
3107 CFG_BUS_BANDWIDTH_HIGH_THRESHOLD_MAX),
3108
3109 REG_VARIABLE(CFG_BUS_BANDWIDTH_MEDIUM_THRESHOLD, WLAN_PARAM_Integer,
3110 struct hdd_config, busBandwidthMediumThreshold,
3111 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3112 CFG_BUS_BANDWIDTH_MEDIUM_THRESHOLD_DEFAULT,
3113 CFG_BUS_BANDWIDTH_MEDIUM_THRESHOLD_MIN,
3114 CFG_BUS_BANDWIDTH_MEDIUM_THRESHOLD_MAX),
3115
3116 REG_VARIABLE(CFG_BUS_BANDWIDTH_LOW_THRESHOLD, WLAN_PARAM_Integer,
3117 struct hdd_config, busBandwidthLowThreshold,
3118 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3119 CFG_BUS_BANDWIDTH_LOW_THRESHOLD_DEFAULT,
3120 CFG_BUS_BANDWIDTH_LOW_THRESHOLD_MIN,
3121 CFG_BUS_BANDWIDTH_LOW_THRESHOLD_MAX),
3122
3123 REG_VARIABLE(CFG_BUS_BANDWIDTH_COMPUTE_INTERVAL, WLAN_PARAM_Integer,
3124 struct hdd_config, busBandwidthComputeInterval,
3125 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3126 CFG_BUS_BANDWIDTH_COMPUTE_INTERVAL_DEFAULT,
3127 CFG_BUS_BANDWIDTH_COMPUTE_INTERVAL_MIN,
3128 CFG_BUS_BANDWIDTH_COMPUTE_INTERVAL_MAX),
Ravi Joshie2331e82015-07-01 18:18:54 -07003129
3130 REG_VARIABLE(CFG_ENABLE_TCP_DELACK, WLAN_PARAM_Integer,
3131 struct hdd_config, enable_tcp_delack,
3132 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3133 CFG_ENABLE_TCP_DELACK_DEFAULT,
3134 CFG_ENABLE_TCP_DELACK_MIN,
3135 CFG_ENABLE_TCP_DELACK_MAX),
3136
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003137 REG_VARIABLE(CFG_TCP_DELACK_THRESHOLD_HIGH, WLAN_PARAM_Integer,
3138 struct hdd_config, tcpDelackThresholdHigh,
3139 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3140 CFG_TCP_DELACK_THRESHOLD_HIGH_DEFAULT,
3141 CFG_TCP_DELACK_THRESHOLD_HIGH_MIN,
3142 CFG_TCP_DELACK_THRESHOLD_HIGH_MAX),
Ravi Joshie2331e82015-07-01 18:18:54 -07003143
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003144 REG_VARIABLE(CFG_TCP_DELACK_THRESHOLD_LOW, WLAN_PARAM_Integer,
3145 struct hdd_config, tcpDelackThresholdLow,
3146 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3147 CFG_TCP_DELACK_THRESHOLD_LOW_DEFAULT,
3148 CFG_TCP_DELACK_THRESHOLD_LOW_MIN,
3149 CFG_TCP_DELACK_THRESHOLD_LOW_MAX),
Mohit Khannae71e2262015-11-10 09:37:24 -08003150
Ravi Joshib89e7f72016-09-07 13:43:15 -07003151 REG_VARIABLE(CFG_TCP_DELACK_TIMER_COUNT, WLAN_PARAM_Integer,
3152 struct hdd_config, tcp_delack_timer_count,
3153 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3154 CFG_TCP_DELACK_TIMER_COUNT_DEFAULT,
3155 CFG_TCP_DELACK_TIMER_COUNT_MIN,
3156 CFG_TCP_DELACK_TIMER_COUNT_MAX),
Mohit Khannae71e2262015-11-10 09:37:24 -08003157
Ravi Joshib89e7f72016-09-07 13:43:15 -07003158 REG_VARIABLE(CFG_TCP_TX_HIGH_TPUT_THRESHOLD_NAME, WLAN_PARAM_Integer,
3159 struct hdd_config, tcp_tx_high_tput_thres,
3160 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3161 CFG_TCP_TX_HIGH_TPUT_THRESHOLD_DEFAULT,
3162 CFG_TCP_TX_HIGH_TPUT_THRESHOLD_MIN,
3163 CFG_TCP_TX_HIGH_TPUT_THRESHOLD_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003164#endif
3165
3166 REG_VARIABLE(CFG_ENABLE_FW_LOG_TYPE, WLAN_PARAM_Integer,
3167 struct hdd_config, enableFwLogType,
3168 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3169 CFG_ENABLE_FW_LOG_TYPE_DEFAULT,
3170 CFG_ENABLE_FW_LOG_TYPE_MIN,
3171 CFG_ENABLE_FW_LOG_TYPE_MAX),
3172
3173 REG_VARIABLE(CFG_ENABLE_FW_DEBUG_LOG_LEVEL, WLAN_PARAM_Integer,
3174 struct hdd_config, enableFwLogLevel,
3175 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3176 CFG_ENABLE_FW_DEBUG_LOG_LEVEL_DEFAULT,
3177 CFG_ENABLE_FW_DEBUG_LOG_LEVEL_MIN,
3178 CFG_ENABLE_FW_DEBUG_LOG_LEVEL_MAX),
3179
Rajeev Kumar Sirasanagandla0be56df2016-09-08 19:19:47 +05303180 REG_VARIABLE(CFG_ENABLE_FW_RTS_PROFILE, WLAN_PARAM_Integer,
3181 struct hdd_config, rts_profile,
3182 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3183 CFG_ENABLE_FW_RTS_PROFILE_DEFAULT,
3184 CFG_ENABLE_FW_RTS_PROFILE_MIN,
3185 CFG_ENABLE_FW_RTS_PROFILE_MAX),
3186
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003187 REG_VARIABLE_STRING(CFG_ENABLE_FW_MODULE_LOG_LEVEL, WLAN_PARAM_String,
3188 struct hdd_config, enableFwModuleLogLevel,
3189 VAR_FLAGS_OPTIONAL,
3190 (void *)CFG_ENABLE_FW_MODULE_LOG_DEFAULT),
3191
3192#ifdef WLAN_FEATURE_11W
3193 REG_VARIABLE(CFG_PMF_SA_QUERY_MAX_RETRIES_NAME, WLAN_PARAM_Integer,
3194 struct hdd_config, pmfSaQueryMaxRetries,
3195 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3196 CFG_PMF_SA_QUERY_MAX_RETRIES_DEFAULT,
3197 CFG_PMF_SA_QUERY_MAX_RETRIES_MIN,
3198 CFG_PMF_SA_QUERY_MAX_RETRIES_MAX),
3199
3200 REG_VARIABLE(CFG_PMF_SA_QUERY_RETRY_INTERVAL_NAME, WLAN_PARAM_Integer,
3201 struct hdd_config, pmfSaQueryRetryInterval,
3202 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3203 CFG_PMF_SA_QUERY_RETRY_INTERVAL_DEFAULT,
3204 CFG_PMF_SA_QUERY_RETRY_INTERVAL_MIN,
3205 CFG_PMF_SA_QUERY_RETRY_INTERVAL_MAX),
3206#endif
3207 REG_VARIABLE(CFG_MAX_CONCURRENT_CONNECTIONS_NAME, WLAN_PARAM_Integer,
3208 struct hdd_config, gMaxConcurrentActiveSessions,
3209 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3210 CFG_MAX_CONCURRENT_CONNECTIONS_DEFAULT,
3211 CFG_MAX_CONCURRENT_CONNECTIONS_MIN,
3212 CFG_MAX_CONCURRENT_CONNECTIONS_MAX),
3213
3214#ifdef FEATURE_GREEN_AP
3215 REG_VARIABLE(CFG_ENABLE_GREEN_AP_FEATURE, WLAN_PARAM_Integer,
3216 struct hdd_config, enableGreenAP,
3217 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3218 CFG_ENABLE_GREEN_AP_FEATURE_DEFAULT,
3219 CFG_ENABLE_GREEN_AP_FEATURE_MIN,
3220 CFG_ENABLE_GREEN_AP_FEATURE_MAX),
Ryan Hsucb118cf2015-11-09 16:03:53 -08003221 REG_VARIABLE(CFG_ENABLE_EGAP_ENABLE_FEATURE, WLAN_PARAM_Integer,
3222 struct hdd_config, enable_egap,
3223 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3224 CFG_ENABLE_EGAP_ENABLE_FEATURE_DEFAULT,
3225 CFG_ENABLE_EGAP_ENABLE_FEATURE_MIN,
3226 CFG_ENABLE_EGAP_ENABLE_FEATURE_MAX),
3227 REG_VARIABLE(CFG_ENABLE_EGAP_INACT_TIME_FEATURE, WLAN_PARAM_Integer,
3228 struct hdd_config, egap_inact_time,
3229 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3230 CFG_ENABLE_EGAP_INACT_TIME_FEATURE_DEFAULT,
3231 CFG_ENABLE_EGAP_INACT_TIME_FEATURE_MIN,
3232 CFG_ENABLE_EGAP_INACT_TIME_FEATURE_MAX),
3233 REG_VARIABLE(CFG_ENABLE_EGAP_WAIT_TIME_FEATURE, WLAN_PARAM_Integer,
3234 struct hdd_config, egap_wait_time,
3235 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3236 CFG_ENABLE_EGAP_WAIT_TIME_FEATURE_DEFAULT,
3237 CFG_ENABLE_EGAP_WAIT_TIME_FEATURE_MIN,
3238 CFG_ENABLE_EGAP_WAIT_TIME_FEATURE_MAX),
3239 REG_VARIABLE(CFG_ENABLE_EGAP_FLAGS_FEATURE, WLAN_PARAM_Integer,
3240 struct hdd_config, egap_feature_flag,
3241 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3242 CFG_ENABLE_EGAP_FLAGS_FEATURE_DEFAULT,
3243 CFG_ENABLE_EGAP_FLAGS_FEATURE_MIN,
3244 CFG_ENABLE_EGAP_FLAGS_FEATURE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003245#endif
3246
3247 REG_VARIABLE(CFG_IGNORE_CAC_NAME, WLAN_PARAM_Integer,
3248 struct hdd_config, ignoreCAC,
3249 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3250 CFG_IGNORE_CAC_DEFAULT,
3251 CFG_IGNORE_CAC_MIN,
3252 CFG_IGNORE_CAC_MAX),
3253
3254 REG_VARIABLE(CFG_ENABLE_SAP_DFS_CH_SIFS_BURST_NAME, WLAN_PARAM_Integer,
3255 struct hdd_config, IsSapDfsChSifsBurstEnabled,
3256 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3257 CFG_ENABLE_SAP_DFS_CH_SIFS_BURST_DEFAULT,
3258 CFG_ENABLE_SAP_DFS_CH_SIFS_BURST_MIN,
3259 CFG_ENABLE_SAP_DFS_CH_SIFS_BURST_MAX),
3260
3261 REG_VARIABLE(CFG_DFS_RADAR_PRI_MULTIPLIER_NAME, WLAN_PARAM_Integer,
3262 struct hdd_config, dfsRadarPriMultiplier,
3263 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3264 CFG_DFS_RADAR_PRI_MULTIPLIER_DEFAULT,
3265 CFG_DFS_RADAR_PRI_MULTIPLIER_MIN,
3266 CFG_DFS_RADAR_PRI_MULTIPLIER_MAX),
3267
3268 REG_VARIABLE(CFG_REORDER_OFFLOAD_SUPPORT_NAME, WLAN_PARAM_Integer,
3269 struct hdd_config, reorderOffloadSupport,
3270 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3271 CFG_REORDER_OFFLOAD_SUPPORT_DEFAULT,
3272 CFG_REORDER_OFFLOAD_SUPPORT_MIN,
3273 CFG_REORDER_OFFLOAD_SUPPORT_MAX),
3274
3275 REG_VARIABLE(CFG_IPA_UC_TX_BUF_COUNT_NAME, WLAN_PARAM_Integer,
3276 struct hdd_config, IpaUcTxBufCount,
3277 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
3278 CFG_IPA_UC_TX_BUF_COUNT_DEFAULT,
3279 CFG_IPA_UC_TX_BUF_COUNT_MIN,
3280 CFG_IPA_UC_TX_BUF_COUNT_MAX),
3281
3282 REG_VARIABLE(CFG_IPA_UC_TX_BUF_SIZE_NAME, WLAN_PARAM_Integer,
3283 struct hdd_config, IpaUcTxBufSize,
3284 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
3285 CFG_IPA_UC_TX_BUF_SIZE_DEFAULT,
3286 CFG_IPA_UC_TX_BUF_SIZE_MIN,
3287 CFG_IPA_UC_TX_BUF_SIZE_MAX),
3288
3289 REG_VARIABLE(CFG_IPA_UC_RX_IND_RING_COUNT_NAME, WLAN_PARAM_Integer,
3290 struct hdd_config, IpaUcRxIndRingCount,
3291 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
3292 CFG_IPA_UC_RX_IND_RING_COUNT_DEFAULT,
3293 CFG_IPA_UC_RX_IND_RING_COUNT_MIN,
3294 CFG_IPA_UC_RX_IND_RING_COUNT_MAX),
3295
3296 REG_VARIABLE(CFG_IPA_UC_TX_PARTITION_BASE_NAME, WLAN_PARAM_Integer,
3297 struct hdd_config, IpaUcTxPartitionBase,
3298 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
3299 CFG_IPA_UC_TX_PARTITION_BASE_DEFAULT,
3300 CFG_IPA_UC_TX_PARTITION_BASE_MIN,
3301 CFG_IPA_UC_TX_PARTITION_BASE_MAX),
3302#ifdef WLAN_LOGGING_SOCK_SVC_ENABLE
3303 REG_VARIABLE(CFG_WLAN_LOGGING_SUPPORT_NAME, WLAN_PARAM_Integer,
3304 struct hdd_config, wlanLoggingEnable,
3305 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3306 CFG_WLAN_LOGGING_SUPPORT_DEFAULT,
3307 CFG_WLAN_LOGGING_SUPPORT_DISABLE,
3308 CFG_WLAN_LOGGING_SUPPORT_ENABLE),
3309
Srinivas Girigowda8187e792017-03-03 11:50:59 -08003310 REG_VARIABLE(CFG_WLAN_LOGGING_CONSOLE_SUPPORT_NAME,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003311 WLAN_PARAM_Integer,
Srinivas Girigowda8187e792017-03-03 11:50:59 -08003312 struct hdd_config, wlanLoggingToConsole,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003313 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
Srinivas Girigowda8187e792017-03-03 11:50:59 -08003314 CFG_WLAN_LOGGING_CONSOLE_SUPPORT_DEFAULT,
3315 CFG_WLAN_LOGGING_CONSOLE_SUPPORT_DISABLE,
3316 CFG_WLAN_LOGGING_CONSOLE_SUPPORT_ENABLE),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003317#endif /* WLAN_LOGGING_SOCK_SVC_ENABLE */
3318
3319 REG_VARIABLE(CFG_ENABLE_SIFS_BURST, WLAN_PARAM_Integer,
3320 struct hdd_config, enableSifsBurst,
3321 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3322 CFG_ENABLE_SIFS_BURST_DEFAULT,
3323 CFG_ENABLE_SIFS_BURST_MIN,
3324 CFG_ENABLE_SIFS_BURST_MAX),
3325
3326#ifdef WLAN_FEATURE_LPSS
3327 REG_VARIABLE(CFG_ENABLE_LPASS_SUPPORT, WLAN_PARAM_Integer,
Komal Seelamc11bb222016-01-27 18:57:10 +05303328 struct hdd_config, enable_lpass_support,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003329 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3330 CFG_ENABLE_LPASS_SUPPORT_DEFAULT,
3331 CFG_ENABLE_LPASS_SUPPORT_MIN,
3332 CFG_ENABLE_LPASS_SUPPORT_MAX),
3333#endif
3334
3335#ifdef WLAN_FEATURE_NAN
3336 REG_VARIABLE(CFG_ENABLE_NAN_SUPPORT, WLAN_PARAM_Integer,
3337 struct hdd_config, enable_nan_support,
3338 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3339 CFG_ENABLE_NAN_SUPPORT_DEFAULT,
3340 CFG_ENABLE_NAN_SUPPORT_MIN,
3341 CFG_ENABLE_NAN_SUPPORT_MAX),
3342#endif
3343
3344 REG_VARIABLE(CFG_ENABLE_SELF_RECOVERY, WLAN_PARAM_Integer,
3345 struct hdd_config, enableSelfRecovery,
3346 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3347 CFG_ENABLE_SELF_RECOVERY_DEFAULT,
3348 CFG_ENABLE_SELF_RECOVERY_MIN,
3349 CFG_ENABLE_SELF_RECOVERY_MAX),
3350
3351#ifdef FEATURE_WLAN_FORCE_SAP_SCC
3352 REG_VARIABLE(CFG_SAP_SCC_CHAN_AVOIDANCE, WLAN_PARAM_Integer,
3353 struct hdd_config, SapSccChanAvoidance,
3354 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3355 CFG_SAP_SCC_CHAN_AVOIDANCE_DEFAULT,
3356 CFG_SAP_SCC_CHAN_AVOIDANCE_MIN,
3357 CFG_SAP_SCC_CHAN_AVOIDANCE_MAX),
3358#endif /* FEATURE_WLAN_FORCE_SAP_SCC */
3359
3360 REG_VARIABLE(CFG_ENABLE_SAP_SUSPEND, WLAN_PARAM_Integer,
3361 struct hdd_config, enableSapSuspend,
3362 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3363 CFG_ENABLE_SAP_SUSPEND_DEFAULT,
3364 CFG_ENABLE_SAP_SUSPEND_MIN,
3365 CFG_ENABLE_SAP_SUSPEND_MAX),
3366
3367#ifdef WLAN_FEATURE_EXTWOW_SUPPORT
3368 REG_VARIABLE(CFG_EXTWOW_GO_TO_SUSPEND, WLAN_PARAM_Integer,
3369 struct hdd_config, extWowGotoSuspend,
3370 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3371 CFG_EXTWOW_GO_TO_SUSPEND_DEFAULT,
3372 CFG_EXTWOW_GO_TO_SUSPEND_MIN,
3373 CFG_EXTWOW_GO_TO_SUSPEND_MAX),
3374
3375 REG_VARIABLE(CFG_EXTWOW_APP1_WAKE_PIN_NUMBER, WLAN_PARAM_Integer,
3376 struct hdd_config, extWowApp1WakeupPinNumber,
3377 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3378 CFG_EXTWOW_APP1_WAKE_PIN_NUMBER_DEFAULT,
3379 CFG_EXTWOW_APP1_WAKE_PIN_NUMBER_MIN,
3380 CFG_EXTWOW_APP1_WAKE_PIN_NUMBER_MAX),
3381
3382 REG_VARIABLE(CFG_EXTWOW_APP2_WAKE_PIN_NUMBER, WLAN_PARAM_Integer,
3383 struct hdd_config, extWowApp2WakeupPinNumber,
3384 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3385 CFG_EXTWOW_APP2_WAKE_PIN_NUMBER_DEFAULT,
3386 CFG_EXTWOW_APP2_WAKE_PIN_NUMBER_MIN,
3387 CFG_EXTWOW_APP2_WAKE_PIN_NUMBER_MAX),
3388
3389 REG_VARIABLE(CFG_EXTWOW_KA_INIT_PING_INTERVAL, WLAN_PARAM_Integer,
3390 struct hdd_config, extWowApp2KAInitPingInterval,
3391 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3392 CFG_EXTWOW_KA_INIT_PING_INTERVAL_DEFAULT,
3393 CFG_EXTWOW_KA_INIT_PING_INTERVAL_MIN,
3394 CFG_EXTWOW_KA_INIT_PING_INTERVAL_MAX),
3395
3396 REG_VARIABLE(CFG_EXTWOW_KA_MIN_PING_INTERVAL, WLAN_PARAM_Integer,
3397 struct hdd_config, extWowApp2KAMinPingInterval,
3398 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3399 CFG_EXTWOW_KA_MIN_PING_INTERVAL_DEFAULT,
3400 CFG_EXTWOW_KA_MIN_PING_INTERVAL_MIN,
3401 CFG_EXTWOW_KA_MIN_PING_INTERVAL_MAX),
3402
3403 REG_VARIABLE(CFG_EXTWOW_KA_MAX_PING_INTERVAL, WLAN_PARAM_Integer,
3404 struct hdd_config, extWowApp2KAMaxPingInterval,
3405 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3406 CFG_EXTWOW_KA_MAX_PING_INTERVAL_DEFAULT,
3407 CFG_EXTWOW_KA_MAX_PING_INTERVAL_MIN,
3408 CFG_EXTWOW_KA_MAX_PING_INTERVAL_MAX),
3409
3410 REG_VARIABLE(CFG_EXTWOW_KA_INC_PING_INTERVAL, WLAN_PARAM_Integer,
3411 struct hdd_config, extWowApp2KAIncPingInterval,
3412 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3413 CFG_EXTWOW_KA_INC_PING_INTERVAL_DEFAULT,
3414 CFG_EXTWOW_KA_INC_PING_INTERVAL_MIN,
3415 CFG_EXTWOW_KA_INC_PING_INTERVAL_MAX),
3416
3417 REG_VARIABLE(CFG_EXTWOW_TCP_SRC_PORT, WLAN_PARAM_Integer,
3418 struct hdd_config, extWowApp2TcpSrcPort,
3419 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3420 CFG_EXTWOW_TCP_SRC_PORT_DEFAULT,
3421 CFG_EXTWOW_TCP_SRC_PORT_MIN,
3422 CFG_EXTWOW_TCP_SRC_PORT_MAX),
3423
3424 REG_VARIABLE(CFG_EXTWOW_TCP_DST_PORT, WLAN_PARAM_Integer,
3425 struct hdd_config, extWowApp2TcpDstPort,
3426 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3427 CFG_EXTWOW_TCP_DST_PORT_DEFAULT,
3428 CFG_EXTWOW_TCP_DST_PORT_MIN,
3429 CFG_EXTWOW_TCP_DST_PORT_MAX),
3430
3431 REG_VARIABLE(CFG_EXTWOW_TCP_TX_TIMEOUT, WLAN_PARAM_Integer,
3432 struct hdd_config, extWowApp2TcpTxTimeout,
3433 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3434 CFG_EXTWOW_TCP_TX_TIMEOUT_DEFAULT,
3435 CFG_EXTWOW_TCP_TX_TIMEOUT_MIN,
3436 CFG_EXTWOW_TCP_TX_TIMEOUT_MAX),
3437
3438 REG_VARIABLE(CFG_EXTWOW_TCP_RX_TIMEOUT, WLAN_PARAM_Integer,
3439 struct hdd_config, extWowApp2TcpRxTimeout,
3440 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3441 CFG_EXTWOW_TCP_RX_TIMEOUT_DEFAULT,
3442 CFG_EXTWOW_TCP_RX_TIMEOUT_MIN,
3443 CFG_EXTWOW_TCP_RX_TIMEOUT_MAX),
3444#endif
3445 REG_VARIABLE(CFG_ENABLE_DEAUTH_TO_DISASSOC_MAP_NAME, WLAN_PARAM_Integer,
3446 struct hdd_config, gEnableDeauthToDisassocMap,
3447 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3448 CFG_ENABLE_DEAUTH_TO_DISASSOC_MAP_DEFAULT,
3449 CFG_ENABLE_DEAUTH_TO_DISASSOC_MAP_MIN,
3450 CFG_ENABLE_DEAUTH_TO_DISASSOC_MAP_MAX),
3451#ifdef DHCP_SERVER_OFFLOAD
3452 REG_VARIABLE(CFG_DHCP_SERVER_OFFLOAD_SUPPORT_NAME, WLAN_PARAM_Integer,
3453 struct hdd_config, enableDHCPServerOffload,
3454 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3455 CFG_DHCP_SERVER_OFFLOAD_SUPPORT_DEFAULT,
3456 CFG_DHCP_SERVER_OFFLOAD_SUPPORT_MIN,
3457 CFG_DHCP_SERVER_OFFLOAD_SUPPORT_MAX),
3458 REG_VARIABLE(CFG_DHCP_SERVER_OFFLOAD_NUM_CLIENT_NAME,
3459 WLAN_PARAM_Integer,
3460 struct hdd_config, dhcpMaxNumClients,
3461 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3462 CFG_DHCP_SERVER_OFFLOAD_NUM_CLIENT_DEFAULT,
3463 CFG_DHCP_SERVER_OFFLOAD_NUM_CLIENT_MIN,
3464 CFG_DHCP_SERVER_OFFLOAD_NUM_CLIENT_MAX),
3465 REG_VARIABLE_STRING(CFG_DHCP_SERVER_IP_NAME, WLAN_PARAM_String,
3466 struct hdd_config, dhcpServerIP,
3467 VAR_FLAGS_OPTIONAL,
3468 (void *)CFG_DHCP_SERVER_IP_DEFAULT),
3469#endif /* DHCP_SERVER_OFFLOAD */
3470
3471 REG_VARIABLE(CFG_ENABLE_DEAUTH_BEFORE_CONNECTION, WLAN_PARAM_Integer,
3472 struct hdd_config, sendDeauthBeforeCon,
3473 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3474 CFG_ENABLE_DEAUTH_BEFORE_CONNECTION_DEFAULT,
3475 CFG_ENABLE_DEAUTH_BEFORE_CONNECTION_MIN,
3476 CFG_ENABLE_DEAUTH_BEFORE_CONNECTION_MAX),
3477
3478 REG_VARIABLE(CFG_ENABLE_MAC_ADDR_SPOOFING, WLAN_PARAM_Integer,
3479 struct hdd_config, enable_mac_spoofing,
3480 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3481 CFG_ENABLE_MAC_ADDR_SPOOFING_DEFAULT,
3482 CFG_ENABLE_MAC_ADDR_SPOOFING_MIN,
3483 CFG_ENABLE_MAC_ADDR_SPOOFING_MAX),
3484
3485 REG_VARIABLE(CFG_ENABLE_CUSTOM_CONC_RULE1_NAME, WLAN_PARAM_Integer,
3486 struct hdd_config, conc_custom_rule1,
3487 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
3488 CFG_ENABLE_CUSTOM_CONC_RULE1_NAME_DEFAULT,
3489 CFG_ENABLE_CUSTOM_CONC_RULE1_NAME_MIN,
3490 CFG_ENABLE_CUSTOM_CONC_RULE1_NAME_MAX),
3491
3492 REG_VARIABLE(CFG_ENABLE_CUSTOM_CONC_RULE2_NAME, WLAN_PARAM_Integer,
3493 struct hdd_config, conc_custom_rule2,
3494 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
3495 CFG_ENABLE_CUSTOM_CONC_RULE2_NAME_DEFAULT,
3496 CFG_ENABLE_CUSTOM_CONC_RULE2_NAME_MIN,
3497 CFG_ENABLE_CUSTOM_CONC_RULE2_NAME_MAX),
3498
3499 REG_VARIABLE(CFG_ENABLE_STA_CONNECTION_IN_5GHZ, WLAN_PARAM_Integer,
3500 struct hdd_config, is_sta_connection_in_5gz_enabled,
3501 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
3502 CFG_ENABLE_STA_CONNECTION_IN_5GHZ_DEFAULT,
3503 CFG_ENABLE_STA_CONNECTION_IN_5GHZ_MIN,
3504 CFG_ENABLE_STA_CONNECTION_IN_5GHZ_MAX),
3505
3506 REG_VARIABLE(CFG_STA_MIRACAST_MCC_REST_TIME_VAL, WLAN_PARAM_Integer,
3507 struct hdd_config, sta_miracast_mcc_rest_time_val,
3508 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3509 CFG_STA_MIRACAST_MCC_REST_TIME_VAL_DEFAULT,
3510 CFG_STA_MIRACAST_MCC_REST_TIME_VAL_MIN,
3511 CFG_STA_MIRACAST_MCC_REST_TIME_VAL_MAX),
3512
3513#ifdef FEATURE_AP_MCC_CH_AVOIDANCE
3514 REG_VARIABLE(CFG_SAP_MCC_CHANNEL_AVOIDANCE_NAME,
3515 WLAN_PARAM_Integer,
3516 struct hdd_config,
3517 sap_channel_avoidance,
3518 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
3519 CFG_SAP_MCC_CHANNEL_AVOIDANCE_DEFAULT,
3520 CFG_SAP_MCC_CHANNEL_AVOIDANCE_MIN,
3521 CFG_SAP_MCC_CHANNEL_AVOIDANCE_MAX),
3522#endif /* FEATURE_AP_MCC_CH_AVOIDANCE */
3523
3524 REG_VARIABLE(CFG_SAP_P2P_11AC_OVERRIDE_NAME, WLAN_PARAM_Integer,
3525 struct hdd_config, sap_p2p_11ac_override,
3526 VAR_FLAGS_OPTIONAL |
3527 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3528 CFG_SAP_P2P_11AC_OVERRIDE_DEFAULT,
3529 CFG_SAP_P2P_11AC_OVERRIDE_MIN,
3530 CFG_SAP_P2P_11AC_OVERRIDE_MAX),
3531
3532 REG_VARIABLE(CFG_ENABLE_RAMDUMP_COLLECTION, WLAN_PARAM_Integer,
3533 struct hdd_config, is_ramdump_enabled,
3534 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3535 CFG_ENABLE_RAMDUMP_COLLECTION_DEFAULT,
3536 CFG_ENABLE_RAMDUMP_COLLECTION_MIN,
3537 CFG_ENABLE_RAMDUMP_COLLECTION_MAX),
3538
3539 REG_VARIABLE(CFG_SAP_DOT11MC, WLAN_PARAM_Integer,
3540 struct hdd_config, sap_dot11mc,
3541 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3542 CFG_SAP_DOT11MC_DEFAULT,
3543 CFG_SAP_DOT11MC_MIN,
3544 CFG_SAP_DOT11MC_MAX),
3545
3546 REG_VARIABLE(CFG_ENABLE_NON_DFS_CHAN_ON_RADAR, WLAN_PARAM_Integer,
3547 struct hdd_config, prefer_non_dfs_on_radar,
3548 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3549 CFG_ENABLE_NON_DFS_CHAN_ON_RADAR_DEFAULT,
3550 CFG_ENABLE_NON_DFS_CHAN_ON_RADAR_MIN,
3551 CFG_ENABLE_NON_DFS_CHAN_ON_RADAR_MAX),
3552
3553 REG_VARIABLE(CFG_MULTICAST_HOST_FW_MSGS, WLAN_PARAM_Integer,
3554 struct hdd_config, multicast_host_fw_msgs,
3555 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3556 CFG_MULTICAST_HOST_FW_MSGS_DEFAULT,
3557 CFG_MULTICAST_HOST_FW_MSGS_MIN,
3558 CFG_MULTICAST_HOST_FW_MSGS_MAX),
3559
3560 REG_VARIABLE(CFG_CONC_SYSTEM_PREF, WLAN_PARAM_Integer,
3561 struct hdd_config, conc_system_pref,
3562 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3563 CFG_CONC_SYSTEM_PREF_DEFAULT,
3564 CFG_CONC_SYSTEM_PREF_MIN,
3565 CFG_CONC_SYSTEM_PREF_MAX),
3566
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003567 REG_VARIABLE(CFG_TSO_ENABLED_NAME, WLAN_PARAM_Integer,
3568 struct hdd_config, tso_enable,
3569 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3570 CFG_TSO_ENABLED_DEFAULT,
3571 CFG_TSO_ENABLED_MIN,
3572 CFG_TSO_ENABLED_MAX),
3573
3574 REG_VARIABLE(CFG_LRO_ENABLED_NAME, WLAN_PARAM_Integer,
3575 struct hdd_config, lro_enable,
3576 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3577 CFG_LRO_ENABLED_DEFAULT,
3578 CFG_LRO_ENABLED_MIN,
3579 CFG_LRO_ENABLED_MAX),
3580
Rajeev Kumardd3bc602016-08-16 14:21:05 -07003581 REG_VARIABLE(CFG_BPF_PACKET_FILTER_OFFLOAD, WLAN_PARAM_Integer,
3582 struct hdd_config, bpf_packet_filter_enable,
3583 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3584 CFG_BPF_PACKET_FILTER_OFFLOAD_DEFAULT,
3585 CFG_BPF_PACKET_FILTER_OFFLOAD_MIN,
3586 CFG_BPF_PACKET_FILTER_OFFLOAD_MAX),
3587
Nitesh Shah61c10d92016-10-19 19:29:15 +05303588 REG_VARIABLE(CFG_TDLS_ENABLE_DEFER_TIMER, WLAN_PARAM_Integer,
3589 struct hdd_config, tdls_enable_defer_time,
3590 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3591 CFG_TDLS_ENABLE_DEFER_TIMER_DEFAULT,
3592 CFG_TDLS_ENABLE_DEFER_TIMER_MIN,
3593 CFG_TDLS_ENABLE_DEFER_TIMER_MAX),
3594
Manjunathappa Prakashfff753c2016-09-01 19:34:56 -07003595 REG_VARIABLE(CFG_FLOW_STEERING_ENABLED_NAME, WLAN_PARAM_Integer,
3596 struct hdd_config, flow_steering_enable,
3597 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3598 CFG_FLOW_STEERING_ENABLED_DEFAULT,
3599 CFG_FLOW_STEERING_ENABLED_MIN,
3600 CFG_FLOW_STEERING_ENABLED_MAX),
3601
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003602 REG_VARIABLE(CFG_ACTIVE_MODE_OFFLOAD, WLAN_PARAM_Integer,
3603 struct hdd_config, active_mode_offload,
3604 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3605 CFG_ACTIVE_MODE_OFFLOAD_DEFAULT,
3606 CFG_ACTIVE_MODE_OFFLOAD_MIN,
3607 CFG_ACTIVE_MODE_OFFLOAD_MAX),
3608
3609 REG_VARIABLE(CFG_FINE_TIME_MEAS_CAPABILITY, WLAN_PARAM_HexInteger,
3610 struct hdd_config, fine_time_meas_cap,
3611 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3612 CFG_FINE_TIME_MEAS_CAPABILITY_DEFAULT,
3613 CFG_FINE_TIME_MEAS_CAPABILITY_MIN,
3614 CFG_FINE_TIME_MEAS_CAPABILITY_MAX),
3615
3616#ifdef WLAN_FEATURE_FASTPATH
3617 REG_VARIABLE(CFG_ENABLE_FASTPATH, WLAN_PARAM_Integer,
3618 struct hdd_config, fastpath_enable,
3619 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3620 CFG_ENABLE_FASTPATH_DEFAULT,
3621 CFG_ENABLE_FASTPATH_MIN,
3622 CFG_ENABLE_FASTPATH_MAX),
3623#endif
3624 REG_VARIABLE(CFG_MAX_SCAN_COUNT_NAME, WLAN_PARAM_Integer,
3625 struct hdd_config, max_scan_count,
3626 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3627 CFG_MAX_SCAN_COUNT_DEFAULT,
3628 CFG_MAX_SCAN_COUNT_MIN,
3629 CFG_MAX_SCAN_COUNT_MAX),
3630
3631 REG_VARIABLE(CFG_DOT11P_MODE_NAME, WLAN_PARAM_Integer,
3632 struct hdd_config, dot11p_mode,
3633 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3634 CFG_DOT11P_MODE_DEFAULT,
3635 CFG_DOT11P_MODE_MIN,
3636 CFG_DOT11P_MODE_MAX),
3637
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003638#ifdef FEATURE_WLAN_EXTSCAN
Manjeet Singh0f2ce5c2016-09-01 12:08:57 +05303639 REG_VARIABLE(CFG_EXTSCAN_ALLOWED_NAME, WLAN_PARAM_Integer,
3640 struct hdd_config, extscan_enabled,
3641 VAR_FLAGS_OPTIONAL |
3642 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3643 CFG_EXTSCAN_ALLOWED_DEF,
3644 CFG_EXTSCAN_ALLOWED_MIN,
3645 CFG_EXTSCAN_ALLOWED_MAX),
3646
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003647 REG_VARIABLE(CFG_EXTSCAN_PASSIVE_MAX_CHANNEL_TIME_NAME,
3648 WLAN_PARAM_Integer,
3649 struct hdd_config, extscan_passive_max_chn_time,
3650 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3651 CFG_EXTSCAN_PASSIVE_MAX_CHANNEL_TIME_DEFAULT,
3652 CFG_EXTSCAN_PASSIVE_MAX_CHANNEL_TIME_MIN,
3653 CFG_EXTSCAN_PASSIVE_MAX_CHANNEL_TIME_MAX),
3654
3655 REG_VARIABLE(CFG_EXTSCAN_PASSIVE_MIN_CHANNEL_TIME_NAME,
3656 WLAN_PARAM_Integer,
3657 struct hdd_config, extscan_passive_min_chn_time,
3658 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3659 CFG_EXTSCAN_PASSIVE_MIN_CHANNEL_TIME_DEFAULT,
3660 CFG_EXTSCAN_PASSIVE_MIN_CHANNEL_TIME_MIN,
3661 CFG_EXTSCAN_PASSIVE_MIN_CHANNEL_TIME_MAX),
3662
3663 REG_VARIABLE(CFG_EXTSCAN_ACTIVE_MAX_CHANNEL_TIME_NAME,
3664 WLAN_PARAM_Integer,
3665 struct hdd_config, extscan_active_max_chn_time,
3666 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3667 CFG_EXTSCAN_ACTIVE_MAX_CHANNEL_TIME_DEFAULT,
3668 CFG_EXTSCAN_ACTIVE_MAX_CHANNEL_TIME_MIN,
3669 CFG_EXTSCAN_ACTIVE_MAX_CHANNEL_TIME_MAX),
3670
3671 REG_VARIABLE(CFG_EXTSCAN_ACTIVE_MIN_CHANNEL_TIME_NAME,
3672 WLAN_PARAM_Integer,
3673 struct hdd_config, extscan_active_min_chn_time,
3674 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3675 CFG_EXTSCAN_ACTIVE_MIN_CHANNEL_TIME_DEFAULT,
3676 CFG_EXTSCAN_ACTIVE_MIN_CHANNEL_TIME_MIN,
3677 CFG_EXTSCAN_ACTIVE_MIN_CHANNEL_TIME_MAX),
3678#endif
3679
Yingying Tang95409972016-10-20 15:16:15 +08003680#ifdef WLAN_FEATURE_WOW_PULSE
3681 REG_VARIABLE(CFG_WOW_PULSE_SUPPORT_NAME, WLAN_PARAM_Integer,
3682 struct hdd_config, wow_pulse_support,
3683 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3684 CFG_WOW_PULSE_SUPPORT_DEFAULT,
3685 CFG_WOW_PULSE_SUPPORT_MIN,
3686 CFG_WOW_PULSE_SUPPORT_MAX),
3687
3688 REG_VARIABLE(CFG_WOW_PULSE_PIN_NAME, WLAN_PARAM_Integer,
3689 struct hdd_config, wow_pulse_pin,
3690 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3691 CFG_WOW_PULSE_PIN_DEFAULT,
3692 CFG_WOW_PULSE_PIN_MIN,
3693 CFG_WOW_PULSE_PIN_MAX),
3694
3695 REG_VARIABLE(CFG_WOW_PULSE_INTERVAL_LOW_NAME, WLAN_PARAM_Integer,
3696 struct hdd_config, wow_pulse_interval_low,
3697 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3698 CFG_WOW_PULSE_INTERVAL_LOW_DEFAULT,
3699 CFG_WOW_PULSE_INTERVAL_LOW_MIN,
3700 CFG_WOW_PULSE_INTERVAL_LOW_MAX),
3701
3702 REG_VARIABLE(CFG_WOW_PULSE_INTERVAL_HIGH_NAME, WLAN_PARAM_Integer,
3703 struct hdd_config, wow_pulse_interval_high,
3704 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3705 CFG_WOW_PULSE_INTERVAL_HIGH_DEFAULT,
3706 CFG_WOW_PULSE_INTERVAL_HIGH_MIN,
3707 CFG_WOW_PULSE_INTERVAL_HIGH_MAX),
3708#endif
3709
3710
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003711 REG_VARIABLE(CFG_CE_CLASSIFY_ENABLE_NAME, WLAN_PARAM_Integer,
3712 struct hdd_config, ce_classify_enabled,
3713 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3714 CFG_CE_CLASSIFY_ENABLE_DEFAULT,
3715 CFG_CE_CLASSIFY_ENABLE_MIN,
3716 CFG_CE_CLASSIFY_ENABLE_MAX),
3717
3718 REG_VARIABLE(CFG_DUAL_MAC_FEATURE_DISABLE, WLAN_PARAM_HexInteger,
3719 struct hdd_config, dual_mac_feature_disable,
3720 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3721 CFG_DUAL_MAC_FEATURE_DISABLE_DEFAULT,
3722 CFG_DUAL_MAC_FEATURE_DISABLE_MIN,
3723 CFG_DUAL_MAC_FEATURE_DISABLE_MAX),
Nitesh Shah50a3de12017-04-03 19:37:19 +05303724
3725 REG_VARIABLE_STRING(CFG_DBS_SCAN_SELECTION_NAME, WLAN_PARAM_String,
3726 struct hdd_config, dbs_scan_selection,
3727 VAR_FLAGS_OPTIONAL,
3728 (void *)CFG_DBS_SCAN_SELECTION_DEFAULT),
3729
Varun Reddy Yeturub43fda12015-09-10 18:16:21 -07003730#ifdef FEATURE_WLAN_SCAN_PNO
3731 REG_VARIABLE(CFG_PNO_CHANNEL_PREDICTION_NAME, WLAN_PARAM_Integer,
3732 struct hdd_config, pno_channel_prediction,
3733 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3734 CFG_PNO_CHANNEL_PREDICTION_DEFAULT,
3735 CFG_PNO_CHANNEL_PREDICTION_MIN,
3736 CFG_PNO_CHANNEL_PREDICTION_MAX),
3737
3738 REG_VARIABLE(CFG_TOP_K_NUM_OF_CHANNELS_NAME, WLAN_PARAM_Integer,
3739 struct hdd_config, top_k_num_of_channels,
3740 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3741 CFG_TOP_K_NUM_OF_CHANNELS_DEFAULT,
3742 CFG_TOP_K_NUM_OF_CHANNELS_MIN,
3743 CFG_TOP_K_NUM_OF_CHANNELS_MAX),
3744
3745 REG_VARIABLE(CFG_STATIONARY_THRESHOLD_NAME, WLAN_PARAM_Integer,
3746 struct hdd_config, stationary_thresh,
3747 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3748 CFG_STATIONARY_THRESHOLD_DEFAULT,
3749 CFG_STATIONARY_THRESHOLD_MIN,
3750 CFG_STATIONARY_THRESHOLD_MAX),
3751
3752 REG_VARIABLE(CFG_CHANNEL_PREDICTION_FULL_SCAN_MS_NAME,
3753 WLAN_PARAM_Integer,
3754 struct hdd_config, channel_prediction_full_scan,
3755 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3756 CFG_CHANNEL_PREDICTION_FULL_SCAN_MS_DEFAULT,
3757 CFG_CHANNEL_PREDICTION_FULL_SCAN_MS_MIN,
3758 CFG_CHANNEL_PREDICTION_FULL_SCAN_MS_MAX),
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05303759
3760 REG_VARIABLE(CFG_ADAPTIVE_PNOSCAN_DWELL_MODE_NAME,
3761 WLAN_PARAM_Integer,
3762 struct hdd_config, pnoscan_adaptive_dwell_mode,
3763 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3764 CFG_ADAPTIVE_PNOSCAN_DWELL_MODE_DEFAULT,
3765 CFG_ADAPTIVE_PNOSCAN_DWELL_MODE_MIN,
3766 CFG_ADAPTIVE_PNOSCAN_DWELL_MODE_MAX),
Varun Reddy Yeturub43fda12015-09-10 18:16:21 -07003767#endif
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003768
3769 REG_VARIABLE(CFG_TX_CHAIN_MASK_CCK, WLAN_PARAM_Integer,
3770 struct hdd_config, tx_chain_mask_cck,
3771 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3772 CFG_TX_CHAIN_MASK_CCK_DEFAULT,
3773 CFG_TX_CHAIN_MASK_CCK_MIN,
3774 CFG_TX_CHAIN_MASK_CCK_MAX),
3775
3776 REG_VARIABLE(CFG_TX_CHAIN_MASK_1SS, WLAN_PARAM_Integer,
3777 struct hdd_config, tx_chain_mask_1ss,
3778 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3779 CFG_TX_CHAIN_MASK_1SS_DEFAULT,
3780 CFG_TX_CHAIN_MASK_1SS_MIN,
3781 CFG_TX_CHAIN_MASK_1SS_MAX),
3782
Jeff Johnsona89e25d2017-02-24 12:25:07 -08003783 REG_VARIABLE(CFG_ENABLE_SMART_CHAINMASK_NAME, WLAN_PARAM_Integer,
3784 struct hdd_config, smart_chainmask_enabled,
3785 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3786 CFG_ENABLE_SMART_CHAINMASK_DEFAULT,
3787 CFG_ENABLE_SMART_CHAINMASK_MIN,
3788 CFG_ENABLE_SMART_CHAINMASK_MAX),
3789
3790 REG_VARIABLE(CFG_ENABLE_COEX_ALT_CHAINMASK_NAME, WLAN_PARAM_Integer,
3791 struct hdd_config, alternative_chainmask_enabled,
3792 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3793 CFG_ENABLE_COEX_ALT_CHAINMASK_DEFAULT,
3794 CFG_ENABLE_COEX_ALT_CHAINMASK_MIN,
3795 CFG_ENABLE_COEX_ALT_CHAINMASK_MAX),
3796
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003797 REG_VARIABLE(CFG_SELF_GEN_FRM_PWR, WLAN_PARAM_Integer,
3798 struct hdd_config, self_gen_frm_pwr,
3799 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3800 CFG_SELF_GEN_FRM_PWR_DEFAULT,
3801 CFG_SELF_GEN_FRM_PWR_MIN,
3802 CFG_SELF_GEN_FRM_PWR_MAX),
3803
Varun Reddy Yeturu05186292015-09-28 17:12:33 -07003804 REG_VARIABLE(CFG_EARLY_STOP_SCAN_ENABLE, WLAN_PARAM_Integer,
3805 struct hdd_config, early_stop_scan_enable,
3806 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3807 CFG_EARLY_STOP_SCAN_ENABLE_DEFAULT,
3808 CFG_EARLY_STOP_SCAN_ENABLE_MIN,
3809 CFG_EARLY_STOP_SCAN_ENABLE_MAX),
3810
3811 REG_VARIABLE(CFG_EARLY_STOP_SCAN_MIN_THRESHOLD,
3812 WLAN_PARAM_SignedInteger, struct hdd_config,
3813 early_stop_scan_min_threshold,
3814 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3815 CFG_EARLY_STOP_SCAN_MIN_THRESHOLD_DEFAULT,
3816 CFG_EARLY_STOP_SCAN_MIN_THRESHOLD_MIN,
3817 CFG_EARLY_STOP_SCAN_MIN_THRESHOLD_MAX),
3818
3819 REG_VARIABLE(CFG_EARLY_STOP_SCAN_MAX_THRESHOLD,
3820 WLAN_PARAM_SignedInteger, struct hdd_config,
3821 early_stop_scan_max_threshold,
3822 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3823 CFG_EARLY_STOP_SCAN_MAX_THRESHOLD_DEFAULT,
3824 CFG_EARLY_STOP_SCAN_MAX_THRESHOLD_MIN,
3825 CFG_EARLY_STOP_SCAN_MAX_THRESHOLD_MAX),
3826
Varun Reddy Yeturu044bda22015-11-21 22:03:40 -08003827 REG_VARIABLE(CFG_FIRST_SCAN_BUCKET_THRESHOLD_NAME,
3828 WLAN_PARAM_SignedInteger,
3829 struct hdd_config, first_scan_bucket_threshold,
3830 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3831 CFG_FIRST_SCAN_BUCKET_THRESHOLD_DEFAULT,
3832 CFG_FIRST_SCAN_BUCKET_THRESHOLD_MIN,
3833 CFG_FIRST_SCAN_BUCKET_THRESHOLD_MAX),
3834
Ravi Joshi742495d2015-11-09 18:56:53 -08003835#ifdef FEATURE_LFR_SUBNET_DETECTION
3836 REG_VARIABLE(CFG_ENABLE_LFR_SUBNET_DETECTION, WLAN_PARAM_Integer,
3837 struct hdd_config, enable_lfr_subnet_detection,
3838 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3839 CFG_ENABLE_LFR_SUBNET_DEFAULT,
3840 CFG_ENABLE_LFR_SUBNET_MIN,
3841 CFG_ENABLE_LFR_SUBNET_MAX),
3842#endif
Sandeep Puligilla93a29ec2016-02-12 16:10:56 -08003843 REG_VARIABLE(CFG_OBSS_HT40_SCAN_ACTIVE_DWELL_TIME_NAME,
3844 WLAN_PARAM_Integer,
3845 struct hdd_config, obss_active_dwelltime,
3846 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3847 CFG_OBSS_HT40_SCAN_ACTIVE_DWELL_TIME_DEFAULT,
3848 CFG_OBSS_HT40_SCAN_ACTIVE_DWELL_TIME_MIN,
3849 CFG_OBSS_HT40_SCAN_ACTIVE_DWELL_TIME_MAX),
3850
3851 REG_VARIABLE(CFG_OBSS_HT40_SCAN_PASSIVE_DWELL_TIME_NAME,
3852 WLAN_PARAM_Integer,
3853 struct hdd_config, obss_passive_dwelltime,
3854 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3855 CFG_OBSS_HT40_SCAN_PASSIVE_DWELL_TIME_DEFAULT,
3856 CFG_OBSS_HT40_SCAN_PASSIVE_DWELL_TIME_MIN,
3857 CFG_OBSS_HT40_SCAN_PASSIVE_DWELL_TIME_MAX),
3858
3859 REG_VARIABLE(CFG_OBSS_HT40_SCAN_WIDTH_TRIGGER_INTERVAL_NAME,
3860 WLAN_PARAM_Integer,
3861 struct hdd_config, obss_width_trigger_interval,
3862 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3863 CFG_OBSS_HT40_SCAN_WIDTH_TRIGGER_INTERVAL_DEFAULT,
3864 CFG_OBSS_HT40_SCAN_WIDTH_TRIGGER_INTERVAL_MIN,
3865 CFG_OBSS_HT40_SCAN_WIDTH_TRIGGER_INTERVAL_MAX),
Deepak Dhamdhere68929ec2015-08-05 15:16:35 -07003866
3867 REG_VARIABLE(CFG_INFORM_BSS_RSSI_RAW_NAME, WLAN_PARAM_Integer,
3868 struct hdd_config, inform_bss_rssi_raw,
3869 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3870 CFG_INFORM_BSS_RSSI_RAW_DEFAULT,
3871 CFG_INFORM_BSS_RSSI_RAW_MIN,
3872 CFG_INFORM_BSS_RSSI_RAW_MAX),
Tushnim Bhattacharyya24e12a62015-10-12 14:51:56 -07003873
Manikandan Mohan976e7562016-03-15 16:33:31 -07003874#ifdef WLAN_FEATURE_TSF
3875 REG_VARIABLE(CFG_SET_TSF_GPIO_PIN_NAME, WLAN_PARAM_Integer,
3876 struct hdd_config, tsf_gpio_pin,
3877 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3878 CFG_SET_TSF_GPIO_PIN_DEFAULT,
3879 CFG_SET_TSF_GPIO_PIN_MIN,
3880 CFG_SET_TSF_GPIO_PIN_MAX),
3881#endif
3882
Gupta, Kapilc68ad462016-02-01 19:17:23 +05303883 REG_VARIABLE(CFG_ROAM_DENSE_TRAFFIC_THRESHOLD, WLAN_PARAM_Integer,
3884 struct hdd_config, roam_dense_traffic_thresh,
3885 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3886 CFG_ROAM_DENSE_TRAFFIC_THRESHOLD_DEFAULT,
3887 CFG_ROAM_DENSE_TRAFFIC_THRESHOLD_MIN,
3888 CFG_ROAM_DENSE_TRAFFIC_THRESHOLD_MAX),
3889
3890 REG_VARIABLE(CFG_ROAM_DENSE_RSSI_THRE_OFFSET, WLAN_PARAM_Integer,
3891 struct hdd_config, roam_dense_rssi_thresh_offset,
3892 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3893 CFG_ROAM_DENSE_RSSI_THRE_OFFSET_DEFAULT,
3894 CFG_ROAM_DENSE_RSSI_THRE_OFFSET_MIN,
3895 CFG_ROAM_DENSE_RSSI_THRE_OFFSET_MAX),
3896
Abhishek Singh165bc602016-03-21 12:43:00 +05303897 REG_VARIABLE(CFG_IGNORE_PEER_HT_MODE_NAME, WLAN_PARAM_Integer,
3898 struct hdd_config, ignore_peer_ht_opmode,
3899 VAR_FLAGS_OPTIONAL |
3900 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3901 CFG_IGNORE_PEER_HT_MODE_DEFAULT,
3902 CFG_IGNORE_PEER_HT_MODE_MIN,
3903 CFG_IGNORE_PEER_HT_MODE_MAX),
3904
Gupta, Kapilc68ad462016-02-01 19:17:23 +05303905 REG_VARIABLE(CFG_ROAM_DENSE_MIN_APS, WLAN_PARAM_Integer,
3906 struct hdd_config, roam_dense_min_aps,
3907 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3908 CFG_ROAM_DENSE_MIN_APS_DEFAULT,
3909 CFG_ROAM_DENSE_MIN_APS_MIN,
3910 CFG_ROAM_DENSE_MIN_APS_MAX),
3911
Abhishek Singh5ea86532016-04-27 14:10:53 +05303912 REG_VARIABLE(CFG_ENABLE_FATAL_EVENT_TRIGGER, WLAN_PARAM_Integer,
3913 struct hdd_config, enable_fatal_event,
3914 VAR_FLAGS_OPTIONAL |
3915 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3916 CFG_ENABLE_FATAL_EVENT_TRIGGER_DEFAULT,
3917 CFG_ENABLE_FATAL_EVENT_TRIGGER_MIN,
3918 CFG_ENABLE_FATAL_EVENT_TRIGGER_MAX),
3919
Abhishek Singh10ecf582016-05-04 17:48:59 +05303920 REG_VARIABLE(CFG_ENABLE_EDCA_INI_NAME, WLAN_PARAM_Integer,
3921 struct hdd_config, enable_edca_params,
3922 VAR_FLAGS_OPTIONAL |
3923 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3924 CFG_ENABLE_EDCA_INI_DEFAULT,
3925 CFG_ENABLE_EDCA_INI_MIN,
3926 CFG_ENABLE_EDCA_INI_MAX),
3927
Agrawal Ashishb2d1a452016-05-05 12:23:58 +05303928 REG_VARIABLE(CFG_ENABLE_GO_CTS2SELF_FOR_STA, WLAN_PARAM_Integer,
3929 struct hdd_config, enable_go_cts2self_for_sta,
3930 VAR_FLAGS_OPTIONAL |
3931 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3932 CFG_ENABLE_GO_CTS2SELF_FOR_STA_DEFAULT,
3933 CFG_ENABLE_GO_CTS2SELF_FOR_STA_MIN,
3934 CFG_ENABLE_GO_CTS2SELF_FOR_STA_MAX),
3935
Abhishek Singh10ecf582016-05-04 17:48:59 +05303936 REG_VARIABLE(CFG_EDCA_VO_CWMIN_VALUE_NAME, WLAN_PARAM_Integer,
3937 struct hdd_config, edca_vo_cwmin,
3938 VAR_FLAGS_OPTIONAL |
3939 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3940 CFG_EDCA_VO_CWMIN_VALUE_DEFAULT,
3941 CFG_EDCA_VO_CWMIN_VALUE_MIN,
3942 CFG_EDCA_VO_CWMIN_VALUE_MAX),
3943
3944 REG_VARIABLE(CFG_EDCA_VI_CWMIN_VALUE_NAME, WLAN_PARAM_Integer,
3945 struct hdd_config, edca_vi_cwmin,
3946 VAR_FLAGS_OPTIONAL |
3947 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3948 CFG_EDCA_VI_CWMIN_VALUE_DEFAULT,
3949 CFG_EDCA_VI_CWMIN_VALUE_MIN,
3950 CFG_EDCA_VI_CWMIN_VALUE_MAX),
3951
3952 REG_VARIABLE(CFG_EDCA_BK_CWMIN_VALUE_NAME, WLAN_PARAM_Integer,
3953 struct hdd_config, edca_bk_cwmin,
3954 VAR_FLAGS_OPTIONAL |
3955 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3956 CFG_EDCA_BK_CWMIN_VALUE_DEFAULT,
3957 CFG_EDCA_BK_CWMIN_VALUE_MIN,
3958 CFG_EDCA_BK_CWMIN_VALUE_MAX),
3959
3960 REG_VARIABLE(CFG_EDCA_BE_CWMIN_VALUE_NAME, WLAN_PARAM_Integer,
3961 struct hdd_config, edca_be_cwmin,
3962 VAR_FLAGS_OPTIONAL |
3963 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3964 CFG_EDCA_BE_CWMIN_VALUE_DEFAULT,
3965 CFG_EDCA_BE_CWMIN_VALUE_MIN,
3966 CFG_EDCA_BE_CWMIN_VALUE_MAX),
3967
3968 REG_VARIABLE(CFG_EDCA_VO_CWMAX_VALUE_NAME, WLAN_PARAM_Integer,
3969 struct hdd_config, edca_vo_cwmax,
3970 VAR_FLAGS_OPTIONAL |
3971 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3972 CFG_EDCA_VO_CWMAX_VALUE_DEFAULT,
3973 CFG_EDCA_VO_CWMAX_VALUE_MIN,
3974 CFG_EDCA_VO_CWMAX_VALUE_MAX),
3975
3976 REG_VARIABLE(CFG_EDCA_VI_CWMAX_VALUE_NAME, WLAN_PARAM_Integer,
3977 struct hdd_config, edca_vi_cwmax,
3978 VAR_FLAGS_OPTIONAL |
3979 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3980 CFG_EDCA_VI_CWMAX_VALUE_DEFAULT,
3981 CFG_EDCA_VI_CWMAX_VALUE_MIN,
3982 CFG_EDCA_VI_CWMAX_VALUE_MAX),
3983
3984 REG_VARIABLE(CFG_EDCA_BK_CWMAX_VALUE_NAME, WLAN_PARAM_Integer,
3985 struct hdd_config, edca_bk_cwmax,
3986 VAR_FLAGS_OPTIONAL |
3987 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3988 CFG_EDCA_BK_CWMAX_VALUE_DEFAULT,
3989 CFG_EDCA_BK_CWMAX_VALUE_MIN,
3990 CFG_EDCA_BK_CWMAX_VALUE_MAX),
3991
3992 REG_VARIABLE(CFG_EDCA_BE_CWMAX_VALUE_NAME, WLAN_PARAM_Integer,
3993 struct hdd_config, edca_be_cwmax,
3994 VAR_FLAGS_OPTIONAL |
3995 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3996 CFG_EDCA_BE_CWMAX_VALUE_DEFAULT,
3997 CFG_EDCA_BE_CWMAX_VALUE_MIN,
3998 CFG_EDCA_BE_CWMAX_VALUE_MAX),
3999
4000 REG_VARIABLE(CFG_EDCA_VO_AIFS_VALUE_NAME, WLAN_PARAM_Integer,
4001 struct hdd_config, edca_vo_aifs,
4002 VAR_FLAGS_OPTIONAL |
4003 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4004 CFG_EDCA_VO_AIFS_VALUE_DEFAULT,
4005 CFG_EDCA_VO_AIFS_VALUE_MIN,
4006 CFG_EDCA_VO_AIFS_VALUE_MAX),
4007
4008 REG_VARIABLE(CFG_EDCA_VI_AIFS_VALUE_NAME, WLAN_PARAM_Integer,
4009 struct hdd_config, edca_vi_aifs,
4010 VAR_FLAGS_OPTIONAL |
4011 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4012 CFG_EDCA_VI_AIFS_VALUE_DEFAULT,
4013 CFG_EDCA_VI_AIFS_VALUE_MIN,
4014 CFG_EDCA_VI_AIFS_VALUE_MAX),
4015
4016 REG_VARIABLE(CFG_EDCA_BK_AIFS_VALUE_NAME, WLAN_PARAM_Integer,
4017 struct hdd_config, edca_bk_aifs,
4018 VAR_FLAGS_OPTIONAL |
4019 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4020 CFG_EDCA_BK_AIFS_VALUE_DEFAULT,
4021 CFG_EDCA_BK_AIFS_VALUE_MIN,
4022 CFG_EDCA_BK_AIFS_VALUE_MAX),
4023
4024 REG_VARIABLE(CFG_EDCA_BE_AIFS_VALUE_NAME, WLAN_PARAM_Integer,
4025 struct hdd_config, edca_be_aifs,
4026 VAR_FLAGS_OPTIONAL |
4027 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4028 CFG_EDCA_BE_AIFS_VALUE_DEFAULT,
4029 CFG_EDCA_BE_AIFS_VALUE_MIN,
4030 CFG_EDCA_BE_AIFS_VALUE_MAX),
gbian62edd7e2017-03-07 13:12:13 +08004031
4032 REG_VARIABLE_STRING(CFG_ENABLE_TX_SCHED_WRR_VO_NAME,
4033 WLAN_PARAM_String,
4034 struct hdd_config, tx_sched_wrr_vo,
4035 VAR_FLAGS_OPTIONAL,
4036 (void *) CFG_ENABLE_TX_SCHED_WRR_VO_DEFAULT),
4037
4038 REG_VARIABLE_STRING(CFG_ENABLE_TX_SCHED_WRR_VI_NAME,
4039 WLAN_PARAM_String,
4040 struct hdd_config, tx_sched_wrr_vi,
4041 VAR_FLAGS_OPTIONAL,
4042 (void *) CFG_ENABLE_TX_SCHED_WRR_VI_DEFAULT),
4043
4044 REG_VARIABLE_STRING(CFG_ENABLE_TX_SCHED_WRR_BE_NAME,
4045 WLAN_PARAM_String,
4046 struct hdd_config, tx_sched_wrr_be,
4047 VAR_FLAGS_OPTIONAL,
4048 (void *) CFG_ENABLE_TX_SCHED_WRR_BE_DEFAULT),
4049
4050 REG_VARIABLE_STRING(CFG_ENABLE_TX_SCHED_WRR_BK_NAME,
4051 WLAN_PARAM_String,
4052 struct hdd_config, tx_sched_wrr_bk,
4053 VAR_FLAGS_OPTIONAL,
4054 (void *) CFG_ENABLE_TX_SCHED_WRR_BK_DEFAULT),
4055
Deepak Dhamdhere3385d752016-05-25 20:36:47 -07004056#ifdef WLAN_FEATURE_NAN_DATAPATH
4057 REG_VARIABLE(CFG_ENABLE_NAN_DATAPATH_NAME, WLAN_PARAM_Integer,
4058 struct hdd_config, enable_nan_datapath,
4059 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4060 CFG_ENABLE_NAN_DATAPATH_DEFAULT,
4061 CFG_ENABLE_NAN_DATAPATH_MIN,
4062 CFG_ENABLE_NAN_DATAPATH_MAX),
4063
4064 REG_VARIABLE(CFG_ENABLE_NAN_NDI_CHANNEL_NAME, WLAN_PARAM_Integer,
4065 struct hdd_config, nan_datapath_ndi_channel,
4066 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4067 CFG_ENABLE_NAN_NDI_CHANNEL_DEFAULT,
4068 CFG_ENABLE_NAN_NDI_CHANNEL_MIN,
4069 CFG_ENABLE_NAN_NDI_CHANNEL_MAX),
4070#endif
Kapil Gupta0ed58dc2016-04-22 15:35:26 +05304071 REG_VARIABLE(CFG_CREATE_BUG_REPORT_FOR_SCAN, WLAN_PARAM_Integer,
4072 struct hdd_config, bug_report_for_no_scan_results,
4073 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4074 CFG_CREATE_BUG_REPORT_FOR_SCAN_DEFAULT,
4075 CFG_CREATE_BUG_REPORT_FOR_SCAN_DISABLE,
4076 CFG_CREATE_BUG_REPORT_FOR_SCAN_ENABLE),
Abhishek Singh5ea86532016-04-27 14:10:53 +05304077
Kapil Gupta8878ad92017-02-13 11:56:04 +05304078 REG_VARIABLE(CFG_USER_AUTO_CHANNEL_SELECTION, WLAN_PARAM_Integer,
4079 struct hdd_config, vendor_acs_support,
4080 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4081 CFG_USER_AUTO_CHANNEL_SELECTION_DEFAULT,
4082 CFG_USER_AUTO_CHANNEL_SELECTION_DISABLE,
4083 CFG_USER_AUTO_CHANNEL_SELECTION_ENABLE),
4084
4085 REG_VARIABLE(CFG_USER_ACS_DFS_LTE, WLAN_PARAM_Integer,
4086 struct hdd_config, acs_support_for_dfs_ltecoex,
4087 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4088 CFG_USER_ACS_DFS_LTE_DEFAULT,
4089 CFG_USER_ACS_DFS_LTE_DISABLE,
4090 CFG_USER_ACS_DFS_LTE_ENABLE),
4091
Nirav Shahcc1f1ae2016-04-26 11:41:29 +05304092 REG_VARIABLE(CFG_ENABLE_DP_TRACE, WLAN_PARAM_Integer,
4093 struct hdd_config, enable_dp_trace,
4094 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4095 CFG_ENABLE_DP_TRACE_DEFAULT,
4096 CFG_ENABLE_DP_TRACE_MIN,
4097 CFG_ENABLE_DP_TRACE_MAX),
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05304098
Mohit Khannaf8f96822017-05-17 17:11:59 -07004099
4100 REG_VARIABLE_STRING(CFG_ENABLE_DP_TRACE_CONFIG, WLAN_PARAM_String,
4101 struct hdd_config, dp_trace_config,
4102 VAR_FLAGS_OPTIONAL,
4103 (void *) CFG_ENABLE_DP_TRACE_CONFIG_DEFAULT),
4104
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05304105 REG_VARIABLE(CFG_ADAPTIVE_SCAN_DWELL_MODE_NAME, WLAN_PARAM_Integer,
4106 struct hdd_config, scan_adaptive_dwell_mode,
4107 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4108 CFG_ADAPTIVE_SCAN_DWELL_MODE_DEFAULT,
4109 CFG_ADAPTIVE_SCAN_DWELL_MODE_MIN,
4110 CFG_ADAPTIVE_SCAN_DWELL_MODE_MAX),
4111
4112 REG_VARIABLE(CFG_ADAPTIVE_ROAMSCAN_DWELL_MODE_NAME, WLAN_PARAM_Integer,
4113 struct hdd_config, roamscan_adaptive_dwell_mode,
4114 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4115 CFG_ADAPTIVE_ROAMSCAN_DWELL_MODE_DEFAULT,
4116 CFG_ADAPTIVE_ROAMSCAN_DWELL_MODE_MIN,
4117 CFG_ADAPTIVE_ROAMSCAN_DWELL_MODE_MAX),
4118
4119 REG_VARIABLE(CFG_ADAPTIVE_EXTSCAN_DWELL_MODE_NAME, WLAN_PARAM_Integer,
4120 struct hdd_config, extscan_adaptive_dwell_mode,
4121 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4122 CFG_ADAPTIVE_EXTSCAN_DWELL_MODE_DEFAULT,
4123 CFG_ADAPTIVE_EXTSCAN_DWELL_MODE_MIN,
4124 CFG_ADAPTIVE_EXTSCAN_DWELL_MODE_MAX),
4125
4126 REG_VARIABLE(CFG_ADAPTIVE_DWELL_MODE_ENABLED_NAME, WLAN_PARAM_Integer,
4127 struct hdd_config, adaptive_dwell_mode_enabled,
4128 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4129 CFG_ADAPTIVE_DWELL_MODE_ENABLED_DEFAULT,
4130 CFG_ADAPTIVE_DWELL_MODE_ENABLED_MIN,
4131 CFG_ADAPTIVE_DWELL_MODE_ENABLED_MAX),
4132
4133 REG_VARIABLE(CFG_GLOBAL_ADAPTIVE_DWELL_MODE_NAME, WLAN_PARAM_Integer,
4134 struct hdd_config, global_adapt_dwelltime_mode,
4135 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4136 CFG_GLOBAL_ADAPTIVE_DWELL_MODE_DEFAULT,
4137 CFG_GLOBAL_ADAPTIVE_DWELL_MODE_MIN,
4138 CFG_GLOBAL_ADAPTIVE_DWELL_MODE_MAX),
4139
4140 REG_VARIABLE(CFG_ADAPT_DWELL_LPF_WEIGHT_NAME, WLAN_PARAM_Integer,
4141 struct hdd_config, adapt_dwell_lpf_weight,
4142 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4143 CFG_ADAPT_DWELL_LPF_WEIGHT_DEFAULT,
4144 CFG_ADAPT_DWELL_LPF_WEIGHT_MIN,
4145 CFG_ADAPT_DWELL_LPF_WEIGHT_MAX),
4146
Naveen Rawat64e477e2016-05-20 10:34:56 -07004147 REG_VARIABLE(CFG_SUB_20_CHANNEL_WIDTH_NAME, WLAN_PARAM_Integer,
4148 struct hdd_config, enable_sub_20_channel_width,
4149 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4150 CFG_SUB_20_CHANNEL_WIDTH_DEFAULT,
4151 CFG_SUB_20_CHANNEL_WIDTH_MIN,
4152 CFG_SUB_20_CHANNEL_WIDTH_MAX),
4153
Rajeev Kumar Sirasanagandlaaf474742016-09-06 17:54:50 +05304154 REG_VARIABLE(CFG_TGT_GTX_USR_CFG_NAME, WLAN_PARAM_Integer,
4155 struct hdd_config, tgt_gtx_usr_cfg,
4156 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4157 CFG_TGT_GTX_USR_CFG_DEFAULT,
4158 CFG_TGT_GTX_USR_CFG_MIN,
4159 CFG_TGT_GTX_USR_CFG_MAX),
4160
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05304161 REG_VARIABLE(CFG_ADAPT_DWELL_PASMON_INTVAL_NAME, WLAN_PARAM_Integer,
4162 struct hdd_config, adapt_dwell_passive_mon_intval,
4163 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4164 CFG_ADAPT_DWELL_PASMON_INTVAL_DEFAULT,
4165 CFG_ADAPT_DWELL_PASMON_INTVAL_MIN,
4166 CFG_ADAPT_DWELL_PASMON_INTVAL_MAX),
4167
4168 REG_VARIABLE(CFG_ADAPT_DWELL_WIFI_THRESH_NAME, WLAN_PARAM_Integer,
4169 struct hdd_config, adapt_dwell_wifi_act_threshold,
4170 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4171 CFG_ADAPT_DWELL_WIFI_THRESH_DEFAULT,
4172 CFG_ADAPT_DWELL_WIFI_THRESH_MIN,
4173 CFG_ADAPT_DWELL_WIFI_THRESH_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004174
Nirav Shahbd36b062016-07-18 11:12:59 +05304175 REG_VARIABLE(CFG_RX_MODE_NAME, WLAN_PARAM_Integer,
4176 struct hdd_config, rx_mode,
4177 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4178 CFG_RX_MODE_DEFAULT,
4179 CFG_RX_MODE_MIN,
4180 CFG_RX_MODE_MAX),
4181
4182 REG_VARIABLE_STRING(CFG_RPS_RX_QUEUE_CPU_MAP_LIST_NAME,
4183 WLAN_PARAM_String,
4184 struct hdd_config, cpu_map_list,
4185 VAR_FLAGS_OPTIONAL,
4186 (void *)CFG_RPS_RX_QUEUE_CPU_MAP_LIST_DEFAULT),
4187
Amar Singhal18517882016-08-08 12:26:20 -07004188 REG_VARIABLE(CFG_INDOOR_CHANNEL_SUPPORT_NAME,
4189 WLAN_PARAM_Integer,
4190 struct hdd_config, indoor_channel_support,
4191 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4192 CFG_INDOOR_CHANNEL_SUPPORT_DEFAULT,
4193 CFG_INDOOR_CHANNEL_SUPPORT_MIN,
4194 CFG_INDOOR_CHANNEL_SUPPORT_MAX),
4195
Yingying Tangb4832f72016-10-20 13:44:55 +08004196 REG_VARIABLE(CFG_SAP_TX_LEAKAGE_THRESHOLD_NAME,
4197 WLAN_PARAM_Integer,
4198 struct hdd_config, sap_tx_leakage_threshold,
4199 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4200 CFG_SAP_TX_LEAKAGE_THRESHOLD_DEFAULT,
4201 CFG_SAP_TX_LEAKAGE_THRESHOLD_MIN,
4202 CFG_SAP_TX_LEAKAGE_THRESHOLD_MAX),
4203
Mukul Sharmaf7d62e12016-09-03 15:16:22 +05304204 REG_VARIABLE(CFG_BUG_ON_REINIT_FAILURE_NAME, WLAN_PARAM_Integer,
4205 struct hdd_config, bug_on_reinit_failure,
4206 VAR_FLAGS_OPTIONAL |
4207 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4208 CFG_BUG_ON_REINIT_FAILURE_DEFAULT,
4209 CFG_BUG_ON_REINIT_FAILURE_MIN,
4210 CFG_BUG_ON_REINIT_FAILURE_MAX),
4211
Rajeev Kumar Sirasanagandlab79b5462016-09-06 18:33:17 +05304212 REG_VARIABLE(CFG_SAP_FORCE_11N_FOR_11AC_NAME, WLAN_PARAM_Integer,
4213 struct hdd_config, sap_force_11n_for_11ac,
4214 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4215 CFG_SAP_FORCE_11N_FOR_11AC_DEFAULT,
4216 CFG_SAP_FORCE_11N_FOR_11AC_MIN,
4217 CFG_SAP_FORCE_11N_FOR_11AC_MAX),
4218
Arun Khandavallifae92942016-08-01 13:31:08 +05304219 REG_VARIABLE(CFG_INTERFACE_CHANGE_WAIT_NAME, WLAN_PARAM_Integer,
4220 struct hdd_config, iface_change_wait_time,
4221 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
4222 CFG_INTERFACE_CHANGE_WAIT_DEFAULT,
4223 CFG_INTERFACE_CHANGE_WAIT_MIN,
4224 CFG_INTERFACE_CHANGE_WAIT_MAX),
Ravi Joshibb8d4512016-08-22 10:14:52 -07004225
4226 REG_VARIABLE(CFG_FILTER_MULTICAST_REPLAY_NAME,
4227 WLAN_PARAM_Integer,
4228 struct hdd_config, multicast_replay_filter,
4229 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4230 CFG_FILTER_MULTICAST_REPLAY_DEFAULT,
4231 CFG_FILTER_MULTICAST_REPLAY_MIN,
4232 CFG_FILTER_MULTICAST_REPLAY_MAX),
Manjeet Singhe7ecb7c2016-09-03 12:34:53 +05304233
4234 REG_VARIABLE(CFG_SIFS_BURST_DURATION_NAME, WLAN_PARAM_Integer,
4235 struct hdd_config, sifs_burst_duration,
4236 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4237 CFG_SIFS_BURST_DURATION_DEFAULT,
4238 CFG_SIFS_BURST_DURATION_MIN,
4239 CFG_SIFS_BURST_DURATION_MAX),
Selvaraj, Sridharebda0f22016-08-29 16:05:23 +05304240 REG_VARIABLE(CFG_OPTIMIZE_CA_EVENT_NAME, WLAN_PARAM_Integer,
4241 struct hdd_config, goptimize_chan_avoid_event,
4242 VAR_FLAGS_OPTIONAL |
4243 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4244 CFG_OPTIMIZE_CA_EVENT_DEFAULT,
4245 CFG_OPTIMIZE_CA_EVENT_DISABLE,
4246 CFG_OPTIMIZE_CA_EVENT_ENABLE),
Padma, Santhosh Kumara7119672016-08-16 16:05:14 +05304247
4248 REG_VARIABLE(CFG_TX_AGGREGATION_SIZE, WLAN_PARAM_Integer,
4249 struct hdd_config, tx_aggregation_size,
4250 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4251 CFG_TX_AGGREGATION_SIZE_DEFAULT,
4252 CFG_TX_AGGREGATION_SIZE_MIN,
4253 CFG_TX_AGGREGATION_SIZE_MAX),
4254
4255 REG_VARIABLE(CFG_RX_AGGREGATION_SIZE, WLAN_PARAM_Integer,
4256 struct hdd_config, rx_aggregation_size,
4257 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4258 CFG_RX_AGGREGATION_SIZE_DEFAULT,
4259 CFG_RX_AGGREGATION_SIZE_MIN,
4260 CFG_RX_AGGREGATION_SIZE_MAX),
Agrawal, Ashish4e5fa1c2016-09-21 19:03:43 +05304261 REG_VARIABLE(CFG_SAP_MAX_INACTIVITY_OVERRIDE_NAME, WLAN_PARAM_Integer,
4262 struct hdd_config, sap_max_inactivity_override,
4263 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4264 CFG_SAP_MAX_INACTIVITY_OVERRIDE_DEFAULT,
4265 CFG_SAP_MAX_INACTIVITY_OVERRIDE_MIN,
Sandeep Puligillaafa52892016-10-26 19:03:16 -07004266 CFG_SAP_MAX_INACTIVITY_OVERRIDE_MAX),
4267 REG_VARIABLE(CFG_CRASH_FW_TIMEOUT_NAME, WLAN_PARAM_Integer,
4268 struct hdd_config, fw_timeout_crash,
4269 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4270 CFG_CRASH_FW_TIMEOUT_DEFAULT,
4271 CFG_CRASH_FW_TIMEOUT_DISABLE,
4272 CFG_CRASH_FW_TIMEOUT_ENABLE),
Dustin Browncd756942016-11-23 12:25:33 -08004273 REG_VARIABLE(CFG_RX_WAKELOCK_TIMEOUT_NAME, WLAN_PARAM_Integer,
4274 struct hdd_config, rx_wakelock_timeout,
4275 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4276 CFG_RX_WAKELOCK_TIMEOUT_DEFAULT,
4277 CFG_RX_WAKELOCK_TIMEOUT_MIN,
Anurag Chouhan7c01cc42016-12-16 21:33:43 +05304278 CFG_RX_WAKELOCK_TIMEOUT_MAX),
gaoleze2920bd2017-03-21 17:38:42 +08004279 REG_VARIABLE(CFG_SAP_CH_SWITCH_BEACON_CNT, WLAN_PARAM_Integer,
4280 struct hdd_config, sap_chanswitch_beacon_cnt,
4281 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4282 CFG_SAP_CH_SWITCH_BEACON_CNT_DEFAULT,
4283 CFG_SAP_CH_SWITCH_BEACON_CNT_MIN,
4284 CFG_SAP_CH_SWITCH_BEACON_CNT_MAX),
gaolez76d2a162017-03-21 19:23:58 +08004285 REG_VARIABLE(CFG_SAP_CH_SWITCH_MODE, WLAN_PARAM_Integer,
4286 struct hdd_config, sap_chanswitch_mode,
4287 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4288 CFG_SAP_CH_SWITCH_MODE_DEFAULT,
4289 CFG_SAP_CH_SWITCH_MODE_MIN,
4290 CFG_SAP_CH_SWITCH_MODE_MAX),
Anurag Chouhan7c01cc42016-12-16 21:33:43 +05304291 REG_VARIABLE(CFG_MAX_SCHED_SCAN_PLAN_INT_NAME, WLAN_PARAM_Integer,
4292 struct hdd_config, max_sched_scan_plan_interval,
4293 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4294 CFG_MAX_SCHED_SCAN_PLAN_INT_DEFAULT,
4295 CFG_MAX_SCHED_SCAN_PLAN_INT_MIN,
4296 CFG_MAX_SCHED_SCAN_PLAN_INT_MAX),
4297 REG_VARIABLE(CFG_MAX_SCHED_SCAN_PLAN_ITRNS_NAME, WLAN_PARAM_Integer,
4298 struct hdd_config, max_sched_scan_plan_iterations,
4299 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4300 CFG_MAX_SCHED_SCAN_PLAN_ITRNS_DEFAULT,
4301 CFG_MAX_SCHED_SCAN_PLAN_ITRNS_MIN,
4302 CFG_MAX_SCHED_SCAN_PLAN_ITRNS_MAX),
Kapil Gupta5cda2252016-12-29 18:44:26 +05304303
Jeff Johnson441e1f72017-02-07 08:50:49 -08004304 REG_VARIABLE(CFG_STANDARD_WEXT_CONTROL_NAME, WLAN_PARAM_Integer,
4305 struct hdd_config, standard_wext_control,
4306 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4307 CFG_STANDARD_WEXT_CONTROL_DEFAULT,
4308 CFG_STANDARD_WEXT_CONTROL_MIN,
4309 CFG_STANDARD_WEXT_CONTROL_MAX),
4310 REG_VARIABLE(CFG_PRIVATE_WEXT_CONTROL_NAME, WLAN_PARAM_Integer,
4311 struct hdd_config, private_wext_control,
4312 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4313 CFG_PRIVATE_WEXT_CONTROL_DEFAULT,
4314 CFG_PRIVATE_WEXT_CONTROL_MIN,
4315 CFG_PRIVATE_WEXT_CONTROL_MAX),
Kapil Gupta5cda2252016-12-29 18:44:26 +05304316
Arun Khandavallicc544b32017-01-30 19:52:16 +05304317 REG_VARIABLE(CFG_SAP_INTERNAL_RESTART_NAME, WLAN_PARAM_Integer,
4318 struct hdd_config, sap_internal_restart,
4319 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4320 CFG_SAP_INTERNAL_RESTART_DEFAULT,
4321 CFG_SAP_INTERNAL_RESTART_MIN,
4322 CFG_SAP_INTERNAL_RESTART_MAX),
Srinivas Girigowda70e169a2017-03-07 23:55:57 -08004323
Hanumanth Reddy Pothulaffc2d482017-07-04 11:32:44 +05304324 REG_VARIABLE(CFG_RESTART_BEACONING_ON_CH_AVOID_NAME, WLAN_PARAM_Integer,
4325 struct hdd_config, restart_beaconing_on_chan_avoid_event,
Hanumanth Reddy Pothula9c161dd2017-03-23 19:03:08 +05304326 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
Hanumanth Reddy Pothulaffc2d482017-07-04 11:32:44 +05304327 CFG_RESTART_BEACONING_ON_CH_AVOID_DEFAULT,
4328 CFG_RESTART_BEACONING_ON_CH_AVOID_MIN,
4329 CFG_RESTART_BEACONING_ON_CH_AVOID_MAX),
Hanumanth Reddy Pothula9c161dd2017-03-23 19:03:08 +05304330
Kapil Gupta5cda2252016-12-29 18:44:26 +05304331 REG_VARIABLE(CFG_PER_ROAM_ENABLE_NAME, WLAN_PARAM_Integer,
4332 struct hdd_config, is_per_roam_enabled,
4333 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4334 CFG_PER_ROAM_ENABLE_DEFAULT,
4335 CFG_PER_ROAM_ENABLE_MIN,
4336 CFG_PER_ROAM_ENABLE_MAX),
4337
4338 REG_VARIABLE(CFG_PER_ROAM_CONFIG_HIGH_RATE_TH_NAME, WLAN_PARAM_Integer,
4339 struct hdd_config, per_roam_high_rate_threshold,
4340 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4341 CFG_PER_ROAM_CONFIG_HIGH_RATE_TH_DEFAULT,
4342 CFG_PER_ROAM_CONFIG_HIGH_RATE_TH_MIN,
4343 CFG_PER_ROAM_CONFIG_HIGH_RATE_TH_MAX),
4344
4345 REG_VARIABLE(CFG_PER_ROAM_CONFIG_LOW_RATE_TH_NAME, WLAN_PARAM_Integer,
4346 struct hdd_config, per_roam_low_rate_threshold,
4347 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4348 CFG_PER_ROAM_CONFIG_LOW_RATE_TH_DEFAULT,
4349 CFG_PER_ROAM_CONFIG_LOW_RATE_TH_MIN,
4350 CFG_PER_ROAM_CONFIG_LOW_RATE_TH_MAX),
4351
4352 REG_VARIABLE(CFG_PER_ROAM_CONFIG_RATE_TH_PERCENT_NAME,
4353 WLAN_PARAM_Integer, struct hdd_config, per_roam_th_percent,
4354 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4355 CFG_PER_ROAM_CONFIG_RATE_TH_PERCENT_DEFAULT,
4356 CFG_PER_ROAM_CONFIG_RATE_TH_PERCENT_MIN,
4357 CFG_PER_ROAM_CONFIG_RATE_TH_PERCENT_MAX),
4358
4359 REG_VARIABLE(CFG_PER_ROAM_REST_TIME_NAME, WLAN_PARAM_Integer,
4360 struct hdd_config, per_roam_rest_time,
4361 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4362 CFG_PER_ROAM_REST_TIME_DEFAULT,
4363 CFG_PER_ROAM_REST_TIME_MIN,
4364 CFG_PER_ROAM_REST_TIME_MAX),
Kapil Gupta957827b2017-02-13 15:47:04 +05304365
4366 REG_VARIABLE(CFG_PER_ROAM_MONITOR_TIME, WLAN_PARAM_Integer,
4367 struct hdd_config, per_roam_mon_time,
4368 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4369 CFG_PER_ROAM_MONTIOR_TIME_DEFAULT,
4370 CFG_PER_ROAM_MONITOR_TIME_MIN,
4371 CFG_PER_ROAM_MONITOR_TIME_MAX),
4372
Selvaraj, Sridhar0641fab2017-05-17 16:02:00 +05304373 REG_VARIABLE(CFG_PER_ROAM_MIN_CANDIDATE_RSSI, WLAN_PARAM_Integer,
4374 struct hdd_config, min_candidate_rssi,
4375 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4376 CFG_PER_ROAM_MIN_CANDIDATE_RSSI_DEFAULT,
4377 CFG_PER_ROAM_MIN_CANDIDATE_RSSI_MIN,
4378 CFG_PER_ROAM_MIN_CANDIDATE_RSSI_MAX),
4379
Hanumanth Reddy Pothulae87621b2017-04-12 20:53:35 +05304380 REG_VARIABLE(CFG_ACTIVE_UC_BPF_MODE_NAME, WLAN_PARAM_Integer,
4381 struct hdd_config, active_uc_bpf_mode,
Dustin Brown13995f02017-01-12 15:38:42 -08004382 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
Hanumanth Reddy Pothulae87621b2017-04-12 20:53:35 +05304383 CFG_ACTIVE_UC_BPF_MODE_DEFAULT,
4384 CFG_ACTIVE_UC_BPF_MODE_MIN,
4385 CFG_ACTIVE_UC_BPF_MODE_MAX),
4386
4387 REG_VARIABLE(CFG_ACTIVE_MC_BC_BPF_MODE_NAME, WLAN_PARAM_Integer,
4388 struct hdd_config, active_mc_bc_bpf_mode,
4389 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4390 CFG_ACTIVE_MC_BC_BPF_MODE_DEFAULT,
4391 CFG_ACTIVE_MC_BC_BPF_MODE_MIN,
4392 CFG_ACTIVE_MC_BC_BPF_MODE_MAX),
4393
Selvaraj, Sridhar4f684bb2017-01-19 15:59:23 +05304394 REG_VARIABLE(CFG_ENABLE_BCAST_PROBE_RESP_NAME, WLAN_PARAM_Integer,
4395 struct hdd_config, enable_bcast_probe_rsp,
4396 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4397 CFG_ENABLE_BCAST_PROBE_RESP_DEFAULT,
4398 CFG_ENABLE_BCAST_PROBE_RESP_MIN,
4399 CFG_ENABLE_BCAST_PROBE_RESP_MAX),
Naveen Rawatb2fc4132017-05-10 20:42:05 -07004400
Krishna Kumaar Natarajan90bb6f12017-03-03 21:05:52 -08004401#ifdef WLAN_FEATURE_11AX
4402 REG_VARIABLE(CFG_ENABLE_UL_MIMO_NAME, WLAN_PARAM_Integer,
4403 struct hdd_config, enable_ul_mimo,
4404 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4405 CFG_ENABLE_UL_MIMO_DEFAULT,
4406 CFG_ENABLE_UL_MIMO_MIN,
4407 CFG_ENABLE_UL_MIMO_MAX),
4408
4409 REG_VARIABLE(CFG_ENABLE_UL_OFDMA_NAME, WLAN_PARAM_Integer,
4410 struct hdd_config, enable_ul_ofdma,
4411 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4412 CFG_ENABLE_UL_OFDMA_DEFAULT,
4413 CFG_ENABLE_UL_OFDMA_MIN,
4414 CFG_ENABLE_UL_OFDMA_MAX),
Manikandan Mohan39accff2017-05-02 16:09:00 -07004415
4416 REG_VARIABLE(CFG_HE_STA_OBSSPD_NAME, WLAN_PARAM_HexInteger,
4417 struct hdd_config, he_sta_obsspd,
4418 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4419 CFG_HE_STA_OBSSPD_DEFAULT,
4420 CFG_HE_STA_OBSSPD_MIN,
4421 CFG_HE_STA_OBSSPD_MAX),
Krishna Kumaar Natarajan90bb6f12017-03-03 21:05:52 -08004422#endif
Dustin Brownab1364a2017-03-27 16:59:08 -07004423
4424 REG_VARIABLE(CFG_L1SS_SLEEP_ALLOWED_NAME, WLAN_PARAM_Integer,
4425 struct hdd_config, l1ss_sleep_allowed,
4426 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4427 CFG_L1SS_SLEEP_ALLOWED_DEFAULT,
4428 CFG_L1SS_SLEEP_ALLOWED_MIN,
4429 CFG_L1SS_SLEEP_ALLOWED_MAX),
4430
Srinivas Girigowda70e169a2017-03-07 23:55:57 -08004431 REG_VARIABLE(CFG_ARP_AC_CATEGORY, WLAN_PARAM_Integer,
4432 struct hdd_config, arp_ac_category,
4433 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4434 CFG_ARP_AC_CATEGORY_DEFAULT,
4435 CFG_ARP_AC_CATEGORY_MIN,
4436 CFG_ARP_AC_CATEGORY_MAX),
Jeff Johnson12a744b2017-04-04 08:19:37 -07004437
4438 REG_VARIABLE(CFG_ENABLE_ANI_NAME, WLAN_PARAM_Integer,
4439 struct hdd_config, ani_enabled,
4440 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4441 CFG_ENABLE_ANI_DEFAULT,
4442 CFG_ENABLE_ANI_MIN,
4443 CFG_ENABLE_ANI_MAX),
Amar Singhal5cccafe2017-02-15 12:42:58 -08004444
Selvaraj, Sridhara521aab2017-03-25 16:42:34 +05304445 REG_VARIABLE(CFG_QCN_IE_SUPPORT_NAME, WLAN_PARAM_Integer,
4446 struct hdd_config, qcn_ie_support,
4447 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4448 CFG_QCN_IE_SUPPORT_DEFAULT,
4449 CFG_QCN_IE_SUPPORT_MIN,
4450 CFG_QCN_IE_SUPPORT_MAX),
Amar Singhal5cccafe2017-02-15 12:42:58 -08004451
Dustin Brown7f939932017-05-18 15:02:17 -07004452 REG_VARIABLE(CFG_TIMER_MULTIPLIER_NAME, WLAN_PARAM_Integer,
4453 struct hdd_config, timer_multiplier,
4454 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4455 CFG_TIMER_MULTIPLIER_DEFAULT,
4456 CFG_TIMER_MULTIPLIER_MIN,
4457 CFG_TIMER_MULTIPLIER_MAX),
4458
Amar Singhal5cccafe2017-02-15 12:42:58 -08004459 REG_VARIABLE(CFG_ENABLE_REG_OFFLOAD_NAME, WLAN_PARAM_Integer,
4460 struct hdd_config, reg_offload_enabled,
4461 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4462 CFG_ENABLE_REG_OFFLOAD_DEFAULT,
4463 CFG_ENABLE_REG_OFFLOAD_MIN,
4464 CFG_ENABLE_REG_OFFLOAD_MAX),
Naveen Rawat2b6e3c92017-03-20 13:59:07 -07004465
Rajeev Kumar Sirasanagandlaaec0b082017-06-21 11:59:41 +05304466 REG_VARIABLE(CFG_PRB_REQ_IE_WHITELIST_NAME, WLAN_PARAM_Integer,
4467 struct hdd_config, probe_req_ie_whitelist,
4468 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4469 CFG_PRB_REQ_IE_WHITELIST_DEFAULT,
4470 CFG_PRB_REQ_IE_WHITELIST_MIN,
4471 CFG_PRB_REQ_IE_WHITELIST_MAX),
4472
4473 REG_VARIABLE(CFG_PRB_REQ_IE_BIT_MAP0_NAME, WLAN_PARAM_HexInteger,
4474 struct hdd_config, probe_req_ie_bitmap_0,
4475 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4476 CFG_PRB_REQ_IE_BIT_MAP0_DEFAULT,
4477 CFG_PRB_REQ_IE_BIT_MAP0_MIN,
4478 CFG_PRB_REQ_IE_BIT_MAP0_MAX),
4479
4480 REG_VARIABLE(CFG_PRB_REQ_IE_BIT_MAP1_NAME, WLAN_PARAM_HexInteger,
4481 struct hdd_config, probe_req_ie_bitmap_1,
4482 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4483 CFG_PRB_REQ_IE_BIT_MAP1_DEFAULT,
4484 CFG_PRB_REQ_IE_BIT_MAP1_MIN,
4485 CFG_PRB_REQ_IE_BIT_MAP1_MAX),
4486
4487 REG_VARIABLE(CFG_PRB_REQ_IE_BIT_MAP2_NAME, WLAN_PARAM_HexInteger,
4488 struct hdd_config, probe_req_ie_bitmap_2,
4489 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4490 CFG_PRB_REQ_IE_BIT_MAP2_DEFAULT,
4491 CFG_PRB_REQ_IE_BIT_MAP2_MIN,
4492 CFG_PRB_REQ_IE_BIT_MAP2_MAX),
4493
4494 REG_VARIABLE(CFG_PRB_REQ_IE_BIT_MAP3_NAME, WLAN_PARAM_HexInteger,
4495 struct hdd_config, probe_req_ie_bitmap_3,
4496 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4497 CFG_PRB_REQ_IE_BIT_MAP3_DEFAULT,
4498 CFG_PRB_REQ_IE_BIT_MAP3_MIN,
4499 CFG_PRB_REQ_IE_BIT_MAP3_MAX),
4500
4501 REG_VARIABLE(CFG_PRB_REQ_IE_BIT_MAP4_NAME, WLAN_PARAM_HexInteger,
4502 struct hdd_config, probe_req_ie_bitmap_4,
4503 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4504 CFG_PRB_REQ_IE_BIT_MAP4_DEFAULT,
4505 CFG_PRB_REQ_IE_BIT_MAP4_MIN,
4506 CFG_PRB_REQ_IE_BIT_MAP4_MAX),
4507
4508 REG_VARIABLE(CFG_PRB_REQ_IE_BIT_MAP5_NAME, WLAN_PARAM_HexInteger,
4509 struct hdd_config, probe_req_ie_bitmap_5,
4510 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4511 CFG_PRB_REQ_IE_BIT_MAP5_DEFAULT,
4512 CFG_PRB_REQ_IE_BIT_MAP5_MIN,
4513 CFG_PRB_REQ_IE_BIT_MAP5_MAX),
4514
4515 REG_VARIABLE(CFG_PRB_REQ_IE_BIT_MAP6_NAME, WLAN_PARAM_HexInteger,
4516 struct hdd_config, probe_req_ie_bitmap_6,
4517 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4518 CFG_PRB_REQ_IE_BIT_MAP6_DEFAULT,
4519 CFG_PRB_REQ_IE_BIT_MAP6_MIN,
4520 CFG_PRB_REQ_IE_BIT_MAP6_MAX),
4521
4522 REG_VARIABLE(CFG_PRB_REQ_IE_BIT_MAP7_NAME, WLAN_PARAM_HexInteger,
4523 struct hdd_config, probe_req_ie_bitmap_7,
4524 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4525 CFG_PRB_REQ_IE_BIT_MAP7_DEFAULT,
4526 CFG_PRB_REQ_IE_BIT_MAP7_MIN,
4527 CFG_PRB_REQ_IE_BIT_MAP7_MAX),
4528
4529 REG_VARIABLE_STRING(CFG_PROBE_REQ_OUI_NAME, WLAN_PARAM_String,
4530 struct hdd_config, probe_req_ouis,
4531 VAR_FLAGS_OPTIONAL,
4532 (void *)CFG_PROBE_REQ_OUI_DEFAULT),
4533
Selvaraj, Sridhar97ce6582017-01-20 17:06:34 +05304534 REG_VARIABLE(CFG_FILS_MAX_CHAN_GUARD_TIME_NAME, WLAN_PARAM_Integer,
4535 struct hdd_config, fils_max_chan_guard_time,
4536 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4537 CFG_FILS_MAX_CHAN_GUARD_TIME_DEFAULT,
4538 CFG_FILS_MAX_CHAN_GUARD_TIME_MIN,
4539 CFG_FILS_MAX_CHAN_GUARD_TIME_MAX),
Naveen Rawat2b6e3c92017-03-20 13:59:07 -07004540
Dustin Brown20b6fcf2017-05-17 15:35:17 -07004541 REG_VARIABLE(CFG_SCAN_BACKOFF_MULTIPLIER_NAME, WLAN_PARAM_Integer,
4542 struct hdd_config, scan_backoff_multiplier,
4543 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4544 CFG_SCAN_BACKOFF_MULTIPLIER_DEFAULT,
4545 CFG_SCAN_BACKOFF_MULTIPLIER_MIN,
4546 CFG_SCAN_BACKOFF_MULTIPLIER_MAX),
4547
Jayachandran Sreekumaran68c952c2017-04-24 12:42:03 +05304548 REG_VARIABLE(CFG_EXTERNAL_ACS_POLICY, WLAN_PARAM_Integer,
4549 struct hdd_config, external_acs_policy,
4550 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4551 CFG_EXTERNAL_ACS_POLICY_DEFAULT,
4552 CFG_EXTERNAL_ACS_POLICY_MIN,
4553 CFG_EXTERNAL_ACS_POLICY_MAX),
4554
4555 REG_VARIABLE(CFG_EXTERNAL_ACS_FREQ_BAND, WLAN_PARAM_Integer,
4556 struct hdd_config, external_acs_freq_band,
4557 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4558 CFG_EXTERNAL_ACS_FREQ_BAND_DEFAULT,
4559 CFG_EXTERNAL_ACS_FREQ_BAND_MIN,
4560 CFG_EXTERNAL_ACS_FREQ_BAND_MAX),
Naveen Rawat2b6e3c92017-03-20 13:59:07 -07004561
4562 REG_VARIABLE(CFG_DROPPED_PKT_DISCONNECT_TH_NAME, WLAN_PARAM_Integer,
4563 struct hdd_config, pkt_err_disconn_th,
4564 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4565 CFG_DROPPED_PKT_DISCONNECT_TH_DEFAULT,
4566 CFG_DROPPED_PKT_DISCONNECT_TH_MIN,
4567 CFG_DROPPED_PKT_DISCONNECT_TH_MAX),
Naveen Rawatb2fc4132017-05-10 20:42:05 -07004568
4569 REG_VARIABLE(CFG_FORCE_1X1_NAME, WLAN_PARAM_Integer,
4570 struct hdd_config, is_force_1x1,
4571 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4572 CFG_FORCE_1X1_DEFAULT,
4573 CFG_FORCE_1X1_MIN,
4574 CFG_FORCE_1X1_MAX),
lifeng959a04c2017-05-10 14:21:28 +08004575
4576 REG_VARIABLE(CFG_SET_RTS_FOR_SIFS_BURSTING, WLAN_PARAM_Integer,
4577 struct hdd_config, enable_rts_sifsbursting,
4578 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4579 CFG_SET_RTS_FOR_SIFS_BURSTING_DEFAULT,
4580 CFG_SET_RTS_FOR_SIFS_BURSTING_MIN,
4581 CFG_SET_RTS_FOR_SIFS_BURSTING_MAX),
4582
4583 REG_VARIABLE(CFG_MAX_MPDUS_IN_AMPDU, WLAN_PARAM_Integer,
4584 struct hdd_config, max_mpdus_inampdu,
4585 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4586 CFG_MAX_MPDUS_IN_AMPDU_DEFAULT,
4587 CFG_MAX_MPDUS_IN_AMPDU_MIN,
4588 CFG_MAX_MPDUS_IN_AMPDU_MAX),
lifeng13a89d72017-05-10 14:49:29 +08004589
4590 REG_VARIABLE(CFG_SAP_MAX_MCS_FOR_TX_DATA, WLAN_PARAM_Integer,
4591 struct hdd_config, sap_max_mcs_txdata,
4592 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4593 CFG_SAP_MAX_MCS_FOR_TX_DATA_DEFAULT,
4594 CFG_SAP_MAX_MCS_FOR_TX_DATA_MIN,
4595 CFG_SAP_MAX_MCS_FOR_TX_DATA_MAX),
Manjunathappa Prakashdab74fa2017-06-19 12:11:03 -07004596
4597 REG_VARIABLE(CFG_TX_ORPHAN_ENABLE_NAME, WLAN_PARAM_Integer,
4598 struct hdd_config, tx_orphan_enable,
4599 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4600 CFG_TX_ORPHAN_ENABLE_DEFAULT,
4601 CFG_TX_ORPHAN_ENABLE_MIN,
4602 CFG_TX_ORPHAN_ENABLE_MAX),
Ravi Kumar Bokka05c14e52017-03-27 14:48:23 +05304603
4604 REG_VARIABLE(CFG_AUTO_DETECT_POWER_FAIL_MODE_NAME, WLAN_PARAM_Integer,
4605 struct hdd_config, auto_pwr_save_fail_mode,
4606 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4607 CFG_AUTO_DETECT_POWER_FAIL_MODE_DEFAULT,
4608 CFG_AUTO_DETECT_POWER_FAIL_MODE_MIN,
4609 CFG_AUTO_DETECT_POWER_FAIL_MODE_MAX),
4610
Naveen Rawat247a8682017-06-05 15:00:31 -07004611 REG_VARIABLE(CFG_11B_NUM_TX_CHAIN_NAME, WLAN_PARAM_Integer,
4612 struct hdd_config, num_11b_tx_chains,
4613 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4614 CFG_11B_NUM_TX_CHAIN_DEFAULT,
4615 CFG_11B_NUM_TX_CHAIN_MIN,
4616 CFG_11B_NUM_TX_CHAIN_MAX),
4617
4618 REG_VARIABLE(CFG_11AG_NUM_TX_CHAIN_NAME, WLAN_PARAM_Integer,
4619 struct hdd_config, num_11ag_tx_chains,
4620 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4621 CFG_11AG_NUM_TX_CHAIN_DEFAULT,
4622 CFG_11AG_NUM_TX_CHAIN_MIN,
4623 CFG_11AG_NUM_TX_CHAIN_MAX),
Ashish Kumar Dhanotiya9335d812017-06-30 16:57:20 +05304624
4625 REG_VARIABLE(CFG_ITO_REPEAT_COUNT_NAME, WLAN_PARAM_Integer,
4626 struct hdd_config, ito_repeat_count,
4627 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4628 CFG_ITO_REPEAT_COUNT_DEFAULT,
4629 CFG_ITO_REPEAT_COUNT_MIN,
4630 CFG_ITO_REPEAT_COUNT_MAX),
4631
Selvaraj, Sridhar57ce4df2017-05-29 18:30:49 +05304632 REG_VARIABLE(CFG_ROAM_DISALLOW_DURATION_NAME, WLAN_PARAM_Integer,
4633 struct hdd_config, disallow_duration,
4634 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4635 CFG_ROAM_DISALLOW_DURATION_DEFAULT,
4636 CFG_ROAM_DISALLOW_DURATION_MIN,
4637 CFG_ROAM_DISALLOW_DURATION_MAX),
4638
4639 REG_VARIABLE(CFG_ROAM_RSSI_CHANNEL_PENALIZATION_NAME,
4640 WLAN_PARAM_Integer, struct hdd_config,
4641 rssi_channel_penalization,
4642 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4643 CFG_ROAM_RSSI_CHANNEL_PENALIZATION_DEFAULT,
4644 CFG_ROAM_RSSI_CHANNEL_PENALIZATION_MIN,
4645 CFG_ROAM_RSSI_CHANNEL_PENALIZATION_MAX),
4646
4647 REG_VARIABLE(CFG_ROAM_NUM_DISALLOWED_APS_NAME, WLAN_PARAM_Integer,
4648 struct hdd_config, num_disallowed_aps,
4649 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4650 CFG_ROAM_NUM_DISALLOWED_APS_DEFAULT,
4651 CFG_ROAM_NUM_DISALLOWED_APS_MIN,
4652 CFG_ROAM_NUM_DISALLOWED_APS_MAX),
yeshwanth sriram guntuka1413dfb2017-06-23 14:09:48 +05304653
4654 REG_VARIABLE(CFG_OCE_ENABLE_STA_NAME, WLAN_PARAM_Integer,
4655 struct hdd_config, oce_sta_enabled,
4656 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4657 CFG_OCE_ENABLE_STA_DEFAULT,
4658 CFG_OCE_ENABLE_STA_MIN,
4659 CFG_OCE_ENABLE_STA_MAX),
4660
4661 REG_VARIABLE(CFG_OCE_ENABLE_SAP_NAME, WLAN_PARAM_Integer,
4662 struct hdd_config, oce_sap_enabled,
4663 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4664 CFG_OCE_ENABLE_SAP_DEFAULT,
4665 CFG_OCE_ENABLE_SAP_MIN,
4666 CFG_OCE_ENABLE_SAP_MAX),
Manjeet Singha9cae432017-02-28 11:58:22 +05304667 REG_VARIABLE(CFG_ENABLE_5G_BAND_PREF_NAME, WLAN_PARAM_Integer,
4668 struct hdd_config, enable_5g_band_pref,
4669 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4670 CFG_ENABLE_5G_BAND_PREF_DEFAULT,
4671 CFG_ENABLE_5G_BAND_PREF_MIN,
4672 CFG_ENABLE_5G_BAND_PREF_MAX),
4673
4674 REG_VARIABLE(CFG_5G_RSSI_BOOST_THRESHOLD_NAME, WLAN_PARAM_Integer,
4675 struct hdd_config, rssi_boost_threshold_5g,
4676 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4677 CFG_5G_RSSI_BOOST_THRESHOLD_DEFAULT,
4678 CFG_5G_RSSI_BOOST_THRESHOLD_MIN,
4679 CFG_5G_RSSI_BOOST_THRESHOLD_MAX),
4680
4681 REG_VARIABLE(CFG_5G_RSSI_BOOST_FACTOR_NAME, WLAN_PARAM_Integer,
4682 struct hdd_config, rssi_boost_factor_5g,
4683 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4684 CFG_5G_RSSI_BOOST_FACTOR_DEFAULT,
4685 CFG_5G_RSSI_BOOST_FACTOR_MIN,
4686 CFG_5G_RSSI_BOOST_FACTOR_MAX),
4687
4688 REG_VARIABLE(CFG_5G_MAX_RSSI_BOOST_NAME, WLAN_PARAM_Integer,
4689 struct hdd_config, max_rssi_boost_5g,
4690 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4691 CFG_5G_MAX_RSSI_BOOST_DEFAULT,
4692 CFG_5G_MAX_RSSI_BOOST_MIN,
4693 CFG_5G_MAX_RSSI_BOOST_MAX),
4694
4695 REG_VARIABLE(CFG_5G_RSSI_PENALIZE_THRESHOLD_NAME, WLAN_PARAM_Integer,
4696 struct hdd_config, rssi_penalize_threshold_5g,
4697 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4698 CFG_5G_RSSI_PENALIZE_THRESHOLD_DEFAULT,
4699 CFG_5G_RSSI_PENALIZE_THRESHOLD_MIN,
4700 CFG_5G_RSSI_PENALIZE_THRESHOLD_MAX),
4701
4702 REG_VARIABLE(CFG_5G_RSSI_PENALIZE_FACTOR_NAME, WLAN_PARAM_Integer,
4703 struct hdd_config, rssi_penalize_factor_5g,
4704 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4705 CFG_5G_RSSI_PENALIZE_FACTOR_DEFAULT,
4706 CFG_5G_RSSI_PENALIZE_FACTOR_MIN,
4707 CFG_5G_RSSI_PENALIZE_FACTOR_MAX),
4708
4709 REG_VARIABLE(CFG_5G_MAX_RSSI_PENALIZE_NAME, WLAN_PARAM_Integer,
4710 struct hdd_config, max_rssi_penalize_5g,
4711 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4712 CFG_5G_MAX_RSSI_PENALIZE_DEFAULT,
4713 CFG_5G_MAX_RSSI_PENALIZE_MIN,
4714 CFG_5G_MAX_RSSI_PENALIZE_MAX),
Ashish Kumar Dhanotiyab8630ab2017-07-21 14:18:14 +05304715
4716 REG_VARIABLE(CFG_LPRx_NAME, WLAN_PARAM_Integer,
4717 struct hdd_config, enable_lprx,
4718 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4719 CFG_LPRx_DEFAULT,
4720 CFG_LPRx_MIN,
4721 CFG_LPRx_MAX),
Ashish Kumar Dhanotiyab28338c2017-07-21 20:12:34 +05304722
4723 REG_VARIABLE(CFG_UPPER_BRSSI_THRESH_NAME, WLAN_PARAM_Integer,
4724 struct hdd_config, upper_brssi_thresh,
4725 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4726 CFG_UPPER_BRSSI_THRESH_DEFAULT,
4727 CFG_UPPER_BRSSI_THRESH_MIN,
4728 CFG_UPPER_BRSSI_THRESH_MAX),
4729
4730 REG_VARIABLE(CFG_LOWER_BRSSI_THRESH_NAME, WLAN_PARAM_Integer,
4731 struct hdd_config, lower_brssi_thresh,
4732 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4733 CFG_LOWER_BRSSI_THRESH_DEFAULT,
4734 CFG_LOWER_BRSSI_THRESH_MIN,
4735 CFG_LOWER_BRSSI_THRESH_MAX),
4736
4737 REG_VARIABLE(CFG_DTIM_1CHRX_ENABLE_NAME, WLAN_PARAM_Integer,
4738 struct hdd_config, enable_dtim_1chrx,
4739 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4740 CFG_DTIM_1CHRX_ENABLE_DEFAULT,
4741 CFG_DTIM_1CHRX_ENABLE_MIN,
4742 CFG_DTIM_1CHRX_ENABLE_MAX),
Ravi Joshi9771d432017-06-26 13:58:12 -07004743
4744 REG_VARIABLE(CFG_RANDOMIZE_NDI_MAC_NAME, WLAN_PARAM_Integer,
4745 struct hdd_config, is_ndi_mac_randomized,
4746 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4747 CFG_RANDOMIZE_NDI_MAC_DEFAULT,
4748 CFG_RANDOMIZE_NDI_MAC_MIN,
4749 CFG_RANDOMIZE_NDI_MAC_MAX),
Amar Singhale4a2dd52017-08-07 13:59:05 -07004750
4751 REG_VARIABLE(CFG_SCAN_11D_INTERVAL_NAME, WLAN_PARAM_Integer,
4752 struct hdd_config, scan_11d_interval,
4753 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4754 CFG_SCAN_11D_INTERVAL_DEFAULT,
4755 CFG_SCAN_11D_INTERVAL_MIN,
4756 CFG_SCAN_11D_INTERVAL_MAX),
Arun Khandavallifae92942016-08-01 13:31:08 +05304757};
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004758
Amar Singhal5cccafe2017-02-15 12:42:58 -08004759
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004760/**
4761 * get_next_line() - find and locate the new line pointer
4762 * @str: pointer to string
4763 *
4764 * This function returns a pointer to the character after the occurence
4765 * of a new line character. It also modifies the original string by replacing
4766 * the '\n' character with the null character.
4767 *
4768 * Return: the pointer to the character at new line,
4769 * or NULL if no new line character was found
4770 */
4771static char *get_next_line(char *str)
4772{
4773 char c;
4774
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07004775 if (str == NULL || *str == '\0')
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004776 return NULL;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004777
4778 c = *str;
4779 while (c != '\n' && c != '\0' && c != 0xd) {
4780 str = str + 1;
4781 c = *str;
4782 }
4783
Jeff Johnson68755312017-02-10 11:46:55 -08004784 if (c == '\0')
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004785 return NULL;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004786
Jeff Johnson68755312017-02-10 11:46:55 -08004787 *str = '\0';
Jeff Johnson68755312017-02-10 11:46:55 -08004788 return str + 1;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004789}
4790
4791/** look for space. Ascii values to look are
4792 * 0x09 == horizontal tab
4793 * 0x0a == Newline ("\n")
4794 * 0x0b == vertical tab
4795 * 0x0c == Newpage or feed form.
4796 * 0x0d == carriage return (CR or "\r")
4797 * Null ('\0') should not considered as space.
4798 */
4799#define i_isspace(ch) (((ch) >= 0x09 && (ch) <= 0x0d) || (ch) == ' ')
4800
4801/**
4802 * i_trim() - trims any leading and trailing white spaces
4803 * @str: pointer to string
4804 *
4805 * Return: the pointer of the string
4806 */
4807static char *i_trim(char *str)
4808{
4809 char *ptr;
4810
4811 if (*str == '\0')
4812 return str;
4813
4814 /* Find the first non white-space */
4815 ptr = str;
4816 while (i_isspace(*ptr))
4817 ptr++;
4818
4819 if (*ptr == '\0')
4820 return str;
4821
4822 /* This is the new start of the string */
4823 str = ptr;
4824
4825 /* Find the last non white-space */
4826 ptr += strlen(ptr) - 1;
4827
4828 while (ptr != str && i_isspace(*ptr))
4829 ptr--;
4830
4831 /* Null terminate the following character */
4832 ptr[1] = '\0';
4833
4834 return str;
4835}
4836
4837/* Maximum length of the confgiuration name and value */
4838#define CFG_VALUE_MAX_LEN 256
4839#define CFG_ENTRY_MAX_LEN (32+CFG_VALUE_MAX_LEN)
4840
4841/**
4842 * hdd_cfg_get_config() - get the configuration content
4843 * @reg_table: pointer to configuration table
4844 * @cRegTableEntries: number of the configuration entries
4845 * @ini_struct: pointer to the hdd config knob
4846 * @pHddCtx: pointer to hdd context
4847 * @pBuf: buffer to store the configuration
4848 * @buflen: size of the buffer
4849 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05304850 * Return: QDF_STATUS_SUCCESS if the configuration and buffer size can carry
4851 * the content, otherwise QDF_STATUS_E_RESOURCES
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004852 */
Srinivas Girigowda2fb677c2017-03-25 15:35:34 -07004853static QDF_STATUS hdd_cfg_get_config(struct reg_table_entry *reg_table,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004854 unsigned long cRegTableEntries,
4855 uint8_t *ini_struct,
Jeff Johnsonb6909be2017-08-28 12:07:19 -07004856 struct hdd_context *pHddCtx, char *pBuf,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004857 int buflen)
4858{
4859 unsigned int idx;
Srinivas Girigowda2fb677c2017-03-25 15:35:34 -07004860 struct reg_table_entry *pRegEntry = reg_table;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004861 uint32_t value;
4862 char valueStr[CFG_VALUE_MAX_LEN];
4863 char configStr[CFG_ENTRY_MAX_LEN];
4864 char *fmt;
4865 void *pField;
Anurag Chouhan6d760662016-02-20 16:05:43 +05304866 struct qdf_mac_addr *pMacAddr;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004867 char *pCur = pBuf;
4868 int curlen;
4869
4870 /* start with an empty string */
4871 *pCur = '\0';
4872
4873 for (idx = 0; idx < cRegTableEntries; idx++, pRegEntry++) {
4874 pField = ini_struct + pRegEntry->VarOffset;
4875
4876 if ((WLAN_PARAM_Integer == pRegEntry->RegType) ||
4877 (WLAN_PARAM_SignedInteger == pRegEntry->RegType) ||
4878 (WLAN_PARAM_HexInteger == pRegEntry->RegType)) {
4879 value = 0;
Vidyullatha Kanchanapally53241c42017-04-13 19:16:24 +05304880
4881 if ((pRegEntry->VarSize > sizeof(value)) ||
4882 (pRegEntry->VarSize == 0)) {
4883 pr_warn("Invalid length of %s: %d",
4884 pRegEntry->RegName, pRegEntry->VarSize);
4885 continue;
4886 }
4887
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004888 memcpy(&value, pField, pRegEntry->VarSize);
4889 if (WLAN_PARAM_HexInteger == pRegEntry->RegType) {
4890 fmt = "%x";
4891 } else if (WLAN_PARAM_SignedInteger ==
4892 pRegEntry->RegType) {
4893 fmt = "%d";
Vidyullatha Kanchanapally53241c42017-04-13 19:16:24 +05304894 value = sign_extend32(
4895 value,
4896 pRegEntry->VarSize * 8 - 1);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004897 } else {
4898 fmt = "%u";
4899 }
4900 snprintf(valueStr, CFG_VALUE_MAX_LEN, fmt, value);
4901 } else if (WLAN_PARAM_String == pRegEntry->RegType) {
4902 snprintf(valueStr, CFG_VALUE_MAX_LEN, "%s",
4903 (char *)pField);
4904 } else if (WLAN_PARAM_MacAddr == pRegEntry->RegType) {
Anurag Chouhan6d760662016-02-20 16:05:43 +05304905 pMacAddr = (struct qdf_mac_addr *) pField;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004906 snprintf(valueStr, CFG_VALUE_MAX_LEN,
4907 "%02x:%02x:%02x:%02x:%02x:%02x",
4908 pMacAddr->bytes[0],
4909 pMacAddr->bytes[1],
4910 pMacAddr->bytes[2],
4911 pMacAddr->bytes[3],
4912 pMacAddr->bytes[4], pMacAddr->bytes[5]);
4913 } else {
4914 snprintf(valueStr, CFG_VALUE_MAX_LEN, "(unhandled)");
4915 }
4916 curlen = scnprintf(configStr, CFG_ENTRY_MAX_LEN,
4917 "%s=[%s]%s\n",
4918 pRegEntry->RegName,
4919 valueStr,
4920 test_bit(idx,
4921 (void *)&pHddCtx->config->
4922 bExplicitCfg) ? "*" : "");
4923
4924 /* Ideally we want to return the config to the application,
4925 * however the config is too big so we just printk() for now
4926 */
4927#ifdef RETURN_IN_BUFFER
Hanumanth Reddy Pothulaadf163e2016-09-07 15:11:58 +05304928 if (curlen < buflen) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004929 /* copy string + '\0' */
4930 memcpy(pCur, configStr, curlen + 1);
4931
4932 /* account for addition; */
4933 pCur += curlen;
4934 buflen -= curlen;
4935 } else {
4936 /* buffer space exhausted, return what we have */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05304937 return QDF_STATUS_E_RESOURCES;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004938 }
4939#else
4940 printk(KERN_INFO "%s", configStr);
4941#endif /* RETURN_IN_BUFFER */
4942
4943 }
4944
4945#ifndef RETURN_IN_BUFFER
4946 /* notify application that output is in system log */
4947 snprintf(pCur, buflen, "WLAN configuration written to system log");
4948#endif /* RETURN_IN_BUFFER */
4949
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05304950 return QDF_STATUS_SUCCESS;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004951}
4952
4953/** struct tCfgIniEntry - ini configuration entry
4954 *
4955 * @name: name of the entry
4956 * @value: value of the entry
4957 */
4958typedef struct {
4959 char *name;
4960 char *value;
4961} tCfgIniEntry;
4962
4963/**
4964 * find_cfg_item() - find the configuration item
4965 * @iniTable: pointer to configuration table
4966 * @entries: number fo the configuration entries
4967 * @name: the interested configuration to find
4968 * @value: the value to read back
4969 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05304970 * Return: QDF_STATUS_SUCCESS if the interested configuration is found,
4971 * otherwise QDF_STATUS_E_FAILURE
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004972 */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05304973static QDF_STATUS find_cfg_item(tCfgIniEntry *iniTable, unsigned long entries,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004974 char *name, char **value)
4975{
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05304976 QDF_STATUS status = QDF_STATUS_E_FAILURE;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004977 unsigned long i;
4978
4979 for (i = 0; i < entries; i++) {
4980 if (strcmp(iniTable[i].name, name) == 0) {
4981 *value = iniTable[i].value;
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07004982 hdd_debug("Found %s entry for Name=[%s] Value=[%s] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004983 WLAN_INI_FILE, name, *value);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05304984 return QDF_STATUS_SUCCESS;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004985 }
4986 }
4987
4988 return status;
4989}
4990
4991/**
4992 * parse_hex_digit() - conversion to hex value
4993 * @c: the character to convert
4994 *
4995 * Return: the hex value, otherwise 0
4996 */
4997static int parse_hex_digit(char c)
4998{
4999 if (c >= '0' && c <= '9')
5000 return c - '0';
5001 if (c >= 'a' && c <= 'f')
5002 return c - 'a' + 10;
5003 if (c >= 'A' && c <= 'F')
5004 return c - 'A' + 10;
5005
5006 return 0;
5007}
5008
5009/**
5010 * update_mac_from_string() - convert string to 6 bytes mac address
5011 * @pHddCtx: the pointer to hdd context
5012 * @macTable: the macTable to carry the conversion
5013 * @num: number of the interface
5014 *
5015 * 00AA00BB00CC -> 0x00 0xAA 0x00 0xBB 0x00 0xCC
5016 *
5017 * Return: None
5018 */
Jeff Johnsonb6909be2017-08-28 12:07:19 -07005019static void update_mac_from_string(struct hdd_context *pHddCtx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005020 tCfgIniEntry *macTable, int num)
5021{
5022 int i = 0, j = 0, res = 0;
5023 char *candidate = NULL;
Anurag Chouhan6d760662016-02-20 16:05:43 +05305024 struct qdf_mac_addr macaddr[QDF_MAX_CONCURRENCY_PERSONA];
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005025
5026 memset(macaddr, 0, sizeof(macaddr));
5027
5028 for (i = 0; i < num; i++) {
5029 candidate = macTable[i].value;
Anurag Chouhan6d760662016-02-20 16:05:43 +05305030 for (j = 0; j < QDF_MAC_ADDR_SIZE; j++) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005031 res =
5032 hex2bin(&macaddr[i].bytes[j], &candidate[(j << 1)],
5033 1);
5034 if (res < 0)
5035 break;
5036 }
Anurag Chouhanc5548422016-02-24 18:33:27 +05305037 if (res == 0 && !qdf_is_macaddr_zero(&macaddr[i])) {
Anurag Chouhan600c3a02016-03-01 10:33:54 +05305038 qdf_mem_copy((uint8_t *) &pHddCtx->config->
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005039 intfMacAddr[i].bytes[0],
5040 (uint8_t *) &macaddr[i].bytes[0],
Anurag Chouhan6d760662016-02-20 16:05:43 +05305041 QDF_MAC_ADDR_SIZE);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005042 }
5043 }
5044}
5045
5046/**
5047 * hdd_apply_cfg_ini() - apply the ini configuration file
5048 * @pHddCtx: the pointer to hdd context
5049 * @iniTable: pointer to configuration table
5050 * @entries: number fo the configuration entries
5051 * It overwrites the MAC address if config file exist.
5052 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305053 * Return: QDF_STATUS_SUCCESS if the ini configuration file is correctly parsed,
5054 * otherwise QDF_STATUS_E_INVAL
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005055 */
Jeff Johnsonb6909be2017-08-28 12:07:19 -07005056static QDF_STATUS hdd_apply_cfg_ini(struct hdd_context *pHddCtx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005057 tCfgIniEntry *iniTable,
5058 unsigned long entries)
5059{
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305060 QDF_STATUS match_status = QDF_STATUS_E_FAILURE;
5061 QDF_STATUS ret_status = QDF_STATUS_SUCCESS;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005062 unsigned int idx;
5063 void *pField;
5064 char *value_str = NULL;
5065 unsigned long len_value_str;
5066 char *candidate;
5067 uint32_t value;
5068 int32_t svalue;
5069 void *pStructBase = pHddCtx->config;
Srinivas Girigowda2fb677c2017-03-25 15:35:34 -07005070 struct reg_table_entry *pRegEntry = g_registry_table;
Anurag Chouhan6d760662016-02-20 16:05:43 +05305071 unsigned long cRegTableEntries = QDF_ARRAY_SIZE(g_registry_table);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005072 uint32_t cbOutString;
5073 int i;
5074 int rv;
5075
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005076 if (MAX_CFG_INI_ITEMS < cRegTableEntries) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005077 hdd_err("MAX_CFG_INI_ITEMS too small, must be at least %ld",
Srinivas Girigowdaba3091c2015-11-16 17:18:40 -08005078 cRegTableEntries);
5079 WARN_ON(1);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005080 }
5081
5082 for (idx = 0; idx < cRegTableEntries; idx++, pRegEntry++) {
5083 /* Calculate the address of the destination field in the structure. */
5084 pField = ((uint8_t *) pStructBase) + pRegEntry->VarOffset;
5085
5086 match_status =
5087 find_cfg_item(iniTable, entries, pRegEntry->RegName,
5088 &value_str);
5089
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305090 if ((match_status != QDF_STATUS_SUCCESS)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005091 && (pRegEntry->Flags & VAR_FLAGS_REQUIRED)) {
5092 /* If we could not read the cfg item and it is required, this is an error. */
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005093 hdd_err("Failed to read required config parameter %s", pRegEntry->RegName);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305094 ret_status = QDF_STATUS_E_FAILURE;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005095 break;
5096 }
5097
5098 if ((WLAN_PARAM_Integer == pRegEntry->RegType) ||
5099 (WLAN_PARAM_HexInteger == pRegEntry->RegType)) {
5100 /* If successfully read from the registry, use the value read.
5101 * If not, use the default value.
5102 */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305103 if (match_status == QDF_STATUS_SUCCESS
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005104 && (WLAN_PARAM_Integer == pRegEntry->RegType)) {
5105 rv = kstrtou32(value_str, 10, &value);
5106 if (rv < 0) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005107 hdd_warn("Reg Parameter %s invalid. Enforcing default", pRegEntry->RegName);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005108 value = pRegEntry->VarDefault;
5109 }
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305110 } else if (match_status == QDF_STATUS_SUCCESS
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005111 && (WLAN_PARAM_HexInteger ==
5112 pRegEntry->RegType)) {
5113 rv = kstrtou32(value_str, 16, &value);
5114 if (rv < 0) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005115 hdd_warn("Reg paramter %s invalid. Enforcing default", pRegEntry->RegName);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005116 value = pRegEntry->VarDefault;
5117 }
5118 } else {
5119 value = pRegEntry->VarDefault;
5120 }
5121
Srinivas Girigowdad1b92582017-03-02 11:47:47 -08005122 /* Only if the parameter is set in the ini file, do the range check here */
5123 if (match_status == QDF_STATUS_SUCCESS &&
5124 pRegEntry->Flags & VAR_FLAGS_RANGE_CHECK) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005125 if (value > pRegEntry->VarMax) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005126 hdd_warn("Reg Parameter %s > allowed Maximum [%u > %lu]. Enforcing Maximum", pRegEntry->RegName,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005127 value, pRegEntry->VarMax);
5128 value = pRegEntry->VarMax;
5129 }
5130
5131 if (value < pRegEntry->VarMin) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005132 hdd_warn("Reg Parameter %s < allowed Minimum [%u < %lu]. Enforcing Minimum", pRegEntry->RegName,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005133 value, pRegEntry->VarMin);
5134 value = pRegEntry->VarMin;
5135 }
5136 }
Srinivas Girigowdad1b92582017-03-02 11:47:47 -08005137 /* Only if the parameter is set in the ini file, do the range check here */
5138 else if (match_status == QDF_STATUS_SUCCESS &&
5139 pRegEntry->Flags &
5140 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005141 if (value > pRegEntry->VarMax) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005142 hdd_warn("Reg Parameter %s > allowed Maximum [%u > %lu]. Enforcing Default: %lu", pRegEntry->RegName,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005143 value, pRegEntry->VarMax,
5144 pRegEntry->VarDefault);
5145 value = pRegEntry->VarDefault;
5146 }
5147
5148 if (value < pRegEntry->VarMin) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005149 hdd_warn("Reg Parameter %s < allowed Minimum [%u < %lu]. Enforcing Default: %lu", pRegEntry->RegName,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005150 value, pRegEntry->VarMin,
5151 pRegEntry->VarDefault);
5152 value = pRegEntry->VarDefault;
5153 }
5154 }
5155 /* Move the variable into the output field. */
5156 memcpy(pField, &value, pRegEntry->VarSize);
5157 } else if (WLAN_PARAM_SignedInteger == pRegEntry->RegType) {
5158 /* If successfully read from the registry, use the value read.
5159 * If not, use the default value.
5160 */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305161 if (QDF_STATUS_SUCCESS == match_status) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005162 rv = kstrtos32(value_str, 10, &svalue);
5163 if (rv < 0) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005164 hdd_warn("Reg Parameter %s invalid. Enforcing Default", pRegEntry->RegName);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005165 svalue =
5166 (int32_t) pRegEntry->VarDefault;
5167 }
5168 } else {
5169 svalue = (int32_t) pRegEntry->VarDefault;
5170 }
5171
Srinivas Girigowdad1b92582017-03-02 11:47:47 -08005172 /* Only if the parameter is set in the ini file, do the range check here */
5173 if (match_status == QDF_STATUS_SUCCESS &&
5174 pRegEntry->Flags & VAR_FLAGS_RANGE_CHECK) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005175 if (svalue > (int32_t) pRegEntry->VarMax) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005176 hdd_warn("Reg Parameter %s > allowed Maximum "
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005177 "[%d > %d]. Enforcing Maximum", pRegEntry->RegName,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005178 svalue, (int)pRegEntry->VarMax);
5179 svalue = (int32_t) pRegEntry->VarMax;
5180 }
5181
5182 if (svalue < (int32_t) pRegEntry->VarMin) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005183 hdd_warn("Reg Parameter %s < allowed Minimum "
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005184 "[%d < %d]. Enforcing Minimum", pRegEntry->RegName,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005185 svalue, (int)pRegEntry->VarMin);
5186 svalue = (int32_t) pRegEntry->VarMin;
5187 }
5188 }
Srinivas Girigowdad1b92582017-03-02 11:47:47 -08005189 /* Only if the parameter is set in the ini file, do the range check here */
5190 else if (match_status == QDF_STATUS_SUCCESS &&
5191 pRegEntry->Flags &
5192 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005193 if (svalue > (int32_t) pRegEntry->VarMax) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005194 hdd_warn("Reg Parameter %s > allowed Maximum "
5195 "[%d > %d]. Enforcing Default: %d", pRegEntry->RegName,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005196 svalue, (int)pRegEntry->VarMax,
5197 (int)pRegEntry->VarDefault);
5198 svalue =
5199 (int32_t) pRegEntry->VarDefault;
5200 }
5201
5202 if (svalue < (int32_t) pRegEntry->VarMin) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005203 hdd_warn("Reg Parameter %s < allowed Minimum "
5204 "[%d < %d]. Enforcing Default: %d", pRegEntry->RegName,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005205 svalue, (int)pRegEntry->VarMin,
5206 (int)pRegEntry->VarDefault);
5207 svalue = pRegEntry->VarDefault;
5208 }
5209 }
5210 /* Move the variable into the output field. */
5211 memcpy(pField, &svalue, pRegEntry->VarSize);
5212 }
5213 /* Handle string parameters */
5214 else if (WLAN_PARAM_String == pRegEntry->RegType) {
5215#ifdef WLAN_CFG_DEBUG
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005216 hdd_debug("RegName = %s, VarOffset %u VarSize %u VarDefault %s",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005217 pRegEntry->RegName, pRegEntry->VarOffset,
5218 pRegEntry->VarSize,
5219 (char *)pRegEntry->VarDefault);
5220#endif
5221
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305222 if (match_status == QDF_STATUS_SUCCESS) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005223 len_value_str = strlen(value_str);
5224
5225 if (len_value_str > (pRegEntry->VarSize - 1)) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005226 hdd_err("Invalid Value=[%s] specified for Name=[%s] in %s", value_str,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005227 pRegEntry->RegName,
5228 WLAN_INI_FILE);
5229 cbOutString =
Srinivas Girigowda2fb677c2017-03-25 15:35:34 -07005230 QDF_MIN(strlen
5231 ((char *)pRegEntry->
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005232 VarDefault),
5233 pRegEntry->VarSize - 1);
5234 memcpy(pField,
5235 (void *)(pRegEntry->VarDefault),
5236 cbOutString);
5237 ((uint8_t *) pField)[cbOutString] =
5238 '\0';
5239 } else {
5240 memcpy(pField, (void *)(value_str),
5241 len_value_str);
5242 ((uint8_t *) pField)[len_value_str] =
5243 '\0';
5244 }
5245 } else {
5246 /* Failed to read the string parameter from the registry. Use the default. */
5247 cbOutString =
Srinivas Girigowda2fb677c2017-03-25 15:35:34 -07005248 QDF_MIN(strlen((char *)pRegEntry->VarDefault),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005249 pRegEntry->VarSize - 1);
5250 memcpy(pField, (void *)(pRegEntry->VarDefault),
5251 cbOutString);
5252 ((uint8_t *) pField)[cbOutString] = '\0';
5253 }
5254 } else if (WLAN_PARAM_MacAddr == pRegEntry->RegType) {
Anurag Chouhan6d760662016-02-20 16:05:43 +05305255 if (pRegEntry->VarSize != QDF_MAC_ADDR_SIZE) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005256 hdd_warn("Invalid VarSize %u for Name=[%s]", pRegEntry->VarSize,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005257 pRegEntry->RegName);
5258 continue;
5259 }
5260 candidate = (char *)pRegEntry->VarDefault;
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305261 if (match_status == QDF_STATUS_SUCCESS) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005262 len_value_str = strlen(value_str);
Anurag Chouhan6d760662016-02-20 16:05:43 +05305263 if (len_value_str != (QDF_MAC_ADDR_SIZE * 2)) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005264 hdd_err("Invalid MAC addr [%s] specified for Name=[%s] in %s", value_str,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005265 pRegEntry->RegName,
5266 WLAN_INI_FILE);
5267 } else
5268 candidate = value_str;
5269 }
5270 /* parse the string and store it in the byte array */
Anurag Chouhan6d760662016-02-20 16:05:43 +05305271 for (i = 0; i < QDF_MAC_ADDR_SIZE; i++) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005272 ((char *)pField)[i] =
5273 (char)(parse_hex_digit(candidate[i * 2]) *
5274 16 +
5275 parse_hex_digit(candidate[i * 2 + 1]));
5276 }
5277 } else {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005278 hdd_warn("Unknown param type for name[%s] in registry table", pRegEntry->RegName);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005279 }
5280
5281 /* did we successfully parse a cfg item for this parameter? */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305282 if ((match_status == QDF_STATUS_SUCCESS) &&
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005283 (idx < MAX_CFG_INI_ITEMS)) {
5284 set_bit(idx, (void *)&pHddCtx->config->bExplicitCfg);
5285 }
5286 }
5287
5288 return ret_status;
5289}
5290
5291/**
5292 * hdd_execute_config_command() - executes an arbitrary configuration command
5293 * @reg_table: the pointer to configuration table
5294 * @tableSize: the size of the configuration table
5295 * @ini_struct: pointer to the hdd config knob
5296 * @pHddCtx: the pointer to hdd context
5297 * @command: the command to run
5298 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305299 * Return: QDF_STATUS_SUCCESS if the command is found and able to execute,
5300 * otherwise the appropriate QDF_STATUS will be returned
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005301 */
Srinivas Girigowda2fb677c2017-03-25 15:35:34 -07005302static QDF_STATUS hdd_execute_config_command(struct reg_table_entry *reg_table,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005303 unsigned long tableSize,
5304 uint8_t *ini_struct,
Jeff Johnsonb6909be2017-08-28 12:07:19 -07005305 struct hdd_context *pHddCtx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005306 char *command)
5307{
Srinivas Girigowda2fb677c2017-03-25 15:35:34 -07005308 struct reg_table_entry *pRegEntry;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005309 char *clone;
5310 char *pCmd;
5311 void *pField;
5312 char *name;
5313 char *value_str;
5314 uint32_t value;
5315 int32_t svalue;
5316 size_t len_value_str;
5317 unsigned int idx;
5318 unsigned int i;
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305319 QDF_STATUS vstatus;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005320 int rv;
5321
5322 /* assume failure until proven otherwise */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305323 vstatus = QDF_STATUS_E_FAILURE;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005324
5325 /* clone the command so that we can manipulate it */
5326 clone = kstrdup(command, GFP_ATOMIC);
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07005327 if (NULL == clone)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005328 return vstatus;
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07005329
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005330 /* 'clone' will point to the beginning of the string so it can be freed
5331 * 'pCmd' will be used to walk/parse the command
5332 */
5333 pCmd = clone;
5334
5335 /* get rid of leading/trailing whitespace */
5336 pCmd = i_trim(pCmd);
5337 if ('\0' == *pCmd) {
5338 /* only whitespace */
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005339 hdd_err("invalid command, only whitespace:[%s]", command);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005340 goto done;
5341 }
5342 /* parse the <name> = <value> */
5343 name = pCmd;
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07005344 while (('=' != *pCmd) && ('\0' != *pCmd))
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005345 pCmd++;
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07005346
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005347 if ('\0' == *pCmd) {
5348 /* did not find '=' */
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005349 hdd_err("invalid command, no '=':[%s]", command);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005350 goto done;
5351 }
5352 /* replace '=' with NUL to terminate the <name> */
5353 *pCmd++ = '\0';
5354 name = i_trim(name);
5355 if ('\0' == *name) {
5356 /* did not find a name */
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005357 hdd_err("invalid command, no <name>:[%s]", command);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005358 goto done;
5359 }
5360
5361 value_str = i_trim(pCmd);
5362 if ('\0' == *value_str) {
5363 /* did not find a value */
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005364 hdd_err("invalid command, no <value>:[%s]", command);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005365 goto done;
5366 }
5367 /* lookup the configuration item */
5368 for (idx = 0; idx < tableSize; idx++) {
5369 if (0 == strcmp(name, reg_table[idx].RegName)) {
5370 /* found a match */
5371 break;
5372 }
5373 }
5374 if (tableSize == idx) {
5375 /* did not match the name */
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005376 hdd_err("invalid command, unknown configuration item:[%s]", command);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005377 goto done;
5378 }
5379
5380 pRegEntry = &reg_table[idx];
5381 if (!(pRegEntry->Flags & VAR_FLAGS_DYNAMIC_CFG)) {
5382 /* does not support dynamic configuration */
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005383 hdd_err("Global_Registry_Table. %s does not support "
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005384 "dynamic configuration", name);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305385 vstatus = QDF_STATUS_E_PERM;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005386 goto done;
5387 }
5388
5389 pField = ini_struct + pRegEntry->VarOffset;
5390
5391 switch (pRegEntry->RegType) {
5392 case WLAN_PARAM_Integer:
5393 rv = kstrtou32(value_str, 10, &value);
5394 if (rv < 0)
5395 goto done;
5396 if (value < pRegEntry->VarMin) {
5397 /* out of range */
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005398 hdd_err("Invalid command, value %u < min value %lu", value, pRegEntry->VarMin);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005399 goto done;
5400 }
5401 if (value > pRegEntry->VarMax) {
5402 /* out of range */
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005403 hdd_err("Invalid command, value %u > max value %lu", value, pRegEntry->VarMax);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005404 goto done;
5405 }
5406 memcpy(pField, &value, pRegEntry->VarSize);
5407 break;
5408
5409 case WLAN_PARAM_HexInteger:
5410 rv = kstrtou32(value_str, 16, &value);
5411 if (rv < 0)
5412 goto done;
5413 if (value < pRegEntry->VarMin) {
5414 /* out of range */
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005415 hdd_err("Invalid command, value %x < min value %lx", value, pRegEntry->VarMin);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005416 goto done;
5417 }
5418 if (value > pRegEntry->VarMax) {
5419 /* out of range */
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005420 hdd_err("Invalid command, value %x > max value %lx", value, pRegEntry->VarMax);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005421 goto done;
5422 }
5423 memcpy(pField, &value, pRegEntry->VarSize);
5424 break;
5425
5426 case WLAN_PARAM_SignedInteger:
5427 rv = kstrtos32(value_str, 10, &svalue);
5428 if (rv < 0)
5429 goto done;
5430 if (svalue < (int32_t) pRegEntry->VarMin) {
5431 /* out of range */
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005432 hdd_err("Invalid command, value %d < min value %d", svalue, (int)pRegEntry->VarMin);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005433 goto done;
5434 }
5435 if (svalue > (int32_t) pRegEntry->VarMax) {
5436 /* out of range */
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005437 hdd_err("Invalid command, value %d > max value %d", svalue, (int)pRegEntry->VarMax);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005438 goto done;
5439 }
5440 memcpy(pField, &svalue, pRegEntry->VarSize);
5441 break;
5442
5443 case WLAN_PARAM_String:
5444 len_value_str = strlen(value_str);
5445 if (len_value_str > (pRegEntry->VarSize - 1)) {
5446 /* too big */
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005447 hdd_err("Invalid command, string [%s] length "
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005448 "%zu exceeds maximum length %u", value_str,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005449 len_value_str, (pRegEntry->VarSize - 1));
5450 goto done;
5451 }
5452 /* copy string plus NUL */
5453 memcpy(pField, value_str, (len_value_str + 1));
5454 break;
5455
5456 case WLAN_PARAM_MacAddr:
5457 len_value_str = strlen(value_str);
Anurag Chouhan6d760662016-02-20 16:05:43 +05305458 if (len_value_str != (QDF_MAC_ADDR_SIZE * 2)) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005459 /* out of range */
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005460 hdd_err("Invalid command, MAC address [%s] length "
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005461 "%zu is not expected length %u", value_str,
Anurag Chouhan6d760662016-02-20 16:05:43 +05305462 len_value_str, (QDF_MAC_ADDR_SIZE * 2));
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005463 goto done;
5464 }
5465 /* parse the string and store it in the byte array */
Anurag Chouhan6d760662016-02-20 16:05:43 +05305466 for (i = 0; i < QDF_MAC_ADDR_SIZE; i++) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005467 ((char *)pField)[i] = (char)
5468 ((parse_hex_digit(value_str[(i * 2)]) * 16) +
5469 parse_hex_digit(value_str[(i * 2) + 1]));
5470 }
5471 break;
5472
5473 default:
5474 goto done;
5475 }
5476
5477 /* if we get here, we had a successful modification */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305478 vstatus = QDF_STATUS_SUCCESS;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005479
5480 /* config table has been modified, is there a notifier? */
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07005481 if (NULL != pRegEntry->pfnDynamicnotify)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005482 (pRegEntry->pfnDynamicnotify)(pHddCtx, pRegEntry->notifyId);
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07005483
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005484 /* note that this item was explicitly configured */
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07005485 if (idx < MAX_CFG_INI_ITEMS)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005486 set_bit(idx, (void *)&pHddCtx->config->bExplicitCfg);
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07005487
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005488done:
5489 kfree(clone);
5490 return vstatus;
5491}
5492
5493/**
5494 * hdd_set_power_save_offload_config() - set power save offload configuration
5495 * @pHddCtx: the pointer to hdd context
5496 *
5497 * Return: none
5498 */
Jeff Johnsonb6909be2017-08-28 12:07:19 -07005499static void hdd_set_power_save_offload_config(struct hdd_context *pHddCtx)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005500{
5501 struct hdd_config *pConfig = pHddCtx->config;
5502 uint32_t listenInterval = 0;
5503
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07005504 if (strcmp(pConfig->PowerUsageControl, "Min") == 0)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005505 listenInterval = pConfig->nBmpsMinListenInterval;
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07005506 else if (strcmp(pConfig->PowerUsageControl, "Max") == 0)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005507 listenInterval = pConfig->nBmpsMaxListenInterval;
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07005508 else if (strcmp(pConfig->PowerUsageControl, "Mod") == 0)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005509 listenInterval = pConfig->nBmpsModListenInterval;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005510
5511 /*
5512 * Based on Mode Set the LI
5513 * Otherwise default LI value of 1 will
5514 * be taken
5515 */
5516 if (listenInterval) {
5517 /*
5518 * setcfg for listenInterval.
5519 * Make sure CFG is updated because PE reads this
5520 * from CFG at the time of assoc or reassoc
5521 */
5522 sme_cfg_set_int(pHddCtx->hHal, WNI_CFG_LISTEN_INTERVAL,
5523 listenInterval);
5524 }
5525
5526}
5527
Houston Hoffmanc7c69f02016-03-24 22:45:52 -07005528#ifdef FEATURE_RUNTIME_PM
Jeff Johnsonb6909be2017-08-28 12:07:19 -07005529static void hdd_cfg_print_runtime_pm(struct hdd_context *hdd_ctx)
Houston Hoffmanc7c69f02016-03-24 22:45:52 -07005530{
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005531 hdd_debug("Name = [gRuntimePM] Value = [%u] ",
Houston Hoffmanc7c69f02016-03-24 22:45:52 -07005532 hdd_ctx->config->runtime_pm);
5533
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005534 hdd_debug("Name = [gRuntimePMDelay] Value = [%u] ",
Houston Hoffmanc7c69f02016-03-24 22:45:52 -07005535 hdd_ctx->config->runtime_pm_delay);
5536}
5537#else
Jeff Johnsonb6909be2017-08-28 12:07:19 -07005538static void hdd_cfg_print_runtime_pm(struct hdd_context *hdd_ctx)
Houston Hoffmanc7c69f02016-03-24 22:45:52 -07005539{
5540}
5541#endif
5542
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005543/**
Kapil Gupta5cda2252016-12-29 18:44:26 +05305544 * hdd_per_roam_print_ini_config()- Print PER roam specific INI configuration
5545 * @hdd_ctx: handle to hdd context
5546 *
5547 * Return: None
5548 */
Jeff Johnsonb6909be2017-08-28 12:07:19 -07005549static void hdd_per_roam_print_ini_config(struct hdd_context *hdd_ctx)
Kapil Gupta5cda2252016-12-29 18:44:26 +05305550{
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005551 hdd_debug("Name = [%s] Value = [%u]",
Kapil Gupta5cda2252016-12-29 18:44:26 +05305552 CFG_PER_ROAM_ENABLE_NAME,
5553 hdd_ctx->config->is_per_roam_enabled);
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005554 hdd_debug("Name = [%s] Value = [%u]",
Kapil Gupta5cda2252016-12-29 18:44:26 +05305555 CFG_PER_ROAM_CONFIG_HIGH_RATE_TH_NAME,
5556 hdd_ctx->config->per_roam_high_rate_threshold);
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005557 hdd_debug("Name = [%s] Value = [%u]",
Kapil Gupta5cda2252016-12-29 18:44:26 +05305558 CFG_PER_ROAM_CONFIG_LOW_RATE_TH_NAME,
5559 hdd_ctx->config->per_roam_low_rate_threshold);
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005560 hdd_debug("Name = [%s] Value = [%u]",
Kapil Gupta5cda2252016-12-29 18:44:26 +05305561 CFG_PER_ROAM_CONFIG_RATE_TH_PERCENT_NAME,
5562 hdd_ctx->config->per_roam_th_percent);
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005563 hdd_debug("Name = [%s] Value = [%u]",
Kapil Gupta5cda2252016-12-29 18:44:26 +05305564 CFG_PER_ROAM_REST_TIME_NAME,
5565 hdd_ctx->config->per_roam_rest_time);
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005566 hdd_debug("Name = [%s] Value = [%u]",
Kapil Gupta957827b2017-02-13 15:47:04 +05305567 CFG_PER_ROAM_MONITOR_TIME,
5568 hdd_ctx->config->per_roam_mon_time);
Selvaraj, Sridhar0641fab2017-05-17 16:02:00 +05305569 hdd_debug("Name = [%s] Value = [%u]",
5570 CFG_PER_ROAM_MIN_CANDIDATE_RSSI,
5571 hdd_ctx->config->min_candidate_rssi);
Kapil Gupta5cda2252016-12-29 18:44:26 +05305572}
5573
5574/**
Rajeev Kumar Sirasanagandlaaec0b082017-06-21 11:59:41 +05305575 * hdd_cfg_print_ie_whitelist_attrs() - print the ie whitelist attrs
5576 * @hdd_ctx: pointer to hdd context
5577 *
5578 * Return: None
5579 */
Jeff Johnsonb6909be2017-08-28 12:07:19 -07005580static void hdd_cfg_print_ie_whitelist_attrs(struct hdd_context *hdd_ctx)
Rajeev Kumar Sirasanagandlaaec0b082017-06-21 11:59:41 +05305581{
5582 hdd_debug("Name = [%s] Value = [%x] ",
5583 CFG_PRB_REQ_IE_WHITELIST_NAME,
5584 hdd_ctx->config->probe_req_ie_whitelist);
5585 hdd_debug("Name = [%s] Value = [%x] ",
5586 CFG_PRB_REQ_IE_BIT_MAP0_NAME,
5587 hdd_ctx->config->probe_req_ie_bitmap_0);
5588 hdd_debug("Name = [%s] Value = [%x] ",
5589 CFG_PRB_REQ_IE_BIT_MAP1_NAME,
5590 hdd_ctx->config->probe_req_ie_bitmap_1);
5591 hdd_debug("Name = [%s] Value = [%x] ",
5592 CFG_PRB_REQ_IE_BIT_MAP2_NAME,
5593 hdd_ctx->config->probe_req_ie_bitmap_2);
5594 hdd_debug("Name = [%s] Value = [%x] ",
5595 CFG_PRB_REQ_IE_BIT_MAP3_NAME,
5596 hdd_ctx->config->probe_req_ie_bitmap_3);
5597 hdd_debug("Name = [%s] Value = [%x] ",
5598 CFG_PRB_REQ_IE_BIT_MAP4_NAME,
5599 hdd_ctx->config->probe_req_ie_bitmap_4);
5600 hdd_debug("Name = [%s] Value = [%x] ",
5601 CFG_PRB_REQ_IE_BIT_MAP5_NAME,
5602 hdd_ctx->config->probe_req_ie_bitmap_5);
5603 hdd_debug("Name = [%s] Value = [%x] ",
5604 CFG_PRB_REQ_IE_BIT_MAP6_NAME,
5605 hdd_ctx->config->probe_req_ie_bitmap_6);
5606 hdd_debug("Name = [%s] Value = [%x] ",
5607 CFG_PRB_REQ_IE_BIT_MAP7_NAME,
5608 hdd_ctx->config->probe_req_ie_bitmap_7);
5609 hdd_debug("Name = [%s] Value =[%s]",
5610 CFG_PROBE_REQ_OUI_NAME,
5611 hdd_ctx->config->probe_req_ouis);
5612}
5613
5614/**
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005615 * hdd_cfg_print() - print the hdd configuration
5616 * @iniTable: pointer to hdd context
5617 *
5618 * Return: None
5619 */
Jeff Johnsonb6909be2017-08-28 12:07:19 -07005620void hdd_cfg_print(struct hdd_context *pHddCtx)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005621{
5622 int i;
5623
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005624 hdd_debug("*********Config values in HDD Adapter*******");
5625 hdd_debug("Name = [RTSThreshold] Value = %u",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005626 pHddCtx->config->RTSThreshold);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005627 hdd_debug("Name = [OperatingChannel] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005628 pHddCtx->config->OperatingChannel);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005629 hdd_debug("Name = [PowerUsageControl] Value = [%s]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005630 pHddCtx->config->PowerUsageControl);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005631 hdd_debug("Name = [fIsImpsEnabled] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005632 pHddCtx->config->fIsImpsEnabled);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005633 hdd_debug("Name = [nVccRssiTrigger] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005634 pHddCtx->config->nVccRssiTrigger);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005635 hdd_debug("Name = [gIbssBssid] Value =[" MAC_ADDRESS_STR "]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005636 MAC_ADDR_ARRAY(pHddCtx->config->IbssBssid.bytes));
5637
Anurag Chouhan6d760662016-02-20 16:05:43 +05305638 for (i = 0; i < QDF_MAX_CONCURRENCY_PERSONA; i++) {
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005639 hdd_debug("Name = [Intf%dMacAddress] Value =[" MAC_ADDRESS_STR "]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005640 i, MAC_ADDR_ARRAY(pHddCtx->config->intfMacAddr[i].bytes));
5641 }
5642
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005643 hdd_debug("Name = [gApEnableUapsd] value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005644 pHddCtx->config->apUapsdEnabled);
5645
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005646 hdd_debug("Name = [gEnableApProt] value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005647 pHddCtx->config->apProtEnabled);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005648 hdd_debug("Name = [gAPAutoShutOff] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005649 pHddCtx->config->nAPAutoShutOff);
5650#ifdef FEATURE_WLAN_MCC_TO_SCC_SWITCH
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005651 hdd_debug("Name = [gWlanMccToSccSwitchMode] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005652 pHddCtx->config->WlanMccToSccSwitchMode);
5653#endif
5654#ifdef FEATURE_WLAN_AUTO_SHUTDOWN
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005655 hdd_debug("Name = [gWlanAutoShutdown] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005656 pHddCtx->config->WlanAutoShutdown);
5657#endif
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005658 hdd_debug("Name = [gApProtection] value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005659 pHddCtx->config->apProtection);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005660 hdd_debug("Name = [gEnableApOBSSProt] value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005661 pHddCtx->config->apOBSSProtEnabled);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005662 hdd_debug("Name = [%s] value = [%u]", CFG_FORCE_SAP_ACS,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005663 pHddCtx->config->force_sap_acs);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005664 hdd_debug("Name = [%s] value = [%u]", CFG_FORCE_SAP_ACS_START_CH,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005665 pHddCtx->config->force_sap_acs_st_ch);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005666 hdd_debug("Name = [%s] value = [%u]", CFG_FORCE_SAP_ACS_END_CH,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005667 pHddCtx->config->force_sap_acs_end_ch);
5668#ifdef FEATURE_AP_MCC_CH_AVOIDANCE
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005669 hdd_debug("Name = [sap_channel_avoidance] value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005670 pHddCtx->config->sap_channel_avoidance);
5671#endif /* FEATURE_AP_MCC_CH_AVOIDANCE */
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005672 hdd_debug("Name = [%s] value = [%u]", CFG_SAP_P2P_11AC_OVERRIDE_NAME,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005673 pHddCtx->config->sap_p2p_11ac_override);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005674 hdd_debug("Name = [ChannelBondingMode] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005675 pHddCtx->config->nChannelBondingMode24GHz);
Abhishek Singhb59f8d42017-07-31 14:42:47 +05305676 hdd_debug("Name = [%s] Value = [%u] ",
5677 CFG_OVERRIDE_HT40_20_24GHZ_NAME,
5678 pHddCtx->config->override_ht20_40_24g);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005679 hdd_debug("Name = [ChannelBondingMode] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005680 pHddCtx->config->nChannelBondingMode5GHz);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005681 hdd_debug("Name = [dot11Mode] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005682 pHddCtx->config->dot11Mode);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005683 hdd_debug("Name = [WmmMode] Value = [%u] ", pHddCtx->config->WmmMode);
5684 hdd_debug("Name = [UapsdMask] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005685 pHddCtx->config->UapsdMask);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005686 hdd_debug("Name = [ImplicitQosIsEnabled] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005687 (int)pHddCtx->config->bImplicitQosEnabled);
5688
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005689 hdd_debug("Name = [InfraUapsdVoSrvIntv] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005690 pHddCtx->config->InfraUapsdVoSrvIntv);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005691 hdd_debug("Name = [InfraUapsdVoSuspIntv] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005692 pHddCtx->config->InfraUapsdVoSuspIntv);
5693
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005694 hdd_debug("Name = [InfraUapsdViSrvIntv] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005695 pHddCtx->config->InfraUapsdViSrvIntv);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005696 hdd_debug("Name = [InfraUapsdViSuspIntv] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005697 pHddCtx->config->InfraUapsdViSuspIntv);
5698
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005699 hdd_debug("Name = [InfraUapsdBeSrvIntv] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005700 pHddCtx->config->InfraUapsdBeSrvIntv);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005701 hdd_debug("Name = [InfraUapsdBeSuspIntv] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005702 pHddCtx->config->InfraUapsdBeSuspIntv);
5703
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005704 hdd_debug("Name = [InfraUapsdBkSrvIntv] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005705 pHddCtx->config->InfraUapsdBkSrvIntv);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005706 hdd_debug("Name = [InfraUapsdBkSuspIntv] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005707 pHddCtx->config->InfraUapsdBkSuspIntv);
5708#ifdef FEATURE_WLAN_ESE
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005709 hdd_debug("Name = [InfraInactivityInterval] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005710 pHddCtx->config->InfraInactivityInterval);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005711 hdd_debug("Name = [EseEnabled] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005712 pHddCtx->config->isEseIniFeatureEnabled);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005713 hdd_debug("Name = [FastTransitionEnabled] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005714 pHddCtx->config->isFastTransitionEnabled);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005715 hdd_debug("Name = [gTxPowerCap] Value = [%u] dBm ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005716 pHddCtx->config->nTxPowerCap);
5717#endif
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005718 hdd_debug("Name = [gAllowTPCfromAP] Value = [%u] ",
Padma, Santhosh Kumar29df3622016-08-16 19:15:16 +05305719 pHddCtx->config->allow_tpc_from_ap);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005720 hdd_debug("Name = [FastRoamEnabled] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005721 pHddCtx->config->isFastRoamIniFeatureEnabled);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005722 hdd_debug("Name = [MAWCEnabled] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005723 pHddCtx->config->MAWCEnabled);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005724 hdd_debug("Name = [RoamRssiDiff] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005725 pHddCtx->config->RoamRssiDiff);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005726 hdd_debug("Name = [isWESModeEnabled] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005727 pHddCtx->config->isWESModeEnabled);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005728 hdd_debug("Name = [pmkidModes] Value = [0x%x] ",
Deepak Dhamdhere828f1892017-02-09 11:51:19 -08005729 pHddCtx->config->pmkid_modes);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005730#ifdef FEATURE_WLAN_SCAN_PNO
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005731 hdd_debug("Name = [configPNOScanSupport] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005732 pHddCtx->config->configPNOScanSupport);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005733 hdd_debug("Name = [configPNOScanTimerRepeatValue] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005734 pHddCtx->config->configPNOScanTimerRepeatValue);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005735 hdd_debug("Name = [gPNOSlowScanMultiplier] Value = [%u] ",
Srinivas Girigowdabdc98162015-09-17 11:06:07 -07005736 pHddCtx->config->pno_slow_scan_multiplier);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005737#endif
5738#ifdef FEATURE_WLAN_TDLS
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005739 hdd_debug("Name = [fEnableTDLSSupport] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005740 pHddCtx->config->fEnableTDLSSupport);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005741 hdd_debug("Name = [fEnableTDLSImplicitTrigger] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005742 pHddCtx->config->fEnableTDLSImplicitTrigger);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005743 hdd_debug("Name = [fTDLSExternalControl] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005744 pHddCtx->config->fTDLSExternalControl);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005745 hdd_debug("Name = [fTDLSUapsdMask] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005746 pHddCtx->config->fTDLSUapsdMask);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005747 hdd_debug("Name = [fEnableTDLSBufferSta] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005748 pHddCtx->config->fEnableTDLSBufferSta);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005749 hdd_debug("Name = [fEnableTDLSWmmMode] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005750 pHddCtx->config->fEnableTDLSWmmMode);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005751 hdd_debug("Name = [enable_tdls_scan] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005752 pHddCtx->config->enable_tdls_scan);
5753#endif
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005754 hdd_debug("Name = [InfraDirAcVo] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005755 pHddCtx->config->InfraDirAcVo);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005756 hdd_debug("Name = [InfraNomMsduSizeAcVo] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005757 pHddCtx->config->InfraNomMsduSizeAcVo);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005758 hdd_debug("Name = [InfraMeanDataRateAcVo] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005759 pHddCtx->config->InfraMeanDataRateAcVo);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005760 hdd_debug("Name = [InfraMinPhyRateAcVo] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005761 pHddCtx->config->InfraMinPhyRateAcVo);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005762 hdd_debug("Name = [InfraSbaAcVo] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005763 pHddCtx->config->InfraSbaAcVo);
5764
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005765 hdd_debug("Name = [InfraDirAcVi] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005766 pHddCtx->config->InfraDirAcVi);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005767 hdd_debug("Name = [InfraNomMsduSizeAcVi] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005768 pHddCtx->config->InfraNomMsduSizeAcVi);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005769 hdd_debug("Name = [InfraMeanDataRateAcVi] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005770 pHddCtx->config->InfraMeanDataRateAcVi);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005771 hdd_debug("Name = [InfraMinPhyRateAcVi] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005772 pHddCtx->config->InfraMinPhyRateAcVi);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005773 hdd_debug("Name = [InfraSbaAcVi] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005774 pHddCtx->config->InfraSbaAcVi);
5775
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005776 hdd_debug("Name = [InfraDirAcBe] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005777 pHddCtx->config->InfraDirAcBe);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005778 hdd_debug("Name = [InfraNomMsduSizeAcBe] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005779 pHddCtx->config->InfraNomMsduSizeAcBe);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005780 hdd_debug("Name = [InfraMeanDataRateAcBe] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005781 pHddCtx->config->InfraMeanDataRateAcBe);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005782 hdd_debug("Name = [InfraMinPhyRateAcBe] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005783 pHddCtx->config->InfraMinPhyRateAcBe);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005784 hdd_debug("Name = [InfraSbaAcBe] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005785 pHddCtx->config->InfraSbaAcBe);
5786
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005787 hdd_debug("Name = [InfraDirAcBk] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005788 pHddCtx->config->InfraDirAcBk);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005789 hdd_debug("Name = [InfraNomMsduSizeAcBk] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005790 pHddCtx->config->InfraNomMsduSizeAcBk);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005791 hdd_debug("Name = [InfraMeanDataRateAcBk] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005792 pHddCtx->config->InfraMeanDataRateAcBk);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005793 hdd_debug("Name = [InfraMinPhyRateAcBk] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005794 pHddCtx->config->InfraMinPhyRateAcBk);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005795 hdd_debug("Name = [InfraSbaAcBk] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005796 pHddCtx->config->InfraSbaAcBk);
5797
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005798 hdd_debug("Name = [DelayedTriggerFrmInt] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005799 pHddCtx->config->DelayedTriggerFrmInt);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005800 hdd_debug("Name = [fhostArpOffload] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005801 pHddCtx->config->fhostArpOffload);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005802 hdd_debug("Name = [%s] Value = [%u]",
Dustin Brown1224e212017-05-12 14:02:12 -07005803 CFG_HW_FILTER_MODE_NAME, pHddCtx->config->hw_filter_mode);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005804 hdd_debug("Name = [ssdp] Value = [%u] ", pHddCtx->config->ssdp);
Houston Hoffmanc7c69f02016-03-24 22:45:52 -07005805 hdd_cfg_print_runtime_pm(pHddCtx);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005806#ifdef FEATURE_WLAN_RA_FILTERING
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005807 hdd_debug("Name = [RArateLimitInterval] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005808 pHddCtx->config->RArateLimitInterval);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005809 hdd_debug("Name = [IsRArateLimitEnabled] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005810 pHddCtx->config->IsRArateLimitEnabled);
5811#endif
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005812 hdd_debug("Name = [fFTResourceReqSupported] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005813 pHddCtx->config->fFTResourceReqSupported);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005814
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005815 hdd_debug("Name = [nNeighborLookupRssiThreshold] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005816 pHddCtx->config->nNeighborLookupRssiThreshold);
Varun Reddy Yeturu168134f2017-06-26 13:46:05 -07005817 hdd_debug("Name = [%s] Value = [%d] ",
5818 CFG_5G_RSSI_THRESHOLD_OFFSET_NAME,
5819 pHddCtx->config->rssi_thresh_offset_5g);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005820 hdd_debug("Name = [delay_before_vdev_stop] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005821 pHddCtx->config->delay_before_vdev_stop);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005822 hdd_debug("Name = [nOpportunisticThresholdDiff] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005823 pHddCtx->config->nOpportunisticThresholdDiff);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005824 hdd_debug("Name = [nRoamRescanRssiDiff] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005825 pHddCtx->config->nRoamRescanRssiDiff);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005826 hdd_debug("Name = [nNeighborScanMinChanTime] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005827 pHddCtx->config->nNeighborScanMinChanTime);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005828 hdd_debug("Name = [nNeighborScanMaxChanTime] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005829 pHddCtx->config->nNeighborScanMaxChanTime);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005830 hdd_debug("Name = [nMaxNeighborRetries] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005831 pHddCtx->config->nMaxNeighborReqTries);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005832 hdd_debug("Name = [nNeighborScanPeriod] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005833 pHddCtx->config->nNeighborScanPeriod);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005834 hdd_debug("Name = [n_neighbor_scan_min_period] Value = [%u] ",
Sridhar Selvaraj1b2330c2017-07-21 15:16:42 +05305835 pHddCtx->config->neighbor_scan_min_period);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005836 hdd_debug("Name = [nNeighborScanResultsRefreshPeriod] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005837 pHddCtx->config->nNeighborResultsRefreshPeriod);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005838 hdd_debug("Name = [nEmptyScanRefreshPeriod] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005839 pHddCtx->config->nEmptyScanRefreshPeriod);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005840 hdd_debug("Name = [nRoamBmissFirstBcnt] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005841 pHddCtx->config->nRoamBmissFirstBcnt);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005842 hdd_debug("Name = [nRoamBmissFinalBcnt] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005843 pHddCtx->config->nRoamBmissFinalBcnt);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005844 hdd_debug("Name = [nRoamBeaconRssiWeight] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005845 pHddCtx->config->nRoamBeaconRssiWeight);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005846 hdd_debug("Name = [allowDFSChannelRoam] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005847 pHddCtx->config->allowDFSChannelRoam);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005848 hdd_debug("Name = [nhi_rssi_scan_max_count] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005849 pHddCtx->config->nhi_rssi_scan_max_count);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005850 hdd_debug("Name = [nhi_rssi_scan_rssi_delta] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005851 pHddCtx->config->nhi_rssi_scan_rssi_delta);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005852 hdd_debug("Name = [nhi_rssi_scan_delay] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005853 pHddCtx->config->nhi_rssi_scan_delay);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005854 hdd_debug("Name = [nhi_rssi_scan_rssi_ub] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005855 pHddCtx->config->nhi_rssi_scan_rssi_ub);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005856 hdd_debug("Name = [burstSizeDefinition] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005857 pHddCtx->config->burstSizeDefinition);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005858 hdd_debug("Name = [tsInfoAckPolicy] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005859 pHddCtx->config->tsInfoAckPolicy);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005860 hdd_debug("Name = [rfSettlingTimeUs] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005861 pHddCtx->config->rfSettlingTimeUs);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005862 hdd_debug("Name = [bSingleTidRc] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005863 pHddCtx->config->bSingleTidRc);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005864 hdd_debug("Name = [gDynamicPSPollvalue] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005865 pHddCtx->config->dynamicPsPollValue);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005866 hdd_debug("Name = [gAddTSWhenACMIsOff] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005867 pHddCtx->config->AddTSWhenACMIsOff);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005868 hdd_debug("Name = [gValidateScanList] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005869 pHddCtx->config->fValidateScanList);
5870
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005871 hdd_debug("Name = [gStaKeepAlivePeriod] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005872 pHddCtx->config->infraStaKeepAlivePeriod);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005873 hdd_debug("Name = [gApDataAvailPollInterVal] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005874 pHddCtx->config->apDataAvailPollPeriodInMs);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005875 hdd_debug("Name = [BandCapability] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005876 pHddCtx->config->nBandCapability);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005877 hdd_debug("Name = [teleBcnWakeupEnable] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005878 pHddCtx->config->teleBcnWakeupEn);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005879 hdd_debug("Name = [transListenInterval] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005880 pHddCtx->config->nTeleBcnTransListenInterval);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005881 hdd_debug("Name = [transLiNumIdleBeacons] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005882 pHddCtx->config->nTeleBcnTransLiNumIdleBeacons);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005883 hdd_debug("Name = [maxListenInterval] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005884 pHddCtx->config->nTeleBcnMaxListenInterval);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005885 hdd_debug("Name = [maxLiNumIdleBeacons] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005886 pHddCtx->config->nTeleBcnMaxLiNumIdleBeacons);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005887 hdd_debug("Name = [gEnableBypass11d] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005888 pHddCtx->config->enableBypass11d);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005889 hdd_debug("Name = [gEnableDFSChnlScan] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005890 pHddCtx->config->enableDFSChnlScan);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005891 hdd_debug("Name = [gEnableDFSPnoChnlScan] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005892 pHddCtx->config->enable_dfs_pno_chnl_scan);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005893 hdd_debug("Name = [gReportMaxLinkSpeed] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005894 pHddCtx->config->reportMaxLinkSpeed);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005895 hdd_debug("Name = [thermalMitigationEnable] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005896 pHddCtx->config->thermalMitigationEnable);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005897 hdd_debug("Name = [gVhtChannelWidth] value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005898 pHddCtx->config->vhtChannelWidth);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005899 hdd_debug("Name = [enableFirstScan2GOnly] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005900 pHddCtx->config->enableFirstScan2GOnly);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005901 hdd_debug("Name = [skipDfsChnlInP2pSearch] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005902 pHddCtx->config->skipDfsChnlInP2pSearch);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005903 hdd_debug("Name = [ignoreDynamicDtimInP2pMode] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005904 pHddCtx->config->ignoreDynamicDtimInP2pMode);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005905 hdd_debug("Name = [enableRxSTBC] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005906 pHddCtx->config->enableRxSTBC);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005907 hdd_debug("Name = [gEnableLpwrImgTransition] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005908 pHddCtx->config->enableLpwrImgTransition);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005909 hdd_debug("Name = [gEnableSSR] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005910 pHddCtx->config->enableSSR);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005911 hdd_debug("Name = [gEnableVhtFor24GHzBand] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005912 pHddCtx->config->enableVhtFor24GHzBand);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005913 hdd_debug("Name = [gEnableIbssHeartBeatOffload] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005914 pHddCtx->config->enableIbssHeartBeatOffload);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005915 hdd_debug("Name = [gAntennaDiversity] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005916 pHddCtx->config->antennaDiversity);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005917 hdd_debug("Name = [gGoLinkMonitorPeriod] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005918 pHddCtx->config->goLinkMonitorPeriod);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005919 hdd_debug("Name = [gApLinkMonitorPeriod] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005920 pHddCtx->config->apLinkMonitorPeriod);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005921 hdd_debug("Name = [gGoKeepAlivePeriod] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005922 pHddCtx->config->goKeepAlivePeriod);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005923 hdd_debug("Name = [gApKeepAlivePeriod]Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005924 pHddCtx->config->apKeepAlivePeriod);
Deepak Dhamdhere612392c2016-08-28 02:56:51 -07005925 hdd_debug("Name = [max_amsdu_num] Value = [%u] ",
5926 pHddCtx->config->max_amsdu_num);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005927 hdd_debug("Name = [nSelect5GHzMargin] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005928 pHddCtx->config->nSelect5GHzMargin);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005929 hdd_debug("Name = [gCoalesingInIBSS] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005930 pHddCtx->config->isCoalesingInIBSSAllowed);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005931 hdd_debug("Name = [gIbssATIMWinSize] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005932 pHddCtx->config->ibssATIMWinSize);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005933 hdd_debug("Name = [gIbssIsPowerSaveAllowed] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005934 pHddCtx->config->isIbssPowerSaveAllowed);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005935 hdd_debug("Name = [gIbssIsPowerCollapseAllowed] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005936 pHddCtx->config->isIbssPowerCollapseAllowed);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005937 hdd_debug("Name = [gIbssAwakeOnTxRx] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005938 pHddCtx->config->isIbssAwakeOnTxRx);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005939 hdd_debug("Name = [gIbssInactivityTime] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005940 pHddCtx->config->ibssInactivityCount);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005941 hdd_debug("Name = [gIbssTxSpEndInactivityTime] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005942 pHddCtx->config->ibssTxSpEndInactivityTime);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005943 hdd_debug("Name = [gIbssPsWarmupTime] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005944 pHddCtx->config->ibssPsWarmupTime);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005945 hdd_debug("Name = [gIbssPs1RxChainInAtim] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005946 pHddCtx->config->ibssPs1RxChainInAtimEnable);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005947 hdd_debug("Name = [fDfsPhyerrFilterOffload] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005948 pHddCtx->config->fDfsPhyerrFilterOffload);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005949 hdd_debug("Name = [gIgnorePeerErpInfo] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005950 pHddCtx->config->ignore_peer_erp_info);
5951#ifdef IPA_OFFLOAD
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005952 hdd_debug("Name = [gIPAConfig] Value = [0x%x] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005953 pHddCtx->config->IpaConfig);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005954 hdd_debug("Name = [gIPADescSize] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005955 pHddCtx->config->IpaDescSize);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005956 hdd_debug("Name = [IpaHighBandwidthMbpsg] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005957 pHddCtx->config->IpaHighBandwidthMbps);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005958 hdd_debug("Name = [IpaMediumBandwidthMbps] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005959 pHddCtx->config->IpaMediumBandwidthMbps);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005960 hdd_debug("Name = [IpaLowBandwidthMbps] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005961 pHddCtx->config->IpaLowBandwidthMbps);
jiad14fe4fb2017-08-08 13:33:14 +08005962 hdd_info("Name = [IpaMccTxDescSize] Value = [%u] ",
5963 pHddCtx->config->IpaMccTxDescSize);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005964#endif
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005965 hdd_debug("Name = [gEnableOverLapCh] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005966 pHddCtx->config->gEnableOverLapCh);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005967 hdd_debug("Name = [gMaxOffloadPeers] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005968 pHddCtx->config->apMaxOffloadPeers);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005969 hdd_debug("Name = [gMaxOffloadReorderBuffs] value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005970 pHddCtx->config->apMaxOffloadReorderBuffs);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005971 hdd_debug("Name = [%s] Value = [%d]",
Dustin Brown732ab9c2017-06-15 13:24:09 -07005972 CFG_ENABLE_CCK_TX_FIR_OVERRIDE_NAME,
5973 pHddCtx->config->enable_cck_tx_fir_override);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005974 hdd_debug("Name = [gAllowDFSChannelRoam] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005975 pHddCtx->config->allowDFSChannelRoam);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005976 hdd_debug("Name = [gMaxConcurrentActiveSessions] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005977 pHddCtx->config->gMaxConcurrentActiveSessions);
5978
5979#ifdef MSM_PLATFORM
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005980 hdd_debug("Name = [gBusBandwidthHighThreshold] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005981 pHddCtx->config->busBandwidthHighThreshold);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005982 hdd_debug("Name = [gBusBandwidthMediumThreshold] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005983 pHddCtx->config->busBandwidthMediumThreshold);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005984 hdd_debug("Name = [gBusBandwidthLowThreshold] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005985 pHddCtx->config->busBandwidthLowThreshold);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005986 hdd_debug("Name = [gbusBandwidthComputeInterval] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005987 pHddCtx->config->busBandwidthComputeInterval);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005988 hdd_debug("Name = [%s] Value = [%u] ",
Ravi Joshie2331e82015-07-01 18:18:54 -07005989 CFG_ENABLE_TCP_DELACK,
5990 pHddCtx->config->enable_tcp_delack);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005991 hdd_debug("Name = [gTcpDelAckThresholdHigh] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005992 pHddCtx->config->tcpDelackThresholdHigh);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005993 hdd_debug("Name = [gTcpDelAckThresholdLow] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005994 pHddCtx->config->tcpDelackThresholdLow);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005995 hdd_debug("Name = [%s] Value = [%u] ",
Ravi Joshib89e7f72016-09-07 13:43:15 -07005996 CFG_TCP_DELACK_TIMER_COUNT,
5997 pHddCtx->config->tcp_delack_timer_count);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005998 hdd_debug("Name = [%s] Value = [%u] ",
Ravi Joshib89e7f72016-09-07 13:43:15 -07005999 CFG_TCP_TX_HIGH_TPUT_THRESHOLD_NAME,
6000 pHddCtx->config->tcp_tx_high_tput_thres);
Mohit Khannae71e2262015-11-10 09:37:24 -08006001
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006002#endif
6003
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006004 hdd_debug("Name = [gIgnoreCAC] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006005 pHddCtx->config->ignoreCAC);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006006 hdd_debug("Name = [gSapPreferredChanLocation] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006007 pHddCtx->config->gSapPreferredChanLocation);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006008 hdd_debug("Name = [gDisableDfsJapanW53] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006009 pHddCtx->config->gDisableDfsJapanW53);
6010#ifdef FEATURE_GREEN_AP
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006011 hdd_debug("Name = [gEnableGreenAp] Value = [%u] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006012 pHddCtx->config->enableGreenAP);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006013 hdd_debug("Name = [gEenableEGAP] Value = [%u] ",
Ryan Hsucb118cf2015-11-09 16:03:53 -08006014 pHddCtx->config->enable_egap);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006015 hdd_debug("Name = [gEGAPInactTime] Value = [%u] ",
Ryan Hsucb118cf2015-11-09 16:03:53 -08006016 pHddCtx->config->egap_inact_time);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006017 hdd_debug("Name = [gEGAPWaitTime] Value = [%u] ",
Ryan Hsucb118cf2015-11-09 16:03:53 -08006018 pHddCtx->config->egap_wait_time);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006019 hdd_debug("Name = [gEGAPFeatures] Value = [%u] ",
Ryan Hsucb118cf2015-11-09 16:03:53 -08006020 pHddCtx->config->egap_feature_flag);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006021#endif
6022#ifdef WLAN_FEATURE_ROAM_OFFLOAD
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006023 hdd_debug("Name = [isRoamOffloadEnabled] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006024 pHddCtx->config->isRoamOffloadEnabled);
6025#endif
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006026 hdd_debug("Name = [gEnableSifsBurst] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006027 pHddCtx->config->enableSifsBurst);
6028
6029#ifdef WLAN_FEATURE_LPSS
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006030 hdd_debug("Name = [gEnableLpassSupport] Value = [%u] ",
Komal Seelamc11bb222016-01-27 18:57:10 +05306031 pHddCtx->config->enable_lpass_support);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006032#endif
6033
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006034 hdd_debug("Name = [gEnableSelfRecovery] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006035 pHddCtx->config->enableSelfRecovery);
6036
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006037 hdd_debug("Name = [gEnableSapSuspend] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006038 pHddCtx->config->enableSapSuspend);
6039
6040#ifdef WLAN_FEATURE_EXTWOW_SUPPORT
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006041 hdd_debug("Name = [gExtWoWgotoSuspend] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006042 pHddCtx->config->extWowGotoSuspend);
6043
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006044 hdd_debug("Name = [gExtWowApp1WakeupPinNumber] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006045 pHddCtx->config->extWowApp1WakeupPinNumber);
6046
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006047 hdd_debug("Name = [gExtWowApp2WakeupPinNumber] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006048 pHddCtx->config->extWowApp2WakeupPinNumber);
6049
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006050 hdd_debug("Name = [gExtWoWApp2KAInitPingInterval] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006051 pHddCtx->config->extWowApp2KAInitPingInterval);
6052
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006053 hdd_debug("Name = [gExtWoWApp2KAMinPingInterval] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006054 pHddCtx->config->extWowApp2KAMinPingInterval);
6055
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006056 hdd_debug("Name = [gExtWoWApp2KAMaxPingInterval] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006057 pHddCtx->config->extWowApp2KAMaxPingInterval);
6058
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006059 hdd_debug("Name = [gExtWoWApp2KAIncPingInterval] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006060 pHddCtx->config->extWowApp2KAIncPingInterval);
6061
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006062 hdd_debug("Name = [gExtWoWApp2TcpSrcPort] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006063 pHddCtx->config->extWowApp2TcpSrcPort);
6064
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006065 hdd_debug("Name = [gExtWoWApp2TcpDstPort] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006066 pHddCtx->config->extWowApp2TcpDstPort);
6067
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006068 hdd_debug("Name = [gExtWoWApp2TcpTxTimeout] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006069 pHddCtx->config->extWowApp2TcpTxTimeout);
6070
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006071 hdd_debug("Name = [gExtWoWApp2TcpRxTimeout] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006072 pHddCtx->config->extWowApp2TcpRxTimeout);
6073#endif
6074
6075#ifdef DHCP_SERVER_OFFLOAD
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006076 hdd_debug("Name = [gDHCPServerOffloadEnable] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006077 pHddCtx->config->enableDHCPServerOffload);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006078 hdd_debug("Name = [gDHCPMaxNumClients] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006079 pHddCtx->config->dhcpMaxNumClients);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006080 hdd_debug("Name = [gDHCPServerIP] Value = [%s]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006081 pHddCtx->config->dhcpServerIP);
6082#endif
6083
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006084 hdd_debug("Name = [gEnableDumpCollect] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006085 pHddCtx->config->is_ramdump_enabled);
6086
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006087 hdd_debug("Name = [gP2PListenDeferInterval] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006088 pHddCtx->config->p2p_listen_defer_interval);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006089 hdd_debug("Name = [is_ps_enabled] value = [%d]",
Archana Ramachandrane87005c2016-08-23 16:57:30 -07006090 pHddCtx->config->is_ps_enabled);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006091 hdd_debug("Name = [tso_enable] value = [%d]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006092 pHddCtx->config->tso_enable);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006093 hdd_debug("Name = [LROEnable] value = [%d]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006094 pHddCtx->config->lro_enable);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006095 hdd_debug("Name = [active_mode_offload] value = [%d]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006096 pHddCtx->config->active_mode_offload);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006097 hdd_debug("Name = [gfine_time_meas_cap] value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006098 pHddCtx->config->fine_time_meas_cap);
6099#ifdef WLAN_FEATURE_FASTPATH
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006100 hdd_debug("Name = [fastpath_enable] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006101 pHddCtx->config->fastpath_enable);
6102#endif
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006103 hdd_debug("Name = [max_scan_count] value = [%d]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006104 pHddCtx->config->max_scan_count);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006105 hdd_debug("Name = [%s] value = [%d]",
Nirav Shahbd36b062016-07-18 11:12:59 +05306106 CFG_RX_MODE_NAME, pHddCtx->config->rx_mode);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006107 hdd_debug("Name = [%s] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006108 CFG_CE_CLASSIFY_ENABLE_NAME,
6109 pHddCtx->config->ce_classify_enabled);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006110 hdd_debug("Name = [%s] value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006111 CFG_DUAL_MAC_FEATURE_DISABLE,
6112 pHddCtx->config->dual_mac_feature_disable);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006113 hdd_debug("Name = [%s] Value = [%s]",
Nitesh Shah50a3de12017-04-03 19:37:19 +05306114 CFG_DBS_SCAN_SELECTION_NAME,
6115 pHddCtx->config->dbs_scan_selection);
Varun Reddy Yeturub43fda12015-09-10 18:16:21 -07006116#ifdef FEATURE_WLAN_SCAN_PNO
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006117 hdd_debug("Name = [%s] Value = [%u]",
Archana Ramachandrane87005c2016-08-23 16:57:30 -07006118 CFG_PNO_CHANNEL_PREDICTION_NAME,
6119 pHddCtx->config->pno_channel_prediction);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006120 hdd_debug("Name = [%s] Value = [%u]",
Archana Ramachandrane87005c2016-08-23 16:57:30 -07006121 CFG_TOP_K_NUM_OF_CHANNELS_NAME,
6122 pHddCtx->config->top_k_num_of_channels);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006123 hdd_debug("Name = [%s] Value = [%u]",
Archana Ramachandrane87005c2016-08-23 16:57:30 -07006124 CFG_STATIONARY_THRESHOLD_NAME,
6125 pHddCtx->config->stationary_thresh);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006126 hdd_debug("Name = [%s] Value = [%u]",
Archana Ramachandrane87005c2016-08-23 16:57:30 -07006127 CFG_CHANNEL_PREDICTION_FULL_SCAN_MS_NAME,
6128 pHddCtx->config->channel_prediction_full_scan);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006129 hdd_debug("Name = [%s] Value = [%u]",
Archana Ramachandrane87005c2016-08-23 16:57:30 -07006130 CFG_ADAPTIVE_PNOSCAN_DWELL_MODE_NAME,
6131 pHddCtx->config->pnoscan_adaptive_dwell_mode);
Varun Reddy Yeturub43fda12015-09-10 18:16:21 -07006132#endif
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006133 hdd_debug("Name = [%s] Value = [%d]",
Archana Ramachandrane87005c2016-08-23 16:57:30 -07006134 CFG_EARLY_STOP_SCAN_ENABLE,
6135 pHddCtx->config->early_stop_scan_enable);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006136 hdd_debug("Name = [%s] Value = [%d]",
Archana Ramachandrane87005c2016-08-23 16:57:30 -07006137 CFG_EARLY_STOP_SCAN_MIN_THRESHOLD,
6138 pHddCtx->config->early_stop_scan_min_threshold);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006139 hdd_debug("Name = [%s] Value = [%d]",
Archana Ramachandrane87005c2016-08-23 16:57:30 -07006140 CFG_EARLY_STOP_SCAN_MAX_THRESHOLD,
6141 pHddCtx->config->early_stop_scan_max_threshold);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006142 hdd_debug("Name = [%s] Value = [%d]",
Archana Ramachandrane87005c2016-08-23 16:57:30 -07006143 CFG_FIRST_SCAN_BUCKET_THRESHOLD_NAME,
6144 pHddCtx->config->first_scan_bucket_threshold);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006145 hdd_debug("Name = [%s] Value = [%u]",
Archana Ramachandrane87005c2016-08-23 16:57:30 -07006146 CFG_HT_MPDU_DENSITY_NAME,
6147 pHddCtx->config->ht_mpdu_density);
Krishna Kumaar Natarajan22b59a72015-11-23 18:54:58 -08006148
Ravi Joshi742495d2015-11-09 18:56:53 -08006149
6150#ifdef FEATURE_LFR_SUBNET_DETECTION
Archana Ramachandrane87005c2016-08-23 16:57:30 -07006151 hdd_notice("Name = [%s] Value = [%d]",
6152 CFG_ENABLE_LFR_SUBNET_DETECTION,
6153 pHddCtx->config->enable_lfr_subnet_detection);
Ravi Joshi742495d2015-11-09 18:56:53 -08006154#endif
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006155 hdd_debug("Name = [%s] Value = [%u]",
Gupta, Kapilc68ad462016-02-01 19:17:23 +05306156 CFG_ROAM_DENSE_TRAFFIC_THRESHOLD,
6157 pHddCtx->config->roam_dense_traffic_thresh);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006158 hdd_debug("Name = [%s] Value = [%u]",
Gupta, Kapilc68ad462016-02-01 19:17:23 +05306159 CFG_ROAM_DENSE_RSSI_THRE_OFFSET,
6160 pHddCtx->config->roam_dense_rssi_thresh_offset);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006161 hdd_debug("Name = [%s] Value = [%u]",
Abhishek Singh165bc602016-03-21 12:43:00 +05306162 CFG_IGNORE_PEER_HT_MODE_NAME,
6163 pHddCtx->config->ignore_peer_ht_opmode);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006164 hdd_debug("Name = [%s] Value = [%u]",
Kapil Gupta4b2efbb2016-10-03 13:07:20 +05306165 CFG_ENABLE_VENDOR_VHT_FOR_24GHZ_NAME,
6166 pHddCtx->config->enable_sap_vendor_vht);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006167 hdd_debug("Name = [%s] Value = [%u]",
Abhishek Singh5ea86532016-04-27 14:10:53 +05306168 CFG_ENABLE_FATAL_EVENT_TRIGGER,
6169 pHddCtx->config->enable_fatal_event);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006170 hdd_debug("Name = [%s] Value = [%u]",
Gupta, Kapilc68ad462016-02-01 19:17:23 +05306171 CFG_ROAM_DENSE_MIN_APS,
6172 pHddCtx->config->roam_dense_min_aps);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006173 hdd_debug("Name = [%s] Value = [%u]",
Agrawal Ashish17bb3902016-05-05 13:29:40 +05306174 CFG_MIN_REST_TIME_NAME,
6175 pHddCtx->config->min_rest_time_conc);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006176 hdd_debug("Name = [%s] Value = [%u]",
Agrawal Ashish17bb3902016-05-05 13:29:40 +05306177 CFG_IDLE_TIME_NAME,
6178 pHddCtx->config->idle_time_conc);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006179 hdd_debug("Name = [%s] Value = [%d]",
Mukul Sharmaf7d62e12016-09-03 15:16:22 +05306180 CFG_BUG_ON_REINIT_FAILURE_NAME,
6181 pHddCtx->config->bug_on_reinit_failure);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006182 hdd_debug("Name = [%s] Value = [%u]",
Arun Khandavallifae92942016-08-01 13:31:08 +05306183 CFG_INTERFACE_CHANGE_WAIT_NAME,
6184 pHddCtx->config->iface_change_wait_time);
Agrawal Ashish17bb3902016-05-05 13:29:40 +05306185
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006186 hdd_debug("Name = [%s] Value = [%u]",
Abhishek Singh10ecf582016-05-04 17:48:59 +05306187 CFG_ENABLE_EDCA_INI_NAME,
6188 pHddCtx->config->enable_edca_params);
6189
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006190 hdd_debug("Name = [%s] Value = [%u]",
Abhishek Singh10ecf582016-05-04 17:48:59 +05306191 CFG_EDCA_VO_CWMIN_VALUE_NAME,
6192 pHddCtx->config->edca_vo_cwmin);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006193 hdd_debug("Name = [%s] Value = [%u]",
Abhishek Singh10ecf582016-05-04 17:48:59 +05306194 CFG_EDCA_VI_CWMIN_VALUE_NAME,
6195 pHddCtx->config->edca_vi_cwmin);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006196 hdd_debug("Name = [%s] Value = [%u]",
Abhishek Singh10ecf582016-05-04 17:48:59 +05306197 CFG_EDCA_BK_CWMIN_VALUE_NAME,
6198 pHddCtx->config->edca_bk_cwmin);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006199 hdd_debug("Name = [%s] Value = [%u]",
Abhishek Singh10ecf582016-05-04 17:48:59 +05306200 CFG_EDCA_BE_CWMIN_VALUE_NAME,
6201 pHddCtx->config->edca_be_cwmin);
6202
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006203 hdd_debug("Name = [%s] Value = [%u]",
Abhishek Singh10ecf582016-05-04 17:48:59 +05306204 CFG_EDCA_VO_CWMAX_VALUE_NAME,
6205 pHddCtx->config->edca_vo_cwmax);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006206 hdd_debug("Name = [%s] Value = [%u]",
Abhishek Singh10ecf582016-05-04 17:48:59 +05306207 CFG_EDCA_VI_CWMAX_VALUE_NAME,
6208 pHddCtx->config->edca_vi_cwmax);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006209 hdd_debug("Name = [%s] Value = [%u]",
Abhishek Singh10ecf582016-05-04 17:48:59 +05306210 CFG_EDCA_BK_CWMAX_VALUE_NAME,
6211 pHddCtx->config->edca_bk_cwmax);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006212 hdd_debug("Name = [%s] Value = [%u]",
Abhishek Singh10ecf582016-05-04 17:48:59 +05306213 CFG_EDCA_BE_CWMAX_VALUE_NAME,
6214 pHddCtx->config->edca_be_cwmax);
6215
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006216 hdd_debug("Name = [%s] Value = [%u]",
Abhishek Singh10ecf582016-05-04 17:48:59 +05306217 CFG_EDCA_VO_AIFS_VALUE_NAME,
6218 pHddCtx->config->edca_vo_aifs);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006219 hdd_debug("Name = [%s] Value = [%u]",
Abhishek Singh10ecf582016-05-04 17:48:59 +05306220 CFG_EDCA_VI_AIFS_VALUE_NAME,
6221 pHddCtx->config->edca_vi_aifs);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006222 hdd_debug("Name = [%s] Value = [%u]",
Abhishek Singh10ecf582016-05-04 17:48:59 +05306223 CFG_EDCA_BK_AIFS_VALUE_NAME,
6224 pHddCtx->config->edca_bk_aifs);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006225 hdd_debug("Name = [%s] Value = [%u]",
Abhishek Singh10ecf582016-05-04 17:48:59 +05306226 CFG_EDCA_BE_AIFS_VALUE_NAME,
6227 pHddCtx->config->edca_be_aifs);
gbian62edd7e2017-03-07 13:12:13 +08006228
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006229 hdd_debug("Name = [%s] Value = [%s]",
gbian62edd7e2017-03-07 13:12:13 +08006230 CFG_ENABLE_TX_SCHED_WRR_VO_NAME,
6231 pHddCtx->config->tx_sched_wrr_vo);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006232 hdd_debug("Name = [%s] Value = [%s]",
gbian62edd7e2017-03-07 13:12:13 +08006233 CFG_ENABLE_TX_SCHED_WRR_VI_NAME,
6234 pHddCtx->config->tx_sched_wrr_vi);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006235 hdd_debug("Name = [%s] Value = [%s]",
gbian62edd7e2017-03-07 13:12:13 +08006236 CFG_ENABLE_TX_SCHED_WRR_BK_NAME,
6237 pHddCtx->config->tx_sched_wrr_bk);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006238 hdd_debug("Name = [%s] Value = [%s]",
gbian62edd7e2017-03-07 13:12:13 +08006239 CFG_ENABLE_TX_SCHED_WRR_BE_NAME,
6240 pHddCtx->config->tx_sched_wrr_be);
Mohit Khannaf8f96822017-05-17 17:11:59 -07006241 hdd_info("Name = [%s] Value = [%u]",
Nirav Shahcc1f1ae2016-04-26 11:41:29 +05306242 CFG_ENABLE_DP_TRACE,
6243 pHddCtx->config->enable_dp_trace);
Mohit Khannaf8f96822017-05-17 17:11:59 -07006244 hdd_debug("Name = [%s] Value = [%s]",
6245 CFG_ENABLE_DP_TRACE_CONFIG,
6246 pHddCtx->config->dp_trace_config);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006247 hdd_debug("Name = [%s] Value = [%u]",
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05306248 CFG_ADAPTIVE_SCAN_DWELL_MODE_NAME,
6249 pHddCtx->config->scan_adaptive_dwell_mode);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006250 hdd_debug("Name = [%s] Value = [%u]",
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05306251 CFG_ADAPTIVE_ROAMSCAN_DWELL_MODE_NAME,
6252 pHddCtx->config->roamscan_adaptive_dwell_mode);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006253 hdd_debug("Name = [%s] Value = [%u]",
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05306254 CFG_ADAPTIVE_EXTSCAN_DWELL_MODE_NAME,
6255 pHddCtx->config->extscan_adaptive_dwell_mode);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006256 hdd_debug("Name = [%s] Value = [%u]",
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05306257 CFG_ADAPTIVE_DWELL_MODE_ENABLED_NAME,
6258 pHddCtx->config->adaptive_dwell_mode_enabled);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006259 hdd_debug("Name = [%s] Value = [%u]",
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05306260 CFG_GLOBAL_ADAPTIVE_DWELL_MODE_NAME,
6261 pHddCtx->config->global_adapt_dwelltime_mode);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006262 hdd_debug("Name = [%s] Value = [%u]",
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05306263 CFG_ADAPT_DWELL_LPF_WEIGHT_NAME,
6264 pHddCtx->config->adapt_dwell_lpf_weight);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006265 hdd_debug("Name = [%s] Value = [%u]",
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05306266 CFG_ADAPT_DWELL_PASMON_INTVAL_NAME,
6267 pHddCtx->config->adapt_dwell_passive_mon_intval);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006268 hdd_debug("Name = [%s] Value = [%u]",
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05306269 CFG_ADAPT_DWELL_WIFI_THRESH_NAME,
6270 pHddCtx->config->adapt_dwell_wifi_act_threshold);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006271 hdd_debug("Name = [%s] value = [%u]",
Naveen Rawat64e477e2016-05-20 10:34:56 -07006272 CFG_SUB_20_CHANNEL_WIDTH_NAME,
6273 pHddCtx->config->enable_sub_20_channel_width);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006274 hdd_debug("Name = [%s] Value = [%u]",
Rajeev Kumar Sirasanagandlaaf474742016-09-06 17:54:50 +05306275 CFG_TGT_GTX_USR_CFG_NAME,
6276 pHddCtx->config->tgt_gtx_usr_cfg);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006277 hdd_debug("Name = [%s] Value = [%u]",
Agrawal, Ashish4e5fa1c2016-09-21 19:03:43 +05306278 CFG_SAP_MAX_INACTIVITY_OVERRIDE_NAME,
6279 pHddCtx->config->sap_max_inactivity_override);
Deepak Dhamdhere3385d752016-05-25 20:36:47 -07006280 hdd_ndp_print_ini_config(pHddCtx);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006281 hdd_debug("Name = [%s] Value = [%s]",
Krishna Kumaar Natarajancc077c22016-08-02 10:41:53 -07006282 CFG_RM_CAPABILITY_NAME,
6283 pHddCtx->config->rm_capability);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006284 hdd_debug("Name = [%s] Value = [%d]",
Rajeev Kumar Sirasanagandlab79b5462016-09-06 18:33:17 +05306285 CFG_SAP_FORCE_11N_FOR_11AC_NAME,
6286 pHddCtx->config->sap_force_11n_for_11ac);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006287 hdd_debug("Name = [%s] Value = [%d]",
Rajeev Kumardd3bc602016-08-16 14:21:05 -07006288 CFG_BPF_PACKET_FILTER_OFFLOAD,
6289 pHddCtx->config->bpf_packet_filter_enable);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006290 hdd_debug("Name = [%s] Value = [%u]",
Nitesh Shah61c10d92016-10-19 19:29:15 +05306291 CFG_TDLS_ENABLE_DEFER_TIMER,
6292 pHddCtx->config->tdls_enable_defer_time);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006293 hdd_debug("Name = [%s] Value = [%d]",
Ravi Joshibb8d4512016-08-22 10:14:52 -07006294 CFG_FILTER_MULTICAST_REPLAY_NAME,
6295 pHddCtx->config->multicast_replay_filter);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006296 hdd_debug("Name = [%s] Value = [%u]",
Agrawal Ashishb2d1a452016-05-05 12:23:58 +05306297 CFG_ENABLE_GO_CTS2SELF_FOR_STA,
6298 pHddCtx->config->enable_go_cts2self_for_sta);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006299 hdd_debug("Name = [%s] Value = [%u]",
Sandeep Puligillaafa52892016-10-26 19:03:16 -07006300 CFG_CRASH_FW_TIMEOUT_NAME,
6301 pHddCtx->config->fw_timeout_crash);
Hanumanth Reddy Pothulae87621b2017-04-12 20:53:35 +05306302 hdd_debug("Name = [%s] Value = [%u]",
6303 CFG_ACTIVE_UC_BPF_MODE_NAME,
6304 pHddCtx->config->active_uc_bpf_mode);
6305 hdd_debug("Name = [%s] Value = [%u]",
6306 CFG_ACTIVE_MC_BC_BPF_MODE_NAME,
6307 pHddCtx->config->active_mc_bc_bpf_mode);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006308 hdd_debug("Name = [%s] Value = [%d]",
Arun Khandavallicc544b32017-01-30 19:52:16 +05306309 CFG_SAP_INTERNAL_RESTART_NAME,
6310 pHddCtx->config->sap_internal_restart);
gaoleze5108942017-03-31 16:56:42 +08006311 hdd_debug("Name = [%s] Value = [%d]",
6312 CFG_ACS_WITH_MORE_PARAM_NAME,
6313 pHddCtx->config->acs_with_more_param);
Ravi Kumar Bokka05c14e52017-03-27 14:48:23 +05306314 hdd_debug("Name = [%s] Value = [%u]",
6315 CFG_AUTO_DETECT_POWER_FAIL_MODE_NAME,
6316 pHddCtx->config->auto_pwr_save_fail_mode);
Hanumanth Reddy Pothula9c161dd2017-03-23 19:03:08 +05306317 hdd_debug("Name = [%s] Value = [%d]",
Hanumanth Reddy Pothulaffc2d482017-07-04 11:32:44 +05306318 CFG_RESTART_BEACONING_ON_CH_AVOID_NAME,
6319 pHddCtx->config->restart_beaconing_on_chan_avoid_event);
Ravi Kumar Bokka05c14e52017-03-27 14:48:23 +05306320
Kapil Gupta5cda2252016-12-29 18:44:26 +05306321 hdd_per_roam_print_ini_config(pHddCtx);
Krishna Kumaar Natarajan90bb6f12017-03-03 21:05:52 -08006322 hdd_he_print_ini_config(pHddCtx);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006323 hdd_debug("Name = [%s] Value = [%d]",
Srinivas Girigowda70e169a2017-03-07 23:55:57 -08006324 CFG_ARP_AC_CATEGORY,
6325 pHddCtx->config->arp_ac_category);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006326 hdd_debug("Name = [%s] Value = [%u]",
Dustin Brown20b6fcf2017-05-17 15:35:17 -07006327 CFG_SCAN_BACKOFF_MULTIPLIER_NAME,
6328 pHddCtx->config->scan_backoff_multiplier);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006329 hdd_debug("Name = [%s] Value = [%d]",
Jayachandran Sreekumaran68c952c2017-04-24 12:42:03 +05306330 CFG_EXTERNAL_ACS_POLICY,
6331 pHddCtx->config->external_acs_policy);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006332 hdd_debug("Name = [%s] Value = [%d]",
Jayachandran Sreekumaran68c952c2017-04-24 12:42:03 +05306333 CFG_EXTERNAL_ACS_FREQ_BAND,
6334 pHddCtx->config->external_acs_freq_band);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006335 hdd_debug("Name = [%s] value = [%u]",
Naveen Rawat2b6e3c92017-03-20 13:59:07 -07006336 CFG_DROPPED_PKT_DISCONNECT_TH_NAME,
6337 pHddCtx->config->pkt_err_disconn_th);
Rajeev Kumar Sirasanagandlaaec0b082017-06-21 11:59:41 +05306338
6339 hdd_cfg_print_ie_whitelist_attrs(pHddCtx);
6340
Naveen Rawatb2fc4132017-05-10 20:42:05 -07006341 hdd_debug("Name = [%s] value = [%u]",
6342 CFG_FORCE_1X1_NAME,
6343 pHddCtx->config->is_force_1x1);
Srinivas Girigowda6598eea2017-07-06 19:26:19 -07006344 hdd_debug("Name = [%s] Value = %u",
Ashish Kumar Dhanotiya470af292017-05-31 20:46:00 +05306345 CFG_ENABLE_CONNECTED_SCAN_NAME,
6346 pHddCtx->config->enable_connected_scan);
Naveen Rawat247a8682017-06-05 15:00:31 -07006347 hdd_debug("Name = [%s] value = [%u]",
6348 CFG_11B_NUM_TX_CHAIN_NAME,
6349 pHddCtx->config->num_11b_tx_chains);
6350 hdd_debug("Name = [%s] value = [%u]",
6351 CFG_11AG_NUM_TX_CHAIN_NAME,
6352 pHddCtx->config->num_11ag_tx_chains);
Ashish Kumar Dhanotiya9335d812017-06-30 16:57:20 +05306353 hdd_debug("Name = [%s] value = [%u]",
6354 CFG_ITO_REPEAT_COUNT_NAME,
6355 pHddCtx->config->ito_repeat_count);
Selvaraj, Sridhar57ce4df2017-05-29 18:30:49 +05306356 hdd_debug("Name = [%s] Value = [%u]",
6357 CFG_ROAM_DISALLOW_DURATION_NAME,
6358 pHddCtx->config->disallow_duration);
6359 hdd_debug("Name = [%s] Value = [%u]",
6360 CFG_ROAM_RSSI_CHANNEL_PENALIZATION_NAME,
6361 pHddCtx->config->rssi_channel_penalization);
6362 hdd_debug("Name = [%s] Value = [%u]",
6363 CFG_ROAM_NUM_DISALLOWED_APS_NAME,
6364 pHddCtx->config->num_disallowed_aps);
Ashish Kumar Dhanotiyab8630ab2017-07-21 14:18:14 +05306365 hdd_debug("Name = [%s] value = [%u]",
6366 CFG_LPRx_NAME,
6367 pHddCtx->config->enable_lprx);
Ashish Kumar Dhanotiyab28338c2017-07-21 20:12:34 +05306368 hdd_debug("Name = [%s] value = [%u]",
6369 CFG_UPPER_BRSSI_THRESH_NAME,
6370 pHddCtx->config->upper_brssi_thresh);
6371 hdd_debug("Name = [%s] value = [%u]",
6372 CFG_LOWER_BRSSI_THRESH_NAME,
6373 pHddCtx->config->lower_brssi_thresh);
6374 hdd_debug("Name = [%s] value = [%u]",
6375 CFG_DTIM_1CHRX_ENABLE_NAME,
6376 pHddCtx->config->enable_dtim_1chrx);
Ravi Joshi9771d432017-06-26 13:58:12 -07006377 hdd_debug("Name = [%s] value = [%u]",
6378 CFG_RANDOMIZE_NDI_MAC_NAME,
6379 pHddCtx->config->is_ndi_mac_randomized);
Ashish Kumar Dhanotiyacc2e0d32017-08-24 20:13:08 +05306380 hdd_debug("Name = [%s] value = [%u]",
6381 CFG_DOT11P_MODE_NAME,
6382 pHddCtx->config->dot11p_mode);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006383}
6384
6385
6386/**
6387 * hdd_update_mac_config() - update MAC address from cfg file
6388 * @pHddCtx: the pointer to hdd context
6389 *
6390 * It overwrites the MAC address if config file exist.
6391 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306392 * Return: QDF_STATUS_SUCCESS if the MAC address is found from cfg file
6393 * and overwritten, otherwise QDF_STATUS_E_INVAL
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006394 */
Jeff Johnsonb6909be2017-08-28 12:07:19 -07006395QDF_STATUS hdd_update_mac_config(struct hdd_context *pHddCtx)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006396{
6397 int status, i = 0;
6398 const struct firmware *fw = NULL;
6399 char *line, *buffer = NULL;
Yuanyuan Liu6043d3c2016-07-25 11:40:38 -07006400 char *temp = NULL;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006401 char *name, *value;
Nachiket Kukadee4d86442017-06-23 16:57:00 +05306402 int max_mac_addr = QDF_MAX_CONCURRENCY_PERSONA;
Anurag Chouhan6d760662016-02-20 16:05:43 +05306403 tCfgIniEntry macTable[QDF_MAX_CONCURRENCY_PERSONA];
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006404 tSirMacAddr customMacAddr;
6405
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306406 QDF_STATUS qdf_status = QDF_STATUS_SUCCESS;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006407
6408 memset(macTable, 0, sizeof(macTable));
6409 status = request_firmware(&fw, WLAN_MAC_FILE, pHddCtx->parent_dev);
6410
6411 if (status) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006412 hdd_err("request_firmware failed %d", status);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306413 qdf_status = QDF_STATUS_E_FAILURE;
6414 return qdf_status;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006415 }
6416 if (!fw || !fw->data || !fw->size) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08006417 hdd_alert("invalid firmware");
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306418 qdf_status = QDF_STATUS_E_INVAL;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006419 goto config_exit;
6420 }
6421
Yuanyuan Liu6043d3c2016-07-25 11:40:38 -07006422 hdd_debug("wlan_mac.bin size %zu", fw->size);
6423
Srinivas Girigowdae6b465b2017-03-30 18:27:25 -07006424 temp = qdf_mem_malloc(fw->size + 1);
Yuanyuan Liu6043d3c2016-07-25 11:40:38 -07006425
6426 if (temp == NULL) {
6427 hdd_err("fail to alloc memory");
6428 qdf_status = QDF_STATUS_E_NOMEM;
6429 goto config_exit;
6430 }
6431 buffer = temp;
6432 qdf_mem_copy(buffer, fw->data, fw->size);
Srinivas Girigowdafb20a952017-04-05 11:38:48 -07006433 buffer[fw->size] = 0x0;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006434
6435 /* data format:
6436 * Intf0MacAddress=00AA00BB00CC
6437 * Intf1MacAddress=00AA00BB00CD
6438 * END
6439 */
6440 while (buffer != NULL) {
6441 line = get_next_line(buffer);
6442 buffer = i_trim(buffer);
6443
6444 if (strlen((char *)buffer) == 0 || *buffer == '#') {
6445 buffer = line;
6446 continue;
6447 }
6448 if (strncmp(buffer, "END", 3) == 0)
6449 break;
6450
6451 name = buffer;
6452 buffer = strnchr(buffer, strlen(buffer), '=');
6453 if (buffer) {
6454 *buffer++ = '\0';
6455 i_trim(name);
6456 if (strlen(name) != 0) {
6457 buffer = i_trim(buffer);
6458 if (strlen(buffer) == 12) {
6459 value = buffer;
6460 macTable[i].name = name;
6461 macTable[i++].value = value;
Anurag Chouhan6d760662016-02-20 16:05:43 +05306462 if (i >= QDF_MAX_CONCURRENCY_PERSONA)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006463 break;
6464 }
6465 }
6466 }
6467 buffer = line;
6468 }
Anurag Chouhan6d760662016-02-20 16:05:43 +05306469 if (i <= QDF_MAX_CONCURRENCY_PERSONA) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006470 hdd_debug("%d Mac addresses provided", i);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006471 } else {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08006472 hdd_err("invalid number of Mac address provided, nMac = %d", i);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306473 qdf_status = QDF_STATUS_E_INVAL;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006474 goto config_exit;
6475 }
6476
6477 update_mac_from_string(pHddCtx, &macTable[0], i);
Nachiket Kukadee4d86442017-06-23 16:57:00 +05306478 hdd_debug("Populating remaining %d Mac addreses",
6479 max_mac_addr - i);
6480 hdd_populate_random_mac_addr(pHddCtx, max_mac_addr - i);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006481
Anurag Chouhan600c3a02016-03-01 10:33:54 +05306482 qdf_mem_copy(&customMacAddr,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006483 &pHddCtx->config->intfMacAddr[0].bytes[0],
6484 sizeof(tSirMacAddr));
6485 sme_set_custom_mac_addr(customMacAddr);
6486
6487config_exit:
Yuanyuan Liu6043d3c2016-07-25 11:40:38 -07006488 qdf_mem_free(temp);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006489 release_firmware(fw);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306490 return qdf_status;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006491}
6492
6493/**
Manjunathappa Prakash59f861d2016-04-21 10:33:31 -07006494 * hdd_disable_runtime_pm() - Override to disable runtime_pm.
6495 * @cfg_ini: Handle to struct hdd_config
6496 *
6497 * Return: None
6498 */
6499#ifdef FEATURE_RUNTIME_PM
6500static void hdd_disable_runtime_pm(struct hdd_config *cfg_ini)
6501{
6502 cfg_ini->runtime_pm = 0;
6503}
6504#else
6505static void hdd_disable_runtime_pm(struct hdd_config *cfg_ini)
6506{
6507}
6508#endif
6509
6510/**
6511 * hdd_disable_auto_shutdown() - Override to disable auto_shutdown.
6512 * @cfg_ini: Handle to struct hdd_config
6513 *
6514 * Return: None
6515 */
6516#ifdef FEATURE_WLAN_AUTO_SHUTDOWN
6517static void hdd_disable_auto_shutdown(struct hdd_config *cfg_ini)
6518{
6519 cfg_ini->WlanAutoShutdown = 0;
6520}
6521#else
6522static void hdd_disable_auto_shutdown(struct hdd_config *cfg_ini)
6523{
6524}
6525#endif
6526
6527/**
6528 * hdd_override_all_ps() - overrides to disables all the powersave features.
6529 * @hdd_ctx: Pointer to HDD context.
6530 * Overrides below powersave ini configurations.
6531 * gEnableImps=0
6532 * gEnableBmps=0
6533 * gRuntimePM=0
6534 * gWlanAutoShutdown = 0
6535 * gEnableSuspend=0
6536 * gEnablePowerSaveOffload=0
6537 * gEnableWoW=0
6538 *
6539 * Return: None
6540 */
Jeff Johnsonb6909be2017-08-28 12:07:19 -07006541static void hdd_override_all_ps(struct hdd_context *hdd_ctx)
Manjunathappa Prakash59f861d2016-04-21 10:33:31 -07006542{
6543 struct hdd_config *cfg_ini = hdd_ctx->config;
6544
6545 cfg_ini->fIsImpsEnabled = 0;
6546 cfg_ini->is_ps_enabled = 0;
6547 hdd_disable_runtime_pm(cfg_ini);
6548 hdd_disable_auto_shutdown(cfg_ini);
6549 cfg_ini->enablePowersaveOffload = 0;
6550 cfg_ini->wowEnable = 0;
6551}
6552
6553/**
Nirav Shahbd36b062016-07-18 11:12:59 +05306554 * hdd_set_rx_mode_value() - set rx_mode values
6555 * @hdd_ctx: hdd context
6556 *
6557 * Return: none
6558 */
Jeff Johnsonb6909be2017-08-28 12:07:19 -07006559static void hdd_set_rx_mode_value(struct hdd_context *hdd_ctx)
Nirav Shahbd36b062016-07-18 11:12:59 +05306560{
6561 if (hdd_ctx->config->rx_mode & CFG_ENABLE_RX_THREAD &&
6562 hdd_ctx->config->rx_mode & CFG_ENABLE_RPS) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006563 hdd_warn("rx_mode wrong configuration. Make it default");
Nirav Shahbd36b062016-07-18 11:12:59 +05306564 hdd_ctx->config->rx_mode = CFG_RX_MODE_DEFAULT;
6565 }
6566
6567 if (hdd_ctx->config->rx_mode & CFG_ENABLE_RX_THREAD)
6568 hdd_ctx->enableRxThread = true;
6569
6570 if (hdd_ctx->config->rx_mode & CFG_ENABLE_RPS)
6571 hdd_ctx->rps = true;
6572
6573 if (hdd_ctx->config->rx_mode & CFG_ENABLE_NAPI)
6574 hdd_ctx->napi_enable = true;
6575}
6576
6577/**
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006578 * hdd_parse_config_ini() - parse the ini configuration file
6579 * @pHddCtx: the pointer to hdd context
6580 *
6581 * This function reads the qcom_cfg.ini file and
6582 * parses each 'Name=Value' pair in the ini file
6583 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306584 * Return: QDF_STATUS_SUCCESS if the qcom_cfg.ini is correctly read,
6585 * otherwise QDF_STATUS_E_INVAL
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006586 */
Jeff Johnsonb6909be2017-08-28 12:07:19 -07006587QDF_STATUS hdd_parse_config_ini(struct hdd_context *pHddCtx)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006588{
6589 int status, i = 0;
6590 /** Pointer for firmware image data */
6591 const struct firmware *fw = NULL;
6592 char *buffer, *line, *pTemp = NULL;
6593 size_t size;
6594 char *name, *value;
6595 /* cfgIniTable is static to avoid excess stack usage */
6596 static tCfgIniEntry cfgIniTable[MAX_CFG_INI_ITEMS];
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306597 QDF_STATUS qdf_status = QDF_STATUS_SUCCESS;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006598
6599 memset(cfgIniTable, 0, sizeof(cfgIniTable));
6600
6601 status = request_firmware(&fw, WLAN_INI_FILE, pHddCtx->parent_dev);
6602
6603 if (status) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08006604 hdd_alert("request_firmware failed %d", status);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306605 qdf_status = QDF_STATUS_E_FAILURE;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006606 goto config_exit;
6607 }
6608 if (!fw || !fw->data || !fw->size) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08006609 hdd_alert("%s download failed", WLAN_INI_FILE);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306610 qdf_status = QDF_STATUS_E_FAILURE;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006611 goto config_exit;
6612 }
6613
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006614 hdd_debug("qcom_cfg.ini Size %zu", fw->size);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006615
Anurag Chouhan600c3a02016-03-01 10:33:54 +05306616 buffer = (char *)qdf_mem_malloc(fw->size);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006617
6618 if (NULL == buffer) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006619 hdd_err("qdf_mem_malloc failure");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006620 release_firmware(fw);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306621 return QDF_STATUS_E_NOMEM;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006622 }
6623 pTemp = buffer;
6624
Anurag Chouhan600c3a02016-03-01 10:33:54 +05306625 qdf_mem_copy((void *)buffer, (void *)fw->data, fw->size);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006626 size = fw->size;
6627
6628 while (buffer != NULL) {
6629 line = get_next_line(buffer);
6630 buffer = i_trim(buffer);
6631
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006632 hdd_debug("%s: item", buffer);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006633
6634 if (strlen((char *)buffer) == 0 || *buffer == '#') {
6635 buffer = line;
6636 continue;
Jeff Johnson68755312017-02-10 11:46:55 -08006637 }
6638
6639 if (strncmp(buffer, "END", 3) == 0)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006640 break;
Jeff Johnson68755312017-02-10 11:46:55 -08006641
6642 name = buffer;
6643 while (*buffer != '=' && *buffer != '\0')
6644 buffer++;
6645 if (*buffer != '\0') {
6646 *buffer++ = '\0';
6647 i_trim(name);
6648 if (strlen(name) != 0) {
6649 buffer = i_trim(buffer);
6650 if (strlen(buffer) > 0) {
6651 value = buffer;
Rajeev Kumar Sirasanagandlaaec0b082017-06-21 11:59:41 +05306652 while (*buffer != '\0')
Jeff Johnson68755312017-02-10 11:46:55 -08006653 buffer++;
6654 *buffer = '\0';
6655 cfgIniTable[i].name = name;
6656 cfgIniTable[i++].value = value;
6657 if (i >= MAX_CFG_INI_ITEMS) {
6658 hdd_err("Number of items in %s > %d",
6659 WLAN_INI_FILE,
6660 MAX_CFG_INI_ITEMS);
6661 break;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006662 }
6663 }
6664 }
6665 }
6666 buffer = line;
6667 }
6668
6669 /* Loop through the registry table and apply all these configs */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306670 qdf_status = hdd_apply_cfg_ini(pHddCtx, cfgIniTable, i);
Nirav Shahbd36b062016-07-18 11:12:59 +05306671 hdd_set_rx_mode_value(pHddCtx);
Manjunathappa Prakash59f861d2016-04-21 10:33:31 -07006672 if (QDF_GLOBAL_MONITOR_MODE == cds_get_conparam())
6673 hdd_override_all_ps(pHddCtx);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006674
6675config_exit:
6676 release_firmware(fw);
Anurag Chouhan600c3a02016-03-01 10:33:54 +05306677 qdf_mem_free(pTemp);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306678 return qdf_status;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006679}
6680
6681/**
6682 * hdd_cfg_xlate_to_csr_phy_mode() - convert PHY mode
6683 * @dot11Mode: the mode to convert
6684 *
6685 * Convert the configuration PHY mode to CSR PHY mode
6686 *
6687 * Return: the CSR phy mode value
6688 */
Srinivas Girigowda2fb677c2017-03-25 15:35:34 -07006689eCsrPhyMode hdd_cfg_xlate_to_csr_phy_mode(enum hdd_dot11_mode dot11Mode)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006690{
Naveen Rawat10b1c152017-01-18 11:16:06 -08006691 if (cds_is_sub_20_mhz_enabled())
6692 return eCSR_DOT11_MODE_abg;
6693
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006694 switch (dot11Mode) {
6695 case (eHDD_DOT11_MODE_abg):
6696 return eCSR_DOT11_MODE_abg;
6697 case (eHDD_DOT11_MODE_11b):
6698 return eCSR_DOT11_MODE_11b;
6699 case (eHDD_DOT11_MODE_11g):
6700 return eCSR_DOT11_MODE_11g;
6701 default:
6702 case (eHDD_DOT11_MODE_11n):
6703 return eCSR_DOT11_MODE_11n;
6704 case (eHDD_DOT11_MODE_11g_ONLY):
6705 return eCSR_DOT11_MODE_11g_ONLY;
6706 case (eHDD_DOT11_MODE_11n_ONLY):
6707 return eCSR_DOT11_MODE_11n_ONLY;
6708 case (eHDD_DOT11_MODE_11b_ONLY):
6709 return eCSR_DOT11_MODE_11b_ONLY;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006710 case (eHDD_DOT11_MODE_11ac_ONLY):
6711 return eCSR_DOT11_MODE_11ac_ONLY;
6712 case (eHDD_DOT11_MODE_11ac):
6713 return eCSR_DOT11_MODE_11ac;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006714 case (eHDD_DOT11_MODE_AUTO):
6715 return eCSR_DOT11_MODE_AUTO;
6716 case (eHDD_DOT11_MODE_11a):
6717 return eCSR_DOT11_MODE_11a;
Krishna Kumaar Natarajan4f1d7722017-03-03 21:12:51 -08006718 case (eHDD_DOT11_MODE_11ax_ONLY):
6719 return eCSR_DOT11_MODE_11ax_ONLY;
6720 case (eHDD_DOT11_MODE_11ax):
6721 return eCSR_DOT11_MODE_11ax;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006722 }
6723
6724}
6725
6726/**
6727 * hdd_set_idle_ps_config() - set idle power save configuration
6728 * @pHddCtx: the pointer to hdd context
6729 * @val: the value to configure
6730 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306731 * Return: QDF_STATUS_SUCCESS if command set correctly,
6732 * otherwise the QDF_STATUS return from SME layer
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006733 */
Jeff Johnsonb6909be2017-08-28 12:07:19 -07006734QDF_STATUS hdd_set_idle_ps_config(struct hdd_context *pHddCtx, uint32_t val)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006735{
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306736 QDF_STATUS status = QDF_STATUS_SUCCESS;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006737
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006738 hdd_debug("hdd_set_idle_ps_config: Enter Val %d", val);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006739
Kiran Kumar Lokerefc2803d2016-01-11 19:31:38 -08006740 status = sme_set_idle_powersave_config(pHddCtx->pcds_context,
6741 pHddCtx->hHal, val);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306742 if (QDF_STATUS_SUCCESS != status)
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08006743 hdd_err("Fail to Set Idle PS Config val %d", val);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006744 return status;
6745}
6746
6747/**
6748 * hdd_set_fine_time_meas_cap() - set fine timing measurement capability
6749 * @hdd_ctx: HDD context
6750 * @sme_config: pointer to SME config
6751 *
6752 * This function is used to pass fine timing measurement capability coming
6753 * from INI to SME. This function make sure that configure INI is supported
6754 * by the device. Use bit mask to mask out the unsupported capabilities.
6755 *
6756 * Return: None
6757 */
Jeff Johnsonb6909be2017-08-28 12:07:19 -07006758static void hdd_set_fine_time_meas_cap(struct hdd_context *hdd_ctx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006759 tSmeConfigParams *sme_config)
6760{
6761 struct hdd_config *config = hdd_ctx->config;
6762 uint32_t capability = config->fine_time_meas_cap;
6763
6764 /* Make sure only supported capabilities are enabled in INI */
6765 capability &= CFG_FINE_TIME_MEAS_CAPABILITY_MAX;
Krunal Soni1878d3a2016-01-14 13:00:44 -08006766 sme_config->csrConfig.fine_time_meas_cap = capability;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006767
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006768 hdd_debug("fine time meas capability - INI: %04x Enabled: %04x",
Krunal Soni1878d3a2016-01-14 13:00:44 -08006769 config->fine_time_meas_cap,
6770 sme_config->csrConfig.fine_time_meas_cap);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006771}
6772
6773/**
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006774 * hdd_convert_string_to_u8_array() - used to convert string into u8 array
6775 * @str: String to be converted
6776 * @hex_array: Array where converted value is stored
6777 * @len: Length of the populated array
6778 * @array_max_len: Maximum length of the array
6779 * @to_hex: true, if conversion required for hex string
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006780 *
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006781 * This API is called to convert string (each byte separated by
6782 * a comma) into an u8 array
6783 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306784 * Return: QDF_STATUS
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006785 */
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006786
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306787static QDF_STATUS hdd_convert_string_to_array(char *str, uint8_t *array,
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006788 uint8_t *len, uint8_t array_max_len, bool to_hex)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006789{
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006790 char *format, *s = str;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006791
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006792 if (str == NULL || array == NULL || len == NULL)
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306793 return QDF_STATUS_E_INVAL;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006794
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006795 format = (to_hex) ? "%02x" : "%d";
6796
6797 *len = 0;
6798 while ((s != NULL) && (*len < array_max_len)) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006799 int val;
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006800 /* Increment length only if sscanf successfully extracted
6801 * one element. Any other return value means error.
Jeff Johnson78d88a82017-01-12 09:50:54 -08006802 * Ignore it.
6803 */
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006804 if (sscanf(s, format, &val) == 1) {
6805 array[*len] = (uint8_t) val;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006806 *len += 1;
6807 }
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006808
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006809 s = strpbrk(s, ",");
6810 if (s)
6811 s++;
6812 }
6813
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306814 return QDF_STATUS_SUCCESS;
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006815}
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006816
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006817/**
6818 * hdd_hex_string_to_u8_array() - used to convert hex string into u8 array
6819 * @str: Hexadecimal string
6820 * @hex_array: Array where converted value is stored
6821 * @len: Length of the populated array
6822 * @array_max_len: Maximum length of the array
6823 *
6824 * This API is called to convert hexadecimal string (each byte separated by
6825 * a comma) into an u8 array
6826 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306827 * Return: QDF_STATUS
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006828 */
Jeff Johnsonf1bf3a62016-10-05 15:48:13 -07006829static QDF_STATUS hdd_hex_string_to_u8_array(char *str, uint8_t *hex_array,
6830 uint8_t *len,
6831 uint8_t array_max_len)
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006832{
6833 return hdd_convert_string_to_array(str, hex_array, len,
6834 array_max_len, true);
6835}
6836
6837/**
6838 * hdd_string_to_u8_array() - used to convert decimal string into u8 array
6839 * @str: Decimal string
6840 * @hex_array: Array where converted value is stored
6841 * @len: Length of the populated array
6842 * @array_max_len: Maximum length of the array
6843 *
6844 * This API is called to convert decimal string (each byte separated by
6845 * a comma) into an u8 array
6846 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306847 * Return: QDF_STATUS
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006848 */
6849
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306850QDF_STATUS hdd_string_to_u8_array(char *str, uint8_t *array,
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006851 uint8_t *len, uint8_t array_max_len)
6852{
6853 return hdd_convert_string_to_array(str, array, len,
6854 array_max_len, false);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006855}
6856
6857/**
Nirav Shahbd36b062016-07-18 11:12:59 +05306858 * hdd_hex_string_to_u16_array() - convert a hex string to a uint16 array
6859 * @str: input string
6860 * @int_array: pointer to input array of type uint16
6861 * @len: pointer to number of elements which the function adds to the array
6862 * @int_array_max_len: maximum number of elements in input uint16 array
6863 *
6864 * This function is used to convert a space separated hex string to an array of
6865 * uint16_t. For example, an input string str = "a b c d" would be converted to
6866 * a unint16 array, int_array = {0xa, 0xb, 0xc, 0xd}, *len = 4.
6867 * This assumes that input value int_array_max_len >= 4.
6868 *
6869 * Return: QDF_STATUS_SUCCESS - if the conversion is successful
6870 * non zero value - if the conversion is a failure
6871 */
6872QDF_STATUS hdd_hex_string_to_u16_array(char *str,
6873 uint16_t *int_array, uint8_t *len, uint8_t int_array_max_len)
6874{
6875 char *s = str;
6876 uint32_t val = 0;
6877
6878 if (str == NULL || int_array == NULL || len == NULL)
6879 return QDF_STATUS_E_INVAL;
6880
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006881 hdd_debug("str %p intArray %p intArrayMaxLen %d",
Nirav Shahbd36b062016-07-18 11:12:59 +05306882 s, int_array, int_array_max_len);
6883
6884 *len = 0;
6885
6886 while ((s != NULL) && (*len < int_array_max_len)) {
6887 /*
6888 * Increment length only if sscanf successfully extracted one
6889 * element. Any other return value means error. Ignore it.
6890 */
6891 if (sscanf(s, "%x", &val) == 1) {
6892 int_array[*len] = (uint16_t) val;
6893 hdd_debug("s %p val %x intArray[%d]=0x%x",
6894 s, val, *len, int_array[*len]);
6895 *len += 1;
6896 }
6897 s = strpbrk(s, " ");
6898 if (s)
6899 s++;
6900 }
6901 return QDF_STATUS_SUCCESS;
6902}
6903
Nirav Shahbd36b062016-07-18 11:12:59 +05306904/**
Krunal Soni52198e42016-09-26 13:53:09 -07006905 * hdd_update_ht_cap_in_cfg() - to update HT cap in global CFG
Krunal Sonidf0f8742016-09-26 14:56:31 -07006906 * @hdd_ctx: pointer to hdd context
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006907 *
Krunal Soni52198e42016-09-26 13:53:09 -07006908 * This API will update the HT config in CFG after taking intersection
6909 * of INI and firmware capabilities provided reading CFG
6910 *
6911 * Return: true or false
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006912 */
Jeff Johnsonb6909be2017-08-28 12:07:19 -07006913static bool hdd_update_ht_cap_in_cfg(struct hdd_context *hdd_ctx)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006914{
Krunal Soni5c390162016-09-26 15:07:05 -07006915 uint32_t val32;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006916 uint16_t val16;
Krunal Soni5c390162016-09-26 15:07:05 -07006917 bool status = true;
Krunal Sonidf0f8742016-09-26 14:56:31 -07006918 tSirMacHTCapabilityInfo *ht_cap_info;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006919
Krunal Sonidf0f8742016-09-26 14:56:31 -07006920 if (sme_cfg_get_int(hdd_ctx->hHal, WNI_CFG_HT_CAP_INFO,
Krunal Soni5c390162016-09-26 15:07:05 -07006921 &val32) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306922 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006923 status = false;
Krunal Soni5c390162016-09-26 15:07:05 -07006924 hdd_err("Could not get WNI_CFG_HT_CAP_INFO");
Sandeep Puligilla607f34a2016-05-25 14:37:47 -07006925 }
Krunal Soni5c390162016-09-26 15:07:05 -07006926 val16 = (uint16_t) val32;
Krunal Sonidf0f8742016-09-26 14:56:31 -07006927 ht_cap_info = (tSirMacHTCapabilityInfo *) &val16;
Krunal Sonia2c0e412017-05-04 14:12:41 +05306928 ht_cap_info->advCodingCap &= hdd_ctx->config->enable_rx_ldpc;
Krunal Soni5c390162016-09-26 15:07:05 -07006929 ht_cap_info->rxSTBC = QDF_MIN(ht_cap_info->rxSTBC,
6930 hdd_ctx->config->enableRxSTBC);
6931 ht_cap_info->txSTBC &= hdd_ctx->config->enableTxSTBC;
6932 ht_cap_info->shortGI20MHz &= hdd_ctx->config->ShortGI20MhzEnable;
6933 ht_cap_info->shortGI40MHz &= hdd_ctx->config->ShortGI40MhzEnable;
6934 val32 = val16;
6935 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_HT_CAP_INFO, val32) ==
6936 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006937 status = false;
Krunal Soni5c390162016-09-26 15:07:05 -07006938 hdd_err("Could not set WNI_CFG_HT_CAP_INFO");
Krunal Soni52198e42016-09-26 13:53:09 -07006939 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07006940 return status;
Krunal Soni52198e42016-09-26 13:53:09 -07006941}
6942
6943/**
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006944 * hdd_update_vht_cap_in_cfg() - to update VHT cap in global CFG
Krunal Sonidf0f8742016-09-26 14:56:31 -07006945 * @hdd_ctx: pointer to hdd context
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006946 *
6947 * This API will update the VHT config in CFG after taking intersection
6948 * of INI and firmware capabilities provided reading CFG
6949 *
6950 * Return: true or false
6951 */
Jeff Johnsonb6909be2017-08-28 12:07:19 -07006952static bool hdd_update_vht_cap_in_cfg(struct hdd_context *hdd_ctx)
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006953{
Krunal Sonidf0f8742016-09-26 14:56:31 -07006954 bool status = true;
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006955 uint32_t val;
Krunal Sonidf0f8742016-09-26 14:56:31 -07006956 struct hdd_config *config = hdd_ctx->config;
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006957
Krunal Sonidf0f8742016-09-26 14:56:31 -07006958 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_VHT_ENABLE_TXBF_20MHZ,
6959 config->enableTxBFin20MHz) ==
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006960 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006961 status = false;
6962 hdd_err("Couldn't set value for WNI_CFG_VHT_ENABLE_TXBF_20MHZ");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006963 }
6964 /* Based on cfg.ini, update the Basic MCS set, RX/TX MCS map
6965 * in the cfg.dat. Valid values are 0(MCS0-7), 1(MCS0-8), 2(MCS0-9)
6966 * we update only the least significant 2 bits in the
6967 * corresponding fields.
6968 */
Krunal Sonidf0f8742016-09-26 14:56:31 -07006969 if ((config->dot11Mode == eHDD_DOT11_MODE_AUTO) ||
6970 (config->dot11Mode == eHDD_DOT11_MODE_11ac_ONLY) ||
6971 (config->dot11Mode == eHDD_DOT11_MODE_11ac)) {
Kiran Kumar Lokeree25d3fc2017-07-21 15:37:04 -07006972 /* Currently shortGI40Mhz is used for shortGI80Mhz and 160MHz*/
Krunal Sonidf0f8742016-09-26 14:56:31 -07006973 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_VHT_SHORT_GI_80MHZ,
6974 config->ShortGI40MhzEnable) == QDF_STATUS_E_FAILURE) {
6975 status = false;
6976 hdd_err("Couldn't pass WNI_VHT_SHORT_GI_80MHZ to CFG");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006977 }
Kiran Kumar Lokeree25d3fc2017-07-21 15:37:04 -07006978
6979 if (sme_cfg_set_int(hdd_ctx->hHal,
6980 WNI_CFG_VHT_SHORT_GI_160_AND_80_PLUS_80MHZ,
6981 config->ShortGI40MhzEnable) == QDF_STATUS_E_FAILURE) {
6982 status = false;
6983 hdd_err("Couldn't pass SHORT_GI_160MHZ to CFG");
6984 }
6985
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07006986 /* Hardware is capable of doing
6987 * 128K AMPDU in 11AC mode
6988 */
Krunal Sonidf0f8742016-09-26 14:56:31 -07006989 if (sme_cfg_set_int(hdd_ctx->hHal,
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006990 WNI_CFG_VHT_AMPDU_LEN_EXPONENT,
Krunal Sonidf0f8742016-09-26 14:56:31 -07006991 config->fVhtAmpduLenExponent) ==
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006992 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07006993 status = false;
6994 hdd_err("Couldn't pass on WNI_CFG_VHT_AMPDU_LEN_EXPONENT to CFG");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006995 }
6996 /* Change MU Bformee only when TxBF is enabled */
Krunal Sonidf0f8742016-09-26 14:56:31 -07006997 if (config->enableTxBF) {
6998 sme_cfg_get_int(hdd_ctx->hHal,
Krunal Soni6c7c39f2016-09-26 14:30:34 -07006999 WNI_CFG_VHT_MU_BEAMFORMEE_CAP, &val);
7000
Krunal Sonidf0f8742016-09-26 14:56:31 -07007001 if (val != config->enableMuBformee) {
7002 if (sme_cfg_set_int(hdd_ctx->hHal,
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007003 WNI_CFG_VHT_MU_BEAMFORMEE_CAP,
Krunal Sonidf0f8742016-09-26 14:56:31 -07007004 config->enableMuBformee
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007005 ) == QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007006 status = false;
7007 hdd_err("Couldn't pass on WNI_CFG_VHT_MU_BEAMFORMEE_CAP to CFG");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007008 }
7009 }
7010 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07007011 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_VHT_MAX_MPDU_LENGTH,
7012 config->vhtMpduLen) == QDF_STATUS_E_FAILURE) {
7013 status = false;
7014 hdd_err("Couldn't pass on WNI_CFG_VHT_MAX_MPDU_LENGTH to CFG");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007015 }
7016
Krunal Sonidf0f8742016-09-26 14:56:31 -07007017 if (config->enable2x2 && config->enable_su_tx_bformer) {
7018 if (sme_cfg_set_int(hdd_ctx->hHal,
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007019 WNI_CFG_VHT_SU_BEAMFORMER_CAP,
Krunal Sonidf0f8742016-09-26 14:56:31 -07007020 config->enable_su_tx_bformer) ==
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007021 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007022 status = false;
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007023 hdd_err("set SU_BEAMFORMER_CAP to CFG failed");
7024 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07007025 if (sme_cfg_set_int(hdd_ctx->hHal,
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007026 WNI_CFG_VHT_NUM_SOUNDING_DIMENSIONS,
7027 NUM_OF_SOUNDING_DIMENSIONS) ==
7028 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007029 status = false;
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007030 hdd_err("failed to set NUM_OF_SOUNDING_DIM");
7031 }
7032 }
7033 }
7034
Krunal Sonidf0f8742016-09-26 14:56:31 -07007035 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_VHT_RXSTBC,
7036 config->enableRxSTBC) == QDF_STATUS_E_FAILURE) {
7037 status = false;
7038 hdd_err("Couldn't pass on WNI_CFG_VHT_RXSTBC to CFG");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007039 }
7040
Krunal Sonidf0f8742016-09-26 14:56:31 -07007041 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_VHT_TXSTBC,
7042 config->enableTxSTBC) == QDF_STATUS_E_FAILURE) {
7043 status = false;
7044 hdd_err("Couldn't pass on WNI_CFG_VHT_TXSTBC to CFG");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007045 }
7046
jiad4a7a33c2017-08-08 15:32:24 +08007047 /* first get HW RX LDPC capability */
Krunal Soni5c390162016-09-26 15:07:05 -07007048 if (sme_cfg_get_int(hdd_ctx->hHal, WNI_CFG_VHT_LDPC_CODING_CAP, &val) ==
7049 QDF_STATUS_E_FAILURE) {
jiad4a7a33c2017-08-08 15:32:24 +08007050 status = false;
Krunal Soni5c390162016-09-26 15:07:05 -07007051 hdd_err("Could not get WNI_CFG_VHT_LDPC_CODING_CAP");
7052 }
jiad4a7a33c2017-08-08 15:32:24 +08007053
7054 /* enable RX LDPC only when both INI and HW are enabled */
Krunal Sonidf0f8742016-09-26 14:56:31 -07007055 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_VHT_LDPC_CODING_CAP,
jiad4a7a33c2017-08-08 15:32:24 +08007056 config->enable_rx_ldpc && val) ==
7057 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007058 status = false;
7059 hdd_err("Couldn't pass on WNI_CFG_VHT_LDPC_CODING_CAP to CFG");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007060 }
7061
Krunal Sonidf0f8742016-09-26 14:56:31 -07007062 if (sme_cfg_set_int(hdd_ctx->hHal,
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007063 WNI_CFG_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED,
Krunal Sonidf0f8742016-09-26 14:56:31 -07007064 config->txBFCsnValue) ==
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007065 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007066 status = false;
7067 hdd_err("Couldn't pass on WNI_CFG_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED to CFG");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007068 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07007069 return status;
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007070
7071}
7072
7073/**
Krunal Sonidf0f8742016-09-26 14:56:31 -07007074 * hdd_update_config_cfg() - API to update INI setting based on hw/fw caps
7075 * @hdd_ctx: pointer to hdd_ctx
Krunal Soni52198e42016-09-26 13:53:09 -07007076 *
Krunal Sonidf0f8742016-09-26 14:56:31 -07007077 * This API reads the cfg file which is updated with hardware/firmware
7078 * capabilities and intersect it with INI setting provided by user. After
7079 * taking intersection it adjust cfg it self. For example, if user has enabled
7080 * RX LDPC through INI but hardware/firmware doesn't support it then disable
7081 * it in CFG file here.
7082 *
7083 * Return: true or false based on outcome.
Krunal Soni52198e42016-09-26 13:53:09 -07007084 */
Jeff Johnsonb6909be2017-08-28 12:07:19 -07007085bool hdd_update_config_cfg(struct hdd_context *hdd_ctx)
Krunal Soni52198e42016-09-26 13:53:09 -07007086{
Krunal Sonidf0f8742016-09-26 14:56:31 -07007087 bool status = true;
Krunal Soni52198e42016-09-26 13:53:09 -07007088 uint32_t val;
Krunal Sonidf0f8742016-09-26 14:56:31 -07007089 struct hdd_config *config = hdd_ctx->config;
Krunal Soni52198e42016-09-26 13:53:09 -07007090
7091 /*
7092 * During the initialization both 2G and 5G capabilities should be same.
7093 * So read 5G HT capablity and update 2G and 5G capablities.
7094 */
Krunal Sonidf0f8742016-09-26 14:56:31 -07007095 if (!hdd_update_ht_cap_in_cfg(hdd_ctx)) {
7096 status = false;
7097 hdd_err("Couldn't set HT CAP in cfg");
Krunal Soni52198e42016-09-26 13:53:09 -07007098 }
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007099
Krunal Sonidf0f8742016-09-26 14:56:31 -07007100 if (!hdd_update_vht_cap_in_cfg(hdd_ctx)) {
7101 status = false;
7102 hdd_err("Couldn't set VHT CAP in cfg");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007103 }
7104
Krishna Kumaar Natarajan90bb6f12017-03-03 21:05:52 -08007105 if (0 != hdd_update_he_cap_in_cfg(hdd_ctx)) {
7106 status = false;
7107 hdd_err("Couldn't set HE CAP in cfg");
7108 }
7109
Krunal Sonidf0f8742016-09-26 14:56:31 -07007110 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_FIXED_RATE, config->TxRate)
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307111 == QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007112 status = false;
7113 hdd_err("Couldn't pass on WNI_CFG_FIXED_RATE to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007114 }
7115
Krunal Sonidf0f8742016-09-26 14:56:31 -07007116 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_MAX_RX_AMPDU_FACTOR,
7117 config->MaxRxAmpduFactor) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307118 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007119 status = false;
7120 hdd_err("Couldn't pass on WNI_CFG_HT_AMPDU_PARAMS_MAX_RX_AMPDU_FACTOR to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007121 }
7122
Krunal Sonidf0f8742016-09-26 14:56:31 -07007123 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_MPDU_DENSITY,
7124 config->ht_mpdu_density) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307125 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007126 status = false;
7127 hdd_err("Couldn't pass on WNI_CFG_MPDU_DENSITY to CFG");
Krishna Kumaar Natarajan22b59a72015-11-23 18:54:58 -08007128 }
7129
Krunal Sonidf0f8742016-09-26 14:56:31 -07007130 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_SHORT_PREAMBLE,
7131 config->fIsShortPreamble) == QDF_STATUS_E_FAILURE) {
7132 status = false;
7133 hdd_err("Couldn't pass on WNI_CFG_SHORT_PREAMBLE to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007134 }
7135
Krunal Sonidf0f8742016-09-26 14:56:31 -07007136 if (sme_cfg_set_int(hdd_ctx->hHal,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007137 WNI_CFG_PASSIVE_MINIMUM_CHANNEL_TIME,
Krunal Sonidf0f8742016-09-26 14:56:31 -07007138 config->nPassiveMinChnTime)
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307139 == QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007140 status = false;
7141 hdd_err("Couldn't pass on WNI_CFG_PASSIVE_MINIMUM_CHANNEL_TIME to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007142 }
7143
Krunal Sonidf0f8742016-09-26 14:56:31 -07007144 if (sme_cfg_set_int(hdd_ctx->hHal,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007145 WNI_CFG_PASSIVE_MAXIMUM_CHANNEL_TIME,
Krunal Sonidf0f8742016-09-26 14:56:31 -07007146 config->nPassiveMaxChnTime)
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307147 == QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007148 status = false;
7149 hdd_err("Couldn't pass on WNI_CFG_PASSIVE_MAXIMUM_CHANNEL_TIME to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007150 }
7151
Krunal Sonidf0f8742016-09-26 14:56:31 -07007152 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_BEACON_INTERVAL,
7153 config->nBeaconInterval) == QDF_STATUS_E_FAILURE) {
7154 status = false;
7155 hdd_err("Couldn't pass on WNI_CFG_BEACON_INTERVAL to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007156 }
7157
Krunal Sonidf0f8742016-09-26 14:56:31 -07007158 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_MAX_PS_POLL,
7159 config->nMaxPsPoll) == QDF_STATUS_E_FAILURE) {
7160 status = false;
7161 hdd_err("Couldn't pass on WNI_CFG_MAX_PS_POLL to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007162 }
7163
Krunal Sonidf0f8742016-09-26 14:56:31 -07007164 if (sme_cfg_set_int (hdd_ctx->hHal, WNI_CFG_LOW_GAIN_OVERRIDE,
7165 config->fIsLowGainOverride) == QDF_STATUS_E_FAILURE) {
7166 status = false;
7167 hdd_err("Couldn't pass on WNI_CFG_LOW_GAIN_OVERRIDE to HAL");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007168 }
7169
Krunal Sonidf0f8742016-09-26 14:56:31 -07007170 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_RSSI_FILTER_PERIOD,
7171 config->nRssiFilterPeriod) == QDF_STATUS_E_FAILURE) {
7172 status = false;
7173 hdd_err("Couldn't pass on WNI_CFG_RSSI_FILTER_PERIOD to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007174 }
7175
Krunal Sonidf0f8742016-09-26 14:56:31 -07007176 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_IGNORE_DTIM,
7177 config->fIgnoreDtim) == QDF_STATUS_E_FAILURE) {
7178 status = false;
7179 hdd_err("Couldn't pass on WNI_IGNORE_DTIM to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007180 }
7181
Krunal Sonidf0f8742016-09-26 14:56:31 -07007182 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_PS_ENABLE_HEART_BEAT,
7183 config->fEnableFwHeartBeatMonitoring)
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307184 == QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007185 status = false;
7186 hdd_err("Couldn't pass on WNI_CFG_PS_HEART_BEAT to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007187 }
7188
Krunal Sonidf0f8742016-09-26 14:56:31 -07007189 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_PS_ENABLE_BCN_FILTER,
7190 config->fEnableFwBeaconFiltering) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307191 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007192 status = false;
7193 hdd_err("Couldn't pass on WNI_CFG_PS_BCN_FILTER to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007194 }
7195
Krunal Sonidf0f8742016-09-26 14:56:31 -07007196 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_PS_ENABLE_RSSI_MONITOR,
7197 config->fEnableFwRssiMonitoring) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307198 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007199 status = false;
7200 hdd_err("Couldn't pass on WNI_CFG_PS_RSSI_MONITOR to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007201 }
7202
Krunal Sonidf0f8742016-09-26 14:56:31 -07007203 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_PS_DATA_INACTIVITY_TIMEOUT,
7204 config->nDataInactivityTimeout) == QDF_STATUS_E_FAILURE) {
7205 status = false;
7206 hdd_err("Couldn't pass on WNI_CFG_PS_DATA_INACTIVITY_TIMEOUT to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007207 }
7208
Mukul Sharmaed92f2f2017-04-20 00:06:28 +05307209 if (sme_cfg_set_int(hdd_ctx->hHal,
7210 WNI_CFG_PS_WOW_DATA_INACTIVITY_TIMEOUT,
7211 config->wow_data_inactivity_timeout) == QDF_STATUS_E_FAILURE) {
7212 status = false;
7213 hdd_err("Fail to pass WNI_CFG_PS_WOW_DATA_INACTIVITY_TO CFG");
7214 }
7215
Krunal Sonidf0f8742016-09-26 14:56:31 -07007216 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_ENABLE_LTE_COEX,
7217 config->enableLTECoex) == QDF_STATUS_E_FAILURE) {
7218 status = false;
7219 hdd_err("Couldn't pass on WNI_CFG_ENABLE_LTE_COEX to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007220 }
7221
Krunal Sonidf0f8742016-09-26 14:56:31 -07007222 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_AP_KEEP_ALIVE_TIMEOUT,
7223 config->apKeepAlivePeriod) == QDF_STATUS_E_FAILURE) {
7224 status = false;
7225 hdd_err("Couldn't pass on WNI_CFG_AP_KEEP_ALIVE_TIMEOUT to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007226 }
7227
Krunal Sonidf0f8742016-09-26 14:56:31 -07007228 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_GO_KEEP_ALIVE_TIMEOUT,
7229 config->goKeepAlivePeriod) == QDF_STATUS_E_FAILURE) {
7230 status = false;
7231 hdd_err("Couldn't pass on WNI_CFG_GO_KEEP_ALIVE_TIMEOUT to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007232 }
7233
Krunal Sonidf0f8742016-09-26 14:56:31 -07007234 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_AP_LINK_MONITOR_TIMEOUT,
7235 config->apLinkMonitorPeriod) == QDF_STATUS_E_FAILURE) {
7236 status = false;
7237 hdd_err("Couldn't pass on WNI_CFG_AP_LINK_MONITOR_TIMEOUT to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007238 }
7239
Krunal Sonidf0f8742016-09-26 14:56:31 -07007240 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_GO_LINK_MONITOR_TIMEOUT,
7241 config->goLinkMonitorPeriod) == QDF_STATUS_E_FAILURE) {
7242 status = false;
7243 hdd_err("Couldn't pass on WNI_CFG_GO_LINK_MONITOR_TIMEOUT to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007244 }
7245
Krunal Sonidf0f8742016-09-26 14:56:31 -07007246 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_SINGLE_TID_RC,
7247 config->bSingleTidRc) == QDF_STATUS_E_FAILURE) {
7248 status = false;
7249 hdd_err("Couldn't pass on WNI_CFG_SINGLE_TID_RC to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007250 }
7251
Krunal Sonidf0f8742016-09-26 14:56:31 -07007252 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TELE_BCN_WAKEUP_EN,
7253 config->teleBcnWakeupEn) == QDF_STATUS_E_FAILURE) {
7254 status = false;
7255 hdd_err("Couldn't pass on WNI_CFG_TELE_BCN_WAKEUP_EN to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007256 }
7257
Krunal Sonidf0f8742016-09-26 14:56:31 -07007258 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TELE_BCN_TRANS_LI,
7259 config->nTeleBcnTransListenInterval) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307260 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007261 status = false;
7262 hdd_err("Couldn't pass on WNI_CFG_TELE_BCN_TRANS_LI to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007263 }
7264
Krunal Sonidf0f8742016-09-26 14:56:31 -07007265 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TELE_BCN_MAX_LI,
7266 config->nTeleBcnMaxListenInterval) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307267 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007268 status = false;
7269 hdd_err("Couldn't pass on WNI_CFG_TELE_BCN_MAX_LI to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007270 }
7271
Krunal Sonidf0f8742016-09-26 14:56:31 -07007272 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TELE_BCN_TRANS_LI_IDLE_BCNS,
7273 config->nTeleBcnTransLiNumIdleBeacons) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307274 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007275 status = false;
7276 hdd_err("Couldn't pass on WNI_CFG_TELE_BCN_TRANS_LI_IDLE_BCNS to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007277 }
7278
Krunal Sonidf0f8742016-09-26 14:56:31 -07007279 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TELE_BCN_MAX_LI_IDLE_BCNS,
7280 config->nTeleBcnMaxLiNumIdleBeacons) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307281 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007282 status = false;
7283 hdd_err("Couldn't pass on WNI_CFG_TELE_BCN_MAX_LI_IDLE_BCNS to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007284 }
7285
Krunal Sonidf0f8742016-09-26 14:56:31 -07007286 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_RF_SETTLING_TIME_CLK,
7287 config->rfSettlingTimeUs) == QDF_STATUS_E_FAILURE) {
7288 status = false;
7289 hdd_err("Couldn't pass on WNI_CFG_RF_SETTLING_TIME_CLK to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007290 }
7291
Krunal Sonidf0f8742016-09-26 14:56:31 -07007292 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_INFRA_STA_KEEP_ALIVE_PERIOD,
7293 config->infraStaKeepAlivePeriod) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307294 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007295 status = false;
7296 hdd_err("Couldn't pass on WNI_CFG_INFRA_STA_KEEP_ALIVE_PERIOD to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007297 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07007298 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_DYNAMIC_PS_POLL_VALUE,
7299 config->dynamicPsPollValue) == QDF_STATUS_E_FAILURE) {
7300 status = false;
7301 hdd_err("Couldn't pass on WNI_CFG_DYNAMIC_PS_POLL_VALUE to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007302 }
7303
Krunal Sonidf0f8742016-09-26 14:56:31 -07007304 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_PS_NULLDATA_AP_RESP_TIMEOUT,
7305 config->nNullDataApRespTimeout) == QDF_STATUS_E_FAILURE) {
7306 status = false;
7307 hdd_err("Couldn't pass on WNI_CFG_PS_NULLDATA_DELAY_TIMEOUT to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007308 }
7309
Krunal Sonidf0f8742016-09-26 14:56:31 -07007310 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_AP_DATA_AVAIL_POLL_PERIOD,
7311 config->apDataAvailPollPeriodInMs) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307312 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007313 status = false;
7314 hdd_err("Couldn't pass on WNI_CFG_AP_DATA_AVAIL_POLL_PERIOD to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007315 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07007316 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_FRAGMENTATION_THRESHOLD,
7317 config->FragmentationThreshold) == QDF_STATUS_E_FAILURE) {
7318 status = false;
7319 hdd_err("Couldn't pass on WNI_CFG_FRAGMENTATION_THRESHOLD to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007320 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07007321 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_RTS_THRESHOLD,
7322 config->RTSThreshold) == QDF_STATUS_E_FAILURE) {
7323 status = false;
7324 hdd_err("Couldn't pass on WNI_CFG_RTS_THRESHOLD to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007325 }
7326
Krunal Sonidf0f8742016-09-26 14:56:31 -07007327 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_11D_ENABLED,
7328 config->Is11dSupportEnabled) == QDF_STATUS_E_FAILURE) {
7329 status = false;
7330 hdd_err("Couldn't pass on WNI_CFG_11D_ENABLED to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007331 }
7332
Krunal Sonidf0f8742016-09-26 14:56:31 -07007333 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_DFS_MASTER_ENABLED,
7334 config->enableDFSMasterCap) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307335 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007336 status = false;
7337 hdd_err("Failure: Couldn't set value for WNI_CFG_DFS_MASTER_ENABLED");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007338 }
7339
Krunal Sonidf0f8742016-09-26 14:56:31 -07007340 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_HEART_BEAT_THRESHOLD,
7341 config->HeartbeatThresh24) == QDF_STATUS_E_FAILURE) {
7342 status = false;
7343 hdd_err("Couldn't pass on WNI_CFG_HEART_BEAT_THRESHOLD to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007344 }
7345
Krunal Sonidf0f8742016-09-26 14:56:31 -07007346 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_ENABLE_MC_ADDR_LIST,
7347 config->fEnableMCAddrList) == QDF_STATUS_E_FAILURE) {
7348 status = false;
7349 hdd_err("Couldn't pass on WNI_CFG_ENABLE_MC_ADDR_LIST to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007350 }
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007351
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007352#ifdef WLAN_SOFTAP_VSTA_FEATURE
Krunal Sonidf0f8742016-09-26 14:56:31 -07007353 if (config->fEnableVSTASupport) {
7354 sme_cfg_get_int(hdd_ctx->hHal, WNI_CFG_ASSOC_STA_LIMIT, &val);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007355 if (val <= WNI_CFG_ASSOC_STA_LIMIT_STADEF)
7356 val = WNI_CFG_ASSOC_STA_LIMIT_STAMAX;
7357 } else {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007358 val = config->maxNumberOfPeers;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007359
7360 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07007361 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_ASSOC_STA_LIMIT, val) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307362 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007363 status = false;
7364 hdd_err("Couldn't pass on WNI_CFG_ASSOC_STA_LIMIT to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007365 }
7366#endif
Krunal Sonidf0f8742016-09-26 14:56:31 -07007367 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_ENABLE_LPWR_IMG_TRANSITION,
7368 config->enableLpwrImgTransition)
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307369 == QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007370 status = false;
7371 hdd_err("Couldn't pass on WNI_CFG_ENABLE_LPWR_IMG_TRANSITION to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007372 }
7373
Krunal Sonidf0f8742016-09-26 14:56:31 -07007374 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_ENABLE_MCC_ADAPTIVE_SCHED,
7375 config->enableMCCAdaptiveScheduler) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307376 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007377 status = false;
7378 hdd_err("Couldn't pass on WNI_CFG_ENABLE_MCC_ADAPTIVE_SCHED to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007379 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07007380 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_DISABLE_LDPC_WITH_TXBF_AP,
7381 config->disableLDPCWithTxbfAP) == QDF_STATUS_E_FAILURE) {
7382 status = false;
7383 hdd_err("Couldn't pass on WNI_CFG_DISABLE_LDPC_WITH_TXBF_AP to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007384 }
7385
Krunal Sonidf0f8742016-09-26 14:56:31 -07007386 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_DYNAMIC_THRESHOLD_ZERO,
7387 config->retryLimitZero) == QDF_STATUS_E_FAILURE) {
7388 status = false;
7389 hdd_err("Couldn't pass on WNI_CFG_DYNAMIC_THRESHOLD_ZERO to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007390 }
7391
Krunal Sonidf0f8742016-09-26 14:56:31 -07007392 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_DYNAMIC_THRESHOLD_ONE,
7393 config->retryLimitOne) == QDF_STATUS_E_FAILURE) {
7394 status = false;
7395 hdd_err("Couldn't pass on WNI_CFG_DYNAMIC_THRESHOLD_ONE to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007396 }
7397
Krunal Sonidf0f8742016-09-26 14:56:31 -07007398 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_DYNAMIC_THRESHOLD_TWO,
7399 config->retryLimitTwo) == QDF_STATUS_E_FAILURE) {
7400 status = false;
7401 hdd_err("Couldn't pass on WNI_CFG_DYNAMIC_THRESHOLD_TWO to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007402 }
7403
Krunal Sonidf0f8742016-09-26 14:56:31 -07007404 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_MAX_MEDIUM_TIME,
7405 config->cfgMaxMediumTime) == QDF_STATUS_E_FAILURE) {
7406 status = false;
7407 hdd_err("Couldn't pass on WNI_CFG_MAX_MEDIUM_TIME to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007408 }
7409#ifdef FEATURE_WLAN_TDLS
7410
Krunal Sonidf0f8742016-09-26 14:56:31 -07007411 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TDLS_QOS_WMM_UAPSD_MASK,
7412 config->fTDLSUapsdMask) == QDF_STATUS_E_FAILURE) {
7413 status = false;
7414 hdd_err("Couldn't pass on WNI_CFG_TDLS_QOS_WMM_UAPSD_MASK to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007415 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07007416 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TDLS_BUF_STA_ENABLED,
7417 config->fEnableTDLSBufferSta) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307418 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007419 status = false;
7420 hdd_err("Couldn't pass on WNI_CFG_TDLS_BUF_STA_ENABLED to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007421 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07007422 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TDLS_PUAPSD_INACT_TIME,
7423 config->fTDLSPuapsdInactivityTimer) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307424 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007425 status = false;
7426 hdd_err("Couldn't pass on WNI_CFG_TDLS_PUAPSD_INACT_TIME to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007427 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07007428 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TDLS_RX_FRAME_THRESHOLD,
7429 config->fTDLSRxFrameThreshold) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307430 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007431 status = false;
7432 hdd_err("Couldn't pass on WNI_CFG_TDLS_RX_FRAME_THRESHOLD to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007433 }
7434
Krunal Sonidf0f8742016-09-26 14:56:31 -07007435 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TDLS_OFF_CHANNEL_ENABLED,
7436 config->fEnableTDLSOffChannel) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307437 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007438 status = false;
7439 hdd_err("Couldn't pass on WNI_CFG_TDLS_BUF_STA_ENABLED to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007440 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07007441 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TDLS_WMM_MODE_ENABLED,
7442 config->fEnableTDLSWmmMode) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307443 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007444 status = false;
7445 hdd_err("Couldn't pass on WNI_CFG_TDLS_WMM_MODE_ENABLED to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007446 }
7447#endif
7448
Krunal Sonidf0f8742016-09-26 14:56:31 -07007449 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_ENABLE_ADAPT_RX_DRAIN,
7450 config->fEnableAdaptRxDrain) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307451 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007452 status = false;
7453 hdd_err("Couldn't pass on WNI_CFG_ENABLE_ADAPT_RX_DRAIN to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007454 }
7455
Krunal Sonidf0f8742016-09-26 14:56:31 -07007456 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_ANTENNA_DIVESITY,
7457 config->antennaDiversity) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307458 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007459 status = false;
7460 hdd_err("Couldn't pass on WNI_CFG_ANTENNA_DIVESITY to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007461 }
7462
Krunal Sonidf0f8742016-09-26 14:56:31 -07007463 if (sme_cfg_set_int(hdd_ctx->hHal,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007464 WNI_CFG_DEFAULT_RATE_INDEX_24GHZ,
Krunal Sonidf0f8742016-09-26 14:56:31 -07007465 config->defaultRateIndex24Ghz) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307466 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007467 status = false;
7468 hdd_err("Couldn't pass on WNI_CFG_DEFAULT_RATE_INDEX_24GHZ to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007469 }
7470
Krunal Sonidf0f8742016-09-26 14:56:31 -07007471 if (sme_cfg_set_int(hdd_ctx->hHal,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007472 WNI_CFG_DEBUG_P2P_REMAIN_ON_CHANNEL,
Krunal Sonidf0f8742016-09-26 14:56:31 -07007473 config->debugP2pRemainOnChannel) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307474 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007475 status = false;
7476 hdd_err("Couldn't pass on WNI_CFG_DEBUG_P2P_REMAIN_ON_CHANNEL to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007477 }
7478#ifdef WLAN_FEATURE_11W
Krunal Sonidf0f8742016-09-26 14:56:31 -07007479 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_PMF_SA_QUERY_MAX_RETRIES,
7480 config->pmfSaQueryMaxRetries) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307481 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007482 status = false;
7483 hdd_err("Couldn't pass on WNI_CFG_SA_QUERY_MAX_RETRIES to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007484 }
7485
Krunal Sonidf0f8742016-09-26 14:56:31 -07007486 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_PMF_SA_QUERY_RETRY_INTERVAL,
7487 config->pmfSaQueryRetryInterval) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307488 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007489 status = false;
7490 hdd_err("Couldn't pass on WNI_CFG_SA_QUERY_RETRY_INTERVAL to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007491 }
7492#endif
7493
Krunal Sonidf0f8742016-09-26 14:56:31 -07007494 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_IBSS_ATIM_WIN_SIZE,
7495 config->ibssATIMWinSize) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307496 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007497 status = false;
7498 hdd_err("Couldn't pass on WNI_CFG_IBSS_ATIM_WIN_SIZE to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007499 }
Krunal Soni53993f72016-07-08 18:20:03 -07007500
Krunal Sonidf0f8742016-09-26 14:56:31 -07007501 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TGT_GTX_USR_CFG,
7502 config->tgt_gtx_usr_cfg) == QDF_STATUS_E_FAILURE) {
7503 status = false;
7504 hdd_err("Couldn't pass on WNI_CFG_TGT_GTX_USR_CFG to CCM");
Rajeev Kumar Sirasanagandlaaf474742016-09-06 17:54:50 +05307505 }
Hong Shi417824f2017-01-12 02:31:14 +08007506
7507 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_MAX_HT_MCS_TX_DATA,
7508 config->max_ht_mcs_txdata) ==
7509 QDF_STATUS_E_FAILURE) {
7510 status = false;
7511 hdd_err("Couldn't pass on WNI_CFG_MAX_HT_MCS_TX_DATA to CCM");
7512 }
Hong Shia9ef8712017-02-19 21:54:02 +08007513
7514 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_DISABLE_ABG_RATE_FOR_TX_DATA,
7515 config->disable_abg_rate_txdata) ==
7516 QDF_STATUS_E_FAILURE) {
7517 status = false;
7518 hdd_err("Couldn't pass on WNI_CFG_DISABLE_ABG_RATE_FOR_TX_DATA to CCM");
7519 }
7520
Hong Shib90718f2017-02-20 00:57:22 +08007521 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_RATE_FOR_TX_MGMT,
7522 config->rate_for_tx_mgmt) ==
7523 QDF_STATUS_E_FAILURE) {
7524 status = false;
7525 hdd_err("Couldn't pass on WNI_CFG_RATE_FOR_TX_MGMT to CCM");
7526 }
7527
lifeng13a89d72017-05-10 14:49:29 +08007528 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_SAP_MAX_MCS_DATA,
7529 config->sap_max_mcs_txdata) ==
7530 QDF_STATUS_E_FAILURE) {
7531 status = false;
7532 hdd_err("Could not pass on WNI_CFG_SAP_MAX_MCS_DATA to CCM");
7533 }
7534
Hong Shi2d384fd2017-05-22 18:38:41 +08007535 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_RATE_FOR_TX_MGMT_2G,
7536 config->rate_for_tx_mgmt_2g) ==
7537 QDF_STATUS_E_FAILURE) {
7538 status = false;
7539 hdd_err("Couldn't pass on WNI_CFG_RATE_FOR_TX_MGMT_2G to CCM");
7540 }
7541
7542 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_RATE_FOR_TX_MGMT_5G,
7543 config->rate_for_tx_mgmt_5g) ==
7544 QDF_STATUS_E_FAILURE) {
7545 status = false;
7546 hdd_err("Couldn't pass on WNI_CFG_RATE_FOR_TX_MGMT_5G to CCM");
7547 }
7548
Krunal Sonidf0f8742016-09-26 14:56:31 -07007549 return status;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007550}
Krishna Kumaar Natarajan90bb6f12017-03-03 21:05:52 -08007551
Kapil Gupta5cda2252016-12-29 18:44:26 +05307552/**
7553 * hdd_update_per_config_to_sme() -initializes the sme config for PER roam
7554 *
7555 * @hdd_ctx: the pointer to hdd context
7556 * @sme_config: sme configuation pointer
7557 *
7558 * Return: None
7559 */
Jeff Johnsonb6909be2017-08-28 12:07:19 -07007560static void hdd_update_per_config_to_sme(struct hdd_context *hdd_ctx,
Kapil Gupta5cda2252016-12-29 18:44:26 +05307561 tSmeConfigParams *sme_config)
7562{
7563 sme_config->csrConfig.per_roam_config.enable =
7564 hdd_ctx->config->is_per_roam_enabled;
7565
7566 /* Assigning Tx and Rx for same value */
7567 sme_config->csrConfig.per_roam_config.tx_high_rate_thresh =
7568 hdd_ctx->config->per_roam_high_rate_threshold;
7569 sme_config->csrConfig.per_roam_config.rx_high_rate_thresh =
7570 hdd_ctx->config->per_roam_high_rate_threshold;
7571
7572 /* Assigning Tx and Rx for same value */
7573 sme_config->csrConfig.per_roam_config.tx_low_rate_thresh =
7574 hdd_ctx->config->per_roam_low_rate_threshold;
7575 sme_config->csrConfig.per_roam_config.rx_low_rate_thresh =
7576 hdd_ctx->config->per_roam_low_rate_threshold;
7577
7578 /* Assigning Tx and Rx for same value */
7579 sme_config->csrConfig.per_roam_config.tx_rate_thresh_percnt =
7580 hdd_ctx->config->per_roam_th_percent;
7581 sme_config->csrConfig.per_roam_config.rx_rate_thresh_percnt =
7582 hdd_ctx->config->per_roam_th_percent;
7583
7584 sme_config->csrConfig.per_roam_config.per_rest_time =
7585 hdd_ctx->config->per_roam_rest_time;
Kapil Gupta957827b2017-02-13 15:47:04 +05307586 sme_config->csrConfig.per_roam_config.tx_per_mon_time =
7587 hdd_ctx->config->per_roam_mon_time;
7588 sme_config->csrConfig.per_roam_config.rx_per_mon_time =
7589 hdd_ctx->config->per_roam_mon_time;
Selvaraj, Sridhar0641fab2017-05-17 16:02:00 +05307590
7591 /* Assigning minimum roamable AP RSSI for candidate selection */
7592 sme_config->csrConfig.per_roam_config.min_candidate_rssi =
7593 hdd_ctx->config->min_candidate_rssi;
Kapil Gupta5cda2252016-12-29 18:44:26 +05307594}
7595
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007596/**
Tushnim Bhattacharyyaba8ee932017-03-23 09:27:40 -07007597 * hdd_set_policy_mgr_user_cfg() -initializes the policy manager
7598 * configuration parameters
7599 *
7600 * @pHddCtx: the pointer to hdd context
7601 *
7602 * Return: QDF_STATUS_SUCCESS if configuration is correctly applied,
7603 * otherwise the appropriate QDF_STATUS would be returned
7604 */
Jeff Johnsonb6909be2017-08-28 12:07:19 -07007605QDF_STATUS hdd_set_policy_mgr_user_cfg(struct hdd_context *hdd_ctx)
Tushnim Bhattacharyyaba8ee932017-03-23 09:27:40 -07007606{
7607 QDF_STATUS status;
7608 struct policy_mgr_user_cfg *user_cfg;
7609
7610 user_cfg = qdf_mem_malloc(sizeof(*user_cfg));
7611 if (NULL == user_cfg) {
7612 hdd_err("unable to allocate user_cfg");
7613 return QDF_STATUS_E_NOMEM;
7614 }
7615
7616 user_cfg->conc_system_pref = hdd_ctx->config->conc_system_pref;
7617 user_cfg->enable_mcc_adaptive_scheduler =
7618 hdd_ctx->config->enableMCCAdaptiveScheduler;
7619 user_cfg->max_concurrent_active_sessions =
7620 hdd_ctx->config->gMaxConcurrentActiveSessions;
Tushnim Bhattacharyya7e546692017-03-23 18:30:29 -07007621 user_cfg->enable2x2 = hdd_ctx->config->enable2x2;
Tushnim Bhattacharyya5cc9edc2017-04-26 12:33:59 -07007622 user_cfg->mcc_to_scc_switch_mode =
7623 hdd_ctx->config->WlanMccToSccSwitchMode;
7624 user_cfg->sub_20_mhz_enabled = cds_is_sub_20_mhz_enabled();
Tushnim Bhattacharyyaba8ee932017-03-23 09:27:40 -07007625 status = policy_mgr_set_user_cfg(hdd_ctx->hdd_psoc, user_cfg);
7626
7627 qdf_mem_free(user_cfg);
7628
7629 return status;
7630}
7631/**
Srinivas Girigowda3ea486d2017-06-28 17:19:49 -07007632 * hdd_to_csr_wmm_mode() - Utility function to convert HDD to CSR WMM mode
7633 *
7634 * @enum hdd_wmm_user_mode - hdd WMM user mode
7635 *
7636 * Return: CSR WMM mode
7637 */
7638static eCsrRoamWmmUserModeType
7639hdd_to_csr_wmm_mode(enum hdd_wmm_user_mode mode)
7640{
7641 switch (mode) {
7642 case HDD_WMM_USER_MODE_QBSS_ONLY:
7643 return eCsrRoamWmmQbssOnly;
7644 case HDD_WMM_USER_MODE_NO_QOS:
7645 return eCsrRoamWmmNoQos;
7646 case HDD_WMM_USER_MODE_AUTO:
7647 default:
7648 return eCsrRoamWmmAuto;
7649 }
7650}
7651
7652/**
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007653 * hdd_set_sme_config() -initializes the sme configuration parameters
7654 *
7655 * @pHddCtx: the pointer to hdd context
7656 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307657 * Return: QDF_STATUS_SUCCESS if configuration is correctly applied,
7658 * otherwise the appropriate QDF_STATUS would be returned
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007659 */
Jeff Johnsonb6909be2017-08-28 12:07:19 -07007660QDF_STATUS hdd_set_sme_config(struct hdd_context *pHddCtx)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007661{
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307662 QDF_STATUS status = QDF_STATUS_SUCCESS;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007663 tSmeConfigParams *smeConfig;
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08007664 uint8_t rrm_capab_len;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007665
7666 struct hdd_config *pConfig = pHddCtx->config;
7667
Anurag Chouhan600c3a02016-03-01 10:33:54 +05307668 smeConfig = qdf_mem_malloc(sizeof(*smeConfig));
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007669 if (NULL == smeConfig) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08007670 hdd_err("unable to allocate smeConfig");
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307671 return QDF_STATUS_E_NOMEM;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007672 }
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007673
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07007674 hdd_debug("%s bWmmIsEnabled=%d 802_11e_enabled=%d dot11Mode=%d",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007675 __func__, pConfig->WmmMode, pConfig->b80211eIsEnabled,
7676 pConfig->dot11Mode);
7677
7678 /* Config params obtained from the registry
7679 * To Do: set regulatory information here
7680 */
7681
7682 smeConfig->csrConfig.RTSThreshold = pConfig->RTSThreshold;
7683 smeConfig->csrConfig.FragmentationThreshold =
7684 pConfig->FragmentationThreshold;
7685 smeConfig->csrConfig.shortSlotTime = pConfig->ShortSlotTimeEnabled;
7686 smeConfig->csrConfig.Is11dSupportEnabled = pConfig->Is11dSupportEnabled;
7687 smeConfig->csrConfig.HeartbeatThresh24 = pConfig->HeartbeatThresh24;
7688
7689 smeConfig->csrConfig.phyMode =
7690 hdd_cfg_xlate_to_csr_phy_mode(pConfig->dot11Mode);
7691
7692 if (pConfig->dot11Mode == eHDD_DOT11_MODE_abg ||
7693 pConfig->dot11Mode == eHDD_DOT11_MODE_11b ||
7694 pConfig->dot11Mode == eHDD_DOT11_MODE_11g ||
7695 pConfig->dot11Mode == eHDD_DOT11_MODE_11b_ONLY ||
7696 pConfig->dot11Mode == eHDD_DOT11_MODE_11g_ONLY) {
7697 smeConfig->csrConfig.channelBondingMode24GHz = 0;
7698 smeConfig->csrConfig.channelBondingMode5GHz = 0;
7699 } else {
7700 smeConfig->csrConfig.channelBondingMode24GHz =
7701 pConfig->nChannelBondingMode24GHz;
7702 smeConfig->csrConfig.channelBondingMode5GHz =
7703 pConfig->nChannelBondingMode5GHz;
7704 }
7705 smeConfig->csrConfig.TxRate = pConfig->TxRate;
7706 smeConfig->csrConfig.nScanResultAgeCount = pConfig->ScanResultAgeCount;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007707 smeConfig->csrConfig.AdHocChannel24 = pConfig->OperatingChannel;
7708 smeConfig->csrConfig.fSupplicantCountryCodeHasPriority =
7709 pConfig->fSupplicantCountryCodeHasPriority;
7710 smeConfig->csrConfig.bCatRssiOffset = pConfig->nRssiCatGap;
7711 smeConfig->csrConfig.vccRssiThreshold = pConfig->nVccRssiTrigger;
7712 smeConfig->csrConfig.vccUlMacLossThreshold =
7713 pConfig->nVccUlMacLossThreshold;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007714 smeConfig->csrConfig.nInitialDwellTime = pConfig->nInitialDwellTime;
7715 smeConfig->csrConfig.initial_scan_no_dfs_chnl =
7716 pConfig->initial_scan_no_dfs_chnl;
7717 smeConfig->csrConfig.nActiveMaxChnTime = pConfig->nActiveMaxChnTime;
7718 smeConfig->csrConfig.nActiveMinChnTime = pConfig->nActiveMinChnTime;
7719 smeConfig->csrConfig.nPassiveMaxChnTime = pConfig->nPassiveMaxChnTime;
7720 smeConfig->csrConfig.nPassiveMinChnTime = pConfig->nPassiveMinChnTime;
7721#ifdef WLAN_AP_STA_CONCURRENCY
7722 smeConfig->csrConfig.nActiveMaxChnTimeConc =
7723 pConfig->nActiveMaxChnTimeConc;
7724 smeConfig->csrConfig.nActiveMinChnTimeConc =
7725 pConfig->nActiveMinChnTimeConc;
7726 smeConfig->csrConfig.nPassiveMaxChnTimeConc =
7727 pConfig->nPassiveMaxChnTimeConc;
7728 smeConfig->csrConfig.nPassiveMinChnTimeConc =
7729 pConfig->nPassiveMinChnTimeConc;
7730 smeConfig->csrConfig.nRestTimeConc = pConfig->nRestTimeConc;
Agrawal Ashish17bb3902016-05-05 13:29:40 +05307731 smeConfig->csrConfig.min_rest_time_conc = pConfig->min_rest_time_conc;
7732 smeConfig->csrConfig.idle_time_conc = pConfig->idle_time_conc;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007733
7734#endif
7735 smeConfig->csrConfig.Is11eSupportEnabled = pConfig->b80211eIsEnabled;
Srinivas Girigowda3ea486d2017-06-28 17:19:49 -07007736 smeConfig->csrConfig.WMMSupportMode =
7737 hdd_to_csr_wmm_mode(pConfig->WmmMode);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007738
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08007739 smeConfig->rrmConfig.rrm_enabled = pConfig->fRrmEnable;
7740 smeConfig->rrmConfig.max_randn_interval = pConfig->nRrmRandnIntvl;
7741 hdd_hex_string_to_u8_array(pConfig->rm_capability,
7742 smeConfig->rrmConfig.rm_capability, &rrm_capab_len,
7743 DOT11F_IE_RRMENABLEDCAP_MAX_LEN);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007744 /* Remaining config params not obtained from registry
7745 * On RF EVB beacon using channel 1.
7746 */
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007747 smeConfig->csrConfig.nVhtChannelWidth = pConfig->vhtChannelWidth;
7748 smeConfig->csrConfig.enableTxBF = pConfig->enableTxBF;
Kiran Kumar Lokere5302ab62015-12-16 16:03:16 -08007749 smeConfig->csrConfig.enable_txbf_sap_mode =
7750 pConfig->enable_txbf_sap_mode;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007751 smeConfig->csrConfig.enable2x2 = pConfig->enable2x2;
7752 smeConfig->csrConfig.enableVhtFor24GHz = pConfig->enableVhtFor24GHzBand;
Kapil Gupta4b2efbb2016-10-03 13:07:20 +05307753 smeConfig->csrConfig.vendor_vht_sap =
7754 pConfig->enable_sap_vendor_vht;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007755 smeConfig->csrConfig.enableMuBformee = pConfig->enableMuBformee;
7756 smeConfig->csrConfig.enableVhtpAid = pConfig->enableVhtpAid;
7757 smeConfig->csrConfig.enableVhtGid = pConfig->enableVhtGid;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007758 smeConfig->csrConfig.enableAmpduPs = pConfig->enableAmpduPs;
7759 smeConfig->csrConfig.enableHtSmps = pConfig->enableHtSmps;
7760 smeConfig->csrConfig.htSmps = pConfig->htSmps;
Archana Ramachandranfec24812016-02-16 16:31:56 -08007761 /* This param cannot be configured from INI */
7762 smeConfig->csrConfig.send_smps_action = true;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007763 smeConfig->csrConfig.AdHocChannel5G = pConfig->AdHocChannel5G;
7764 smeConfig->csrConfig.AdHocChannel24 = pConfig->AdHocChannel24G;
7765 smeConfig->csrConfig.ProprietaryRatesEnabled = 0;
7766 smeConfig->csrConfig.HeartbeatThresh50 = 40;
7767 smeConfig->csrConfig.bandCapability = pConfig->nBandCapability;
7768 if (pConfig->nBandCapability == eCSR_BAND_24) {
7769 smeConfig->csrConfig.Is11hSupportEnabled = 0;
7770 } else {
7771 smeConfig->csrConfig.Is11hSupportEnabled =
7772 pConfig->Is11hSupportEnabled;
7773 }
7774 smeConfig->csrConfig.cbChoice = 0;
7775 smeConfig->csrConfig.eBand = pConfig->nBandCapability;
7776 smeConfig->csrConfig.nTxPowerCap = pConfig->nTxPowerCap;
Padma, Santhosh Kumar29df3622016-08-16 19:15:16 +05307777 smeConfig->csrConfig.allow_tpc_from_ap = pConfig->allow_tpc_from_ap;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007778 smeConfig->csrConfig.fEnableBypass11d = pConfig->enableBypass11d;
7779 smeConfig->csrConfig.fEnableDFSChnlScan = pConfig->enableDFSChnlScan;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007780 smeConfig->csrConfig.nRoamPrefer5GHz = pConfig->nRoamPrefer5GHz;
7781 smeConfig->csrConfig.nRoamIntraBand = pConfig->nRoamIntraBand;
7782 smeConfig->csrConfig.nProbes = pConfig->nProbes;
7783
7784 smeConfig->csrConfig.nRoamScanHomeAwayTime =
7785 pConfig->nRoamScanHomeAwayTime;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007786 smeConfig->csrConfig.fFirstScanOnly2GChnl =
7787 pConfig->enableFirstScan2GOnly;
7788
Peng Xuf5d60c82015-10-02 17:17:03 -07007789 smeConfig->csrConfig.Csr11dinfo.Channels.numChannels = 0;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007790
7791 hdd_set_power_save_offload_config(pHddCtx);
7792
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007793 smeConfig->csrConfig.csr11rConfig.IsFTResourceReqSupported =
7794 pConfig->fFTResourceReqSupported;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007795 smeConfig->csrConfig.isFastRoamIniFeatureEnabled =
7796 pConfig->isFastRoamIniFeatureEnabled;
7797 smeConfig->csrConfig.MAWCEnabled = pConfig->MAWCEnabled;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007798#ifdef FEATURE_WLAN_ESE
7799 smeConfig->csrConfig.isEseIniFeatureEnabled =
7800 pConfig->isEseIniFeatureEnabled;
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07007801 if (pConfig->isEseIniFeatureEnabled)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007802 pConfig->isFastTransitionEnabled = true;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007803#endif
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007804 smeConfig->csrConfig.isFastTransitionEnabled =
7805 pConfig->isFastTransitionEnabled;
7806 smeConfig->csrConfig.RoamRssiDiff = pConfig->RoamRssiDiff;
7807 smeConfig->csrConfig.isWESModeEnabled = pConfig->isWESModeEnabled;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007808 smeConfig->csrConfig.isRoamOffloadScanEnabled =
7809 pConfig->isRoamOffloadScanEnabled;
7810 smeConfig->csrConfig.bFastRoamInConIniFeatureEnabled =
7811 pConfig->bFastRoamInConIniFeatureEnabled;
7812
7813 if (0 == smeConfig->csrConfig.isRoamOffloadScanEnabled) {
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07007814 /* Disable roaming in concurrency if roam scan
7815 * offload is disabled
7816 */
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007817 smeConfig->csrConfig.bFastRoamInConIniFeatureEnabled = 0;
7818 }
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007819 smeConfig->csrConfig.neighborRoamConfig.nNeighborLookupRssiThreshold =
7820 pConfig->nNeighborLookupRssiThreshold;
Varun Reddy Yeturu168134f2017-06-26 13:46:05 -07007821 smeConfig->csrConfig.neighborRoamConfig.rssi_thresh_offset_5g =
7822 pConfig->rssi_thresh_offset_5g;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007823 smeConfig->csrConfig.neighborRoamConfig.delay_before_vdev_stop =
7824 pConfig->delay_before_vdev_stop;
7825 smeConfig->csrConfig.neighborRoamConfig.nOpportunisticThresholdDiff =
7826 pConfig->nOpportunisticThresholdDiff;
7827 smeConfig->csrConfig.neighborRoamConfig.nRoamRescanRssiDiff =
7828 pConfig->nRoamRescanRssiDiff;
7829 smeConfig->csrConfig.neighborRoamConfig.nNeighborScanMaxChanTime =
7830 pConfig->nNeighborScanMaxChanTime;
7831 smeConfig->csrConfig.neighborRoamConfig.nNeighborScanMinChanTime =
7832 pConfig->nNeighborScanMinChanTime;
7833 smeConfig->csrConfig.neighborRoamConfig.nNeighborScanTimerPeriod =
7834 pConfig->nNeighborScanPeriod;
Sridhar Selvaraj1b2330c2017-07-21 15:16:42 +05307835 smeConfig->csrConfig.neighborRoamConfig.
7836 neighbor_scan_min_timer_period =
7837 pConfig->neighbor_scan_min_period;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007838 smeConfig->csrConfig.neighborRoamConfig.nMaxNeighborRetries =
7839 pConfig->nMaxNeighborReqTries;
7840 smeConfig->csrConfig.neighborRoamConfig.nNeighborResultsRefreshPeriod =
7841 pConfig->nNeighborResultsRefreshPeriod;
7842 smeConfig->csrConfig.neighborRoamConfig.nEmptyScanRefreshPeriod =
7843 pConfig->nEmptyScanRefreshPeriod;
7844 hdd_string_to_u8_array(pConfig->neighborScanChanList,
7845 smeConfig->csrConfig.neighborRoamConfig.
7846 neighborScanChanList.channelList,
7847 &smeConfig->csrConfig.neighborRoamConfig.
7848 neighborScanChanList.numChannels,
7849 WNI_CFG_VALID_CHANNEL_LIST_LEN);
7850 smeConfig->csrConfig.neighborRoamConfig.nRoamBmissFirstBcnt =
7851 pConfig->nRoamBmissFirstBcnt;
7852 smeConfig->csrConfig.neighborRoamConfig.nRoamBmissFinalBcnt =
7853 pConfig->nRoamBmissFinalBcnt;
7854 smeConfig->csrConfig.neighborRoamConfig.nRoamBeaconRssiWeight =
7855 pConfig->nRoamBeaconRssiWeight;
7856 smeConfig->csrConfig.neighborRoamConfig.nhi_rssi_scan_max_count =
7857 pConfig->nhi_rssi_scan_max_count;
7858 smeConfig->csrConfig.neighborRoamConfig.nhi_rssi_scan_rssi_delta =
7859 pConfig->nhi_rssi_scan_rssi_delta;
7860 smeConfig->csrConfig.neighborRoamConfig.nhi_rssi_scan_delay =
7861 pConfig->nhi_rssi_scan_delay;
7862 smeConfig->csrConfig.neighborRoamConfig.nhi_rssi_scan_rssi_ub =
7863 pConfig->nhi_rssi_scan_rssi_ub;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007864 smeConfig->csrConfig.addTSWhenACMIsOff = pConfig->AddTSWhenACMIsOff;
7865 smeConfig->csrConfig.fValidateList = pConfig->fValidateScanList;
7866 smeConfig->csrConfig.allowDFSChannelRoam = pConfig->allowDFSChannelRoam;
7867
7868 /* Enable/Disable MCC */
7869 smeConfig->csrConfig.fEnableMCCMode = pConfig->enableMCC;
7870 smeConfig->csrConfig.mcc_rts_cts_prot_enable =
7871 pConfig->mcc_rts_cts_prot_enable;
7872 smeConfig->csrConfig.mcc_bcast_prob_resp_enable =
7873 pConfig->mcc_bcast_prob_resp_enable;
7874 smeConfig->csrConfig.fAllowMCCGODiffBI = pConfig->allowMCCGODiffBI;
7875
7876 /* Scan Results Aging Time out value */
7877 smeConfig->csrConfig.scanCfgAgingTime = pConfig->scanAgingTimeout;
7878
Krunal Sonia2c0e412017-05-04 14:12:41 +05307879 smeConfig->csrConfig.enable_tx_ldpc = pConfig->enable_tx_ldpc;
7880 smeConfig->csrConfig.enable_rx_ldpc = pConfig->enable_rx_ldpc;
Krunal Soni158bfe62017-08-02 12:33:08 -07007881 smeConfig->csrConfig.disable_high_ht_mcs_2x2 =
7882 pConfig->disable_high_ht_mcs_2x2;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007883#ifdef FEATURE_WLAN_MCC_TO_SCC_SWITCH
7884 smeConfig->csrConfig.cc_switch_mode = pConfig->WlanMccToSccSwitchMode;
7885#endif
7886
Deepak Dhamdhere612392c2016-08-28 02:56:51 -07007887 smeConfig->csrConfig.max_amsdu_num = pConfig->max_amsdu_num;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007888 smeConfig->csrConfig.nSelect5GHzMargin = pConfig->nSelect5GHzMargin;
7889
7890 smeConfig->csrConfig.isCoalesingInIBSSAllowed =
7891 pHddCtx->config->isCoalesingInIBSSAllowed;
7892 smeConfig->csrConfig.ignore_peer_erp_info =
7893 pConfig->ignore_peer_erp_info;
7894 /* update SSR config */
7895 sme_update_enable_ssr((tHalHandle) (pHddCtx->hHal),
7896 pHddCtx->config->enableSSR);
7897
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007898 /* Update maximum interfaces information */
Krunal Soni1878d3a2016-01-14 13:00:44 -08007899 smeConfig->csrConfig.max_intf_count = pHddCtx->max_intf_count;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007900
Krunal Soni1878d3a2016-01-14 13:00:44 -08007901 smeConfig->csrConfig.fEnableDebugLog = pHddCtx->config->gEnableDebugLog;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007902
Krunal Soni1878d3a2016-01-14 13:00:44 -08007903 smeConfig->csrConfig.enable5gEBT = pHddCtx->config->enable5gEBT;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007904
Krunal Soni1878d3a2016-01-14 13:00:44 -08007905 smeConfig->csrConfig.enableSelfRecovery =
7906 pHddCtx->config->enableSelfRecovery;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007907#ifdef WLAN_FEATURE_ROAM_OFFLOAD
7908 smeConfig->csrConfig.isRoamOffloadEnabled =
7909 pHddCtx->config->isRoamOffloadEnabled;
7910#endif
7911 smeConfig->csrConfig.conc_custom_rule1 =
7912 pHddCtx->config->conc_custom_rule1;
7913 smeConfig->csrConfig.conc_custom_rule2 =
7914 pHddCtx->config->conc_custom_rule2;
7915 smeConfig->csrConfig.is_sta_connection_in_5gz_enabled =
7916 pHddCtx->config->is_sta_connection_in_5gz_enabled;
7917
Krunal Soni1878d3a2016-01-14 13:00:44 -08007918 smeConfig->csrConfig.f_sta_miracast_mcc_rest_time_val =
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007919 pHddCtx->config->sta_miracast_mcc_rest_time_val;
7920
7921#ifdef FEATURE_AP_MCC_CH_AVOIDANCE
Krunal Soni1878d3a2016-01-14 13:00:44 -08007922 smeConfig->csrConfig.sap_channel_avoidance =
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007923 pHddCtx->config->sap_channel_avoidance;
7924#endif /* FEATURE_AP_MCC_CH_AVOIDANCE */
gaoleze5108942017-03-31 16:56:42 +08007925 smeConfig->csrConfig.acs_with_more_param =
7926 pHddCtx->config->acs_with_more_param;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007927
Krunal Soni1878d3a2016-01-14 13:00:44 -08007928 smeConfig->csrConfig.f_prefer_non_dfs_on_radar =
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007929 pHddCtx->config->prefer_non_dfs_on_radar;
7930
Krunal Soni1878d3a2016-01-14 13:00:44 -08007931 smeConfig->csrConfig.is_ps_enabled = pHddCtx->config->is_ps_enabled;
Kiran Kumar Lokere0ac679c2016-11-17 17:43:36 -08007932 smeConfig->csrConfig.auto_bmps_timer_val =
7933 pHddCtx->config->auto_bmps_timer_val;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007934 hdd_set_fine_time_meas_cap(pHddCtx, smeConfig);
7935
7936 cds_set_multicast_logging(pHddCtx->config->multicast_host_fw_msgs);
7937
7938 smeConfig->csrConfig.sendDeauthBeforeCon = pConfig->sendDeauthBeforeCon;
7939
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007940 smeConfig->csrConfig.max_scan_count =
7941 pHddCtx->config->max_scan_count;
7942
7943 /* Update 802.11p config */
7944 smeConfig->csrConfig.enable_dot11p =
7945 (pHddCtx->config->dot11p_mode != WLAN_HDD_11P_DISABLED);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007946
Krunal Soni1878d3a2016-01-14 13:00:44 -08007947 smeConfig->csrConfig.early_stop_scan_enable =
Varun Reddy Yeturu05186292015-09-28 17:12:33 -07007948 pHddCtx->config->early_stop_scan_enable;
Krunal Soni1878d3a2016-01-14 13:00:44 -08007949 smeConfig->csrConfig.early_stop_scan_min_threshold =
Varun Reddy Yeturu05186292015-09-28 17:12:33 -07007950 pHddCtx->config->early_stop_scan_min_threshold;
Krunal Soni1878d3a2016-01-14 13:00:44 -08007951 smeConfig->csrConfig.early_stop_scan_max_threshold =
Varun Reddy Yeturu05186292015-09-28 17:12:33 -07007952 pHddCtx->config->early_stop_scan_max_threshold;
Varun Reddy Yeturu044bda22015-11-21 22:03:40 -08007953 smeConfig->csrConfig.first_scan_bucket_threshold =
7954 pHddCtx->config->first_scan_bucket_threshold;
Gupta, Kapilc68ad462016-02-01 19:17:23 +05307955
7956 smeConfig->csrConfig.roam_dense_rssi_thresh_offset =
7957 pHddCtx->config->roam_dense_rssi_thresh_offset;
7958 smeConfig->csrConfig.roam_dense_min_aps =
7959 pHddCtx->config->roam_dense_min_aps;
7960 smeConfig->csrConfig.roam_dense_traffic_thresh =
7961 pHddCtx->config->roam_dense_traffic_thresh;
Sandeep Puligilla93a29ec2016-02-12 16:10:56 -08007962 smeConfig->csrConfig.obss_width_interval =
7963 pHddCtx->config->obss_width_trigger_interval;
7964 smeConfig->csrConfig.obss_active_dwelltime =
7965 pHddCtx->config->obss_active_dwelltime;
7966 smeConfig->csrConfig.obss_passive_dwelltime =
7967 pHddCtx->config->obss_passive_dwelltime;
Abhishek Singh165bc602016-03-21 12:43:00 +05307968 smeConfig->csrConfig.ignore_peer_ht_opmode =
7969 pConfig->ignore_peer_ht_opmode;
Abhishek Singh5ea86532016-04-27 14:10:53 +05307970 smeConfig->csrConfig.enable_fatal_event =
7971 pConfig->enable_fatal_event;
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05307972 smeConfig->csrConfig.scan_adaptive_dwell_mode =
7973 pHddCtx->config->scan_adaptive_dwell_mode;
7974 smeConfig->csrConfig.roamscan_adaptive_dwell_mode =
7975 pHddCtx->config->roamscan_adaptive_dwell_mode;
Gupta, Kapilc68ad462016-02-01 19:17:23 +05307976
Kapil Gupta5cda2252016-12-29 18:44:26 +05307977 hdd_update_per_config_to_sme(pHddCtx, smeConfig);
7978
Abhishek Singh10ecf582016-05-04 17:48:59 +05307979 smeConfig->csrConfig.enable_edca_params =
7980 pConfig->enable_edca_params;
7981
7982 smeConfig->csrConfig.edca_vo_cwmin =
7983 pConfig->edca_vo_cwmin;
7984 smeConfig->csrConfig.edca_vi_cwmin =
7985 pConfig->edca_vi_cwmin;
7986 smeConfig->csrConfig.edca_bk_cwmin =
7987 pConfig->edca_bk_cwmin;
7988 smeConfig->csrConfig.edca_be_cwmin =
7989 pConfig->edca_be_cwmin;
7990
7991 smeConfig->csrConfig.edca_vo_cwmax =
7992 pConfig->edca_vo_cwmax;
7993 smeConfig->csrConfig.edca_vi_cwmax =
7994 pConfig->edca_vi_cwmax;
7995 smeConfig->csrConfig.edca_bk_cwmax =
7996 pConfig->edca_bk_cwmax;
7997 smeConfig->csrConfig.edca_be_cwmax =
7998 pConfig->edca_be_cwmax;
7999
8000 smeConfig->csrConfig.edca_vo_aifs =
8001 pConfig->edca_vo_aifs;
8002 smeConfig->csrConfig.edca_vi_aifs =
8003 pConfig->edca_vi_aifs;
8004 smeConfig->csrConfig.edca_bk_aifs =
8005 pConfig->edca_bk_aifs;
8006 smeConfig->csrConfig.edca_be_aifs =
8007 pConfig->edca_be_aifs;
Agrawal Ashish21ba2572016-09-03 16:40:10 +05308008 smeConfig->csrConfig.sta_roam_policy_params.dfs_mode =
8009 CSR_STA_ROAM_POLICY_DFS_ENABLED;
8010 smeConfig->csrConfig.sta_roam_policy_params.skip_unsafe_channels = 0;
Abhishek Singh10ecf582016-05-04 17:48:59 +05308011
Kapil Gupta4f0c0c12017-02-07 15:21:15 +05308012 smeConfig->snr_monitor_enabled = pHddCtx->config->fEnableSNRMonitoring;
8013
Padma, Santhosh Kumara7119672016-08-16 16:05:14 +05308014 smeConfig->csrConfig.tx_aggregation_size =
8015 pHddCtx->config->tx_aggregation_size;
8016 smeConfig->csrConfig.rx_aggregation_size =
8017 pHddCtx->config->rx_aggregation_size;
Selvaraj, Sridhar4f684bb2017-01-19 15:59:23 +05308018 smeConfig->csrConfig.enable_bcast_probe_rsp =
8019 pHddCtx->config->enable_bcast_probe_rsp;
Selvaraj, Sridhara521aab2017-03-25 16:42:34 +05308020 smeConfig->csrConfig.qcn_ie_support =
8021 pHddCtx->config->qcn_ie_support;
Selvaraj, Sridhar97ce6582017-01-20 17:06:34 +05308022 smeConfig->csrConfig.fils_max_chan_guard_time =
8023 pHddCtx->config->fils_max_chan_guard_time;
Padma, Santhosh Kumara7119672016-08-16 16:05:14 +05308024
Krishna Kumaar Natarajan90bb6f12017-03-03 21:05:52 -08008025 hdd_he_set_sme_config(smeConfig, pConfig);
8026
Naveen Rawat2b6e3c92017-03-20 13:59:07 -07008027 smeConfig->csrConfig.pkt_err_disconn_th =
8028 pHddCtx->config->pkt_err_disconn_th;
Selvaraj, Sridhar57ce4df2017-05-29 18:30:49 +05308029 smeConfig->csrConfig.disallow_duration =
8030 pHddCtx->config->disallow_duration;
8031 smeConfig->csrConfig.rssi_channel_penalization =
8032 pHddCtx->config->rssi_channel_penalization;
8033 smeConfig->csrConfig.num_disallowed_aps =
8034 pHddCtx->config->num_disallowed_aps;
8035
Naveen Rawatb2fc4132017-05-10 20:42:05 -07008036 smeConfig->csrConfig.is_force_1x1 =
8037 pHddCtx->config->is_force_1x1;
Naveen Rawat247a8682017-06-05 15:00:31 -07008038 smeConfig->csrConfig.num_11b_tx_chains =
8039 pHddCtx->config->num_11b_tx_chains;
8040 smeConfig->csrConfig.num_11ag_tx_chains =
8041 pHddCtx->config->num_11ag_tx_chains;
8042
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008043 status = sme_update_config(pHddCtx->hHal, smeConfig);
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07008044 if (!QDF_IS_STATUS_SUCCESS(status))
8045 hdd_err("sme_update_config() failure: %d", status);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008046
Anurag Chouhan600c3a02016-03-01 10:33:54 +05308047 qdf_mem_free(smeConfig);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008048 return status;
8049}
8050
8051/**
8052 * hdd_execute_global_config_command() - execute the global config command
8053 * @pHddCtx: the pointer to hdd context
8054 * @command: the command to run
8055 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308056 * Return: the QDF_STATUS return from hdd_execute_config_command
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008057 */
Jeff Johnsonb6909be2017-08-28 12:07:19 -07008058QDF_STATUS hdd_execute_global_config_command(struct hdd_context *pHddCtx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008059 char *command)
8060{
8061 return hdd_execute_config_command(g_registry_table,
8062 ARRAY_SIZE(g_registry_table),
8063 (uint8_t *) pHddCtx->config,
8064 pHddCtx, command);
8065}
8066
8067/**
8068 * hdd_cfg_get_global_config() - get the configuration table
8069 * @pHddCtx: pointer to hdd context
8070 * @pBuf: buffer to store the configuration
8071 * @buflen: size of the buffer
8072 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308073 * Return: QDF_STATUS_SUCCESS if the configuration and buffer size can carry
8074 * the content, otherwise QDF_STATUS_E_RESOURCES
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008075 */
Jeff Johnsonb6909be2017-08-28 12:07:19 -07008076QDF_STATUS hdd_cfg_get_global_config(struct hdd_context *pHddCtx, char *pBuf,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008077 int buflen)
8078{
8079 return hdd_cfg_get_config(g_registry_table,
8080 ARRAY_SIZE(g_registry_table),
8081 (uint8_t *) pHddCtx->config, pHddCtx, pBuf,
8082 buflen);
8083}
8084
8085/**
Deepak Dhamdhere828f1892017-02-09 11:51:19 -08008086 * hdd_get_pmkid_modes() - returns PMKID mode bits
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008087 * @pHddCtx: the pointer to hdd context
8088 *
Deepak Dhamdhere828f1892017-02-09 11:51:19 -08008089 * Return: value of pmkid_modes
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008090 */
Jeff Johnsonb6909be2017-08-28 12:07:19 -07008091void hdd_get_pmkid_modes(struct hdd_context *pHddCtx,
Deepak Dhamdhere828f1892017-02-09 11:51:19 -08008092 struct pmkid_mode_bits *pmkid_modes)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008093{
Deepak Dhamdhere828f1892017-02-09 11:51:19 -08008094 pmkid_modes->fw_okc = (pHddCtx->config->pmkid_modes &
8095 CFG_PMKID_MODES_OKC) ? 1 : 0;
8096 pmkid_modes->fw_pmksa_cache = (pHddCtx->config->pmkid_modes &
8097 CFG_PMKID_MODES_PMKSA_CACHING) ? 1 : 0;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008098}
8099
Jeff Johnsonb6909be2017-08-28 12:07:19 -07008100bool hdd_validate_prb_req_ie_bitmap(struct hdd_context *hdd_ctx)
Rajeev Kumar Sirasanagandlaaec0b082017-06-21 11:59:41 +05308101{
8102 if (!(hdd_ctx->config->probe_req_ie_bitmap_0 ||
8103 hdd_ctx->config->probe_req_ie_bitmap_1 ||
8104 hdd_ctx->config->probe_req_ie_bitmap_2 ||
8105 hdd_ctx->config->probe_req_ie_bitmap_3 ||
8106 hdd_ctx->config->probe_req_ie_bitmap_4 ||
8107 hdd_ctx->config->probe_req_ie_bitmap_5 ||
8108 hdd_ctx->config->probe_req_ie_bitmap_6 ||
8109 hdd_ctx->config->probe_req_ie_bitmap_7))
8110 return false;
8111
8112 /*
8113 * check whether vendor oui IE is set and OUIs are present, each OUI
8114 * is entered in the form of string of 8 characters from ini, therefore,
8115 * for atleast one OUI, minimum length is 8 and hence this string length
8116 * is checked for minimum of 8
8117 */
8118 if ((hdd_ctx->config->probe_req_ie_bitmap_6 &
8119 VENDOR_SPECIFIC_IE_BITMAP) &&
8120 (strlen(hdd_ctx->config->probe_req_ouis) < 8))
8121 return false;
8122
8123 /* check whether vendor oui IE is not set but OUIs are present */
8124 if (!(hdd_ctx->config->probe_req_ie_bitmap_6 &
8125 VENDOR_SPECIFIC_IE_BITMAP) &&
8126 (strlen(hdd_ctx->config->probe_req_ouis) > 0))
8127 return false;
8128
8129 return true;
8130}
8131
Jeff Johnsonb6909be2017-08-28 12:07:19 -07008132int hdd_parse_probe_req_ouis(struct hdd_context *hdd_ctx)
Rajeev Kumar Sirasanagandlaaec0b082017-06-21 11:59:41 +05308133{
8134 uint32_t *voui = hdd_ctx->config->probe_req_voui;
8135 char *str;
8136 uint8_t *token;
8137 uint32_t oui_indx = 0;
8138 int ret;
8139 uint32_t hex_value;
8140
8141 str = (char *)(hdd_ctx->config->probe_req_ouis);
8142 str[MAX_PRB_REQ_VENDOR_OUI_INI_LEN - 1] = '\0';
8143 hdd_ctx->config->no_of_probe_req_ouis = 0;
8144
8145 if (!strlen(str)) {
8146 hdd_info("NO OUIS to parse");
8147 return 0;
8148 }
8149
8150 token = strsep(&str, " ");
8151 while (token) {
8152 if (strlen(token) != 8)
8153 goto next_token;
8154
8155 ret = kstrtouint(token, 16, &hex_value);
8156 if (ret)
8157 goto next_token;
8158
8159 voui[oui_indx++] = cpu_to_be32(hex_value);
8160 if (oui_indx >= MAX_PROBE_REQ_OUIS)
8161 break;
8162
8163 next_token:
8164 token = strsep(&str, " ");
8165 }
8166
8167 if (!oui_indx)
8168 return -EINVAL;
8169
8170 hdd_ctx->config->no_of_probe_req_ouis = oui_indx;
8171
8172 return 0;
8173}
8174
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008175/**
8176 * hdd_update_nss() - Update the number of spatial streams supported.
8177 * Ensure that nss is either 1 or 2 before calling this.
8178 *
8179 * @hdd_ctx: the pointer to hdd context
8180 * @nss: the number of spatial streams to be updated
8181 *
8182 * This function is used to modify the number of spatial streams
8183 * supported when not in connected state.
8184 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308185 * Return: QDF_STATUS_SUCCESS if nss is correctly updated,
8186 * otherwise QDF_STATUS_E_FAILURE would be returned
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008187 */
Jeff Johnsonb6909be2017-08-28 12:07:19 -07008188QDF_STATUS hdd_update_nss(struct hdd_context *hdd_ctx, uint8_t nss)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008189{
8190 struct hdd_config *hdd_config = hdd_ctx->config;
8191 uint32_t temp = 0;
8192 uint32_t rx_supp_data_rate, tx_supp_data_rate;
8193 bool status = true;
8194 tSirMacHTCapabilityInfo *ht_cap_info;
8195 uint8_t mcs_set[SIZE_OF_SUPPORTED_MCS_SET] = {0};
8196 uint8_t mcs_set_temp[SIZE_OF_SUPPORTED_MCS_SET];
Sandeep Puligilla98917432016-06-10 13:50:28 -07008197 uint32_t val, val32;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008198 uint16_t val16;
8199 uint8_t enable2x2;
8200
8201 if ((nss == 2) && (hdd_ctx->num_rf_chains != 2)) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08008202 hdd_err("No support for 2 spatial streams");
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308203 return QDF_STATUS_E_INVAL;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008204 }
8205
8206 enable2x2 = (nss == 1) ? 0 : 1;
8207
8208 if (hdd_config->enable2x2 == enable2x2) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07008209 hdd_debug("NSS same as requested");
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308210 return QDF_STATUS_SUCCESS;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008211 }
8212
8213 if (true == sme_is_any_session_in_connected_state(hdd_ctx->hHal)) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08008214 hdd_err("Connected sessions present, Do not change NSS");
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308215 return QDF_STATUS_E_INVAL;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008216 }
8217
8218 hdd_config->enable2x2 = enable2x2;
8219
8220 if (!hdd_config->enable2x2) {
8221 /* 1x1 */
Kiran Kumar Lokere666bf852016-05-02 12:23:02 -07008222 rx_supp_data_rate = VHT_RX_HIGHEST_SUPPORTED_DATA_RATE_1_1;
8223 tx_supp_data_rate = VHT_TX_HIGHEST_SUPPORTED_DATA_RATE_1_1;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008224 } else {
8225 /* 2x2 */
Kiran Kumar Lokere666bf852016-05-02 12:23:02 -07008226 rx_supp_data_rate = VHT_RX_HIGHEST_SUPPORTED_DATA_RATE_2_2;
8227 tx_supp_data_rate = VHT_TX_HIGHEST_SUPPORTED_DATA_RATE_2_2;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008228 }
8229
8230 /* Update Rx Highest Long GI data Rate */
8231 if (sme_cfg_set_int(hdd_ctx->hHal,
8232 WNI_CFG_VHT_RX_HIGHEST_SUPPORTED_DATA_RATE,
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308233 rx_supp_data_rate) == QDF_STATUS_E_FAILURE) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008234 status = false;
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08008235 hdd_err("Could not pass on WNI_CFG_VHT_RX_HIGHEST_SUPPORTED_DATA_RATE to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008236 }
8237
8238 /* Update Tx Highest Long GI data Rate */
8239 if (sme_cfg_set_int(hdd_ctx->hHal,
8240 WNI_CFG_VHT_TX_HIGHEST_SUPPORTED_DATA_RATE,
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308241 tx_supp_data_rate) == QDF_STATUS_E_FAILURE) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008242 status = false;
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08008243 hdd_err("Could not pass on WNI_CFG_VHT_TX_HIGHEST_SUPPORTED_DATA_RATE to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008244 }
8245
8246 sme_cfg_get_int(hdd_ctx->hHal, WNI_CFG_HT_CAP_INFO, &temp);
8247 val16 = (uint16_t)temp;
8248 ht_cap_info = (tSirMacHTCapabilityInfo *)&val16;
Sandeep Puligilla98917432016-06-10 13:50:28 -07008249 if (!(hdd_ctx->ht_tx_stbc_supported && hdd_config->enable2x2)) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008250 ht_cap_info->txSTBC = 0;
Sandeep Puligilla98917432016-06-10 13:50:28 -07008251 } else {
8252 sme_cfg_get_int(hdd_ctx->hHal, WNI_CFG_VHT_TXSTBC, &val32);
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07008253 hdd_debug("STBC %d", val32);
Sandeep Puligilla98917432016-06-10 13:50:28 -07008254 ht_cap_info->txSTBC = val32;
8255 }
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008256 temp = val16;
8257 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_HT_CAP_INFO,
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308258 temp) == QDF_STATUS_E_FAILURE) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008259 status = false;
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08008260 hdd_err("Could not pass on WNI_CFG_HT_CAP_INFO to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008261 }
8262
8263 sme_cfg_get_int(hdd_ctx->hHal, WNI_CFG_VHT_BASIC_MCS_SET, &temp);
8264 temp = (temp & 0xFFFC) | hdd_config->vhtRxMCS;
8265 if (hdd_config->enable2x2)
8266 temp = (temp & 0xFFF3) | (hdd_config->vhtRxMCS2x2 << 2);
8267 else
8268 temp |= 0x000C;
8269
8270 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_VHT_BASIC_MCS_SET,
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308271 temp) == QDF_STATUS_E_FAILURE) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008272 status = false;
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08008273 hdd_err("Could not pass on WNI_CFG_VHT_BASIC_MCS_SET to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008274 }
8275
8276 sme_cfg_get_int(hdd_ctx->hHal, WNI_CFG_VHT_RX_MCS_MAP, &temp);
8277 temp = (temp & 0xFFFC) | hdd_config->vhtRxMCS;
8278 if (hdd_config->enable2x2)
8279 temp = (temp & 0xFFF3) | (hdd_config->vhtRxMCS2x2 << 2);
8280 else
8281 temp |= 0x000C;
8282
8283 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_VHT_RX_MCS_MAP,
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308284 temp) == QDF_STATUS_E_FAILURE) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008285 status = false;
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08008286 hdd_err("Could not pass on WNI_CFG_VHT_RX_MCS_MAP to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008287 }
8288
8289 sme_cfg_get_int(hdd_ctx->hHal, WNI_CFG_VHT_TX_MCS_MAP, &temp);
8290 temp = (temp & 0xFFFC) | hdd_config->vhtTxMCS;
8291 if (hdd_config->enable2x2)
8292 temp = (temp & 0xFFF3) | (hdd_config->vhtTxMCS2x2 << 2);
8293 else
8294 temp |= 0x000C;
8295
8296 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_VHT_TX_MCS_MAP,
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308297 temp) == QDF_STATUS_E_FAILURE) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008298 status = false;
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08008299 hdd_err("Could not pass on WNI_CFG_VHT_TX_MCS_MAP to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008300 }
8301
8302#define WLAN_HDD_RX_MCS_ALL_NSTREAM_RATES 0xff
8303 val = SIZE_OF_SUPPORTED_MCS_SET;
8304 sme_cfg_get_str(hdd_ctx->hHal, WNI_CFG_SUPPORTED_MCS_SET,
8305 mcs_set_temp, &val);
8306
8307 mcs_set[0] = mcs_set_temp[0];
8308 if (hdd_config->enable2x2)
8309 for (val = 0; val < nss; val++)
8310 mcs_set[val] = WLAN_HDD_RX_MCS_ALL_NSTREAM_RATES;
8311
8312 if (sme_cfg_set_str(hdd_ctx->hHal, WNI_CFG_SUPPORTED_MCS_SET,
8313 mcs_set,
8314 SIZE_OF_SUPPORTED_MCS_SET) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308315 QDF_STATUS_E_FAILURE) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008316 status = false;
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08008317 hdd_err("Could not pass on MCS SET to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008318 }
8319#undef WLAN_HDD_RX_MCS_ALL_NSTREAM_RATES
8320
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308321 if (QDF_STATUS_SUCCESS != sme_update_nss(hdd_ctx->hHal, nss))
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008322 status = false;
8323
Tushnim Bhattacharyya7e546692017-03-23 18:30:29 -07008324 hdd_set_policy_mgr_user_cfg(hdd_ctx);
8325
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308326 return (status == false) ? QDF_STATUS_E_FAILURE : QDF_STATUS_SUCCESS;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008327}