blob: 2a0bde536b2ff7344e1b4f6a93247bc995250f15 [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 Johnson723234b2017-09-03 08:49:15 -070052cb_notify_set_roam_prefer5_g_hz(struct hdd_context *hdd_ctx, unsigned long notifyId)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080053{
Jeff Johnson723234b2017-09-03 08:49:15 -070054 sme_update_roam_prefer5_g_hz(hdd_ctx->hHal,
55 hdd_ctx->config->nRoamPrefer5GHz);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080056}
57
58static void
Jeff Johnson723234b2017-09-03 08:49:15 -070059cb_notify_set_roam_rssi_diff(struct hdd_context *hdd_ctx, unsigned long notifyId)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080060{
Jeff Johnson723234b2017-09-03 08:49:15 -070061 sme_update_roam_rssi_diff(hdd_ctx->hHal,
62 0, hdd_ctx->config->RoamRssiDiff);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080063}
64
65static void
Jeff Johnson723234b2017-09-03 08:49:15 -070066cb_notify_set_fast_transition_enabled(struct hdd_context *hdd_ctx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080067 unsigned long notifyId)
68{
Jeff Johnson723234b2017-09-03 08:49:15 -070069 sme_update_fast_transition_enabled(hdd_ctx->hHal,
70 hdd_ctx->config->
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080071 isFastTransitionEnabled);
72}
73
74static void
Jeff Johnson723234b2017-09-03 08:49:15 -070075cb_notify_set_roam_intra_band(struct hdd_context *hdd_ctx, unsigned long notifyId)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080076{
Jeff Johnson723234b2017-09-03 08:49:15 -070077 sme_set_roam_intra_band(hdd_ctx->hHal, hdd_ctx->config->nRoamIntraBand);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080078}
79
Jeff Johnson723234b2017-09-03 08:49:15 -070080static void cb_notify_set_wes_mode(struct hdd_context *hdd_ctx,
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -070081 unsigned long notifyId)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080082{
Jeff Johnson723234b2017-09-03 08:49:15 -070083 sme_update_wes_mode(hdd_ctx->hHal,
84 hdd_ctx->config->isWESModeEnabled, 0);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080085}
86
87static void
Jeff Johnson723234b2017-09-03 08:49:15 -070088cb_notify_set_roam_scan_n_probes(struct hdd_context *hdd_ctx, unsigned long notifyId)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080089{
Jeff Johnson723234b2017-09-03 08:49:15 -070090 sme_update_roam_scan_n_probes(hdd_ctx->hHal, 0,
91 hdd_ctx->config->nProbes);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080092}
93
94static void
Jeff Johnson723234b2017-09-03 08:49:15 -070095cb_notify_set_roam_scan_home_away_time(struct hdd_context *hdd_ctx,
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -070096 unsigned long notifyId)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080097{
Jeff Johnson723234b2017-09-03 08:49:15 -070098 sme_update_roam_scan_home_away_time(hdd_ctx->hHal, 0,
99 hdd_ctx->config->nRoamScanHomeAwayTime,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800100 true);
101}
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800102
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800103static void
Jeff Johnson723234b2017-09-03 08:49:15 -0700104notify_is_fast_roam_ini_feature_enabled(struct hdd_context *hdd_ctx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800105 unsigned long notifyId)
106{
Jeff Johnson723234b2017-09-03 08:49:15 -0700107 sme_update_is_fast_roam_ini_feature_enabled(hdd_ctx->hHal, 0,
108 hdd_ctx->config->
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800109 isFastRoamIniFeatureEnabled);
110}
111
112static void
Jeff Johnson723234b2017-09-03 08:49:15 -0700113notify_is_mawc_ini_feature_enabled(struct hdd_context *hdd_ctx,
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -0700114 unsigned long notifyId)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800115{
Jeff Johnson723234b2017-09-03 08:49:15 -0700116 sme_update_is_mawc_ini_feature_enabled(hdd_ctx->hHal,
117 hdd_ctx->config->MAWCEnabled);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800118}
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800119
120#ifdef FEATURE_WLAN_ESE
121static void
Jeff Johnson723234b2017-09-03 08:49:15 -0700122cb_notify_set_ese_feature_enabled(struct hdd_context *hdd_ctx,
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -0700123 unsigned long notifyId)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800124{
Jeff Johnson723234b2017-09-03 08:49:15 -0700125 sme_update_is_ese_feature_enabled(hdd_ctx->hHal, 0,
126 hdd_ctx->config->isEseIniFeatureEnabled);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800127}
128#endif
129
130static void
Jeff Johnson723234b2017-09-03 08:49:15 -0700131cb_notify_set_fw_rssi_monitoring(struct hdd_context *hdd_ctx, unsigned long notifyId)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800132{
Jeff Johnson723234b2017-09-03 08:49:15 -0700133 sme_update_config_fw_rssi_monitoring(hdd_ctx->hHal,
134 hdd_ctx->config->
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800135 fEnableFwRssiMonitoring);
136}
137
Jeff Johnson723234b2017-09-03 08:49:15 -0700138static void cb_notify_set_opportunistic_scan_threshold_diff(struct hdd_context *hdd_ctx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800139 unsigned long notifyId)
140{
Jeff Johnson723234b2017-09-03 08:49:15 -0700141 sme_set_roam_opportunistic_scan_threshold_diff(hdd_ctx->hHal, 0,
142 hdd_ctx->config->
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800143 nOpportunisticThresholdDiff);
144}
145
Jeff Johnson723234b2017-09-03 08:49:15 -0700146static void cb_notify_set_roam_rescan_rssi_diff(struct hdd_context *hdd_ctx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800147 unsigned long notifyId)
148{
Jeff Johnson723234b2017-09-03 08:49:15 -0700149 sme_set_roam_rescan_rssi_diff(hdd_ctx->hHal,
150 0, hdd_ctx->config->nRoamRescanRssiDiff);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800151}
152
153static void
Jeff Johnson723234b2017-09-03 08:49:15 -0700154cb_notify_set_neighbor_lookup_rssi_threshold(struct hdd_context *hdd_ctx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800155 unsigned long notifyId)
156{
Jeff Johnson723234b2017-09-03 08:49:15 -0700157 sme_set_neighbor_lookup_rssi_threshold(hdd_ctx->hHal, 0,
158 hdd_ctx->config->
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800159 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 Johnson723234b2017-09-03 08:49:15 -0700171cb_notify_set_neighbor_scan_period(struct hdd_context *hdd_ctx,
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -0700172 unsigned long notifyId)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800173{
Jeff Johnson723234b2017-09-03 08:49:15 -0700174 sme_set_neighbor_scan_period(hdd_ctx->hHal, 0,
175 hdd_ctx->config->nNeighborScanPeriod);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800176}
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 Johnson723234b2017-09-03 08:49:15 -0700189cb_notify_set_neighbor_scan_min_period(struct hdd_context *hdd_ctx,
Sridhar Selvaraj1b2330c2017-07-21 15:16:42 +0530190 unsigned long notifyId)
191{
Jeff Johnson723234b2017-09-03 08:49:15 -0700192 sme_set_neighbor_scan_min_period(hdd_ctx->hHal, 0,
193 hdd_ctx->config->
Sridhar Selvaraj1b2330c2017-07-21 15:16:42 +0530194 neighbor_scan_min_period);
195}
196
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800197static void
Jeff Johnson723234b2017-09-03 08:49:15 -0700198cb_notify_set_neighbor_results_refresh_period(struct hdd_context *hdd_ctx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800199 unsigned long notifyId)
200{
Jeff Johnson723234b2017-09-03 08:49:15 -0700201 sme_set_neighbor_scan_refresh_period(hdd_ctx->hHal, 0,
202 hdd_ctx->config->
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800203 nNeighborResultsRefreshPeriod);
204}
205
206static void
Jeff Johnson723234b2017-09-03 08:49:15 -0700207cb_notify_set_empty_scan_refresh_period(struct hdd_context *hdd_ctx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800208 unsigned long notifyId)
209{
Jeff Johnson723234b2017-09-03 08:49:15 -0700210 sme_update_empty_scan_refresh_period(hdd_ctx->hHal, 0,
211 hdd_ctx->config->
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800212 nEmptyScanRefreshPeriod);
213}
214
215static void
Jeff Johnson723234b2017-09-03 08:49:15 -0700216cb_notify_set_neighbor_scan_min_chan_time(struct hdd_context *hdd_ctx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800217 unsigned long notifyId)
218{
Jeff Johnson723234b2017-09-03 08:49:15 -0700219 sme_set_neighbor_scan_min_chan_time(hdd_ctx->hHal,
220 hdd_ctx->config->
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800221 nNeighborScanMinChanTime, 0);
222}
223
224static void
Jeff Johnson723234b2017-09-03 08:49:15 -0700225cb_notify_set_neighbor_scan_max_chan_time(struct hdd_context *hdd_ctx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800226 unsigned long notifyId)
227{
Jeff Johnson723234b2017-09-03 08:49:15 -0700228 sme_set_neighbor_scan_max_chan_time(hdd_ctx->hHal, 0,
229 hdd_ctx->config->
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800230 nNeighborScanMaxChanTime);
231}
232
Jeff Johnson723234b2017-09-03 08:49:15 -0700233static void cb_notify_set_roam_bmiss_first_bcnt(struct hdd_context *hdd_ctx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800234 unsigned long notifyId)
235{
Jeff Johnson723234b2017-09-03 08:49:15 -0700236 sme_set_roam_bmiss_first_bcnt(hdd_ctx->hHal,
237 0, hdd_ctx->config->nRoamBmissFirstBcnt);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800238}
239
Jeff Johnson723234b2017-09-03 08:49:15 -0700240static void cb_notify_set_roam_bmiss_final_bcnt(struct hdd_context *hdd_ctx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800241 unsigned long notifyId)
242{
Jeff Johnson723234b2017-09-03 08:49:15 -0700243 sme_set_roam_bmiss_final_bcnt(hdd_ctx->hHal, 0,
244 hdd_ctx->config->nRoamBmissFinalBcnt);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800245}
246
Jeff Johnson723234b2017-09-03 08:49:15 -0700247static void cb_notify_set_roam_beacon_rssi_weight(struct hdd_context *hdd_ctx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800248 unsigned long notifyId)
249{
Jeff Johnson723234b2017-09-03 08:49:15 -0700250 sme_set_roam_beacon_rssi_weight(hdd_ctx->hHal, 0,
251 hdd_ctx->config->nRoamBeaconRssiWeight);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800252}
253
254static void
Jeff Johnson723234b2017-09-03 08:49:15 -0700255cb_notify_set_dfs_scan_mode(struct hdd_context *hdd_ctx, unsigned long notifyId)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800256{
Jeff Johnson723234b2017-09-03 08:49:15 -0700257 sme_update_dfs_scan_mode(hdd_ctx->hHal, 0,
258 hdd_ctx->config->allowDFSChannelRoam);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800259}
260
Jeff Johnson723234b2017-09-03 08:49:15 -0700261static void cb_notify_set_enable_ssr(struct hdd_context *hdd_ctx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800262 unsigned long notifyId)
263{
Jeff Johnson723234b2017-09-03 08:49:15 -0700264 sme_update_enable_ssr(hdd_ctx->hHal, hdd_ctx->config->enableSSR);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800265}
266
Jeff Johnson723234b2017-09-03 08:49:15 -0700267static void cb_notify_set_g_sap_preferred_chan_location(struct hdd_context *hdd_ctx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800268 unsigned long notifyId)
269{
Jeff Johnson723234b2017-09-03 08:49:15 -0700270 wlansap_set_dfs_preferred_channel_location(hdd_ctx->hHal,
271 hdd_ctx->config->
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800272 gSapPreferredChanLocation);
273}
Jeff Johnson723234b2017-09-03 08:49:15 -0700274static void ch_notify_set_g_disable_dfs_japan_w53(struct hdd_context *hdd_ctx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800275 unsigned long notifyId)
276{
Jeff Johnson723234b2017-09-03 08:49:15 -0700277 wlansap_set_dfs_restrict_japan_w53(hdd_ctx->hHal,
278 hdd_ctx->config->
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800279 gDisableDfsJapanW53);
280}
281static void
Jeff Johnson723234b2017-09-03 08:49:15 -0700282cb_notify_update_roam_scan_offload_enabled(struct hdd_context *hdd_ctx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800283 unsigned long notifyId)
284{
Jeff Johnson723234b2017-09-03 08:49:15 -0700285 sme_update_roam_scan_offload_enabled(hdd_ctx->hHal,
286 hdd_ctx->config->
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800287 isRoamOffloadScanEnabled);
Jeff Johnson723234b2017-09-03 08:49:15 -0700288 if (0 == hdd_ctx->config->isRoamOffloadScanEnabled) {
289 hdd_ctx->config->bFastRoamInConIniFeatureEnabled = 0;
290 sme_update_enable_fast_roam_in_concurrency(hdd_ctx->hHal,
291 hdd_ctx->config->
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800292 bFastRoamInConIniFeatureEnabled);
293 }
294}
295
296static void
Jeff Johnson723234b2017-09-03 08:49:15 -0700297cb_notify_set_enable_fast_roam_in_concurrency(struct hdd_context *hdd_ctx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800298 unsigned long notifyId)
299{
Jeff Johnson723234b2017-09-03 08:49:15 -0700300 sme_update_enable_fast_roam_in_concurrency(hdd_ctx->hHal,
301 hdd_ctx->config->
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800302 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
Ganesh Kondabattini408fb8d2017-08-08 22:00:20 +0530646 REG_VARIABLE(CFG_ENABLE_SAP_MANDATORY_CHAN_LIST, WLAN_PARAM_Integer,
647 struct hdd_config, enable_sap_mandatory_chan_list,
648 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
649 CFG_ENABLE_SAP_MANDATORY_CHAN_LIST_DEFAULT,
650 CFG_ENABLE_SAP_MANDATORY_CHAN_LIST_MIN,
651 CFG_ENABLE_SAP_MANDATORY_CHAN_LIST_MAX),
652
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800653 REG_VARIABLE(CFG_AP_KEEP_ALIVE_PERIOD_NAME, WLAN_PARAM_Integer,
654 struct hdd_config, apKeepAlivePeriod,
655 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
656 CFG_AP_KEEP_ALIVE_PERIOD_DEFAULT,
657 CFG_AP_KEEP_ALIVE_PERIOD_MIN,
658 CFG_AP_KEEP_ALIVE_PERIOD_MAX),
659
660 REG_VARIABLE(CFG_GO_KEEP_ALIVE_PERIOD_NAME, WLAN_PARAM_Integer,
661 struct hdd_config, goKeepAlivePeriod,
662 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
663 CFG_GO_KEEP_ALIVE_PERIOD_DEFAULT,
664 CFG_GO_KEEP_ALIVE_PERIOD_MIN,
665 CFG_GO_KEEP_ALIVE_PERIOD_MAX),
666
667 REG_VARIABLE(CFG_AP_LINK_MONITOR_PERIOD_NAME, WLAN_PARAM_Integer,
668 struct hdd_config, apLinkMonitorPeriod,
669 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
670 CFG_AP_LINK_MONITOR_PERIOD_DEFAULT,
671 CFG_AP_LINK_MONITOR_PERIOD_MIN,
672 CFG_AP_LINK_MONITOR_PERIOD_MAX),
673
674 REG_VARIABLE(CFG_GO_LINK_MONITOR_PERIOD_NAME, WLAN_PARAM_Integer,
675 struct hdd_config, goLinkMonitorPeriod,
676 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
677 CFG_GO_LINK_MONITOR_PERIOD_DEFAULT,
678 CFG_GO_LINK_MONITOR_PERIOD_MIN,
679 CFG_GO_LINK_MONITOR_PERIOD_MAX),
680
681 REG_VARIABLE(CFG_DISABLE_PACKET_FILTER, WLAN_PARAM_Integer,
682 struct hdd_config, disablePacketFilter,
683 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
684 CFG_DISABLE_PACKET_FILTER_DEFAULT,
685 CFG_DISABLE_PACKET_FILTER_MIN,
686 CFG_DISABLE_PACKET_FILTER_MAX),
687
688 REG_VARIABLE(CFG_BEACON_INTERVAL_NAME, WLAN_PARAM_Integer,
689 struct hdd_config, nBeaconInterval,
690 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
691 CFG_BEACON_INTERVAL_DEFAULT,
692 CFG_BEACON_INTERVAL_MIN,
693 CFG_BEACON_INTERVAL_MAX),
694
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800695 REG_VARIABLE(CFG_VCC_RSSI_TRIGGER_NAME, WLAN_PARAM_Integer,
696 struct hdd_config, nVccRssiTrigger,
697 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
698 CFG_VCC_RSSI_TRIGGER_DEFAULT,
699 CFG_VCC_RSSI_TRIGGER_MIN,
700 CFG_VCC_RSSI_TRIGGER_MAX),
701
702 REG_VARIABLE(CFG_VCC_UL_MAC_LOSS_THRESH_NAME, WLAN_PARAM_Integer,
703 struct hdd_config, nVccUlMacLossThreshold,
704 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
705 CFG_VCC_UL_MAC_LOSS_THRESH_DEFAULT,
706 CFG_VCC_UL_MAC_LOSS_THRESH_MIN,
707 CFG_VCC_UL_MAC_LOSS_THRESH_MAX),
708
709 REG_VARIABLE(CFG_PASSIVE_MAX_CHANNEL_TIME_NAME, WLAN_PARAM_Integer,
710 struct hdd_config, nPassiveMaxChnTime,
711 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
712 CFG_PASSIVE_MAX_CHANNEL_TIME_DEFAULT,
713 CFG_PASSIVE_MAX_CHANNEL_TIME_MIN,
714 CFG_PASSIVE_MAX_CHANNEL_TIME_MAX),
715
716 REG_VARIABLE(CFG_PASSIVE_MIN_CHANNEL_TIME_NAME, WLAN_PARAM_Integer,
717 struct hdd_config, nPassiveMinChnTime,
718 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
719 CFG_PASSIVE_MIN_CHANNEL_TIME_DEFAULT,
720 CFG_PASSIVE_MIN_CHANNEL_TIME_MIN,
721 CFG_PASSIVE_MIN_CHANNEL_TIME_MAX),
722
723 REG_VARIABLE(CFG_ACTIVE_MAX_CHANNEL_TIME_NAME, WLAN_PARAM_Integer,
724 struct hdd_config, nActiveMaxChnTime,
725 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
726 CFG_ACTIVE_MAX_CHANNEL_TIME_DEFAULT,
727 CFG_ACTIVE_MAX_CHANNEL_TIME_MIN,
728 CFG_ACTIVE_MAX_CHANNEL_TIME_MAX),
729
730 REG_VARIABLE(CFG_ACTIVE_MIN_CHANNEL_TIME_NAME, WLAN_PARAM_Integer,
731 struct hdd_config, nActiveMinChnTime,
732 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
733 CFG_ACTIVE_MIN_CHANNEL_TIME_DEFAULT,
734 CFG_ACTIVE_MIN_CHANNEL_TIME_MIN,
735 CFG_ACTIVE_MIN_CHANNEL_TIME_MAX),
736
737 REG_VARIABLE(CFG_RETRY_LIMIT_ZERO_NAME, WLAN_PARAM_Integer,
738 struct hdd_config, retryLimitZero,
739 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
740 CFG_RETRY_LIMIT_ZERO_DEFAULT,
741 CFG_RETRY_LIMIT_ZERO_MIN,
742 CFG_RETRY_LIMIT_ZERO_MAX),
743
744 REG_VARIABLE(CFG_RETRY_LIMIT_ONE_NAME, WLAN_PARAM_Integer,
745 struct hdd_config, retryLimitOne,
746 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
747 CFG_RETRY_LIMIT_ONE_DEFAULT,
748 CFG_RETRY_LIMIT_ONE_MIN,
749 CFG_RETRY_LIMIT_ONE_MAX),
750
751 REG_VARIABLE(CFG_RETRY_LIMIT_TWO_NAME, WLAN_PARAM_Integer,
752 struct hdd_config, retryLimitTwo,
753 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
754 CFG_RETRY_LIMIT_TWO_DEFAULT,
755 CFG_RETRY_LIMIT_TWO_MIN,
756 CFG_RETRY_LIMIT_TWO_MAX),
757
758#ifdef WLAN_AP_STA_CONCURRENCY
759 REG_VARIABLE(CFG_PASSIVE_MAX_CHANNEL_TIME_CONC_NAME, WLAN_PARAM_Integer,
760 struct hdd_config, nPassiveMaxChnTimeConc,
761 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
762 CFG_PASSIVE_MAX_CHANNEL_TIME_CONC_DEFAULT,
763 CFG_PASSIVE_MAX_CHANNEL_TIME_CONC_MIN,
764 CFG_PASSIVE_MAX_CHANNEL_TIME_CONC_MAX),
765
766 REG_VARIABLE(CFG_PASSIVE_MIN_CHANNEL_TIME_CONC_NAME, WLAN_PARAM_Integer,
767 struct hdd_config, nPassiveMinChnTimeConc,
768 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
769 CFG_PASSIVE_MIN_CHANNEL_TIME_CONC_DEFAULT,
770 CFG_PASSIVE_MIN_CHANNEL_TIME_CONC_MIN,
771 CFG_PASSIVE_MIN_CHANNEL_TIME_CONC_MAX),
772
773 REG_VARIABLE(CFG_ACTIVE_MAX_CHANNEL_TIME_CONC_NAME, WLAN_PARAM_Integer,
774 struct hdd_config, nActiveMaxChnTimeConc,
775 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
776 CFG_ACTIVE_MAX_CHANNEL_TIME_CONC_DEFAULT,
777 CFG_ACTIVE_MAX_CHANNEL_TIME_CONC_MIN,
778 CFG_ACTIVE_MAX_CHANNEL_TIME_CONC_MAX),
779
780 REG_VARIABLE(CFG_ACTIVE_MIN_CHANNEL_TIME_CONC_NAME, WLAN_PARAM_Integer,
781 struct hdd_config, nActiveMinChnTimeConc,
782 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
783 CFG_ACTIVE_MIN_CHANNEL_TIME_CONC_DEFAULT,
784 CFG_ACTIVE_MIN_CHANNEL_TIME_CONC_MIN,
785 CFG_ACTIVE_MIN_CHANNEL_TIME_CONC_MAX),
786
787 REG_VARIABLE(CFG_REST_TIME_CONC_NAME, WLAN_PARAM_Integer,
788 struct hdd_config, nRestTimeConc,
789 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
790 CFG_REST_TIME_CONC_DEFAULT,
791 CFG_REST_TIME_CONC_MIN,
792 CFG_REST_TIME_CONC_MAX),
793
Agrawal Ashish17bb3902016-05-05 13:29:40 +0530794 REG_VARIABLE(CFG_MIN_REST_TIME_NAME, WLAN_PARAM_Integer,
795 struct hdd_config, min_rest_time_conc,
796 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
797 CFG_MIN_REST_TIME_DEFAULT,
798 CFG_MIN_REST_TIME_MIN,
799 CFG_MIN_REST_TIME_MAX),
800
Jeff Johnson03294f12016-12-09 17:10:24 -0800801 REG_VARIABLE(CFG_IDLE_TIME_NAME, WLAN_PARAM_Integer,
Agrawal Ashish17bb3902016-05-05 13:29:40 +0530802 struct hdd_config, idle_time_conc,
803 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
804 CFG_IDLE_TIME_DEFAULT,
805 CFG_IDLE_TIME_MIN,
Jeff Johnson03294f12016-12-09 17:10:24 -0800806 CFG_IDLE_TIME_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800807#endif
808
809 REG_VARIABLE(CFG_MAX_PS_POLL_NAME, WLAN_PARAM_Integer,
810 struct hdd_config, nMaxPsPoll,
811 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
812 CFG_MAX_PS_POLL_DEFAULT,
813 CFG_MAX_PS_POLL_MIN,
814 CFG_MAX_PS_POLL_MAX),
815
816 REG_VARIABLE(CFG_MAX_TX_POWER_NAME, WLAN_PARAM_Integer,
817 struct hdd_config, nTxPowerCap,
818 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
819 CFG_MAX_TX_POWER_DEFAULT,
820 CFG_MAX_TX_POWER_MIN,
821 CFG_MAX_TX_POWER_MAX),
822
Padma, Santhosh Kumar29df3622016-08-16 19:15:16 +0530823 REG_VARIABLE(CFG_TX_POWER_CTRL_NAME, WLAN_PARAM_Integer,
824 struct hdd_config, allow_tpc_from_ap,
825 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
826 CFG_TX_POWER_CTRL_DEFAULT,
827 CFG_TX_POWER_CTRL_MIN,
828 CFG_TX_POWER_CTRL_MAX),
829
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800830 REG_VARIABLE(CFG_LOW_GAIN_OVERRIDE_NAME, WLAN_PARAM_Integer,
831 struct hdd_config, fIsLowGainOverride,
832 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
833 CFG_LOW_GAIN_OVERRIDE_DEFAULT,
834 CFG_LOW_GAIN_OVERRIDE_MIN,
835 CFG_LOW_GAIN_OVERRIDE_MAX),
836
837 REG_VARIABLE(CFG_RSSI_FILTER_PERIOD_NAME, WLAN_PARAM_Integer,
838 struct hdd_config, nRssiFilterPeriod,
839 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
840 CFG_RSSI_FILTER_PERIOD_DEFAULT,
841 CFG_RSSI_FILTER_PERIOD_MIN,
842 CFG_RSSI_FILTER_PERIOD_MAX),
843
844 REG_VARIABLE(CFG_IGNORE_DTIM_NAME, WLAN_PARAM_Integer,
845 struct hdd_config, fIgnoreDtim,
846 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
847 CFG_IGNORE_DTIM_DEFAULT,
848 CFG_IGNORE_DTIM_MIN,
849 CFG_IGNORE_DTIM_MAX),
850
851 REG_VARIABLE(CFG_MAX_LI_MODULATED_DTIM_NAME, WLAN_PARAM_Integer,
852 struct hdd_config, fMaxLIModulatedDTIM,
853 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
854 CFG_MAX_LI_MODULATED_DTIM_DEFAULT,
855 CFG_MAX_LI_MODULATED_DTIM_MIN,
856 CFG_MAX_LI_MODULATED_DTIM_MAX),
857
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800858 REG_VARIABLE(CFG_FW_HEART_BEAT_MONITORING_NAME, WLAN_PARAM_Integer,
859 struct hdd_config, fEnableFwHeartBeatMonitoring,
860 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
861 CFG_FW_HEART_BEAT_MONITORING_DEFAULT,
862 CFG_FW_HEART_BEAT_MONITORING_MIN,
863 CFG_FW_HEART_BEAT_MONITORING_MAX),
864
865 REG_VARIABLE(CFG_FW_BEACON_FILTERING_NAME, WLAN_PARAM_Integer,
866 struct hdd_config, fEnableFwBeaconFiltering,
867 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
868 CFG_FW_BEACON_FILTERING_DEFAULT,
869 CFG_FW_BEACON_FILTERING_MIN,
870 CFG_FW_BEACON_FILTERING_MAX),
871
872 REG_DYNAMIC_VARIABLE(CFG_FW_RSSI_MONITORING_NAME, WLAN_PARAM_Integer,
873 struct hdd_config, fEnableFwRssiMonitoring,
874 VAR_FLAGS_OPTIONAL |
875 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
876 CFG_FW_RSSI_MONITORING_DEFAULT,
877 CFG_FW_RSSI_MONITORING_MIN,
878 CFG_FW_RSSI_MONITORING_MAX,
879 cb_notify_set_fw_rssi_monitoring, 0),
880
881 REG_VARIABLE(CFG_FW_MCC_RTS_CTS_PROT_NAME, WLAN_PARAM_Integer,
882 struct hdd_config, mcc_rts_cts_prot_enable,
883 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
884 CFG_FW_MCC_RTS_CTS_PROT_DEFAULT,
885 CFG_FW_MCC_RTS_CTS_PROT_MIN,
886 CFG_FW_MCC_RTS_CTS_PROT_MAX),
887
888 REG_VARIABLE(CFG_FW_MCC_BCAST_PROB_RESP_NAME, WLAN_PARAM_Integer,
889 struct hdd_config, mcc_bcast_prob_resp_enable,
890 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
891 CFG_FW_MCC_BCAST_PROB_RESP_DEFAULT,
892 CFG_FW_MCC_BCAST_PROB_RESP_MIN,
893 CFG_FW_MCC_BCAST_PROB_RESP_MAX),
894
895 REG_VARIABLE(CFG_DATA_INACTIVITY_TIMEOUT_NAME, WLAN_PARAM_Integer,
896 struct hdd_config, nDataInactivityTimeout,
897 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
898 CFG_DATA_INACTIVITY_TIMEOUT_DEFAULT,
899 CFG_DATA_INACTIVITY_TIMEOUT_MIN,
900 CFG_DATA_INACTIVITY_TIMEOUT_MAX),
901
Mukul Sharmaed92f2f2017-04-20 00:06:28 +0530902 REG_VARIABLE(CFG_WOW_DATA_INACTIVITY_TIMEOUT_NAME, WLAN_PARAM_Integer,
903 struct hdd_config, wow_data_inactivity_timeout,
904 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
905 CFG_WOW_DATA_INACTIVITY_TIMEOUT_DEFAULT,
906 CFG_WOW_DATA_INACTIVITY_TIMEOUT_MIN,
907 CFG_WOW_DATA_INACTIVITY_TIMEOUT_MAX),
908
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800909 REG_VARIABLE(CFG_QOS_WMM_MODE_NAME, WLAN_PARAM_Integer,
910 struct hdd_config, WmmMode,
911 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
912 CFG_QOS_WMM_MODE_DEFAULT,
913 CFG_QOS_WMM_MODE_MIN,
914 CFG_QOS_WMM_MODE_MAX),
915
916 REG_VARIABLE(CFG_QOS_WMM_80211E_ENABLED_NAME, WLAN_PARAM_Integer,
917 struct hdd_config, b80211eIsEnabled,
918 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
919 CFG_QOS_WMM_80211E_ENABLED_DEFAULT,
920 CFG_QOS_WMM_80211E_ENABLED_MIN,
921 CFG_QOS_WMM_80211E_ENABLED_MAX),
922
923 REG_VARIABLE(CFG_QOS_WMM_UAPSD_MASK_NAME, WLAN_PARAM_HexInteger,
924 struct hdd_config, UapsdMask,
925 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
926 CFG_QOS_WMM_UAPSD_MASK_DEFAULT,
927 CFG_QOS_WMM_UAPSD_MASK_MIN,
928 CFG_QOS_WMM_UAPSD_MASK_MAX),
929
930 REG_VARIABLE(CFG_QOS_WMM_INFRA_UAPSD_VO_SRV_INTV_NAME,
931 WLAN_PARAM_Integer,
932 struct hdd_config, InfraUapsdVoSrvIntv,
933 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
934 CFG_QOS_WMM_INFRA_UAPSD_VO_SRV_INTV_DEFAULT,
935 CFG_QOS_WMM_INFRA_UAPSD_VO_SRV_INTV_MIN,
936 CFG_QOS_WMM_INFRA_UAPSD_VO_SRV_INTV_MAX),
937
938 REG_VARIABLE(CFG_QOS_WMM_INFRA_UAPSD_VO_SUS_INTV_NAME,
939 WLAN_PARAM_Integer,
940 struct hdd_config, InfraUapsdVoSuspIntv,
941 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
942 CFG_QOS_WMM_INFRA_UAPSD_VO_SUS_INTV_DEFAULT,
943 CFG_QOS_WMM_INFRA_UAPSD_VO_SUS_INTV_MIN,
944 CFG_QOS_WMM_INFRA_UAPSD_VO_SUS_INTV_MAX),
945
946 REG_VARIABLE(CFG_QOS_WMM_INFRA_UAPSD_VI_SRV_INTV_NAME,
947 WLAN_PARAM_Integer,
948 struct hdd_config, InfraUapsdViSrvIntv,
949 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
950 CFG_QOS_WMM_INFRA_UAPSD_VI_SRV_INTV_DEFAULT,
951 CFG_QOS_WMM_INFRA_UAPSD_VI_SRV_INTV_MIN,
952 CFG_QOS_WMM_INFRA_UAPSD_VI_SRV_INTV_MAX),
953
954 REG_VARIABLE(CFG_QOS_WMM_INFRA_UAPSD_VI_SUS_INTV_NAME,
955 WLAN_PARAM_Integer,
956 struct hdd_config, InfraUapsdViSuspIntv,
957 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
958 CFG_QOS_WMM_INFRA_UAPSD_VI_SUS_INTV_DEFAULT,
959 CFG_QOS_WMM_INFRA_UAPSD_VI_SUS_INTV_MIN,
960 CFG_QOS_WMM_INFRA_UAPSD_VI_SUS_INTV_MAX),
961
962 REG_VARIABLE(CFG_QOS_WMM_INFRA_UAPSD_BE_SRV_INTV_NAME,
963 WLAN_PARAM_Integer,
964 struct hdd_config, InfraUapsdBeSrvIntv,
965 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
966 CFG_QOS_WMM_INFRA_UAPSD_BE_SRV_INTV_DEFAULT,
967 CFG_QOS_WMM_INFRA_UAPSD_BE_SRV_INTV_MIN,
968 CFG_QOS_WMM_INFRA_UAPSD_BE_SRV_INTV_MAX),
969
970 REG_VARIABLE(CFG_QOS_WMM_INFRA_UAPSD_BE_SUS_INTV_NAME,
971 WLAN_PARAM_Integer,
972 struct hdd_config, InfraUapsdBeSuspIntv,
973 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
974 CFG_QOS_WMM_INFRA_UAPSD_BE_SUS_INTV_DEFAULT,
975 CFG_QOS_WMM_INFRA_UAPSD_BE_SUS_INTV_MIN,
976 CFG_QOS_WMM_INFRA_UAPSD_BE_SUS_INTV_MAX),
977
978 REG_VARIABLE(CFG_QOS_WMM_INFRA_UAPSD_BK_SRV_INTV_NAME,
979 WLAN_PARAM_Integer,
980 struct hdd_config, InfraUapsdBkSrvIntv,
981 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
982 CFG_QOS_WMM_INFRA_UAPSD_BK_SRV_INTV_DEFAULT,
983 CFG_QOS_WMM_INFRA_UAPSD_BK_SRV_INTV_MIN,
984 CFG_QOS_WMM_INFRA_UAPSD_BK_SRV_INTV_MAX),
985
986 REG_VARIABLE(CFG_QOS_WMM_INFRA_UAPSD_BK_SUS_INTV_NAME,
987 WLAN_PARAM_Integer,
988 struct hdd_config, InfraUapsdBkSuspIntv,
989 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
990 CFG_QOS_WMM_INFRA_UAPSD_BK_SUS_INTV_DEFAULT,
991 CFG_QOS_WMM_INFRA_UAPSD_BK_SUS_INTV_MIN,
992 CFG_QOS_WMM_INFRA_UAPSD_BK_SUS_INTV_MAX),
993
994#ifdef FEATURE_WLAN_ESE
995 REG_VARIABLE(CFG_QOS_WMM_INFRA_INACTIVITY_INTERVAL_NAME,
996 WLAN_PARAM_Integer,
997 struct hdd_config, InfraInactivityInterval,
998 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
999 CFG_QOS_WMM_INFRA_INACTIVITY_INTERVAL_DEFAULT,
1000 CFG_QOS_WMM_INFRA_INACTIVITY_INTERVAL_MIN,
1001 CFG_QOS_WMM_INFRA_INACTIVITY_INTERVAL_MAX),
1002
1003 REG_DYNAMIC_VARIABLE(CFG_ESE_FEATURE_ENABLED_NAME, WLAN_PARAM_Integer,
1004 struct hdd_config, isEseIniFeatureEnabled,
1005 VAR_FLAGS_OPTIONAL |
1006 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1007 CFG_ESE_FEATURE_ENABLED_DEFAULT,
1008 CFG_ESE_FEATURE_ENABLED_MIN,
1009 CFG_ESE_FEATURE_ENABLED_MAX,
1010 cb_notify_set_ese_feature_enabled, 0),
1011#endif /* FEATURE_WLAN_ESE */
1012
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001013 /* flag to turn ON/OFF Legacy Fast Roaming */
1014 REG_DYNAMIC_VARIABLE(CFG_LFR_FEATURE_ENABLED_NAME, WLAN_PARAM_Integer,
1015 struct hdd_config, isFastRoamIniFeatureEnabled,
1016 VAR_FLAGS_OPTIONAL |
1017 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1018 CFG_LFR_FEATURE_ENABLED_DEFAULT,
1019 CFG_LFR_FEATURE_ENABLED_MIN,
1020 CFG_LFR_FEATURE_ENABLED_MAX,
1021 notify_is_fast_roam_ini_feature_enabled, 0),
1022
1023 /* flag to turn ON/OFF Motion assistance for Legacy Fast Roaming */
1024 REG_DYNAMIC_VARIABLE(CFG_LFR_MAWC_FEATURE_ENABLED_NAME,
1025 WLAN_PARAM_Integer,
1026 struct hdd_config, MAWCEnabled,
1027 VAR_FLAGS_OPTIONAL |
1028 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1029 CFG_LFR_MAWC_FEATURE_ENABLED_DEFAULT,
1030 CFG_LFR_MAWC_FEATURE_ENABLED_MIN,
1031 CFG_LFR_MAWC_FEATURE_ENABLED_MAX,
1032 notify_is_mawc_ini_feature_enabled, 0),
1033
Varun Reddy Yeturu061d4d62017-07-20 09:39:32 -07001034 REG_VARIABLE(CFG_MAWC_ROAM_ENABLED_NAME, WLAN_PARAM_Integer,
1035 struct hdd_config, mawc_roam_enabled,
1036 VAR_FLAGS_OPTIONAL |
1037 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1038 CFG_MAWC_ROAM_ENABLED_DEFAULT,
1039 CFG_MAWC_ROAM_ENABLED_MIN,
1040 CFG_MAWC_ROAM_ENABLED_MAX),
1041
1042 REG_VARIABLE(CFG_MAWC_ROAM_TRAFFIC_THRESHOLD_NAME, WLAN_PARAM_Integer,
1043 struct hdd_config, mawc_roam_traffic_threshold,
1044 VAR_FLAGS_OPTIONAL |
1045 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1046 CFG_MAWC_ROAM_TRAFFIC_THRESHOLD_DEFAULT,
1047 CFG_MAWC_ROAM_TRAFFIC_THRESHOLD_MIN,
1048 CFG_MAWC_ROAM_TRAFFIC_THRESHOLD_MAX),
1049
1050 REG_VARIABLE(CFG_MAWC_ROAM_AP_RSSI_THRESHOLD_NAME,
1051 WLAN_PARAM_SignedInteger, struct hdd_config,
1052 mawc_roam_ap_rssi_threshold, VAR_FLAGS_OPTIONAL |
1053 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1054 CFG_MAWC_ROAM_AP_RSSI_THRESHOLD_DEFAULT,
1055 CFG_MAWC_ROAM_AP_RSSI_THRESHOLD_MIN,
1056 CFG_MAWC_ROAM_AP_RSSI_THRESHOLD_MAX),
1057
1058 REG_VARIABLE(CFG_MAWC_ROAM_RSSI_HIGH_ADJUST_NAME, WLAN_PARAM_Integer,
1059 struct hdd_config, mawc_roam_rssi_high_adjust,
1060 VAR_FLAGS_OPTIONAL |
1061 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1062 CFG_MAWC_ROAM_RSSI_HIGH_ADJUST_DEFAULT,
1063 CFG_MAWC_ROAM_RSSI_HIGH_ADJUST_MIN,
1064 CFG_MAWC_ROAM_RSSI_HIGH_ADJUST_MAX),
1065
1066 REG_VARIABLE(CFG_MAWC_ROAM_RSSI_LOW_ADJUST_NAME, WLAN_PARAM_Integer,
1067 struct hdd_config, mawc_roam_rssi_low_adjust,
1068 VAR_FLAGS_OPTIONAL |
1069 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1070 CFG_MAWC_ROAM_RSSI_LOW_ADJUST_DEFAULT,
1071 CFG_MAWC_ROAM_RSSI_LOW_ADJUST_MIN,
1072 CFG_MAWC_ROAM_RSSI_LOW_ADJUST_MAX),
1073
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001074 /* flag to turn ON/OFF 11r and ESE FastTransition */
1075 REG_DYNAMIC_VARIABLE(CFG_FAST_TRANSITION_ENABLED_NAME,
1076 WLAN_PARAM_Integer,
1077 struct hdd_config, isFastTransitionEnabled,
1078 VAR_FLAGS_OPTIONAL |
1079 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1080 CFG_FAST_TRANSITION_ENABLED_NAME_DEFAULT,
1081 CFG_FAST_TRANSITION_ENABLED_NAME_MIN,
1082 CFG_FAST_TRANSITION_ENABLED_NAME_MAX,
1083 cb_notify_set_fast_transition_enabled, 0),
1084
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07001085 /* Variable to specify the delta/difference between the
1086 * RSSI of current AP and roamable AP while roaming
Jeff Johnson78d88a82017-01-12 09:50:54 -08001087 */
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001088 REG_DYNAMIC_VARIABLE(CFG_ROAM_RSSI_DIFF_NAME, WLAN_PARAM_Integer,
1089 struct hdd_config, RoamRssiDiff,
1090 VAR_FLAGS_OPTIONAL |
1091 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1092 CFG_ROAM_RSSI_DIFF_DEFAULT,
1093 CFG_ROAM_RSSI_DIFF_MIN,
1094 CFG_ROAM_RSSI_DIFF_MAX,
1095 cb_notify_set_roam_rssi_diff, 0),
1096
1097 REG_DYNAMIC_VARIABLE(CFG_ENABLE_WES_MODE_NAME, WLAN_PARAM_Integer,
1098 struct hdd_config, isWESModeEnabled,
1099 VAR_FLAGS_OPTIONAL |
1100 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1101 CFG_ENABLE_WES_MODE_NAME_DEFAULT,
1102 CFG_ENABLE_WES_MODE_NAME_MIN,
1103 CFG_ENABLE_WES_MODE_NAME_MAX,
1104 cb_notify_set_wes_mode, 0),
Deepak Dhamdhere828f1892017-02-09 11:51:19 -08001105 REG_VARIABLE(CFG_PMKID_MODES_NAME, WLAN_PARAM_Integer,
1106 struct hdd_config, pmkid_modes,
Deepak Dhamdheref2a7d8b2016-08-19 16:17:38 -07001107 VAR_FLAGS_OPTIONAL |
1108 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
Deepak Dhamdhere828f1892017-02-09 11:51:19 -08001109 CFG_PMKID_MODES_DEFAULT,
1110 CFG_PMKID_MODES_MIN,
1111 CFG_PMKID_MODES_MAX),
1112
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001113 REG_DYNAMIC_VARIABLE(CFG_ROAM_SCAN_OFFLOAD_ENABLED, WLAN_PARAM_Integer,
1114 struct hdd_config, isRoamOffloadScanEnabled,
1115 VAR_FLAGS_OPTIONAL |
1116 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1117 CFG_ROAM_SCAN_OFFLOAD_ENABLED_DEFAULT,
1118 CFG_ROAM_SCAN_OFFLOAD_ENABLED_MIN,
1119 CFG_ROAM_SCAN_OFFLOAD_ENABLED_MAX,
1120 cb_notify_update_roam_scan_offload_enabled, 0),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001121
1122 REG_VARIABLE(CFG_QOS_WMM_INFRA_DIR_AC_VO_NAME, WLAN_PARAM_Integer,
1123 struct hdd_config, InfraDirAcVo,
1124 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1125 CFG_QOS_WMM_INFRA_DIR_AC_VO_DEFAULT,
1126 CFG_QOS_WMM_INFRA_DIR_AC_VO_MIN,
1127 CFG_QOS_WMM_INFRA_DIR_AC_VO_MAX),
1128
1129 REG_VARIABLE(CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VO_NAME,
1130 WLAN_PARAM_HexInteger,
1131 struct hdd_config, InfraNomMsduSizeAcVo,
1132 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1133 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VO_DEFAULT,
1134 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VO_MIN,
1135 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VO_MAX),
1136
1137 REG_VARIABLE(CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VO_NAME,
1138 WLAN_PARAM_HexInteger,
1139 struct hdd_config, InfraMeanDataRateAcVo,
1140 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1141 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VO_DEFAULT,
1142 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VO_MIN,
1143 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VO_MAX),
1144
1145 REG_VARIABLE(CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VO_NAME,
1146 WLAN_PARAM_HexInteger,
1147 struct hdd_config, InfraMinPhyRateAcVo,
1148 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1149 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VO_DEFAULT,
1150 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VO_MIN,
1151 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VO_MAX),
1152
1153 REG_VARIABLE(CFG_QOS_WMM_INFRA_SBA_AC_VO_NAME, WLAN_PARAM_HexInteger,
1154 struct hdd_config, InfraSbaAcVo,
1155 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1156 CFG_QOS_WMM_INFRA_SBA_AC_VO_DEFAULT,
1157 CFG_QOS_WMM_INFRA_SBA_AC_VO_MIN,
1158 CFG_QOS_WMM_INFRA_SBA_AC_VO_MAX),
1159
1160 REG_VARIABLE(CFG_QOS_WMM_INFRA_DIR_AC_VI_NAME, WLAN_PARAM_Integer,
1161 struct hdd_config, InfraDirAcVi,
1162 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1163 CFG_QOS_WMM_INFRA_DIR_AC_VI_DEFAULT,
1164 CFG_QOS_WMM_INFRA_DIR_AC_VI_MIN,
1165 CFG_QOS_WMM_INFRA_DIR_AC_VI_MAX),
1166
1167 REG_VARIABLE(CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VI_NAME,
1168 WLAN_PARAM_HexInteger,
1169 struct hdd_config, InfraNomMsduSizeAcVi,
1170 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1171 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VI_DEFAULT,
1172 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VI_MIN,
1173 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VI_MAX),
1174
1175 REG_VARIABLE(CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VI_NAME,
1176 WLAN_PARAM_HexInteger,
1177 struct hdd_config, InfraMeanDataRateAcVi,
1178 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1179 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VI_DEFAULT,
1180 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VI_MIN,
1181 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VI_MAX),
1182
1183 REG_VARIABLE(CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VI_NAME,
1184 WLAN_PARAM_HexInteger,
1185 struct hdd_config, InfraMinPhyRateAcVi,
1186 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1187 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VI_DEFAULT,
1188 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VI_MIN,
1189 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VI_MAX),
1190
1191 REG_VARIABLE(CFG_QOS_WMM_INFRA_SBA_AC_VI_NAME, WLAN_PARAM_HexInteger,
1192 struct hdd_config, InfraSbaAcVi,
1193 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1194 CFG_QOS_WMM_INFRA_SBA_AC_VI_DEFAULT,
1195 CFG_QOS_WMM_INFRA_SBA_AC_VI_MIN,
1196 CFG_QOS_WMM_INFRA_SBA_AC_VI_MAX),
1197
1198 REG_VARIABLE(CFG_QOS_WMM_INFRA_DIR_AC_BE_NAME, WLAN_PARAM_Integer,
1199 struct hdd_config, InfraDirAcBe,
1200 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1201 CFG_QOS_WMM_INFRA_DIR_AC_BE_DEFAULT,
1202 CFG_QOS_WMM_INFRA_DIR_AC_BE_MIN,
1203 CFG_QOS_WMM_INFRA_DIR_AC_BE_MAX),
1204
1205 REG_VARIABLE(CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_BE_NAME,
1206 WLAN_PARAM_HexInteger,
1207 struct hdd_config, InfraNomMsduSizeAcBe,
1208 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1209 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_BE_DEFAULT,
1210 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_BE_MIN,
1211 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_BE_MAX),
1212
1213 REG_VARIABLE(CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_BE_NAME,
1214 WLAN_PARAM_HexInteger,
1215 struct hdd_config, InfraMeanDataRateAcBe,
1216 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1217 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_BE_DEFAULT,
1218 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_BE_MIN,
1219 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_BE_MAX),
1220
1221 REG_VARIABLE(CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_BE_NAME,
1222 WLAN_PARAM_HexInteger,
1223 struct hdd_config, InfraMinPhyRateAcBe,
1224 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1225 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_BE_DEFAULT,
1226 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_BE_MIN,
1227 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_BE_MAX),
1228
1229 REG_VARIABLE(CFG_QOS_WMM_INFRA_SBA_AC_BE_NAME, WLAN_PARAM_HexInteger,
1230 struct hdd_config, InfraSbaAcBe,
1231 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1232 CFG_QOS_WMM_INFRA_SBA_AC_BE_DEFAULT,
1233 CFG_QOS_WMM_INFRA_SBA_AC_BE_MIN,
1234 CFG_QOS_WMM_INFRA_SBA_AC_BE_MAX),
1235
1236 REG_VARIABLE(CFG_QOS_WMM_INFRA_DIR_AC_BK_NAME, WLAN_PARAM_Integer,
1237 struct hdd_config, InfraDirAcBk,
1238 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1239 CFG_QOS_WMM_INFRA_DIR_AC_BK_DEFAULT,
1240 CFG_QOS_WMM_INFRA_DIR_AC_BK_MIN,
1241 CFG_QOS_WMM_INFRA_DIR_AC_BK_MAX),
1242
1243 REG_VARIABLE(CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_BK_NAME,
1244 WLAN_PARAM_HexInteger,
1245 struct hdd_config, InfraNomMsduSizeAcBk,
1246 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1247 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_BK_DEFAULT,
1248 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_BK_MIN,
1249 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_BK_MAX),
1250
1251 REG_VARIABLE(CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_BK_NAME,
1252 WLAN_PARAM_HexInteger,
1253 struct hdd_config, InfraMeanDataRateAcBk,
1254 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1255 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_BK_DEFAULT,
1256 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_BK_MIN,
1257 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_BK_MAX),
1258
1259 REG_VARIABLE(CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_BK_NAME,
1260 WLAN_PARAM_HexInteger,
1261 struct hdd_config, InfraMinPhyRateAcBk,
1262 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1263 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_BK_DEFAULT,
1264 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_BK_MIN,
1265 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_BK_MAX),
1266
1267 REG_VARIABLE(CFG_QOS_WMM_INFRA_SBA_AC_BK_NAME, WLAN_PARAM_HexInteger,
1268 struct hdd_config, InfraSbaAcBk,
1269 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1270 CFG_QOS_WMM_INFRA_SBA_AC_BK_DEFAULT,
1271 CFG_QOS_WMM_INFRA_SBA_AC_BK_MIN,
1272 CFG_QOS_WMM_INFRA_SBA_AC_BK_MAX),
1273
1274 REG_VARIABLE(CFG_TL_DELAYED_TRGR_FRM_INT_NAME, WLAN_PARAM_Integer,
1275 struct hdd_config, DelayedTriggerFrmInt,
1276 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1277 CFG_TL_DELAYED_TRGR_FRM_INT_DEFAULT,
1278 CFG_TL_DELAYED_TRGR_FRM_INT_MIN,
1279 CFG_TL_DELAYED_TRGR_FRM_INT_MAX),
1280
1281 REG_VARIABLE_STRING(CFG_WOWL_PATTERN_NAME, WLAN_PARAM_String,
1282 struct hdd_config, wowlPattern,
1283 VAR_FLAGS_OPTIONAL,
1284 (void *)CFG_WOWL_PATTERN_DEFAULT),
1285
1286 REG_VARIABLE(CFG_QOS_IMPLICIT_SETUP_ENABLED_NAME, WLAN_PARAM_Integer,
1287 struct hdd_config, bImplicitQosEnabled,
1288 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1289 CFG_QOS_IMPLICIT_SETUP_ENABLED_DEFAULT,
1290 CFG_QOS_IMPLICIT_SETUP_ENABLED_MIN,
1291 CFG_QOS_IMPLICIT_SETUP_ENABLED_MAX),
1292
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001293 REG_VARIABLE(CFG_AP_AUTO_SHUT_OFF, WLAN_PARAM_Integer,
1294 struct hdd_config, nAPAutoShutOff,
1295 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1296 CFG_AP_AUTO_SHUT_OFF_DEFAULT,
1297 CFG_AP_AUTO_SHUT_OFF_MIN,
1298 CFG_AP_AUTO_SHUT_OFF_MAX),
1299
1300#ifdef FEATURE_WLAN_MCC_TO_SCC_SWITCH
1301 REG_VARIABLE(CFG_WLAN_MCC_TO_SCC_SWITCH_MODE, WLAN_PARAM_Integer,
1302 struct hdd_config, WlanMccToSccSwitchMode,
1303 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1304 CFG_WLAN_MCC_TO_SCC_SWITCH_MODE_DEFAULT,
1305 CFG_WLAN_MCC_TO_SCC_SWITCH_MODE_MIN,
1306 CFG_WLAN_MCC_TO_SCC_SWITCH_MODE_MAX),
1307#endif
1308#ifdef FEATURE_WLAN_AUTO_SHUTDOWN
1309 REG_VARIABLE(CFG_WLAN_AUTO_SHUTDOWN, WLAN_PARAM_Integer,
1310 struct hdd_config, WlanAutoShutdown,
1311 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1312 CFG_WLAN_AUTO_SHUTDOWN_DEFAULT,
1313 CFG_WLAN_AUTO_SHUTDOWN_MIN,
1314 CFG_WLAN_AUTO_SHUTDOWN_MAX),
1315#endif
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001316 REG_VARIABLE(CFG_RRM_ENABLE_NAME, WLAN_PARAM_Integer,
1317 struct hdd_config, fRrmEnable,
1318 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1319 CFG_RRM_ENABLE_DEFAULT,
1320 CFG_RRM_ENABLE_MIN,
1321 CFG_RRM_ENABLE_MAX),
1322
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001323 REG_VARIABLE(CFG_RRM_MEAS_RANDOMIZATION_INTVL_NAME, WLAN_PARAM_Integer,
1324 struct hdd_config, nRrmRandnIntvl,
1325 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1326 CFG_RRM_MEAS_RANDOMIZATION_INTVL_DEFAULT,
1327 CFG_RRM_MEAS_RANDOMIZATION_INTVL_MIN,
1328 CFG_RRM_MEAS_RANDOMIZATION_INTVL_MAX),
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08001329
1330 REG_VARIABLE_STRING(CFG_RM_CAPABILITY_NAME, WLAN_PARAM_String,
1331 struct hdd_config, rm_capability,
1332 VAR_FLAGS_OPTIONAL,
1333 (void *) CFG_RM_CAPABILITY_DEFAULT),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001334
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001335 REG_VARIABLE(CFG_FT_RESOURCE_REQ_NAME, WLAN_PARAM_Integer,
1336 struct hdd_config, fFTResourceReqSupported,
1337 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1338 CFG_FT_RESOURCE_REQ_DEFAULT,
1339 CFG_FT_RESOURCE_REQ_MIN,
1340 CFG_FT_RESOURCE_REQ_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001341
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001342 REG_DYNAMIC_VARIABLE(CFG_NEIGHBOR_SCAN_TIMER_PERIOD_NAME,
1343 WLAN_PARAM_Integer,
1344 struct hdd_config, nNeighborScanPeriod,
1345 VAR_FLAGS_OPTIONAL |
1346 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1347 CFG_NEIGHBOR_SCAN_TIMER_PERIOD_DEFAULT,
1348 CFG_NEIGHBOR_SCAN_TIMER_PERIOD_MIN,
1349 CFG_NEIGHBOR_SCAN_TIMER_PERIOD_MAX,
1350 cb_notify_set_neighbor_scan_period, 0),
1351
Sridhar Selvaraj1b2330c2017-07-21 15:16:42 +05301352 REG_DYNAMIC_VARIABLE(CFG_NEIGHBOR_SCAN_MIN_TIMER_PERIOD_NAME,
1353 WLAN_PARAM_Integer,
1354 struct hdd_config, neighbor_scan_min_period,
1355 VAR_FLAGS_OPTIONAL |
1356 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1357 CFG_NEIGHBOR_SCAN_MIN_TIMER_PERIOD_DEFAULT,
1358 CFG_NEIGHBOR_SCAN_MIN_TIMER_PERIOD_MIN,
1359 CFG_NEIGHBOR_SCAN_MIN_TIMER_PERIOD_MAX,
1360 cb_notify_set_neighbor_scan_min_period, 0),
1361
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001362 REG_DYNAMIC_VARIABLE(CFG_NEIGHBOR_LOOKUP_RSSI_THRESHOLD_NAME,
1363 WLAN_PARAM_Integer,
1364 struct hdd_config, nNeighborLookupRssiThreshold,
1365 VAR_FLAGS_OPTIONAL |
1366 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1367 CFG_NEIGHBOR_LOOKUP_RSSI_THRESHOLD_DEFAULT,
1368 CFG_NEIGHBOR_LOOKUP_RSSI_THRESHOLD_MIN,
1369 CFG_NEIGHBOR_LOOKUP_RSSI_THRESHOLD_MAX,
1370 cb_notify_set_neighbor_lookup_rssi_threshold, 0),
1371
Varun Reddy Yeturu168134f2017-06-26 13:46:05 -07001372 REG_VARIABLE(CFG_5G_RSSI_THRESHOLD_OFFSET_NAME,
1373 WLAN_PARAM_SignedInteger, struct hdd_config,
1374 rssi_thresh_offset_5g,
1375 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1376 CFG_5G_RSSI_THRESHOLD_OFFSET_DEFAULT,
1377 CFG_5G_RSSI_THRESHOLD_OFFSET_MIN,
1378 CFG_5G_RSSI_THRESHOLD_OFFSET_MAX),
1379
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001380 REG_DYNAMIC_VARIABLE(CFG_OPPORTUNISTIC_SCAN_THRESHOLD_DIFF_NAME,
1381 WLAN_PARAM_Integer,
1382 struct hdd_config, nOpportunisticThresholdDiff,
1383 VAR_FLAGS_OPTIONAL |
1384 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1385 CFG_OPPORTUNISTIC_SCAN_THRESHOLD_DIFF_DEFAULT,
1386 CFG_OPPORTUNISTIC_SCAN_THRESHOLD_DIFF_MIN,
1387 CFG_OPPORTUNISTIC_SCAN_THRESHOLD_DIFF_MAX,
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07001388 cb_notify_set_opportunistic_scan_threshold_diff,
1389 0),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001390
1391 REG_DYNAMIC_VARIABLE(CFG_ROAM_RESCAN_RSSI_DIFF_NAME, WLAN_PARAM_Integer,
1392 struct hdd_config, nRoamRescanRssiDiff,
1393 VAR_FLAGS_OPTIONAL |
1394 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1395 CFG_ROAM_RESCAN_RSSI_DIFF_DEFAULT,
1396 CFG_ROAM_RESCAN_RSSI_DIFF_MIN,
1397 CFG_ROAM_RESCAN_RSSI_DIFF_MAX,
1398 cb_notify_set_roam_rescan_rssi_diff, 0),
1399
1400 REG_VARIABLE_STRING(CFG_NEIGHBOR_SCAN_CHAN_LIST_NAME, WLAN_PARAM_String,
1401 struct hdd_config, neighborScanChanList,
1402 VAR_FLAGS_OPTIONAL,
1403 (void *)CFG_NEIGHBOR_SCAN_CHAN_LIST_DEFAULT),
1404
1405 REG_DYNAMIC_VARIABLE(CFG_NEIGHBOR_SCAN_MIN_CHAN_TIME_NAME,
1406 WLAN_PARAM_Integer,
1407 struct hdd_config, nNeighborScanMinChanTime,
1408 VAR_FLAGS_OPTIONAL |
1409 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1410 CFG_NEIGHBOR_SCAN_MIN_CHAN_TIME_DEFAULT,
1411 CFG_NEIGHBOR_SCAN_MIN_CHAN_TIME_MIN,
1412 CFG_NEIGHBOR_SCAN_MIN_CHAN_TIME_MAX,
1413 cb_notify_set_neighbor_scan_min_chan_time, 0),
1414
1415 REG_DYNAMIC_VARIABLE(CFG_NEIGHBOR_SCAN_MAX_CHAN_TIME_NAME,
1416 WLAN_PARAM_Integer,
1417 struct hdd_config, nNeighborScanMaxChanTime,
1418 VAR_FLAGS_OPTIONAL |
1419 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1420 CFG_NEIGHBOR_SCAN_MAX_CHAN_TIME_DEFAULT,
1421 CFG_NEIGHBOR_SCAN_MAX_CHAN_TIME_MIN,
1422 CFG_NEIGHBOR_SCAN_MAX_CHAN_TIME_MAX,
1423 cb_notify_set_neighbor_scan_max_chan_time, 0),
1424
1425 REG_VARIABLE(CFG_11R_NEIGHBOR_REQ_MAX_TRIES_NAME, WLAN_PARAM_Integer,
1426 struct hdd_config, nMaxNeighborReqTries,
1427 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1428 CFG_11R_NEIGHBOR_REQ_MAX_TRIES_DEFAULT,
1429 CFG_11R_NEIGHBOR_REQ_MAX_TRIES_MIN,
1430 CFG_11R_NEIGHBOR_REQ_MAX_TRIES_MAX),
1431
1432 REG_DYNAMIC_VARIABLE(CFG_NEIGHBOR_SCAN_RESULTS_REFRESH_PERIOD_NAME,
1433 WLAN_PARAM_Integer,
1434 struct hdd_config, nNeighborResultsRefreshPeriod,
1435 VAR_FLAGS_OPTIONAL |
1436 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1437 CFG_NEIGHBOR_SCAN_RESULTS_REFRESH_PERIOD_DEFAULT,
1438 CFG_NEIGHBOR_SCAN_RESULTS_REFRESH_PERIOD_MIN,
1439 CFG_NEIGHBOR_SCAN_RESULTS_REFRESH_PERIOD_MAX,
1440 cb_notify_set_neighbor_results_refresh_period, 0),
1441
1442 REG_DYNAMIC_VARIABLE(CFG_EMPTY_SCAN_REFRESH_PERIOD_NAME,
1443 WLAN_PARAM_Integer,
1444 struct hdd_config, nEmptyScanRefreshPeriod,
1445 VAR_FLAGS_OPTIONAL |
1446 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1447 CFG_EMPTY_SCAN_REFRESH_PERIOD_DEFAULT,
1448 CFG_EMPTY_SCAN_REFRESH_PERIOD_MIN,
1449 CFG_EMPTY_SCAN_REFRESH_PERIOD_MAX,
1450 cb_notify_set_empty_scan_refresh_period, 0),
1451
1452 REG_DYNAMIC_VARIABLE(CFG_ROAM_BMISS_FIRST_BCNT_NAME, WLAN_PARAM_Integer,
1453 struct hdd_config, nRoamBmissFirstBcnt,
1454 VAR_FLAGS_OPTIONAL |
1455 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1456 CFG_ROAM_BMISS_FIRST_BCNT_DEFAULT,
1457 CFG_ROAM_BMISS_FIRST_BCNT_MIN,
1458 CFG_ROAM_BMISS_FIRST_BCNT_MAX,
1459 cb_notify_set_roam_bmiss_first_bcnt, 0),
1460
1461 REG_DYNAMIC_VARIABLE(CFG_ROAM_BMISS_FINAL_BCNT_NAME, WLAN_PARAM_Integer,
1462 struct hdd_config, nRoamBmissFinalBcnt,
1463 VAR_FLAGS_OPTIONAL |
1464 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1465 CFG_ROAM_BMISS_FINAL_BCNT_DEFAULT,
1466 CFG_ROAM_BMISS_FINAL_BCNT_MIN,
1467 CFG_ROAM_BMISS_FINAL_BCNT_MAX,
1468 cb_notify_set_roam_bmiss_final_bcnt, 0),
1469
1470 REG_DYNAMIC_VARIABLE(CFG_ROAM_BEACON_RSSI_WEIGHT_NAME,
1471 WLAN_PARAM_Integer,
1472 struct hdd_config, nRoamBeaconRssiWeight,
1473 VAR_FLAGS_OPTIONAL |
1474 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1475 CFG_ROAM_BEACON_RSSI_WEIGHT_DEFAULT,
1476 CFG_ROAM_BEACON_RSSI_WEIGHT_MIN,
1477 CFG_ROAM_BEACON_RSSI_WEIGHT_MAX,
1478 cb_notify_set_roam_beacon_rssi_weight, 0),
1479
1480 REG_DYNAMIC_VARIABLE(CFG_ROAMING_DFS_CHANNEL_NAME, WLAN_PARAM_Integer,
1481 struct hdd_config, allowDFSChannelRoam,
1482 VAR_FLAGS_OPTIONAL |
1483 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1484 CFG_ROAMING_DFS_CHANNEL_DEFAULT,
1485 CFG_ROAMING_DFS_CHANNEL_MIN,
1486 CFG_ROAMING_DFS_CHANNEL_MAX,
1487 cb_notify_set_dfs_scan_mode, 0),
1488
1489 REG_DYNAMIC_VARIABLE(CFG_DELAY_BEFORE_VDEV_STOP_NAME,
1490 WLAN_PARAM_Integer,
1491 struct hdd_config,
1492 delay_before_vdev_stop,
1493 VAR_FLAGS_OPTIONAL |
1494 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1495 CFG_DELAY_BEFORE_VDEV_STOP_DEFAULT,
1496 CFG_DELAY_BEFORE_VDEV_STOP_MIN,
1497 CFG_DELAY_BEFORE_VDEV_STOP_MAX,
1498 cb_notify_set_delay_before_vdev_stop,
1499 0),
1500
1501 REG_DYNAMIC_VARIABLE(CFG_ROAM_SCAN_HI_RSSI_MAXCOUNT_NAME,
1502 WLAN_PARAM_Integer,
1503 struct hdd_config,
1504 nhi_rssi_scan_max_count,
1505 VAR_FLAGS_OPTIONAL |
1506 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1507 CFG_ROAM_SCAN_HI_RSSI_MAXCOUNT_DEFAULT,
1508 CFG_ROAM_SCAN_HI_RSSI_MAXCOUNT_MIN,
1509 CFG_ROAM_SCAN_HI_RSSI_MAXCOUNT_MAX,
1510 cb_notify_set_roam_scan_hi_rssi_scan_params,
1511 eCSR_HI_RSSI_SCAN_MAXCOUNT_ID),
1512
1513 REG_DYNAMIC_VARIABLE(CFG_ROAM_SCAN_HI_RSSI_DELTA_NAME,
1514 WLAN_PARAM_Integer,
1515 struct hdd_config,
1516 nhi_rssi_scan_rssi_delta,
1517 VAR_FLAGS_OPTIONAL |
1518 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1519 CFG_ROAM_SCAN_HI_RSSI_DELTA_DEFAULT,
1520 CFG_ROAM_SCAN_HI_RSSI_DELTA_MIN,
1521 CFG_ROAM_SCAN_HI_RSSI_DELTA_MAX,
1522 cb_notify_set_roam_scan_hi_rssi_scan_params,
1523 eCSR_HI_RSSI_SCAN_RSSI_DELTA_ID),
1524
1525 REG_DYNAMIC_VARIABLE(CFG_ROAM_SCAN_HI_RSSI_DELAY_NAME,
1526 WLAN_PARAM_Integer,
1527 struct hdd_config,
1528 nhi_rssi_scan_delay,
1529 VAR_FLAGS_OPTIONAL |
1530 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1531 CFG_ROAM_SCAN_HI_RSSI_DELAY_DEFAULT,
1532 CFG_ROAM_SCAN_HI_RSSI_DELAY_MIN,
1533 CFG_ROAM_SCAN_HI_RSSI_DELAY_MAX,
1534 cb_notify_set_roam_scan_hi_rssi_scan_params,
1535 eCSR_HI_RSSI_SCAN_DELAY_ID),
1536
1537 REG_DYNAMIC_VARIABLE(CFG_ROAM_SCAN_HI_RSSI_UB_NAME,
1538 WLAN_PARAM_SignedInteger,
1539 struct hdd_config,
1540 nhi_rssi_scan_rssi_ub,
1541 VAR_FLAGS_OPTIONAL |
1542 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1543 CFG_ROAM_SCAN_HI_RSSI_UB_DEFAULT,
1544 CFG_ROAM_SCAN_HI_RSSI_UB_MIN,
1545 CFG_ROAM_SCAN_HI_RSSI_UB_MAX,
1546 cb_notify_set_roam_scan_hi_rssi_scan_params,
1547 eCSR_HI_RSSI_SCAN_RSSI_UB_ID),
1548
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001549 REG_VARIABLE(CFG_QOS_WMM_BURST_SIZE_DEFN_NAME, WLAN_PARAM_Integer,
1550 struct hdd_config, burstSizeDefinition,
1551 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1552 CFG_QOS_WMM_BURST_SIZE_DEFN_DEFAULT,
1553 CFG_QOS_WMM_BURST_SIZE_DEFN_MIN,
1554 CFG_QOS_WMM_BURST_SIZE_DEFN_MAX),
1555
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001556 REG_VARIABLE(CFG_ENABLE_HOST_ARPOFFLOAD_NAME, WLAN_PARAM_Integer,
1557 struct hdd_config, fhostArpOffload,
1558 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1559 CFG_ENABLE_HOST_ARPOFFLOAD_DEFAULT,
1560 CFG_ENABLE_HOST_ARPOFFLOAD_MIN,
1561 CFG_ENABLE_HOST_ARPOFFLOAD_MAX),
1562
Dustin Brown1224e212017-05-12 14:02:12 -07001563 REG_VARIABLE(CFG_HW_FILTER_MODE_NAME, WLAN_PARAM_Integer,
1564 struct hdd_config, hw_filter_mode,
Ravi Kumar Bokka794fd712017-03-21 20:52:46 +05301565 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
Dustin Brown1224e212017-05-12 14:02:12 -07001566 CFG_HW_FILTER_MODE_DEFAULT,
1567 CFG_HW_FILTER_MODE_MIN,
1568 CFG_HW_FILTER_MODE_MAX),
Ravi Kumar Bokka794fd712017-03-21 20:52:46 +05301569
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001570#ifdef FEATURE_WLAN_RA_FILTERING
1571 REG_VARIABLE(CFG_RA_FILTER_ENABLE_NAME, WLAN_PARAM_Integer,
1572 struct hdd_config, IsRArateLimitEnabled,
1573 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1574 CFG_RA_FILTER_ENABLE_DEFAULT,
1575 CFG_RA_FILTER_ENABLE_MIN,
1576 CFG_RA_FILTER_ENABLE_MAX),
1577
1578 REG_VARIABLE(CFG_RA_RATE_LIMIT_INTERVAL_NAME, WLAN_PARAM_Integer,
1579 struct hdd_config, RArateLimitInterval,
1580 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1581 CFG_RA_RATE_LIMIT_INTERVAL_DEFAULT,
1582 CFG_RA_RATE_LIMIT_INTERVAL_MIN,
1583 CFG_RA_RATE_LIMIT_INTERVAL_MAX),
1584#endif
1585
1586 REG_VARIABLE(CFG_IGNORE_PEER_ERP_INFO_NAME, WLAN_PARAM_Integer,
1587 struct hdd_config, ignore_peer_erp_info,
1588 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1589 CFG_IGNORE_PEER_ERP_INFO_DEFAULT,
1590 CFG_IGNORE_PEER_ERP_INFO_MIN,
1591 CFG_IGNORE_PEER_ERP_INFO_MAX),
1592
1593 REG_VARIABLE(CFG_ENABLE_HOST_SSDP_NAME, WLAN_PARAM_Integer,
1594 struct hdd_config, ssdp,
1595 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1596 CFG_ENABLE_HOST_SSDP_DEFAULT,
1597 CFG_ENABLE_HOST_SSDP_MIN,
1598 CFG_ENABLE_HOST_SSDP_MAX),
1599
Houston Hoffmanc7c69f02016-03-24 22:45:52 -07001600#ifdef FEATURE_RUNTIME_PM
1601 REG_VARIABLE(CFG_ENABLE_RUNTIME_PM, WLAN_PARAM_Integer,
1602 struct hdd_config, runtime_pm,
1603 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1604 CFG_ENABLE_RUNTIME_PM_DEFAULT,
1605 CFG_ENABLE_RUNTIME_PM_MIN,
1606 CFG_ENABLE_RUNTIME_PM_MAX),
1607
1608 REG_VARIABLE(CFG_RUNTIME_PM_DELAY_NAME, WLAN_PARAM_Integer,
1609 struct hdd_config, runtime_pm_delay,
1610 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1611 CFG_RUNTIME_PM_DELAY_DEFAULT,
1612 CFG_RUNTIME_PM_DELAY_MIN,
1613 CFG_RUNTIME_PM_DELAY_MAX),
1614#endif
1615
1616
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001617 REG_VARIABLE(CFG_ENABLE_HOST_NSOFFLOAD_NAME, WLAN_PARAM_Integer,
1618 struct hdd_config, fhostNSOffload,
1619 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1620 CFG_ENABLE_HOST_NSOFFLOAD_DEFAULT,
1621 CFG_ENABLE_HOST_NSOFFLOAD_MIN,
1622 CFG_ENABLE_HOST_NSOFFLOAD_MAX),
1623
1624 REG_VARIABLE(CFG_QOS_WMM_TS_INFO_ACK_POLICY_NAME, WLAN_PARAM_HexInteger,
1625 struct hdd_config, tsInfoAckPolicy,
1626 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1627 CFG_QOS_WMM_TS_INFO_ACK_POLICY_DEFAULT,
1628 CFG_QOS_WMM_TS_INFO_ACK_POLICY_MIN,
1629 CFG_QOS_WMM_TS_INFO_ACK_POLICY_MAX),
1630
1631 REG_VARIABLE(CFG_SINGLE_TID_RC_NAME, WLAN_PARAM_Integer,
1632 struct hdd_config, bSingleTidRc,
1633 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1634 CFG_SINGLE_TID_RC_DEFAULT,
1635 CFG_SINGLE_TID_RC_MIN,
1636 CFG_SINGLE_TID_RC_MAX),
1637
1638 REG_VARIABLE(CFG_DYNAMIC_PSPOLL_VALUE_NAME, WLAN_PARAM_Integer,
1639 struct hdd_config, dynamicPsPollValue,
1640 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1641 CFG_DYNAMIC_PSPOLL_VALUE_DEFAULT,
1642 CFG_DYNAMIC_PSPOLL_VALUE_MIN,
1643 CFG_DYNAMIC_PSPOLL_VALUE_MAX),
1644
1645 REG_VARIABLE(CFG_TELE_BCN_WAKEUP_EN_NAME, WLAN_PARAM_Integer,
1646 struct hdd_config, teleBcnWakeupEn,
1647 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1648 CFG_TELE_BCN_WAKEUP_EN_DEFAULT,
1649 CFG_TELE_BCN_WAKEUP_EN_MIN,
1650 CFG_TELE_BCN_WAKEUP_EN_MAX),
1651
1652 REG_VARIABLE(CFG_INFRA_STA_KEEP_ALIVE_PERIOD_NAME, WLAN_PARAM_Integer,
1653 struct hdd_config, infraStaKeepAlivePeriod,
1654 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1655 CFG_INFRA_STA_KEEP_ALIVE_PERIOD_DEFAULT,
1656 CFG_INFRA_STA_KEEP_ALIVE_PERIOD_MIN,
1657 CFG_INFRA_STA_KEEP_ALIVE_PERIOD_MAX),
1658
Dustin Brownb6b0f182017-03-08 13:08:27 -08001659 REG_VARIABLE(CFG_STA_KEEPALIVE_METHOD_NAME, WLAN_PARAM_Integer,
1660 struct hdd_config, sta_keepalive_method,
1661 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1662 CFG_STA_KEEPALIVE_METHOD_DEFAULT,
1663 CFG_STA_KEEPALIVE_METHOD_MIN,
1664 CFG_STA_KEEPALIVE_METHOD_MAX),
1665
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001666 REG_VARIABLE(CFG_QOS_ADDTS_WHEN_ACM_IS_OFF_NAME, WLAN_PARAM_Integer,
1667 struct hdd_config, AddTSWhenACMIsOff,
1668 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1669 CFG_QOS_ADDTS_WHEN_ACM_IS_OFF_DEFAULT,
1670 CFG_QOS_ADDTS_WHEN_ACM_IS_OFF_MIN,
1671 CFG_QOS_ADDTS_WHEN_ACM_IS_OFF_MAX),
1672
1673 REG_VARIABLE(CFG_VALIDATE_SCAN_LIST_NAME, WLAN_PARAM_Integer,
1674 struct hdd_config, fValidateScanList,
1675 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1676 CFG_VALIDATE_SCAN_LIST_DEFAULT,
1677 CFG_VALIDATE_SCAN_LIST_MIN,
1678 CFG_VALIDATE_SCAN_LIST_MAX),
1679
1680 REG_VARIABLE(CFG_NULLDATA_AP_RESP_TIMEOUT_NAME, WLAN_PARAM_Integer,
1681 struct hdd_config, nNullDataApRespTimeout,
1682 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1683 CFG_NULLDATA_AP_RESP_TIMEOUT_DEFAULT,
1684 CFG_NULLDATA_AP_RESP_TIMEOUT_MIN,
1685 CFG_NULLDATA_AP_RESP_TIMEOUT_MAX),
1686
1687 REG_VARIABLE(CFG_AP_DATA_AVAIL_POLL_PERIOD_NAME, WLAN_PARAM_Integer,
1688 struct hdd_config, apDataAvailPollPeriodInMs,
1689 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1690 CFG_AP_DATA_AVAIL_POLL_PERIOD_DEFAULT,
1691 CFG_AP_DATA_AVAIL_POLL_PERIOD_MIN,
1692 CFG_AP_DATA_AVAIL_POLL_PERIOD_MAX),
1693
1694 REG_VARIABLE(CFG_BAND_CAPABILITY_NAME, WLAN_PARAM_Integer,
1695 struct hdd_config, nBandCapability,
1696 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1697 CFG_BAND_CAPABILITY_DEFAULT,
1698 CFG_BAND_CAPABILITY_MIN,
1699 CFG_BAND_CAPABILITY_MAX),
1700
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301701/* CFG_QDF_TRACE_ENABLE Parameters */
1702 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_WDI_NAME, WLAN_PARAM_Integer,
1703 struct hdd_config, qdf_trace_enable_wdi,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001704 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301705 CFG_QDF_TRACE_ENABLE_DEFAULT,
1706 CFG_QDF_TRACE_ENABLE_MIN,
1707 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001708
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301709 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_HDD_NAME, WLAN_PARAM_Integer,
1710 struct hdd_config, qdf_trace_enable_hdd,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001711 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301712 CFG_QDF_TRACE_ENABLE_DEFAULT,
1713 CFG_QDF_TRACE_ENABLE_MIN,
1714 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001715
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301716 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_BMI_NAME, WLAN_PARAM_Integer,
1717 struct hdd_config, qdf_trace_enable_bmi,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001718 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301719 CFG_QDF_TRACE_ENABLE_DEFAULT,
1720 CFG_QDF_TRACE_ENABLE_MIN,
1721 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001722
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301723 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_SME_NAME, WLAN_PARAM_Integer,
1724 struct hdd_config, qdf_trace_enable_sme,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001725 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301726 CFG_QDF_TRACE_ENABLE_DEFAULT,
1727 CFG_QDF_TRACE_ENABLE_MIN,
1728 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001729
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301730 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_PE_NAME, WLAN_PARAM_Integer,
1731 struct hdd_config, qdf_trace_enable_pe,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001732 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301733 CFG_QDF_TRACE_ENABLE_DEFAULT,
1734 CFG_QDF_TRACE_ENABLE_MIN,
1735 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001736
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301737 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_WMA_NAME, WLAN_PARAM_Integer,
1738 struct hdd_config, qdf_trace_enable_wma,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001739 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301740 CFG_QDF_TRACE_ENABLE_DEFAULT,
1741 CFG_QDF_TRACE_ENABLE_MIN,
1742 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001743
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301744 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_SYS_NAME, WLAN_PARAM_Integer,
1745 struct hdd_config, qdf_trace_enable_sys,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001746 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301747 CFG_QDF_TRACE_ENABLE_DEFAULT,
1748 CFG_QDF_TRACE_ENABLE_MIN,
1749 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001750
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301751 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_QDF_NAME, WLAN_PARAM_Integer,
1752 struct hdd_config, qdf_trace_enable_qdf,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001753 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301754 CFG_QDF_TRACE_ENABLE_DEFAULT,
1755 CFG_QDF_TRACE_ENABLE_MIN,
1756 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001757
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301758 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_SAP_NAME, WLAN_PARAM_Integer,
1759 struct hdd_config, qdf_trace_enable_sap,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001760 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301761 CFG_QDF_TRACE_ENABLE_DEFAULT,
1762 CFG_QDF_TRACE_ENABLE_MIN,
1763 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001764
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301765 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_HDD_SAP_NAME, WLAN_PARAM_Integer,
1766 struct hdd_config, qdf_trace_enable_hdd_sap,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001767 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301768 CFG_QDF_TRACE_ENABLE_DEFAULT,
1769 CFG_QDF_TRACE_ENABLE_MIN,
1770 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001771
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301772 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_CFG_NAME, WLAN_PARAM_Integer,
1773 struct hdd_config, qdf_trace_enable_cfg,
Bhargav Shah480a90f2015-06-24 15:10:14 +05301774 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301775 CFG_QDF_TRACE_ENABLE_DEFAULT,
1776 CFG_QDF_TRACE_ENABLE_MIN,
1777 CFG_QDF_TRACE_ENABLE_MAX),
Bhargav Shah480a90f2015-06-24 15:10:14 +05301778
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301779 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_TXRX_NAME, WLAN_PARAM_Integer,
Houston Hoffmanfbf05102017-08-28 11:37:01 -07001780 struct hdd_config, qdf_trace_enable_txrx,
Bhargav Shah480a90f2015-06-24 15:10:14 +05301781 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301782 CFG_QDF_TRACE_ENABLE_DEFAULT,
1783 CFG_QDF_TRACE_ENABLE_MIN,
1784 CFG_QDF_TRACE_ENABLE_MAX),
Bhargav Shah480a90f2015-06-24 15:10:14 +05301785
Houston Hoffmanfbf05102017-08-28 11:37:01 -07001786 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_DP_NAME, WLAN_PARAM_Integer,
1787 struct hdd_config, qdf_trace_enable_dp,
1788 VAR_FLAGS_OPTIONAL,
1789 CFG_QDF_TRACE_ENABLE_DP_DEFAULT,
1790 CFG_QDF_TRACE_ENABLE_MIN,
1791 CFG_QDF_TRACE_ENABLE_MAX),
1792
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301793 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_HTC_NAME, WLAN_PARAM_Integer,
1794 struct hdd_config, qdf_trace_enable_htc,
Bhargav Shah480a90f2015-06-24 15:10:14 +05301795 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301796 CFG_QDF_TRACE_ENABLE_DEFAULT,
1797 CFG_QDF_TRACE_ENABLE_MIN,
1798 CFG_QDF_TRACE_ENABLE_MAX),
Bhargav Shah480a90f2015-06-24 15:10:14 +05301799
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301800 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_HIF_NAME, WLAN_PARAM_Integer,
1801 struct hdd_config, qdf_trace_enable_hif,
Bhargav Shah480a90f2015-06-24 15:10:14 +05301802 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301803 CFG_QDF_TRACE_ENABLE_DEFAULT,
1804 CFG_QDF_TRACE_ENABLE_MIN,
1805 CFG_QDF_TRACE_ENABLE_MAX),
Bhargav Shah480a90f2015-06-24 15:10:14 +05301806
1807 REG_VARIABLE(CFG_CDR_TRACE_ENABLE_HDD_SAP_DATA_NAME, WLAN_PARAM_Integer,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301808 struct hdd_config, qdf_trace_enable_hdd_sap_data,
Bhargav Shah480a90f2015-06-24 15:10:14 +05301809 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301810 CFG_QDF_TRACE_ENABLE_DEFAULT,
1811 CFG_QDF_TRACE_ENABLE_MIN,
1812 CFG_QDF_TRACE_ENABLE_MAX),
Bhargav Shah480a90f2015-06-24 15:10:14 +05301813
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301814 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_HDD_DATA_NAME, WLAN_PARAM_Integer,
1815 struct hdd_config, qdf_trace_enable_hdd_data,
Bhargav Shah480a90f2015-06-24 15:10:14 +05301816 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301817 CFG_QDF_TRACE_ENABLE_DEFAULT,
1818 CFG_QDF_TRACE_ENABLE_MIN,
1819 CFG_QDF_TRACE_ENABLE_MAX),
Bhargav Shah480a90f2015-06-24 15:10:14 +05301820
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301821 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_EPPING, WLAN_PARAM_Integer,
1822 struct hdd_config, qdf_trace_enable_epping,
Bhargav Shah480a90f2015-06-24 15:10:14 +05301823 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301824 CFG_QDF_TRACE_ENABLE_DEFAULT,
1825 CFG_QDF_TRACE_ENABLE_MIN,
1826 CFG_QDF_TRACE_ENABLE_MAX),
Bhargav Shah480a90f2015-06-24 15:10:14 +05301827
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301828 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_QDF_DEVICES, WLAN_PARAM_Integer,
1829 struct hdd_config, qdf_trace_enable_qdf_devices,
Bhargav Shah480a90f2015-06-24 15:10:14 +05301830 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301831 CFG_QDF_TRACE_ENABLE_DEFAULT,
1832 CFG_QDF_TRACE_ENABLE_MIN,
1833 CFG_QDF_TRACE_ENABLE_MAX),
Bhargav Shah480a90f2015-06-24 15:10:14 +05301834
Naveen Rawat7df31862017-03-01 17:09:30 -08001835 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_WIFI_POS, WLAN_PARAM_Integer,
1836 struct hdd_config, qdf_trace_enable_wifi_pos,
1837 VAR_FLAGS_OPTIONAL,
1838 CFG_QDF_TRACE_ENABLE_DEFAULT,
1839 CFG_QDF_TRACE_ENABLE_MIN,
1840 CFG_QDF_TRACE_ENABLE_MAX),
1841
Naveen Rawatf2b0dbd2017-03-27 10:00:15 -07001842 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_NAN, WLAN_PARAM_Integer,
1843 struct hdd_config, qdf_trace_enable_nan,
1844 VAR_FLAGS_OPTIONAL,
1845 CFG_QDF_TRACE_ENABLE_DEFAULT,
1846 CFG_QDF_TRACE_ENABLE_MIN,
1847 CFG_QDF_TRACE_ENABLE_MAX),
1848
Kiran Kumar Lokere798de7e2017-03-30 14:01:12 -07001849 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_REGULATORY, WLAN_PARAM_Integer,
1850 struct hdd_config, qdf_trace_enable_regulatory,
1851 VAR_FLAGS_OPTIONAL,
1852 CFG_QDF_TRACE_ENABLE_DEFAULT,
1853 CFG_QDF_TRACE_ENABLE_MIN,
1854 CFG_QDF_TRACE_ENABLE_MAX),
1855
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001856 REG_VARIABLE(CFG_TELE_BCN_TRANS_LI_NAME, WLAN_PARAM_Integer,
1857 struct hdd_config, nTeleBcnTransListenInterval,
1858 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1859 CFG_TELE_BCN_TRANS_LI_DEFAULT,
1860 CFG_TELE_BCN_TRANS_LI_MIN,
1861 CFG_TELE_BCN_TRANS_LI_MAX),
1862
1863 REG_VARIABLE(CFG_TELE_BCN_TRANS_LI_NUM_IDLE_BCNS_NAME,
1864 WLAN_PARAM_Integer,
1865 struct hdd_config, nTeleBcnTransLiNumIdleBeacons,
1866 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1867 CFG_TELE_BCN_TRANS_LI_NUM_IDLE_BCNS_DEFAULT,
1868 CFG_TELE_BCN_TRANS_LI_NUM_IDLE_BCNS_MIN,
1869 CFG_TELE_BCN_TRANS_LI_NUM_IDLE_BCNS_MAX),
1870
1871 REG_VARIABLE(CFG_TELE_BCN_MAX_LI_NAME, WLAN_PARAM_Integer,
1872 struct hdd_config, nTeleBcnMaxListenInterval,
1873 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1874 CFG_TELE_BCN_MAX_LI_DEFAULT,
1875 CFG_TELE_BCN_MAX_LI_MIN,
1876 CFG_TELE_BCN_MAX_LI_MAX),
1877
1878 REG_VARIABLE(CFG_TELE_BCN_MAX_LI_NUM_IDLE_BCNS_NAME, WLAN_PARAM_Integer,
1879 struct hdd_config, nTeleBcnMaxLiNumIdleBeacons,
1880 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1881 CFG_TELE_BCN_MAX_LI_NUM_IDLE_BCNS_DEFAULT,
1882 CFG_TELE_BCN_MAX_LI_NUM_IDLE_BCNS_MIN,
1883 CFG_TELE_BCN_MAX_LI_NUM_IDLE_BCNS_MAX),
1884
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001885 REG_VARIABLE(CFG_ENABLE_BYPASS_11D_NAME, WLAN_PARAM_Integer,
1886 struct hdd_config, enableBypass11d,
1887 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1888 CFG_ENABLE_BYPASS_11D_DEFAULT,
1889 CFG_ENABLE_BYPASS_11D_MIN,
1890 CFG_ENABLE_BYPASS_11D_MAX),
1891
1892 REG_VARIABLE(CFG_ENABLE_DFS_CHNL_SCAN_NAME, WLAN_PARAM_Integer,
1893 struct hdd_config, enableDFSChnlScan,
1894 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1895 CFG_ENABLE_DFS_CHNL_SCAN_DEFAULT,
1896 CFG_ENABLE_DFS_CHNL_SCAN_MIN,
1897 CFG_ENABLE_DFS_CHNL_SCAN_MAX),
1898
1899 REG_VARIABLE(CFG_ENABLE_DFS_PNO_CHNL_SCAN_NAME, WLAN_PARAM_Integer,
1900 struct hdd_config, enable_dfs_pno_chnl_scan,
1901 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1902 CFG_ENABLE_DFS_PNO_CHNL_SCAN_DEFAULT,
1903 CFG_ENABLE_DFS_PNO_CHNL_SCAN_MIN,
1904 CFG_ENABLE_DFS_PNO_CHNL_SCAN_MAX),
1905
1906 REG_VARIABLE(CFG_ENABLE_DYNAMIC_DTIM_NAME, WLAN_PARAM_Integer,
1907 struct hdd_config, enableDynamicDTIM,
1908 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1909 CFG_ENABLE_DYNAMIC_DTIM_DEFAULT,
1910 CFG_ENABLE_DYNAMIC_DTIM_MIN,
1911 CFG_ENABLE_DYNAMIC_DTIM_MAX),
1912
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001913 REG_VARIABLE(CFG_SHORT_GI_40MHZ_NAME, WLAN_PARAM_Integer,
1914 struct hdd_config, ShortGI40MhzEnable,
1915 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1916 CFG_SHORT_GI_40MHZ_DEFAULT,
1917 CFG_SHORT_GI_40MHZ_MIN,
1918 CFG_SHORT_GI_40MHZ_MAX),
1919
1920 REG_DYNAMIC_VARIABLE(CFG_REPORT_MAX_LINK_SPEED, WLAN_PARAM_Integer,
1921 struct hdd_config, reportMaxLinkSpeed,
1922 VAR_FLAGS_OPTIONAL |
1923 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1924 CFG_REPORT_MAX_LINK_SPEED_DEFAULT,
1925 CFG_REPORT_MAX_LINK_SPEED_MIN,
1926 CFG_REPORT_MAX_LINK_SPEED_MAX,
1927 NULL, 0),
1928
1929 REG_DYNAMIC_VARIABLE(CFG_LINK_SPEED_RSSI_HIGH, WLAN_PARAM_SignedInteger,
1930 struct hdd_config, linkSpeedRssiHigh,
1931 VAR_FLAGS_OPTIONAL |
1932 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1933 CFG_LINK_SPEED_RSSI_HIGH_DEFAULT,
1934 CFG_LINK_SPEED_RSSI_HIGH_MIN,
1935 CFG_LINK_SPEED_RSSI_HIGH_MAX,
1936 NULL, 0),
1937
1938 REG_DYNAMIC_VARIABLE(CFG_LINK_SPEED_RSSI_MID, WLAN_PARAM_SignedInteger,
1939 struct hdd_config, linkSpeedRssiMid,
1940 VAR_FLAGS_OPTIONAL |
1941 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1942 CFG_LINK_SPEED_RSSI_MID_DEFAULT,
1943 CFG_LINK_SPEED_RSSI_MID_MIN,
1944 CFG_LINK_SPEED_RSSI_MID_MAX,
1945 NULL, 0),
1946
1947 REG_DYNAMIC_VARIABLE(CFG_LINK_SPEED_RSSI_LOW, WLAN_PARAM_SignedInteger,
1948 struct hdd_config, linkSpeedRssiLow,
1949 VAR_FLAGS_OPTIONAL |
1950 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1951 CFG_LINK_SPEED_RSSI_LOW_DEFAULT,
1952 CFG_LINK_SPEED_RSSI_LOW_MIN,
1953 CFG_LINK_SPEED_RSSI_LOW_MAX,
1954 NULL, 0),
1955
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001956 REG_DYNAMIC_VARIABLE(CFG_ROAM_PREFER_5GHZ, WLAN_PARAM_Integer,
1957 struct hdd_config, nRoamPrefer5GHz,
1958 VAR_FLAGS_OPTIONAL |
1959 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1960 CFG_ROAM_PREFER_5GHZ_DEFAULT,
1961 CFG_ROAM_PREFER_5GHZ_MIN,
1962 CFG_ROAM_PREFER_5GHZ_MAX,
1963 cb_notify_set_roam_prefer5_g_hz, 0),
1964
1965 REG_DYNAMIC_VARIABLE(CFG_ROAM_INTRA_BAND, WLAN_PARAM_Integer,
1966 struct hdd_config, nRoamIntraBand,
1967 VAR_FLAGS_OPTIONAL |
1968 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1969 CFG_ROAM_INTRA_BAND_DEFAULT,
1970 CFG_ROAM_INTRA_BAND_MIN,
1971 CFG_ROAM_INTRA_BAND_MAX,
1972 cb_notify_set_roam_intra_band, 0),
1973
1974 REG_DYNAMIC_VARIABLE(CFG_ROAM_SCAN_N_PROBES, WLAN_PARAM_Integer,
1975 struct hdd_config, nProbes,
1976 VAR_FLAGS_OPTIONAL |
1977 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1978 CFG_ROAM_SCAN_N_PROBES_DEFAULT,
1979 CFG_ROAM_SCAN_N_PROBES_MIN,
1980 CFG_ROAM_SCAN_N_PROBES_MAX,
1981 cb_notify_set_roam_scan_n_probes, 0),
1982
1983 REG_DYNAMIC_VARIABLE(CFG_ROAM_SCAN_HOME_AWAY_TIME, WLAN_PARAM_Integer,
1984 struct hdd_config, nRoamScanHomeAwayTime,
1985 VAR_FLAGS_OPTIONAL |
1986 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1987 CFG_ROAM_SCAN_HOME_AWAY_TIME_DEFAULT,
1988 CFG_ROAM_SCAN_HOME_AWAY_TIME_MIN,
1989 CFG_ROAM_SCAN_HOME_AWAY_TIME_MAX,
1990 cb_notify_set_roam_scan_home_away_time, 0),
1991
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001992 REG_VARIABLE(CFG_P2P_DEVICE_ADDRESS_ADMINISTRATED_NAME,
1993 WLAN_PARAM_Integer,
1994 struct hdd_config, isP2pDeviceAddrAdministrated,
1995 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1996 CFG_P2P_DEVICE_ADDRESS_ADMINISTRATED_DEFAULT,
1997 CFG_P2P_DEVICE_ADDRESS_ADMINISTRATED_MIN,
1998 CFG_P2P_DEVICE_ADDRESS_ADMINISTRATED_MAX),
1999
2000 REG_VARIABLE(CFG_ENABLE_MCC_ENABLED_NAME, WLAN_PARAM_Integer,
2001 struct hdd_config, enableMCC,
2002 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2003 CFG_ENABLE_MCC_ENABLED_DEFAULT,
2004 CFG_ENABLE_MCC_ENABLED_MIN,
2005 CFG_ENABLE_MCC_ENABLED_MAX),
2006
2007 REG_VARIABLE(CFG_ALLOW_MCC_GO_DIFF_BI_NAME, WLAN_PARAM_Integer,
2008 struct hdd_config, allowMCCGODiffBI,
2009 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2010 CFG_ALLOW_MCC_GO_DIFF_BI_DEFAULT,
2011 CFG_ALLOW_MCC_GO_DIFF_BI_MIN,
2012 CFG_ALLOW_MCC_GO_DIFF_BI_MAX),
2013
2014 REG_VARIABLE(CFG_THERMAL_MIGRATION_ENABLE_NAME, WLAN_PARAM_Integer,
2015 struct hdd_config, thermalMitigationEnable,
2016 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2017 CFG_THERMAL_MIGRATION_ENABLE_DEFAULT,
2018 CFG_THERMAL_MIGRATION_ENABLE_MIN,
2019 CFG_THERMAL_MIGRATION_ENABLE_MAX),
2020
2021 REG_VARIABLE(CFG_THROTTLE_PERIOD_NAME, WLAN_PARAM_Integer,
2022 struct hdd_config, throttlePeriod,
2023 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2024 CFG_THROTTLE_PERIOD_DEFAULT,
2025 CFG_THROTTLE_PERIOD_MIN,
2026 CFG_THROTTLE_PERIOD_MAX),
2027
Poddar, Siddarth83905022016-04-16 17:56:08 -07002028 REG_VARIABLE(CFG_THROTTLE_DUTY_CYCLE_LEVEL0_NAME, WLAN_PARAM_Integer,
2029 struct hdd_config, throttle_dutycycle_level0,
2030 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2031 CFG_THROTTLE_DUTY_CYCLE_LEVEL0_DEFAULT,
2032 CFG_THROTTLE_DUTY_CYCLE_LEVEL0_MIN,
2033 CFG_THROTTLE_DUTY_CYCLE_LEVEL0_MAX),
2034
2035 REG_VARIABLE(CFG_THROTTLE_DUTY_CYCLE_LEVEL1_NAME, WLAN_PARAM_Integer,
2036 struct hdd_config, throttle_dutycycle_level1,
2037 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2038 CFG_THROTTLE_DUTY_CYCLE_LEVEL1_DEFAULT,
2039 CFG_THROTTLE_DUTY_CYCLE_LEVEL1_MIN,
2040 CFG_THROTTLE_DUTY_CYCLE_LEVEL1_MAX),
2041
2042 REG_VARIABLE(CFG_THROTTLE_DUTY_CYCLE_LEVEL2_NAME, WLAN_PARAM_Integer,
2043 struct hdd_config, throttle_dutycycle_level2,
2044 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2045 CFG_THROTTLE_DUTY_CYCLE_LEVEL2_DEFAULT,
2046 CFG_THROTTLE_DUTY_CYCLE_LEVEL2_MIN,
2047 CFG_THROTTLE_DUTY_CYCLE_LEVEL2_MAX),
2048
2049 REG_VARIABLE(CFG_THROTTLE_DUTY_CYCLE_LEVEL3_NAME, WLAN_PARAM_Integer,
2050 struct hdd_config, throttle_dutycycle_level3,
2051 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2052 CFG_THROTTLE_DUTY_CYCLE_LEVEL3_DEFAULT,
2053 CFG_THROTTLE_DUTY_CYCLE_LEVEL3_MIN,
2054 CFG_THROTTLE_DUTY_CYCLE_LEVEL3_MAX),
2055
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002056 REG_VARIABLE(CFG_ENABLE_MODULATED_DTIM_NAME, WLAN_PARAM_Integer,
2057 struct hdd_config, enableModulatedDTIM,
2058 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2059 CFG_ENABLE_MODULATED_DTIM_DEFAULT,
2060 CFG_ENABLE_MODULATED_DTIM_MIN,
2061 CFG_ENABLE_MODULATED_DTIM_MAX),
2062
2063 REG_VARIABLE(CFG_MC_ADDR_LIST_ENABLE_NAME, WLAN_PARAM_Integer,
2064 struct hdd_config, fEnableMCAddrList,
2065 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2066 CFG_MC_ADDR_LIST_ENABLE_DEFAULT,
2067 CFG_MC_ADDR_LIST_ENABLE_MIN,
2068 CFG_MC_ADDR_LIST_ENABLE_MAX),
2069
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002070 REG_VARIABLE(CFG_VHT_CHANNEL_WIDTH, WLAN_PARAM_Integer,
2071 struct hdd_config, vhtChannelWidth,
2072 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2073 CFG_VHT_CHANNEL_WIDTH_DEFAULT,
2074 CFG_VHT_CHANNEL_WIDTH_MIN,
2075 CFG_VHT_CHANNEL_WIDTH_MAX),
2076
2077 REG_VARIABLE(CFG_VHT_ENABLE_RX_MCS_8_9, WLAN_PARAM_Integer,
2078 struct hdd_config, vhtRxMCS,
2079 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2080 CFG_VHT_ENABLE_RX_MCS_8_9_DEFAULT,
2081 CFG_VHT_ENABLE_RX_MCS_8_9_MIN,
2082 CFG_VHT_ENABLE_RX_MCS_8_9_MAX),
2083
2084 REG_VARIABLE(CFG_VHT_ENABLE_TX_MCS_8_9, WLAN_PARAM_Integer,
2085 struct hdd_config, vhtTxMCS,
2086 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2087 CFG_VHT_ENABLE_TX_MCS_8_9_DEFAULT,
2088 CFG_VHT_ENABLE_TX_MCS_8_9_MIN,
2089 CFG_VHT_ENABLE_TX_MCS_8_9_MAX),
2090
2091 REG_VARIABLE(CFG_VHT_ENABLE_RX_MCS2x2_8_9, WLAN_PARAM_Integer,
2092 struct hdd_config, vhtRxMCS2x2,
2093 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2094 CFG_VHT_ENABLE_RX_MCS2x2_8_9_DEFAULT,
2095 CFG_VHT_ENABLE_RX_MCS2x2_8_9_MIN,
2096 CFG_VHT_ENABLE_RX_MCS2x2_8_9_MAX),
2097
2098 REG_VARIABLE(CFG_VHT_ENABLE_TX_MCS2x2_8_9, WLAN_PARAM_Integer,
2099 struct hdd_config, vhtTxMCS2x2,
2100 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2101 CFG_VHT_ENABLE_TX_MCS2x2_8_9_DEFAULT,
2102 CFG_VHT_ENABLE_TX_MCS2x2_8_9_MIN,
2103 CFG_VHT_ENABLE_TX_MCS2x2_8_9_MAX),
2104
2105 REG_VARIABLE(CFG_VHT_ENABLE_2x2_CAP_FEATURE, WLAN_PARAM_Integer,
2106 struct hdd_config, enable2x2,
2107 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2108 CFG_VHT_ENABLE_2x2_CAP_FEATURE_DEFAULT,
2109 CFG_VHT_ENABLE_2x2_CAP_FEATURE_MIN,
2110 CFG_VHT_ENABLE_2x2_CAP_FEATURE_MAX),
2111
Krunal Soni158bfe62017-08-02 12:33:08 -07002112 REG_VARIABLE(CFG_DISABLE_HIGH_HT_RX_MCS_2x2, WLAN_PARAM_Integer,
2113 struct hdd_config, disable_high_ht_mcs_2x2,
2114 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2115 CFG_DISABLE_HIGH_HT_RX_MCS_2x2_DEFAULT,
2116 CFG_DISABLE_HIGH_HT_RX_MCS_2x2_MIN,
2117 CFG_DISABLE_HIGH_HT_RX_MCS_2x2_MAX),
2118
Nitesh Shah0e5c7322017-03-23 14:55:11 +05302119 REG_VARIABLE(CFG_VDEV_TYPE_NSS_2G, WLAN_PARAM_Integer,
Kiran Kumar Lokere666bf852016-05-02 12:23:02 -07002120 struct hdd_config, vdev_type_nss_2g,
2121 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2122 CFG_VDEV_TYPE_NSS_2G_DEFAULT,
2123 CFG_VDEV_TYPE_NSS_2G_MIN,
2124 CFG_VDEV_TYPE_NSS_2G_MAX),
2125
Kiran Kumar Lokere1aa9c9a2016-10-05 18:50:59 -07002126 REG_VARIABLE(CFG_STA_PREFER_80MHZ_OVER_160MHZ, WLAN_PARAM_Integer,
2127 struct hdd_config, sta_prefer_80MHz_over_160MHz,
2128 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2129 CFG_STA_PREFER_80MHZ_OVER_160MHZ_DEFAULT,
2130 CFG_STA_PREFER_80MHZ_OVER_160MHZ_MIN,
2131 CFG_STA_PREFER_80MHZ_OVER_160MHZ_MAX),
2132
Nitesh Shah0e5c7322017-03-23 14:55:11 +05302133 REG_VARIABLE(CFG_VDEV_TYPE_NSS_5G, WLAN_PARAM_Integer,
Kiran Kumar Lokere666bf852016-05-02 12:23:02 -07002134 struct hdd_config, vdev_type_nss_5g,
2135 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2136 CFG_VDEV_TYPE_NSS_5G_DEFAULT,
2137 CFG_VDEV_TYPE_NSS_5G_MIN,
2138 CFG_VDEV_TYPE_NSS_5G_MAX),
2139
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002140 REG_VARIABLE(CFG_VHT_ENABLE_MU_BFORMEE_CAP_FEATURE, WLAN_PARAM_Integer,
2141 struct hdd_config, enableMuBformee,
2142 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2143 CFG_VHT_ENABLE_MU_BFORMEE_CAP_FEATURE_DEFAULT,
2144 CFG_VHT_ENABLE_MU_BFORMEE_CAP_FEATURE_MIN,
2145 CFG_VHT_ENABLE_MU_BFORMEE_CAP_FEATURE_MAX),
2146
2147 REG_VARIABLE(CFG_VHT_ENABLE_PAID_FEATURE, WLAN_PARAM_Integer,
2148 struct hdd_config, enableVhtpAid,
2149 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2150 CFG_VHT_ENABLE_PAID_FEATURE_DEFAULT,
2151 CFG_VHT_ENABLE_PAID_FEATURE_MIN,
2152 CFG_VHT_ENABLE_PAID_FEATURE_MAX),
2153
2154 REG_VARIABLE(CFG_VHT_ENABLE_GID_FEATURE, WLAN_PARAM_Integer,
2155 struct hdd_config, enableVhtGid,
2156 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2157 CFG_VHT_ENABLE_GID_FEATURE_DEFAULT,
2158 CFG_VHT_ENABLE_GID_FEATURE_MIN,
2159 CFG_VHT_ENABLE_GID_FEATURE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002160
2161 REG_VARIABLE(CFG_VHT_ENABLE_1x1_TX_CHAINMASK, WLAN_PARAM_Integer,
2162 struct hdd_config, txchainmask1x1,
2163 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2164 CFG_VHT_ENABLE_1x1_TX_CHAINMASK_DEFAULT,
2165 CFG_VHT_ENABLE_1x1_TX_CHAINMASK_MIN,
2166 CFG_VHT_ENABLE_1x1_TX_CHAINMASK_MAX),
2167
2168 REG_VARIABLE(CFG_VHT_ENABLE_1x1_RX_CHAINMASK, WLAN_PARAM_Integer,
2169 struct hdd_config, rxchainmask1x1,
2170 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2171 CFG_VHT_ENABLE_1x1_RX_CHAINMASK_DEFAULT,
2172 CFG_VHT_ENABLE_1x1_RX_CHAINMASK_MIN,
2173 CFG_VHT_ENABLE_1x1_RX_CHAINMASK_MAX),
2174
2175 REG_VARIABLE(CFG_ENABLE_AMPDUPS_FEATURE, WLAN_PARAM_Integer,
2176 struct hdd_config, enableAmpduPs,
2177 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2178 CFG_ENABLE_AMPDUPS_FEATURE_DEFAULT,
2179 CFG_ENABLE_AMPDUPS_FEATURE_MIN,
2180 CFG_ENABLE_AMPDUPS_FEATURE_MAX),
2181
2182 REG_VARIABLE(CFG_HT_ENABLE_SMPS_CAP_FEATURE, WLAN_PARAM_Integer,
2183 struct hdd_config, enableHtSmps,
2184 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2185 CFG_HT_ENABLE_SMPS_CAP_FEATURE_DEFAULT,
2186 CFG_HT_ENABLE_SMPS_CAP_FEATURE_MIN,
2187 CFG_HT_ENABLE_SMPS_CAP_FEATURE_MAX),
2188
2189 REG_VARIABLE(CFG_HT_SMPS_CAP_FEATURE, WLAN_PARAM_Integer,
2190 struct hdd_config, htSmps,
2191 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2192 CFG_HT_SMPS_CAP_FEATURE_DEFAULT,
2193 CFG_HT_SMPS_CAP_FEATURE_MIN,
2194 CFG_HT_SMPS_CAP_FEATURE_MAX),
2195
2196 REG_VARIABLE(CFG_DISABLE_DFS_CH_SWITCH, WLAN_PARAM_Integer,
2197 struct hdd_config, disableDFSChSwitch,
2198 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2199 CFG_DISABLE_DFS_CH_SWITCH_DEFAULT,
2200 CFG_DISABLE_DFS_CH_SWITCH_MIN,
2201 CFG_DISABLE_DFS_CH_SWITCH_MAX),
2202
2203 REG_VARIABLE(CFG_ENABLE_DFS_MASTER_CAPABILITY, WLAN_PARAM_Integer,
2204 struct hdd_config, enableDFSMasterCap,
2205 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2206 CFG_ENABLE_DFS_MASTER_CAPABILITY_DEFAULT,
2207 CFG_ENABLE_DFS_MASTER_CAPABILITY_MIN,
2208 CFG_ENABLE_DFS_MASTER_CAPABILITY_MAX),
2209
2210 REG_DYNAMIC_VARIABLE(CFG_SAP_PREFERRED_CHANNEL_LOCATION,
2211 WLAN_PARAM_Integer,
2212 struct hdd_config, gSapPreferredChanLocation,
2213 VAR_FLAGS_OPTIONAL |
2214 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2215 CFG_SAP_PREFERRED_CHANNEL_LOCATION_DEFAULT,
2216 CFG_SAP_PREFERRED_CHANNEL_LOCATION_MIN,
2217 CFG_SAP_PREFERRED_CHANNEL_LOCATION_MAX,
2218 cb_notify_set_g_sap_preferred_chan_location, 0),
2219 REG_DYNAMIC_VARIABLE(CFG_DISABLE_DFS_JAPAN_W53, WLAN_PARAM_Integer,
2220 struct hdd_config, gDisableDfsJapanW53,
2221 VAR_FLAGS_OPTIONAL |
2222 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2223 CFG_DISABLE_DFS_JAPAN_W53_DEFAULT,
2224 CFG_DISABLE_DFS_JAPAN_W53_MIN,
2225 CFG_DISABLE_DFS_JAPAN_W53_MAX,
2226 ch_notify_set_g_disable_dfs_japan_w53, 0),
Hong Shi417824f2017-01-12 02:31:14 +08002227
2228 REG_VARIABLE(CFG_MAX_HT_MCS_FOR_TX_DATA, WLAN_PARAM_HexInteger,
2229 struct hdd_config, max_ht_mcs_txdata,
2230 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2231 CFG_MAX_HT_MCS_FOR_TX_DATA_DEFAULT,
2232 CFG_MAX_HT_MCS_FOR_TX_DATA_MIN,
2233 CFG_MAX_HT_MCS_FOR_TX_DATA_MAX),
2234
Will Huang496b36c2017-07-11 16:38:50 +08002235 REG_VARIABLE(CFG_SAP_GET_PEER_INFO, WLAN_PARAM_Integer,
2236 struct hdd_config, sap_get_peer_info,
2237 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2238 CFG_SAP_GET_PEER_INFO_DEFAULT,
2239 CFG_SAP_GET_PEER_INFO_MIN,
2240 CFG_SAP_GET_PEER_INFO_MAX),
2241
Hong Shia9ef8712017-02-19 21:54:02 +08002242 REG_VARIABLE(CFG_DISABLE_ABG_RATE_FOR_TX_DATA, WLAN_PARAM_Integer,
2243 struct hdd_config, disable_abg_rate_txdata,
2244 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2245 CFG_DISABLE_ABG_RATE_FOR_TX_DATA_DEFAULT,
2246 CFG_DISABLE_ABG_RATE_FOR_TX_DATA_MIN,
2247 CFG_DISABLE_ABG_RATE_FOR_TX_DATA_MAX),
2248
Hong Shib90718f2017-02-20 00:57:22 +08002249 REG_VARIABLE(CFG_RATE_FOR_TX_MGMT, WLAN_PARAM_HexInteger,
2250 struct hdd_config, rate_for_tx_mgmt,
2251 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2252 CFG_RATE_FOR_TX_MGMT_DEFAULT,
2253 CFG_RATE_FOR_TX_MGMT_MIN,
2254 CFG_RATE_FOR_TX_MGMT_MAX),
2255
Hong Shi2d384fd2017-05-22 18:38:41 +08002256 REG_VARIABLE(CFG_RATE_FOR_TX_MGMT_2G, WLAN_PARAM_HexInteger,
2257 struct hdd_config, rate_for_tx_mgmt_2g,
2258 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2259 CFG_RATE_FOR_TX_MGMT_2G_DEFAULT,
2260 CFG_RATE_FOR_TX_MGMT_2G_MIN,
2261 CFG_RATE_FOR_TX_MGMT_2G_MAX),
2262
2263 REG_VARIABLE(CFG_RATE_FOR_TX_MGMT_5G, WLAN_PARAM_HexInteger,
2264 struct hdd_config, rate_for_tx_mgmt_5g,
2265 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2266 CFG_RATE_FOR_TX_MGMT_5G_DEFAULT,
2267 CFG_RATE_FOR_TX_MGMT_5G_MIN,
2268 CFG_RATE_FOR_TX_MGMT_5G_MAX),
2269
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002270 REG_VARIABLE(CFG_ENABLE_FIRST_SCAN_2G_ONLY_NAME, WLAN_PARAM_Integer,
2271 struct hdd_config, enableFirstScan2GOnly,
2272 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2273 CFG_ENABLE_FIRST_SCAN_2G_ONLY_DEFAULT,
2274 CFG_ENABLE_FIRST_SCAN_2G_ONLY_MIN,
2275 CFG_ENABLE_FIRST_SCAN_2G_ONLY_MAX),
2276
2277 REG_VARIABLE(CFG_ENABLE_SKIP_DFS_IN_P2P_SEARCH_NAME, WLAN_PARAM_Integer,
2278 struct hdd_config, skipDfsChnlInP2pSearch,
2279 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2280 CFG_ENABLE_SKIP_DFS_IN_P2P_SEARCH_DEFAULT,
2281 CFG_ENABLE_SKIP_DFS_IN_P2P_SEARCH_MIN,
2282 CFG_ENABLE_SKIP_DFS_IN_P2P_SEARCH_MAX),
2283
2284 REG_VARIABLE(CFG_IGNORE_DYNAMIC_DTIM_IN_P2P_MODE_NAME,
2285 WLAN_PARAM_Integer,
2286 struct hdd_config, ignoreDynamicDtimInP2pMode,
2287 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2288 CFG_IGNORE_DYNAMIC_DTIM_IN_P2P_MODE_DEFAULT,
2289 CFG_IGNORE_DYNAMIC_DTIM_IN_P2P_MODE_MIN,
2290 CFG_IGNORE_DYNAMIC_DTIM_IN_P2P_MODE_MAX),
2291
2292 REG_VARIABLE(CFG_ENABLE_RX_STBC, WLAN_PARAM_Integer,
2293 struct hdd_config, enableRxSTBC,
2294 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2295 CFG_ENABLE_RX_STBC_DEFAULT,
2296 CFG_ENABLE_RX_STBC_MIN,
2297 CFG_ENABLE_RX_STBC_MAX),
2298
2299 REG_VARIABLE(CFG_ENABLE_TX_STBC, WLAN_PARAM_Integer,
2300 struct hdd_config, enableTxSTBC,
2301 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2302 CFG_ENABLE_TX_STBC_DEFAULT,
2303 CFG_ENABLE_TX_STBC_MIN,
2304 CFG_ENABLE_TX_STBC_MAX),
2305
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002306 REG_VARIABLE(CFG_PPS_ENABLE_5G_EBT, WLAN_PARAM_Integer,
2307 struct hdd_config, enable5gEBT,
2308 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2309 CFG_PPS_ENABLE_5G_EBT_FEATURE_DEFAULT,
2310 CFG_PPS_ENABLE_5G_EBT_FEATURE_MIN,
2311 CFG_PPS_ENABLE_5G_EBT_FEATURE_MAX),
2312
Dustin Brownfe7aa872017-06-26 10:52:08 -07002313 REG_VARIABLE(CFG_PREVENT_LINK_DOWN_NAME, WLAN_PARAM_Integer,
2314 struct hdd_config, prevent_link_down,
2315 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2316 CFG_PREVENT_LINK_DOWN_DEFAULT,
2317 CFG_PREVENT_LINK_DOWN_MIN,
2318 CFG_PREVENT_LINK_DOWN_MAX),
2319
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002320#ifdef FEATURE_WLAN_TDLS
2321 REG_VARIABLE(CFG_TDLS_SUPPORT_ENABLE, WLAN_PARAM_Integer,
2322 struct hdd_config, fEnableTDLSSupport,
2323 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2324 CFG_TDLS_SUPPORT_ENABLE_DEFAULT,
2325 CFG_TDLS_SUPPORT_ENABLE_MIN,
2326 CFG_TDLS_SUPPORT_ENABLE_MAX),
2327
2328 REG_VARIABLE(CFG_TDLS_IMPLICIT_TRIGGER, WLAN_PARAM_Integer,
2329 struct hdd_config, fEnableTDLSImplicitTrigger,
2330 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2331 CFG_TDLS_IMPLICIT_TRIGGER_DEFAULT,
2332 CFG_TDLS_IMPLICIT_TRIGGER_MIN,
2333 CFG_TDLS_IMPLICIT_TRIGGER_MAX),
2334
2335 REG_VARIABLE(CFG_TDLS_TX_STATS_PERIOD, WLAN_PARAM_Integer,
2336 struct hdd_config, fTDLSTxStatsPeriod,
2337 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2338 CFG_TDLS_TX_STATS_PERIOD_DEFAULT,
2339 CFG_TDLS_TX_STATS_PERIOD_MIN,
2340 CFG_TDLS_TX_STATS_PERIOD_MAX),
2341
2342 REG_VARIABLE(CFG_TDLS_TX_PACKET_THRESHOLD, WLAN_PARAM_Integer,
2343 struct hdd_config, fTDLSTxPacketThreshold,
2344 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2345 CFG_TDLS_TX_PACKET_THRESHOLD_DEFAULT,
2346 CFG_TDLS_TX_PACKET_THRESHOLD_MIN,
2347 CFG_TDLS_TX_PACKET_THRESHOLD_MAX),
2348
2349 REG_VARIABLE(CFG_TDLS_MAX_DISCOVERY_ATTEMPT, WLAN_PARAM_Integer,
2350 struct hdd_config, fTDLSMaxDiscoveryAttempt,
2351 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2352 CFG_TDLS_MAX_DISCOVERY_ATTEMPT_DEFAULT,
2353 CFG_TDLS_MAX_DISCOVERY_ATTEMPT_MIN,
2354 CFG_TDLS_MAX_DISCOVERY_ATTEMPT_MAX),
2355
Kabilan Kannanca670be2015-11-23 01:56:12 -08002356 REG_VARIABLE(CFG_TDLS_IDLE_TIMEOUT, WLAN_PARAM_Integer,
2357 struct hdd_config, tdls_idle_timeout,
2358 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2359 CFG_TDLS_IDLE_TIMEOUT_DEFAULT,
2360 CFG_TDLS_IDLE_TIMEOUT_MIN,
2361 CFG_TDLS_IDLE_TIMEOUT_MAX),
2362
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002363 REG_VARIABLE(CFG_TDLS_IDLE_PACKET_THRESHOLD, WLAN_PARAM_Integer,
2364 struct hdd_config, fTDLSIdlePacketThreshold,
2365 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2366 CFG_TDLS_IDLE_PACKET_THRESHOLD_DEFAULT,
2367 CFG_TDLS_IDLE_PACKET_THRESHOLD_MIN,
2368 CFG_TDLS_IDLE_PACKET_THRESHOLD_MAX),
2369
2370 REG_VARIABLE(CFG_TDLS_RSSI_TRIGGER_THRESHOLD, WLAN_PARAM_SignedInteger,
2371 struct hdd_config, fTDLSRSSITriggerThreshold,
2372 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2373 CFG_TDLS_RSSI_TRIGGER_THRESHOLD_DEFAULT,
2374 CFG_TDLS_RSSI_TRIGGER_THRESHOLD_MIN,
2375 CFG_TDLS_RSSI_TRIGGER_THRESHOLD_MAX),
2376
2377 REG_VARIABLE(CFG_TDLS_RSSI_TEARDOWN_THRESHOLD, WLAN_PARAM_SignedInteger,
2378 struct hdd_config, fTDLSRSSITeardownThreshold,
2379 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2380 CFG_TDLS_RSSI_TEARDOWN_THRESHOLD_DEFAULT,
2381 CFG_TDLS_RSSI_TEARDOWN_THRESHOLD_MIN,
2382 CFG_TDLS_RSSI_TEARDOWN_THRESHOLD_MAX),
2383
2384 REG_VARIABLE(CFG_TDLS_RSSI_DELTA, WLAN_PARAM_SignedInteger,
2385 struct hdd_config, fTDLSRSSIDelta,
2386 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2387 CFG_TDLS_RSSI_DELTA_DEFAULT,
2388 CFG_TDLS_RSSI_DELTA_MIN,
2389 CFG_TDLS_RSSI_DELTA_MAX),
2390
2391 REG_VARIABLE(CFG_TDLS_QOS_WMM_UAPSD_MASK_NAME, WLAN_PARAM_HexInteger,
2392 struct hdd_config, fTDLSUapsdMask,
2393 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2394 CFG_TDLS_QOS_WMM_UAPSD_MASK_DEFAULT,
2395 CFG_TDLS_QOS_WMM_UAPSD_MASK_MIN,
2396 CFG_TDLS_QOS_WMM_UAPSD_MASK_MAX),
2397
2398 REG_VARIABLE(CFG_TDLS_BUFFER_STA_SUPPORT_ENABLE, WLAN_PARAM_Integer,
2399 struct hdd_config, fEnableTDLSBufferSta,
2400 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2401 CFG_TDLS_BUFFER_STA_SUPPORT_ENABLE_DEFAULT,
2402 CFG_TDLS_BUFFER_STA_SUPPORT_ENABLE_MIN,
2403 CFG_TDLS_BUFFER_STA_SUPPORT_ENABLE_MAX),
2404
2405 REG_VARIABLE(CFG_TDLS_OFF_CHANNEL_SUPPORT_ENABLE, WLAN_PARAM_Integer,
2406 struct hdd_config, fEnableTDLSOffChannel,
2407 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2408 CFG_TDLS_OFF_CHANNEL_SUPPORT_ENABLE_DEFAULT,
2409 CFG_TDLS_OFF_CHANNEL_SUPPORT_ENABLE_MIN,
2410 CFG_TDLS_OFF_CHANNEL_SUPPORT_ENABLE_MAX),
2411
2412 REG_VARIABLE(CFG_TDLS_PREFERRED_OFF_CHANNEL_NUM, WLAN_PARAM_Integer,
2413 struct hdd_config, fTDLSPrefOffChanNum,
2414 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2415 CFG_TDLS_PREFERRED_OFF_CHANNEL_NUM_DEFAULT,
2416 CFG_TDLS_PREFERRED_OFF_CHANNEL_NUM_MIN,
2417 CFG_TDLS_PREFERRED_OFF_CHANNEL_NUM_MAX),
2418
2419 REG_VARIABLE(CFG_TDLS_PREFERRED_OFF_CHANNEL_BW, WLAN_PARAM_Integer,
2420 struct hdd_config, fTDLSPrefOffChanBandwidth,
2421 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2422 CFG_TDLS_PREFERRED_OFF_CHANNEL_BW_DEFAULT,
2423 CFG_TDLS_PREFERRED_OFF_CHANNEL_BW_MIN,
2424 CFG_TDLS_PREFERRED_OFF_CHANNEL_BW_MAX),
2425
2426 REG_VARIABLE(CFG_TDLS_PUAPSD_INACTIVITY_TIME, WLAN_PARAM_Integer,
2427 struct hdd_config, fTDLSPuapsdInactivityTimer,
2428 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2429 CFG_TDLS_PUAPSD_INACTIVITY_TIME_DEFAULT,
2430 CFG_TDLS_PUAPSD_INACTIVITY_TIME_MIN,
2431 CFG_TDLS_PUAPSD_INACTIVITY_TIME_MAX),
2432
2433 REG_VARIABLE(CFG_TDLS_PUAPSD_RX_FRAME_THRESHOLD, WLAN_PARAM_Integer,
2434 struct hdd_config, fTDLSRxFrameThreshold,
2435 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2436 CFG_TDLS_PUAPSD_RX_FRAME_THRESHOLD_DEFAULT,
2437 CFG_TDLS_PUAPSD_RX_FRAME_THRESHOLD_MIN,
2438 CFG_TDLS_PUAPSD_RX_FRAME_THRESHOLD_MAX),
2439
2440 REG_VARIABLE(CFG_TDLS_PUAPSD_PEER_TRAFFIC_IND_WINDOW,
2441 WLAN_PARAM_Integer,
2442 struct hdd_config, fTDLSPuapsdPTIWindow,
2443 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2444 CFG_TDLS_PUAPSD_PEER_TRAFFIC_IND_WINDOW_DEFAULT,
2445 CFG_TDLS_PUAPSD_PEER_TRAFFIC_IND_WINDOW_MIN,
2446 CFG_TDLS_PUAPSD_PEER_TRAFFIC_IND_WINDOW_MAX),
2447
2448 REG_VARIABLE(CFG_TDLS_PUAPSD_PEER_TRAFFIC_RSP_TIMEOUT,
2449 WLAN_PARAM_Integer,
2450 struct hdd_config, fTDLSPuapsdPTRTimeout,
2451 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2452 CFG_TDLS_PUAPSD_PEER_TRAFFIC_RSP_TIMEOUT_DEFAULT,
2453 CFG_TDLS_PUAPSD_PEER_TRAFFIC_RSP_TIMEOUT_MIN,
2454 CFG_TDLS_PUAPSD_PEER_TRAFFIC_RSP_TIMEOUT_MAX),
2455
2456 REG_VARIABLE(CFG_TDLS_EXTERNAL_CONTROL, WLAN_PARAM_Integer,
2457 struct hdd_config, fTDLSExternalControl,
2458 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2459 CFG_TDLS_EXTERNAL_CONTROL_DEFAULT,
2460 CFG_TDLS_EXTERNAL_CONTROL_MIN,
2461 CFG_TDLS_EXTERNAL_CONTROL_MAX),
2462 REG_VARIABLE(CFG_TDLS_WMM_MODE_ENABLE, WLAN_PARAM_Integer,
2463 struct hdd_config, fEnableTDLSWmmMode,
2464 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2465 CFG_TDLS_WMM_MODE_ENABLE_DEFAULT,
2466 CFG_TDLS_WMM_MODE_ENABLE_MIN,
2467 CFG_TDLS_WMM_MODE_ENABLE_MAX),
2468
2469 REG_VARIABLE(CFG_TDLS_SCAN_ENABLE, WLAN_PARAM_Integer,
2470 struct hdd_config, enable_tdls_scan,
2471 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2472 CFG_TDLS_SCAN_ENABLE_DEFAULT,
2473 CFG_TDLS_SCAN_ENABLE_MIN,
2474 CFG_TDLS_SCAN_ENABLE_MAX),
Kabilan Kannan421714b2015-11-23 04:44:59 -08002475
2476 REG_VARIABLE(CFG_TDLS_PEER_KICKOUT_THRESHOLD, WLAN_PARAM_Integer,
2477 struct hdd_config, tdls_peer_kickout_threshold,
2478 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2479 CFG_TDLS_PEER_KICKOUT_THRESHOLD_DEFAULT,
2480 CFG_TDLS_PEER_KICKOUT_THRESHOLD_MIN,
2481 CFG_TDLS_PEER_KICKOUT_THRESHOLD_MAX),
2482
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002483#endif
2484
2485#ifdef WLAN_SOFTAP_VSTA_FEATURE
2486 REG_VARIABLE(CFG_VSTA_SUPPORT_ENABLE, WLAN_PARAM_Integer,
2487 struct hdd_config, fEnableVSTASupport,
2488 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2489 CFG_VSTA_SUPPORT_ENABLE_DEFAULT,
2490 CFG_VSTA_SUPPORT_ENABLE_MIN,
2491 CFG_VSTA_SUPPORT_ENABLE_MAX),
2492#endif
2493 REG_VARIABLE(CFG_ENABLE_LPWR_IMG_TRANSITION_NAME, WLAN_PARAM_Integer,
2494 struct hdd_config, enableLpwrImgTransition,
2495 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2496 CFG_ENABLE_LPWR_IMG_TRANSITION_DEFAULT,
2497 CFG_ENABLE_LPWR_IMG_TRANSITION_MIN,
2498 CFG_ENABLE_LPWR_IMG_TRANSITION_MAX),
2499
2500 REG_VARIABLE(CFG_ENABLE_LPWR_IMG_TRANSITION_NAME, WLAN_PARAM_Integer,
2501 struct hdd_config, enableLpwrImgTransition,
2502 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2503 CFG_ENABLE_LPWR_IMG_TRANSITION_DEFAULT,
2504 CFG_ENABLE_LPWR_IMG_TRANSITION_MIN,
2505 CFG_ENABLE_LPWR_IMG_TRANSITION_MAX),
2506
2507 REG_VARIABLE(CFG_SCAN_AGING_PARAM_NAME, WLAN_PARAM_Integer,
2508 struct hdd_config, scanAgingTimeout,
2509 VAR_FLAGS_OPTIONAL,
2510 CFG_SCAN_AGING_PARAM_DEFAULT,
2511 CFG_SCAN_AGING_PARAM_MIN,
2512 CFG_SCAN_AGING_PARAM_MAX),
2513
2514 REG_VARIABLE(CFG_TX_LDPC_ENABLE_FEATURE, WLAN_PARAM_Integer,
Krunal Sonia2c0e412017-05-04 14:12:41 +05302515 struct hdd_config, enable_tx_ldpc,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002516 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2517 CFG_TX_LDPC_ENABLE_FEATURE_DEFAULT,
2518 CFG_TX_LDPC_ENABLE_FEATURE_MIN,
2519 CFG_TX_LDPC_ENABLE_FEATURE_MAX),
2520
Krunal Sonia2c0e412017-05-04 14:12:41 +05302521 REG_VARIABLE(CFG_ENABLE_RX_LDPC, WLAN_PARAM_Integer,
2522 struct hdd_config, enable_rx_ldpc,
2523 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2524 CFG_ENABLE_RX_LDPC_DEFAULT,
2525 CFG_ENABLE_RX_LDPC_MIN,
2526 CFG_ENABLE_RX_LDPC_MAX),
2527
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002528 REG_VARIABLE(CFG_ENABLE_MCC_ADATIVE_SCHEDULER_ENABLED_NAME,
2529 WLAN_PARAM_Integer,
2530 struct hdd_config, enableMCCAdaptiveScheduler,
2531 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2532 CFG_ENABLE_MCC_ADATIVE_SCHEDULER_ENABLED_DEFAULT,
2533 CFG_ENABLE_MCC_ADATIVE_SCHEDULER_ENABLED_MIN,
2534 CFG_ENABLE_MCC_ADATIVE_SCHEDULER_ENABLED_MAX),
2535
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002536 REG_VARIABLE(CFG_IBSS_ADHOC_CHANNEL_5GHZ_NAME, WLAN_PARAM_Integer,
2537 struct hdd_config, AdHocChannel5G,
2538 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2539 CFG_IBSS_ADHOC_CHANNEL_5GHZ_DEFAULT,
2540 CFG_IBSS_ADHOC_CHANNEL_5GHZ_MIN,
2541 CFG_IBSS_ADHOC_CHANNEL_5GHZ_MAX),
2542
2543 REG_VARIABLE(CFG_IBSS_ADHOC_CHANNEL_24GHZ_NAME, WLAN_PARAM_Integer,
2544 struct hdd_config, AdHocChannel24G,
2545 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2546 CFG_IBSS_ADHOC_CHANNEL_24GHZ_DEFAULT,
2547 CFG_IBSS_ADHOC_CHANNEL_24GHZ_MIN,
2548 CFG_IBSS_ADHOC_CHANNEL_24GHZ_MAX),
2549
2550 REG_VARIABLE(CFG_VHT_SU_BEAMFORMEE_CAP_FEATURE, WLAN_PARAM_Integer,
2551 struct hdd_config, enableTxBF,
2552 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2553 CFG_VHT_SU_BEAMFORMEE_CAP_FEATURE_DEFAULT,
2554 CFG_VHT_SU_BEAMFORMEE_CAP_FEATURE_MIN,
2555 CFG_VHT_SU_BEAMFORMEE_CAP_FEATURE_MAX),
2556
Kiran Kumar Lokere5302ab62015-12-16 16:03:16 -08002557 REG_VARIABLE(CFG_VHT_ENABLE_TXBF_SAP_MODE, WLAN_PARAM_Integer,
2558 struct hdd_config, enable_txbf_sap_mode,
2559 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2560 CFG_VHT_ENABLE_TXBF_SAP_MODE_DEFAULT,
2561 CFG_VHT_ENABLE_TXBF_SAP_MODE_MIN,
2562 CFG_VHT_ENABLE_TXBF_SAP_MODE_MAX),
2563
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002564 REG_VARIABLE(CFG_VHT_ENABLE_TXBF_IN_20MHZ, WLAN_PARAM_Integer,
2565 struct hdd_config, enableTxBFin20MHz,
2566 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2567 CFG_VHT_ENABLE_TXBF_IN_20MHZ_DEFAULT,
2568 CFG_VHT_ENABLE_TXBF_IN_20MHZ_MIN,
2569 CFG_VHT_ENABLE_TXBF_IN_20MHZ_MAX),
2570
2571 REG_VARIABLE(CFG_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED, WLAN_PARAM_Integer,
2572 struct hdd_config, txBFCsnValue,
2573 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2574 CFG_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED_DEFAULT,
2575 CFG_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED_MIN,
2576 CFG_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED_MAX),
2577
2578 REG_VARIABLE(CFG_VHT_ENABLE_TX_SU_BEAM_FORMER, WLAN_PARAM_Integer,
2579 struct hdd_config, enable_su_tx_bformer,
2580 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2581 CFG_VHT_ENABLE_TX_SU_BEAM_FORMER_DEFAULT,
2582 CFG_VHT_ENABLE_TX_SU_BEAM_FORMER_MIN,
2583 CFG_VHT_ENABLE_TX_SU_BEAM_FORMER_MAX),
2584
2585 REG_VARIABLE(CFG_SAP_ALLOW_ALL_CHANNEL_PARAM_NAME, WLAN_PARAM_Integer,
2586 struct hdd_config, sapAllowAllChannel,
2587 VAR_FLAGS_OPTIONAL,
2588 CFG_SAP_ALLOW_ALL_CHANNEL_PARAM_DEFAULT,
2589 CFG_SAP_ALLOW_ALL_CHANNEL_PARAM_MIN,
2590 CFG_SAP_ALLOW_ALL_CHANNEL_PARAM_MAX),
2591
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002592 REG_VARIABLE(CFG_DISABLE_LDPC_WITH_TXBF_AP, WLAN_PARAM_Integer,
2593 struct hdd_config, disableLDPCWithTxbfAP,
2594 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2595 CFG_DISABLE_LDPC_WITH_TXBF_AP_DEFAULT,
2596 CFG_DISABLE_LDPC_WITH_TXBF_AP_MIN,
2597 CFG_DISABLE_LDPC_WITH_TXBF_AP_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002598
2599 REG_DYNAMIC_VARIABLE(CFG_ENABLE_SSR, WLAN_PARAM_Integer,
2600 struct hdd_config, enableSSR,
2601 VAR_FLAGS_OPTIONAL |
2602 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2603 CFG_ENABLE_SSR_DEFAULT,
2604 CFG_ENABLE_SSR_MIN,
2605 CFG_ENABLE_SSR_MAX,
2606 cb_notify_set_enable_ssr, 0),
2607
2608 REG_VARIABLE(CFG_MAX_MEDIUM_TIME, WLAN_PARAM_Integer,
2609 struct hdd_config, cfgMaxMediumTime,
2610 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2611 CFG_MAX_MEDIUM_TIME_STADEFAULT,
2612 CFG_MAX_MEDIUM_TIME_STAMIN,
2613 CFG_MAX_MEDIUM_TIME_STAMAX),
2614
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002615 REG_VARIABLE(CFG_ENABLE_VHT_FOR_24GHZ_NAME, WLAN_PARAM_Integer,
2616 struct hdd_config, enableVhtFor24GHzBand,
2617 VAR_FLAGS_OPTIONAL,
2618 CFG_ENABLE_VHT_FOR_24GHZ_DEFAULT,
2619 CFG_ENABLE_VHT_FOR_24GHZ_MIN,
2620 CFG_ENABLE_VHT_FOR_24GHZ_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002621
Kapil Gupta4b2efbb2016-10-03 13:07:20 +05302622
2623 REG_VARIABLE(CFG_ENABLE_VENDOR_VHT_FOR_24GHZ_NAME, WLAN_PARAM_Integer,
2624 struct hdd_config, enable_sap_vendor_vht,
2625 VAR_FLAGS_OPTIONAL,
2626 CFG_ENABLE_VENDOR_VHT_FOR_24GHZ_DEFAULT,
2627 CFG_ENABLE_VENDOR_VHT_FOR_24GHZ_MIN,
2628 CFG_ENABLE_VENDOR_VHT_FOR_24GHZ_MAX),
2629
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002630 REG_DYNAMIC_VARIABLE(CFG_ENABLE_FAST_ROAM_IN_CONCURRENCY,
2631 WLAN_PARAM_Integer,
2632 struct hdd_config, bFastRoamInConIniFeatureEnabled,
2633 VAR_FLAGS_OPTIONAL |
2634 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2635 CFG_ENABLE_FAST_ROAM_IN_CONCURRENCY_DEFAULT,
2636 CFG_ENABLE_FAST_ROAM_IN_CONCURRENCY_MIN,
2637 CFG_ENABLE_FAST_ROAM_IN_CONCURRENCY_MAX,
2638 cb_notify_set_enable_fast_roam_in_concurrency, 0),
2639
2640 REG_VARIABLE(CFG_ENABLE_ADAPT_RX_DRAIN_NAME, WLAN_PARAM_Integer,
2641 struct hdd_config, fEnableAdaptRxDrain,
2642 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2643 CFG_ENABLE_ADAPT_RX_DRAIN_DEFAULT,
2644 CFG_ENABLE_ADAPT_RX_DRAIN_MIN,
2645 CFG_ENABLE_ADAPT_RX_DRAIN_MAX),
2646
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002647 REG_VARIABLE(CFG_ENABLE_HEART_BEAT_OFFLOAD, WLAN_PARAM_Integer,
2648 struct hdd_config, enableIbssHeartBeatOffload,
2649 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2650 CFG_ENABLE_HEART_BEAT_OFFLOAD_DEFAULT,
2651 CFG_ENABLE_HEART_BEAT_OFFLOAD_MIN,
2652 CFG_ENABLE_HEART_BEAT_OFFLOAD_MAX),
2653
2654 REG_VARIABLE(CFG_ANTENNA_DIVERSITY_PARAM_NAME, WLAN_PARAM_Integer,
2655 struct hdd_config, antennaDiversity,
2656 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2657 CFG_ANTENNA_DIVERSITY_PARAM_DEFAULT,
2658 CFG_ANTENNA_DIVERSITY_PARAM_MIN,
2659 CFG_ANTENNA_DIVERSITY_PARAM_MAX),
2660
2661 REG_VARIABLE(CFG_ENABLE_SNR_MONITORING_NAME, WLAN_PARAM_Integer,
2662 struct hdd_config, fEnableSNRMonitoring,
2663 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2664 CFG_ENABLE_SNR_MONITORING_DEFAULT,
2665 CFG_ENABLE_SNR_MONITORING_MIN,
2666 CFG_ENABLE_SNR_MONITORING_MAX),
2667
2668#ifdef FEATURE_WLAN_SCAN_PNO
2669 REG_VARIABLE(CFG_PNO_SCAN_SUPPORT, WLAN_PARAM_Integer,
2670 struct hdd_config, configPNOScanSupport,
2671 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2672 CFG_PNO_SCAN_SUPPORT_DEFAULT,
2673 CFG_PNO_SCAN_SUPPORT_DISABLE,
2674 CFG_PNO_SCAN_SUPPORT_ENABLE),
2675
2676 REG_VARIABLE(CFG_PNO_SCAN_TIMER_REPEAT_VALUE, WLAN_PARAM_Integer,
2677 struct hdd_config, configPNOScanTimerRepeatValue,
2678 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2679 CFG_PNO_SCAN_TIMER_REPEAT_VALUE_DEFAULT,
2680 CFG_PNO_SCAN_TIMER_REPEAT_VALUE_MIN,
2681 CFG_PNO_SCAN_TIMER_REPEAT_VALUE_MAX),
Srinivas Girigowdabdc98162015-09-17 11:06:07 -07002682
2683 REG_VARIABLE(CFG_PNO_SLOW_SCAN_MULTIPLIER, WLAN_PARAM_Integer,
2684 struct hdd_config, pno_slow_scan_multiplier,
2685 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2686 CFG_PNO_SLOW_SCAN_MULTIPLIER_DEFAULT,
2687 CFG_PNO_SLOW_SCAN_MULTIPLIER_MIN,
2688 CFG_PNO_SLOW_SCAN_MULTIPLIER_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002689#endif
Deepak Dhamdhere612392c2016-08-28 02:56:51 -07002690 REG_VARIABLE(CFG_MAX_AMSDU_NUM_NAME , WLAN_PARAM_Integer,
2691 struct hdd_config, max_amsdu_num,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002692 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
Deepak Dhamdhere612392c2016-08-28 02:56:51 -07002693 CFG_MAX_AMSDU_NUM_DEFAULT,
2694 CFG_MAX_AMSDU_NUM_MIN,
2695 CFG_MAX_AMSDU_NUM_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002696
2697 REG_VARIABLE(CFG_STRICT_5GHZ_PREF_BY_MARGIN, WLAN_PARAM_Integer,
2698 struct hdd_config, nSelect5GHzMargin,
2699 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2700 CFG_STRICT_5GHZ_PREF_BY_MARGIN_DEFAULT,
2701 CFG_STRICT_5GHZ_PREF_BY_MARGIN_MIN,
2702 CFG_STRICT_5GHZ_PREF_BY_MARGIN_MAX),
2703
2704 REG_VARIABLE(CFG_ENABLE_IP_TCP_UDP_CHKSUM_OFFLOAD, WLAN_PARAM_Integer,
2705 struct hdd_config, enable_ip_tcp_udp_checksum_offload,
2706 VAR_FLAGS_OPTIONAL,
2707 CFG_ENABLE_IP_TCP_UDP_CHKSUM_OFFLOAD_DEFAULT,
2708 CFG_ENABLE_IP_TCP_UDP_CHKSUM_OFFLOAD_DISABLE,
2709 CFG_ENABLE_IP_TCP_UDP_CHKSUM_OFFLOAD_ENABLE),
2710
2711 REG_VARIABLE(CFG_POWERSAVE_OFFLOAD_NAME, WLAN_PARAM_Integer,
2712 struct hdd_config, enablePowersaveOffload,
2713 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2714 CFG_POWERSAVE_OFFLOAD_DEFAULT,
2715 CFG_POWERSAVE_OFFLOAD_MIN,
2716 CFG_POWERSAVE_OFFLOAD_MAX),
2717
2718 REG_VARIABLE(CFG_ENABLE_FW_UART_PRINT_NAME, WLAN_PARAM_Integer,
2719 struct hdd_config, enablefwprint,
2720 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2721 CFG_ENABLE_FW_UART_PRINT_DEFAULT,
2722 CFG_ENABLE_FW_UART_PRINT_DISABLE,
2723 CFG_ENABLE_FW_UART_PRINT_ENABLE),
2724
2725 REG_VARIABLE(CFG_ENABLE_FW_LOG_NAME, WLAN_PARAM_Integer,
Komal Seelamc11bb222016-01-27 18:57:10 +05302726 struct hdd_config, enable_fw_log,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002727 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2728 CFG_ENABLE_FW_LOG_DEFAULT,
2729 CFG_ENABLE_FW_LOG_DISABLE,
Yuanyuan Liu7a97b8f2017-01-27 10:42:52 -08002730 CFG_ENABLE_FW_LOG_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002731
2732#ifdef IPA_OFFLOAD
2733 REG_VARIABLE(CFG_IPA_OFFLOAD_CONFIG_NAME, WLAN_PARAM_HexInteger,
2734 struct hdd_config, IpaConfig,
2735 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2736 CFG_IPA_OFFLOAD_CONFIG_DEFAULT,
2737 CFG_IPA_OFFLOAD_CONFIG_MIN,
2738 CFG_IPA_OFFLOAD_CONFIG_MAX),
2739
2740 REG_VARIABLE(CFG_IPA_DESC_SIZE_NAME, WLAN_PARAM_Integer,
2741 struct hdd_config, IpaDescSize,
2742 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2743 CFG_IPA_DESC_SIZE_DEFAULT,
2744 CFG_IPA_DESC_SIZE_MIN,
2745 CFG_IPA_DESC_SIZE_MAX),
2746
2747 REG_VARIABLE(CFG_IPA_HIGH_BANDWIDTH_MBPS, WLAN_PARAM_Integer,
2748 struct hdd_config, IpaHighBandwidthMbps,
2749 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2750 CFG_IPA_HIGH_BANDWIDTH_MBPS_DEFAULT,
2751 CFG_IPA_HIGH_BANDWIDTH_MBPS_MIN,
2752 CFG_IPA_HIGH_BANDWIDTH_MBPS_MAX),
2753
2754 REG_VARIABLE(CFG_IPA_MEDIUM_BANDWIDTH_MBPS, WLAN_PARAM_Integer,
2755 struct hdd_config, IpaMediumBandwidthMbps,
2756 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2757 CFG_IPA_MEDIUM_BANDWIDTH_MBPS_DEFAULT,
2758 CFG_IPA_MEDIUM_BANDWIDTH_MBPS_MIN,
2759 CFG_IPA_MEDIUM_BANDWIDTH_MBPS_MAX),
2760
2761 REG_VARIABLE(CFG_IPA_LOW_BANDWIDTH_MBPS, WLAN_PARAM_Integer,
2762 struct hdd_config, IpaLowBandwidthMbps,
2763 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2764 CFG_IPA_LOW_BANDWIDTH_MBPS_DEFAULT,
2765 CFG_IPA_LOW_BANDWIDTH_MBPS_MIN,
2766 CFG_IPA_LOW_BANDWIDTH_MBPS_MAX),
jiad14fe4fb2017-08-08 13:33:14 +08002767
2768 REG_VARIABLE(CFG_IPA_MCC_TX_DESC_SIZE, WLAN_PARAM_Integer,
2769 struct hdd_config, IpaMccTxDescSize,
2770 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2771 CFG_IPA_MCC_TX_DESC_SIZE_DEFAULT,
2772 CFG_IPA_MCC_TX_DESC_SIZE_MIN,
2773 CFG_IPA_MCC_TX_DESC_SIZE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002774#endif
2775
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002776 REG_VARIABLE(CFG_VHT_AMPDU_LEN_EXPONENT_NAME, WLAN_PARAM_Integer,
2777 struct hdd_config, fVhtAmpduLenExponent,
2778 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2779 CFG_VHT_AMPDU_LEN_EXPONENT_DEFAULT,
2780 CFG_VHT_AMPDU_LEN_EXPONENT_MIN,
2781 CFG_VHT_AMPDU_LEN_EXPONENT_MAX),
2782
2783 REG_VARIABLE(CFG_VHT_MPDU_LEN_NAME, WLAN_PARAM_Integer,
2784 struct hdd_config, vhtMpduLen,
2785 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2786 CFG_VHT_MPDU_LEN_DEFAULT,
2787 CFG_VHT_MPDU_LEN_MIN,
2788 CFG_VHT_MPDU_LEN_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002789
2790 REG_VARIABLE(CFG_MAX_WOW_FILTERS_NAME, WLAN_PARAM_Integer,
2791 struct hdd_config, maxWoWFilters,
2792 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2793 CFG_MAX_WOW_FILTERS_DEFAULT,
2794 CFG_MAX_WOW_FILTERS_MIN,
2795 CFG_MAX_WOW_FILTERS_MAX),
2796
2797 REG_VARIABLE(CFG_WOW_STATUS_NAME, WLAN_PARAM_Integer,
2798 struct hdd_config, wowEnable,
2799 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2800 CFG_WOW_STATUS_DEFAULT,
2801 CFG_WOW_ENABLE_MIN,
2802 CFG_WOW_ENABLE_MAX),
2803
2804 REG_VARIABLE(CFG_COALESING_IN_IBSS_NAME, WLAN_PARAM_Integer,
2805 struct hdd_config, isCoalesingInIBSSAllowed,
2806 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2807 CFG_COALESING_IN_IBSS_DEFAULT,
2808 CFG_COALESING_IN_IBSS_MIN,
2809 CFG_COALESING_IN_IBSS_MAX),
2810
2811 REG_VARIABLE(CFG_IBSS_ATIM_WIN_SIZE_NAME, WLAN_PARAM_Integer,
2812 struct hdd_config, ibssATIMWinSize,
2813 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2814 CFG_IBSS_ATIM_WIN_SIZE_DEFAULT,
2815 CFG_IBSS_ATIM_WIN_SIZE_MIN,
2816 CFG_IBSS_ATIM_WIN_SIZE_MAX),
2817
2818 REG_VARIABLE(CFG_SAP_MAX_NO_PEERS, WLAN_PARAM_Integer,
2819 struct hdd_config, maxNumberOfPeers,
2820 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2821 CFG_SAP_MAX_NO_PEERS_DEFAULT,
2822 CFG_SAP_MAX_NO_PEERS_MIN,
2823 CFG_SAP_MAX_NO_PEERS_MAX),
2824
2825 REG_VARIABLE(CFG_IBSS_IS_POWER_SAVE_ALLOWED_NAME, WLAN_PARAM_Integer,
2826 struct hdd_config, isIbssPowerSaveAllowed,
2827 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2828 CFG_IBSS_IS_POWER_SAVE_ALLOWED_DEFAULT,
2829 CFG_IBSS_IS_POWER_SAVE_ALLOWED_MIN,
2830 CFG_IBSS_IS_POWER_SAVE_ALLOWED_MAX),
2831
2832 REG_VARIABLE(CFG_IBSS_IS_POWER_COLLAPSE_ALLOWED_NAME,
2833 WLAN_PARAM_Integer,
2834 struct hdd_config, isIbssPowerCollapseAllowed,
2835 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2836 CFG_IBSS_IS_POWER_COLLAPSE_ALLOWED_DEFAULT,
2837 CFG_IBSS_IS_POWER_COLLAPSE_ALLOWED_MIN,
2838 CFG_IBSS_IS_POWER_COLLAPSE_ALLOWED_MAX),
2839
2840 REG_VARIABLE(CFG_IBSS_AWAKE_ON_TX_RX_NAME, WLAN_PARAM_Integer,
2841 struct hdd_config, isIbssAwakeOnTxRx,
2842 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2843 CFG_IBSS_AWAKE_ON_TX_RX_DEFAULT,
2844 CFG_IBSS_AWAKE_ON_TX_RX_MIN,
2845 CFG_IBSS_AWAKE_ON_TX_RX_MAX),
2846
2847 REG_VARIABLE(CFG_IBSS_INACTIVITY_TIME_NAME, WLAN_PARAM_Integer,
2848 struct hdd_config, ibssInactivityCount,
2849 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2850 CFG_IBSS_INACTIVITY_TIME_DEFAULT,
2851 CFG_IBSS_INACTIVITY_TIME_MIN,
2852 CFG_IBSS_INACTIVITY_TIME_MAX),
2853
2854 REG_VARIABLE(CFG_IBSS_TXSP_END_INACTIVITY_NAME, WLAN_PARAM_Integer,
2855 struct hdd_config, ibssTxSpEndInactivityTime,
2856 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2857 CFG_IBSS_TXSP_END_INACTIVITY_DEFAULT,
2858 CFG_IBSS_TXSP_END_INACTIVITY_MIN,
2859 CFG_IBSS_TXSP_END_INACTIVITY_MAX),
2860
2861 REG_VARIABLE(CFG_IBSS_PS_WARMUP_TIME_NAME, WLAN_PARAM_Integer,
2862 struct hdd_config, ibssPsWarmupTime,
2863 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2864 CFG_IBSS_PS_WARMUP_TIME_DEFAULT,
2865 CFG_IBSS_PS_WARMUP_TIME_MIN,
2866 CFG_IBSS_PS_WARMUP_TIME_MAX),
2867
2868 REG_VARIABLE(CFG_IBSS_PS_1RX_CHAIN_IN_ATIM_WINDOW_NAME,
2869 WLAN_PARAM_Integer,
2870 struct hdd_config, ibssPs1RxChainInAtimEnable,
2871 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2872 CFG_IBSS_PS_1RX_CHAIN_IN_ATIM_WINDOW_DEFAULT,
2873 CFG_IBSS_PS_1RX_CHAIN_IN_ATIM_WINDOW_MIN,
2874 CFG_IBSS_PS_1RX_CHAIN_IN_ATIM_WINDOW_MAX),
2875
2876 REG_VARIABLE(CFG_THERMAL_TEMP_MIN_LEVEL0_NAME, WLAN_PARAM_Integer,
2877 struct hdd_config, thermalTempMinLevel0,
2878 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2879 CFG_THERMAL_TEMP_MIN_LEVEL0_DEFAULT,
2880 CFG_THERMAL_TEMP_MIN_LEVEL0_MIN,
2881 CFG_THERMAL_TEMP_MIN_LEVEL0_MAX),
2882
2883 REG_VARIABLE(CFG_THERMAL_TEMP_MAX_LEVEL0_NAME, WLAN_PARAM_Integer,
2884 struct hdd_config, thermalTempMaxLevel0,
2885 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2886 CFG_THERMAL_TEMP_MAX_LEVEL0_DEFAULT,
2887 CFG_THERMAL_TEMP_MAX_LEVEL0_MIN,
2888 CFG_THERMAL_TEMP_MAX_LEVEL0_MAX),
2889
2890 REG_VARIABLE(CFG_THERMAL_TEMP_MIN_LEVEL1_NAME, WLAN_PARAM_Integer,
2891 struct hdd_config, thermalTempMinLevel1,
2892 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2893 CFG_THERMAL_TEMP_MIN_LEVEL1_DEFAULT,
2894 CFG_THERMAL_TEMP_MIN_LEVEL1_MIN,
2895 CFG_THERMAL_TEMP_MIN_LEVEL1_MAX),
2896
2897 REG_VARIABLE(CFG_THERMAL_TEMP_MAX_LEVEL1_NAME, WLAN_PARAM_Integer,
2898 struct hdd_config, thermalTempMaxLevel1,
2899 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2900 CFG_THERMAL_TEMP_MAX_LEVEL1_DEFAULT,
2901 CFG_THERMAL_TEMP_MAX_LEVEL1_MIN,
2902 CFG_THERMAL_TEMP_MAX_LEVEL1_MAX),
2903
2904 REG_VARIABLE(CFG_THERMAL_TEMP_MIN_LEVEL2_NAME, WLAN_PARAM_Integer,
2905 struct hdd_config, thermalTempMinLevel2,
2906 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2907 CFG_THERMAL_TEMP_MIN_LEVEL2_DEFAULT,
2908 CFG_THERMAL_TEMP_MIN_LEVEL2_MIN,
2909 CFG_THERMAL_TEMP_MIN_LEVEL2_MAX),
2910
2911 REG_VARIABLE(CFG_THERMAL_TEMP_MAX_LEVEL2_NAME, WLAN_PARAM_Integer,
2912 struct hdd_config, thermalTempMaxLevel2,
2913 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2914 CFG_THERMAL_TEMP_MAX_LEVEL2_DEFAULT,
2915 CFG_THERMAL_TEMP_MAX_LEVEL2_MIN,
2916 CFG_THERMAL_TEMP_MAX_LEVEL2_MAX),
2917
2918 REG_VARIABLE(CFG_THERMAL_TEMP_MIN_LEVEL3_NAME, WLAN_PARAM_Integer,
2919 struct hdd_config, thermalTempMinLevel3,
2920 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2921 CFG_THERMAL_TEMP_MIN_LEVEL3_DEFAULT,
2922 CFG_THERMAL_TEMP_MIN_LEVEL3_MIN,
2923 CFG_THERMAL_TEMP_MIN_LEVEL3_MAX),
2924
2925 REG_VARIABLE(CFG_THERMAL_TEMP_MAX_LEVEL3_NAME, WLAN_PARAM_Integer,
2926 struct hdd_config, thermalTempMaxLevel3,
2927 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2928 CFG_THERMAL_TEMP_MAX_LEVEL3_DEFAULT,
2929 CFG_THERMAL_TEMP_MAX_LEVEL3_MIN,
2930 CFG_THERMAL_TEMP_MAX_LEVEL3_MAX),
2931
2932 REG_VARIABLE(CFG_SET_TXPOWER_LIMIT2G_NAME, WLAN_PARAM_Integer,
2933 struct hdd_config, TxPower2g,
2934 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2935 CFG_SET_TXPOWER_LIMIT2G_DEFAULT,
2936 CFG_SET_TXPOWER_LIMIT2G_MIN,
2937 CFG_SET_TXPOWER_LIMIT2G_MAX),
2938
2939 REG_VARIABLE(CFG_SET_TXPOWER_LIMIT5G_NAME, WLAN_PARAM_Integer,
2940 struct hdd_config, TxPower5g,
2941 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2942 CFG_SET_TXPOWER_LIMIT5G_DEFAULT,
2943 CFG_SET_TXPOWER_LIMIT5G_MIN,
2944 CFG_SET_TXPOWER_LIMIT5G_MAX),
2945
2946 REG_VARIABLE(CFG_ENABLE_DEBUG_CONNECT_ISSUE, WLAN_PARAM_Integer,
2947 struct hdd_config, gEnableDebugLog,
2948 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2949 CFG_ENABLE_DEBUG_CONNECT_ISSUE_DEFAULT,
2950 CFG_ENABLE_DEBUG_CONNECT_ISSUE_MIN,
2951 CFG_ENABLE_DEBUG_CONNECT_ISSUE_MAX),
2952
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002953 REG_VARIABLE(CFG_ENABLE_DFS_PHYERR_FILTEROFFLOAD_NAME,
2954 WLAN_PARAM_Integer,
2955 struct hdd_config, fDfsPhyerrFilterOffload,
2956 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2957 CFG_ENABLE_DFS_PHYERR_FILTEROFFLOAD_DEFAULT,
2958 CFG_ENABLE_DFS_PHYERR_FILTEROFFLOAD_MIN,
2959 CFG_ENABLE_DFS_PHYERR_FILTEROFFLOAD_MAX),
2960
2961 REG_VARIABLE(CFG_ENABLE_OVERLAP_CH, WLAN_PARAM_Integer,
2962 struct hdd_config, gEnableOverLapCh,
2963 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2964 CFG_ENABLE_OVERLAP_CH_DEFAULT,
2965 CFG_ENABLE_OVERLAP_CH_MIN,
2966 CFG_ENABLE_OVERLAP_CH_MAX),
2967
2968 REG_VARIABLE(CFG_REG_CHANGE_DEF_COUNTRY_NAME, WLAN_PARAM_Integer,
2969 struct hdd_config, fRegChangeDefCountry,
2970 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2971 CFG_REG_CHANGE_DEF_COUNTRY_DEFAULT,
2972 CFG_REG_CHANGE_DEF_COUNTRY_MIN,
2973 CFG_REG_CHANGE_DEF_COUNTRY_MAX),
2974
gaoleze5108942017-03-31 16:56:42 +08002975 REG_VARIABLE(CFG_ACS_WITH_MORE_PARAM_NAME, WLAN_PARAM_Integer,
2976 struct hdd_config, acs_with_more_param,
2977 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2978 CFG_ACS_WITH_MORE_PARAM_DEFAULT,
2979 CFG_ACS_WITH_MORE_PARAM_MIN,
2980 CFG_ACS_WITH_MORE_PARAM_MAX),
2981
2982 REG_VARIABLE(CFG_AUTO_CHANNEL_SELECT_WEIGHT, WLAN_PARAM_HexInteger,
2983 struct hdd_config, auto_channel_select_weight,
2984 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2985 CFG_AUTO_CHANNEL_SELECT_WEIGHT_DEFAULT,
2986 CFG_AUTO_CHANNEL_SELECT_WEIGHT_MIN,
2987 CFG_AUTO_CHANNEL_SELECT_WEIGHT_MAX),
2988
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002989#ifdef QCA_LL_LEGACY_TX_FLOW_CONTROL
2990 REG_VARIABLE(CFG_LL_TX_FLOW_LWM, WLAN_PARAM_Integer,
2991 struct hdd_config, TxFlowLowWaterMark,
2992 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2993 CFG_LL_TX_FLOW_LWM_DEFAULT,
2994 CFG_LL_TX_FLOW_LWM_MIN,
2995 CFG_LL_TX_FLOW_LWM_MAX),
2996 REG_VARIABLE(CFG_LL_TX_FLOW_HWM_OFFSET, WLAN_PARAM_Integer,
2997 struct hdd_config, TxFlowHighWaterMarkOffset,
2998 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2999 CFG_LL_TX_FLOW_HWM_OFFSET_DEFAULT,
3000 CFG_LL_TX_FLOW_HWM_OFFSET_MIN,
3001 CFG_LL_TX_FLOW_HWM_OFFSET_MAX),
3002 REG_VARIABLE(CFG_LL_TX_FLOW_MAX_Q_DEPTH, WLAN_PARAM_Integer,
3003 struct hdd_config, TxFlowMaxQueueDepth,
3004 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3005 CFG_LL_TX_FLOW_MAX_Q_DEPTH_DEFAULT,
3006 CFG_LL_TX_FLOW_MAX_Q_DEPTH_MIN,
3007 CFG_LL_TX_FLOW_MAX_Q_DEPTH_MAX),
3008 REG_VARIABLE(CFG_LL_TX_LBW_FLOW_LWM, WLAN_PARAM_Integer,
3009 struct hdd_config, TxLbwFlowLowWaterMark,
3010 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3011 CFG_LL_TX_LBW_FLOW_LWM_DEFAULT,
3012 CFG_LL_TX_LBW_FLOW_LWM_MIN,
3013 CFG_LL_TX_LBW_FLOW_LWM_MAX),
3014
3015 REG_VARIABLE(CFG_LL_TX_LBW_FLOW_HWM_OFFSET, WLAN_PARAM_Integer,
3016 struct hdd_config, TxLbwFlowHighWaterMarkOffset,
3017 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3018 CFG_LL_TX_LBW_FLOW_HWM_OFFSET_DEFAULT,
3019 CFG_LL_TX_LBW_FLOW_HWM_OFFSET_MIN,
3020 CFG_LL_TX_LBW_FLOW_HWM_OFFSET_MAX),
3021
3022 REG_VARIABLE(CFG_LL_TX_LBW_FLOW_MAX_Q_DEPTH, WLAN_PARAM_Integer,
3023 struct hdd_config, TxLbwFlowMaxQueueDepth,
3024 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3025 CFG_LL_TX_LBW_FLOW_MAX_Q_DEPTH_DEFAULT,
3026 CFG_LL_TX_LBW_FLOW_MAX_Q_DEPTH_MIN,
3027 CFG_LL_TX_LBW_FLOW_MAX_Q_DEPTH_MAX),
3028
3029 REG_VARIABLE(CFG_LL_TX_HBW_FLOW_LWM, WLAN_PARAM_Integer,
3030 struct hdd_config, TxHbwFlowLowWaterMark,
3031 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3032 CFG_LL_TX_HBW_FLOW_LWM_DEFAULT,
3033 CFG_LL_TX_HBW_FLOW_LWM_MIN,
3034 CFG_LL_TX_HBW_FLOW_LWM_MAX),
3035
3036 REG_VARIABLE(CFG_LL_TX_HBW_FLOW_HWM_OFFSET, WLAN_PARAM_Integer,
3037 struct hdd_config, TxHbwFlowHighWaterMarkOffset,
3038 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3039 CFG_LL_TX_HBW_FLOW_HWM_OFFSET_DEFAULT,
3040 CFG_LL_TX_HBW_FLOW_HWM_OFFSET_MIN,
3041 CFG_LL_TX_HBW_FLOW_HWM_OFFSET_MAX),
3042
3043 REG_VARIABLE(CFG_LL_TX_HBW_FLOW_MAX_Q_DEPTH, WLAN_PARAM_Integer,
3044 struct hdd_config, TxHbwFlowMaxQueueDepth,
3045 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3046 CFG_LL_TX_HBW_FLOW_MAX_Q_DEPTH_DEFAULT,
3047 CFG_LL_TX_HBW_FLOW_MAX_Q_DEPTH_MIN,
3048 CFG_LL_TX_HBW_FLOW_MAX_Q_DEPTH_MAX),
3049#endif /* QCA_LL_LEGACY_TX_FLOW_CONTROL */
3050#ifdef QCA_LL_TX_FLOW_CONTROL_V2
3051
3052 REG_VARIABLE(CFG_LL_TX_FLOW_STOP_QUEUE_TH, WLAN_PARAM_Integer,
3053 struct hdd_config, TxFlowStopQueueThreshold,
3054 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3055 CFG_LL_TX_FLOW_STOP_QUEUE_TH_DEFAULT,
3056 CFG_LL_TX_FLOW_STOP_QUEUE_TH_MIN,
3057 CFG_LL_TX_FLOW_STOP_QUEUE_TH_MAX),
3058
3059 REG_VARIABLE(CFG_LL_TX_FLOW_START_QUEUE_OFFSET, WLAN_PARAM_Integer,
3060 struct hdd_config, TxFlowStartQueueOffset,
3061 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3062 CFG_LL_TX_FLOW_START_QUEUE_OFFSET_DEFAULT,
3063 CFG_LL_TX_FLOW_START_QUEUE_OFFSET_MIN,
3064 CFG_LL_TX_FLOW_START_QUEUE_OFFSET_MAX),
3065
3066#endif
3067 REG_VARIABLE(CFG_INITIAL_DWELL_TIME_NAME, WLAN_PARAM_Integer,
3068 struct hdd_config, nInitialDwellTime,
3069 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3070 CFG_INITIAL_DWELL_TIME_DEFAULT,
3071 CFG_INITIAL_DWELL_TIME_MIN,
3072 CFG_INITIAL_DWELL_TIME_MAX),
3073
3074 REG_VARIABLE(CFG_INITIAL_SCAN_NO_DFS_CHNL_NAME, WLAN_PARAM_Integer,
3075 struct hdd_config, initial_scan_no_dfs_chnl,
3076 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3077 CFG_INITIAL_SCAN_NO_DFS_CHNL_DEFAULT,
3078 CFG_INITIAL_SCAN_NO_DFS_CHNL_MIN,
3079 CFG_INITIAL_SCAN_NO_DFS_CHNL_MAX),
3080
3081 REG_VARIABLE(CFG_SAP_MAX_OFFLOAD_PEERS, WLAN_PARAM_Integer,
3082 struct hdd_config, apMaxOffloadPeers,
3083 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
3084 CFG_SAP_MAX_OFFLOAD_PEERS_DEFAULT,
3085 CFG_SAP_MAX_OFFLOAD_PEERS_MIN,
3086 CFG_SAP_MAX_OFFLOAD_PEERS_MAX),
3087
3088 REG_VARIABLE(CFG_SAP_MAX_OFFLOAD_REORDER_BUFFS, WLAN_PARAM_Integer,
3089 struct hdd_config, apMaxOffloadReorderBuffs,
3090 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
3091 CFG_SAP_MAX_OFFLOAD_REORDER_BUFFS_DEFAULT,
3092 CFG_SAP_MAX_OFFLOAD_REORDER_BUFFS_MIN,
3093 CFG_SAP_MAX_OFFLOAD_REORDER_BUFFS_MAX),
3094
3095 REG_VARIABLE(CFG_ADVERTISE_CONCURRENT_OPERATION_NAME,
3096 WLAN_PARAM_Integer,
3097 struct hdd_config, advertiseConcurrentOperation,
3098 VAR_FLAGS_OPTIONAL,
3099 CFG_ADVERTISE_CONCURRENT_OPERATION_DEFAULT,
3100 CFG_ADVERTISE_CONCURRENT_OPERATION_MIN,
3101 CFG_ADVERTISE_CONCURRENT_OPERATION_MAX),
3102
3103 REG_VARIABLE(CFG_ENABLE_MEMORY_DEEP_SLEEP, WLAN_PARAM_Integer,
3104 struct hdd_config, enableMemDeepSleep,
3105 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3106 CFG_ENABLE_MEMORY_DEEP_SLEEP_DEFAULT,
3107 CFG_ENABLE_MEMORY_DEEP_SLEEP_MIN,
3108 CFG_ENABLE_MEMORY_DEEP_SLEEP_MAX),
3109
Dustin Brown732ab9c2017-06-15 13:24:09 -07003110 REG_VARIABLE(CFG_ENABLE_CCK_TX_FIR_OVERRIDE_NAME, WLAN_PARAM_Integer,
3111 struct hdd_config, enable_cck_tx_fir_override,
3112 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3113 CFG_ENABLE_CCK_TX_FIR_OVERRIDE_DEFAULT,
3114 CFG_ENABLE_CCK_TX_FIR_OVERRIDE_MIN,
3115 CFG_ENABLE_CCK_TX_FIR_OVERRIDE_MAX),
3116
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003117 REG_VARIABLE(CFG_DEFAULT_RATE_INDEX_24GH, WLAN_PARAM_Integer,
3118 struct hdd_config, defaultRateIndex24Ghz,
3119 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3120 CFG_DEFAULT_RATE_INDEX_24GH_DEFAULT,
3121 CFG_DEFAULT_RATE_INDEX_24GH_MIN,
3122 CFG_DEFAULT_RATE_INDEX_24GH_MAX),
3123
3124#ifdef MEMORY_DEBUG
3125 REG_VARIABLE(CFG_ENABLE_MEMORY_DEBUG_NAME, WLAN_PARAM_Integer,
3126 struct hdd_config, IsMemoryDebugSupportEnabled,
3127 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3128 CFG_ENABLE_MEMORY_DEBUG_DEFAULT,
3129 CFG_ENABLE_MEMORY_DEBUG_MIN,
3130 CFG_ENABLE_MEMORY_DEBUG_MAX),
3131#endif
3132
3133 REG_VARIABLE(CFG_DEBUG_P2P_REMAIN_ON_CHANNEL_NAME, WLAN_PARAM_Integer,
3134 struct hdd_config, debugP2pRemainOnChannel,
3135 VAR_FLAGS_OPTIONAL,
3136 CFG_DEBUG_P2P_REMAIN_ON_CHANNEL_DEFAULT,
3137 CFG_DEBUG_P2P_REMAIN_ON_CHANNEL_MIN,
3138 CFG_DEBUG_P2P_REMAIN_ON_CHANNEL_MAX),
3139
3140 REG_VARIABLE(CFG_ENABLE_PACKET_LOG, WLAN_PARAM_Integer,
3141 struct hdd_config, enablePacketLog,
3142 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3143 CFG_ENABLE_PACKET_LOG_DEFAULT,
3144 CFG_ENABLE_PACKET_LOG_MIN,
3145 CFG_ENABLE_PACKET_LOG_MAX),
3146
3147#ifdef WLAN_FEATURE_ROAM_OFFLOAD
3148 REG_VARIABLE(CFG_ROAMING_OFFLOAD_NAME, WLAN_PARAM_Integer,
3149 struct hdd_config, isRoamOffloadEnabled,
3150 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
3151 CFG_ROAMING_OFFLOAD_DEFAULT,
3152 CFG_ROAMING_OFFLOAD_MIN,
3153 CFG_ROAMING_OFFLOAD_MAX),
3154#endif
3155#ifdef MSM_PLATFORM
3156 REG_VARIABLE(CFG_BUS_BANDWIDTH_HIGH_THRESHOLD, WLAN_PARAM_Integer,
3157 struct hdd_config, busBandwidthHighThreshold,
3158 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3159 CFG_BUS_BANDWIDTH_HIGH_THRESHOLD_DEFAULT,
3160 CFG_BUS_BANDWIDTH_HIGH_THRESHOLD_MIN,
3161 CFG_BUS_BANDWIDTH_HIGH_THRESHOLD_MAX),
3162
3163 REG_VARIABLE(CFG_BUS_BANDWIDTH_MEDIUM_THRESHOLD, WLAN_PARAM_Integer,
3164 struct hdd_config, busBandwidthMediumThreshold,
3165 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3166 CFG_BUS_BANDWIDTH_MEDIUM_THRESHOLD_DEFAULT,
3167 CFG_BUS_BANDWIDTH_MEDIUM_THRESHOLD_MIN,
3168 CFG_BUS_BANDWIDTH_MEDIUM_THRESHOLD_MAX),
3169
3170 REG_VARIABLE(CFG_BUS_BANDWIDTH_LOW_THRESHOLD, WLAN_PARAM_Integer,
3171 struct hdd_config, busBandwidthLowThreshold,
3172 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3173 CFG_BUS_BANDWIDTH_LOW_THRESHOLD_DEFAULT,
3174 CFG_BUS_BANDWIDTH_LOW_THRESHOLD_MIN,
3175 CFG_BUS_BANDWIDTH_LOW_THRESHOLD_MAX),
3176
3177 REG_VARIABLE(CFG_BUS_BANDWIDTH_COMPUTE_INTERVAL, WLAN_PARAM_Integer,
3178 struct hdd_config, busBandwidthComputeInterval,
3179 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3180 CFG_BUS_BANDWIDTH_COMPUTE_INTERVAL_DEFAULT,
3181 CFG_BUS_BANDWIDTH_COMPUTE_INTERVAL_MIN,
3182 CFG_BUS_BANDWIDTH_COMPUTE_INTERVAL_MAX),
Ravi Joshie2331e82015-07-01 18:18:54 -07003183
3184 REG_VARIABLE(CFG_ENABLE_TCP_DELACK, WLAN_PARAM_Integer,
3185 struct hdd_config, enable_tcp_delack,
3186 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3187 CFG_ENABLE_TCP_DELACK_DEFAULT,
3188 CFG_ENABLE_TCP_DELACK_MIN,
3189 CFG_ENABLE_TCP_DELACK_MAX),
3190
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003191 REG_VARIABLE(CFG_TCP_DELACK_THRESHOLD_HIGH, WLAN_PARAM_Integer,
3192 struct hdd_config, tcpDelackThresholdHigh,
3193 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3194 CFG_TCP_DELACK_THRESHOLD_HIGH_DEFAULT,
3195 CFG_TCP_DELACK_THRESHOLD_HIGH_MIN,
3196 CFG_TCP_DELACK_THRESHOLD_HIGH_MAX),
Ravi Joshie2331e82015-07-01 18:18:54 -07003197
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003198 REG_VARIABLE(CFG_TCP_DELACK_THRESHOLD_LOW, WLAN_PARAM_Integer,
3199 struct hdd_config, tcpDelackThresholdLow,
3200 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3201 CFG_TCP_DELACK_THRESHOLD_LOW_DEFAULT,
3202 CFG_TCP_DELACK_THRESHOLD_LOW_MIN,
3203 CFG_TCP_DELACK_THRESHOLD_LOW_MAX),
Mohit Khannae71e2262015-11-10 09:37:24 -08003204
Ravi Joshib89e7f72016-09-07 13:43:15 -07003205 REG_VARIABLE(CFG_TCP_DELACK_TIMER_COUNT, WLAN_PARAM_Integer,
3206 struct hdd_config, tcp_delack_timer_count,
3207 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3208 CFG_TCP_DELACK_TIMER_COUNT_DEFAULT,
3209 CFG_TCP_DELACK_TIMER_COUNT_MIN,
3210 CFG_TCP_DELACK_TIMER_COUNT_MAX),
Mohit Khannae71e2262015-11-10 09:37:24 -08003211
Ravi Joshib89e7f72016-09-07 13:43:15 -07003212 REG_VARIABLE(CFG_TCP_TX_HIGH_TPUT_THRESHOLD_NAME, WLAN_PARAM_Integer,
3213 struct hdd_config, tcp_tx_high_tput_thres,
3214 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3215 CFG_TCP_TX_HIGH_TPUT_THRESHOLD_DEFAULT,
3216 CFG_TCP_TX_HIGH_TPUT_THRESHOLD_MIN,
3217 CFG_TCP_TX_HIGH_TPUT_THRESHOLD_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003218#endif
3219
3220 REG_VARIABLE(CFG_ENABLE_FW_LOG_TYPE, WLAN_PARAM_Integer,
3221 struct hdd_config, enableFwLogType,
3222 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3223 CFG_ENABLE_FW_LOG_TYPE_DEFAULT,
3224 CFG_ENABLE_FW_LOG_TYPE_MIN,
3225 CFG_ENABLE_FW_LOG_TYPE_MAX),
3226
3227 REG_VARIABLE(CFG_ENABLE_FW_DEBUG_LOG_LEVEL, WLAN_PARAM_Integer,
3228 struct hdd_config, enableFwLogLevel,
3229 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3230 CFG_ENABLE_FW_DEBUG_LOG_LEVEL_DEFAULT,
3231 CFG_ENABLE_FW_DEBUG_LOG_LEVEL_MIN,
3232 CFG_ENABLE_FW_DEBUG_LOG_LEVEL_MAX),
3233
Rajeev Kumar Sirasanagandla0be56df2016-09-08 19:19:47 +05303234 REG_VARIABLE(CFG_ENABLE_FW_RTS_PROFILE, WLAN_PARAM_Integer,
3235 struct hdd_config, rts_profile,
3236 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3237 CFG_ENABLE_FW_RTS_PROFILE_DEFAULT,
3238 CFG_ENABLE_FW_RTS_PROFILE_MIN,
3239 CFG_ENABLE_FW_RTS_PROFILE_MAX),
3240
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003241 REG_VARIABLE_STRING(CFG_ENABLE_FW_MODULE_LOG_LEVEL, WLAN_PARAM_String,
3242 struct hdd_config, enableFwModuleLogLevel,
3243 VAR_FLAGS_OPTIONAL,
3244 (void *)CFG_ENABLE_FW_MODULE_LOG_DEFAULT),
3245
3246#ifdef WLAN_FEATURE_11W
3247 REG_VARIABLE(CFG_PMF_SA_QUERY_MAX_RETRIES_NAME, WLAN_PARAM_Integer,
3248 struct hdd_config, pmfSaQueryMaxRetries,
3249 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3250 CFG_PMF_SA_QUERY_MAX_RETRIES_DEFAULT,
3251 CFG_PMF_SA_QUERY_MAX_RETRIES_MIN,
3252 CFG_PMF_SA_QUERY_MAX_RETRIES_MAX),
3253
3254 REG_VARIABLE(CFG_PMF_SA_QUERY_RETRY_INTERVAL_NAME, WLAN_PARAM_Integer,
3255 struct hdd_config, pmfSaQueryRetryInterval,
3256 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3257 CFG_PMF_SA_QUERY_RETRY_INTERVAL_DEFAULT,
3258 CFG_PMF_SA_QUERY_RETRY_INTERVAL_MIN,
3259 CFG_PMF_SA_QUERY_RETRY_INTERVAL_MAX),
3260#endif
3261 REG_VARIABLE(CFG_MAX_CONCURRENT_CONNECTIONS_NAME, WLAN_PARAM_Integer,
3262 struct hdd_config, gMaxConcurrentActiveSessions,
3263 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3264 CFG_MAX_CONCURRENT_CONNECTIONS_DEFAULT,
3265 CFG_MAX_CONCURRENT_CONNECTIONS_MIN,
3266 CFG_MAX_CONCURRENT_CONNECTIONS_MAX),
3267
3268#ifdef FEATURE_GREEN_AP
3269 REG_VARIABLE(CFG_ENABLE_GREEN_AP_FEATURE, WLAN_PARAM_Integer,
3270 struct hdd_config, enableGreenAP,
3271 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3272 CFG_ENABLE_GREEN_AP_FEATURE_DEFAULT,
3273 CFG_ENABLE_GREEN_AP_FEATURE_MIN,
3274 CFG_ENABLE_GREEN_AP_FEATURE_MAX),
Ryan Hsucb118cf2015-11-09 16:03:53 -08003275 REG_VARIABLE(CFG_ENABLE_EGAP_ENABLE_FEATURE, WLAN_PARAM_Integer,
3276 struct hdd_config, enable_egap,
3277 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3278 CFG_ENABLE_EGAP_ENABLE_FEATURE_DEFAULT,
3279 CFG_ENABLE_EGAP_ENABLE_FEATURE_MIN,
3280 CFG_ENABLE_EGAP_ENABLE_FEATURE_MAX),
3281 REG_VARIABLE(CFG_ENABLE_EGAP_INACT_TIME_FEATURE, WLAN_PARAM_Integer,
3282 struct hdd_config, egap_inact_time,
3283 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3284 CFG_ENABLE_EGAP_INACT_TIME_FEATURE_DEFAULT,
3285 CFG_ENABLE_EGAP_INACT_TIME_FEATURE_MIN,
3286 CFG_ENABLE_EGAP_INACT_TIME_FEATURE_MAX),
3287 REG_VARIABLE(CFG_ENABLE_EGAP_WAIT_TIME_FEATURE, WLAN_PARAM_Integer,
3288 struct hdd_config, egap_wait_time,
3289 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3290 CFG_ENABLE_EGAP_WAIT_TIME_FEATURE_DEFAULT,
3291 CFG_ENABLE_EGAP_WAIT_TIME_FEATURE_MIN,
3292 CFG_ENABLE_EGAP_WAIT_TIME_FEATURE_MAX),
3293 REG_VARIABLE(CFG_ENABLE_EGAP_FLAGS_FEATURE, WLAN_PARAM_Integer,
3294 struct hdd_config, egap_feature_flag,
3295 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3296 CFG_ENABLE_EGAP_FLAGS_FEATURE_DEFAULT,
3297 CFG_ENABLE_EGAP_FLAGS_FEATURE_MIN,
3298 CFG_ENABLE_EGAP_FLAGS_FEATURE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003299#endif
3300
3301 REG_VARIABLE(CFG_IGNORE_CAC_NAME, WLAN_PARAM_Integer,
3302 struct hdd_config, ignoreCAC,
3303 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3304 CFG_IGNORE_CAC_DEFAULT,
3305 CFG_IGNORE_CAC_MIN,
3306 CFG_IGNORE_CAC_MAX),
3307
3308 REG_VARIABLE(CFG_ENABLE_SAP_DFS_CH_SIFS_BURST_NAME, WLAN_PARAM_Integer,
3309 struct hdd_config, IsSapDfsChSifsBurstEnabled,
3310 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3311 CFG_ENABLE_SAP_DFS_CH_SIFS_BURST_DEFAULT,
3312 CFG_ENABLE_SAP_DFS_CH_SIFS_BURST_MIN,
3313 CFG_ENABLE_SAP_DFS_CH_SIFS_BURST_MAX),
3314
3315 REG_VARIABLE(CFG_DFS_RADAR_PRI_MULTIPLIER_NAME, WLAN_PARAM_Integer,
3316 struct hdd_config, dfsRadarPriMultiplier,
3317 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3318 CFG_DFS_RADAR_PRI_MULTIPLIER_DEFAULT,
3319 CFG_DFS_RADAR_PRI_MULTIPLIER_MIN,
3320 CFG_DFS_RADAR_PRI_MULTIPLIER_MAX),
3321
3322 REG_VARIABLE(CFG_REORDER_OFFLOAD_SUPPORT_NAME, WLAN_PARAM_Integer,
3323 struct hdd_config, reorderOffloadSupport,
3324 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3325 CFG_REORDER_OFFLOAD_SUPPORT_DEFAULT,
3326 CFG_REORDER_OFFLOAD_SUPPORT_MIN,
3327 CFG_REORDER_OFFLOAD_SUPPORT_MAX),
3328
3329 REG_VARIABLE(CFG_IPA_UC_TX_BUF_COUNT_NAME, WLAN_PARAM_Integer,
3330 struct hdd_config, IpaUcTxBufCount,
3331 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
3332 CFG_IPA_UC_TX_BUF_COUNT_DEFAULT,
3333 CFG_IPA_UC_TX_BUF_COUNT_MIN,
3334 CFG_IPA_UC_TX_BUF_COUNT_MAX),
3335
3336 REG_VARIABLE(CFG_IPA_UC_TX_BUF_SIZE_NAME, WLAN_PARAM_Integer,
3337 struct hdd_config, IpaUcTxBufSize,
3338 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
3339 CFG_IPA_UC_TX_BUF_SIZE_DEFAULT,
3340 CFG_IPA_UC_TX_BUF_SIZE_MIN,
3341 CFG_IPA_UC_TX_BUF_SIZE_MAX),
3342
3343 REG_VARIABLE(CFG_IPA_UC_RX_IND_RING_COUNT_NAME, WLAN_PARAM_Integer,
3344 struct hdd_config, IpaUcRxIndRingCount,
3345 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
3346 CFG_IPA_UC_RX_IND_RING_COUNT_DEFAULT,
3347 CFG_IPA_UC_RX_IND_RING_COUNT_MIN,
3348 CFG_IPA_UC_RX_IND_RING_COUNT_MAX),
3349
3350 REG_VARIABLE(CFG_IPA_UC_TX_PARTITION_BASE_NAME, WLAN_PARAM_Integer,
3351 struct hdd_config, IpaUcTxPartitionBase,
3352 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
3353 CFG_IPA_UC_TX_PARTITION_BASE_DEFAULT,
3354 CFG_IPA_UC_TX_PARTITION_BASE_MIN,
3355 CFG_IPA_UC_TX_PARTITION_BASE_MAX),
3356#ifdef WLAN_LOGGING_SOCK_SVC_ENABLE
3357 REG_VARIABLE(CFG_WLAN_LOGGING_SUPPORT_NAME, WLAN_PARAM_Integer,
3358 struct hdd_config, wlanLoggingEnable,
3359 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3360 CFG_WLAN_LOGGING_SUPPORT_DEFAULT,
3361 CFG_WLAN_LOGGING_SUPPORT_DISABLE,
3362 CFG_WLAN_LOGGING_SUPPORT_ENABLE),
3363
Srinivas Girigowda8187e792017-03-03 11:50:59 -08003364 REG_VARIABLE(CFG_WLAN_LOGGING_CONSOLE_SUPPORT_NAME,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003365 WLAN_PARAM_Integer,
Srinivas Girigowda8187e792017-03-03 11:50:59 -08003366 struct hdd_config, wlanLoggingToConsole,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003367 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
Srinivas Girigowda8187e792017-03-03 11:50:59 -08003368 CFG_WLAN_LOGGING_CONSOLE_SUPPORT_DEFAULT,
3369 CFG_WLAN_LOGGING_CONSOLE_SUPPORT_DISABLE,
3370 CFG_WLAN_LOGGING_CONSOLE_SUPPORT_ENABLE),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003371#endif /* WLAN_LOGGING_SOCK_SVC_ENABLE */
3372
3373 REG_VARIABLE(CFG_ENABLE_SIFS_BURST, WLAN_PARAM_Integer,
3374 struct hdd_config, enableSifsBurst,
3375 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3376 CFG_ENABLE_SIFS_BURST_DEFAULT,
3377 CFG_ENABLE_SIFS_BURST_MIN,
3378 CFG_ENABLE_SIFS_BURST_MAX),
3379
3380#ifdef WLAN_FEATURE_LPSS
3381 REG_VARIABLE(CFG_ENABLE_LPASS_SUPPORT, WLAN_PARAM_Integer,
Komal Seelamc11bb222016-01-27 18:57:10 +05303382 struct hdd_config, enable_lpass_support,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003383 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3384 CFG_ENABLE_LPASS_SUPPORT_DEFAULT,
3385 CFG_ENABLE_LPASS_SUPPORT_MIN,
3386 CFG_ENABLE_LPASS_SUPPORT_MAX),
3387#endif
3388
3389#ifdef WLAN_FEATURE_NAN
3390 REG_VARIABLE(CFG_ENABLE_NAN_SUPPORT, WLAN_PARAM_Integer,
3391 struct hdd_config, enable_nan_support,
3392 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3393 CFG_ENABLE_NAN_SUPPORT_DEFAULT,
3394 CFG_ENABLE_NAN_SUPPORT_MIN,
3395 CFG_ENABLE_NAN_SUPPORT_MAX),
3396#endif
3397
3398 REG_VARIABLE(CFG_ENABLE_SELF_RECOVERY, WLAN_PARAM_Integer,
3399 struct hdd_config, enableSelfRecovery,
3400 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3401 CFG_ENABLE_SELF_RECOVERY_DEFAULT,
3402 CFG_ENABLE_SELF_RECOVERY_MIN,
3403 CFG_ENABLE_SELF_RECOVERY_MAX),
3404
3405#ifdef FEATURE_WLAN_FORCE_SAP_SCC
3406 REG_VARIABLE(CFG_SAP_SCC_CHAN_AVOIDANCE, WLAN_PARAM_Integer,
3407 struct hdd_config, SapSccChanAvoidance,
3408 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3409 CFG_SAP_SCC_CHAN_AVOIDANCE_DEFAULT,
3410 CFG_SAP_SCC_CHAN_AVOIDANCE_MIN,
3411 CFG_SAP_SCC_CHAN_AVOIDANCE_MAX),
3412#endif /* FEATURE_WLAN_FORCE_SAP_SCC */
3413
3414 REG_VARIABLE(CFG_ENABLE_SAP_SUSPEND, WLAN_PARAM_Integer,
3415 struct hdd_config, enableSapSuspend,
3416 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3417 CFG_ENABLE_SAP_SUSPEND_DEFAULT,
3418 CFG_ENABLE_SAP_SUSPEND_MIN,
3419 CFG_ENABLE_SAP_SUSPEND_MAX),
3420
3421#ifdef WLAN_FEATURE_EXTWOW_SUPPORT
3422 REG_VARIABLE(CFG_EXTWOW_GO_TO_SUSPEND, WLAN_PARAM_Integer,
3423 struct hdd_config, extWowGotoSuspend,
3424 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3425 CFG_EXTWOW_GO_TO_SUSPEND_DEFAULT,
3426 CFG_EXTWOW_GO_TO_SUSPEND_MIN,
3427 CFG_EXTWOW_GO_TO_SUSPEND_MAX),
3428
3429 REG_VARIABLE(CFG_EXTWOW_APP1_WAKE_PIN_NUMBER, WLAN_PARAM_Integer,
3430 struct hdd_config, extWowApp1WakeupPinNumber,
3431 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3432 CFG_EXTWOW_APP1_WAKE_PIN_NUMBER_DEFAULT,
3433 CFG_EXTWOW_APP1_WAKE_PIN_NUMBER_MIN,
3434 CFG_EXTWOW_APP1_WAKE_PIN_NUMBER_MAX),
3435
3436 REG_VARIABLE(CFG_EXTWOW_APP2_WAKE_PIN_NUMBER, WLAN_PARAM_Integer,
3437 struct hdd_config, extWowApp2WakeupPinNumber,
3438 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3439 CFG_EXTWOW_APP2_WAKE_PIN_NUMBER_DEFAULT,
3440 CFG_EXTWOW_APP2_WAKE_PIN_NUMBER_MIN,
3441 CFG_EXTWOW_APP2_WAKE_PIN_NUMBER_MAX),
3442
3443 REG_VARIABLE(CFG_EXTWOW_KA_INIT_PING_INTERVAL, WLAN_PARAM_Integer,
3444 struct hdd_config, extWowApp2KAInitPingInterval,
3445 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3446 CFG_EXTWOW_KA_INIT_PING_INTERVAL_DEFAULT,
3447 CFG_EXTWOW_KA_INIT_PING_INTERVAL_MIN,
3448 CFG_EXTWOW_KA_INIT_PING_INTERVAL_MAX),
3449
3450 REG_VARIABLE(CFG_EXTWOW_KA_MIN_PING_INTERVAL, WLAN_PARAM_Integer,
3451 struct hdd_config, extWowApp2KAMinPingInterval,
3452 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3453 CFG_EXTWOW_KA_MIN_PING_INTERVAL_DEFAULT,
3454 CFG_EXTWOW_KA_MIN_PING_INTERVAL_MIN,
3455 CFG_EXTWOW_KA_MIN_PING_INTERVAL_MAX),
3456
3457 REG_VARIABLE(CFG_EXTWOW_KA_MAX_PING_INTERVAL, WLAN_PARAM_Integer,
3458 struct hdd_config, extWowApp2KAMaxPingInterval,
3459 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3460 CFG_EXTWOW_KA_MAX_PING_INTERVAL_DEFAULT,
3461 CFG_EXTWOW_KA_MAX_PING_INTERVAL_MIN,
3462 CFG_EXTWOW_KA_MAX_PING_INTERVAL_MAX),
3463
3464 REG_VARIABLE(CFG_EXTWOW_KA_INC_PING_INTERVAL, WLAN_PARAM_Integer,
3465 struct hdd_config, extWowApp2KAIncPingInterval,
3466 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3467 CFG_EXTWOW_KA_INC_PING_INTERVAL_DEFAULT,
3468 CFG_EXTWOW_KA_INC_PING_INTERVAL_MIN,
3469 CFG_EXTWOW_KA_INC_PING_INTERVAL_MAX),
3470
3471 REG_VARIABLE(CFG_EXTWOW_TCP_SRC_PORT, WLAN_PARAM_Integer,
3472 struct hdd_config, extWowApp2TcpSrcPort,
3473 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3474 CFG_EXTWOW_TCP_SRC_PORT_DEFAULT,
3475 CFG_EXTWOW_TCP_SRC_PORT_MIN,
3476 CFG_EXTWOW_TCP_SRC_PORT_MAX),
3477
3478 REG_VARIABLE(CFG_EXTWOW_TCP_DST_PORT, WLAN_PARAM_Integer,
3479 struct hdd_config, extWowApp2TcpDstPort,
3480 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3481 CFG_EXTWOW_TCP_DST_PORT_DEFAULT,
3482 CFG_EXTWOW_TCP_DST_PORT_MIN,
3483 CFG_EXTWOW_TCP_DST_PORT_MAX),
3484
3485 REG_VARIABLE(CFG_EXTWOW_TCP_TX_TIMEOUT, WLAN_PARAM_Integer,
3486 struct hdd_config, extWowApp2TcpTxTimeout,
3487 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3488 CFG_EXTWOW_TCP_TX_TIMEOUT_DEFAULT,
3489 CFG_EXTWOW_TCP_TX_TIMEOUT_MIN,
3490 CFG_EXTWOW_TCP_TX_TIMEOUT_MAX),
3491
3492 REG_VARIABLE(CFG_EXTWOW_TCP_RX_TIMEOUT, WLAN_PARAM_Integer,
3493 struct hdd_config, extWowApp2TcpRxTimeout,
3494 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3495 CFG_EXTWOW_TCP_RX_TIMEOUT_DEFAULT,
3496 CFG_EXTWOW_TCP_RX_TIMEOUT_MIN,
3497 CFG_EXTWOW_TCP_RX_TIMEOUT_MAX),
3498#endif
3499 REG_VARIABLE(CFG_ENABLE_DEAUTH_TO_DISASSOC_MAP_NAME, WLAN_PARAM_Integer,
3500 struct hdd_config, gEnableDeauthToDisassocMap,
3501 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3502 CFG_ENABLE_DEAUTH_TO_DISASSOC_MAP_DEFAULT,
3503 CFG_ENABLE_DEAUTH_TO_DISASSOC_MAP_MIN,
3504 CFG_ENABLE_DEAUTH_TO_DISASSOC_MAP_MAX),
3505#ifdef DHCP_SERVER_OFFLOAD
3506 REG_VARIABLE(CFG_DHCP_SERVER_OFFLOAD_SUPPORT_NAME, WLAN_PARAM_Integer,
3507 struct hdd_config, enableDHCPServerOffload,
3508 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3509 CFG_DHCP_SERVER_OFFLOAD_SUPPORT_DEFAULT,
3510 CFG_DHCP_SERVER_OFFLOAD_SUPPORT_MIN,
3511 CFG_DHCP_SERVER_OFFLOAD_SUPPORT_MAX),
3512 REG_VARIABLE(CFG_DHCP_SERVER_OFFLOAD_NUM_CLIENT_NAME,
3513 WLAN_PARAM_Integer,
3514 struct hdd_config, dhcpMaxNumClients,
3515 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3516 CFG_DHCP_SERVER_OFFLOAD_NUM_CLIENT_DEFAULT,
3517 CFG_DHCP_SERVER_OFFLOAD_NUM_CLIENT_MIN,
3518 CFG_DHCP_SERVER_OFFLOAD_NUM_CLIENT_MAX),
3519 REG_VARIABLE_STRING(CFG_DHCP_SERVER_IP_NAME, WLAN_PARAM_String,
3520 struct hdd_config, dhcpServerIP,
3521 VAR_FLAGS_OPTIONAL,
3522 (void *)CFG_DHCP_SERVER_IP_DEFAULT),
3523#endif /* DHCP_SERVER_OFFLOAD */
3524
3525 REG_VARIABLE(CFG_ENABLE_DEAUTH_BEFORE_CONNECTION, WLAN_PARAM_Integer,
3526 struct hdd_config, sendDeauthBeforeCon,
3527 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3528 CFG_ENABLE_DEAUTH_BEFORE_CONNECTION_DEFAULT,
3529 CFG_ENABLE_DEAUTH_BEFORE_CONNECTION_MIN,
3530 CFG_ENABLE_DEAUTH_BEFORE_CONNECTION_MAX),
3531
3532 REG_VARIABLE(CFG_ENABLE_MAC_ADDR_SPOOFING, WLAN_PARAM_Integer,
3533 struct hdd_config, enable_mac_spoofing,
3534 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3535 CFG_ENABLE_MAC_ADDR_SPOOFING_DEFAULT,
3536 CFG_ENABLE_MAC_ADDR_SPOOFING_MIN,
3537 CFG_ENABLE_MAC_ADDR_SPOOFING_MAX),
3538
3539 REG_VARIABLE(CFG_ENABLE_CUSTOM_CONC_RULE1_NAME, WLAN_PARAM_Integer,
3540 struct hdd_config, conc_custom_rule1,
3541 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
3542 CFG_ENABLE_CUSTOM_CONC_RULE1_NAME_DEFAULT,
3543 CFG_ENABLE_CUSTOM_CONC_RULE1_NAME_MIN,
3544 CFG_ENABLE_CUSTOM_CONC_RULE1_NAME_MAX),
3545
3546 REG_VARIABLE(CFG_ENABLE_CUSTOM_CONC_RULE2_NAME, WLAN_PARAM_Integer,
3547 struct hdd_config, conc_custom_rule2,
3548 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
3549 CFG_ENABLE_CUSTOM_CONC_RULE2_NAME_DEFAULT,
3550 CFG_ENABLE_CUSTOM_CONC_RULE2_NAME_MIN,
3551 CFG_ENABLE_CUSTOM_CONC_RULE2_NAME_MAX),
3552
3553 REG_VARIABLE(CFG_ENABLE_STA_CONNECTION_IN_5GHZ, WLAN_PARAM_Integer,
3554 struct hdd_config, is_sta_connection_in_5gz_enabled,
3555 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
3556 CFG_ENABLE_STA_CONNECTION_IN_5GHZ_DEFAULT,
3557 CFG_ENABLE_STA_CONNECTION_IN_5GHZ_MIN,
3558 CFG_ENABLE_STA_CONNECTION_IN_5GHZ_MAX),
3559
3560 REG_VARIABLE(CFG_STA_MIRACAST_MCC_REST_TIME_VAL, WLAN_PARAM_Integer,
3561 struct hdd_config, sta_miracast_mcc_rest_time_val,
3562 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3563 CFG_STA_MIRACAST_MCC_REST_TIME_VAL_DEFAULT,
3564 CFG_STA_MIRACAST_MCC_REST_TIME_VAL_MIN,
3565 CFG_STA_MIRACAST_MCC_REST_TIME_VAL_MAX),
3566
3567#ifdef FEATURE_AP_MCC_CH_AVOIDANCE
3568 REG_VARIABLE(CFG_SAP_MCC_CHANNEL_AVOIDANCE_NAME,
3569 WLAN_PARAM_Integer,
3570 struct hdd_config,
3571 sap_channel_avoidance,
3572 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
3573 CFG_SAP_MCC_CHANNEL_AVOIDANCE_DEFAULT,
3574 CFG_SAP_MCC_CHANNEL_AVOIDANCE_MIN,
3575 CFG_SAP_MCC_CHANNEL_AVOIDANCE_MAX),
3576#endif /* FEATURE_AP_MCC_CH_AVOIDANCE */
3577
3578 REG_VARIABLE(CFG_SAP_P2P_11AC_OVERRIDE_NAME, WLAN_PARAM_Integer,
3579 struct hdd_config, sap_p2p_11ac_override,
3580 VAR_FLAGS_OPTIONAL |
3581 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3582 CFG_SAP_P2P_11AC_OVERRIDE_DEFAULT,
3583 CFG_SAP_P2P_11AC_OVERRIDE_MIN,
3584 CFG_SAP_P2P_11AC_OVERRIDE_MAX),
3585
3586 REG_VARIABLE(CFG_ENABLE_RAMDUMP_COLLECTION, WLAN_PARAM_Integer,
3587 struct hdd_config, is_ramdump_enabled,
3588 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3589 CFG_ENABLE_RAMDUMP_COLLECTION_DEFAULT,
3590 CFG_ENABLE_RAMDUMP_COLLECTION_MIN,
3591 CFG_ENABLE_RAMDUMP_COLLECTION_MAX),
3592
3593 REG_VARIABLE(CFG_SAP_DOT11MC, WLAN_PARAM_Integer,
3594 struct hdd_config, sap_dot11mc,
3595 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3596 CFG_SAP_DOT11MC_DEFAULT,
3597 CFG_SAP_DOT11MC_MIN,
3598 CFG_SAP_DOT11MC_MAX),
3599
3600 REG_VARIABLE(CFG_ENABLE_NON_DFS_CHAN_ON_RADAR, WLAN_PARAM_Integer,
3601 struct hdd_config, prefer_non_dfs_on_radar,
3602 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3603 CFG_ENABLE_NON_DFS_CHAN_ON_RADAR_DEFAULT,
3604 CFG_ENABLE_NON_DFS_CHAN_ON_RADAR_MIN,
3605 CFG_ENABLE_NON_DFS_CHAN_ON_RADAR_MAX),
3606
3607 REG_VARIABLE(CFG_MULTICAST_HOST_FW_MSGS, WLAN_PARAM_Integer,
3608 struct hdd_config, multicast_host_fw_msgs,
3609 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3610 CFG_MULTICAST_HOST_FW_MSGS_DEFAULT,
3611 CFG_MULTICAST_HOST_FW_MSGS_MIN,
3612 CFG_MULTICAST_HOST_FW_MSGS_MAX),
3613
3614 REG_VARIABLE(CFG_CONC_SYSTEM_PREF, WLAN_PARAM_Integer,
3615 struct hdd_config, conc_system_pref,
3616 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3617 CFG_CONC_SYSTEM_PREF_DEFAULT,
3618 CFG_CONC_SYSTEM_PREF_MIN,
3619 CFG_CONC_SYSTEM_PREF_MAX),
3620
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003621 REG_VARIABLE(CFG_TSO_ENABLED_NAME, WLAN_PARAM_Integer,
3622 struct hdd_config, tso_enable,
3623 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3624 CFG_TSO_ENABLED_DEFAULT,
3625 CFG_TSO_ENABLED_MIN,
3626 CFG_TSO_ENABLED_MAX),
3627
3628 REG_VARIABLE(CFG_LRO_ENABLED_NAME, WLAN_PARAM_Integer,
3629 struct hdd_config, lro_enable,
3630 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3631 CFG_LRO_ENABLED_DEFAULT,
3632 CFG_LRO_ENABLED_MIN,
3633 CFG_LRO_ENABLED_MAX),
3634
Rajeev Kumardd3bc602016-08-16 14:21:05 -07003635 REG_VARIABLE(CFG_BPF_PACKET_FILTER_OFFLOAD, WLAN_PARAM_Integer,
3636 struct hdd_config, bpf_packet_filter_enable,
3637 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3638 CFG_BPF_PACKET_FILTER_OFFLOAD_DEFAULT,
3639 CFG_BPF_PACKET_FILTER_OFFLOAD_MIN,
3640 CFG_BPF_PACKET_FILTER_OFFLOAD_MAX),
3641
Nitesh Shah61c10d92016-10-19 19:29:15 +05303642 REG_VARIABLE(CFG_TDLS_ENABLE_DEFER_TIMER, WLAN_PARAM_Integer,
3643 struct hdd_config, tdls_enable_defer_time,
3644 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3645 CFG_TDLS_ENABLE_DEFER_TIMER_DEFAULT,
3646 CFG_TDLS_ENABLE_DEFER_TIMER_MIN,
3647 CFG_TDLS_ENABLE_DEFER_TIMER_MAX),
3648
Manjunathappa Prakashfff753c2016-09-01 19:34:56 -07003649 REG_VARIABLE(CFG_FLOW_STEERING_ENABLED_NAME, WLAN_PARAM_Integer,
3650 struct hdd_config, flow_steering_enable,
3651 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3652 CFG_FLOW_STEERING_ENABLED_DEFAULT,
3653 CFG_FLOW_STEERING_ENABLED_MIN,
3654 CFG_FLOW_STEERING_ENABLED_MAX),
3655
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003656 REG_VARIABLE(CFG_ACTIVE_MODE_OFFLOAD, WLAN_PARAM_Integer,
3657 struct hdd_config, active_mode_offload,
3658 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3659 CFG_ACTIVE_MODE_OFFLOAD_DEFAULT,
3660 CFG_ACTIVE_MODE_OFFLOAD_MIN,
3661 CFG_ACTIVE_MODE_OFFLOAD_MAX),
3662
3663 REG_VARIABLE(CFG_FINE_TIME_MEAS_CAPABILITY, WLAN_PARAM_HexInteger,
3664 struct hdd_config, fine_time_meas_cap,
3665 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3666 CFG_FINE_TIME_MEAS_CAPABILITY_DEFAULT,
3667 CFG_FINE_TIME_MEAS_CAPABILITY_MIN,
3668 CFG_FINE_TIME_MEAS_CAPABILITY_MAX),
3669
3670#ifdef WLAN_FEATURE_FASTPATH
3671 REG_VARIABLE(CFG_ENABLE_FASTPATH, WLAN_PARAM_Integer,
3672 struct hdd_config, fastpath_enable,
3673 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3674 CFG_ENABLE_FASTPATH_DEFAULT,
3675 CFG_ENABLE_FASTPATH_MIN,
3676 CFG_ENABLE_FASTPATH_MAX),
3677#endif
3678 REG_VARIABLE(CFG_MAX_SCAN_COUNT_NAME, WLAN_PARAM_Integer,
3679 struct hdd_config, max_scan_count,
3680 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3681 CFG_MAX_SCAN_COUNT_DEFAULT,
3682 CFG_MAX_SCAN_COUNT_MIN,
3683 CFG_MAX_SCAN_COUNT_MAX),
3684
3685 REG_VARIABLE(CFG_DOT11P_MODE_NAME, WLAN_PARAM_Integer,
3686 struct hdd_config, dot11p_mode,
3687 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3688 CFG_DOT11P_MODE_DEFAULT,
3689 CFG_DOT11P_MODE_MIN,
3690 CFG_DOT11P_MODE_MAX),
3691
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003692#ifdef FEATURE_WLAN_EXTSCAN
Manjeet Singh0f2ce5c2016-09-01 12:08:57 +05303693 REG_VARIABLE(CFG_EXTSCAN_ALLOWED_NAME, WLAN_PARAM_Integer,
3694 struct hdd_config, extscan_enabled,
3695 VAR_FLAGS_OPTIONAL |
3696 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3697 CFG_EXTSCAN_ALLOWED_DEF,
3698 CFG_EXTSCAN_ALLOWED_MIN,
3699 CFG_EXTSCAN_ALLOWED_MAX),
3700
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003701 REG_VARIABLE(CFG_EXTSCAN_PASSIVE_MAX_CHANNEL_TIME_NAME,
3702 WLAN_PARAM_Integer,
3703 struct hdd_config, extscan_passive_max_chn_time,
3704 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3705 CFG_EXTSCAN_PASSIVE_MAX_CHANNEL_TIME_DEFAULT,
3706 CFG_EXTSCAN_PASSIVE_MAX_CHANNEL_TIME_MIN,
3707 CFG_EXTSCAN_PASSIVE_MAX_CHANNEL_TIME_MAX),
3708
3709 REG_VARIABLE(CFG_EXTSCAN_PASSIVE_MIN_CHANNEL_TIME_NAME,
3710 WLAN_PARAM_Integer,
3711 struct hdd_config, extscan_passive_min_chn_time,
3712 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3713 CFG_EXTSCAN_PASSIVE_MIN_CHANNEL_TIME_DEFAULT,
3714 CFG_EXTSCAN_PASSIVE_MIN_CHANNEL_TIME_MIN,
3715 CFG_EXTSCAN_PASSIVE_MIN_CHANNEL_TIME_MAX),
3716
3717 REG_VARIABLE(CFG_EXTSCAN_ACTIVE_MAX_CHANNEL_TIME_NAME,
3718 WLAN_PARAM_Integer,
3719 struct hdd_config, extscan_active_max_chn_time,
3720 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3721 CFG_EXTSCAN_ACTIVE_MAX_CHANNEL_TIME_DEFAULT,
3722 CFG_EXTSCAN_ACTIVE_MAX_CHANNEL_TIME_MIN,
3723 CFG_EXTSCAN_ACTIVE_MAX_CHANNEL_TIME_MAX),
3724
3725 REG_VARIABLE(CFG_EXTSCAN_ACTIVE_MIN_CHANNEL_TIME_NAME,
3726 WLAN_PARAM_Integer,
3727 struct hdd_config, extscan_active_min_chn_time,
3728 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3729 CFG_EXTSCAN_ACTIVE_MIN_CHANNEL_TIME_DEFAULT,
3730 CFG_EXTSCAN_ACTIVE_MIN_CHANNEL_TIME_MIN,
3731 CFG_EXTSCAN_ACTIVE_MIN_CHANNEL_TIME_MAX),
3732#endif
3733
Yingying Tang95409972016-10-20 15:16:15 +08003734#ifdef WLAN_FEATURE_WOW_PULSE
3735 REG_VARIABLE(CFG_WOW_PULSE_SUPPORT_NAME, WLAN_PARAM_Integer,
3736 struct hdd_config, wow_pulse_support,
3737 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3738 CFG_WOW_PULSE_SUPPORT_DEFAULT,
3739 CFG_WOW_PULSE_SUPPORT_MIN,
3740 CFG_WOW_PULSE_SUPPORT_MAX),
3741
3742 REG_VARIABLE(CFG_WOW_PULSE_PIN_NAME, WLAN_PARAM_Integer,
3743 struct hdd_config, wow_pulse_pin,
3744 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3745 CFG_WOW_PULSE_PIN_DEFAULT,
3746 CFG_WOW_PULSE_PIN_MIN,
3747 CFG_WOW_PULSE_PIN_MAX),
3748
3749 REG_VARIABLE(CFG_WOW_PULSE_INTERVAL_LOW_NAME, WLAN_PARAM_Integer,
3750 struct hdd_config, wow_pulse_interval_low,
3751 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3752 CFG_WOW_PULSE_INTERVAL_LOW_DEFAULT,
3753 CFG_WOW_PULSE_INTERVAL_LOW_MIN,
3754 CFG_WOW_PULSE_INTERVAL_LOW_MAX),
3755
3756 REG_VARIABLE(CFG_WOW_PULSE_INTERVAL_HIGH_NAME, WLAN_PARAM_Integer,
3757 struct hdd_config, wow_pulse_interval_high,
3758 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3759 CFG_WOW_PULSE_INTERVAL_HIGH_DEFAULT,
3760 CFG_WOW_PULSE_INTERVAL_HIGH_MIN,
3761 CFG_WOW_PULSE_INTERVAL_HIGH_MAX),
3762#endif
3763
3764
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003765 REG_VARIABLE(CFG_CE_CLASSIFY_ENABLE_NAME, WLAN_PARAM_Integer,
3766 struct hdd_config, ce_classify_enabled,
3767 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3768 CFG_CE_CLASSIFY_ENABLE_DEFAULT,
3769 CFG_CE_CLASSIFY_ENABLE_MIN,
3770 CFG_CE_CLASSIFY_ENABLE_MAX),
3771
3772 REG_VARIABLE(CFG_DUAL_MAC_FEATURE_DISABLE, WLAN_PARAM_HexInteger,
3773 struct hdd_config, dual_mac_feature_disable,
3774 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3775 CFG_DUAL_MAC_FEATURE_DISABLE_DEFAULT,
3776 CFG_DUAL_MAC_FEATURE_DISABLE_MIN,
3777 CFG_DUAL_MAC_FEATURE_DISABLE_MAX),
Nitesh Shah50a3de12017-04-03 19:37:19 +05303778
3779 REG_VARIABLE_STRING(CFG_DBS_SCAN_SELECTION_NAME, WLAN_PARAM_String,
3780 struct hdd_config, dbs_scan_selection,
3781 VAR_FLAGS_OPTIONAL,
3782 (void *)CFG_DBS_SCAN_SELECTION_DEFAULT),
3783
Varun Reddy Yeturub43fda12015-09-10 18:16:21 -07003784#ifdef FEATURE_WLAN_SCAN_PNO
3785 REG_VARIABLE(CFG_PNO_CHANNEL_PREDICTION_NAME, WLAN_PARAM_Integer,
3786 struct hdd_config, pno_channel_prediction,
3787 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3788 CFG_PNO_CHANNEL_PREDICTION_DEFAULT,
3789 CFG_PNO_CHANNEL_PREDICTION_MIN,
3790 CFG_PNO_CHANNEL_PREDICTION_MAX),
3791
3792 REG_VARIABLE(CFG_TOP_K_NUM_OF_CHANNELS_NAME, WLAN_PARAM_Integer,
3793 struct hdd_config, top_k_num_of_channels,
3794 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3795 CFG_TOP_K_NUM_OF_CHANNELS_DEFAULT,
3796 CFG_TOP_K_NUM_OF_CHANNELS_MIN,
3797 CFG_TOP_K_NUM_OF_CHANNELS_MAX),
3798
3799 REG_VARIABLE(CFG_STATIONARY_THRESHOLD_NAME, WLAN_PARAM_Integer,
3800 struct hdd_config, stationary_thresh,
3801 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3802 CFG_STATIONARY_THRESHOLD_DEFAULT,
3803 CFG_STATIONARY_THRESHOLD_MIN,
3804 CFG_STATIONARY_THRESHOLD_MAX),
3805
3806 REG_VARIABLE(CFG_CHANNEL_PREDICTION_FULL_SCAN_MS_NAME,
3807 WLAN_PARAM_Integer,
3808 struct hdd_config, channel_prediction_full_scan,
3809 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3810 CFG_CHANNEL_PREDICTION_FULL_SCAN_MS_DEFAULT,
3811 CFG_CHANNEL_PREDICTION_FULL_SCAN_MS_MIN,
3812 CFG_CHANNEL_PREDICTION_FULL_SCAN_MS_MAX),
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05303813
3814 REG_VARIABLE(CFG_ADAPTIVE_PNOSCAN_DWELL_MODE_NAME,
3815 WLAN_PARAM_Integer,
3816 struct hdd_config, pnoscan_adaptive_dwell_mode,
3817 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3818 CFG_ADAPTIVE_PNOSCAN_DWELL_MODE_DEFAULT,
3819 CFG_ADAPTIVE_PNOSCAN_DWELL_MODE_MIN,
3820 CFG_ADAPTIVE_PNOSCAN_DWELL_MODE_MAX),
Varun Reddy Yeturub43fda12015-09-10 18:16:21 -07003821#endif
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003822
3823 REG_VARIABLE(CFG_TX_CHAIN_MASK_CCK, WLAN_PARAM_Integer,
3824 struct hdd_config, tx_chain_mask_cck,
3825 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3826 CFG_TX_CHAIN_MASK_CCK_DEFAULT,
3827 CFG_TX_CHAIN_MASK_CCK_MIN,
3828 CFG_TX_CHAIN_MASK_CCK_MAX),
3829
3830 REG_VARIABLE(CFG_TX_CHAIN_MASK_1SS, WLAN_PARAM_Integer,
3831 struct hdd_config, tx_chain_mask_1ss,
3832 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3833 CFG_TX_CHAIN_MASK_1SS_DEFAULT,
3834 CFG_TX_CHAIN_MASK_1SS_MIN,
3835 CFG_TX_CHAIN_MASK_1SS_MAX),
3836
Jeff Johnsona89e25d2017-02-24 12:25:07 -08003837 REG_VARIABLE(CFG_ENABLE_SMART_CHAINMASK_NAME, WLAN_PARAM_Integer,
3838 struct hdd_config, smart_chainmask_enabled,
3839 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3840 CFG_ENABLE_SMART_CHAINMASK_DEFAULT,
3841 CFG_ENABLE_SMART_CHAINMASK_MIN,
3842 CFG_ENABLE_SMART_CHAINMASK_MAX),
3843
3844 REG_VARIABLE(CFG_ENABLE_COEX_ALT_CHAINMASK_NAME, WLAN_PARAM_Integer,
3845 struct hdd_config, alternative_chainmask_enabled,
3846 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3847 CFG_ENABLE_COEX_ALT_CHAINMASK_DEFAULT,
3848 CFG_ENABLE_COEX_ALT_CHAINMASK_MIN,
3849 CFG_ENABLE_COEX_ALT_CHAINMASK_MAX),
3850
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003851 REG_VARIABLE(CFG_SELF_GEN_FRM_PWR, WLAN_PARAM_Integer,
3852 struct hdd_config, self_gen_frm_pwr,
3853 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3854 CFG_SELF_GEN_FRM_PWR_DEFAULT,
3855 CFG_SELF_GEN_FRM_PWR_MIN,
3856 CFG_SELF_GEN_FRM_PWR_MAX),
3857
Varun Reddy Yeturu05186292015-09-28 17:12:33 -07003858 REG_VARIABLE(CFG_EARLY_STOP_SCAN_ENABLE, WLAN_PARAM_Integer,
3859 struct hdd_config, early_stop_scan_enable,
3860 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3861 CFG_EARLY_STOP_SCAN_ENABLE_DEFAULT,
3862 CFG_EARLY_STOP_SCAN_ENABLE_MIN,
3863 CFG_EARLY_STOP_SCAN_ENABLE_MAX),
3864
3865 REG_VARIABLE(CFG_EARLY_STOP_SCAN_MIN_THRESHOLD,
3866 WLAN_PARAM_SignedInteger, struct hdd_config,
3867 early_stop_scan_min_threshold,
3868 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3869 CFG_EARLY_STOP_SCAN_MIN_THRESHOLD_DEFAULT,
3870 CFG_EARLY_STOP_SCAN_MIN_THRESHOLD_MIN,
3871 CFG_EARLY_STOP_SCAN_MIN_THRESHOLD_MAX),
3872
3873 REG_VARIABLE(CFG_EARLY_STOP_SCAN_MAX_THRESHOLD,
3874 WLAN_PARAM_SignedInteger, struct hdd_config,
3875 early_stop_scan_max_threshold,
3876 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3877 CFG_EARLY_STOP_SCAN_MAX_THRESHOLD_DEFAULT,
3878 CFG_EARLY_STOP_SCAN_MAX_THRESHOLD_MIN,
3879 CFG_EARLY_STOP_SCAN_MAX_THRESHOLD_MAX),
3880
Varun Reddy Yeturu044bda22015-11-21 22:03:40 -08003881 REG_VARIABLE(CFG_FIRST_SCAN_BUCKET_THRESHOLD_NAME,
3882 WLAN_PARAM_SignedInteger,
3883 struct hdd_config, first_scan_bucket_threshold,
3884 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3885 CFG_FIRST_SCAN_BUCKET_THRESHOLD_DEFAULT,
3886 CFG_FIRST_SCAN_BUCKET_THRESHOLD_MIN,
3887 CFG_FIRST_SCAN_BUCKET_THRESHOLD_MAX),
3888
Ravi Joshi742495d2015-11-09 18:56:53 -08003889#ifdef FEATURE_LFR_SUBNET_DETECTION
3890 REG_VARIABLE(CFG_ENABLE_LFR_SUBNET_DETECTION, WLAN_PARAM_Integer,
3891 struct hdd_config, enable_lfr_subnet_detection,
3892 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3893 CFG_ENABLE_LFR_SUBNET_DEFAULT,
3894 CFG_ENABLE_LFR_SUBNET_MIN,
3895 CFG_ENABLE_LFR_SUBNET_MAX),
3896#endif
Sandeep Puligilla93a29ec2016-02-12 16:10:56 -08003897 REG_VARIABLE(CFG_OBSS_HT40_SCAN_ACTIVE_DWELL_TIME_NAME,
3898 WLAN_PARAM_Integer,
3899 struct hdd_config, obss_active_dwelltime,
3900 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3901 CFG_OBSS_HT40_SCAN_ACTIVE_DWELL_TIME_DEFAULT,
3902 CFG_OBSS_HT40_SCAN_ACTIVE_DWELL_TIME_MIN,
3903 CFG_OBSS_HT40_SCAN_ACTIVE_DWELL_TIME_MAX),
3904
3905 REG_VARIABLE(CFG_OBSS_HT40_SCAN_PASSIVE_DWELL_TIME_NAME,
3906 WLAN_PARAM_Integer,
3907 struct hdd_config, obss_passive_dwelltime,
3908 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3909 CFG_OBSS_HT40_SCAN_PASSIVE_DWELL_TIME_DEFAULT,
3910 CFG_OBSS_HT40_SCAN_PASSIVE_DWELL_TIME_MIN,
3911 CFG_OBSS_HT40_SCAN_PASSIVE_DWELL_TIME_MAX),
3912
3913 REG_VARIABLE(CFG_OBSS_HT40_SCAN_WIDTH_TRIGGER_INTERVAL_NAME,
3914 WLAN_PARAM_Integer,
3915 struct hdd_config, obss_width_trigger_interval,
3916 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3917 CFG_OBSS_HT40_SCAN_WIDTH_TRIGGER_INTERVAL_DEFAULT,
3918 CFG_OBSS_HT40_SCAN_WIDTH_TRIGGER_INTERVAL_MIN,
3919 CFG_OBSS_HT40_SCAN_WIDTH_TRIGGER_INTERVAL_MAX),
Deepak Dhamdhere68929ec2015-08-05 15:16:35 -07003920
3921 REG_VARIABLE(CFG_INFORM_BSS_RSSI_RAW_NAME, WLAN_PARAM_Integer,
3922 struct hdd_config, inform_bss_rssi_raw,
3923 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3924 CFG_INFORM_BSS_RSSI_RAW_DEFAULT,
3925 CFG_INFORM_BSS_RSSI_RAW_MIN,
3926 CFG_INFORM_BSS_RSSI_RAW_MAX),
Tushnim Bhattacharyya24e12a62015-10-12 14:51:56 -07003927
Manikandan Mohan976e7562016-03-15 16:33:31 -07003928#ifdef WLAN_FEATURE_TSF
3929 REG_VARIABLE(CFG_SET_TSF_GPIO_PIN_NAME, WLAN_PARAM_Integer,
3930 struct hdd_config, tsf_gpio_pin,
3931 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3932 CFG_SET_TSF_GPIO_PIN_DEFAULT,
3933 CFG_SET_TSF_GPIO_PIN_MIN,
3934 CFG_SET_TSF_GPIO_PIN_MAX),
3935#endif
3936
Gupta, Kapilc68ad462016-02-01 19:17:23 +05303937 REG_VARIABLE(CFG_ROAM_DENSE_TRAFFIC_THRESHOLD, WLAN_PARAM_Integer,
3938 struct hdd_config, roam_dense_traffic_thresh,
3939 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3940 CFG_ROAM_DENSE_TRAFFIC_THRESHOLD_DEFAULT,
3941 CFG_ROAM_DENSE_TRAFFIC_THRESHOLD_MIN,
3942 CFG_ROAM_DENSE_TRAFFIC_THRESHOLD_MAX),
3943
3944 REG_VARIABLE(CFG_ROAM_DENSE_RSSI_THRE_OFFSET, WLAN_PARAM_Integer,
3945 struct hdd_config, roam_dense_rssi_thresh_offset,
3946 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3947 CFG_ROAM_DENSE_RSSI_THRE_OFFSET_DEFAULT,
3948 CFG_ROAM_DENSE_RSSI_THRE_OFFSET_MIN,
3949 CFG_ROAM_DENSE_RSSI_THRE_OFFSET_MAX),
3950
Abhishek Singh165bc602016-03-21 12:43:00 +05303951 REG_VARIABLE(CFG_IGNORE_PEER_HT_MODE_NAME, WLAN_PARAM_Integer,
3952 struct hdd_config, ignore_peer_ht_opmode,
3953 VAR_FLAGS_OPTIONAL |
3954 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3955 CFG_IGNORE_PEER_HT_MODE_DEFAULT,
3956 CFG_IGNORE_PEER_HT_MODE_MIN,
3957 CFG_IGNORE_PEER_HT_MODE_MAX),
3958
Gupta, Kapilc68ad462016-02-01 19:17:23 +05303959 REG_VARIABLE(CFG_ROAM_DENSE_MIN_APS, WLAN_PARAM_Integer,
3960 struct hdd_config, roam_dense_min_aps,
3961 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3962 CFG_ROAM_DENSE_MIN_APS_DEFAULT,
3963 CFG_ROAM_DENSE_MIN_APS_MIN,
3964 CFG_ROAM_DENSE_MIN_APS_MAX),
3965
Varun Reddy Yeturufaad37e2017-07-26 10:54:13 -07003966 REG_VARIABLE(CFG_ROAM_BG_SCAN_BAD_RSSI_THRESHOLD_NAME,
3967 WLAN_PARAM_SignedInteger, struct hdd_config,
3968 roam_bg_scan_bad_rssi_thresh,
3969 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3970 CFG_ROAM_BG_SCAN_BAD_RSSI_THRESHOLD_DEFAULT,
3971 CFG_ROAM_BG_SCAN_BAD_RSSI_THRESHOLD_MIN,
3972 CFG_ROAM_BG_SCAN_BAD_RSSI_THRESHOLD_MAX),
3973
3974 REG_VARIABLE(CFG_ROAM_BG_SCAN_CLIENT_BITMAP_NAME, WLAN_PARAM_Integer,
3975 struct hdd_config, roam_bg_scan_client_bitmap,
3976 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3977 CFG_ROAM_BG_SCAN_CLIENT_BITMAP_DEFAULT,
3978 CFG_ROAM_BG_SCAN_CLIENT_BITMAP_MIN,
3979 CFG_ROAM_BG_SCAN_CLIENT_BITMAP_MAX),
3980
Abhishek Singh5ea86532016-04-27 14:10:53 +05303981 REG_VARIABLE(CFG_ENABLE_FATAL_EVENT_TRIGGER, WLAN_PARAM_Integer,
3982 struct hdd_config, enable_fatal_event,
3983 VAR_FLAGS_OPTIONAL |
3984 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3985 CFG_ENABLE_FATAL_EVENT_TRIGGER_DEFAULT,
3986 CFG_ENABLE_FATAL_EVENT_TRIGGER_MIN,
3987 CFG_ENABLE_FATAL_EVENT_TRIGGER_MAX),
3988
Abhishek Singh10ecf582016-05-04 17:48:59 +05303989 REG_VARIABLE(CFG_ENABLE_EDCA_INI_NAME, WLAN_PARAM_Integer,
3990 struct hdd_config, enable_edca_params,
3991 VAR_FLAGS_OPTIONAL |
3992 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3993 CFG_ENABLE_EDCA_INI_DEFAULT,
3994 CFG_ENABLE_EDCA_INI_MIN,
3995 CFG_ENABLE_EDCA_INI_MAX),
3996
Agrawal Ashishb2d1a452016-05-05 12:23:58 +05303997 REG_VARIABLE(CFG_ENABLE_GO_CTS2SELF_FOR_STA, WLAN_PARAM_Integer,
3998 struct hdd_config, enable_go_cts2self_for_sta,
3999 VAR_FLAGS_OPTIONAL |
4000 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4001 CFG_ENABLE_GO_CTS2SELF_FOR_STA_DEFAULT,
4002 CFG_ENABLE_GO_CTS2SELF_FOR_STA_MIN,
4003 CFG_ENABLE_GO_CTS2SELF_FOR_STA_MAX),
4004
Abhishek Singh10ecf582016-05-04 17:48:59 +05304005 REG_VARIABLE(CFG_EDCA_VO_CWMIN_VALUE_NAME, WLAN_PARAM_Integer,
4006 struct hdd_config, edca_vo_cwmin,
4007 VAR_FLAGS_OPTIONAL |
4008 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4009 CFG_EDCA_VO_CWMIN_VALUE_DEFAULT,
4010 CFG_EDCA_VO_CWMIN_VALUE_MIN,
4011 CFG_EDCA_VO_CWMIN_VALUE_MAX),
4012
4013 REG_VARIABLE(CFG_EDCA_VI_CWMIN_VALUE_NAME, WLAN_PARAM_Integer,
4014 struct hdd_config, edca_vi_cwmin,
4015 VAR_FLAGS_OPTIONAL |
4016 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4017 CFG_EDCA_VI_CWMIN_VALUE_DEFAULT,
4018 CFG_EDCA_VI_CWMIN_VALUE_MIN,
4019 CFG_EDCA_VI_CWMIN_VALUE_MAX),
4020
4021 REG_VARIABLE(CFG_EDCA_BK_CWMIN_VALUE_NAME, WLAN_PARAM_Integer,
4022 struct hdd_config, edca_bk_cwmin,
4023 VAR_FLAGS_OPTIONAL |
4024 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4025 CFG_EDCA_BK_CWMIN_VALUE_DEFAULT,
4026 CFG_EDCA_BK_CWMIN_VALUE_MIN,
4027 CFG_EDCA_BK_CWMIN_VALUE_MAX),
4028
4029 REG_VARIABLE(CFG_EDCA_BE_CWMIN_VALUE_NAME, WLAN_PARAM_Integer,
4030 struct hdd_config, edca_be_cwmin,
4031 VAR_FLAGS_OPTIONAL |
4032 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4033 CFG_EDCA_BE_CWMIN_VALUE_DEFAULT,
4034 CFG_EDCA_BE_CWMIN_VALUE_MIN,
4035 CFG_EDCA_BE_CWMIN_VALUE_MAX),
4036
4037 REG_VARIABLE(CFG_EDCA_VO_CWMAX_VALUE_NAME, WLAN_PARAM_Integer,
4038 struct hdd_config, edca_vo_cwmax,
4039 VAR_FLAGS_OPTIONAL |
4040 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4041 CFG_EDCA_VO_CWMAX_VALUE_DEFAULT,
4042 CFG_EDCA_VO_CWMAX_VALUE_MIN,
4043 CFG_EDCA_VO_CWMAX_VALUE_MAX),
4044
4045 REG_VARIABLE(CFG_EDCA_VI_CWMAX_VALUE_NAME, WLAN_PARAM_Integer,
4046 struct hdd_config, edca_vi_cwmax,
4047 VAR_FLAGS_OPTIONAL |
4048 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4049 CFG_EDCA_VI_CWMAX_VALUE_DEFAULT,
4050 CFG_EDCA_VI_CWMAX_VALUE_MIN,
4051 CFG_EDCA_VI_CWMAX_VALUE_MAX),
4052
4053 REG_VARIABLE(CFG_EDCA_BK_CWMAX_VALUE_NAME, WLAN_PARAM_Integer,
4054 struct hdd_config, edca_bk_cwmax,
4055 VAR_FLAGS_OPTIONAL |
4056 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4057 CFG_EDCA_BK_CWMAX_VALUE_DEFAULT,
4058 CFG_EDCA_BK_CWMAX_VALUE_MIN,
4059 CFG_EDCA_BK_CWMAX_VALUE_MAX),
4060
4061 REG_VARIABLE(CFG_EDCA_BE_CWMAX_VALUE_NAME, WLAN_PARAM_Integer,
4062 struct hdd_config, edca_be_cwmax,
4063 VAR_FLAGS_OPTIONAL |
4064 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4065 CFG_EDCA_BE_CWMAX_VALUE_DEFAULT,
4066 CFG_EDCA_BE_CWMAX_VALUE_MIN,
4067 CFG_EDCA_BE_CWMAX_VALUE_MAX),
4068
4069 REG_VARIABLE(CFG_EDCA_VO_AIFS_VALUE_NAME, WLAN_PARAM_Integer,
4070 struct hdd_config, edca_vo_aifs,
4071 VAR_FLAGS_OPTIONAL |
4072 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4073 CFG_EDCA_VO_AIFS_VALUE_DEFAULT,
4074 CFG_EDCA_VO_AIFS_VALUE_MIN,
4075 CFG_EDCA_VO_AIFS_VALUE_MAX),
4076
4077 REG_VARIABLE(CFG_EDCA_VI_AIFS_VALUE_NAME, WLAN_PARAM_Integer,
4078 struct hdd_config, edca_vi_aifs,
4079 VAR_FLAGS_OPTIONAL |
4080 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4081 CFG_EDCA_VI_AIFS_VALUE_DEFAULT,
4082 CFG_EDCA_VI_AIFS_VALUE_MIN,
4083 CFG_EDCA_VI_AIFS_VALUE_MAX),
4084
4085 REG_VARIABLE(CFG_EDCA_BK_AIFS_VALUE_NAME, WLAN_PARAM_Integer,
4086 struct hdd_config, edca_bk_aifs,
4087 VAR_FLAGS_OPTIONAL |
4088 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4089 CFG_EDCA_BK_AIFS_VALUE_DEFAULT,
4090 CFG_EDCA_BK_AIFS_VALUE_MIN,
4091 CFG_EDCA_BK_AIFS_VALUE_MAX),
4092
4093 REG_VARIABLE(CFG_EDCA_BE_AIFS_VALUE_NAME, WLAN_PARAM_Integer,
4094 struct hdd_config, edca_be_aifs,
4095 VAR_FLAGS_OPTIONAL |
4096 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4097 CFG_EDCA_BE_AIFS_VALUE_DEFAULT,
4098 CFG_EDCA_BE_AIFS_VALUE_MIN,
4099 CFG_EDCA_BE_AIFS_VALUE_MAX),
gbian62edd7e2017-03-07 13:12:13 +08004100
4101 REG_VARIABLE_STRING(CFG_ENABLE_TX_SCHED_WRR_VO_NAME,
4102 WLAN_PARAM_String,
4103 struct hdd_config, tx_sched_wrr_vo,
4104 VAR_FLAGS_OPTIONAL,
4105 (void *) CFG_ENABLE_TX_SCHED_WRR_VO_DEFAULT),
4106
4107 REG_VARIABLE_STRING(CFG_ENABLE_TX_SCHED_WRR_VI_NAME,
4108 WLAN_PARAM_String,
4109 struct hdd_config, tx_sched_wrr_vi,
4110 VAR_FLAGS_OPTIONAL,
4111 (void *) CFG_ENABLE_TX_SCHED_WRR_VI_DEFAULT),
4112
4113 REG_VARIABLE_STRING(CFG_ENABLE_TX_SCHED_WRR_BE_NAME,
4114 WLAN_PARAM_String,
4115 struct hdd_config, tx_sched_wrr_be,
4116 VAR_FLAGS_OPTIONAL,
4117 (void *) CFG_ENABLE_TX_SCHED_WRR_BE_DEFAULT),
4118
4119 REG_VARIABLE_STRING(CFG_ENABLE_TX_SCHED_WRR_BK_NAME,
4120 WLAN_PARAM_String,
4121 struct hdd_config, tx_sched_wrr_bk,
4122 VAR_FLAGS_OPTIONAL,
4123 (void *) CFG_ENABLE_TX_SCHED_WRR_BK_DEFAULT),
4124
Deepak Dhamdhere3385d752016-05-25 20:36:47 -07004125#ifdef WLAN_FEATURE_NAN_DATAPATH
4126 REG_VARIABLE(CFG_ENABLE_NAN_DATAPATH_NAME, WLAN_PARAM_Integer,
4127 struct hdd_config, enable_nan_datapath,
4128 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4129 CFG_ENABLE_NAN_DATAPATH_DEFAULT,
4130 CFG_ENABLE_NAN_DATAPATH_MIN,
4131 CFG_ENABLE_NAN_DATAPATH_MAX),
4132
4133 REG_VARIABLE(CFG_ENABLE_NAN_NDI_CHANNEL_NAME, WLAN_PARAM_Integer,
4134 struct hdd_config, nan_datapath_ndi_channel,
4135 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4136 CFG_ENABLE_NAN_NDI_CHANNEL_DEFAULT,
4137 CFG_ENABLE_NAN_NDI_CHANNEL_MIN,
4138 CFG_ENABLE_NAN_NDI_CHANNEL_MAX),
4139#endif
Kapil Gupta0ed58dc2016-04-22 15:35:26 +05304140 REG_VARIABLE(CFG_CREATE_BUG_REPORT_FOR_SCAN, WLAN_PARAM_Integer,
4141 struct hdd_config, bug_report_for_no_scan_results,
4142 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4143 CFG_CREATE_BUG_REPORT_FOR_SCAN_DEFAULT,
4144 CFG_CREATE_BUG_REPORT_FOR_SCAN_DISABLE,
4145 CFG_CREATE_BUG_REPORT_FOR_SCAN_ENABLE),
Abhishek Singh5ea86532016-04-27 14:10:53 +05304146
Kapil Gupta8878ad92017-02-13 11:56:04 +05304147 REG_VARIABLE(CFG_USER_AUTO_CHANNEL_SELECTION, WLAN_PARAM_Integer,
4148 struct hdd_config, vendor_acs_support,
4149 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4150 CFG_USER_AUTO_CHANNEL_SELECTION_DEFAULT,
4151 CFG_USER_AUTO_CHANNEL_SELECTION_DISABLE,
4152 CFG_USER_AUTO_CHANNEL_SELECTION_ENABLE),
4153
4154 REG_VARIABLE(CFG_USER_ACS_DFS_LTE, WLAN_PARAM_Integer,
4155 struct hdd_config, acs_support_for_dfs_ltecoex,
4156 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4157 CFG_USER_ACS_DFS_LTE_DEFAULT,
4158 CFG_USER_ACS_DFS_LTE_DISABLE,
4159 CFG_USER_ACS_DFS_LTE_ENABLE),
4160
Nirav Shahcc1f1ae2016-04-26 11:41:29 +05304161 REG_VARIABLE(CFG_ENABLE_DP_TRACE, WLAN_PARAM_Integer,
4162 struct hdd_config, enable_dp_trace,
4163 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4164 CFG_ENABLE_DP_TRACE_DEFAULT,
4165 CFG_ENABLE_DP_TRACE_MIN,
4166 CFG_ENABLE_DP_TRACE_MAX),
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05304167
Mohit Khannaf8f96822017-05-17 17:11:59 -07004168
4169 REG_VARIABLE_STRING(CFG_ENABLE_DP_TRACE_CONFIG, WLAN_PARAM_String,
4170 struct hdd_config, dp_trace_config,
4171 VAR_FLAGS_OPTIONAL,
4172 (void *) CFG_ENABLE_DP_TRACE_CONFIG_DEFAULT),
4173
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05304174 REG_VARIABLE(CFG_ADAPTIVE_SCAN_DWELL_MODE_NAME, WLAN_PARAM_Integer,
4175 struct hdd_config, scan_adaptive_dwell_mode,
4176 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4177 CFG_ADAPTIVE_SCAN_DWELL_MODE_DEFAULT,
4178 CFG_ADAPTIVE_SCAN_DWELL_MODE_MIN,
4179 CFG_ADAPTIVE_SCAN_DWELL_MODE_MAX),
4180
4181 REG_VARIABLE(CFG_ADAPTIVE_ROAMSCAN_DWELL_MODE_NAME, WLAN_PARAM_Integer,
4182 struct hdd_config, roamscan_adaptive_dwell_mode,
4183 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4184 CFG_ADAPTIVE_ROAMSCAN_DWELL_MODE_DEFAULT,
4185 CFG_ADAPTIVE_ROAMSCAN_DWELL_MODE_MIN,
4186 CFG_ADAPTIVE_ROAMSCAN_DWELL_MODE_MAX),
4187
4188 REG_VARIABLE(CFG_ADAPTIVE_EXTSCAN_DWELL_MODE_NAME, WLAN_PARAM_Integer,
4189 struct hdd_config, extscan_adaptive_dwell_mode,
4190 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4191 CFG_ADAPTIVE_EXTSCAN_DWELL_MODE_DEFAULT,
4192 CFG_ADAPTIVE_EXTSCAN_DWELL_MODE_MIN,
4193 CFG_ADAPTIVE_EXTSCAN_DWELL_MODE_MAX),
4194
4195 REG_VARIABLE(CFG_ADAPTIVE_DWELL_MODE_ENABLED_NAME, WLAN_PARAM_Integer,
4196 struct hdd_config, adaptive_dwell_mode_enabled,
4197 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4198 CFG_ADAPTIVE_DWELL_MODE_ENABLED_DEFAULT,
4199 CFG_ADAPTIVE_DWELL_MODE_ENABLED_MIN,
4200 CFG_ADAPTIVE_DWELL_MODE_ENABLED_MAX),
4201
4202 REG_VARIABLE(CFG_GLOBAL_ADAPTIVE_DWELL_MODE_NAME, WLAN_PARAM_Integer,
4203 struct hdd_config, global_adapt_dwelltime_mode,
4204 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4205 CFG_GLOBAL_ADAPTIVE_DWELL_MODE_DEFAULT,
4206 CFG_GLOBAL_ADAPTIVE_DWELL_MODE_MIN,
4207 CFG_GLOBAL_ADAPTIVE_DWELL_MODE_MAX),
4208
4209 REG_VARIABLE(CFG_ADAPT_DWELL_LPF_WEIGHT_NAME, WLAN_PARAM_Integer,
4210 struct hdd_config, adapt_dwell_lpf_weight,
4211 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4212 CFG_ADAPT_DWELL_LPF_WEIGHT_DEFAULT,
4213 CFG_ADAPT_DWELL_LPF_WEIGHT_MIN,
4214 CFG_ADAPT_DWELL_LPF_WEIGHT_MAX),
4215
Naveen Rawat64e477e2016-05-20 10:34:56 -07004216 REG_VARIABLE(CFG_SUB_20_CHANNEL_WIDTH_NAME, WLAN_PARAM_Integer,
4217 struct hdd_config, enable_sub_20_channel_width,
4218 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4219 CFG_SUB_20_CHANNEL_WIDTH_DEFAULT,
4220 CFG_SUB_20_CHANNEL_WIDTH_MIN,
4221 CFG_SUB_20_CHANNEL_WIDTH_MAX),
4222
Rajeev Kumar Sirasanagandlaaf474742016-09-06 17:54:50 +05304223 REG_VARIABLE(CFG_TGT_GTX_USR_CFG_NAME, WLAN_PARAM_Integer,
4224 struct hdd_config, tgt_gtx_usr_cfg,
4225 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4226 CFG_TGT_GTX_USR_CFG_DEFAULT,
4227 CFG_TGT_GTX_USR_CFG_MIN,
4228 CFG_TGT_GTX_USR_CFG_MAX),
4229
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05304230 REG_VARIABLE(CFG_ADAPT_DWELL_PASMON_INTVAL_NAME, WLAN_PARAM_Integer,
4231 struct hdd_config, adapt_dwell_passive_mon_intval,
4232 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4233 CFG_ADAPT_DWELL_PASMON_INTVAL_DEFAULT,
4234 CFG_ADAPT_DWELL_PASMON_INTVAL_MIN,
4235 CFG_ADAPT_DWELL_PASMON_INTVAL_MAX),
4236
4237 REG_VARIABLE(CFG_ADAPT_DWELL_WIFI_THRESH_NAME, WLAN_PARAM_Integer,
4238 struct hdd_config, adapt_dwell_wifi_act_threshold,
4239 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4240 CFG_ADAPT_DWELL_WIFI_THRESH_DEFAULT,
4241 CFG_ADAPT_DWELL_WIFI_THRESH_MIN,
4242 CFG_ADAPT_DWELL_WIFI_THRESH_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004243
Nirav Shahbd36b062016-07-18 11:12:59 +05304244 REG_VARIABLE(CFG_RX_MODE_NAME, WLAN_PARAM_Integer,
4245 struct hdd_config, rx_mode,
4246 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4247 CFG_RX_MODE_DEFAULT,
4248 CFG_RX_MODE_MIN,
4249 CFG_RX_MODE_MAX),
4250
4251 REG_VARIABLE_STRING(CFG_RPS_RX_QUEUE_CPU_MAP_LIST_NAME,
4252 WLAN_PARAM_String,
4253 struct hdd_config, cpu_map_list,
4254 VAR_FLAGS_OPTIONAL,
4255 (void *)CFG_RPS_RX_QUEUE_CPU_MAP_LIST_DEFAULT),
4256
Amar Singhal18517882016-08-08 12:26:20 -07004257 REG_VARIABLE(CFG_INDOOR_CHANNEL_SUPPORT_NAME,
4258 WLAN_PARAM_Integer,
4259 struct hdd_config, indoor_channel_support,
4260 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4261 CFG_INDOOR_CHANNEL_SUPPORT_DEFAULT,
4262 CFG_INDOOR_CHANNEL_SUPPORT_MIN,
4263 CFG_INDOOR_CHANNEL_SUPPORT_MAX),
4264
Yingying Tangb4832f72016-10-20 13:44:55 +08004265 REG_VARIABLE(CFG_SAP_TX_LEAKAGE_THRESHOLD_NAME,
4266 WLAN_PARAM_Integer,
4267 struct hdd_config, sap_tx_leakage_threshold,
4268 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4269 CFG_SAP_TX_LEAKAGE_THRESHOLD_DEFAULT,
4270 CFG_SAP_TX_LEAKAGE_THRESHOLD_MIN,
4271 CFG_SAP_TX_LEAKAGE_THRESHOLD_MAX),
4272
Mukul Sharmaf7d62e12016-09-03 15:16:22 +05304273 REG_VARIABLE(CFG_BUG_ON_REINIT_FAILURE_NAME, WLAN_PARAM_Integer,
4274 struct hdd_config, bug_on_reinit_failure,
4275 VAR_FLAGS_OPTIONAL |
4276 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4277 CFG_BUG_ON_REINIT_FAILURE_DEFAULT,
4278 CFG_BUG_ON_REINIT_FAILURE_MIN,
4279 CFG_BUG_ON_REINIT_FAILURE_MAX),
4280
Rajeev Kumar Sirasanagandlab79b5462016-09-06 18:33:17 +05304281 REG_VARIABLE(CFG_SAP_FORCE_11N_FOR_11AC_NAME, WLAN_PARAM_Integer,
4282 struct hdd_config, sap_force_11n_for_11ac,
4283 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4284 CFG_SAP_FORCE_11N_FOR_11AC_DEFAULT,
4285 CFG_SAP_FORCE_11N_FOR_11AC_MIN,
4286 CFG_SAP_FORCE_11N_FOR_11AC_MAX),
4287
Arun Khandavallifae92942016-08-01 13:31:08 +05304288 REG_VARIABLE(CFG_INTERFACE_CHANGE_WAIT_NAME, WLAN_PARAM_Integer,
4289 struct hdd_config, iface_change_wait_time,
4290 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
4291 CFG_INTERFACE_CHANGE_WAIT_DEFAULT,
4292 CFG_INTERFACE_CHANGE_WAIT_MIN,
4293 CFG_INTERFACE_CHANGE_WAIT_MAX),
Ravi Joshibb8d4512016-08-22 10:14:52 -07004294
4295 REG_VARIABLE(CFG_FILTER_MULTICAST_REPLAY_NAME,
4296 WLAN_PARAM_Integer,
4297 struct hdd_config, multicast_replay_filter,
4298 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4299 CFG_FILTER_MULTICAST_REPLAY_DEFAULT,
4300 CFG_FILTER_MULTICAST_REPLAY_MIN,
4301 CFG_FILTER_MULTICAST_REPLAY_MAX),
Manjeet Singhe7ecb7c2016-09-03 12:34:53 +05304302
4303 REG_VARIABLE(CFG_SIFS_BURST_DURATION_NAME, WLAN_PARAM_Integer,
4304 struct hdd_config, sifs_burst_duration,
4305 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4306 CFG_SIFS_BURST_DURATION_DEFAULT,
4307 CFG_SIFS_BURST_DURATION_MIN,
4308 CFG_SIFS_BURST_DURATION_MAX),
Selvaraj, Sridharebda0f22016-08-29 16:05:23 +05304309 REG_VARIABLE(CFG_OPTIMIZE_CA_EVENT_NAME, WLAN_PARAM_Integer,
4310 struct hdd_config, goptimize_chan_avoid_event,
4311 VAR_FLAGS_OPTIONAL |
4312 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4313 CFG_OPTIMIZE_CA_EVENT_DEFAULT,
4314 CFG_OPTIMIZE_CA_EVENT_DISABLE,
4315 CFG_OPTIMIZE_CA_EVENT_ENABLE),
Padma, Santhosh Kumara7119672016-08-16 16:05:14 +05304316
4317 REG_VARIABLE(CFG_TX_AGGREGATION_SIZE, WLAN_PARAM_Integer,
4318 struct hdd_config, tx_aggregation_size,
4319 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4320 CFG_TX_AGGREGATION_SIZE_DEFAULT,
4321 CFG_TX_AGGREGATION_SIZE_MIN,
4322 CFG_TX_AGGREGATION_SIZE_MAX),
4323
4324 REG_VARIABLE(CFG_RX_AGGREGATION_SIZE, WLAN_PARAM_Integer,
4325 struct hdd_config, rx_aggregation_size,
4326 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4327 CFG_RX_AGGREGATION_SIZE_DEFAULT,
4328 CFG_RX_AGGREGATION_SIZE_MIN,
4329 CFG_RX_AGGREGATION_SIZE_MAX),
Agrawal, Ashish4e5fa1c2016-09-21 19:03:43 +05304330 REG_VARIABLE(CFG_SAP_MAX_INACTIVITY_OVERRIDE_NAME, WLAN_PARAM_Integer,
4331 struct hdd_config, sap_max_inactivity_override,
4332 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4333 CFG_SAP_MAX_INACTIVITY_OVERRIDE_DEFAULT,
4334 CFG_SAP_MAX_INACTIVITY_OVERRIDE_MIN,
Sandeep Puligillaafa52892016-10-26 19:03:16 -07004335 CFG_SAP_MAX_INACTIVITY_OVERRIDE_MAX),
4336 REG_VARIABLE(CFG_CRASH_FW_TIMEOUT_NAME, WLAN_PARAM_Integer,
4337 struct hdd_config, fw_timeout_crash,
4338 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4339 CFG_CRASH_FW_TIMEOUT_DEFAULT,
4340 CFG_CRASH_FW_TIMEOUT_DISABLE,
4341 CFG_CRASH_FW_TIMEOUT_ENABLE),
Dustin Browncd756942016-11-23 12:25:33 -08004342 REG_VARIABLE(CFG_RX_WAKELOCK_TIMEOUT_NAME, WLAN_PARAM_Integer,
4343 struct hdd_config, rx_wakelock_timeout,
4344 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4345 CFG_RX_WAKELOCK_TIMEOUT_DEFAULT,
4346 CFG_RX_WAKELOCK_TIMEOUT_MIN,
Anurag Chouhan7c01cc42016-12-16 21:33:43 +05304347 CFG_RX_WAKELOCK_TIMEOUT_MAX),
gaoleze2920bd2017-03-21 17:38:42 +08004348 REG_VARIABLE(CFG_SAP_CH_SWITCH_BEACON_CNT, WLAN_PARAM_Integer,
4349 struct hdd_config, sap_chanswitch_beacon_cnt,
4350 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4351 CFG_SAP_CH_SWITCH_BEACON_CNT_DEFAULT,
4352 CFG_SAP_CH_SWITCH_BEACON_CNT_MIN,
4353 CFG_SAP_CH_SWITCH_BEACON_CNT_MAX),
gaolez76d2a162017-03-21 19:23:58 +08004354 REG_VARIABLE(CFG_SAP_CH_SWITCH_MODE, WLAN_PARAM_Integer,
4355 struct hdd_config, sap_chanswitch_mode,
4356 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4357 CFG_SAP_CH_SWITCH_MODE_DEFAULT,
4358 CFG_SAP_CH_SWITCH_MODE_MIN,
4359 CFG_SAP_CH_SWITCH_MODE_MAX),
Anurag Chouhan7c01cc42016-12-16 21:33:43 +05304360 REG_VARIABLE(CFG_MAX_SCHED_SCAN_PLAN_INT_NAME, WLAN_PARAM_Integer,
4361 struct hdd_config, max_sched_scan_plan_interval,
4362 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4363 CFG_MAX_SCHED_SCAN_PLAN_INT_DEFAULT,
4364 CFG_MAX_SCHED_SCAN_PLAN_INT_MIN,
4365 CFG_MAX_SCHED_SCAN_PLAN_INT_MAX),
4366 REG_VARIABLE(CFG_MAX_SCHED_SCAN_PLAN_ITRNS_NAME, WLAN_PARAM_Integer,
4367 struct hdd_config, max_sched_scan_plan_iterations,
4368 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4369 CFG_MAX_SCHED_SCAN_PLAN_ITRNS_DEFAULT,
4370 CFG_MAX_SCHED_SCAN_PLAN_ITRNS_MIN,
4371 CFG_MAX_SCHED_SCAN_PLAN_ITRNS_MAX),
Kapil Gupta5cda2252016-12-29 18:44:26 +05304372
Jeff Johnson441e1f72017-02-07 08:50:49 -08004373 REG_VARIABLE(CFG_STANDARD_WEXT_CONTROL_NAME, WLAN_PARAM_Integer,
4374 struct hdd_config, standard_wext_control,
4375 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4376 CFG_STANDARD_WEXT_CONTROL_DEFAULT,
4377 CFG_STANDARD_WEXT_CONTROL_MIN,
4378 CFG_STANDARD_WEXT_CONTROL_MAX),
4379 REG_VARIABLE(CFG_PRIVATE_WEXT_CONTROL_NAME, WLAN_PARAM_Integer,
4380 struct hdd_config, private_wext_control,
4381 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4382 CFG_PRIVATE_WEXT_CONTROL_DEFAULT,
4383 CFG_PRIVATE_WEXT_CONTROL_MIN,
4384 CFG_PRIVATE_WEXT_CONTROL_MAX),
Kapil Gupta5cda2252016-12-29 18:44:26 +05304385
Arun Khandavallicc544b32017-01-30 19:52:16 +05304386 REG_VARIABLE(CFG_SAP_INTERNAL_RESTART_NAME, WLAN_PARAM_Integer,
4387 struct hdd_config, sap_internal_restart,
4388 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4389 CFG_SAP_INTERNAL_RESTART_DEFAULT,
4390 CFG_SAP_INTERNAL_RESTART_MIN,
4391 CFG_SAP_INTERNAL_RESTART_MAX),
Srinivas Girigowda70e169a2017-03-07 23:55:57 -08004392
Hanumanth Reddy Pothulaffc2d482017-07-04 11:32:44 +05304393 REG_VARIABLE(CFG_RESTART_BEACONING_ON_CH_AVOID_NAME, WLAN_PARAM_Integer,
4394 struct hdd_config, restart_beaconing_on_chan_avoid_event,
Hanumanth Reddy Pothula9c161dd2017-03-23 19:03:08 +05304395 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
Hanumanth Reddy Pothulaffc2d482017-07-04 11:32:44 +05304396 CFG_RESTART_BEACONING_ON_CH_AVOID_DEFAULT,
4397 CFG_RESTART_BEACONING_ON_CH_AVOID_MIN,
4398 CFG_RESTART_BEACONING_ON_CH_AVOID_MAX),
Hanumanth Reddy Pothula9c161dd2017-03-23 19:03:08 +05304399
Kapil Gupta5cda2252016-12-29 18:44:26 +05304400 REG_VARIABLE(CFG_PER_ROAM_ENABLE_NAME, WLAN_PARAM_Integer,
4401 struct hdd_config, is_per_roam_enabled,
4402 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4403 CFG_PER_ROAM_ENABLE_DEFAULT,
4404 CFG_PER_ROAM_ENABLE_MIN,
4405 CFG_PER_ROAM_ENABLE_MAX),
4406
4407 REG_VARIABLE(CFG_PER_ROAM_CONFIG_HIGH_RATE_TH_NAME, WLAN_PARAM_Integer,
4408 struct hdd_config, per_roam_high_rate_threshold,
4409 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4410 CFG_PER_ROAM_CONFIG_HIGH_RATE_TH_DEFAULT,
4411 CFG_PER_ROAM_CONFIG_HIGH_RATE_TH_MIN,
4412 CFG_PER_ROAM_CONFIG_HIGH_RATE_TH_MAX),
4413
4414 REG_VARIABLE(CFG_PER_ROAM_CONFIG_LOW_RATE_TH_NAME, WLAN_PARAM_Integer,
4415 struct hdd_config, per_roam_low_rate_threshold,
4416 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4417 CFG_PER_ROAM_CONFIG_LOW_RATE_TH_DEFAULT,
4418 CFG_PER_ROAM_CONFIG_LOW_RATE_TH_MIN,
4419 CFG_PER_ROAM_CONFIG_LOW_RATE_TH_MAX),
4420
4421 REG_VARIABLE(CFG_PER_ROAM_CONFIG_RATE_TH_PERCENT_NAME,
4422 WLAN_PARAM_Integer, struct hdd_config, per_roam_th_percent,
4423 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4424 CFG_PER_ROAM_CONFIG_RATE_TH_PERCENT_DEFAULT,
4425 CFG_PER_ROAM_CONFIG_RATE_TH_PERCENT_MIN,
4426 CFG_PER_ROAM_CONFIG_RATE_TH_PERCENT_MAX),
4427
4428 REG_VARIABLE(CFG_PER_ROAM_REST_TIME_NAME, WLAN_PARAM_Integer,
4429 struct hdd_config, per_roam_rest_time,
4430 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4431 CFG_PER_ROAM_REST_TIME_DEFAULT,
4432 CFG_PER_ROAM_REST_TIME_MIN,
4433 CFG_PER_ROAM_REST_TIME_MAX),
Kapil Gupta957827b2017-02-13 15:47:04 +05304434
4435 REG_VARIABLE(CFG_PER_ROAM_MONITOR_TIME, WLAN_PARAM_Integer,
4436 struct hdd_config, per_roam_mon_time,
4437 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4438 CFG_PER_ROAM_MONTIOR_TIME_DEFAULT,
4439 CFG_PER_ROAM_MONITOR_TIME_MIN,
4440 CFG_PER_ROAM_MONITOR_TIME_MAX),
4441
Selvaraj, Sridhar0641fab2017-05-17 16:02:00 +05304442 REG_VARIABLE(CFG_PER_ROAM_MIN_CANDIDATE_RSSI, WLAN_PARAM_Integer,
4443 struct hdd_config, min_candidate_rssi,
4444 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4445 CFG_PER_ROAM_MIN_CANDIDATE_RSSI_DEFAULT,
4446 CFG_PER_ROAM_MIN_CANDIDATE_RSSI_MIN,
4447 CFG_PER_ROAM_MIN_CANDIDATE_RSSI_MAX),
4448
Hanumanth Reddy Pothulae87621b2017-04-12 20:53:35 +05304449 REG_VARIABLE(CFG_ACTIVE_UC_BPF_MODE_NAME, WLAN_PARAM_Integer,
4450 struct hdd_config, active_uc_bpf_mode,
Dustin Brown13995f02017-01-12 15:38:42 -08004451 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
Hanumanth Reddy Pothulae87621b2017-04-12 20:53:35 +05304452 CFG_ACTIVE_UC_BPF_MODE_DEFAULT,
4453 CFG_ACTIVE_UC_BPF_MODE_MIN,
4454 CFG_ACTIVE_UC_BPF_MODE_MAX),
4455
4456 REG_VARIABLE(CFG_ACTIVE_MC_BC_BPF_MODE_NAME, WLAN_PARAM_Integer,
4457 struct hdd_config, active_mc_bc_bpf_mode,
4458 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4459 CFG_ACTIVE_MC_BC_BPF_MODE_DEFAULT,
4460 CFG_ACTIVE_MC_BC_BPF_MODE_MIN,
4461 CFG_ACTIVE_MC_BC_BPF_MODE_MAX),
4462
Selvaraj, Sridhar4f684bb2017-01-19 15:59:23 +05304463 REG_VARIABLE(CFG_ENABLE_BCAST_PROBE_RESP_NAME, WLAN_PARAM_Integer,
4464 struct hdd_config, enable_bcast_probe_rsp,
4465 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4466 CFG_ENABLE_BCAST_PROBE_RESP_DEFAULT,
4467 CFG_ENABLE_BCAST_PROBE_RESP_MIN,
4468 CFG_ENABLE_BCAST_PROBE_RESP_MAX),
Naveen Rawatb2fc4132017-05-10 20:42:05 -07004469
Krishna Kumaar Natarajan90bb6f12017-03-03 21:05:52 -08004470#ifdef WLAN_FEATURE_11AX
4471 REG_VARIABLE(CFG_ENABLE_UL_MIMO_NAME, WLAN_PARAM_Integer,
4472 struct hdd_config, enable_ul_mimo,
4473 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4474 CFG_ENABLE_UL_MIMO_DEFAULT,
4475 CFG_ENABLE_UL_MIMO_MIN,
4476 CFG_ENABLE_UL_MIMO_MAX),
4477
4478 REG_VARIABLE(CFG_ENABLE_UL_OFDMA_NAME, WLAN_PARAM_Integer,
4479 struct hdd_config, enable_ul_ofdma,
4480 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4481 CFG_ENABLE_UL_OFDMA_DEFAULT,
4482 CFG_ENABLE_UL_OFDMA_MIN,
4483 CFG_ENABLE_UL_OFDMA_MAX),
Manikandan Mohan39accff2017-05-02 16:09:00 -07004484
4485 REG_VARIABLE(CFG_HE_STA_OBSSPD_NAME, WLAN_PARAM_HexInteger,
4486 struct hdd_config, he_sta_obsspd,
4487 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4488 CFG_HE_STA_OBSSPD_DEFAULT,
4489 CFG_HE_STA_OBSSPD_MIN,
4490 CFG_HE_STA_OBSSPD_MAX),
Krishna Kumaar Natarajan90bb6f12017-03-03 21:05:52 -08004491#endif
Dustin Brownab1364a2017-03-27 16:59:08 -07004492
4493 REG_VARIABLE(CFG_L1SS_SLEEP_ALLOWED_NAME, WLAN_PARAM_Integer,
4494 struct hdd_config, l1ss_sleep_allowed,
4495 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4496 CFG_L1SS_SLEEP_ALLOWED_DEFAULT,
4497 CFG_L1SS_SLEEP_ALLOWED_MIN,
4498 CFG_L1SS_SLEEP_ALLOWED_MAX),
4499
Srinivas Girigowda70e169a2017-03-07 23:55:57 -08004500 REG_VARIABLE(CFG_ARP_AC_CATEGORY, WLAN_PARAM_Integer,
4501 struct hdd_config, arp_ac_category,
4502 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4503 CFG_ARP_AC_CATEGORY_DEFAULT,
4504 CFG_ARP_AC_CATEGORY_MIN,
4505 CFG_ARP_AC_CATEGORY_MAX),
Jeff Johnson12a744b2017-04-04 08:19:37 -07004506
4507 REG_VARIABLE(CFG_ENABLE_ANI_NAME, WLAN_PARAM_Integer,
4508 struct hdd_config, ani_enabled,
4509 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4510 CFG_ENABLE_ANI_DEFAULT,
4511 CFG_ENABLE_ANI_MIN,
4512 CFG_ENABLE_ANI_MAX),
Amar Singhal5cccafe2017-02-15 12:42:58 -08004513
Selvaraj, Sridhara521aab2017-03-25 16:42:34 +05304514 REG_VARIABLE(CFG_QCN_IE_SUPPORT_NAME, WLAN_PARAM_Integer,
4515 struct hdd_config, qcn_ie_support,
4516 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4517 CFG_QCN_IE_SUPPORT_DEFAULT,
4518 CFG_QCN_IE_SUPPORT_MIN,
4519 CFG_QCN_IE_SUPPORT_MAX),
Amar Singhal5cccafe2017-02-15 12:42:58 -08004520
Dustin Brown7f939932017-05-18 15:02:17 -07004521 REG_VARIABLE(CFG_TIMER_MULTIPLIER_NAME, WLAN_PARAM_Integer,
4522 struct hdd_config, timer_multiplier,
4523 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4524 CFG_TIMER_MULTIPLIER_DEFAULT,
4525 CFG_TIMER_MULTIPLIER_MIN,
4526 CFG_TIMER_MULTIPLIER_MAX),
4527
Amar Singhal5cccafe2017-02-15 12:42:58 -08004528 REG_VARIABLE(CFG_ENABLE_REG_OFFLOAD_NAME, WLAN_PARAM_Integer,
4529 struct hdd_config, reg_offload_enabled,
4530 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4531 CFG_ENABLE_REG_OFFLOAD_DEFAULT,
4532 CFG_ENABLE_REG_OFFLOAD_MIN,
4533 CFG_ENABLE_REG_OFFLOAD_MAX),
Naveen Rawat2b6e3c92017-03-20 13:59:07 -07004534
Rajeev Kumar Sirasanagandlaaec0b082017-06-21 11:59:41 +05304535 REG_VARIABLE(CFG_PRB_REQ_IE_WHITELIST_NAME, WLAN_PARAM_Integer,
4536 struct hdd_config, probe_req_ie_whitelist,
4537 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4538 CFG_PRB_REQ_IE_WHITELIST_DEFAULT,
4539 CFG_PRB_REQ_IE_WHITELIST_MIN,
4540 CFG_PRB_REQ_IE_WHITELIST_MAX),
4541
4542 REG_VARIABLE(CFG_PRB_REQ_IE_BIT_MAP0_NAME, WLAN_PARAM_HexInteger,
4543 struct hdd_config, probe_req_ie_bitmap_0,
4544 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4545 CFG_PRB_REQ_IE_BIT_MAP0_DEFAULT,
4546 CFG_PRB_REQ_IE_BIT_MAP0_MIN,
4547 CFG_PRB_REQ_IE_BIT_MAP0_MAX),
4548
4549 REG_VARIABLE(CFG_PRB_REQ_IE_BIT_MAP1_NAME, WLAN_PARAM_HexInteger,
4550 struct hdd_config, probe_req_ie_bitmap_1,
4551 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4552 CFG_PRB_REQ_IE_BIT_MAP1_DEFAULT,
4553 CFG_PRB_REQ_IE_BIT_MAP1_MIN,
4554 CFG_PRB_REQ_IE_BIT_MAP1_MAX),
4555
4556 REG_VARIABLE(CFG_PRB_REQ_IE_BIT_MAP2_NAME, WLAN_PARAM_HexInteger,
4557 struct hdd_config, probe_req_ie_bitmap_2,
4558 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4559 CFG_PRB_REQ_IE_BIT_MAP2_DEFAULT,
4560 CFG_PRB_REQ_IE_BIT_MAP2_MIN,
4561 CFG_PRB_REQ_IE_BIT_MAP2_MAX),
4562
4563 REG_VARIABLE(CFG_PRB_REQ_IE_BIT_MAP3_NAME, WLAN_PARAM_HexInteger,
4564 struct hdd_config, probe_req_ie_bitmap_3,
4565 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4566 CFG_PRB_REQ_IE_BIT_MAP3_DEFAULT,
4567 CFG_PRB_REQ_IE_BIT_MAP3_MIN,
4568 CFG_PRB_REQ_IE_BIT_MAP3_MAX),
4569
4570 REG_VARIABLE(CFG_PRB_REQ_IE_BIT_MAP4_NAME, WLAN_PARAM_HexInteger,
4571 struct hdd_config, probe_req_ie_bitmap_4,
4572 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4573 CFG_PRB_REQ_IE_BIT_MAP4_DEFAULT,
4574 CFG_PRB_REQ_IE_BIT_MAP4_MIN,
4575 CFG_PRB_REQ_IE_BIT_MAP4_MAX),
4576
4577 REG_VARIABLE(CFG_PRB_REQ_IE_BIT_MAP5_NAME, WLAN_PARAM_HexInteger,
4578 struct hdd_config, probe_req_ie_bitmap_5,
4579 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4580 CFG_PRB_REQ_IE_BIT_MAP5_DEFAULT,
4581 CFG_PRB_REQ_IE_BIT_MAP5_MIN,
4582 CFG_PRB_REQ_IE_BIT_MAP5_MAX),
4583
4584 REG_VARIABLE(CFG_PRB_REQ_IE_BIT_MAP6_NAME, WLAN_PARAM_HexInteger,
4585 struct hdd_config, probe_req_ie_bitmap_6,
4586 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4587 CFG_PRB_REQ_IE_BIT_MAP6_DEFAULT,
4588 CFG_PRB_REQ_IE_BIT_MAP6_MIN,
4589 CFG_PRB_REQ_IE_BIT_MAP6_MAX),
4590
4591 REG_VARIABLE(CFG_PRB_REQ_IE_BIT_MAP7_NAME, WLAN_PARAM_HexInteger,
4592 struct hdd_config, probe_req_ie_bitmap_7,
4593 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4594 CFG_PRB_REQ_IE_BIT_MAP7_DEFAULT,
4595 CFG_PRB_REQ_IE_BIT_MAP7_MIN,
4596 CFG_PRB_REQ_IE_BIT_MAP7_MAX),
4597
4598 REG_VARIABLE_STRING(CFG_PROBE_REQ_OUI_NAME, WLAN_PARAM_String,
4599 struct hdd_config, probe_req_ouis,
4600 VAR_FLAGS_OPTIONAL,
4601 (void *)CFG_PROBE_REQ_OUI_DEFAULT),
4602
Selvaraj, Sridhar97ce6582017-01-20 17:06:34 +05304603 REG_VARIABLE(CFG_FILS_MAX_CHAN_GUARD_TIME_NAME, WLAN_PARAM_Integer,
4604 struct hdd_config, fils_max_chan_guard_time,
4605 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4606 CFG_FILS_MAX_CHAN_GUARD_TIME_DEFAULT,
4607 CFG_FILS_MAX_CHAN_GUARD_TIME_MIN,
4608 CFG_FILS_MAX_CHAN_GUARD_TIME_MAX),
Naveen Rawat2b6e3c92017-03-20 13:59:07 -07004609
Dustin Brown20b6fcf2017-05-17 15:35:17 -07004610 REG_VARIABLE(CFG_SCAN_BACKOFF_MULTIPLIER_NAME, WLAN_PARAM_Integer,
4611 struct hdd_config, scan_backoff_multiplier,
4612 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4613 CFG_SCAN_BACKOFF_MULTIPLIER_DEFAULT,
4614 CFG_SCAN_BACKOFF_MULTIPLIER_MIN,
4615 CFG_SCAN_BACKOFF_MULTIPLIER_MAX),
4616
Varun Reddy Yeturubba32e92017-09-06 13:31:40 -07004617 REG_VARIABLE(CFG_MAWC_NLO_ENABLED_NAME, WLAN_PARAM_Integer,
4618 struct hdd_config, mawc_nlo_enabled,
4619 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4620 CFG_MAWC_NLO_ENABLED_DEFAULT,
4621 CFG_MAWC_NLO_ENABLED_MIN,
4622 CFG_MAWC_NLO_ENABLED_MAX),
4623
4624 REG_VARIABLE(CFG_MAWC_NLO_EXP_BACKOFF_RATIO_NAME, WLAN_PARAM_Integer,
4625 struct hdd_config, mawc_nlo_exp_backoff_ratio,
4626 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4627 CFG_MAWC_NLO_EXP_BACKOFF_RATIO_DEFAULT,
4628 CFG_MAWC_NLO_EXP_BACKOFF_RATIO_MIN,
4629 CFG_MAWC_NLO_EXP_BACKOFF_RATIO_MAX),
4630
4631 REG_VARIABLE(CFG_MAWC_NLO_INIT_SCAN_INTERVAL_NAME, WLAN_PARAM_Integer,
4632 struct hdd_config, mawc_nlo_init_scan_interval,
4633 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4634 CFG_MAWC_NLO_INIT_SCAN_INTERVAL_DEFAULT,
4635 CFG_MAWC_NLO_INIT_SCAN_INTERVAL_MIN,
4636 CFG_MAWC_NLO_INIT_SCAN_INTERVAL_MAX),
4637
4638 REG_VARIABLE(CFG_MAWC_NLO_MAX_SCAN_INTERVAL_NAME, WLAN_PARAM_Integer,
4639 struct hdd_config, mawc_nlo_max_scan_interval,
4640 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4641 CFG_MAWC_NLO_MAX_SCAN_INTERVAL_DEFAULT,
4642 CFG_MAWC_NLO_MAX_SCAN_INTERVAL_MIN,
4643 CFG_MAWC_NLO_MAX_SCAN_INTERVAL_MAX),
4644
4645
Jayachandran Sreekumaran68c952c2017-04-24 12:42:03 +05304646 REG_VARIABLE(CFG_EXTERNAL_ACS_POLICY, WLAN_PARAM_Integer,
4647 struct hdd_config, external_acs_policy,
4648 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4649 CFG_EXTERNAL_ACS_POLICY_DEFAULT,
4650 CFG_EXTERNAL_ACS_POLICY_MIN,
4651 CFG_EXTERNAL_ACS_POLICY_MAX),
4652
4653 REG_VARIABLE(CFG_EXTERNAL_ACS_FREQ_BAND, WLAN_PARAM_Integer,
4654 struct hdd_config, external_acs_freq_band,
4655 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4656 CFG_EXTERNAL_ACS_FREQ_BAND_DEFAULT,
4657 CFG_EXTERNAL_ACS_FREQ_BAND_MIN,
4658 CFG_EXTERNAL_ACS_FREQ_BAND_MAX),
Naveen Rawat2b6e3c92017-03-20 13:59:07 -07004659
4660 REG_VARIABLE(CFG_DROPPED_PKT_DISCONNECT_TH_NAME, WLAN_PARAM_Integer,
4661 struct hdd_config, pkt_err_disconn_th,
4662 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4663 CFG_DROPPED_PKT_DISCONNECT_TH_DEFAULT,
4664 CFG_DROPPED_PKT_DISCONNECT_TH_MIN,
4665 CFG_DROPPED_PKT_DISCONNECT_TH_MAX),
Naveen Rawatb2fc4132017-05-10 20:42:05 -07004666
4667 REG_VARIABLE(CFG_FORCE_1X1_NAME, WLAN_PARAM_Integer,
4668 struct hdd_config, is_force_1x1,
4669 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4670 CFG_FORCE_1X1_DEFAULT,
4671 CFG_FORCE_1X1_MIN,
4672 CFG_FORCE_1X1_MAX),
lifeng959a04c2017-05-10 14:21:28 +08004673
4674 REG_VARIABLE(CFG_SET_RTS_FOR_SIFS_BURSTING, WLAN_PARAM_Integer,
4675 struct hdd_config, enable_rts_sifsbursting,
4676 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4677 CFG_SET_RTS_FOR_SIFS_BURSTING_DEFAULT,
4678 CFG_SET_RTS_FOR_SIFS_BURSTING_MIN,
4679 CFG_SET_RTS_FOR_SIFS_BURSTING_MAX),
4680
4681 REG_VARIABLE(CFG_MAX_MPDUS_IN_AMPDU, WLAN_PARAM_Integer,
4682 struct hdd_config, max_mpdus_inampdu,
4683 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4684 CFG_MAX_MPDUS_IN_AMPDU_DEFAULT,
4685 CFG_MAX_MPDUS_IN_AMPDU_MIN,
4686 CFG_MAX_MPDUS_IN_AMPDU_MAX),
lifeng13a89d72017-05-10 14:49:29 +08004687
4688 REG_VARIABLE(CFG_SAP_MAX_MCS_FOR_TX_DATA, WLAN_PARAM_Integer,
4689 struct hdd_config, sap_max_mcs_txdata,
4690 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4691 CFG_SAP_MAX_MCS_FOR_TX_DATA_DEFAULT,
4692 CFG_SAP_MAX_MCS_FOR_TX_DATA_MIN,
4693 CFG_SAP_MAX_MCS_FOR_TX_DATA_MAX),
Manjunathappa Prakashdab74fa2017-06-19 12:11:03 -07004694
4695 REG_VARIABLE(CFG_TX_ORPHAN_ENABLE_NAME, WLAN_PARAM_Integer,
4696 struct hdd_config, tx_orphan_enable,
4697 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4698 CFG_TX_ORPHAN_ENABLE_DEFAULT,
4699 CFG_TX_ORPHAN_ENABLE_MIN,
4700 CFG_TX_ORPHAN_ENABLE_MAX),
Ravi Kumar Bokka05c14e52017-03-27 14:48:23 +05304701
4702 REG_VARIABLE(CFG_AUTO_DETECT_POWER_FAIL_MODE_NAME, WLAN_PARAM_Integer,
4703 struct hdd_config, auto_pwr_save_fail_mode,
4704 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4705 CFG_AUTO_DETECT_POWER_FAIL_MODE_DEFAULT,
4706 CFG_AUTO_DETECT_POWER_FAIL_MODE_MIN,
4707 CFG_AUTO_DETECT_POWER_FAIL_MODE_MAX),
4708
Naveen Rawat247a8682017-06-05 15:00:31 -07004709 REG_VARIABLE(CFG_11B_NUM_TX_CHAIN_NAME, WLAN_PARAM_Integer,
4710 struct hdd_config, num_11b_tx_chains,
4711 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4712 CFG_11B_NUM_TX_CHAIN_DEFAULT,
4713 CFG_11B_NUM_TX_CHAIN_MIN,
4714 CFG_11B_NUM_TX_CHAIN_MAX),
4715
4716 REG_VARIABLE(CFG_11AG_NUM_TX_CHAIN_NAME, WLAN_PARAM_Integer,
4717 struct hdd_config, num_11ag_tx_chains,
4718 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4719 CFG_11AG_NUM_TX_CHAIN_DEFAULT,
4720 CFG_11AG_NUM_TX_CHAIN_MIN,
4721 CFG_11AG_NUM_TX_CHAIN_MAX),
Ashish Kumar Dhanotiya9335d812017-06-30 16:57:20 +05304722
4723 REG_VARIABLE(CFG_ITO_REPEAT_COUNT_NAME, WLAN_PARAM_Integer,
4724 struct hdd_config, ito_repeat_count,
4725 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4726 CFG_ITO_REPEAT_COUNT_DEFAULT,
4727 CFG_ITO_REPEAT_COUNT_MIN,
4728 CFG_ITO_REPEAT_COUNT_MAX),
4729
Selvaraj, Sridhar57ce4df2017-05-29 18:30:49 +05304730 REG_VARIABLE(CFG_ROAM_DISALLOW_DURATION_NAME, WLAN_PARAM_Integer,
4731 struct hdd_config, disallow_duration,
4732 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4733 CFG_ROAM_DISALLOW_DURATION_DEFAULT,
4734 CFG_ROAM_DISALLOW_DURATION_MIN,
4735 CFG_ROAM_DISALLOW_DURATION_MAX),
4736
4737 REG_VARIABLE(CFG_ROAM_RSSI_CHANNEL_PENALIZATION_NAME,
4738 WLAN_PARAM_Integer, struct hdd_config,
4739 rssi_channel_penalization,
4740 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4741 CFG_ROAM_RSSI_CHANNEL_PENALIZATION_DEFAULT,
4742 CFG_ROAM_RSSI_CHANNEL_PENALIZATION_MIN,
4743 CFG_ROAM_RSSI_CHANNEL_PENALIZATION_MAX),
4744
4745 REG_VARIABLE(CFG_ROAM_NUM_DISALLOWED_APS_NAME, WLAN_PARAM_Integer,
4746 struct hdd_config, num_disallowed_aps,
4747 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4748 CFG_ROAM_NUM_DISALLOWED_APS_DEFAULT,
4749 CFG_ROAM_NUM_DISALLOWED_APS_MIN,
4750 CFG_ROAM_NUM_DISALLOWED_APS_MAX),
yeshwanth sriram guntuka1413dfb2017-06-23 14:09:48 +05304751
4752 REG_VARIABLE(CFG_OCE_ENABLE_STA_NAME, WLAN_PARAM_Integer,
4753 struct hdd_config, oce_sta_enabled,
4754 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4755 CFG_OCE_ENABLE_STA_DEFAULT,
4756 CFG_OCE_ENABLE_STA_MIN,
4757 CFG_OCE_ENABLE_STA_MAX),
4758
4759 REG_VARIABLE(CFG_OCE_ENABLE_SAP_NAME, WLAN_PARAM_Integer,
4760 struct hdd_config, oce_sap_enabled,
4761 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4762 CFG_OCE_ENABLE_SAP_DEFAULT,
4763 CFG_OCE_ENABLE_SAP_MIN,
4764 CFG_OCE_ENABLE_SAP_MAX),
Manjeet Singha9cae432017-02-28 11:58:22 +05304765 REG_VARIABLE(CFG_ENABLE_5G_BAND_PREF_NAME, WLAN_PARAM_Integer,
4766 struct hdd_config, enable_5g_band_pref,
4767 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4768 CFG_ENABLE_5G_BAND_PREF_DEFAULT,
4769 CFG_ENABLE_5G_BAND_PREF_MIN,
4770 CFG_ENABLE_5G_BAND_PREF_MAX),
4771
4772 REG_VARIABLE(CFG_5G_RSSI_BOOST_THRESHOLD_NAME, WLAN_PARAM_Integer,
4773 struct hdd_config, rssi_boost_threshold_5g,
4774 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4775 CFG_5G_RSSI_BOOST_THRESHOLD_DEFAULT,
4776 CFG_5G_RSSI_BOOST_THRESHOLD_MIN,
4777 CFG_5G_RSSI_BOOST_THRESHOLD_MAX),
4778
4779 REG_VARIABLE(CFG_5G_RSSI_BOOST_FACTOR_NAME, WLAN_PARAM_Integer,
4780 struct hdd_config, rssi_boost_factor_5g,
4781 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4782 CFG_5G_RSSI_BOOST_FACTOR_DEFAULT,
4783 CFG_5G_RSSI_BOOST_FACTOR_MIN,
4784 CFG_5G_RSSI_BOOST_FACTOR_MAX),
4785
4786 REG_VARIABLE(CFG_5G_MAX_RSSI_BOOST_NAME, WLAN_PARAM_Integer,
4787 struct hdd_config, max_rssi_boost_5g,
4788 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4789 CFG_5G_MAX_RSSI_BOOST_DEFAULT,
4790 CFG_5G_MAX_RSSI_BOOST_MIN,
4791 CFG_5G_MAX_RSSI_BOOST_MAX),
4792
4793 REG_VARIABLE(CFG_5G_RSSI_PENALIZE_THRESHOLD_NAME, WLAN_PARAM_Integer,
4794 struct hdd_config, rssi_penalize_threshold_5g,
4795 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4796 CFG_5G_RSSI_PENALIZE_THRESHOLD_DEFAULT,
4797 CFG_5G_RSSI_PENALIZE_THRESHOLD_MIN,
4798 CFG_5G_RSSI_PENALIZE_THRESHOLD_MAX),
4799
4800 REG_VARIABLE(CFG_5G_RSSI_PENALIZE_FACTOR_NAME, WLAN_PARAM_Integer,
4801 struct hdd_config, rssi_penalize_factor_5g,
4802 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4803 CFG_5G_RSSI_PENALIZE_FACTOR_DEFAULT,
4804 CFG_5G_RSSI_PENALIZE_FACTOR_MIN,
4805 CFG_5G_RSSI_PENALIZE_FACTOR_MAX),
4806
4807 REG_VARIABLE(CFG_5G_MAX_RSSI_PENALIZE_NAME, WLAN_PARAM_Integer,
4808 struct hdd_config, max_rssi_penalize_5g,
4809 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4810 CFG_5G_MAX_RSSI_PENALIZE_DEFAULT,
4811 CFG_5G_MAX_RSSI_PENALIZE_MIN,
4812 CFG_5G_MAX_RSSI_PENALIZE_MAX),
Ashish Kumar Dhanotiyab8630ab2017-07-21 14:18:14 +05304813
4814 REG_VARIABLE(CFG_LPRx_NAME, WLAN_PARAM_Integer,
4815 struct hdd_config, enable_lprx,
4816 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4817 CFG_LPRx_DEFAULT,
4818 CFG_LPRx_MIN,
4819 CFG_LPRx_MAX),
Ashish Kumar Dhanotiyab28338c2017-07-21 20:12:34 +05304820
4821 REG_VARIABLE(CFG_UPPER_BRSSI_THRESH_NAME, WLAN_PARAM_Integer,
4822 struct hdd_config, upper_brssi_thresh,
4823 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4824 CFG_UPPER_BRSSI_THRESH_DEFAULT,
4825 CFG_UPPER_BRSSI_THRESH_MIN,
4826 CFG_UPPER_BRSSI_THRESH_MAX),
4827
4828 REG_VARIABLE(CFG_LOWER_BRSSI_THRESH_NAME, WLAN_PARAM_Integer,
4829 struct hdd_config, lower_brssi_thresh,
4830 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4831 CFG_LOWER_BRSSI_THRESH_DEFAULT,
4832 CFG_LOWER_BRSSI_THRESH_MIN,
4833 CFG_LOWER_BRSSI_THRESH_MAX),
4834
4835 REG_VARIABLE(CFG_DTIM_1CHRX_ENABLE_NAME, WLAN_PARAM_Integer,
4836 struct hdd_config, enable_dtim_1chrx,
4837 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4838 CFG_DTIM_1CHRX_ENABLE_DEFAULT,
4839 CFG_DTIM_1CHRX_ENABLE_MIN,
4840 CFG_DTIM_1CHRX_ENABLE_MAX),
Ravi Joshi9771d432017-06-26 13:58:12 -07004841
4842 REG_VARIABLE(CFG_RANDOMIZE_NDI_MAC_NAME, WLAN_PARAM_Integer,
4843 struct hdd_config, is_ndi_mac_randomized,
4844 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4845 CFG_RANDOMIZE_NDI_MAC_DEFAULT,
4846 CFG_RANDOMIZE_NDI_MAC_MIN,
4847 CFG_RANDOMIZE_NDI_MAC_MAX),
Amar Singhale4a2dd52017-08-07 13:59:05 -07004848
4849 REG_VARIABLE(CFG_SCAN_11D_INTERVAL_NAME, WLAN_PARAM_Integer,
4850 struct hdd_config, scan_11d_interval,
4851 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4852 CFG_SCAN_11D_INTERVAL_DEFAULT,
4853 CFG_SCAN_11D_INTERVAL_MIN,
4854 CFG_SCAN_11D_INTERVAL_MAX),
Arun Khandavallifae92942016-08-01 13:31:08 +05304855};
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004856
Amar Singhal5cccafe2017-02-15 12:42:58 -08004857
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004858/**
4859 * get_next_line() - find and locate the new line pointer
4860 * @str: pointer to string
4861 *
4862 * This function returns a pointer to the character after the occurence
4863 * of a new line character. It also modifies the original string by replacing
4864 * the '\n' character with the null character.
4865 *
4866 * Return: the pointer to the character at new line,
4867 * or NULL if no new line character was found
4868 */
4869static char *get_next_line(char *str)
4870{
4871 char c;
4872
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07004873 if (str == NULL || *str == '\0')
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004874 return NULL;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004875
4876 c = *str;
4877 while (c != '\n' && c != '\0' && c != 0xd) {
4878 str = str + 1;
4879 c = *str;
4880 }
4881
Jeff Johnson68755312017-02-10 11:46:55 -08004882 if (c == '\0')
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004883 return NULL;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004884
Jeff Johnson68755312017-02-10 11:46:55 -08004885 *str = '\0';
Jeff Johnson68755312017-02-10 11:46:55 -08004886 return str + 1;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004887}
4888
4889/** look for space. Ascii values to look are
4890 * 0x09 == horizontal tab
4891 * 0x0a == Newline ("\n")
4892 * 0x0b == vertical tab
4893 * 0x0c == Newpage or feed form.
4894 * 0x0d == carriage return (CR or "\r")
4895 * Null ('\0') should not considered as space.
4896 */
4897#define i_isspace(ch) (((ch) >= 0x09 && (ch) <= 0x0d) || (ch) == ' ')
4898
4899/**
4900 * i_trim() - trims any leading and trailing white spaces
4901 * @str: pointer to string
4902 *
4903 * Return: the pointer of the string
4904 */
4905static char *i_trim(char *str)
4906{
4907 char *ptr;
4908
4909 if (*str == '\0')
4910 return str;
4911
4912 /* Find the first non white-space */
4913 ptr = str;
4914 while (i_isspace(*ptr))
4915 ptr++;
4916
4917 if (*ptr == '\0')
4918 return str;
4919
4920 /* This is the new start of the string */
4921 str = ptr;
4922
4923 /* Find the last non white-space */
4924 ptr += strlen(ptr) - 1;
4925
4926 while (ptr != str && i_isspace(*ptr))
4927 ptr--;
4928
4929 /* Null terminate the following character */
4930 ptr[1] = '\0';
4931
4932 return str;
4933}
4934
4935/* Maximum length of the confgiuration name and value */
4936#define CFG_VALUE_MAX_LEN 256
4937#define CFG_ENTRY_MAX_LEN (32+CFG_VALUE_MAX_LEN)
4938
4939/**
4940 * hdd_cfg_get_config() - get the configuration content
4941 * @reg_table: pointer to configuration table
4942 * @cRegTableEntries: number of the configuration entries
4943 * @ini_struct: pointer to the hdd config knob
Jeff Johnson723234b2017-09-03 08:49:15 -07004944 * @hdd_ctx: pointer to hdd context
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004945 * @pBuf: buffer to store the configuration
4946 * @buflen: size of the buffer
4947 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05304948 * Return: QDF_STATUS_SUCCESS if the configuration and buffer size can carry
4949 * the content, otherwise QDF_STATUS_E_RESOURCES
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004950 */
Srinivas Girigowda2fb677c2017-03-25 15:35:34 -07004951static QDF_STATUS hdd_cfg_get_config(struct reg_table_entry *reg_table,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004952 unsigned long cRegTableEntries,
4953 uint8_t *ini_struct,
Jeff Johnson723234b2017-09-03 08:49:15 -07004954 struct hdd_context *hdd_ctx, char *pBuf,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004955 int buflen)
4956{
4957 unsigned int idx;
Srinivas Girigowda2fb677c2017-03-25 15:35:34 -07004958 struct reg_table_entry *pRegEntry = reg_table;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004959 uint32_t value;
4960 char valueStr[CFG_VALUE_MAX_LEN];
4961 char configStr[CFG_ENTRY_MAX_LEN];
4962 char *fmt;
4963 void *pField;
Anurag Chouhan6d760662016-02-20 16:05:43 +05304964 struct qdf_mac_addr *pMacAddr;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004965 char *pCur = pBuf;
4966 int curlen;
4967
4968 /* start with an empty string */
4969 *pCur = '\0';
4970
4971 for (idx = 0; idx < cRegTableEntries; idx++, pRegEntry++) {
4972 pField = ini_struct + pRegEntry->VarOffset;
4973
4974 if ((WLAN_PARAM_Integer == pRegEntry->RegType) ||
4975 (WLAN_PARAM_SignedInteger == pRegEntry->RegType) ||
4976 (WLAN_PARAM_HexInteger == pRegEntry->RegType)) {
4977 value = 0;
Vidyullatha Kanchanapally53241c42017-04-13 19:16:24 +05304978
4979 if ((pRegEntry->VarSize > sizeof(value)) ||
4980 (pRegEntry->VarSize == 0)) {
4981 pr_warn("Invalid length of %s: %d",
4982 pRegEntry->RegName, pRegEntry->VarSize);
4983 continue;
4984 }
4985
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004986 memcpy(&value, pField, pRegEntry->VarSize);
4987 if (WLAN_PARAM_HexInteger == pRegEntry->RegType) {
4988 fmt = "%x";
4989 } else if (WLAN_PARAM_SignedInteger ==
4990 pRegEntry->RegType) {
4991 fmt = "%d";
Vidyullatha Kanchanapally53241c42017-04-13 19:16:24 +05304992 value = sign_extend32(
4993 value,
4994 pRegEntry->VarSize * 8 - 1);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004995 } else {
4996 fmt = "%u";
4997 }
4998 snprintf(valueStr, CFG_VALUE_MAX_LEN, fmt, value);
4999 } else if (WLAN_PARAM_String == pRegEntry->RegType) {
5000 snprintf(valueStr, CFG_VALUE_MAX_LEN, "%s",
5001 (char *)pField);
5002 } else if (WLAN_PARAM_MacAddr == pRegEntry->RegType) {
Anurag Chouhan6d760662016-02-20 16:05:43 +05305003 pMacAddr = (struct qdf_mac_addr *) pField;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005004 snprintf(valueStr, CFG_VALUE_MAX_LEN,
5005 "%02x:%02x:%02x:%02x:%02x:%02x",
5006 pMacAddr->bytes[0],
5007 pMacAddr->bytes[1],
5008 pMacAddr->bytes[2],
5009 pMacAddr->bytes[3],
5010 pMacAddr->bytes[4], pMacAddr->bytes[5]);
5011 } else {
5012 snprintf(valueStr, CFG_VALUE_MAX_LEN, "(unhandled)");
5013 }
5014 curlen = scnprintf(configStr, CFG_ENTRY_MAX_LEN,
5015 "%s=[%s]%s\n",
5016 pRegEntry->RegName,
5017 valueStr,
5018 test_bit(idx,
Jeff Johnson723234b2017-09-03 08:49:15 -07005019 (void *)&hdd_ctx->config->
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005020 bExplicitCfg) ? "*" : "");
5021
5022 /* Ideally we want to return the config to the application,
5023 * however the config is too big so we just printk() for now
5024 */
5025#ifdef RETURN_IN_BUFFER
Hanumanth Reddy Pothulaadf163e2016-09-07 15:11:58 +05305026 if (curlen < buflen) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005027 /* copy string + '\0' */
5028 memcpy(pCur, configStr, curlen + 1);
5029
5030 /* account for addition; */
5031 pCur += curlen;
5032 buflen -= curlen;
5033 } else {
5034 /* buffer space exhausted, return what we have */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305035 return QDF_STATUS_E_RESOURCES;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005036 }
5037#else
5038 printk(KERN_INFO "%s", configStr);
5039#endif /* RETURN_IN_BUFFER */
5040
5041 }
5042
5043#ifndef RETURN_IN_BUFFER
5044 /* notify application that output is in system log */
5045 snprintf(pCur, buflen, "WLAN configuration written to system log");
5046#endif /* RETURN_IN_BUFFER */
5047
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305048 return QDF_STATUS_SUCCESS;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005049}
5050
5051/** struct tCfgIniEntry - ini configuration entry
5052 *
5053 * @name: name of the entry
5054 * @value: value of the entry
5055 */
5056typedef struct {
5057 char *name;
5058 char *value;
5059} tCfgIniEntry;
5060
5061/**
5062 * find_cfg_item() - find the configuration item
5063 * @iniTable: pointer to configuration table
5064 * @entries: number fo the configuration entries
5065 * @name: the interested configuration to find
5066 * @value: the value to read back
5067 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305068 * Return: QDF_STATUS_SUCCESS if the interested configuration is found,
5069 * otherwise QDF_STATUS_E_FAILURE
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005070 */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305071static QDF_STATUS find_cfg_item(tCfgIniEntry *iniTable, unsigned long entries,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005072 char *name, char **value)
5073{
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305074 QDF_STATUS status = QDF_STATUS_E_FAILURE;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005075 unsigned long i;
5076
5077 for (i = 0; i < entries; i++) {
5078 if (strcmp(iniTable[i].name, name) == 0) {
5079 *value = iniTable[i].value;
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005080 hdd_debug("Found %s entry for Name=[%s] Value=[%s] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005081 WLAN_INI_FILE, name, *value);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305082 return QDF_STATUS_SUCCESS;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005083 }
5084 }
5085
5086 return status;
5087}
5088
5089/**
5090 * parse_hex_digit() - conversion to hex value
5091 * @c: the character to convert
5092 *
5093 * Return: the hex value, otherwise 0
5094 */
5095static int parse_hex_digit(char c)
5096{
5097 if (c >= '0' && c <= '9')
5098 return c - '0';
5099 if (c >= 'a' && c <= 'f')
5100 return c - 'a' + 10;
5101 if (c >= 'A' && c <= 'F')
5102 return c - 'A' + 10;
5103
5104 return 0;
5105}
5106
5107/**
5108 * update_mac_from_string() - convert string to 6 bytes mac address
Jeff Johnson723234b2017-09-03 08:49:15 -07005109 * @hdd_ctx: the pointer to hdd context
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005110 * @macTable: the macTable to carry the conversion
5111 * @num: number of the interface
5112 *
5113 * 00AA00BB00CC -> 0x00 0xAA 0x00 0xBB 0x00 0xCC
5114 *
5115 * Return: None
5116 */
Jeff Johnson723234b2017-09-03 08:49:15 -07005117static void update_mac_from_string(struct hdd_context *hdd_ctx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005118 tCfgIniEntry *macTable, int num)
5119{
5120 int i = 0, j = 0, res = 0;
5121 char *candidate = NULL;
Anurag Chouhan6d760662016-02-20 16:05:43 +05305122 struct qdf_mac_addr macaddr[QDF_MAX_CONCURRENCY_PERSONA];
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005123
5124 memset(macaddr, 0, sizeof(macaddr));
5125
5126 for (i = 0; i < num; i++) {
5127 candidate = macTable[i].value;
Anurag Chouhan6d760662016-02-20 16:05:43 +05305128 for (j = 0; j < QDF_MAC_ADDR_SIZE; j++) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005129 res =
5130 hex2bin(&macaddr[i].bytes[j], &candidate[(j << 1)],
5131 1);
5132 if (res < 0)
5133 break;
5134 }
Anurag Chouhanc5548422016-02-24 18:33:27 +05305135 if (res == 0 && !qdf_is_macaddr_zero(&macaddr[i])) {
Jeff Johnson723234b2017-09-03 08:49:15 -07005136 qdf_mem_copy((uint8_t *) &hdd_ctx->config->
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005137 intfMacAddr[i].bytes[0],
5138 (uint8_t *) &macaddr[i].bytes[0],
Anurag Chouhan6d760662016-02-20 16:05:43 +05305139 QDF_MAC_ADDR_SIZE);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005140 }
5141 }
5142}
5143
5144/**
5145 * hdd_apply_cfg_ini() - apply the ini configuration file
Jeff Johnson723234b2017-09-03 08:49:15 -07005146 * @hdd_ctx: the pointer to hdd context
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005147 * @iniTable: pointer to configuration table
5148 * @entries: number fo the configuration entries
5149 * It overwrites the MAC address if config file exist.
5150 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305151 * Return: QDF_STATUS_SUCCESS if the ini configuration file is correctly parsed,
5152 * otherwise QDF_STATUS_E_INVAL
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005153 */
Jeff Johnson723234b2017-09-03 08:49:15 -07005154static QDF_STATUS hdd_apply_cfg_ini(struct hdd_context *hdd_ctx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005155 tCfgIniEntry *iniTable,
5156 unsigned long entries)
5157{
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305158 QDF_STATUS match_status = QDF_STATUS_E_FAILURE;
5159 QDF_STATUS ret_status = QDF_STATUS_SUCCESS;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005160 unsigned int idx;
5161 void *pField;
5162 char *value_str = NULL;
5163 unsigned long len_value_str;
5164 char *candidate;
5165 uint32_t value;
5166 int32_t svalue;
Jeff Johnson723234b2017-09-03 08:49:15 -07005167 void *pStructBase = hdd_ctx->config;
Srinivas Girigowda2fb677c2017-03-25 15:35:34 -07005168 struct reg_table_entry *pRegEntry = g_registry_table;
Anurag Chouhan6d760662016-02-20 16:05:43 +05305169 unsigned long cRegTableEntries = QDF_ARRAY_SIZE(g_registry_table);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005170 uint32_t cbOutString;
5171 int i;
5172 int rv;
5173
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005174 if (MAX_CFG_INI_ITEMS < cRegTableEntries) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005175 hdd_err("MAX_CFG_INI_ITEMS too small, must be at least %ld",
Srinivas Girigowdaba3091c2015-11-16 17:18:40 -08005176 cRegTableEntries);
5177 WARN_ON(1);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005178 }
5179
5180 for (idx = 0; idx < cRegTableEntries; idx++, pRegEntry++) {
5181 /* Calculate the address of the destination field in the structure. */
5182 pField = ((uint8_t *) pStructBase) + pRegEntry->VarOffset;
5183
5184 match_status =
5185 find_cfg_item(iniTable, entries, pRegEntry->RegName,
5186 &value_str);
5187
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305188 if ((match_status != QDF_STATUS_SUCCESS)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005189 && (pRegEntry->Flags & VAR_FLAGS_REQUIRED)) {
5190 /* If we could not read the cfg item and it is required, this is an error. */
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005191 hdd_err("Failed to read required config parameter %s", pRegEntry->RegName);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305192 ret_status = QDF_STATUS_E_FAILURE;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005193 break;
5194 }
5195
5196 if ((WLAN_PARAM_Integer == pRegEntry->RegType) ||
5197 (WLAN_PARAM_HexInteger == pRegEntry->RegType)) {
5198 /* If successfully read from the registry, use the value read.
5199 * If not, use the default value.
5200 */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305201 if (match_status == QDF_STATUS_SUCCESS
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005202 && (WLAN_PARAM_Integer == pRegEntry->RegType)) {
5203 rv = kstrtou32(value_str, 10, &value);
5204 if (rv < 0) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005205 hdd_warn("Reg Parameter %s invalid. Enforcing default", pRegEntry->RegName);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005206 value = pRegEntry->VarDefault;
5207 }
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305208 } else if (match_status == QDF_STATUS_SUCCESS
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005209 && (WLAN_PARAM_HexInteger ==
5210 pRegEntry->RegType)) {
5211 rv = kstrtou32(value_str, 16, &value);
5212 if (rv < 0) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005213 hdd_warn("Reg paramter %s invalid. Enforcing default", pRegEntry->RegName);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005214 value = pRegEntry->VarDefault;
5215 }
5216 } else {
5217 value = pRegEntry->VarDefault;
5218 }
5219
Srinivas Girigowdad1b92582017-03-02 11:47:47 -08005220 /* Only if the parameter is set in the ini file, do the range check here */
5221 if (match_status == QDF_STATUS_SUCCESS &&
5222 pRegEntry->Flags & VAR_FLAGS_RANGE_CHECK) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005223 if (value > pRegEntry->VarMax) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005224 hdd_warn("Reg Parameter %s > allowed Maximum [%u > %lu]. Enforcing Maximum", pRegEntry->RegName,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005225 value, pRegEntry->VarMax);
5226 value = pRegEntry->VarMax;
5227 }
5228
5229 if (value < pRegEntry->VarMin) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005230 hdd_warn("Reg Parameter %s < allowed Minimum [%u < %lu]. Enforcing Minimum", pRegEntry->RegName,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005231 value, pRegEntry->VarMin);
5232 value = pRegEntry->VarMin;
5233 }
5234 }
Srinivas Girigowdad1b92582017-03-02 11:47:47 -08005235 /* Only if the parameter is set in the ini file, do the range check here */
5236 else if (match_status == QDF_STATUS_SUCCESS &&
5237 pRegEntry->Flags &
5238 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005239 if (value > pRegEntry->VarMax) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005240 hdd_warn("Reg Parameter %s > allowed Maximum [%u > %lu]. Enforcing Default: %lu", pRegEntry->RegName,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005241 value, pRegEntry->VarMax,
5242 pRegEntry->VarDefault);
5243 value = pRegEntry->VarDefault;
5244 }
5245
5246 if (value < pRegEntry->VarMin) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005247 hdd_warn("Reg Parameter %s < allowed Minimum [%u < %lu]. Enforcing Default: %lu", pRegEntry->RegName,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005248 value, pRegEntry->VarMin,
5249 pRegEntry->VarDefault);
5250 value = pRegEntry->VarDefault;
5251 }
5252 }
5253 /* Move the variable into the output field. */
5254 memcpy(pField, &value, pRegEntry->VarSize);
5255 } else if (WLAN_PARAM_SignedInteger == pRegEntry->RegType) {
5256 /* If successfully read from the registry, use the value read.
5257 * If not, use the default value.
5258 */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305259 if (QDF_STATUS_SUCCESS == match_status) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005260 rv = kstrtos32(value_str, 10, &svalue);
5261 if (rv < 0) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005262 hdd_warn("Reg Parameter %s invalid. Enforcing Default", pRegEntry->RegName);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005263 svalue =
5264 (int32_t) pRegEntry->VarDefault;
5265 }
5266 } else {
5267 svalue = (int32_t) pRegEntry->VarDefault;
5268 }
5269
Srinivas Girigowdad1b92582017-03-02 11:47:47 -08005270 /* Only if the parameter is set in the ini file, do the range check here */
5271 if (match_status == QDF_STATUS_SUCCESS &&
5272 pRegEntry->Flags & VAR_FLAGS_RANGE_CHECK) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005273 if (svalue > (int32_t) pRegEntry->VarMax) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005274 hdd_warn("Reg Parameter %s > allowed Maximum "
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005275 "[%d > %d]. Enforcing Maximum", pRegEntry->RegName,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005276 svalue, (int)pRegEntry->VarMax);
5277 svalue = (int32_t) pRegEntry->VarMax;
5278 }
5279
5280 if (svalue < (int32_t) pRegEntry->VarMin) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005281 hdd_warn("Reg Parameter %s < allowed Minimum "
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005282 "[%d < %d]. Enforcing Minimum", pRegEntry->RegName,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005283 svalue, (int)pRegEntry->VarMin);
5284 svalue = (int32_t) pRegEntry->VarMin;
5285 }
5286 }
Srinivas Girigowdad1b92582017-03-02 11:47:47 -08005287 /* Only if the parameter is set in the ini file, do the range check here */
5288 else if (match_status == QDF_STATUS_SUCCESS &&
5289 pRegEntry->Flags &
5290 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005291 if (svalue > (int32_t) pRegEntry->VarMax) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005292 hdd_warn("Reg Parameter %s > allowed Maximum "
5293 "[%d > %d]. Enforcing Default: %d", pRegEntry->RegName,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005294 svalue, (int)pRegEntry->VarMax,
5295 (int)pRegEntry->VarDefault);
5296 svalue =
5297 (int32_t) pRegEntry->VarDefault;
5298 }
5299
5300 if (svalue < (int32_t) pRegEntry->VarMin) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005301 hdd_warn("Reg Parameter %s < allowed Minimum "
5302 "[%d < %d]. Enforcing Default: %d", pRegEntry->RegName,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005303 svalue, (int)pRegEntry->VarMin,
5304 (int)pRegEntry->VarDefault);
5305 svalue = pRegEntry->VarDefault;
5306 }
5307 }
5308 /* Move the variable into the output field. */
5309 memcpy(pField, &svalue, pRegEntry->VarSize);
5310 }
5311 /* Handle string parameters */
5312 else if (WLAN_PARAM_String == pRegEntry->RegType) {
5313#ifdef WLAN_CFG_DEBUG
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005314 hdd_debug("RegName = %s, VarOffset %u VarSize %u VarDefault %s",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005315 pRegEntry->RegName, pRegEntry->VarOffset,
5316 pRegEntry->VarSize,
5317 (char *)pRegEntry->VarDefault);
5318#endif
5319
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305320 if (match_status == QDF_STATUS_SUCCESS) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005321 len_value_str = strlen(value_str);
5322
5323 if (len_value_str > (pRegEntry->VarSize - 1)) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005324 hdd_err("Invalid Value=[%s] specified for Name=[%s] in %s", value_str,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005325 pRegEntry->RegName,
5326 WLAN_INI_FILE);
5327 cbOutString =
Srinivas Girigowda2fb677c2017-03-25 15:35:34 -07005328 QDF_MIN(strlen
5329 ((char *)pRegEntry->
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005330 VarDefault),
5331 pRegEntry->VarSize - 1);
5332 memcpy(pField,
5333 (void *)(pRegEntry->VarDefault),
5334 cbOutString);
5335 ((uint8_t *) pField)[cbOutString] =
5336 '\0';
5337 } else {
5338 memcpy(pField, (void *)(value_str),
5339 len_value_str);
5340 ((uint8_t *) pField)[len_value_str] =
5341 '\0';
5342 }
5343 } else {
5344 /* Failed to read the string parameter from the registry. Use the default. */
5345 cbOutString =
Srinivas Girigowda2fb677c2017-03-25 15:35:34 -07005346 QDF_MIN(strlen((char *)pRegEntry->VarDefault),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005347 pRegEntry->VarSize - 1);
5348 memcpy(pField, (void *)(pRegEntry->VarDefault),
5349 cbOutString);
5350 ((uint8_t *) pField)[cbOutString] = '\0';
5351 }
5352 } else if (WLAN_PARAM_MacAddr == pRegEntry->RegType) {
Anurag Chouhan6d760662016-02-20 16:05:43 +05305353 if (pRegEntry->VarSize != QDF_MAC_ADDR_SIZE) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005354 hdd_warn("Invalid VarSize %u for Name=[%s]", pRegEntry->VarSize,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005355 pRegEntry->RegName);
5356 continue;
5357 }
5358 candidate = (char *)pRegEntry->VarDefault;
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305359 if (match_status == QDF_STATUS_SUCCESS) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005360 len_value_str = strlen(value_str);
Anurag Chouhan6d760662016-02-20 16:05:43 +05305361 if (len_value_str != (QDF_MAC_ADDR_SIZE * 2)) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005362 hdd_err("Invalid MAC addr [%s] specified for Name=[%s] in %s", value_str,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005363 pRegEntry->RegName,
5364 WLAN_INI_FILE);
5365 } else
5366 candidate = value_str;
5367 }
5368 /* parse the string and store it in the byte array */
Anurag Chouhan6d760662016-02-20 16:05:43 +05305369 for (i = 0; i < QDF_MAC_ADDR_SIZE; i++) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005370 ((char *)pField)[i] =
5371 (char)(parse_hex_digit(candidate[i * 2]) *
5372 16 +
5373 parse_hex_digit(candidate[i * 2 + 1]));
5374 }
5375 } else {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005376 hdd_warn("Unknown param type for name[%s] in registry table", pRegEntry->RegName);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005377 }
5378
5379 /* did we successfully parse a cfg item for this parameter? */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305380 if ((match_status == QDF_STATUS_SUCCESS) &&
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005381 (idx < MAX_CFG_INI_ITEMS)) {
Jeff Johnson723234b2017-09-03 08:49:15 -07005382 set_bit(idx, (void *)&hdd_ctx->config->bExplicitCfg);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005383 }
5384 }
5385
5386 return ret_status;
5387}
5388
5389/**
5390 * hdd_execute_config_command() - executes an arbitrary configuration command
5391 * @reg_table: the pointer to configuration table
5392 * @tableSize: the size of the configuration table
5393 * @ini_struct: pointer to the hdd config knob
Jeff Johnson723234b2017-09-03 08:49:15 -07005394 * @hdd_ctx: the pointer to hdd context
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005395 * @command: the command to run
5396 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305397 * Return: QDF_STATUS_SUCCESS if the command is found and able to execute,
5398 * otherwise the appropriate QDF_STATUS will be returned
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005399 */
Srinivas Girigowda2fb677c2017-03-25 15:35:34 -07005400static QDF_STATUS hdd_execute_config_command(struct reg_table_entry *reg_table,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005401 unsigned long tableSize,
5402 uint8_t *ini_struct,
Jeff Johnson723234b2017-09-03 08:49:15 -07005403 struct hdd_context *hdd_ctx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005404 char *command)
5405{
Srinivas Girigowda2fb677c2017-03-25 15:35:34 -07005406 struct reg_table_entry *pRegEntry;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005407 char *clone;
5408 char *pCmd;
5409 void *pField;
5410 char *name;
5411 char *value_str;
5412 uint32_t value;
5413 int32_t svalue;
5414 size_t len_value_str;
5415 unsigned int idx;
5416 unsigned int i;
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305417 QDF_STATUS vstatus;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005418 int rv;
5419
5420 /* assume failure until proven otherwise */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305421 vstatus = QDF_STATUS_E_FAILURE;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005422
5423 /* clone the command so that we can manipulate it */
5424 clone = kstrdup(command, GFP_ATOMIC);
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07005425 if (NULL == clone)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005426 return vstatus;
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07005427
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005428 /* 'clone' will point to the beginning of the string so it can be freed
5429 * 'pCmd' will be used to walk/parse the command
5430 */
5431 pCmd = clone;
5432
5433 /* get rid of leading/trailing whitespace */
5434 pCmd = i_trim(pCmd);
5435 if ('\0' == *pCmd) {
5436 /* only whitespace */
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005437 hdd_err("invalid command, only whitespace:[%s]", command);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005438 goto done;
5439 }
5440 /* parse the <name> = <value> */
5441 name = pCmd;
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07005442 while (('=' != *pCmd) && ('\0' != *pCmd))
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005443 pCmd++;
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07005444
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005445 if ('\0' == *pCmd) {
5446 /* did not find '=' */
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005447 hdd_err("invalid command, no '=':[%s]", command);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005448 goto done;
5449 }
5450 /* replace '=' with NUL to terminate the <name> */
5451 *pCmd++ = '\0';
5452 name = i_trim(name);
5453 if ('\0' == *name) {
5454 /* did not find a name */
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005455 hdd_err("invalid command, no <name>:[%s]", command);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005456 goto done;
5457 }
5458
5459 value_str = i_trim(pCmd);
5460 if ('\0' == *value_str) {
5461 /* did not find a value */
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005462 hdd_err("invalid command, no <value>:[%s]", command);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005463 goto done;
5464 }
5465 /* lookup the configuration item */
5466 for (idx = 0; idx < tableSize; idx++) {
5467 if (0 == strcmp(name, reg_table[idx].RegName)) {
5468 /* found a match */
5469 break;
5470 }
5471 }
5472 if (tableSize == idx) {
5473 /* did not match the name */
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005474 hdd_err("invalid command, unknown configuration item:[%s]", command);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005475 goto done;
5476 }
5477
5478 pRegEntry = &reg_table[idx];
5479 if (!(pRegEntry->Flags & VAR_FLAGS_DYNAMIC_CFG)) {
5480 /* does not support dynamic configuration */
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005481 hdd_err("Global_Registry_Table. %s does not support "
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005482 "dynamic configuration", name);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305483 vstatus = QDF_STATUS_E_PERM;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005484 goto done;
5485 }
5486
5487 pField = ini_struct + pRegEntry->VarOffset;
5488
5489 switch (pRegEntry->RegType) {
5490 case WLAN_PARAM_Integer:
5491 rv = kstrtou32(value_str, 10, &value);
5492 if (rv < 0)
5493 goto done;
5494 if (value < pRegEntry->VarMin) {
5495 /* out of range */
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005496 hdd_err("Invalid command, value %u < min value %lu", value, pRegEntry->VarMin);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005497 goto done;
5498 }
5499 if (value > pRegEntry->VarMax) {
5500 /* out of range */
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005501 hdd_err("Invalid command, value %u > max value %lu", value, pRegEntry->VarMax);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005502 goto done;
5503 }
5504 memcpy(pField, &value, pRegEntry->VarSize);
5505 break;
5506
5507 case WLAN_PARAM_HexInteger:
5508 rv = kstrtou32(value_str, 16, &value);
5509 if (rv < 0)
5510 goto done;
5511 if (value < pRegEntry->VarMin) {
5512 /* out of range */
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005513 hdd_err("Invalid command, value %x < min value %lx", value, pRegEntry->VarMin);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005514 goto done;
5515 }
5516 if (value > pRegEntry->VarMax) {
5517 /* out of range */
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005518 hdd_err("Invalid command, value %x > max value %lx", value, pRegEntry->VarMax);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005519 goto done;
5520 }
5521 memcpy(pField, &value, pRegEntry->VarSize);
5522 break;
5523
5524 case WLAN_PARAM_SignedInteger:
5525 rv = kstrtos32(value_str, 10, &svalue);
5526 if (rv < 0)
5527 goto done;
5528 if (svalue < (int32_t) pRegEntry->VarMin) {
5529 /* out of range */
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005530 hdd_err("Invalid command, value %d < min value %d", svalue, (int)pRegEntry->VarMin);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005531 goto done;
5532 }
5533 if (svalue > (int32_t) pRegEntry->VarMax) {
5534 /* out of range */
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005535 hdd_err("Invalid command, value %d > max value %d", svalue, (int)pRegEntry->VarMax);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005536 goto done;
5537 }
5538 memcpy(pField, &svalue, pRegEntry->VarSize);
5539 break;
5540
5541 case WLAN_PARAM_String:
5542 len_value_str = strlen(value_str);
5543 if (len_value_str > (pRegEntry->VarSize - 1)) {
5544 /* too big */
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005545 hdd_err("Invalid command, string [%s] length "
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005546 "%zu exceeds maximum length %u", value_str,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005547 len_value_str, (pRegEntry->VarSize - 1));
5548 goto done;
5549 }
5550 /* copy string plus NUL */
5551 memcpy(pField, value_str, (len_value_str + 1));
5552 break;
5553
5554 case WLAN_PARAM_MacAddr:
5555 len_value_str = strlen(value_str);
Anurag Chouhan6d760662016-02-20 16:05:43 +05305556 if (len_value_str != (QDF_MAC_ADDR_SIZE * 2)) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005557 /* out of range */
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005558 hdd_err("Invalid command, MAC address [%s] length "
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005559 "%zu is not expected length %u", value_str,
Anurag Chouhan6d760662016-02-20 16:05:43 +05305560 len_value_str, (QDF_MAC_ADDR_SIZE * 2));
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005561 goto done;
5562 }
5563 /* parse the string and store it in the byte array */
Anurag Chouhan6d760662016-02-20 16:05:43 +05305564 for (i = 0; i < QDF_MAC_ADDR_SIZE; i++) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005565 ((char *)pField)[i] = (char)
5566 ((parse_hex_digit(value_str[(i * 2)]) * 16) +
5567 parse_hex_digit(value_str[(i * 2) + 1]));
5568 }
5569 break;
5570
5571 default:
5572 goto done;
5573 }
5574
5575 /* if we get here, we had a successful modification */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305576 vstatus = QDF_STATUS_SUCCESS;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005577
5578 /* config table has been modified, is there a notifier? */
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07005579 if (NULL != pRegEntry->pfnDynamicnotify)
Jeff Johnson723234b2017-09-03 08:49:15 -07005580 (pRegEntry->pfnDynamicnotify)(hdd_ctx, pRegEntry->notifyId);
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07005581
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005582 /* note that this item was explicitly configured */
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07005583 if (idx < MAX_CFG_INI_ITEMS)
Jeff Johnson723234b2017-09-03 08:49:15 -07005584 set_bit(idx, (void *)&hdd_ctx->config->bExplicitCfg);
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07005585
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005586done:
5587 kfree(clone);
5588 return vstatus;
5589}
5590
5591/**
5592 * hdd_set_power_save_offload_config() - set power save offload configuration
Jeff Johnson723234b2017-09-03 08:49:15 -07005593 * @hdd_ctx: the pointer to hdd context
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005594 *
5595 * Return: none
5596 */
Jeff Johnson723234b2017-09-03 08:49:15 -07005597static void hdd_set_power_save_offload_config(struct hdd_context *hdd_ctx)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005598{
Jeff Johnson723234b2017-09-03 08:49:15 -07005599 struct hdd_config *pConfig = hdd_ctx->config;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005600 uint32_t listenInterval = 0;
5601
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07005602 if (strcmp(pConfig->PowerUsageControl, "Min") == 0)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005603 listenInterval = pConfig->nBmpsMinListenInterval;
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07005604 else if (strcmp(pConfig->PowerUsageControl, "Max") == 0)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005605 listenInterval = pConfig->nBmpsMaxListenInterval;
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07005606 else if (strcmp(pConfig->PowerUsageControl, "Mod") == 0)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005607 listenInterval = pConfig->nBmpsModListenInterval;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005608
5609 /*
5610 * Based on Mode Set the LI
5611 * Otherwise default LI value of 1 will
5612 * be taken
5613 */
5614 if (listenInterval) {
5615 /*
5616 * setcfg for listenInterval.
5617 * Make sure CFG is updated because PE reads this
5618 * from CFG at the time of assoc or reassoc
5619 */
Jeff Johnson723234b2017-09-03 08:49:15 -07005620 sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_LISTEN_INTERVAL,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005621 listenInterval);
5622 }
5623
5624}
5625
Houston Hoffmanc7c69f02016-03-24 22:45:52 -07005626#ifdef FEATURE_RUNTIME_PM
Jeff Johnsonb6909be2017-08-28 12:07:19 -07005627static void hdd_cfg_print_runtime_pm(struct hdd_context *hdd_ctx)
Houston Hoffmanc7c69f02016-03-24 22:45:52 -07005628{
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005629 hdd_debug("Name = [gRuntimePM] Value = [%u] ",
Houston Hoffmanc7c69f02016-03-24 22:45:52 -07005630 hdd_ctx->config->runtime_pm);
5631
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005632 hdd_debug("Name = [gRuntimePMDelay] Value = [%u] ",
Houston Hoffmanc7c69f02016-03-24 22:45:52 -07005633 hdd_ctx->config->runtime_pm_delay);
5634}
5635#else
Jeff Johnsonb6909be2017-08-28 12:07:19 -07005636static void hdd_cfg_print_runtime_pm(struct hdd_context *hdd_ctx)
Houston Hoffmanc7c69f02016-03-24 22:45:52 -07005637{
5638}
5639#endif
5640
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005641/**
Kapil Gupta5cda2252016-12-29 18:44:26 +05305642 * hdd_per_roam_print_ini_config()- Print PER roam specific INI configuration
5643 * @hdd_ctx: handle to hdd context
5644 *
5645 * Return: None
5646 */
Jeff Johnsonb6909be2017-08-28 12:07:19 -07005647static void hdd_per_roam_print_ini_config(struct hdd_context *hdd_ctx)
Kapil Gupta5cda2252016-12-29 18:44:26 +05305648{
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005649 hdd_debug("Name = [%s] Value = [%u]",
Kapil Gupta5cda2252016-12-29 18:44:26 +05305650 CFG_PER_ROAM_ENABLE_NAME,
5651 hdd_ctx->config->is_per_roam_enabled);
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005652 hdd_debug("Name = [%s] Value = [%u]",
Kapil Gupta5cda2252016-12-29 18:44:26 +05305653 CFG_PER_ROAM_CONFIG_HIGH_RATE_TH_NAME,
5654 hdd_ctx->config->per_roam_high_rate_threshold);
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005655 hdd_debug("Name = [%s] Value = [%u]",
Kapil Gupta5cda2252016-12-29 18:44:26 +05305656 CFG_PER_ROAM_CONFIG_LOW_RATE_TH_NAME,
5657 hdd_ctx->config->per_roam_low_rate_threshold);
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005658 hdd_debug("Name = [%s] Value = [%u]",
Kapil Gupta5cda2252016-12-29 18:44:26 +05305659 CFG_PER_ROAM_CONFIG_RATE_TH_PERCENT_NAME,
5660 hdd_ctx->config->per_roam_th_percent);
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005661 hdd_debug("Name = [%s] Value = [%u]",
Kapil Gupta5cda2252016-12-29 18:44:26 +05305662 CFG_PER_ROAM_REST_TIME_NAME,
5663 hdd_ctx->config->per_roam_rest_time);
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005664 hdd_debug("Name = [%s] Value = [%u]",
Kapil Gupta957827b2017-02-13 15:47:04 +05305665 CFG_PER_ROAM_MONITOR_TIME,
5666 hdd_ctx->config->per_roam_mon_time);
Selvaraj, Sridhar0641fab2017-05-17 16:02:00 +05305667 hdd_debug("Name = [%s] Value = [%u]",
5668 CFG_PER_ROAM_MIN_CANDIDATE_RSSI,
5669 hdd_ctx->config->min_candidate_rssi);
Kapil Gupta5cda2252016-12-29 18:44:26 +05305670}
5671
Varun Reddy Yeturu061d4d62017-07-20 09:39:32 -07005672static void hdd_mawc_cfg_log(struct hdd_context *pHddCtx)
5673{
5674 hdd_debug("Name = [MAWCEnabled] Value = [%u] ",
5675 pHddCtx->config->MAWCEnabled);
5676 hdd_debug("Name = [%s] Value = [%u] ",
5677 CFG_MAWC_ROAM_ENABLED_NAME,
5678 pHddCtx->config->mawc_roam_enabled);
5679 hdd_debug("Name = [%s] Value = [%u] ",
5680 CFG_MAWC_ROAM_TRAFFIC_THRESHOLD_NAME,
5681 pHddCtx->config->mawc_roam_traffic_threshold);
5682 hdd_debug("Name = [%s] Value = [%d] ",
5683 CFG_MAWC_ROAM_AP_RSSI_THRESHOLD_NAME,
5684 pHddCtx->config->mawc_roam_ap_rssi_threshold);
5685 hdd_debug("Name = [%s] Value = [%u] ",
5686 CFG_MAWC_ROAM_RSSI_HIGH_ADJUST_NAME,
5687 pHddCtx->config->mawc_roam_rssi_high_adjust);
5688 hdd_debug("Name = [%s] Value = [%u] ",
5689 CFG_MAWC_ROAM_RSSI_LOW_ADJUST_NAME,
5690 pHddCtx->config->mawc_roam_rssi_low_adjust);
5691}
5692
Kapil Gupta5cda2252016-12-29 18:44:26 +05305693/**
Rajeev Kumar Sirasanagandlaaec0b082017-06-21 11:59:41 +05305694 * hdd_cfg_print_ie_whitelist_attrs() - print the ie whitelist attrs
5695 * @hdd_ctx: pointer to hdd context
5696 *
5697 * Return: None
5698 */
Jeff Johnsonb6909be2017-08-28 12:07:19 -07005699static void hdd_cfg_print_ie_whitelist_attrs(struct hdd_context *hdd_ctx)
Rajeev Kumar Sirasanagandlaaec0b082017-06-21 11:59:41 +05305700{
5701 hdd_debug("Name = [%s] Value = [%x] ",
5702 CFG_PRB_REQ_IE_WHITELIST_NAME,
5703 hdd_ctx->config->probe_req_ie_whitelist);
5704 hdd_debug("Name = [%s] Value = [%x] ",
5705 CFG_PRB_REQ_IE_BIT_MAP0_NAME,
5706 hdd_ctx->config->probe_req_ie_bitmap_0);
5707 hdd_debug("Name = [%s] Value = [%x] ",
5708 CFG_PRB_REQ_IE_BIT_MAP1_NAME,
5709 hdd_ctx->config->probe_req_ie_bitmap_1);
5710 hdd_debug("Name = [%s] Value = [%x] ",
5711 CFG_PRB_REQ_IE_BIT_MAP2_NAME,
5712 hdd_ctx->config->probe_req_ie_bitmap_2);
5713 hdd_debug("Name = [%s] Value = [%x] ",
5714 CFG_PRB_REQ_IE_BIT_MAP3_NAME,
5715 hdd_ctx->config->probe_req_ie_bitmap_3);
5716 hdd_debug("Name = [%s] Value = [%x] ",
5717 CFG_PRB_REQ_IE_BIT_MAP4_NAME,
5718 hdd_ctx->config->probe_req_ie_bitmap_4);
5719 hdd_debug("Name = [%s] Value = [%x] ",
5720 CFG_PRB_REQ_IE_BIT_MAP5_NAME,
5721 hdd_ctx->config->probe_req_ie_bitmap_5);
5722 hdd_debug("Name = [%s] Value = [%x] ",
5723 CFG_PRB_REQ_IE_BIT_MAP6_NAME,
5724 hdd_ctx->config->probe_req_ie_bitmap_6);
5725 hdd_debug("Name = [%s] Value = [%x] ",
5726 CFG_PRB_REQ_IE_BIT_MAP7_NAME,
5727 hdd_ctx->config->probe_req_ie_bitmap_7);
5728 hdd_debug("Name = [%s] Value =[%s]",
5729 CFG_PROBE_REQ_OUI_NAME,
5730 hdd_ctx->config->probe_req_ouis);
5731}
5732
5733/**
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005734 * hdd_cfg_print() - print the hdd configuration
5735 * @iniTable: pointer to hdd context
5736 *
5737 * Return: None
5738 */
Jeff Johnson723234b2017-09-03 08:49:15 -07005739void hdd_cfg_print(struct hdd_context *hdd_ctx)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005740{
5741 int i;
5742
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005743 hdd_debug("*********Config values in HDD Adapter*******");
5744 hdd_debug("Name = [RTSThreshold] Value = %u",
Jeff Johnson723234b2017-09-03 08:49:15 -07005745 hdd_ctx->config->RTSThreshold);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005746 hdd_debug("Name = [OperatingChannel] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07005747 hdd_ctx->config->OperatingChannel);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005748 hdd_debug("Name = [PowerUsageControl] Value = [%s]",
Jeff Johnson723234b2017-09-03 08:49:15 -07005749 hdd_ctx->config->PowerUsageControl);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005750 hdd_debug("Name = [fIsImpsEnabled] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07005751 hdd_ctx->config->fIsImpsEnabled);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005752 hdd_debug("Name = [nVccRssiTrigger] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07005753 hdd_ctx->config->nVccRssiTrigger);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005754 hdd_debug("Name = [gIbssBssid] Value =[" MAC_ADDRESS_STR "]",
Jeff Johnson723234b2017-09-03 08:49:15 -07005755 MAC_ADDR_ARRAY(hdd_ctx->config->IbssBssid.bytes));
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005756
Anurag Chouhan6d760662016-02-20 16:05:43 +05305757 for (i = 0; i < QDF_MAX_CONCURRENCY_PERSONA; i++) {
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005758 hdd_debug("Name = [Intf%dMacAddress] Value =[" MAC_ADDRESS_STR "]",
Jeff Johnson723234b2017-09-03 08:49:15 -07005759 i, MAC_ADDR_ARRAY(hdd_ctx->config->intfMacAddr[i].bytes));
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005760 }
5761
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005762 hdd_debug("Name = [gApEnableUapsd] value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07005763 hdd_ctx->config->apUapsdEnabled);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005764
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005765 hdd_debug("Name = [gEnableApProt] value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07005766 hdd_ctx->config->apProtEnabled);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005767 hdd_debug("Name = [gAPAutoShutOff] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07005768 hdd_ctx->config->nAPAutoShutOff);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005769#ifdef FEATURE_WLAN_MCC_TO_SCC_SWITCH
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005770 hdd_debug("Name = [gWlanMccToSccSwitchMode] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07005771 hdd_ctx->config->WlanMccToSccSwitchMode);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005772#endif
5773#ifdef FEATURE_WLAN_AUTO_SHUTDOWN
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005774 hdd_debug("Name = [gWlanAutoShutdown] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07005775 hdd_ctx->config->WlanAutoShutdown);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005776#endif
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005777 hdd_debug("Name = [gApProtection] value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07005778 hdd_ctx->config->apProtection);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005779 hdd_debug("Name = [gEnableApOBSSProt] value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07005780 hdd_ctx->config->apOBSSProtEnabled);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005781 hdd_debug("Name = [%s] value = [%u]", CFG_FORCE_SAP_ACS,
Jeff Johnson723234b2017-09-03 08:49:15 -07005782 hdd_ctx->config->force_sap_acs);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005783 hdd_debug("Name = [%s] value = [%u]", CFG_FORCE_SAP_ACS_START_CH,
Jeff Johnson723234b2017-09-03 08:49:15 -07005784 hdd_ctx->config->force_sap_acs_st_ch);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005785 hdd_debug("Name = [%s] value = [%u]", CFG_FORCE_SAP_ACS_END_CH,
Jeff Johnson723234b2017-09-03 08:49:15 -07005786 hdd_ctx->config->force_sap_acs_end_ch);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005787#ifdef FEATURE_AP_MCC_CH_AVOIDANCE
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005788 hdd_debug("Name = [sap_channel_avoidance] value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07005789 hdd_ctx->config->sap_channel_avoidance);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005790#endif /* FEATURE_AP_MCC_CH_AVOIDANCE */
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005791 hdd_debug("Name = [%s] value = [%u]", CFG_SAP_P2P_11AC_OVERRIDE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07005792 hdd_ctx->config->sap_p2p_11ac_override);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005793 hdd_debug("Name = [ChannelBondingMode] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07005794 hdd_ctx->config->nChannelBondingMode24GHz);
Abhishek Singhb59f8d42017-07-31 14:42:47 +05305795 hdd_debug("Name = [%s] Value = [%u] ",
5796 CFG_OVERRIDE_HT40_20_24GHZ_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07005797 hdd_ctx->config->override_ht20_40_24g);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005798 hdd_debug("Name = [ChannelBondingMode] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07005799 hdd_ctx->config->nChannelBondingMode5GHz);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005800 hdd_debug("Name = [dot11Mode] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07005801 hdd_ctx->config->dot11Mode);
5802 hdd_debug("Name = [WmmMode] Value = [%u] ", hdd_ctx->config->WmmMode);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005803 hdd_debug("Name = [UapsdMask] Value = [0x%x] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005804 hdd_ctx->config->UapsdMask);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005805 hdd_debug("Name = [ImplicitQosIsEnabled] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07005806 (int)hdd_ctx->config->bImplicitQosEnabled);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005807
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005808 hdd_debug("Name = [InfraUapsdVoSrvIntv] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005809 hdd_ctx->config->InfraUapsdVoSrvIntv);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005810 hdd_debug("Name = [InfraUapsdVoSuspIntv] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005811 hdd_ctx->config->InfraUapsdVoSuspIntv);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005812
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005813 hdd_debug("Name = [InfraUapsdViSrvIntv] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005814 hdd_ctx->config->InfraUapsdViSrvIntv);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005815 hdd_debug("Name = [InfraUapsdViSuspIntv] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005816 hdd_ctx->config->InfraUapsdViSuspIntv);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005817
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005818 hdd_debug("Name = [InfraUapsdBeSrvIntv] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005819 hdd_ctx->config->InfraUapsdBeSrvIntv);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005820 hdd_debug("Name = [InfraUapsdBeSuspIntv] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005821 hdd_ctx->config->InfraUapsdBeSuspIntv);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005822
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005823 hdd_debug("Name = [InfraUapsdBkSrvIntv] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005824 hdd_ctx->config->InfraUapsdBkSrvIntv);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005825 hdd_debug("Name = [InfraUapsdBkSuspIntv] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005826 hdd_ctx->config->InfraUapsdBkSuspIntv);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005827#ifdef FEATURE_WLAN_ESE
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005828 hdd_debug("Name = [InfraInactivityInterval] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005829 hdd_ctx->config->InfraInactivityInterval);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005830 hdd_debug("Name = [EseEnabled] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005831 hdd_ctx->config->isEseIniFeatureEnabled);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005832 hdd_debug("Name = [FastTransitionEnabled] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005833 hdd_ctx->config->isFastTransitionEnabled);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005834 hdd_debug("Name = [gTxPowerCap] Value = [%u] dBm ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005835 hdd_ctx->config->nTxPowerCap);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005836#endif
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005837 hdd_debug("Name = [gAllowTPCfromAP] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005838 hdd_ctx->config->allow_tpc_from_ap);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005839 hdd_debug("Name = [FastRoamEnabled] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005840 hdd_ctx->config->isFastRoamIniFeatureEnabled);
Varun Reddy Yeturu061d4d62017-07-20 09:39:32 -07005841 hdd_mawc_cfg_log(hdd_ctx);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005842 hdd_debug("Name = [RoamRssiDiff] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005843 hdd_ctx->config->RoamRssiDiff);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005844 hdd_debug("Name = [isWESModeEnabled] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005845 hdd_ctx->config->isWESModeEnabled);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005846 hdd_debug("Name = [pmkidModes] Value = [0x%x] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005847 hdd_ctx->config->pmkid_modes);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005848#ifdef FEATURE_WLAN_SCAN_PNO
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005849 hdd_debug("Name = [configPNOScanSupport] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005850 hdd_ctx->config->configPNOScanSupport);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005851 hdd_debug("Name = [configPNOScanTimerRepeatValue] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005852 hdd_ctx->config->configPNOScanTimerRepeatValue);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005853 hdd_debug("Name = [gPNOSlowScanMultiplier] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005854 hdd_ctx->config->pno_slow_scan_multiplier);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005855#endif
5856#ifdef FEATURE_WLAN_TDLS
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005857 hdd_debug("Name = [fEnableTDLSSupport] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005858 hdd_ctx->config->fEnableTDLSSupport);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005859 hdd_debug("Name = [fEnableTDLSImplicitTrigger] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005860 hdd_ctx->config->fEnableTDLSImplicitTrigger);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005861 hdd_debug("Name = [fTDLSExternalControl] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005862 hdd_ctx->config->fTDLSExternalControl);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005863 hdd_debug("Name = [fTDLSUapsdMask] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005864 hdd_ctx->config->fTDLSUapsdMask);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005865 hdd_debug("Name = [fEnableTDLSBufferSta] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005866 hdd_ctx->config->fEnableTDLSBufferSta);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005867 hdd_debug("Name = [fEnableTDLSWmmMode] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005868 hdd_ctx->config->fEnableTDLSWmmMode);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005869 hdd_debug("Name = [enable_tdls_scan] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07005870 hdd_ctx->config->enable_tdls_scan);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005871#endif
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005872 hdd_debug("Name = [InfraDirAcVo] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005873 hdd_ctx->config->InfraDirAcVo);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005874 hdd_debug("Name = [InfraNomMsduSizeAcVo] Value = [0x%x] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005875 hdd_ctx->config->InfraNomMsduSizeAcVo);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005876 hdd_debug("Name = [InfraMeanDataRateAcVo] Value = [0x%x] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005877 hdd_ctx->config->InfraMeanDataRateAcVo);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005878 hdd_debug("Name = [InfraMinPhyRateAcVo] Value = [0x%x] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005879 hdd_ctx->config->InfraMinPhyRateAcVo);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005880 hdd_debug("Name = [InfraSbaAcVo] Value = [0x%x] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005881 hdd_ctx->config->InfraSbaAcVo);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005882
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005883 hdd_debug("Name = [InfraDirAcVi] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005884 hdd_ctx->config->InfraDirAcVi);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005885 hdd_debug("Name = [InfraNomMsduSizeAcVi] Value = [0x%x] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005886 hdd_ctx->config->InfraNomMsduSizeAcVi);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005887 hdd_debug("Name = [InfraMeanDataRateAcVi] Value = [0x%x] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005888 hdd_ctx->config->InfraMeanDataRateAcVi);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005889 hdd_debug("Name = [InfraMinPhyRateAcVi] Value = [0x%x] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005890 hdd_ctx->config->InfraMinPhyRateAcVi);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005891 hdd_debug("Name = [InfraSbaAcVi] Value = [0x%x] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005892 hdd_ctx->config->InfraSbaAcVi);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005893
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005894 hdd_debug("Name = [InfraDirAcBe] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005895 hdd_ctx->config->InfraDirAcBe);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005896 hdd_debug("Name = [InfraNomMsduSizeAcBe] Value = [0x%x] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005897 hdd_ctx->config->InfraNomMsduSizeAcBe);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005898 hdd_debug("Name = [InfraMeanDataRateAcBe] Value = [0x%x] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005899 hdd_ctx->config->InfraMeanDataRateAcBe);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005900 hdd_debug("Name = [InfraMinPhyRateAcBe] Value = [0x%x] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005901 hdd_ctx->config->InfraMinPhyRateAcBe);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005902 hdd_debug("Name = [InfraSbaAcBe] Value = [0x%x] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005903 hdd_ctx->config->InfraSbaAcBe);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005904
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005905 hdd_debug("Name = [InfraDirAcBk] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005906 hdd_ctx->config->InfraDirAcBk);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005907 hdd_debug("Name = [InfraNomMsduSizeAcBk] Value = [0x%x] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005908 hdd_ctx->config->InfraNomMsduSizeAcBk);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005909 hdd_debug("Name = [InfraMeanDataRateAcBk] Value = [0x%x] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005910 hdd_ctx->config->InfraMeanDataRateAcBk);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005911 hdd_debug("Name = [InfraMinPhyRateAcBk] Value = [0x%x] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005912 hdd_ctx->config->InfraMinPhyRateAcBk);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005913 hdd_debug("Name = [InfraSbaAcBk] Value = [0x%x] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005914 hdd_ctx->config->InfraSbaAcBk);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005915
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005916 hdd_debug("Name = [DelayedTriggerFrmInt] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005917 hdd_ctx->config->DelayedTriggerFrmInt);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005918 hdd_debug("Name = [fhostArpOffload] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005919 hdd_ctx->config->fhostArpOffload);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005920 hdd_debug("Name = [%s] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07005921 CFG_HW_FILTER_MODE_NAME, hdd_ctx->config->hw_filter_mode);
Varun Reddy Yeturubba32e92017-09-06 13:31:40 -07005922 hdd_debug("Name = [%s] Value = [%u]",
5923 CFG_MAWC_NLO_ENABLED_NAME,
5924 hdd_ctx->config->mawc_nlo_enabled);
5925 hdd_debug("Name = [%s] Value = [%u]",
5926 CFG_MAWC_NLO_EXP_BACKOFF_RATIO_NAME,
5927 hdd_ctx->config->mawc_nlo_exp_backoff_ratio);
5928 hdd_debug("Name = [%s] Value = [%u]",
5929 CFG_MAWC_NLO_INIT_SCAN_INTERVAL_NAME,
5930 hdd_ctx->config->mawc_nlo_init_scan_interval);
5931 hdd_debug("Name = [%s] Value = [%u]",
5932 CFG_MAWC_NLO_MAX_SCAN_INTERVAL_NAME,
5933 hdd_ctx->config->mawc_nlo_max_scan_interval);
Jeff Johnson723234b2017-09-03 08:49:15 -07005934 hdd_debug("Name = [ssdp] Value = [%u] ", hdd_ctx->config->ssdp);
5935 hdd_cfg_print_runtime_pm(hdd_ctx);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005936#ifdef FEATURE_WLAN_RA_FILTERING
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005937 hdd_debug("Name = [RArateLimitInterval] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005938 hdd_ctx->config->RArateLimitInterval);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005939 hdd_debug("Name = [IsRArateLimitEnabled] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005940 hdd_ctx->config->IsRArateLimitEnabled);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005941#endif
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005942 hdd_debug("Name = [fFTResourceReqSupported] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005943 hdd_ctx->config->fFTResourceReqSupported);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005944
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005945 hdd_debug("Name = [nNeighborLookupRssiThreshold] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005946 hdd_ctx->config->nNeighborLookupRssiThreshold);
Varun Reddy Yeturu168134f2017-06-26 13:46:05 -07005947 hdd_debug("Name = [%s] Value = [%d] ",
5948 CFG_5G_RSSI_THRESHOLD_OFFSET_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07005949 hdd_ctx->config->rssi_thresh_offset_5g);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005950 hdd_debug("Name = [delay_before_vdev_stop] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005951 hdd_ctx->config->delay_before_vdev_stop);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005952 hdd_debug("Name = [nOpportunisticThresholdDiff] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005953 hdd_ctx->config->nOpportunisticThresholdDiff);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005954 hdd_debug("Name = [nRoamRescanRssiDiff] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005955 hdd_ctx->config->nRoamRescanRssiDiff);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005956 hdd_debug("Name = [nNeighborScanMinChanTime] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005957 hdd_ctx->config->nNeighborScanMinChanTime);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005958 hdd_debug("Name = [nNeighborScanMaxChanTime] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005959 hdd_ctx->config->nNeighborScanMaxChanTime);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005960 hdd_debug("Name = [nMaxNeighborRetries] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005961 hdd_ctx->config->nMaxNeighborReqTries);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005962 hdd_debug("Name = [nNeighborScanPeriod] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005963 hdd_ctx->config->nNeighborScanPeriod);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005964 hdd_debug("Name = [n_neighbor_scan_min_period] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005965 hdd_ctx->config->neighbor_scan_min_period);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005966 hdd_debug("Name = [nNeighborScanResultsRefreshPeriod] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005967 hdd_ctx->config->nNeighborResultsRefreshPeriod);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005968 hdd_debug("Name = [nEmptyScanRefreshPeriod] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005969 hdd_ctx->config->nEmptyScanRefreshPeriod);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005970 hdd_debug("Name = [nRoamBmissFirstBcnt] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005971 hdd_ctx->config->nRoamBmissFirstBcnt);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005972 hdd_debug("Name = [nRoamBmissFinalBcnt] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005973 hdd_ctx->config->nRoamBmissFinalBcnt);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005974 hdd_debug("Name = [nRoamBeaconRssiWeight] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005975 hdd_ctx->config->nRoamBeaconRssiWeight);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005976 hdd_debug("Name = [allowDFSChannelRoam] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005977 hdd_ctx->config->allowDFSChannelRoam);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005978 hdd_debug("Name = [nhi_rssi_scan_max_count] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005979 hdd_ctx->config->nhi_rssi_scan_max_count);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005980 hdd_debug("Name = [nhi_rssi_scan_rssi_delta] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005981 hdd_ctx->config->nhi_rssi_scan_rssi_delta);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005982 hdd_debug("Name = [nhi_rssi_scan_delay] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005983 hdd_ctx->config->nhi_rssi_scan_delay);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005984 hdd_debug("Name = [nhi_rssi_scan_rssi_ub] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005985 hdd_ctx->config->nhi_rssi_scan_rssi_ub);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005986 hdd_debug("Name = [burstSizeDefinition] Value = [0x%x] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005987 hdd_ctx->config->burstSizeDefinition);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005988 hdd_debug("Name = [tsInfoAckPolicy] Value = [0x%x] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005989 hdd_ctx->config->tsInfoAckPolicy);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005990 hdd_debug("Name = [rfSettlingTimeUs] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005991 hdd_ctx->config->rfSettlingTimeUs);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005992 hdd_debug("Name = [bSingleTidRc] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005993 hdd_ctx->config->bSingleTidRc);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005994 hdd_debug("Name = [gDynamicPSPollvalue] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005995 hdd_ctx->config->dynamicPsPollValue);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005996 hdd_debug("Name = [gAddTSWhenACMIsOff] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005997 hdd_ctx->config->AddTSWhenACMIsOff);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07005998 hdd_debug("Name = [gValidateScanList] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07005999 hdd_ctx->config->fValidateScanList);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006000
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006001 hdd_debug("Name = [gStaKeepAlivePeriod] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006002 hdd_ctx->config->infraStaKeepAlivePeriod);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006003 hdd_debug("Name = [gApDataAvailPollInterVal] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006004 hdd_ctx->config->apDataAvailPollPeriodInMs);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006005 hdd_debug("Name = [BandCapability] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006006 hdd_ctx->config->nBandCapability);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006007 hdd_debug("Name = [teleBcnWakeupEnable] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006008 hdd_ctx->config->teleBcnWakeupEn);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006009 hdd_debug("Name = [transListenInterval] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006010 hdd_ctx->config->nTeleBcnTransListenInterval);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006011 hdd_debug("Name = [transLiNumIdleBeacons] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006012 hdd_ctx->config->nTeleBcnTransLiNumIdleBeacons);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006013 hdd_debug("Name = [maxListenInterval] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006014 hdd_ctx->config->nTeleBcnMaxListenInterval);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006015 hdd_debug("Name = [maxLiNumIdleBeacons] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006016 hdd_ctx->config->nTeleBcnMaxLiNumIdleBeacons);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006017 hdd_debug("Name = [gEnableBypass11d] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006018 hdd_ctx->config->enableBypass11d);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006019 hdd_debug("Name = [gEnableDFSChnlScan] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006020 hdd_ctx->config->enableDFSChnlScan);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006021 hdd_debug("Name = [gEnableDFSPnoChnlScan] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006022 hdd_ctx->config->enable_dfs_pno_chnl_scan);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006023 hdd_debug("Name = [gReportMaxLinkSpeed] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006024 hdd_ctx->config->reportMaxLinkSpeed);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006025 hdd_debug("Name = [thermalMitigationEnable] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006026 hdd_ctx->config->thermalMitigationEnable);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006027 hdd_debug("Name = [gVhtChannelWidth] value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006028 hdd_ctx->config->vhtChannelWidth);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006029 hdd_debug("Name = [enableFirstScan2GOnly] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006030 hdd_ctx->config->enableFirstScan2GOnly);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006031 hdd_debug("Name = [skipDfsChnlInP2pSearch] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006032 hdd_ctx->config->skipDfsChnlInP2pSearch);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006033 hdd_debug("Name = [ignoreDynamicDtimInP2pMode] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006034 hdd_ctx->config->ignoreDynamicDtimInP2pMode);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006035 hdd_debug("Name = [enableRxSTBC] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006036 hdd_ctx->config->enableRxSTBC);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006037 hdd_debug("Name = [gEnableLpwrImgTransition] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006038 hdd_ctx->config->enableLpwrImgTransition);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006039 hdd_debug("Name = [gEnableSSR] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006040 hdd_ctx->config->enableSSR);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006041 hdd_debug("Name = [gEnableVhtFor24GHzBand] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006042 hdd_ctx->config->enableVhtFor24GHzBand);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006043 hdd_debug("Name = [gEnableIbssHeartBeatOffload] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006044 hdd_ctx->config->enableIbssHeartBeatOffload);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006045 hdd_debug("Name = [gAntennaDiversity] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006046 hdd_ctx->config->antennaDiversity);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006047 hdd_debug("Name = [gGoLinkMonitorPeriod] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006048 hdd_ctx->config->goLinkMonitorPeriod);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006049 hdd_debug("Name = [gApLinkMonitorPeriod] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006050 hdd_ctx->config->apLinkMonitorPeriod);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006051 hdd_debug("Name = [gGoKeepAlivePeriod] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006052 hdd_ctx->config->goKeepAlivePeriod);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006053 hdd_debug("Name = [gApKeepAlivePeriod]Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006054 hdd_ctx->config->apKeepAlivePeriod);
Deepak Dhamdhere612392c2016-08-28 02:56:51 -07006055 hdd_debug("Name = [max_amsdu_num] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006056 hdd_ctx->config->max_amsdu_num);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006057 hdd_debug("Name = [nSelect5GHzMargin] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006058 hdd_ctx->config->nSelect5GHzMargin);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006059 hdd_debug("Name = [gCoalesingInIBSS] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006060 hdd_ctx->config->isCoalesingInIBSSAllowed);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006061 hdd_debug("Name = [gIbssATIMWinSize] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006062 hdd_ctx->config->ibssATIMWinSize);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006063 hdd_debug("Name = [gIbssIsPowerSaveAllowed] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006064 hdd_ctx->config->isIbssPowerSaveAllowed);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006065 hdd_debug("Name = [gIbssIsPowerCollapseAllowed] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006066 hdd_ctx->config->isIbssPowerCollapseAllowed);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006067 hdd_debug("Name = [gIbssAwakeOnTxRx] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006068 hdd_ctx->config->isIbssAwakeOnTxRx);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006069 hdd_debug("Name = [gIbssInactivityTime] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006070 hdd_ctx->config->ibssInactivityCount);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006071 hdd_debug("Name = [gIbssTxSpEndInactivityTime] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006072 hdd_ctx->config->ibssTxSpEndInactivityTime);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006073 hdd_debug("Name = [gIbssPsWarmupTime] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006074 hdd_ctx->config->ibssPsWarmupTime);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006075 hdd_debug("Name = [gIbssPs1RxChainInAtim] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006076 hdd_ctx->config->ibssPs1RxChainInAtimEnable);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006077 hdd_debug("Name = [fDfsPhyerrFilterOffload] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006078 hdd_ctx->config->fDfsPhyerrFilterOffload);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006079 hdd_debug("Name = [gIgnorePeerErpInfo] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006080 hdd_ctx->config->ignore_peer_erp_info);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006081#ifdef IPA_OFFLOAD
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006082 hdd_debug("Name = [gIPAConfig] Value = [0x%x] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006083 hdd_ctx->config->IpaConfig);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006084 hdd_debug("Name = [gIPADescSize] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006085 hdd_ctx->config->IpaDescSize);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006086 hdd_debug("Name = [IpaHighBandwidthMbpsg] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006087 hdd_ctx->config->IpaHighBandwidthMbps);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006088 hdd_debug("Name = [IpaMediumBandwidthMbps] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006089 hdd_ctx->config->IpaMediumBandwidthMbps);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006090 hdd_debug("Name = [IpaLowBandwidthMbps] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006091 hdd_ctx->config->IpaLowBandwidthMbps);
jiad14fe4fb2017-08-08 13:33:14 +08006092 hdd_info("Name = [IpaMccTxDescSize] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006093 hdd_ctx->config->IpaMccTxDescSize);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006094#endif
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006095 hdd_debug("Name = [gEnableOverLapCh] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006096 hdd_ctx->config->gEnableOverLapCh);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006097 hdd_debug("Name = [gMaxOffloadPeers] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006098 hdd_ctx->config->apMaxOffloadPeers);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006099 hdd_debug("Name = [gMaxOffloadReorderBuffs] value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006100 hdd_ctx->config->apMaxOffloadReorderBuffs);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006101 hdd_debug("Name = [%s] Value = [%d]",
Dustin Brown732ab9c2017-06-15 13:24:09 -07006102 CFG_ENABLE_CCK_TX_FIR_OVERRIDE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006103 hdd_ctx->config->enable_cck_tx_fir_override);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006104 hdd_debug("Name = [gAllowDFSChannelRoam] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006105 hdd_ctx->config->allowDFSChannelRoam);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006106 hdd_debug("Name = [gMaxConcurrentActiveSessions] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006107 hdd_ctx->config->gMaxConcurrentActiveSessions);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006108
6109#ifdef MSM_PLATFORM
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006110 hdd_debug("Name = [gBusBandwidthHighThreshold] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006111 hdd_ctx->config->busBandwidthHighThreshold);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006112 hdd_debug("Name = [gBusBandwidthMediumThreshold] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006113 hdd_ctx->config->busBandwidthMediumThreshold);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006114 hdd_debug("Name = [gBusBandwidthLowThreshold] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006115 hdd_ctx->config->busBandwidthLowThreshold);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006116 hdd_debug("Name = [gbusBandwidthComputeInterval] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006117 hdd_ctx->config->busBandwidthComputeInterval);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006118 hdd_debug("Name = [%s] Value = [%u] ",
Ravi Joshie2331e82015-07-01 18:18:54 -07006119 CFG_ENABLE_TCP_DELACK,
Jeff Johnson723234b2017-09-03 08:49:15 -07006120 hdd_ctx->config->enable_tcp_delack);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006121 hdd_debug("Name = [gTcpDelAckThresholdHigh] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006122 hdd_ctx->config->tcpDelackThresholdHigh);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006123 hdd_debug("Name = [gTcpDelAckThresholdLow] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006124 hdd_ctx->config->tcpDelackThresholdLow);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006125 hdd_debug("Name = [%s] Value = [%u] ",
Ravi Joshib89e7f72016-09-07 13:43:15 -07006126 CFG_TCP_DELACK_TIMER_COUNT,
Jeff Johnson723234b2017-09-03 08:49:15 -07006127 hdd_ctx->config->tcp_delack_timer_count);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006128 hdd_debug("Name = [%s] Value = [%u] ",
Ravi Joshib89e7f72016-09-07 13:43:15 -07006129 CFG_TCP_TX_HIGH_TPUT_THRESHOLD_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006130 hdd_ctx->config->tcp_tx_high_tput_thres);
Mohit Khannae71e2262015-11-10 09:37:24 -08006131
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006132#endif
6133
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006134 hdd_debug("Name = [gIgnoreCAC] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006135 hdd_ctx->config->ignoreCAC);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006136 hdd_debug("Name = [gSapPreferredChanLocation] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006137 hdd_ctx->config->gSapPreferredChanLocation);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006138 hdd_debug("Name = [gDisableDfsJapanW53] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006139 hdd_ctx->config->gDisableDfsJapanW53);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006140#ifdef FEATURE_GREEN_AP
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006141 hdd_debug("Name = [gEnableGreenAp] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006142 hdd_ctx->config->enableGreenAP);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006143 hdd_debug("Name = [gEenableEGAP] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006144 hdd_ctx->config->enable_egap);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006145 hdd_debug("Name = [gEGAPInactTime] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006146 hdd_ctx->config->egap_inact_time);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006147 hdd_debug("Name = [gEGAPWaitTime] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006148 hdd_ctx->config->egap_wait_time);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006149 hdd_debug("Name = [gEGAPFeatures] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006150 hdd_ctx->config->egap_feature_flag);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006151#endif
6152#ifdef WLAN_FEATURE_ROAM_OFFLOAD
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006153 hdd_debug("Name = [isRoamOffloadEnabled] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006154 hdd_ctx->config->isRoamOffloadEnabled);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006155#endif
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006156 hdd_debug("Name = [gEnableSifsBurst] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006157 hdd_ctx->config->enableSifsBurst);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006158
6159#ifdef WLAN_FEATURE_LPSS
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006160 hdd_debug("Name = [gEnableLpassSupport] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006161 hdd_ctx->config->enable_lpass_support);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006162#endif
6163
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006164 hdd_debug("Name = [gEnableSelfRecovery] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006165 hdd_ctx->config->enableSelfRecovery);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006166
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006167 hdd_debug("Name = [gEnableSapSuspend] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006168 hdd_ctx->config->enableSapSuspend);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006169
6170#ifdef WLAN_FEATURE_EXTWOW_SUPPORT
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006171 hdd_debug("Name = [gExtWoWgotoSuspend] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006172 hdd_ctx->config->extWowGotoSuspend);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006173
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006174 hdd_debug("Name = [gExtWowApp1WakeupPinNumber] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006175 hdd_ctx->config->extWowApp1WakeupPinNumber);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006176
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006177 hdd_debug("Name = [gExtWowApp2WakeupPinNumber] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006178 hdd_ctx->config->extWowApp2WakeupPinNumber);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006179
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006180 hdd_debug("Name = [gExtWoWApp2KAInitPingInterval] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006181 hdd_ctx->config->extWowApp2KAInitPingInterval);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006182
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006183 hdd_debug("Name = [gExtWoWApp2KAMinPingInterval] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006184 hdd_ctx->config->extWowApp2KAMinPingInterval);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006185
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006186 hdd_debug("Name = [gExtWoWApp2KAMaxPingInterval] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006187 hdd_ctx->config->extWowApp2KAMaxPingInterval);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006188
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006189 hdd_debug("Name = [gExtWoWApp2KAIncPingInterval] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006190 hdd_ctx->config->extWowApp2KAIncPingInterval);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006191
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006192 hdd_debug("Name = [gExtWoWApp2TcpSrcPort] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006193 hdd_ctx->config->extWowApp2TcpSrcPort);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006194
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006195 hdd_debug("Name = [gExtWoWApp2TcpDstPort] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006196 hdd_ctx->config->extWowApp2TcpDstPort);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006197
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006198 hdd_debug("Name = [gExtWoWApp2TcpTxTimeout] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006199 hdd_ctx->config->extWowApp2TcpTxTimeout);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006200
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006201 hdd_debug("Name = [gExtWoWApp2TcpRxTimeout] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006202 hdd_ctx->config->extWowApp2TcpRxTimeout);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006203#endif
6204
6205#ifdef DHCP_SERVER_OFFLOAD
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006206 hdd_debug("Name = [gDHCPServerOffloadEnable] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006207 hdd_ctx->config->enableDHCPServerOffload);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006208 hdd_debug("Name = [gDHCPMaxNumClients] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006209 hdd_ctx->config->dhcpMaxNumClients);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006210 hdd_debug("Name = [gDHCPServerIP] Value = [%s]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006211 hdd_ctx->config->dhcpServerIP);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006212#endif
6213
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006214 hdd_debug("Name = [gEnableDumpCollect] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006215 hdd_ctx->config->is_ramdump_enabled);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006216
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006217 hdd_debug("Name = [gP2PListenDeferInterval] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006218 hdd_ctx->config->p2p_listen_defer_interval);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006219 hdd_debug("Name = [is_ps_enabled] value = [%d]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006220 hdd_ctx->config->is_ps_enabled);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006221 hdd_debug("Name = [tso_enable] value = [%d]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006222 hdd_ctx->config->tso_enable);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006223 hdd_debug("Name = [LROEnable] value = [%d]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006224 hdd_ctx->config->lro_enable);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006225 hdd_debug("Name = [active_mode_offload] value = [%d]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006226 hdd_ctx->config->active_mode_offload);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006227 hdd_debug("Name = [gfine_time_meas_cap] value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006228 hdd_ctx->config->fine_time_meas_cap);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006229#ifdef WLAN_FEATURE_FASTPATH
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006230 hdd_debug("Name = [fastpath_enable] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006231 hdd_ctx->config->fastpath_enable);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006232#endif
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006233 hdd_debug("Name = [max_scan_count] value = [%d]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006234 hdd_ctx->config->max_scan_count);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006235 hdd_debug("Name = [%s] value = [%d]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006236 CFG_RX_MODE_NAME, hdd_ctx->config->rx_mode);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006237 hdd_debug("Name = [%s] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006238 CFG_CE_CLASSIFY_ENABLE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006239 hdd_ctx->config->ce_classify_enabled);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006240 hdd_debug("Name = [%s] value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006241 CFG_DUAL_MAC_FEATURE_DISABLE,
Jeff Johnson723234b2017-09-03 08:49:15 -07006242 hdd_ctx->config->dual_mac_feature_disable);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006243 hdd_debug("Name = [%s] Value = [%s]",
Nitesh Shah50a3de12017-04-03 19:37:19 +05306244 CFG_DBS_SCAN_SELECTION_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006245 hdd_ctx->config->dbs_scan_selection);
Varun Reddy Yeturub43fda12015-09-10 18:16:21 -07006246#ifdef FEATURE_WLAN_SCAN_PNO
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006247 hdd_debug("Name = [%s] Value = [%u]",
Archana Ramachandrane87005c2016-08-23 16:57:30 -07006248 CFG_PNO_CHANNEL_PREDICTION_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006249 hdd_ctx->config->pno_channel_prediction);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006250 hdd_debug("Name = [%s] Value = [%u]",
Archana Ramachandrane87005c2016-08-23 16:57:30 -07006251 CFG_TOP_K_NUM_OF_CHANNELS_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006252 hdd_ctx->config->top_k_num_of_channels);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006253 hdd_debug("Name = [%s] Value = [%u]",
Archana Ramachandrane87005c2016-08-23 16:57:30 -07006254 CFG_STATIONARY_THRESHOLD_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006255 hdd_ctx->config->stationary_thresh);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006256 hdd_debug("Name = [%s] Value = [%u]",
Archana Ramachandrane87005c2016-08-23 16:57:30 -07006257 CFG_CHANNEL_PREDICTION_FULL_SCAN_MS_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006258 hdd_ctx->config->channel_prediction_full_scan);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006259 hdd_debug("Name = [%s] Value = [%u]",
Archana Ramachandrane87005c2016-08-23 16:57:30 -07006260 CFG_ADAPTIVE_PNOSCAN_DWELL_MODE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006261 hdd_ctx->config->pnoscan_adaptive_dwell_mode);
Varun Reddy Yeturub43fda12015-09-10 18:16:21 -07006262#endif
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006263 hdd_debug("Name = [%s] Value = [%d]",
Archana Ramachandrane87005c2016-08-23 16:57:30 -07006264 CFG_EARLY_STOP_SCAN_ENABLE,
Jeff Johnson723234b2017-09-03 08:49:15 -07006265 hdd_ctx->config->early_stop_scan_enable);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006266 hdd_debug("Name = [%s] Value = [%d]",
Archana Ramachandrane87005c2016-08-23 16:57:30 -07006267 CFG_EARLY_STOP_SCAN_MIN_THRESHOLD,
Jeff Johnson723234b2017-09-03 08:49:15 -07006268 hdd_ctx->config->early_stop_scan_min_threshold);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006269 hdd_debug("Name = [%s] Value = [%d]",
Archana Ramachandrane87005c2016-08-23 16:57:30 -07006270 CFG_EARLY_STOP_SCAN_MAX_THRESHOLD,
Jeff Johnson723234b2017-09-03 08:49:15 -07006271 hdd_ctx->config->early_stop_scan_max_threshold);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006272 hdd_debug("Name = [%s] Value = [%d]",
Archana Ramachandrane87005c2016-08-23 16:57:30 -07006273 CFG_FIRST_SCAN_BUCKET_THRESHOLD_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006274 hdd_ctx->config->first_scan_bucket_threshold);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006275 hdd_debug("Name = [%s] Value = [%u]",
Archana Ramachandrane87005c2016-08-23 16:57:30 -07006276 CFG_HT_MPDU_DENSITY_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006277 hdd_ctx->config->ht_mpdu_density);
Krishna Kumaar Natarajan22b59a72015-11-23 18:54:58 -08006278
Ravi Joshi742495d2015-11-09 18:56:53 -08006279
6280#ifdef FEATURE_LFR_SUBNET_DETECTION
Archana Ramachandrane87005c2016-08-23 16:57:30 -07006281 hdd_notice("Name = [%s] Value = [%d]",
6282 CFG_ENABLE_LFR_SUBNET_DETECTION,
Jeff Johnson723234b2017-09-03 08:49:15 -07006283 hdd_ctx->config->enable_lfr_subnet_detection);
Ravi Joshi742495d2015-11-09 18:56:53 -08006284#endif
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006285 hdd_debug("Name = [%s] Value = [%u]",
Gupta, Kapilc68ad462016-02-01 19:17:23 +05306286 CFG_ROAM_DENSE_TRAFFIC_THRESHOLD,
Jeff Johnson723234b2017-09-03 08:49:15 -07006287 hdd_ctx->config->roam_dense_traffic_thresh);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006288 hdd_debug("Name = [%s] Value = [%u]",
Gupta, Kapilc68ad462016-02-01 19:17:23 +05306289 CFG_ROAM_DENSE_RSSI_THRE_OFFSET,
Jeff Johnson723234b2017-09-03 08:49:15 -07006290 hdd_ctx->config->roam_dense_rssi_thresh_offset);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006291 hdd_debug("Name = [%s] Value = [%u]",
Abhishek Singh165bc602016-03-21 12:43:00 +05306292 CFG_IGNORE_PEER_HT_MODE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006293 hdd_ctx->config->ignore_peer_ht_opmode);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006294 hdd_debug("Name = [%s] Value = [%u]",
Kapil Gupta4b2efbb2016-10-03 13:07:20 +05306295 CFG_ENABLE_VENDOR_VHT_FOR_24GHZ_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006296 hdd_ctx->config->enable_sap_vendor_vht);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006297 hdd_debug("Name = [%s] Value = [%u]",
Abhishek Singh5ea86532016-04-27 14:10:53 +05306298 CFG_ENABLE_FATAL_EVENT_TRIGGER,
Jeff Johnson723234b2017-09-03 08:49:15 -07006299 hdd_ctx->config->enable_fatal_event);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006300 hdd_debug("Name = [%s] Value = [%u]",
Gupta, Kapilc68ad462016-02-01 19:17:23 +05306301 CFG_ROAM_DENSE_MIN_APS,
Jeff Johnson723234b2017-09-03 08:49:15 -07006302 hdd_ctx->config->roam_dense_min_aps);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006303 hdd_debug("Name = [%s] Value = [%u]",
Varun Reddy Yeturufaad37e2017-07-26 10:54:13 -07006304 CFG_ROAM_BG_SCAN_BAD_RSSI_THRESHOLD_NAME,
6305 hdd_ctx->config->roam_bg_scan_bad_rssi_thresh);
6306 hdd_debug("Name = [%s] Value = [%u]",
6307 CFG_ROAM_BG_SCAN_CLIENT_BITMAP_NAME,
6308 hdd_ctx->config->roam_bg_scan_client_bitmap);
6309 hdd_debug("Name = [%s] Value = [%u]",
Agrawal Ashish17bb3902016-05-05 13:29:40 +05306310 CFG_MIN_REST_TIME_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006311 hdd_ctx->config->min_rest_time_conc);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006312 hdd_debug("Name = [%s] Value = [%u]",
Agrawal Ashish17bb3902016-05-05 13:29:40 +05306313 CFG_IDLE_TIME_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006314 hdd_ctx->config->idle_time_conc);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006315 hdd_debug("Name = [%s] Value = [%d]",
Mukul Sharmaf7d62e12016-09-03 15:16:22 +05306316 CFG_BUG_ON_REINIT_FAILURE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006317 hdd_ctx->config->bug_on_reinit_failure);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006318 hdd_debug("Name = [%s] Value = [%u]",
Arun Khandavallifae92942016-08-01 13:31:08 +05306319 CFG_INTERFACE_CHANGE_WAIT_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006320 hdd_ctx->config->iface_change_wait_time);
Agrawal Ashish17bb3902016-05-05 13:29:40 +05306321
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006322 hdd_debug("Name = [%s] Value = [%u]",
Abhishek Singh10ecf582016-05-04 17:48:59 +05306323 CFG_ENABLE_EDCA_INI_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006324 hdd_ctx->config->enable_edca_params);
Abhishek Singh10ecf582016-05-04 17:48:59 +05306325
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006326 hdd_debug("Name = [%s] Value = [%u]",
Abhishek Singh10ecf582016-05-04 17:48:59 +05306327 CFG_EDCA_VO_CWMIN_VALUE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006328 hdd_ctx->config->edca_vo_cwmin);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006329 hdd_debug("Name = [%s] Value = [%u]",
Abhishek Singh10ecf582016-05-04 17:48:59 +05306330 CFG_EDCA_VI_CWMIN_VALUE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006331 hdd_ctx->config->edca_vi_cwmin);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006332 hdd_debug("Name = [%s] Value = [%u]",
Abhishek Singh10ecf582016-05-04 17:48:59 +05306333 CFG_EDCA_BK_CWMIN_VALUE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006334 hdd_ctx->config->edca_bk_cwmin);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006335 hdd_debug("Name = [%s] Value = [%u]",
Abhishek Singh10ecf582016-05-04 17:48:59 +05306336 CFG_EDCA_BE_CWMIN_VALUE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006337 hdd_ctx->config->edca_be_cwmin);
Abhishek Singh10ecf582016-05-04 17:48:59 +05306338
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006339 hdd_debug("Name = [%s] Value = [%u]",
Abhishek Singh10ecf582016-05-04 17:48:59 +05306340 CFG_EDCA_VO_CWMAX_VALUE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006341 hdd_ctx->config->edca_vo_cwmax);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006342 hdd_debug("Name = [%s] Value = [%u]",
Abhishek Singh10ecf582016-05-04 17:48:59 +05306343 CFG_EDCA_VI_CWMAX_VALUE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006344 hdd_ctx->config->edca_vi_cwmax);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006345 hdd_debug("Name = [%s] Value = [%u]",
Abhishek Singh10ecf582016-05-04 17:48:59 +05306346 CFG_EDCA_BK_CWMAX_VALUE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006347 hdd_ctx->config->edca_bk_cwmax);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006348 hdd_debug("Name = [%s] Value = [%u]",
Abhishek Singh10ecf582016-05-04 17:48:59 +05306349 CFG_EDCA_BE_CWMAX_VALUE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006350 hdd_ctx->config->edca_be_cwmax);
Abhishek Singh10ecf582016-05-04 17:48:59 +05306351
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006352 hdd_debug("Name = [%s] Value = [%u]",
Abhishek Singh10ecf582016-05-04 17:48:59 +05306353 CFG_EDCA_VO_AIFS_VALUE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006354 hdd_ctx->config->edca_vo_aifs);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006355 hdd_debug("Name = [%s] Value = [%u]",
Abhishek Singh10ecf582016-05-04 17:48:59 +05306356 CFG_EDCA_VI_AIFS_VALUE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006357 hdd_ctx->config->edca_vi_aifs);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006358 hdd_debug("Name = [%s] Value = [%u]",
Abhishek Singh10ecf582016-05-04 17:48:59 +05306359 CFG_EDCA_BK_AIFS_VALUE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006360 hdd_ctx->config->edca_bk_aifs);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006361 hdd_debug("Name = [%s] Value = [%u]",
Abhishek Singh10ecf582016-05-04 17:48:59 +05306362 CFG_EDCA_BE_AIFS_VALUE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006363 hdd_ctx->config->edca_be_aifs);
gbian62edd7e2017-03-07 13:12:13 +08006364
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006365 hdd_debug("Name = [%s] Value = [%s]",
gbian62edd7e2017-03-07 13:12:13 +08006366 CFG_ENABLE_TX_SCHED_WRR_VO_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006367 hdd_ctx->config->tx_sched_wrr_vo);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006368 hdd_debug("Name = [%s] Value = [%s]",
gbian62edd7e2017-03-07 13:12:13 +08006369 CFG_ENABLE_TX_SCHED_WRR_VI_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006370 hdd_ctx->config->tx_sched_wrr_vi);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006371 hdd_debug("Name = [%s] Value = [%s]",
gbian62edd7e2017-03-07 13:12:13 +08006372 CFG_ENABLE_TX_SCHED_WRR_BK_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006373 hdd_ctx->config->tx_sched_wrr_bk);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006374 hdd_debug("Name = [%s] Value = [%s]",
gbian62edd7e2017-03-07 13:12:13 +08006375 CFG_ENABLE_TX_SCHED_WRR_BE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006376 hdd_ctx->config->tx_sched_wrr_be);
Mohit Khannaf8f96822017-05-17 17:11:59 -07006377 hdd_info("Name = [%s] Value = [%u]",
Nirav Shahcc1f1ae2016-04-26 11:41:29 +05306378 CFG_ENABLE_DP_TRACE,
Jeff Johnson723234b2017-09-03 08:49:15 -07006379 hdd_ctx->config->enable_dp_trace);
Mohit Khannaf8f96822017-05-17 17:11:59 -07006380 hdd_debug("Name = [%s] Value = [%s]",
6381 CFG_ENABLE_DP_TRACE_CONFIG,
Jeff Johnson723234b2017-09-03 08:49:15 -07006382 hdd_ctx->config->dp_trace_config);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006383 hdd_debug("Name = [%s] Value = [%u]",
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05306384 CFG_ADAPTIVE_SCAN_DWELL_MODE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006385 hdd_ctx->config->scan_adaptive_dwell_mode);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006386 hdd_debug("Name = [%s] Value = [%u]",
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05306387 CFG_ADAPTIVE_ROAMSCAN_DWELL_MODE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006388 hdd_ctx->config->roamscan_adaptive_dwell_mode);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006389 hdd_debug("Name = [%s] Value = [%u]",
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05306390 CFG_ADAPTIVE_EXTSCAN_DWELL_MODE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006391 hdd_ctx->config->extscan_adaptive_dwell_mode);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006392 hdd_debug("Name = [%s] Value = [%u]",
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05306393 CFG_ADAPTIVE_DWELL_MODE_ENABLED_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006394 hdd_ctx->config->adaptive_dwell_mode_enabled);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006395 hdd_debug("Name = [%s] Value = [%u]",
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05306396 CFG_GLOBAL_ADAPTIVE_DWELL_MODE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006397 hdd_ctx->config->global_adapt_dwelltime_mode);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006398 hdd_debug("Name = [%s] Value = [%u]",
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05306399 CFG_ADAPT_DWELL_LPF_WEIGHT_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006400 hdd_ctx->config->adapt_dwell_lpf_weight);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006401 hdd_debug("Name = [%s] Value = [%u]",
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05306402 CFG_ADAPT_DWELL_PASMON_INTVAL_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006403 hdd_ctx->config->adapt_dwell_passive_mon_intval);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006404 hdd_debug("Name = [%s] Value = [%u]",
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05306405 CFG_ADAPT_DWELL_WIFI_THRESH_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006406 hdd_ctx->config->adapt_dwell_wifi_act_threshold);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006407 hdd_debug("Name = [%s] value = [%u]",
Naveen Rawat64e477e2016-05-20 10:34:56 -07006408 CFG_SUB_20_CHANNEL_WIDTH_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006409 hdd_ctx->config->enable_sub_20_channel_width);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006410 hdd_debug("Name = [%s] Value = [%u]",
Rajeev Kumar Sirasanagandlaaf474742016-09-06 17:54:50 +05306411 CFG_TGT_GTX_USR_CFG_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006412 hdd_ctx->config->tgt_gtx_usr_cfg);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006413 hdd_debug("Name = [%s] Value = [%u]",
Agrawal, Ashish4e5fa1c2016-09-21 19:03:43 +05306414 CFG_SAP_MAX_INACTIVITY_OVERRIDE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006415 hdd_ctx->config->sap_max_inactivity_override);
6416 hdd_ndp_print_ini_config(hdd_ctx);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006417 hdd_debug("Name = [%s] Value = [%s]",
Krishna Kumaar Natarajancc077c22016-08-02 10:41:53 -07006418 CFG_RM_CAPABILITY_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006419 hdd_ctx->config->rm_capability);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006420 hdd_debug("Name = [%s] Value = [%d]",
Rajeev Kumar Sirasanagandlab79b5462016-09-06 18:33:17 +05306421 CFG_SAP_FORCE_11N_FOR_11AC_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006422 hdd_ctx->config->sap_force_11n_for_11ac);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006423 hdd_debug("Name = [%s] Value = [%d]",
Rajeev Kumardd3bc602016-08-16 14:21:05 -07006424 CFG_BPF_PACKET_FILTER_OFFLOAD,
Jeff Johnson723234b2017-09-03 08:49:15 -07006425 hdd_ctx->config->bpf_packet_filter_enable);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006426 hdd_debug("Name = [%s] Value = [%u]",
Nitesh Shah61c10d92016-10-19 19:29:15 +05306427 CFG_TDLS_ENABLE_DEFER_TIMER,
Jeff Johnson723234b2017-09-03 08:49:15 -07006428 hdd_ctx->config->tdls_enable_defer_time);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006429 hdd_debug("Name = [%s] Value = [%d]",
Ravi Joshibb8d4512016-08-22 10:14:52 -07006430 CFG_FILTER_MULTICAST_REPLAY_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006431 hdd_ctx->config->multicast_replay_filter);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006432 hdd_debug("Name = [%s] Value = [%u]",
Agrawal Ashishb2d1a452016-05-05 12:23:58 +05306433 CFG_ENABLE_GO_CTS2SELF_FOR_STA,
Jeff Johnson723234b2017-09-03 08:49:15 -07006434 hdd_ctx->config->enable_go_cts2self_for_sta);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006435 hdd_debug("Name = [%s] Value = [%u]",
Sandeep Puligillaafa52892016-10-26 19:03:16 -07006436 CFG_CRASH_FW_TIMEOUT_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006437 hdd_ctx->config->fw_timeout_crash);
Hanumanth Reddy Pothulae87621b2017-04-12 20:53:35 +05306438 hdd_debug("Name = [%s] Value = [%u]",
6439 CFG_ACTIVE_UC_BPF_MODE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006440 hdd_ctx->config->active_uc_bpf_mode);
Hanumanth Reddy Pothulae87621b2017-04-12 20:53:35 +05306441 hdd_debug("Name = [%s] Value = [%u]",
6442 CFG_ACTIVE_MC_BC_BPF_MODE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006443 hdd_ctx->config->active_mc_bc_bpf_mode);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006444 hdd_debug("Name = [%s] Value = [%d]",
Arun Khandavallicc544b32017-01-30 19:52:16 +05306445 CFG_SAP_INTERNAL_RESTART_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006446 hdd_ctx->config->sap_internal_restart);
gaoleze5108942017-03-31 16:56:42 +08006447 hdd_debug("Name = [%s] Value = [%d]",
6448 CFG_ACS_WITH_MORE_PARAM_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006449 hdd_ctx->config->acs_with_more_param);
Ravi Kumar Bokka05c14e52017-03-27 14:48:23 +05306450 hdd_debug("Name = [%s] Value = [%u]",
6451 CFG_AUTO_DETECT_POWER_FAIL_MODE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006452 hdd_ctx->config->auto_pwr_save_fail_mode);
Hanumanth Reddy Pothula9c161dd2017-03-23 19:03:08 +05306453 hdd_debug("Name = [%s] Value = [%d]",
Hanumanth Reddy Pothulaffc2d482017-07-04 11:32:44 +05306454 CFG_RESTART_BEACONING_ON_CH_AVOID_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006455 hdd_ctx->config->restart_beaconing_on_chan_avoid_event);
Ravi Kumar Bokka05c14e52017-03-27 14:48:23 +05306456
Jeff Johnson723234b2017-09-03 08:49:15 -07006457 hdd_per_roam_print_ini_config(hdd_ctx);
6458 hdd_he_print_ini_config(hdd_ctx);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006459 hdd_debug("Name = [%s] Value = [%d]",
Srinivas Girigowda70e169a2017-03-07 23:55:57 -08006460 CFG_ARP_AC_CATEGORY,
Jeff Johnson723234b2017-09-03 08:49:15 -07006461 hdd_ctx->config->arp_ac_category);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006462 hdd_debug("Name = [%s] Value = [%u]",
Dustin Brown20b6fcf2017-05-17 15:35:17 -07006463 CFG_SCAN_BACKOFF_MULTIPLIER_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006464 hdd_ctx->config->scan_backoff_multiplier);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006465 hdd_debug("Name = [%s] Value = [%d]",
Jayachandran Sreekumaran68c952c2017-04-24 12:42:03 +05306466 CFG_EXTERNAL_ACS_POLICY,
Jeff Johnson723234b2017-09-03 08:49:15 -07006467 hdd_ctx->config->external_acs_policy);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006468 hdd_debug("Name = [%s] Value = [%d]",
Jayachandran Sreekumaran68c952c2017-04-24 12:42:03 +05306469 CFG_EXTERNAL_ACS_FREQ_BAND,
Jeff Johnson723234b2017-09-03 08:49:15 -07006470 hdd_ctx->config->external_acs_freq_band);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006471 hdd_debug("Name = [%s] value = [%u]",
Naveen Rawat2b6e3c92017-03-20 13:59:07 -07006472 CFG_DROPPED_PKT_DISCONNECT_TH_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006473 hdd_ctx->config->pkt_err_disconn_th);
Rajeev Kumar Sirasanagandlaaec0b082017-06-21 11:59:41 +05306474
Jeff Johnson723234b2017-09-03 08:49:15 -07006475 hdd_cfg_print_ie_whitelist_attrs(hdd_ctx);
Rajeev Kumar Sirasanagandlaaec0b082017-06-21 11:59:41 +05306476
Naveen Rawatb2fc4132017-05-10 20:42:05 -07006477 hdd_debug("Name = [%s] value = [%u]",
6478 CFG_FORCE_1X1_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006479 hdd_ctx->config->is_force_1x1);
Srinivas Girigowda6598eea2017-07-06 19:26:19 -07006480 hdd_debug("Name = [%s] Value = %u",
Ashish Kumar Dhanotiya470af292017-05-31 20:46:00 +05306481 CFG_ENABLE_CONNECTED_SCAN_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006482 hdd_ctx->config->enable_connected_scan);
Naveen Rawat247a8682017-06-05 15:00:31 -07006483 hdd_debug("Name = [%s] value = [%u]",
6484 CFG_11B_NUM_TX_CHAIN_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006485 hdd_ctx->config->num_11b_tx_chains);
Naveen Rawat247a8682017-06-05 15:00:31 -07006486 hdd_debug("Name = [%s] value = [%u]",
6487 CFG_11AG_NUM_TX_CHAIN_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006488 hdd_ctx->config->num_11ag_tx_chains);
Ashish Kumar Dhanotiya9335d812017-06-30 16:57:20 +05306489 hdd_debug("Name = [%s] value = [%u]",
6490 CFG_ITO_REPEAT_COUNT_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006491 hdd_ctx->config->ito_repeat_count);
Selvaraj, Sridhar57ce4df2017-05-29 18:30:49 +05306492 hdd_debug("Name = [%s] Value = [%u]",
6493 CFG_ROAM_DISALLOW_DURATION_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006494 hdd_ctx->config->disallow_duration);
Selvaraj, Sridhar57ce4df2017-05-29 18:30:49 +05306495 hdd_debug("Name = [%s] Value = [%u]",
6496 CFG_ROAM_RSSI_CHANNEL_PENALIZATION_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006497 hdd_ctx->config->rssi_channel_penalization);
Selvaraj, Sridhar57ce4df2017-05-29 18:30:49 +05306498 hdd_debug("Name = [%s] Value = [%u]",
6499 CFG_ROAM_NUM_DISALLOWED_APS_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006500 hdd_ctx->config->num_disallowed_aps);
Ashish Kumar Dhanotiyab8630ab2017-07-21 14:18:14 +05306501 hdd_debug("Name = [%s] value = [%u]",
6502 CFG_LPRx_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006503 hdd_ctx->config->enable_lprx);
Ashish Kumar Dhanotiyab28338c2017-07-21 20:12:34 +05306504 hdd_debug("Name = [%s] value = [%u]",
6505 CFG_UPPER_BRSSI_THRESH_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006506 hdd_ctx->config->upper_brssi_thresh);
Ashish Kumar Dhanotiyab28338c2017-07-21 20:12:34 +05306507 hdd_debug("Name = [%s] value = [%u]",
6508 CFG_LOWER_BRSSI_THRESH_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006509 hdd_ctx->config->lower_brssi_thresh);
Ashish Kumar Dhanotiyab28338c2017-07-21 20:12:34 +05306510 hdd_debug("Name = [%s] value = [%u]",
6511 CFG_DTIM_1CHRX_ENABLE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006512 hdd_ctx->config->enable_dtim_1chrx);
Ravi Joshi9771d432017-06-26 13:58:12 -07006513 hdd_debug("Name = [%s] value = [%u]",
6514 CFG_RANDOMIZE_NDI_MAC_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006515 hdd_ctx->config->is_ndi_mac_randomized);
Ashish Kumar Dhanotiyacc2e0d32017-08-24 20:13:08 +05306516 hdd_debug("Name = [%s] value = [%u]",
6517 CFG_DOT11P_MODE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006518 hdd_ctx->config->dot11p_mode);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006519}
6520
6521
6522/**
6523 * hdd_update_mac_config() - update MAC address from cfg file
Jeff Johnson723234b2017-09-03 08:49:15 -07006524 * @hdd_ctx: the pointer to hdd context
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006525 *
6526 * It overwrites the MAC address if config file exist.
6527 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306528 * Return: QDF_STATUS_SUCCESS if the MAC address is found from cfg file
6529 * and overwritten, otherwise QDF_STATUS_E_INVAL
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006530 */
Jeff Johnson723234b2017-09-03 08:49:15 -07006531QDF_STATUS hdd_update_mac_config(struct hdd_context *hdd_ctx)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006532{
6533 int status, i = 0;
6534 const struct firmware *fw = NULL;
6535 char *line, *buffer = NULL;
Yuanyuan Liu6043d3c2016-07-25 11:40:38 -07006536 char *temp = NULL;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006537 char *name, *value;
Nachiket Kukadee4d86442017-06-23 16:57:00 +05306538 int max_mac_addr = QDF_MAX_CONCURRENCY_PERSONA;
Anurag Chouhan6d760662016-02-20 16:05:43 +05306539 tCfgIniEntry macTable[QDF_MAX_CONCURRENCY_PERSONA];
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006540 tSirMacAddr customMacAddr;
6541
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306542 QDF_STATUS qdf_status = QDF_STATUS_SUCCESS;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006543
6544 memset(macTable, 0, sizeof(macTable));
Jeff Johnson723234b2017-09-03 08:49:15 -07006545 status = request_firmware(&fw, WLAN_MAC_FILE, hdd_ctx->parent_dev);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006546
6547 if (status) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006548 hdd_err("request_firmware failed %d", status);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306549 qdf_status = QDF_STATUS_E_FAILURE;
6550 return qdf_status;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006551 }
6552 if (!fw || !fw->data || !fw->size) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08006553 hdd_alert("invalid firmware");
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306554 qdf_status = QDF_STATUS_E_INVAL;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006555 goto config_exit;
6556 }
6557
Yuanyuan Liu6043d3c2016-07-25 11:40:38 -07006558 hdd_debug("wlan_mac.bin size %zu", fw->size);
6559
Srinivas Girigowdae6b465b2017-03-30 18:27:25 -07006560 temp = qdf_mem_malloc(fw->size + 1);
Yuanyuan Liu6043d3c2016-07-25 11:40:38 -07006561
6562 if (temp == NULL) {
6563 hdd_err("fail to alloc memory");
6564 qdf_status = QDF_STATUS_E_NOMEM;
6565 goto config_exit;
6566 }
6567 buffer = temp;
6568 qdf_mem_copy(buffer, fw->data, fw->size);
Srinivas Girigowdafb20a952017-04-05 11:38:48 -07006569 buffer[fw->size] = 0x0;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006570
6571 /* data format:
6572 * Intf0MacAddress=00AA00BB00CC
6573 * Intf1MacAddress=00AA00BB00CD
6574 * END
6575 */
6576 while (buffer != NULL) {
6577 line = get_next_line(buffer);
6578 buffer = i_trim(buffer);
6579
6580 if (strlen((char *)buffer) == 0 || *buffer == '#') {
6581 buffer = line;
6582 continue;
6583 }
6584 if (strncmp(buffer, "END", 3) == 0)
6585 break;
6586
6587 name = buffer;
6588 buffer = strnchr(buffer, strlen(buffer), '=');
6589 if (buffer) {
6590 *buffer++ = '\0';
6591 i_trim(name);
6592 if (strlen(name) != 0) {
6593 buffer = i_trim(buffer);
6594 if (strlen(buffer) == 12) {
6595 value = buffer;
6596 macTable[i].name = name;
6597 macTable[i++].value = value;
Anurag Chouhan6d760662016-02-20 16:05:43 +05306598 if (i >= QDF_MAX_CONCURRENCY_PERSONA)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006599 break;
6600 }
6601 }
6602 }
6603 buffer = line;
6604 }
Anurag Chouhan6d760662016-02-20 16:05:43 +05306605 if (i <= QDF_MAX_CONCURRENCY_PERSONA) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006606 hdd_debug("%d Mac addresses provided", i);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006607 } else {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08006608 hdd_err("invalid number of Mac address provided, nMac = %d", i);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306609 qdf_status = QDF_STATUS_E_INVAL;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006610 goto config_exit;
6611 }
6612
Jeff Johnson723234b2017-09-03 08:49:15 -07006613 update_mac_from_string(hdd_ctx, &macTable[0], i);
Nachiket Kukadee4d86442017-06-23 16:57:00 +05306614 hdd_debug("Populating remaining %d Mac addreses",
6615 max_mac_addr - i);
Jeff Johnson723234b2017-09-03 08:49:15 -07006616 hdd_populate_random_mac_addr(hdd_ctx, max_mac_addr - i);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006617
Anurag Chouhan600c3a02016-03-01 10:33:54 +05306618 qdf_mem_copy(&customMacAddr,
Jeff Johnson723234b2017-09-03 08:49:15 -07006619 &hdd_ctx->config->intfMacAddr[0].bytes[0],
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006620 sizeof(tSirMacAddr));
6621 sme_set_custom_mac_addr(customMacAddr);
6622
6623config_exit:
Yuanyuan Liu6043d3c2016-07-25 11:40:38 -07006624 qdf_mem_free(temp);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006625 release_firmware(fw);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306626 return qdf_status;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006627}
6628
6629/**
Manjunathappa Prakash59f861d2016-04-21 10:33:31 -07006630 * hdd_disable_runtime_pm() - Override to disable runtime_pm.
6631 * @cfg_ini: Handle to struct hdd_config
6632 *
6633 * Return: None
6634 */
6635#ifdef FEATURE_RUNTIME_PM
6636static void hdd_disable_runtime_pm(struct hdd_config *cfg_ini)
6637{
6638 cfg_ini->runtime_pm = 0;
6639}
6640#else
6641static void hdd_disable_runtime_pm(struct hdd_config *cfg_ini)
6642{
6643}
6644#endif
6645
6646/**
6647 * hdd_disable_auto_shutdown() - Override to disable auto_shutdown.
6648 * @cfg_ini: Handle to struct hdd_config
6649 *
6650 * Return: None
6651 */
6652#ifdef FEATURE_WLAN_AUTO_SHUTDOWN
6653static void hdd_disable_auto_shutdown(struct hdd_config *cfg_ini)
6654{
6655 cfg_ini->WlanAutoShutdown = 0;
6656}
6657#else
6658static void hdd_disable_auto_shutdown(struct hdd_config *cfg_ini)
6659{
6660}
6661#endif
6662
6663/**
6664 * hdd_override_all_ps() - overrides to disables all the powersave features.
6665 * @hdd_ctx: Pointer to HDD context.
6666 * Overrides below powersave ini configurations.
6667 * gEnableImps=0
6668 * gEnableBmps=0
6669 * gRuntimePM=0
6670 * gWlanAutoShutdown = 0
6671 * gEnableSuspend=0
6672 * gEnablePowerSaveOffload=0
6673 * gEnableWoW=0
6674 *
6675 * Return: None
6676 */
Jeff Johnsonb6909be2017-08-28 12:07:19 -07006677static void hdd_override_all_ps(struct hdd_context *hdd_ctx)
Manjunathappa Prakash59f861d2016-04-21 10:33:31 -07006678{
6679 struct hdd_config *cfg_ini = hdd_ctx->config;
6680
6681 cfg_ini->fIsImpsEnabled = 0;
6682 cfg_ini->is_ps_enabled = 0;
6683 hdd_disable_runtime_pm(cfg_ini);
6684 hdd_disable_auto_shutdown(cfg_ini);
6685 cfg_ini->enablePowersaveOffload = 0;
6686 cfg_ini->wowEnable = 0;
6687}
6688
6689/**
Nirav Shahbd36b062016-07-18 11:12:59 +05306690 * hdd_set_rx_mode_value() - set rx_mode values
6691 * @hdd_ctx: hdd context
6692 *
6693 * Return: none
6694 */
Jeff Johnsonb6909be2017-08-28 12:07:19 -07006695static void hdd_set_rx_mode_value(struct hdd_context *hdd_ctx)
Nirav Shahbd36b062016-07-18 11:12:59 +05306696{
6697 if (hdd_ctx->config->rx_mode & CFG_ENABLE_RX_THREAD &&
6698 hdd_ctx->config->rx_mode & CFG_ENABLE_RPS) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006699 hdd_warn("rx_mode wrong configuration. Make it default");
Nirav Shahbd36b062016-07-18 11:12:59 +05306700 hdd_ctx->config->rx_mode = CFG_RX_MODE_DEFAULT;
6701 }
6702
6703 if (hdd_ctx->config->rx_mode & CFG_ENABLE_RX_THREAD)
6704 hdd_ctx->enableRxThread = true;
6705
6706 if (hdd_ctx->config->rx_mode & CFG_ENABLE_RPS)
6707 hdd_ctx->rps = true;
6708
6709 if (hdd_ctx->config->rx_mode & CFG_ENABLE_NAPI)
6710 hdd_ctx->napi_enable = true;
6711}
6712
6713/**
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006714 * hdd_parse_config_ini() - parse the ini configuration file
Jeff Johnson723234b2017-09-03 08:49:15 -07006715 * @hdd_ctx: the pointer to hdd context
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006716 *
6717 * This function reads the qcom_cfg.ini file and
6718 * parses each 'Name=Value' pair in the ini file
6719 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306720 * Return: QDF_STATUS_SUCCESS if the qcom_cfg.ini is correctly read,
6721 * otherwise QDF_STATUS_E_INVAL
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006722 */
Jeff Johnson723234b2017-09-03 08:49:15 -07006723QDF_STATUS hdd_parse_config_ini(struct hdd_context *hdd_ctx)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006724{
6725 int status, i = 0;
6726 /** Pointer for firmware image data */
6727 const struct firmware *fw = NULL;
6728 char *buffer, *line, *pTemp = NULL;
6729 size_t size;
6730 char *name, *value;
6731 /* cfgIniTable is static to avoid excess stack usage */
6732 static tCfgIniEntry cfgIniTable[MAX_CFG_INI_ITEMS];
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306733 QDF_STATUS qdf_status = QDF_STATUS_SUCCESS;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006734
6735 memset(cfgIniTable, 0, sizeof(cfgIniTable));
6736
Jeff Johnson723234b2017-09-03 08:49:15 -07006737 status = request_firmware(&fw, WLAN_INI_FILE, hdd_ctx->parent_dev);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006738
6739 if (status) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08006740 hdd_alert("request_firmware failed %d", status);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306741 qdf_status = QDF_STATUS_E_FAILURE;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006742 goto config_exit;
6743 }
6744 if (!fw || !fw->data || !fw->size) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08006745 hdd_alert("%s download failed", WLAN_INI_FILE);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306746 qdf_status = QDF_STATUS_E_FAILURE;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006747 goto config_exit;
6748 }
6749
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006750 hdd_debug("qcom_cfg.ini Size %zu", fw->size);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006751
Anurag Chouhan600c3a02016-03-01 10:33:54 +05306752 buffer = (char *)qdf_mem_malloc(fw->size);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006753
6754 if (NULL == buffer) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006755 hdd_err("qdf_mem_malloc failure");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006756 release_firmware(fw);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306757 return QDF_STATUS_E_NOMEM;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006758 }
6759 pTemp = buffer;
6760
Anurag Chouhan600c3a02016-03-01 10:33:54 +05306761 qdf_mem_copy((void *)buffer, (void *)fw->data, fw->size);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006762 size = fw->size;
6763
6764 while (buffer != NULL) {
6765 line = get_next_line(buffer);
6766 buffer = i_trim(buffer);
6767
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006768 hdd_debug("%s: item", buffer);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006769
6770 if (strlen((char *)buffer) == 0 || *buffer == '#') {
6771 buffer = line;
6772 continue;
Jeff Johnson68755312017-02-10 11:46:55 -08006773 }
6774
6775 if (strncmp(buffer, "END", 3) == 0)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006776 break;
Jeff Johnson68755312017-02-10 11:46:55 -08006777
6778 name = buffer;
6779 while (*buffer != '=' && *buffer != '\0')
6780 buffer++;
6781 if (*buffer != '\0') {
6782 *buffer++ = '\0';
6783 i_trim(name);
6784 if (strlen(name) != 0) {
6785 buffer = i_trim(buffer);
6786 if (strlen(buffer) > 0) {
6787 value = buffer;
Rajeev Kumar Sirasanagandlaaec0b082017-06-21 11:59:41 +05306788 while (*buffer != '\0')
Jeff Johnson68755312017-02-10 11:46:55 -08006789 buffer++;
6790 *buffer = '\0';
6791 cfgIniTable[i].name = name;
6792 cfgIniTable[i++].value = value;
6793 if (i >= MAX_CFG_INI_ITEMS) {
6794 hdd_err("Number of items in %s > %d",
6795 WLAN_INI_FILE,
6796 MAX_CFG_INI_ITEMS);
6797 break;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006798 }
6799 }
6800 }
6801 }
6802 buffer = line;
6803 }
6804
6805 /* Loop through the registry table and apply all these configs */
Jeff Johnson723234b2017-09-03 08:49:15 -07006806 qdf_status = hdd_apply_cfg_ini(hdd_ctx, cfgIniTable, i);
6807 hdd_set_rx_mode_value(hdd_ctx);
Manjunathappa Prakash59f861d2016-04-21 10:33:31 -07006808 if (QDF_GLOBAL_MONITOR_MODE == cds_get_conparam())
Jeff Johnson723234b2017-09-03 08:49:15 -07006809 hdd_override_all_ps(hdd_ctx);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006810
6811config_exit:
6812 release_firmware(fw);
Anurag Chouhan600c3a02016-03-01 10:33:54 +05306813 qdf_mem_free(pTemp);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306814 return qdf_status;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006815}
6816
6817/**
6818 * hdd_cfg_xlate_to_csr_phy_mode() - convert PHY mode
6819 * @dot11Mode: the mode to convert
6820 *
6821 * Convert the configuration PHY mode to CSR PHY mode
6822 *
6823 * Return: the CSR phy mode value
6824 */
Srinivas Girigowda2fb677c2017-03-25 15:35:34 -07006825eCsrPhyMode hdd_cfg_xlate_to_csr_phy_mode(enum hdd_dot11_mode dot11Mode)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006826{
Naveen Rawat10b1c152017-01-18 11:16:06 -08006827 if (cds_is_sub_20_mhz_enabled())
6828 return eCSR_DOT11_MODE_abg;
6829
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006830 switch (dot11Mode) {
6831 case (eHDD_DOT11_MODE_abg):
6832 return eCSR_DOT11_MODE_abg;
6833 case (eHDD_DOT11_MODE_11b):
6834 return eCSR_DOT11_MODE_11b;
6835 case (eHDD_DOT11_MODE_11g):
6836 return eCSR_DOT11_MODE_11g;
6837 default:
6838 case (eHDD_DOT11_MODE_11n):
6839 return eCSR_DOT11_MODE_11n;
6840 case (eHDD_DOT11_MODE_11g_ONLY):
6841 return eCSR_DOT11_MODE_11g_ONLY;
6842 case (eHDD_DOT11_MODE_11n_ONLY):
6843 return eCSR_DOT11_MODE_11n_ONLY;
6844 case (eHDD_DOT11_MODE_11b_ONLY):
6845 return eCSR_DOT11_MODE_11b_ONLY;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006846 case (eHDD_DOT11_MODE_11ac_ONLY):
6847 return eCSR_DOT11_MODE_11ac_ONLY;
6848 case (eHDD_DOT11_MODE_11ac):
6849 return eCSR_DOT11_MODE_11ac;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006850 case (eHDD_DOT11_MODE_AUTO):
6851 return eCSR_DOT11_MODE_AUTO;
6852 case (eHDD_DOT11_MODE_11a):
6853 return eCSR_DOT11_MODE_11a;
Krishna Kumaar Natarajan4f1d7722017-03-03 21:12:51 -08006854 case (eHDD_DOT11_MODE_11ax_ONLY):
6855 return eCSR_DOT11_MODE_11ax_ONLY;
6856 case (eHDD_DOT11_MODE_11ax):
6857 return eCSR_DOT11_MODE_11ax;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006858 }
6859
6860}
6861
6862/**
6863 * hdd_set_idle_ps_config() - set idle power save configuration
Jeff Johnson723234b2017-09-03 08:49:15 -07006864 * @hdd_ctx: the pointer to hdd context
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006865 * @val: the value to configure
6866 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306867 * Return: QDF_STATUS_SUCCESS if command set correctly,
6868 * otherwise the QDF_STATUS return from SME layer
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006869 */
Jeff Johnson723234b2017-09-03 08:49:15 -07006870QDF_STATUS hdd_set_idle_ps_config(struct hdd_context *hdd_ctx, uint32_t val)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006871{
Jeff Johnson4f519342017-09-13 14:27:17 -07006872 QDF_STATUS status;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006873
Jeff Johnson4f519342017-09-13 14:27:17 -07006874 hdd_debug("Enter Val %d", val);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006875
Jeff Johnson4f519342017-09-13 14:27:17 -07006876 status = sme_set_idle_powersave_config(hdd_ctx->hHal, val);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306877 if (QDF_STATUS_SUCCESS != status)
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08006878 hdd_err("Fail to Set Idle PS Config val %d", val);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006879 return status;
6880}
6881
6882/**
6883 * hdd_set_fine_time_meas_cap() - set fine timing measurement capability
6884 * @hdd_ctx: HDD context
6885 * @sme_config: pointer to SME config
6886 *
6887 * This function is used to pass fine timing measurement capability coming
6888 * from INI to SME. This function make sure that configure INI is supported
6889 * by the device. Use bit mask to mask out the unsupported capabilities.
6890 *
6891 * Return: None
6892 */
Jeff Johnsonb6909be2017-08-28 12:07:19 -07006893static void hdd_set_fine_time_meas_cap(struct hdd_context *hdd_ctx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006894 tSmeConfigParams *sme_config)
6895{
6896 struct hdd_config *config = hdd_ctx->config;
6897 uint32_t capability = config->fine_time_meas_cap;
6898
6899 /* Make sure only supported capabilities are enabled in INI */
6900 capability &= CFG_FINE_TIME_MEAS_CAPABILITY_MAX;
Krunal Soni1878d3a2016-01-14 13:00:44 -08006901 sme_config->csrConfig.fine_time_meas_cap = capability;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006902
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006903 hdd_debug("fine time meas capability - INI: %04x Enabled: %04x",
Krunal Soni1878d3a2016-01-14 13:00:44 -08006904 config->fine_time_meas_cap,
6905 sme_config->csrConfig.fine_time_meas_cap);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006906}
6907
6908/**
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006909 * hdd_convert_string_to_u8_array() - used to convert string into u8 array
6910 * @str: String to be converted
6911 * @hex_array: Array where converted value is stored
6912 * @len: Length of the populated array
6913 * @array_max_len: Maximum length of the array
6914 * @to_hex: true, if conversion required for hex string
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006915 *
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006916 * This API is called to convert string (each byte separated by
6917 * a comma) into an u8 array
6918 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306919 * Return: QDF_STATUS
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006920 */
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006921
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306922static QDF_STATUS hdd_convert_string_to_array(char *str, uint8_t *array,
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006923 uint8_t *len, uint8_t array_max_len, bool to_hex)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006924{
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006925 char *format, *s = str;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006926
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006927 if (str == NULL || array == NULL || len == NULL)
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306928 return QDF_STATUS_E_INVAL;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006929
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006930 format = (to_hex) ? "%02x" : "%d";
6931
6932 *len = 0;
6933 while ((s != NULL) && (*len < array_max_len)) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006934 int val;
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006935 /* Increment length only if sscanf successfully extracted
6936 * one element. Any other return value means error.
Jeff Johnson78d88a82017-01-12 09:50:54 -08006937 * Ignore it.
6938 */
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006939 if (sscanf(s, format, &val) == 1) {
6940 array[*len] = (uint8_t) val;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006941 *len += 1;
6942 }
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006943
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006944 s = strpbrk(s, ",");
6945 if (s)
6946 s++;
6947 }
6948
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306949 return QDF_STATUS_SUCCESS;
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006950}
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006951
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006952/**
6953 * hdd_hex_string_to_u8_array() - used to convert hex string into u8 array
6954 * @str: Hexadecimal string
6955 * @hex_array: Array where converted value is stored
6956 * @len: Length of the populated array
6957 * @array_max_len: Maximum length of the array
6958 *
6959 * This API is called to convert hexadecimal string (each byte separated by
6960 * a comma) into an u8 array
6961 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306962 * Return: QDF_STATUS
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006963 */
Jeff Johnsonf1bf3a62016-10-05 15:48:13 -07006964static QDF_STATUS hdd_hex_string_to_u8_array(char *str, uint8_t *hex_array,
6965 uint8_t *len,
6966 uint8_t array_max_len)
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006967{
6968 return hdd_convert_string_to_array(str, hex_array, len,
6969 array_max_len, true);
6970}
6971
6972/**
6973 * hdd_string_to_u8_array() - used to convert decimal string into u8 array
6974 * @str: Decimal string
6975 * @hex_array: Array where converted value is stored
6976 * @len: Length of the populated array
6977 * @array_max_len: Maximum length of the array
6978 *
6979 * This API is called to convert decimal string (each byte separated by
6980 * a comma) into an u8 array
6981 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306982 * Return: QDF_STATUS
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006983 */
6984
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306985QDF_STATUS hdd_string_to_u8_array(char *str, uint8_t *array,
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08006986 uint8_t *len, uint8_t array_max_len)
6987{
6988 return hdd_convert_string_to_array(str, array, len,
6989 array_max_len, false);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006990}
6991
6992/**
Nirav Shahbd36b062016-07-18 11:12:59 +05306993 * hdd_hex_string_to_u16_array() - convert a hex string to a uint16 array
6994 * @str: input string
6995 * @int_array: pointer to input array of type uint16
6996 * @len: pointer to number of elements which the function adds to the array
6997 * @int_array_max_len: maximum number of elements in input uint16 array
6998 *
6999 * This function is used to convert a space separated hex string to an array of
7000 * uint16_t. For example, an input string str = "a b c d" would be converted to
7001 * a unint16 array, int_array = {0xa, 0xb, 0xc, 0xd}, *len = 4.
7002 * This assumes that input value int_array_max_len >= 4.
7003 *
7004 * Return: QDF_STATUS_SUCCESS - if the conversion is successful
7005 * non zero value - if the conversion is a failure
7006 */
7007QDF_STATUS hdd_hex_string_to_u16_array(char *str,
7008 uint16_t *int_array, uint8_t *len, uint8_t int_array_max_len)
7009{
7010 char *s = str;
7011 uint32_t val = 0;
7012
7013 if (str == NULL || int_array == NULL || len == NULL)
7014 return QDF_STATUS_E_INVAL;
7015
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07007016 hdd_debug("str %p intArray %p intArrayMaxLen %d",
Nirav Shahbd36b062016-07-18 11:12:59 +05307017 s, int_array, int_array_max_len);
7018
7019 *len = 0;
7020
7021 while ((s != NULL) && (*len < int_array_max_len)) {
7022 /*
7023 * Increment length only if sscanf successfully extracted one
7024 * element. Any other return value means error. Ignore it.
7025 */
7026 if (sscanf(s, "%x", &val) == 1) {
7027 int_array[*len] = (uint16_t) val;
7028 hdd_debug("s %p val %x intArray[%d]=0x%x",
7029 s, val, *len, int_array[*len]);
7030 *len += 1;
7031 }
7032 s = strpbrk(s, " ");
7033 if (s)
7034 s++;
7035 }
7036 return QDF_STATUS_SUCCESS;
7037}
7038
Nirav Shahbd36b062016-07-18 11:12:59 +05307039/**
Krunal Soni52198e42016-09-26 13:53:09 -07007040 * hdd_update_ht_cap_in_cfg() - to update HT cap in global CFG
Krunal Sonidf0f8742016-09-26 14:56:31 -07007041 * @hdd_ctx: pointer to hdd context
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007042 *
Krunal Soni52198e42016-09-26 13:53:09 -07007043 * This API will update the HT config in CFG after taking intersection
7044 * of INI and firmware capabilities provided reading CFG
7045 *
7046 * Return: true or false
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007047 */
Jeff Johnsonb6909be2017-08-28 12:07:19 -07007048static bool hdd_update_ht_cap_in_cfg(struct hdd_context *hdd_ctx)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007049{
Krunal Soni5c390162016-09-26 15:07:05 -07007050 uint32_t val32;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007051 uint16_t val16;
Krunal Soni5c390162016-09-26 15:07:05 -07007052 bool status = true;
Krunal Sonidf0f8742016-09-26 14:56:31 -07007053 tSirMacHTCapabilityInfo *ht_cap_info;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007054
Krunal Sonidf0f8742016-09-26 14:56:31 -07007055 if (sme_cfg_get_int(hdd_ctx->hHal, WNI_CFG_HT_CAP_INFO,
Krunal Soni5c390162016-09-26 15:07:05 -07007056 &val32) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307057 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007058 status = false;
Krunal Soni5c390162016-09-26 15:07:05 -07007059 hdd_err("Could not get WNI_CFG_HT_CAP_INFO");
Sandeep Puligilla607f34a2016-05-25 14:37:47 -07007060 }
Krunal Soni5c390162016-09-26 15:07:05 -07007061 val16 = (uint16_t) val32;
Krunal Sonidf0f8742016-09-26 14:56:31 -07007062 ht_cap_info = (tSirMacHTCapabilityInfo *) &val16;
Krunal Sonia2c0e412017-05-04 14:12:41 +05307063 ht_cap_info->advCodingCap &= hdd_ctx->config->enable_rx_ldpc;
Krunal Soni5c390162016-09-26 15:07:05 -07007064 ht_cap_info->rxSTBC = QDF_MIN(ht_cap_info->rxSTBC,
7065 hdd_ctx->config->enableRxSTBC);
7066 ht_cap_info->txSTBC &= hdd_ctx->config->enableTxSTBC;
7067 ht_cap_info->shortGI20MHz &= hdd_ctx->config->ShortGI20MhzEnable;
7068 ht_cap_info->shortGI40MHz &= hdd_ctx->config->ShortGI40MhzEnable;
7069 val32 = val16;
7070 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_HT_CAP_INFO, val32) ==
7071 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007072 status = false;
Krunal Soni5c390162016-09-26 15:07:05 -07007073 hdd_err("Could not set WNI_CFG_HT_CAP_INFO");
Krunal Soni52198e42016-09-26 13:53:09 -07007074 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07007075 return status;
Krunal Soni52198e42016-09-26 13:53:09 -07007076}
7077
7078/**
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007079 * hdd_update_vht_cap_in_cfg() - to update VHT cap in global CFG
Krunal Sonidf0f8742016-09-26 14:56:31 -07007080 * @hdd_ctx: pointer to hdd context
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007081 *
7082 * This API will update the VHT config in CFG after taking intersection
7083 * of INI and firmware capabilities provided reading CFG
7084 *
7085 * Return: true or false
7086 */
Jeff Johnsonb6909be2017-08-28 12:07:19 -07007087static bool hdd_update_vht_cap_in_cfg(struct hdd_context *hdd_ctx)
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007088{
Krunal Sonidf0f8742016-09-26 14:56:31 -07007089 bool status = true;
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007090 uint32_t val;
Krunal Sonidf0f8742016-09-26 14:56:31 -07007091 struct hdd_config *config = hdd_ctx->config;
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007092
Krunal Sonidf0f8742016-09-26 14:56:31 -07007093 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_VHT_ENABLE_TXBF_20MHZ,
7094 config->enableTxBFin20MHz) ==
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007095 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007096 status = false;
7097 hdd_err("Couldn't set value for WNI_CFG_VHT_ENABLE_TXBF_20MHZ");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007098 }
7099 /* Based on cfg.ini, update the Basic MCS set, RX/TX MCS map
7100 * in the cfg.dat. Valid values are 0(MCS0-7), 1(MCS0-8), 2(MCS0-9)
7101 * we update only the least significant 2 bits in the
7102 * corresponding fields.
7103 */
Krunal Sonidf0f8742016-09-26 14:56:31 -07007104 if ((config->dot11Mode == eHDD_DOT11_MODE_AUTO) ||
7105 (config->dot11Mode == eHDD_DOT11_MODE_11ac_ONLY) ||
7106 (config->dot11Mode == eHDD_DOT11_MODE_11ac)) {
Kiran Kumar Lokeree25d3fc2017-07-21 15:37:04 -07007107 /* Currently shortGI40Mhz is used for shortGI80Mhz and 160MHz*/
Krunal Sonidf0f8742016-09-26 14:56:31 -07007108 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_VHT_SHORT_GI_80MHZ,
7109 config->ShortGI40MhzEnable) == QDF_STATUS_E_FAILURE) {
7110 status = false;
7111 hdd_err("Couldn't pass WNI_VHT_SHORT_GI_80MHZ to CFG");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007112 }
Kiran Kumar Lokeree25d3fc2017-07-21 15:37:04 -07007113
7114 if (sme_cfg_set_int(hdd_ctx->hHal,
7115 WNI_CFG_VHT_SHORT_GI_160_AND_80_PLUS_80MHZ,
7116 config->ShortGI40MhzEnable) == QDF_STATUS_E_FAILURE) {
7117 status = false;
7118 hdd_err("Couldn't pass SHORT_GI_160MHZ to CFG");
7119 }
7120
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07007121 /* Hardware is capable of doing
7122 * 128K AMPDU in 11AC mode
7123 */
Krunal Sonidf0f8742016-09-26 14:56:31 -07007124 if (sme_cfg_set_int(hdd_ctx->hHal,
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007125 WNI_CFG_VHT_AMPDU_LEN_EXPONENT,
Krunal Sonidf0f8742016-09-26 14:56:31 -07007126 config->fVhtAmpduLenExponent) ==
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007127 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007128 status = false;
7129 hdd_err("Couldn't pass on WNI_CFG_VHT_AMPDU_LEN_EXPONENT to CFG");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007130 }
7131 /* Change MU Bformee only when TxBF is enabled */
Krunal Sonidf0f8742016-09-26 14:56:31 -07007132 if (config->enableTxBF) {
7133 sme_cfg_get_int(hdd_ctx->hHal,
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007134 WNI_CFG_VHT_MU_BEAMFORMEE_CAP, &val);
7135
Krunal Sonidf0f8742016-09-26 14:56:31 -07007136 if (val != config->enableMuBformee) {
7137 if (sme_cfg_set_int(hdd_ctx->hHal,
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007138 WNI_CFG_VHT_MU_BEAMFORMEE_CAP,
Krunal Sonidf0f8742016-09-26 14:56:31 -07007139 config->enableMuBformee
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007140 ) == QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007141 status = false;
7142 hdd_err("Couldn't pass on WNI_CFG_VHT_MU_BEAMFORMEE_CAP to CFG");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007143 }
7144 }
7145 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07007146 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_VHT_MAX_MPDU_LENGTH,
7147 config->vhtMpduLen) == QDF_STATUS_E_FAILURE) {
7148 status = false;
7149 hdd_err("Couldn't pass on WNI_CFG_VHT_MAX_MPDU_LENGTH to CFG");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007150 }
7151
Krunal Sonidf0f8742016-09-26 14:56:31 -07007152 if (config->enable2x2 && config->enable_su_tx_bformer) {
7153 if (sme_cfg_set_int(hdd_ctx->hHal,
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007154 WNI_CFG_VHT_SU_BEAMFORMER_CAP,
Krunal Sonidf0f8742016-09-26 14:56:31 -07007155 config->enable_su_tx_bformer) ==
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007156 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007157 status = false;
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007158 hdd_err("set SU_BEAMFORMER_CAP to CFG failed");
7159 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07007160 if (sme_cfg_set_int(hdd_ctx->hHal,
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007161 WNI_CFG_VHT_NUM_SOUNDING_DIMENSIONS,
7162 NUM_OF_SOUNDING_DIMENSIONS) ==
7163 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007164 status = false;
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007165 hdd_err("failed to set NUM_OF_SOUNDING_DIM");
7166 }
7167 }
7168 }
7169
Krunal Sonidf0f8742016-09-26 14:56:31 -07007170 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_VHT_RXSTBC,
7171 config->enableRxSTBC) == QDF_STATUS_E_FAILURE) {
7172 status = false;
7173 hdd_err("Couldn't pass on WNI_CFG_VHT_RXSTBC to CFG");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007174 }
7175
Krunal Sonidf0f8742016-09-26 14:56:31 -07007176 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_VHT_TXSTBC,
7177 config->enableTxSTBC) == QDF_STATUS_E_FAILURE) {
7178 status = false;
7179 hdd_err("Couldn't pass on WNI_CFG_VHT_TXSTBC to CFG");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007180 }
7181
jiad4a7a33c2017-08-08 15:32:24 +08007182 /* first get HW RX LDPC capability */
Krunal Soni5c390162016-09-26 15:07:05 -07007183 if (sme_cfg_get_int(hdd_ctx->hHal, WNI_CFG_VHT_LDPC_CODING_CAP, &val) ==
7184 QDF_STATUS_E_FAILURE) {
jiad4a7a33c2017-08-08 15:32:24 +08007185 status = false;
Krunal Soni5c390162016-09-26 15:07:05 -07007186 hdd_err("Could not get WNI_CFG_VHT_LDPC_CODING_CAP");
7187 }
jiad4a7a33c2017-08-08 15:32:24 +08007188
7189 /* enable RX LDPC only when both INI and HW are enabled */
Krunal Sonidf0f8742016-09-26 14:56:31 -07007190 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_VHT_LDPC_CODING_CAP,
jiad4a7a33c2017-08-08 15:32:24 +08007191 config->enable_rx_ldpc && val) ==
7192 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007193 status = false;
7194 hdd_err("Couldn't pass on WNI_CFG_VHT_LDPC_CODING_CAP to CFG");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007195 }
7196
Krunal Sonidf0f8742016-09-26 14:56:31 -07007197 if (sme_cfg_set_int(hdd_ctx->hHal,
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007198 WNI_CFG_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED,
Krunal Sonidf0f8742016-09-26 14:56:31 -07007199 config->txBFCsnValue) ==
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007200 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007201 status = false;
7202 hdd_err("Couldn't pass on WNI_CFG_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED to CFG");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007203 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07007204 return status;
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007205
7206}
7207
7208/**
Krunal Sonidf0f8742016-09-26 14:56:31 -07007209 * hdd_update_config_cfg() - API to update INI setting based on hw/fw caps
7210 * @hdd_ctx: pointer to hdd_ctx
Krunal Soni52198e42016-09-26 13:53:09 -07007211 *
Krunal Sonidf0f8742016-09-26 14:56:31 -07007212 * This API reads the cfg file which is updated with hardware/firmware
7213 * capabilities and intersect it with INI setting provided by user. After
7214 * taking intersection it adjust cfg it self. For example, if user has enabled
7215 * RX LDPC through INI but hardware/firmware doesn't support it then disable
7216 * it in CFG file here.
7217 *
7218 * Return: true or false based on outcome.
Krunal Soni52198e42016-09-26 13:53:09 -07007219 */
Jeff Johnsonb6909be2017-08-28 12:07:19 -07007220bool hdd_update_config_cfg(struct hdd_context *hdd_ctx)
Krunal Soni52198e42016-09-26 13:53:09 -07007221{
Krunal Sonidf0f8742016-09-26 14:56:31 -07007222 bool status = true;
Krunal Soni52198e42016-09-26 13:53:09 -07007223 uint32_t val;
Krunal Sonidf0f8742016-09-26 14:56:31 -07007224 struct hdd_config *config = hdd_ctx->config;
Krunal Soni52198e42016-09-26 13:53:09 -07007225
7226 /*
7227 * During the initialization both 2G and 5G capabilities should be same.
7228 * So read 5G HT capablity and update 2G and 5G capablities.
7229 */
Krunal Sonidf0f8742016-09-26 14:56:31 -07007230 if (!hdd_update_ht_cap_in_cfg(hdd_ctx)) {
7231 status = false;
7232 hdd_err("Couldn't set HT CAP in cfg");
Krunal Soni52198e42016-09-26 13:53:09 -07007233 }
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007234
Krunal Sonidf0f8742016-09-26 14:56:31 -07007235 if (!hdd_update_vht_cap_in_cfg(hdd_ctx)) {
7236 status = false;
7237 hdd_err("Couldn't set VHT CAP in cfg");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007238 }
7239
Krishna Kumaar Natarajan90bb6f12017-03-03 21:05:52 -08007240 if (0 != hdd_update_he_cap_in_cfg(hdd_ctx)) {
7241 status = false;
7242 hdd_err("Couldn't set HE CAP in cfg");
7243 }
7244
Krunal Sonidf0f8742016-09-26 14:56:31 -07007245 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_FIXED_RATE, config->TxRate)
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307246 == QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007247 status = false;
7248 hdd_err("Couldn't pass on WNI_CFG_FIXED_RATE to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007249 }
7250
Krunal Sonidf0f8742016-09-26 14:56:31 -07007251 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_MAX_RX_AMPDU_FACTOR,
7252 config->MaxRxAmpduFactor) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307253 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007254 status = false;
7255 hdd_err("Couldn't pass on WNI_CFG_HT_AMPDU_PARAMS_MAX_RX_AMPDU_FACTOR 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_MPDU_DENSITY,
7259 config->ht_mpdu_density) ==
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_MPDU_DENSITY to CFG");
Krishna Kumaar Natarajan22b59a72015-11-23 18:54:58 -08007263 }
7264
Krunal Sonidf0f8742016-09-26 14:56:31 -07007265 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_SHORT_PREAMBLE,
7266 config->fIsShortPreamble) == QDF_STATUS_E_FAILURE) {
7267 status = false;
7268 hdd_err("Couldn't pass on WNI_CFG_SHORT_PREAMBLE to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007269 }
7270
Krunal Sonidf0f8742016-09-26 14:56:31 -07007271 if (sme_cfg_set_int(hdd_ctx->hHal,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007272 WNI_CFG_PASSIVE_MINIMUM_CHANNEL_TIME,
Krunal Sonidf0f8742016-09-26 14:56:31 -07007273 config->nPassiveMinChnTime)
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_PASSIVE_MINIMUM_CHANNEL_TIME 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,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007280 WNI_CFG_PASSIVE_MAXIMUM_CHANNEL_TIME,
Krunal Sonidf0f8742016-09-26 14:56:31 -07007281 config->nPassiveMaxChnTime)
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307282 == QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007283 status = false;
7284 hdd_err("Couldn't pass on WNI_CFG_PASSIVE_MAXIMUM_CHANNEL_TIME to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007285 }
7286
Krunal Sonidf0f8742016-09-26 14:56:31 -07007287 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_BEACON_INTERVAL,
7288 config->nBeaconInterval) == QDF_STATUS_E_FAILURE) {
7289 status = false;
7290 hdd_err("Couldn't pass on WNI_CFG_BEACON_INTERVAL to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007291 }
7292
Krunal Sonidf0f8742016-09-26 14:56:31 -07007293 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_MAX_PS_POLL,
7294 config->nMaxPsPoll) == QDF_STATUS_E_FAILURE) {
7295 status = false;
7296 hdd_err("Couldn't pass on WNI_CFG_MAX_PS_POLL to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007297 }
7298
Krunal Sonidf0f8742016-09-26 14:56:31 -07007299 if (sme_cfg_set_int (hdd_ctx->hHal, WNI_CFG_LOW_GAIN_OVERRIDE,
7300 config->fIsLowGainOverride) == QDF_STATUS_E_FAILURE) {
7301 status = false;
7302 hdd_err("Couldn't pass on WNI_CFG_LOW_GAIN_OVERRIDE to HAL");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007303 }
7304
Krunal Sonidf0f8742016-09-26 14:56:31 -07007305 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_RSSI_FILTER_PERIOD,
7306 config->nRssiFilterPeriod) == QDF_STATUS_E_FAILURE) {
7307 status = false;
7308 hdd_err("Couldn't pass on WNI_CFG_RSSI_FILTER_PERIOD to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007309 }
7310
Krunal Sonidf0f8742016-09-26 14:56:31 -07007311 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_IGNORE_DTIM,
7312 config->fIgnoreDtim) == QDF_STATUS_E_FAILURE) {
7313 status = false;
7314 hdd_err("Couldn't pass on WNI_IGNORE_DTIM to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007315 }
7316
Krunal Sonidf0f8742016-09-26 14:56:31 -07007317 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_PS_ENABLE_HEART_BEAT,
7318 config->fEnableFwHeartBeatMonitoring)
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307319 == QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007320 status = false;
7321 hdd_err("Couldn't pass on WNI_CFG_PS_HEART_BEAT to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007322 }
7323
Krunal Sonidf0f8742016-09-26 14:56:31 -07007324 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_PS_ENABLE_BCN_FILTER,
7325 config->fEnableFwBeaconFiltering) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307326 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007327 status = false;
7328 hdd_err("Couldn't pass on WNI_CFG_PS_BCN_FILTER to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007329 }
7330
Krunal Sonidf0f8742016-09-26 14:56:31 -07007331 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_PS_ENABLE_RSSI_MONITOR,
7332 config->fEnableFwRssiMonitoring) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307333 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007334 status = false;
7335 hdd_err("Couldn't pass on WNI_CFG_PS_RSSI_MONITOR to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007336 }
7337
Krunal Sonidf0f8742016-09-26 14:56:31 -07007338 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_PS_DATA_INACTIVITY_TIMEOUT,
7339 config->nDataInactivityTimeout) == QDF_STATUS_E_FAILURE) {
7340 status = false;
7341 hdd_err("Couldn't pass on WNI_CFG_PS_DATA_INACTIVITY_TIMEOUT to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007342 }
7343
Mukul Sharmaed92f2f2017-04-20 00:06:28 +05307344 if (sme_cfg_set_int(hdd_ctx->hHal,
7345 WNI_CFG_PS_WOW_DATA_INACTIVITY_TIMEOUT,
7346 config->wow_data_inactivity_timeout) == QDF_STATUS_E_FAILURE) {
7347 status = false;
7348 hdd_err("Fail to pass WNI_CFG_PS_WOW_DATA_INACTIVITY_TO CFG");
7349 }
7350
Krunal Sonidf0f8742016-09-26 14:56:31 -07007351 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_ENABLE_LTE_COEX,
7352 config->enableLTECoex) == QDF_STATUS_E_FAILURE) {
7353 status = false;
7354 hdd_err("Couldn't pass on WNI_CFG_ENABLE_LTE_COEX to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007355 }
7356
Krunal Sonidf0f8742016-09-26 14:56:31 -07007357 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_AP_KEEP_ALIVE_TIMEOUT,
7358 config->apKeepAlivePeriod) == QDF_STATUS_E_FAILURE) {
7359 status = false;
7360 hdd_err("Couldn't pass on WNI_CFG_AP_KEEP_ALIVE_TIMEOUT to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007361 }
7362
Krunal Sonidf0f8742016-09-26 14:56:31 -07007363 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_GO_KEEP_ALIVE_TIMEOUT,
7364 config->goKeepAlivePeriod) == QDF_STATUS_E_FAILURE) {
7365 status = false;
7366 hdd_err("Couldn't pass on WNI_CFG_GO_KEEP_ALIVE_TIMEOUT to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007367 }
7368
Krunal Sonidf0f8742016-09-26 14:56:31 -07007369 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_AP_LINK_MONITOR_TIMEOUT,
7370 config->apLinkMonitorPeriod) == QDF_STATUS_E_FAILURE) {
7371 status = false;
7372 hdd_err("Couldn't pass on WNI_CFG_AP_LINK_MONITOR_TIMEOUT to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007373 }
7374
Krunal Sonidf0f8742016-09-26 14:56:31 -07007375 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_GO_LINK_MONITOR_TIMEOUT,
7376 config->goLinkMonitorPeriod) == QDF_STATUS_E_FAILURE) {
7377 status = false;
7378 hdd_err("Couldn't pass on WNI_CFG_GO_LINK_MONITOR_TIMEOUT to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007379 }
7380
Krunal Sonidf0f8742016-09-26 14:56:31 -07007381 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_SINGLE_TID_RC,
7382 config->bSingleTidRc) == QDF_STATUS_E_FAILURE) {
7383 status = false;
7384 hdd_err("Couldn't pass on WNI_CFG_SINGLE_TID_RC to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007385 }
7386
Krunal Sonidf0f8742016-09-26 14:56:31 -07007387 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TELE_BCN_WAKEUP_EN,
7388 config->teleBcnWakeupEn) == QDF_STATUS_E_FAILURE) {
7389 status = false;
7390 hdd_err("Couldn't pass on WNI_CFG_TELE_BCN_WAKEUP_EN to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007391 }
7392
Krunal Sonidf0f8742016-09-26 14:56:31 -07007393 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TELE_BCN_TRANS_LI,
7394 config->nTeleBcnTransListenInterval) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307395 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007396 status = false;
7397 hdd_err("Couldn't pass on WNI_CFG_TELE_BCN_TRANS_LI to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007398 }
7399
Krunal Sonidf0f8742016-09-26 14:56:31 -07007400 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TELE_BCN_MAX_LI,
7401 config->nTeleBcnMaxListenInterval) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307402 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007403 status = false;
7404 hdd_err("Couldn't pass on WNI_CFG_TELE_BCN_MAX_LI to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007405 }
7406
Krunal Sonidf0f8742016-09-26 14:56:31 -07007407 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TELE_BCN_TRANS_LI_IDLE_BCNS,
7408 config->nTeleBcnTransLiNumIdleBeacons) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307409 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007410 status = false;
7411 hdd_err("Couldn't pass on WNI_CFG_TELE_BCN_TRANS_LI_IDLE_BCNS to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007412 }
7413
Krunal Sonidf0f8742016-09-26 14:56:31 -07007414 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TELE_BCN_MAX_LI_IDLE_BCNS,
7415 config->nTeleBcnMaxLiNumIdleBeacons) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307416 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007417 status = false;
7418 hdd_err("Couldn't pass on WNI_CFG_TELE_BCN_MAX_LI_IDLE_BCNS to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007419 }
7420
Krunal Sonidf0f8742016-09-26 14:56:31 -07007421 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_RF_SETTLING_TIME_CLK,
7422 config->rfSettlingTimeUs) == QDF_STATUS_E_FAILURE) {
7423 status = false;
7424 hdd_err("Couldn't pass on WNI_CFG_RF_SETTLING_TIME_CLK to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007425 }
7426
Krunal Sonidf0f8742016-09-26 14:56:31 -07007427 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_INFRA_STA_KEEP_ALIVE_PERIOD,
7428 config->infraStaKeepAlivePeriod) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307429 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007430 status = false;
7431 hdd_err("Couldn't pass on WNI_CFG_INFRA_STA_KEEP_ALIVE_PERIOD to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007432 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07007433 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_DYNAMIC_PS_POLL_VALUE,
7434 config->dynamicPsPollValue) == QDF_STATUS_E_FAILURE) {
7435 status = false;
7436 hdd_err("Couldn't pass on WNI_CFG_DYNAMIC_PS_POLL_VALUE to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007437 }
7438
Krunal Sonidf0f8742016-09-26 14:56:31 -07007439 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_PS_NULLDATA_AP_RESP_TIMEOUT,
7440 config->nNullDataApRespTimeout) == QDF_STATUS_E_FAILURE) {
7441 status = false;
7442 hdd_err("Couldn't pass on WNI_CFG_PS_NULLDATA_DELAY_TIMEOUT to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007443 }
7444
Krunal Sonidf0f8742016-09-26 14:56:31 -07007445 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_AP_DATA_AVAIL_POLL_PERIOD,
7446 config->apDataAvailPollPeriodInMs) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307447 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007448 status = false;
7449 hdd_err("Couldn't pass on WNI_CFG_AP_DATA_AVAIL_POLL_PERIOD to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007450 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07007451 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_FRAGMENTATION_THRESHOLD,
7452 config->FragmentationThreshold) == QDF_STATUS_E_FAILURE) {
7453 status = false;
7454 hdd_err("Couldn't pass on WNI_CFG_FRAGMENTATION_THRESHOLD to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007455 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07007456 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_RTS_THRESHOLD,
7457 config->RTSThreshold) == QDF_STATUS_E_FAILURE) {
7458 status = false;
7459 hdd_err("Couldn't pass on WNI_CFG_RTS_THRESHOLD to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007460 }
7461
Krunal Sonidf0f8742016-09-26 14:56:31 -07007462 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_11D_ENABLED,
7463 config->Is11dSupportEnabled) == QDF_STATUS_E_FAILURE) {
7464 status = false;
7465 hdd_err("Couldn't pass on WNI_CFG_11D_ENABLED to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007466 }
7467
Krunal Sonidf0f8742016-09-26 14:56:31 -07007468 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_DFS_MASTER_ENABLED,
7469 config->enableDFSMasterCap) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307470 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007471 status = false;
7472 hdd_err("Failure: Couldn't set value for WNI_CFG_DFS_MASTER_ENABLED");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007473 }
7474
Krunal Sonidf0f8742016-09-26 14:56:31 -07007475 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_HEART_BEAT_THRESHOLD,
7476 config->HeartbeatThresh24) == QDF_STATUS_E_FAILURE) {
7477 status = false;
7478 hdd_err("Couldn't pass on WNI_CFG_HEART_BEAT_THRESHOLD to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007479 }
7480
Krunal Sonidf0f8742016-09-26 14:56:31 -07007481 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_ENABLE_MC_ADDR_LIST,
7482 config->fEnableMCAddrList) == QDF_STATUS_E_FAILURE) {
7483 status = false;
7484 hdd_err("Couldn't pass on WNI_CFG_ENABLE_MC_ADDR_LIST to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007485 }
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007486
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007487#ifdef WLAN_SOFTAP_VSTA_FEATURE
Krunal Sonidf0f8742016-09-26 14:56:31 -07007488 if (config->fEnableVSTASupport) {
7489 sme_cfg_get_int(hdd_ctx->hHal, WNI_CFG_ASSOC_STA_LIMIT, &val);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007490 if (val <= WNI_CFG_ASSOC_STA_LIMIT_STADEF)
7491 val = WNI_CFG_ASSOC_STA_LIMIT_STAMAX;
7492 } else {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007493 val = config->maxNumberOfPeers;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007494
7495 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07007496 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_ASSOC_STA_LIMIT, val) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307497 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007498 status = false;
7499 hdd_err("Couldn't pass on WNI_CFG_ASSOC_STA_LIMIT to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007500 }
7501#endif
Krunal Sonidf0f8742016-09-26 14:56:31 -07007502 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_ENABLE_LPWR_IMG_TRANSITION,
7503 config->enableLpwrImgTransition)
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307504 == QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007505 status = false;
7506 hdd_err("Couldn't pass on WNI_CFG_ENABLE_LPWR_IMG_TRANSITION to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007507 }
7508
Krunal Sonidf0f8742016-09-26 14:56:31 -07007509 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_ENABLE_MCC_ADAPTIVE_SCHED,
7510 config->enableMCCAdaptiveScheduler) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307511 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007512 status = false;
7513 hdd_err("Couldn't pass on WNI_CFG_ENABLE_MCC_ADAPTIVE_SCHED to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007514 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07007515 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_DISABLE_LDPC_WITH_TXBF_AP,
7516 config->disableLDPCWithTxbfAP) == QDF_STATUS_E_FAILURE) {
7517 status = false;
7518 hdd_err("Couldn't pass on WNI_CFG_DISABLE_LDPC_WITH_TXBF_AP to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007519 }
7520
Krunal Sonidf0f8742016-09-26 14:56:31 -07007521 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_DYNAMIC_THRESHOLD_ZERO,
7522 config->retryLimitZero) == QDF_STATUS_E_FAILURE) {
7523 status = false;
7524 hdd_err("Couldn't pass on WNI_CFG_DYNAMIC_THRESHOLD_ZERO to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007525 }
7526
Krunal Sonidf0f8742016-09-26 14:56:31 -07007527 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_DYNAMIC_THRESHOLD_ONE,
7528 config->retryLimitOne) == QDF_STATUS_E_FAILURE) {
7529 status = false;
7530 hdd_err("Couldn't pass on WNI_CFG_DYNAMIC_THRESHOLD_ONE to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007531 }
7532
Krunal Sonidf0f8742016-09-26 14:56:31 -07007533 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_DYNAMIC_THRESHOLD_TWO,
7534 config->retryLimitTwo) == QDF_STATUS_E_FAILURE) {
7535 status = false;
7536 hdd_err("Couldn't pass on WNI_CFG_DYNAMIC_THRESHOLD_TWO to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007537 }
7538
Krunal Sonidf0f8742016-09-26 14:56:31 -07007539 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_MAX_MEDIUM_TIME,
7540 config->cfgMaxMediumTime) == QDF_STATUS_E_FAILURE) {
7541 status = false;
7542 hdd_err("Couldn't pass on WNI_CFG_MAX_MEDIUM_TIME to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007543 }
7544#ifdef FEATURE_WLAN_TDLS
7545
Krunal Sonidf0f8742016-09-26 14:56:31 -07007546 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TDLS_QOS_WMM_UAPSD_MASK,
7547 config->fTDLSUapsdMask) == QDF_STATUS_E_FAILURE) {
7548 status = false;
7549 hdd_err("Couldn't pass on WNI_CFG_TDLS_QOS_WMM_UAPSD_MASK to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007550 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07007551 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TDLS_BUF_STA_ENABLED,
7552 config->fEnableTDLSBufferSta) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307553 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007554 status = false;
7555 hdd_err("Couldn't pass on WNI_CFG_TDLS_BUF_STA_ENABLED to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007556 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07007557 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TDLS_PUAPSD_INACT_TIME,
7558 config->fTDLSPuapsdInactivityTimer) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307559 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007560 status = false;
7561 hdd_err("Couldn't pass on WNI_CFG_TDLS_PUAPSD_INACT_TIME to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007562 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07007563 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TDLS_RX_FRAME_THRESHOLD,
7564 config->fTDLSRxFrameThreshold) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307565 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007566 status = false;
7567 hdd_err("Couldn't pass on WNI_CFG_TDLS_RX_FRAME_THRESHOLD to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007568 }
7569
Krunal Sonidf0f8742016-09-26 14:56:31 -07007570 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TDLS_OFF_CHANNEL_ENABLED,
7571 config->fEnableTDLSOffChannel) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307572 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007573 status = false;
7574 hdd_err("Couldn't pass on WNI_CFG_TDLS_BUF_STA_ENABLED to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007575 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07007576 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TDLS_WMM_MODE_ENABLED,
7577 config->fEnableTDLSWmmMode) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307578 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007579 status = false;
7580 hdd_err("Couldn't pass on WNI_CFG_TDLS_WMM_MODE_ENABLED to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007581 }
7582#endif
7583
Krunal Sonidf0f8742016-09-26 14:56:31 -07007584 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_ENABLE_ADAPT_RX_DRAIN,
7585 config->fEnableAdaptRxDrain) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307586 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007587 status = false;
7588 hdd_err("Couldn't pass on WNI_CFG_ENABLE_ADAPT_RX_DRAIN to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007589 }
7590
Krunal Sonidf0f8742016-09-26 14:56:31 -07007591 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_ANTENNA_DIVESITY,
7592 config->antennaDiversity) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307593 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007594 status = false;
7595 hdd_err("Couldn't pass on WNI_CFG_ANTENNA_DIVESITY to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007596 }
7597
Krunal Sonidf0f8742016-09-26 14:56:31 -07007598 if (sme_cfg_set_int(hdd_ctx->hHal,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007599 WNI_CFG_DEFAULT_RATE_INDEX_24GHZ,
Krunal Sonidf0f8742016-09-26 14:56:31 -07007600 config->defaultRateIndex24Ghz) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307601 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007602 status = false;
7603 hdd_err("Couldn't pass on WNI_CFG_DEFAULT_RATE_INDEX_24GHZ to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007604 }
7605
Krunal Sonidf0f8742016-09-26 14:56:31 -07007606 if (sme_cfg_set_int(hdd_ctx->hHal,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007607 WNI_CFG_DEBUG_P2P_REMAIN_ON_CHANNEL,
Krunal Sonidf0f8742016-09-26 14:56:31 -07007608 config->debugP2pRemainOnChannel) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307609 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007610 status = false;
7611 hdd_err("Couldn't pass on WNI_CFG_DEBUG_P2P_REMAIN_ON_CHANNEL to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007612 }
7613#ifdef WLAN_FEATURE_11W
Krunal Sonidf0f8742016-09-26 14:56:31 -07007614 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_PMF_SA_QUERY_MAX_RETRIES,
7615 config->pmfSaQueryMaxRetries) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307616 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007617 status = false;
7618 hdd_err("Couldn't pass on WNI_CFG_SA_QUERY_MAX_RETRIES to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007619 }
7620
Krunal Sonidf0f8742016-09-26 14:56:31 -07007621 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_PMF_SA_QUERY_RETRY_INTERVAL,
7622 config->pmfSaQueryRetryInterval) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307623 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007624 status = false;
7625 hdd_err("Couldn't pass on WNI_CFG_SA_QUERY_RETRY_INTERVAL to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007626 }
7627#endif
7628
Krunal Sonidf0f8742016-09-26 14:56:31 -07007629 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_IBSS_ATIM_WIN_SIZE,
7630 config->ibssATIMWinSize) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307631 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007632 status = false;
7633 hdd_err("Couldn't pass on WNI_CFG_IBSS_ATIM_WIN_SIZE to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007634 }
Krunal Soni53993f72016-07-08 18:20:03 -07007635
Krunal Sonidf0f8742016-09-26 14:56:31 -07007636 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TGT_GTX_USR_CFG,
7637 config->tgt_gtx_usr_cfg) == QDF_STATUS_E_FAILURE) {
7638 status = false;
7639 hdd_err("Couldn't pass on WNI_CFG_TGT_GTX_USR_CFG to CCM");
Rajeev Kumar Sirasanagandlaaf474742016-09-06 17:54:50 +05307640 }
Hong Shi417824f2017-01-12 02:31:14 +08007641
7642 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_MAX_HT_MCS_TX_DATA,
7643 config->max_ht_mcs_txdata) ==
7644 QDF_STATUS_E_FAILURE) {
7645 status = false;
7646 hdd_err("Couldn't pass on WNI_CFG_MAX_HT_MCS_TX_DATA to CCM");
7647 }
Hong Shia9ef8712017-02-19 21:54:02 +08007648
7649 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_DISABLE_ABG_RATE_FOR_TX_DATA,
7650 config->disable_abg_rate_txdata) ==
7651 QDF_STATUS_E_FAILURE) {
7652 status = false;
7653 hdd_err("Couldn't pass on WNI_CFG_DISABLE_ABG_RATE_FOR_TX_DATA to CCM");
7654 }
7655
Hong Shib90718f2017-02-20 00:57:22 +08007656 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_RATE_FOR_TX_MGMT,
7657 config->rate_for_tx_mgmt) ==
7658 QDF_STATUS_E_FAILURE) {
7659 status = false;
7660 hdd_err("Couldn't pass on WNI_CFG_RATE_FOR_TX_MGMT to CCM");
7661 }
7662
lifeng13a89d72017-05-10 14:49:29 +08007663 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_SAP_MAX_MCS_DATA,
7664 config->sap_max_mcs_txdata) ==
7665 QDF_STATUS_E_FAILURE) {
7666 status = false;
7667 hdd_err("Could not pass on WNI_CFG_SAP_MAX_MCS_DATA to CCM");
7668 }
7669
Hong Shi2d384fd2017-05-22 18:38:41 +08007670 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_RATE_FOR_TX_MGMT_2G,
7671 config->rate_for_tx_mgmt_2g) ==
7672 QDF_STATUS_E_FAILURE) {
7673 status = false;
7674 hdd_err("Couldn't pass on WNI_CFG_RATE_FOR_TX_MGMT_2G to CCM");
7675 }
7676
7677 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_RATE_FOR_TX_MGMT_5G,
7678 config->rate_for_tx_mgmt_5g) ==
7679 QDF_STATUS_E_FAILURE) {
7680 status = false;
7681 hdd_err("Couldn't pass on WNI_CFG_RATE_FOR_TX_MGMT_5G to CCM");
7682 }
7683
Krunal Sonidf0f8742016-09-26 14:56:31 -07007684 return status;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007685}
Krishna Kumaar Natarajan90bb6f12017-03-03 21:05:52 -08007686
Kapil Gupta5cda2252016-12-29 18:44:26 +05307687/**
7688 * hdd_update_per_config_to_sme() -initializes the sme config for PER roam
7689 *
7690 * @hdd_ctx: the pointer to hdd context
7691 * @sme_config: sme configuation pointer
7692 *
7693 * Return: None
7694 */
Jeff Johnsonb6909be2017-08-28 12:07:19 -07007695static void hdd_update_per_config_to_sme(struct hdd_context *hdd_ctx,
Kapil Gupta5cda2252016-12-29 18:44:26 +05307696 tSmeConfigParams *sme_config)
7697{
7698 sme_config->csrConfig.per_roam_config.enable =
7699 hdd_ctx->config->is_per_roam_enabled;
7700
7701 /* Assigning Tx and Rx for same value */
7702 sme_config->csrConfig.per_roam_config.tx_high_rate_thresh =
7703 hdd_ctx->config->per_roam_high_rate_threshold;
7704 sme_config->csrConfig.per_roam_config.rx_high_rate_thresh =
7705 hdd_ctx->config->per_roam_high_rate_threshold;
7706
7707 /* Assigning Tx and Rx for same value */
7708 sme_config->csrConfig.per_roam_config.tx_low_rate_thresh =
7709 hdd_ctx->config->per_roam_low_rate_threshold;
7710 sme_config->csrConfig.per_roam_config.rx_low_rate_thresh =
7711 hdd_ctx->config->per_roam_low_rate_threshold;
7712
7713 /* Assigning Tx and Rx for same value */
7714 sme_config->csrConfig.per_roam_config.tx_rate_thresh_percnt =
7715 hdd_ctx->config->per_roam_th_percent;
7716 sme_config->csrConfig.per_roam_config.rx_rate_thresh_percnt =
7717 hdd_ctx->config->per_roam_th_percent;
7718
7719 sme_config->csrConfig.per_roam_config.per_rest_time =
7720 hdd_ctx->config->per_roam_rest_time;
Kapil Gupta957827b2017-02-13 15:47:04 +05307721 sme_config->csrConfig.per_roam_config.tx_per_mon_time =
7722 hdd_ctx->config->per_roam_mon_time;
7723 sme_config->csrConfig.per_roam_config.rx_per_mon_time =
7724 hdd_ctx->config->per_roam_mon_time;
Selvaraj, Sridhar0641fab2017-05-17 16:02:00 +05307725
7726 /* Assigning minimum roamable AP RSSI for candidate selection */
7727 sme_config->csrConfig.per_roam_config.min_candidate_rssi =
7728 hdd_ctx->config->min_candidate_rssi;
Kapil Gupta5cda2252016-12-29 18:44:26 +05307729}
7730
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007731/**
Tushnim Bhattacharyyaba8ee932017-03-23 09:27:40 -07007732 * hdd_set_policy_mgr_user_cfg() -initializes the policy manager
7733 * configuration parameters
7734 *
Jeff Johnson723234b2017-09-03 08:49:15 -07007735 * @hdd_ctx: the pointer to hdd context
Tushnim Bhattacharyyaba8ee932017-03-23 09:27:40 -07007736 *
7737 * Return: QDF_STATUS_SUCCESS if configuration is correctly applied,
7738 * otherwise the appropriate QDF_STATUS would be returned
7739 */
Jeff Johnsonb6909be2017-08-28 12:07:19 -07007740QDF_STATUS hdd_set_policy_mgr_user_cfg(struct hdd_context *hdd_ctx)
Tushnim Bhattacharyyaba8ee932017-03-23 09:27:40 -07007741{
7742 QDF_STATUS status;
7743 struct policy_mgr_user_cfg *user_cfg;
7744
7745 user_cfg = qdf_mem_malloc(sizeof(*user_cfg));
7746 if (NULL == user_cfg) {
7747 hdd_err("unable to allocate user_cfg");
7748 return QDF_STATUS_E_NOMEM;
7749 }
7750
7751 user_cfg->conc_system_pref = hdd_ctx->config->conc_system_pref;
7752 user_cfg->enable_mcc_adaptive_scheduler =
7753 hdd_ctx->config->enableMCCAdaptiveScheduler;
7754 user_cfg->max_concurrent_active_sessions =
7755 hdd_ctx->config->gMaxConcurrentActiveSessions;
Tushnim Bhattacharyya7e546692017-03-23 18:30:29 -07007756 user_cfg->enable2x2 = hdd_ctx->config->enable2x2;
Tushnim Bhattacharyya5cc9edc2017-04-26 12:33:59 -07007757 user_cfg->mcc_to_scc_switch_mode =
7758 hdd_ctx->config->WlanMccToSccSwitchMode;
7759 user_cfg->sub_20_mhz_enabled = cds_is_sub_20_mhz_enabled();
Tushnim Bhattacharyyaba8ee932017-03-23 09:27:40 -07007760 status = policy_mgr_set_user_cfg(hdd_ctx->hdd_psoc, user_cfg);
7761
7762 qdf_mem_free(user_cfg);
7763
7764 return status;
7765}
7766/**
Srinivas Girigowda3ea486d2017-06-28 17:19:49 -07007767 * hdd_to_csr_wmm_mode() - Utility function to convert HDD to CSR WMM mode
7768 *
7769 * @enum hdd_wmm_user_mode - hdd WMM user mode
7770 *
7771 * Return: CSR WMM mode
7772 */
7773static eCsrRoamWmmUserModeType
7774hdd_to_csr_wmm_mode(enum hdd_wmm_user_mode mode)
7775{
7776 switch (mode) {
7777 case HDD_WMM_USER_MODE_QBSS_ONLY:
7778 return eCsrRoamWmmQbssOnly;
7779 case HDD_WMM_USER_MODE_NO_QOS:
7780 return eCsrRoamWmmNoQos;
7781 case HDD_WMM_USER_MODE_AUTO:
7782 default:
7783 return eCsrRoamWmmAuto;
7784 }
7785}
7786
7787/**
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007788 * hdd_set_sme_config() -initializes the sme configuration parameters
7789 *
Jeff Johnson723234b2017-09-03 08:49:15 -07007790 * @hdd_ctx: the pointer to hdd context
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007791 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307792 * Return: QDF_STATUS_SUCCESS if configuration is correctly applied,
7793 * otherwise the appropriate QDF_STATUS would be returned
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007794 */
Jeff Johnson723234b2017-09-03 08:49:15 -07007795QDF_STATUS hdd_set_sme_config(struct hdd_context *hdd_ctx)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007796{
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307797 QDF_STATUS status = QDF_STATUS_SUCCESS;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007798 tSmeConfigParams *smeConfig;
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08007799 uint8_t rrm_capab_len;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007800
Jeff Johnson723234b2017-09-03 08:49:15 -07007801 struct hdd_config *pConfig = hdd_ctx->config;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007802
Anurag Chouhan600c3a02016-03-01 10:33:54 +05307803 smeConfig = qdf_mem_malloc(sizeof(*smeConfig));
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007804 if (NULL == smeConfig) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08007805 hdd_err("unable to allocate smeConfig");
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307806 return QDF_STATUS_E_NOMEM;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007807 }
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007808
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07007809 hdd_debug("%s bWmmIsEnabled=%d 802_11e_enabled=%d dot11Mode=%d",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007810 __func__, pConfig->WmmMode, pConfig->b80211eIsEnabled,
7811 pConfig->dot11Mode);
7812
7813 /* Config params obtained from the registry
7814 * To Do: set regulatory information here
7815 */
7816
7817 smeConfig->csrConfig.RTSThreshold = pConfig->RTSThreshold;
7818 smeConfig->csrConfig.FragmentationThreshold =
7819 pConfig->FragmentationThreshold;
7820 smeConfig->csrConfig.shortSlotTime = pConfig->ShortSlotTimeEnabled;
7821 smeConfig->csrConfig.Is11dSupportEnabled = pConfig->Is11dSupportEnabled;
7822 smeConfig->csrConfig.HeartbeatThresh24 = pConfig->HeartbeatThresh24;
7823
7824 smeConfig->csrConfig.phyMode =
7825 hdd_cfg_xlate_to_csr_phy_mode(pConfig->dot11Mode);
7826
7827 if (pConfig->dot11Mode == eHDD_DOT11_MODE_abg ||
7828 pConfig->dot11Mode == eHDD_DOT11_MODE_11b ||
7829 pConfig->dot11Mode == eHDD_DOT11_MODE_11g ||
7830 pConfig->dot11Mode == eHDD_DOT11_MODE_11b_ONLY ||
7831 pConfig->dot11Mode == eHDD_DOT11_MODE_11g_ONLY) {
7832 smeConfig->csrConfig.channelBondingMode24GHz = 0;
7833 smeConfig->csrConfig.channelBondingMode5GHz = 0;
7834 } else {
7835 smeConfig->csrConfig.channelBondingMode24GHz =
7836 pConfig->nChannelBondingMode24GHz;
7837 smeConfig->csrConfig.channelBondingMode5GHz =
7838 pConfig->nChannelBondingMode5GHz;
7839 }
7840 smeConfig->csrConfig.TxRate = pConfig->TxRate;
7841 smeConfig->csrConfig.nScanResultAgeCount = pConfig->ScanResultAgeCount;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007842 smeConfig->csrConfig.AdHocChannel24 = pConfig->OperatingChannel;
7843 smeConfig->csrConfig.fSupplicantCountryCodeHasPriority =
7844 pConfig->fSupplicantCountryCodeHasPriority;
7845 smeConfig->csrConfig.bCatRssiOffset = pConfig->nRssiCatGap;
7846 smeConfig->csrConfig.vccRssiThreshold = pConfig->nVccRssiTrigger;
7847 smeConfig->csrConfig.vccUlMacLossThreshold =
7848 pConfig->nVccUlMacLossThreshold;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007849 smeConfig->csrConfig.nInitialDwellTime = pConfig->nInitialDwellTime;
7850 smeConfig->csrConfig.initial_scan_no_dfs_chnl =
7851 pConfig->initial_scan_no_dfs_chnl;
7852 smeConfig->csrConfig.nActiveMaxChnTime = pConfig->nActiveMaxChnTime;
7853 smeConfig->csrConfig.nActiveMinChnTime = pConfig->nActiveMinChnTime;
7854 smeConfig->csrConfig.nPassiveMaxChnTime = pConfig->nPassiveMaxChnTime;
7855 smeConfig->csrConfig.nPassiveMinChnTime = pConfig->nPassiveMinChnTime;
7856#ifdef WLAN_AP_STA_CONCURRENCY
7857 smeConfig->csrConfig.nActiveMaxChnTimeConc =
7858 pConfig->nActiveMaxChnTimeConc;
7859 smeConfig->csrConfig.nActiveMinChnTimeConc =
7860 pConfig->nActiveMinChnTimeConc;
7861 smeConfig->csrConfig.nPassiveMaxChnTimeConc =
7862 pConfig->nPassiveMaxChnTimeConc;
7863 smeConfig->csrConfig.nPassiveMinChnTimeConc =
7864 pConfig->nPassiveMinChnTimeConc;
7865 smeConfig->csrConfig.nRestTimeConc = pConfig->nRestTimeConc;
Agrawal Ashish17bb3902016-05-05 13:29:40 +05307866 smeConfig->csrConfig.min_rest_time_conc = pConfig->min_rest_time_conc;
7867 smeConfig->csrConfig.idle_time_conc = pConfig->idle_time_conc;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007868
7869#endif
7870 smeConfig->csrConfig.Is11eSupportEnabled = pConfig->b80211eIsEnabled;
Srinivas Girigowda3ea486d2017-06-28 17:19:49 -07007871 smeConfig->csrConfig.WMMSupportMode =
7872 hdd_to_csr_wmm_mode(pConfig->WmmMode);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007873
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08007874 smeConfig->rrmConfig.rrm_enabled = pConfig->fRrmEnable;
7875 smeConfig->rrmConfig.max_randn_interval = pConfig->nRrmRandnIntvl;
7876 hdd_hex_string_to_u8_array(pConfig->rm_capability,
7877 smeConfig->rrmConfig.rm_capability, &rrm_capab_len,
7878 DOT11F_IE_RRMENABLEDCAP_MAX_LEN);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007879 /* Remaining config params not obtained from registry
7880 * On RF EVB beacon using channel 1.
7881 */
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007882 smeConfig->csrConfig.nVhtChannelWidth = pConfig->vhtChannelWidth;
7883 smeConfig->csrConfig.enableTxBF = pConfig->enableTxBF;
Kiran Kumar Lokere5302ab62015-12-16 16:03:16 -08007884 smeConfig->csrConfig.enable_txbf_sap_mode =
7885 pConfig->enable_txbf_sap_mode;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007886 smeConfig->csrConfig.enable2x2 = pConfig->enable2x2;
7887 smeConfig->csrConfig.enableVhtFor24GHz = pConfig->enableVhtFor24GHzBand;
Kapil Gupta4b2efbb2016-10-03 13:07:20 +05307888 smeConfig->csrConfig.vendor_vht_sap =
7889 pConfig->enable_sap_vendor_vht;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007890 smeConfig->csrConfig.enableMuBformee = pConfig->enableMuBformee;
7891 smeConfig->csrConfig.enableVhtpAid = pConfig->enableVhtpAid;
7892 smeConfig->csrConfig.enableVhtGid = pConfig->enableVhtGid;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007893 smeConfig->csrConfig.enableAmpduPs = pConfig->enableAmpduPs;
7894 smeConfig->csrConfig.enableHtSmps = pConfig->enableHtSmps;
7895 smeConfig->csrConfig.htSmps = pConfig->htSmps;
Archana Ramachandranfec24812016-02-16 16:31:56 -08007896 /* This param cannot be configured from INI */
7897 smeConfig->csrConfig.send_smps_action = true;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007898 smeConfig->csrConfig.AdHocChannel5G = pConfig->AdHocChannel5G;
7899 smeConfig->csrConfig.AdHocChannel24 = pConfig->AdHocChannel24G;
7900 smeConfig->csrConfig.ProprietaryRatesEnabled = 0;
7901 smeConfig->csrConfig.HeartbeatThresh50 = 40;
7902 smeConfig->csrConfig.bandCapability = pConfig->nBandCapability;
7903 if (pConfig->nBandCapability == eCSR_BAND_24) {
7904 smeConfig->csrConfig.Is11hSupportEnabled = 0;
7905 } else {
7906 smeConfig->csrConfig.Is11hSupportEnabled =
7907 pConfig->Is11hSupportEnabled;
7908 }
7909 smeConfig->csrConfig.cbChoice = 0;
7910 smeConfig->csrConfig.eBand = pConfig->nBandCapability;
7911 smeConfig->csrConfig.nTxPowerCap = pConfig->nTxPowerCap;
Padma, Santhosh Kumar29df3622016-08-16 19:15:16 +05307912 smeConfig->csrConfig.allow_tpc_from_ap = pConfig->allow_tpc_from_ap;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007913 smeConfig->csrConfig.fEnableBypass11d = pConfig->enableBypass11d;
7914 smeConfig->csrConfig.fEnableDFSChnlScan = pConfig->enableDFSChnlScan;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007915 smeConfig->csrConfig.nRoamPrefer5GHz = pConfig->nRoamPrefer5GHz;
7916 smeConfig->csrConfig.nRoamIntraBand = pConfig->nRoamIntraBand;
7917 smeConfig->csrConfig.nProbes = pConfig->nProbes;
7918
7919 smeConfig->csrConfig.nRoamScanHomeAwayTime =
7920 pConfig->nRoamScanHomeAwayTime;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007921 smeConfig->csrConfig.fFirstScanOnly2GChnl =
7922 pConfig->enableFirstScan2GOnly;
7923
Peng Xuf5d60c82015-10-02 17:17:03 -07007924 smeConfig->csrConfig.Csr11dinfo.Channels.numChannels = 0;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007925
Jeff Johnson723234b2017-09-03 08:49:15 -07007926 hdd_set_power_save_offload_config(hdd_ctx);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007927
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007928 smeConfig->csrConfig.csr11rConfig.IsFTResourceReqSupported =
7929 pConfig->fFTResourceReqSupported;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007930 smeConfig->csrConfig.isFastRoamIniFeatureEnabled =
7931 pConfig->isFastRoamIniFeatureEnabled;
Varun Reddy Yeturu061d4d62017-07-20 09:39:32 -07007932 smeConfig->csrConfig.csr_mawc_config.mawc_enabled =
7933 pConfig->MAWCEnabled;
7934 smeConfig->csrConfig.csr_mawc_config.mawc_roam_enabled =
7935 pConfig->mawc_roam_enabled;
7936 smeConfig->csrConfig.csr_mawc_config.mawc_roam_traffic_threshold =
7937 pConfig->mawc_roam_traffic_threshold;
7938 smeConfig->csrConfig.csr_mawc_config.mawc_roam_ap_rssi_threshold =
7939 pConfig->mawc_roam_ap_rssi_threshold;
7940 smeConfig->csrConfig.csr_mawc_config.mawc_roam_rssi_high_adjust =
7941 pConfig->mawc_roam_rssi_high_adjust;
7942 smeConfig->csrConfig.csr_mawc_config.mawc_roam_rssi_low_adjust =
7943 pConfig->mawc_roam_rssi_low_adjust;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007944#ifdef FEATURE_WLAN_ESE
7945 smeConfig->csrConfig.isEseIniFeatureEnabled =
7946 pConfig->isEseIniFeatureEnabled;
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07007947 if (pConfig->isEseIniFeatureEnabled)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007948 pConfig->isFastTransitionEnabled = true;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007949#endif
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007950 smeConfig->csrConfig.isFastTransitionEnabled =
7951 pConfig->isFastTransitionEnabled;
7952 smeConfig->csrConfig.RoamRssiDiff = pConfig->RoamRssiDiff;
7953 smeConfig->csrConfig.isWESModeEnabled = pConfig->isWESModeEnabled;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007954 smeConfig->csrConfig.isRoamOffloadScanEnabled =
7955 pConfig->isRoamOffloadScanEnabled;
7956 smeConfig->csrConfig.bFastRoamInConIniFeatureEnabled =
7957 pConfig->bFastRoamInConIniFeatureEnabled;
7958
7959 if (0 == smeConfig->csrConfig.isRoamOffloadScanEnabled) {
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07007960 /* Disable roaming in concurrency if roam scan
7961 * offload is disabled
7962 */
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007963 smeConfig->csrConfig.bFastRoamInConIniFeatureEnabled = 0;
7964 }
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007965 smeConfig->csrConfig.neighborRoamConfig.nNeighborLookupRssiThreshold =
7966 pConfig->nNeighborLookupRssiThreshold;
Varun Reddy Yeturu168134f2017-06-26 13:46:05 -07007967 smeConfig->csrConfig.neighborRoamConfig.rssi_thresh_offset_5g =
7968 pConfig->rssi_thresh_offset_5g;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007969 smeConfig->csrConfig.neighborRoamConfig.delay_before_vdev_stop =
7970 pConfig->delay_before_vdev_stop;
7971 smeConfig->csrConfig.neighborRoamConfig.nOpportunisticThresholdDiff =
7972 pConfig->nOpportunisticThresholdDiff;
7973 smeConfig->csrConfig.neighborRoamConfig.nRoamRescanRssiDiff =
7974 pConfig->nRoamRescanRssiDiff;
7975 smeConfig->csrConfig.neighborRoamConfig.nNeighborScanMaxChanTime =
7976 pConfig->nNeighborScanMaxChanTime;
7977 smeConfig->csrConfig.neighborRoamConfig.nNeighborScanMinChanTime =
7978 pConfig->nNeighborScanMinChanTime;
7979 smeConfig->csrConfig.neighborRoamConfig.nNeighborScanTimerPeriod =
7980 pConfig->nNeighborScanPeriod;
Sridhar Selvaraj1b2330c2017-07-21 15:16:42 +05307981 smeConfig->csrConfig.neighborRoamConfig.
7982 neighbor_scan_min_timer_period =
7983 pConfig->neighbor_scan_min_period;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007984 smeConfig->csrConfig.neighborRoamConfig.nMaxNeighborRetries =
7985 pConfig->nMaxNeighborReqTries;
7986 smeConfig->csrConfig.neighborRoamConfig.nNeighborResultsRefreshPeriod =
7987 pConfig->nNeighborResultsRefreshPeriod;
7988 smeConfig->csrConfig.neighborRoamConfig.nEmptyScanRefreshPeriod =
7989 pConfig->nEmptyScanRefreshPeriod;
7990 hdd_string_to_u8_array(pConfig->neighborScanChanList,
7991 smeConfig->csrConfig.neighborRoamConfig.
7992 neighborScanChanList.channelList,
7993 &smeConfig->csrConfig.neighborRoamConfig.
7994 neighborScanChanList.numChannels,
7995 WNI_CFG_VALID_CHANNEL_LIST_LEN);
7996 smeConfig->csrConfig.neighborRoamConfig.nRoamBmissFirstBcnt =
7997 pConfig->nRoamBmissFirstBcnt;
7998 smeConfig->csrConfig.neighborRoamConfig.nRoamBmissFinalBcnt =
7999 pConfig->nRoamBmissFinalBcnt;
8000 smeConfig->csrConfig.neighborRoamConfig.nRoamBeaconRssiWeight =
8001 pConfig->nRoamBeaconRssiWeight;
8002 smeConfig->csrConfig.neighborRoamConfig.nhi_rssi_scan_max_count =
8003 pConfig->nhi_rssi_scan_max_count;
8004 smeConfig->csrConfig.neighborRoamConfig.nhi_rssi_scan_rssi_delta =
8005 pConfig->nhi_rssi_scan_rssi_delta;
8006 smeConfig->csrConfig.neighborRoamConfig.nhi_rssi_scan_delay =
8007 pConfig->nhi_rssi_scan_delay;
8008 smeConfig->csrConfig.neighborRoamConfig.nhi_rssi_scan_rssi_ub =
8009 pConfig->nhi_rssi_scan_rssi_ub;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008010 smeConfig->csrConfig.addTSWhenACMIsOff = pConfig->AddTSWhenACMIsOff;
8011 smeConfig->csrConfig.fValidateList = pConfig->fValidateScanList;
8012 smeConfig->csrConfig.allowDFSChannelRoam = pConfig->allowDFSChannelRoam;
8013
8014 /* Enable/Disable MCC */
8015 smeConfig->csrConfig.fEnableMCCMode = pConfig->enableMCC;
8016 smeConfig->csrConfig.mcc_rts_cts_prot_enable =
8017 pConfig->mcc_rts_cts_prot_enable;
8018 smeConfig->csrConfig.mcc_bcast_prob_resp_enable =
8019 pConfig->mcc_bcast_prob_resp_enable;
8020 smeConfig->csrConfig.fAllowMCCGODiffBI = pConfig->allowMCCGODiffBI;
8021
8022 /* Scan Results Aging Time out value */
8023 smeConfig->csrConfig.scanCfgAgingTime = pConfig->scanAgingTimeout;
8024
Krunal Sonia2c0e412017-05-04 14:12:41 +05308025 smeConfig->csrConfig.enable_tx_ldpc = pConfig->enable_tx_ldpc;
8026 smeConfig->csrConfig.enable_rx_ldpc = pConfig->enable_rx_ldpc;
Krunal Soni158bfe62017-08-02 12:33:08 -07008027 smeConfig->csrConfig.disable_high_ht_mcs_2x2 =
8028 pConfig->disable_high_ht_mcs_2x2;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008029#ifdef FEATURE_WLAN_MCC_TO_SCC_SWITCH
8030 smeConfig->csrConfig.cc_switch_mode = pConfig->WlanMccToSccSwitchMode;
8031#endif
8032
Deepak Dhamdhere612392c2016-08-28 02:56:51 -07008033 smeConfig->csrConfig.max_amsdu_num = pConfig->max_amsdu_num;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008034 smeConfig->csrConfig.nSelect5GHzMargin = pConfig->nSelect5GHzMargin;
8035
8036 smeConfig->csrConfig.isCoalesingInIBSSAllowed =
Jeff Johnson723234b2017-09-03 08:49:15 -07008037 hdd_ctx->config->isCoalesingInIBSSAllowed;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008038 smeConfig->csrConfig.ignore_peer_erp_info =
8039 pConfig->ignore_peer_erp_info;
8040 /* update SSR config */
Jeff Johnson723234b2017-09-03 08:49:15 -07008041 sme_update_enable_ssr((tHalHandle) (hdd_ctx->hHal),
8042 hdd_ctx->config->enableSSR);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008043
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008044 /* Update maximum interfaces information */
Jeff Johnson723234b2017-09-03 08:49:15 -07008045 smeConfig->csrConfig.max_intf_count = hdd_ctx->max_intf_count;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008046
Jeff Johnson723234b2017-09-03 08:49:15 -07008047 smeConfig->csrConfig.fEnableDebugLog = hdd_ctx->config->gEnableDebugLog;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008048
Jeff Johnson723234b2017-09-03 08:49:15 -07008049 smeConfig->csrConfig.enable5gEBT = hdd_ctx->config->enable5gEBT;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008050
Krunal Soni1878d3a2016-01-14 13:00:44 -08008051 smeConfig->csrConfig.enableSelfRecovery =
Jeff Johnson723234b2017-09-03 08:49:15 -07008052 hdd_ctx->config->enableSelfRecovery;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008053#ifdef WLAN_FEATURE_ROAM_OFFLOAD
8054 smeConfig->csrConfig.isRoamOffloadEnabled =
Jeff Johnson723234b2017-09-03 08:49:15 -07008055 hdd_ctx->config->isRoamOffloadEnabled;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008056#endif
8057 smeConfig->csrConfig.conc_custom_rule1 =
Jeff Johnson723234b2017-09-03 08:49:15 -07008058 hdd_ctx->config->conc_custom_rule1;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008059 smeConfig->csrConfig.conc_custom_rule2 =
Jeff Johnson723234b2017-09-03 08:49:15 -07008060 hdd_ctx->config->conc_custom_rule2;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008061 smeConfig->csrConfig.is_sta_connection_in_5gz_enabled =
Jeff Johnson723234b2017-09-03 08:49:15 -07008062 hdd_ctx->config->is_sta_connection_in_5gz_enabled;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008063
Krunal Soni1878d3a2016-01-14 13:00:44 -08008064 smeConfig->csrConfig.f_sta_miracast_mcc_rest_time_val =
Jeff Johnson723234b2017-09-03 08:49:15 -07008065 hdd_ctx->config->sta_miracast_mcc_rest_time_val;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008066
8067#ifdef FEATURE_AP_MCC_CH_AVOIDANCE
Krunal Soni1878d3a2016-01-14 13:00:44 -08008068 smeConfig->csrConfig.sap_channel_avoidance =
Jeff Johnson723234b2017-09-03 08:49:15 -07008069 hdd_ctx->config->sap_channel_avoidance;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008070#endif /* FEATURE_AP_MCC_CH_AVOIDANCE */
gaoleze5108942017-03-31 16:56:42 +08008071 smeConfig->csrConfig.acs_with_more_param =
Jeff Johnson723234b2017-09-03 08:49:15 -07008072 hdd_ctx->config->acs_with_more_param;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008073
Krunal Soni1878d3a2016-01-14 13:00:44 -08008074 smeConfig->csrConfig.f_prefer_non_dfs_on_radar =
Jeff Johnson723234b2017-09-03 08:49:15 -07008075 hdd_ctx->config->prefer_non_dfs_on_radar;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008076
Jeff Johnson723234b2017-09-03 08:49:15 -07008077 smeConfig->csrConfig.is_ps_enabled = hdd_ctx->config->is_ps_enabled;
Kiran Kumar Lokere0ac679c2016-11-17 17:43:36 -08008078 smeConfig->csrConfig.auto_bmps_timer_val =
Jeff Johnson723234b2017-09-03 08:49:15 -07008079 hdd_ctx->config->auto_bmps_timer_val;
8080 hdd_set_fine_time_meas_cap(hdd_ctx, smeConfig);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008081
Jeff Johnson723234b2017-09-03 08:49:15 -07008082 cds_set_multicast_logging(hdd_ctx->config->multicast_host_fw_msgs);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008083
8084 smeConfig->csrConfig.sendDeauthBeforeCon = pConfig->sendDeauthBeforeCon;
8085
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008086 smeConfig->csrConfig.max_scan_count =
Jeff Johnson723234b2017-09-03 08:49:15 -07008087 hdd_ctx->config->max_scan_count;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008088
8089 /* Update 802.11p config */
8090 smeConfig->csrConfig.enable_dot11p =
Jeff Johnson723234b2017-09-03 08:49:15 -07008091 (hdd_ctx->config->dot11p_mode != WLAN_HDD_11P_DISABLED);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008092
Krunal Soni1878d3a2016-01-14 13:00:44 -08008093 smeConfig->csrConfig.early_stop_scan_enable =
Jeff Johnson723234b2017-09-03 08:49:15 -07008094 hdd_ctx->config->early_stop_scan_enable;
Krunal Soni1878d3a2016-01-14 13:00:44 -08008095 smeConfig->csrConfig.early_stop_scan_min_threshold =
Jeff Johnson723234b2017-09-03 08:49:15 -07008096 hdd_ctx->config->early_stop_scan_min_threshold;
Krunal Soni1878d3a2016-01-14 13:00:44 -08008097 smeConfig->csrConfig.early_stop_scan_max_threshold =
Jeff Johnson723234b2017-09-03 08:49:15 -07008098 hdd_ctx->config->early_stop_scan_max_threshold;
Varun Reddy Yeturu044bda22015-11-21 22:03:40 -08008099 smeConfig->csrConfig.first_scan_bucket_threshold =
Jeff Johnson723234b2017-09-03 08:49:15 -07008100 hdd_ctx->config->first_scan_bucket_threshold;
Gupta, Kapilc68ad462016-02-01 19:17:23 +05308101
8102 smeConfig->csrConfig.roam_dense_rssi_thresh_offset =
Jeff Johnson723234b2017-09-03 08:49:15 -07008103 hdd_ctx->config->roam_dense_rssi_thresh_offset;
Gupta, Kapilc68ad462016-02-01 19:17:23 +05308104 smeConfig->csrConfig.roam_dense_min_aps =
Jeff Johnson723234b2017-09-03 08:49:15 -07008105 hdd_ctx->config->roam_dense_min_aps;
Gupta, Kapilc68ad462016-02-01 19:17:23 +05308106 smeConfig->csrConfig.roam_dense_traffic_thresh =
Jeff Johnson723234b2017-09-03 08:49:15 -07008107 hdd_ctx->config->roam_dense_traffic_thresh;
Varun Reddy Yeturufaad37e2017-07-26 10:54:13 -07008108 smeConfig->csrConfig.roam_bg_scan_bad_rssi_thresh =
8109 hdd_ctx->config->roam_bg_scan_bad_rssi_thresh;
8110 smeConfig->csrConfig.roam_bg_scan_client_bitmap =
8111 hdd_ctx->config->roam_bg_scan_client_bitmap;
Sandeep Puligilla93a29ec2016-02-12 16:10:56 -08008112 smeConfig->csrConfig.obss_width_interval =
Jeff Johnson723234b2017-09-03 08:49:15 -07008113 hdd_ctx->config->obss_width_trigger_interval;
Sandeep Puligilla93a29ec2016-02-12 16:10:56 -08008114 smeConfig->csrConfig.obss_active_dwelltime =
Jeff Johnson723234b2017-09-03 08:49:15 -07008115 hdd_ctx->config->obss_active_dwelltime;
Sandeep Puligilla93a29ec2016-02-12 16:10:56 -08008116 smeConfig->csrConfig.obss_passive_dwelltime =
Jeff Johnson723234b2017-09-03 08:49:15 -07008117 hdd_ctx->config->obss_passive_dwelltime;
Abhishek Singh165bc602016-03-21 12:43:00 +05308118 smeConfig->csrConfig.ignore_peer_ht_opmode =
8119 pConfig->ignore_peer_ht_opmode;
Abhishek Singh5ea86532016-04-27 14:10:53 +05308120 smeConfig->csrConfig.enable_fatal_event =
8121 pConfig->enable_fatal_event;
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05308122 smeConfig->csrConfig.scan_adaptive_dwell_mode =
Jeff Johnson723234b2017-09-03 08:49:15 -07008123 hdd_ctx->config->scan_adaptive_dwell_mode;
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05308124 smeConfig->csrConfig.roamscan_adaptive_dwell_mode =
Jeff Johnson723234b2017-09-03 08:49:15 -07008125 hdd_ctx->config->roamscan_adaptive_dwell_mode;
Gupta, Kapilc68ad462016-02-01 19:17:23 +05308126
Jeff Johnson723234b2017-09-03 08:49:15 -07008127 hdd_update_per_config_to_sme(hdd_ctx, smeConfig);
Kapil Gupta5cda2252016-12-29 18:44:26 +05308128
Abhishek Singh10ecf582016-05-04 17:48:59 +05308129 smeConfig->csrConfig.enable_edca_params =
8130 pConfig->enable_edca_params;
8131
8132 smeConfig->csrConfig.edca_vo_cwmin =
8133 pConfig->edca_vo_cwmin;
8134 smeConfig->csrConfig.edca_vi_cwmin =
8135 pConfig->edca_vi_cwmin;
8136 smeConfig->csrConfig.edca_bk_cwmin =
8137 pConfig->edca_bk_cwmin;
8138 smeConfig->csrConfig.edca_be_cwmin =
8139 pConfig->edca_be_cwmin;
8140
8141 smeConfig->csrConfig.edca_vo_cwmax =
8142 pConfig->edca_vo_cwmax;
8143 smeConfig->csrConfig.edca_vi_cwmax =
8144 pConfig->edca_vi_cwmax;
8145 smeConfig->csrConfig.edca_bk_cwmax =
8146 pConfig->edca_bk_cwmax;
8147 smeConfig->csrConfig.edca_be_cwmax =
8148 pConfig->edca_be_cwmax;
8149
8150 smeConfig->csrConfig.edca_vo_aifs =
8151 pConfig->edca_vo_aifs;
8152 smeConfig->csrConfig.edca_vi_aifs =
8153 pConfig->edca_vi_aifs;
8154 smeConfig->csrConfig.edca_bk_aifs =
8155 pConfig->edca_bk_aifs;
8156 smeConfig->csrConfig.edca_be_aifs =
8157 pConfig->edca_be_aifs;
Agrawal Ashish21ba2572016-09-03 16:40:10 +05308158 smeConfig->csrConfig.sta_roam_policy_params.dfs_mode =
8159 CSR_STA_ROAM_POLICY_DFS_ENABLED;
8160 smeConfig->csrConfig.sta_roam_policy_params.skip_unsafe_channels = 0;
Abhishek Singh10ecf582016-05-04 17:48:59 +05308161
Jeff Johnson723234b2017-09-03 08:49:15 -07008162 smeConfig->snr_monitor_enabled = hdd_ctx->config->fEnableSNRMonitoring;
Kapil Gupta4f0c0c12017-02-07 15:21:15 +05308163
Padma, Santhosh Kumara7119672016-08-16 16:05:14 +05308164 smeConfig->csrConfig.tx_aggregation_size =
Jeff Johnson723234b2017-09-03 08:49:15 -07008165 hdd_ctx->config->tx_aggregation_size;
Padma, Santhosh Kumara7119672016-08-16 16:05:14 +05308166 smeConfig->csrConfig.rx_aggregation_size =
Jeff Johnson723234b2017-09-03 08:49:15 -07008167 hdd_ctx->config->rx_aggregation_size;
Selvaraj, Sridhar4f684bb2017-01-19 15:59:23 +05308168 smeConfig->csrConfig.enable_bcast_probe_rsp =
Jeff Johnson723234b2017-09-03 08:49:15 -07008169 hdd_ctx->config->enable_bcast_probe_rsp;
Selvaraj, Sridhara521aab2017-03-25 16:42:34 +05308170 smeConfig->csrConfig.qcn_ie_support =
Jeff Johnson723234b2017-09-03 08:49:15 -07008171 hdd_ctx->config->qcn_ie_support;
Selvaraj, Sridhar97ce6582017-01-20 17:06:34 +05308172 smeConfig->csrConfig.fils_max_chan_guard_time =
Jeff Johnson723234b2017-09-03 08:49:15 -07008173 hdd_ctx->config->fils_max_chan_guard_time;
Padma, Santhosh Kumara7119672016-08-16 16:05:14 +05308174
Krishna Kumaar Natarajan90bb6f12017-03-03 21:05:52 -08008175 hdd_he_set_sme_config(smeConfig, pConfig);
8176
Naveen Rawat2b6e3c92017-03-20 13:59:07 -07008177 smeConfig->csrConfig.pkt_err_disconn_th =
Jeff Johnson723234b2017-09-03 08:49:15 -07008178 hdd_ctx->config->pkt_err_disconn_th;
Selvaraj, Sridhar57ce4df2017-05-29 18:30:49 +05308179 smeConfig->csrConfig.disallow_duration =
Jeff Johnson723234b2017-09-03 08:49:15 -07008180 hdd_ctx->config->disallow_duration;
Selvaraj, Sridhar57ce4df2017-05-29 18:30:49 +05308181 smeConfig->csrConfig.rssi_channel_penalization =
Jeff Johnson723234b2017-09-03 08:49:15 -07008182 hdd_ctx->config->rssi_channel_penalization;
Selvaraj, Sridhar57ce4df2017-05-29 18:30:49 +05308183 smeConfig->csrConfig.num_disallowed_aps =
Jeff Johnson723234b2017-09-03 08:49:15 -07008184 hdd_ctx->config->num_disallowed_aps;
Selvaraj, Sridhar57ce4df2017-05-29 18:30:49 +05308185
Naveen Rawatb2fc4132017-05-10 20:42:05 -07008186 smeConfig->csrConfig.is_force_1x1 =
Jeff Johnson723234b2017-09-03 08:49:15 -07008187 hdd_ctx->config->is_force_1x1;
Naveen Rawat247a8682017-06-05 15:00:31 -07008188 smeConfig->csrConfig.num_11b_tx_chains =
Jeff Johnson723234b2017-09-03 08:49:15 -07008189 hdd_ctx->config->num_11b_tx_chains;
Naveen Rawat247a8682017-06-05 15:00:31 -07008190 smeConfig->csrConfig.num_11ag_tx_chains =
Jeff Johnson723234b2017-09-03 08:49:15 -07008191 hdd_ctx->config->num_11ag_tx_chains;
Naveen Rawat247a8682017-06-05 15:00:31 -07008192
Jeff Johnson723234b2017-09-03 08:49:15 -07008193 status = sme_update_config(hdd_ctx->hHal, smeConfig);
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07008194 if (!QDF_IS_STATUS_SUCCESS(status))
8195 hdd_err("sme_update_config() failure: %d", status);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008196
Anurag Chouhan600c3a02016-03-01 10:33:54 +05308197 qdf_mem_free(smeConfig);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008198 return status;
8199}
8200
8201/**
8202 * hdd_execute_global_config_command() - execute the global config command
Jeff Johnson723234b2017-09-03 08:49:15 -07008203 * @hdd_ctx: the pointer to hdd context
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008204 * @command: the command to run
8205 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308206 * Return: the QDF_STATUS return from hdd_execute_config_command
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008207 */
Jeff Johnson723234b2017-09-03 08:49:15 -07008208QDF_STATUS hdd_execute_global_config_command(struct hdd_context *hdd_ctx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008209 char *command)
8210{
8211 return hdd_execute_config_command(g_registry_table,
8212 ARRAY_SIZE(g_registry_table),
Jeff Johnson723234b2017-09-03 08:49:15 -07008213 (uint8_t *) hdd_ctx->config,
8214 hdd_ctx, command);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008215}
8216
8217/**
8218 * hdd_cfg_get_global_config() - get the configuration table
Jeff Johnson723234b2017-09-03 08:49:15 -07008219 * @hdd_ctx: pointer to hdd context
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008220 * @pBuf: buffer to store the configuration
8221 * @buflen: size of the buffer
8222 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308223 * Return: QDF_STATUS_SUCCESS if the configuration and buffer size can carry
8224 * the content, otherwise QDF_STATUS_E_RESOURCES
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008225 */
Jeff Johnson723234b2017-09-03 08:49:15 -07008226QDF_STATUS hdd_cfg_get_global_config(struct hdd_context *hdd_ctx, char *pBuf,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008227 int buflen)
8228{
8229 return hdd_cfg_get_config(g_registry_table,
8230 ARRAY_SIZE(g_registry_table),
Jeff Johnson723234b2017-09-03 08:49:15 -07008231 (uint8_t *) hdd_ctx->config, hdd_ctx, pBuf,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008232 buflen);
8233}
8234
8235/**
Deepak Dhamdhere828f1892017-02-09 11:51:19 -08008236 * hdd_get_pmkid_modes() - returns PMKID mode bits
Jeff Johnson723234b2017-09-03 08:49:15 -07008237 * @hdd_ctx: the pointer to hdd context
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008238 *
Deepak Dhamdhere828f1892017-02-09 11:51:19 -08008239 * Return: value of pmkid_modes
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008240 */
Jeff Johnson723234b2017-09-03 08:49:15 -07008241void hdd_get_pmkid_modes(struct hdd_context *hdd_ctx,
Deepak Dhamdhere828f1892017-02-09 11:51:19 -08008242 struct pmkid_mode_bits *pmkid_modes)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008243{
Jeff Johnson723234b2017-09-03 08:49:15 -07008244 pmkid_modes->fw_okc = (hdd_ctx->config->pmkid_modes &
Deepak Dhamdhere828f1892017-02-09 11:51:19 -08008245 CFG_PMKID_MODES_OKC) ? 1 : 0;
Jeff Johnson723234b2017-09-03 08:49:15 -07008246 pmkid_modes->fw_pmksa_cache = (hdd_ctx->config->pmkid_modes &
Deepak Dhamdhere828f1892017-02-09 11:51:19 -08008247 CFG_PMKID_MODES_PMKSA_CACHING) ? 1 : 0;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008248}
8249
Jeff Johnsonb6909be2017-08-28 12:07:19 -07008250bool hdd_validate_prb_req_ie_bitmap(struct hdd_context *hdd_ctx)
Rajeev Kumar Sirasanagandlaaec0b082017-06-21 11:59:41 +05308251{
8252 if (!(hdd_ctx->config->probe_req_ie_bitmap_0 ||
8253 hdd_ctx->config->probe_req_ie_bitmap_1 ||
8254 hdd_ctx->config->probe_req_ie_bitmap_2 ||
8255 hdd_ctx->config->probe_req_ie_bitmap_3 ||
8256 hdd_ctx->config->probe_req_ie_bitmap_4 ||
8257 hdd_ctx->config->probe_req_ie_bitmap_5 ||
8258 hdd_ctx->config->probe_req_ie_bitmap_6 ||
8259 hdd_ctx->config->probe_req_ie_bitmap_7))
8260 return false;
8261
8262 /*
8263 * check whether vendor oui IE is set and OUIs are present, each OUI
8264 * is entered in the form of string of 8 characters from ini, therefore,
8265 * for atleast one OUI, minimum length is 8 and hence this string length
8266 * is checked for minimum of 8
8267 */
8268 if ((hdd_ctx->config->probe_req_ie_bitmap_6 &
8269 VENDOR_SPECIFIC_IE_BITMAP) &&
8270 (strlen(hdd_ctx->config->probe_req_ouis) < 8))
8271 return false;
8272
8273 /* check whether vendor oui IE is not set but OUIs are present */
8274 if (!(hdd_ctx->config->probe_req_ie_bitmap_6 &
8275 VENDOR_SPECIFIC_IE_BITMAP) &&
8276 (strlen(hdd_ctx->config->probe_req_ouis) > 0))
8277 return false;
8278
8279 return true;
8280}
8281
Jeff Johnsonb6909be2017-08-28 12:07:19 -07008282int hdd_parse_probe_req_ouis(struct hdd_context *hdd_ctx)
Rajeev Kumar Sirasanagandlaaec0b082017-06-21 11:59:41 +05308283{
8284 uint32_t *voui = hdd_ctx->config->probe_req_voui;
8285 char *str;
8286 uint8_t *token;
8287 uint32_t oui_indx = 0;
8288 int ret;
8289 uint32_t hex_value;
8290
8291 str = (char *)(hdd_ctx->config->probe_req_ouis);
8292 str[MAX_PRB_REQ_VENDOR_OUI_INI_LEN - 1] = '\0';
8293 hdd_ctx->config->no_of_probe_req_ouis = 0;
8294
8295 if (!strlen(str)) {
8296 hdd_info("NO OUIS to parse");
8297 return 0;
8298 }
8299
8300 token = strsep(&str, " ");
8301 while (token) {
8302 if (strlen(token) != 8)
8303 goto next_token;
8304
8305 ret = kstrtouint(token, 16, &hex_value);
8306 if (ret)
8307 goto next_token;
8308
8309 voui[oui_indx++] = cpu_to_be32(hex_value);
8310 if (oui_indx >= MAX_PROBE_REQ_OUIS)
8311 break;
8312
8313 next_token:
8314 token = strsep(&str, " ");
8315 }
8316
8317 if (!oui_indx)
8318 return -EINVAL;
8319
8320 hdd_ctx->config->no_of_probe_req_ouis = oui_indx;
8321
8322 return 0;
8323}
8324
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008325/**
8326 * hdd_update_nss() - Update the number of spatial streams supported.
8327 * Ensure that nss is either 1 or 2 before calling this.
8328 *
8329 * @hdd_ctx: the pointer to hdd context
8330 * @nss: the number of spatial streams to be updated
8331 *
8332 * This function is used to modify the number of spatial streams
8333 * supported when not in connected state.
8334 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308335 * Return: QDF_STATUS_SUCCESS if nss is correctly updated,
8336 * otherwise QDF_STATUS_E_FAILURE would be returned
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008337 */
Jeff Johnsonb6909be2017-08-28 12:07:19 -07008338QDF_STATUS hdd_update_nss(struct hdd_context *hdd_ctx, uint8_t nss)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008339{
8340 struct hdd_config *hdd_config = hdd_ctx->config;
8341 uint32_t temp = 0;
8342 uint32_t rx_supp_data_rate, tx_supp_data_rate;
8343 bool status = true;
8344 tSirMacHTCapabilityInfo *ht_cap_info;
8345 uint8_t mcs_set[SIZE_OF_SUPPORTED_MCS_SET] = {0};
8346 uint8_t mcs_set_temp[SIZE_OF_SUPPORTED_MCS_SET];
Sandeep Puligilla98917432016-06-10 13:50:28 -07008347 uint32_t val, val32;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008348 uint16_t val16;
8349 uint8_t enable2x2;
8350
8351 if ((nss == 2) && (hdd_ctx->num_rf_chains != 2)) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08008352 hdd_err("No support for 2 spatial streams");
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308353 return QDF_STATUS_E_INVAL;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008354 }
8355
8356 enable2x2 = (nss == 1) ? 0 : 1;
8357
8358 if (hdd_config->enable2x2 == enable2x2) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07008359 hdd_debug("NSS same as requested");
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308360 return QDF_STATUS_SUCCESS;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008361 }
8362
8363 if (true == sme_is_any_session_in_connected_state(hdd_ctx->hHal)) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08008364 hdd_err("Connected sessions present, Do not change NSS");
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308365 return QDF_STATUS_E_INVAL;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008366 }
8367
8368 hdd_config->enable2x2 = enable2x2;
8369
8370 if (!hdd_config->enable2x2) {
8371 /* 1x1 */
Kiran Kumar Lokere666bf852016-05-02 12:23:02 -07008372 rx_supp_data_rate = VHT_RX_HIGHEST_SUPPORTED_DATA_RATE_1_1;
8373 tx_supp_data_rate = VHT_TX_HIGHEST_SUPPORTED_DATA_RATE_1_1;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008374 } else {
8375 /* 2x2 */
Kiran Kumar Lokere666bf852016-05-02 12:23:02 -07008376 rx_supp_data_rate = VHT_RX_HIGHEST_SUPPORTED_DATA_RATE_2_2;
8377 tx_supp_data_rate = VHT_TX_HIGHEST_SUPPORTED_DATA_RATE_2_2;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008378 }
8379
8380 /* Update Rx Highest Long GI data Rate */
8381 if (sme_cfg_set_int(hdd_ctx->hHal,
8382 WNI_CFG_VHT_RX_HIGHEST_SUPPORTED_DATA_RATE,
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308383 rx_supp_data_rate) == QDF_STATUS_E_FAILURE) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008384 status = false;
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08008385 hdd_err("Could not pass on WNI_CFG_VHT_RX_HIGHEST_SUPPORTED_DATA_RATE to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008386 }
8387
8388 /* Update Tx Highest Long GI data Rate */
8389 if (sme_cfg_set_int(hdd_ctx->hHal,
8390 WNI_CFG_VHT_TX_HIGHEST_SUPPORTED_DATA_RATE,
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308391 tx_supp_data_rate) == QDF_STATUS_E_FAILURE) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008392 status = false;
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08008393 hdd_err("Could not pass on WNI_CFG_VHT_TX_HIGHEST_SUPPORTED_DATA_RATE to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008394 }
8395
8396 sme_cfg_get_int(hdd_ctx->hHal, WNI_CFG_HT_CAP_INFO, &temp);
8397 val16 = (uint16_t)temp;
8398 ht_cap_info = (tSirMacHTCapabilityInfo *)&val16;
Sandeep Puligilla98917432016-06-10 13:50:28 -07008399 if (!(hdd_ctx->ht_tx_stbc_supported && hdd_config->enable2x2)) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008400 ht_cap_info->txSTBC = 0;
Sandeep Puligilla98917432016-06-10 13:50:28 -07008401 } else {
8402 sme_cfg_get_int(hdd_ctx->hHal, WNI_CFG_VHT_TXSTBC, &val32);
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07008403 hdd_debug("STBC %d", val32);
Sandeep Puligilla98917432016-06-10 13:50:28 -07008404 ht_cap_info->txSTBC = val32;
8405 }
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008406 temp = val16;
8407 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_HT_CAP_INFO,
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308408 temp) == QDF_STATUS_E_FAILURE) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008409 status = false;
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08008410 hdd_err("Could not pass on WNI_CFG_HT_CAP_INFO to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008411 }
8412
8413 sme_cfg_get_int(hdd_ctx->hHal, WNI_CFG_VHT_BASIC_MCS_SET, &temp);
8414 temp = (temp & 0xFFFC) | hdd_config->vhtRxMCS;
8415 if (hdd_config->enable2x2)
8416 temp = (temp & 0xFFF3) | (hdd_config->vhtRxMCS2x2 << 2);
8417 else
8418 temp |= 0x000C;
8419
8420 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_VHT_BASIC_MCS_SET,
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308421 temp) == QDF_STATUS_E_FAILURE) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008422 status = false;
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08008423 hdd_err("Could not pass on WNI_CFG_VHT_BASIC_MCS_SET to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008424 }
8425
8426 sme_cfg_get_int(hdd_ctx->hHal, WNI_CFG_VHT_RX_MCS_MAP, &temp);
8427 temp = (temp & 0xFFFC) | hdd_config->vhtRxMCS;
8428 if (hdd_config->enable2x2)
8429 temp = (temp & 0xFFF3) | (hdd_config->vhtRxMCS2x2 << 2);
8430 else
8431 temp |= 0x000C;
8432
8433 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_VHT_RX_MCS_MAP,
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308434 temp) == QDF_STATUS_E_FAILURE) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008435 status = false;
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08008436 hdd_err("Could not pass on WNI_CFG_VHT_RX_MCS_MAP to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008437 }
8438
8439 sme_cfg_get_int(hdd_ctx->hHal, WNI_CFG_VHT_TX_MCS_MAP, &temp);
8440 temp = (temp & 0xFFFC) | hdd_config->vhtTxMCS;
8441 if (hdd_config->enable2x2)
8442 temp = (temp & 0xFFF3) | (hdd_config->vhtTxMCS2x2 << 2);
8443 else
8444 temp |= 0x000C;
8445
8446 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_VHT_TX_MCS_MAP,
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308447 temp) == QDF_STATUS_E_FAILURE) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008448 status = false;
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08008449 hdd_err("Could not pass on WNI_CFG_VHT_TX_MCS_MAP to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008450 }
8451
8452#define WLAN_HDD_RX_MCS_ALL_NSTREAM_RATES 0xff
8453 val = SIZE_OF_SUPPORTED_MCS_SET;
8454 sme_cfg_get_str(hdd_ctx->hHal, WNI_CFG_SUPPORTED_MCS_SET,
8455 mcs_set_temp, &val);
8456
8457 mcs_set[0] = mcs_set_temp[0];
8458 if (hdd_config->enable2x2)
8459 for (val = 0; val < nss; val++)
8460 mcs_set[val] = WLAN_HDD_RX_MCS_ALL_NSTREAM_RATES;
8461
8462 if (sme_cfg_set_str(hdd_ctx->hHal, WNI_CFG_SUPPORTED_MCS_SET,
8463 mcs_set,
8464 SIZE_OF_SUPPORTED_MCS_SET) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308465 QDF_STATUS_E_FAILURE) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008466 status = false;
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08008467 hdd_err("Could not pass on MCS SET to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008468 }
8469#undef WLAN_HDD_RX_MCS_ALL_NSTREAM_RATES
8470
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308471 if (QDF_STATUS_SUCCESS != sme_update_nss(hdd_ctx->hHal, nss))
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008472 status = false;
8473
Tushnim Bhattacharyya7e546692017-03-23 18:30:29 -07008474 hdd_set_policy_mgr_user_cfg(hdd_ctx);
8475
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308476 return (status == false) ? QDF_STATUS_E_FAILURE : QDF_STATUS_SUCCESS;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008477}