blob: 1cdc85c7e1d4887f68fa3e570f1e29e9e81e3728 [file] [log] [blame]
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001/*
Jiachao Wu6e9b9f92018-01-03 13:35:40 +08002 * Copyright (c) 2012-2018 The Linux Foundation. All rights reserved.
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003 *
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004 * Permission to use, copy, modify, and/or distribute this software for
5 * any purpose with or without fee is hereby granted, provided that the
6 * above copyright notice and this permission notice appear in all
7 * copies.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
10 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
11 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
12 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
13 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
14 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
15 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
16 * PERFORMANCE OF THIS SOFTWARE.
17 */
18
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080019/**
20 * DOC: wlan_hdd_cfg.c
21 *
22 * WLAN Host Device Driver configuration interface implementation
23 */
24
25/* Include Files */
26
27#include <linux/firmware.h>
28#include <linux/string.h>
29#include <wlan_hdd_includes.h>
30#include <wlan_hdd_main.h>
31#include <wlan_hdd_assoc.h>
32#include <wlan_hdd_cfg.h>
33#include <linux/string.h>
Anurag Chouhan6d760662016-02-20 16:05:43 +053034#include <qdf_types.h>
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080035#include <csr_api.h>
36#include <wlan_hdd_misc.h>
37#include <wlan_hdd_napi.h>
Tushnim Bhattacharyya9e81b4c2017-02-15 17:11:14 -080038#include <cds_api.h>
Krishna Kumaar Natarajan4f1d7722017-03-03 21:12:51 -080039#include "wlan_hdd_he.h"
Tushnim Bhattacharyya9028cc72017-03-09 13:10:49 -080040#include <wlan_policy_mgr_api.h>
Naveen Rawatd2657be2017-10-10 14:31:23 -070041#include "wifi_pos_api.h"
Jeff Johnsonc57c13a2018-04-01 11:03:29 -070042#include "wlan_hdd_green_ap.h"
43#include "wlan_hdd_green_ap_cfg.h"
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080044
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080045static void
Jeff Johnson723234b2017-09-03 08:49:15 -070046cb_notify_set_roam_prefer5_g_hz(struct hdd_context *hdd_ctx, unsigned long notifyId)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080047{
Jeff Johnson723234b2017-09-03 08:49:15 -070048 sme_update_roam_prefer5_g_hz(hdd_ctx->hHal,
49 hdd_ctx->config->nRoamPrefer5GHz);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080050}
51
52static void
Jeff Johnson723234b2017-09-03 08:49:15 -070053cb_notify_set_roam_rssi_diff(struct hdd_context *hdd_ctx, unsigned long notifyId)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080054{
Jeff Johnson723234b2017-09-03 08:49:15 -070055 sme_update_roam_rssi_diff(hdd_ctx->hHal,
56 0, hdd_ctx->config->RoamRssiDiff);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080057}
58
59static void
Jeff Johnson723234b2017-09-03 08:49:15 -070060cb_notify_set_fast_transition_enabled(struct hdd_context *hdd_ctx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080061 unsigned long notifyId)
62{
Jeff Johnson723234b2017-09-03 08:49:15 -070063 sme_update_fast_transition_enabled(hdd_ctx->hHal,
64 hdd_ctx->config->
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080065 isFastTransitionEnabled);
66}
67
68static void
Jeff Johnson723234b2017-09-03 08:49:15 -070069cb_notify_set_roam_intra_band(struct hdd_context *hdd_ctx, unsigned long notifyId)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080070{
Jeff Johnson723234b2017-09-03 08:49:15 -070071 sme_set_roam_intra_band(hdd_ctx->hHal, hdd_ctx->config->nRoamIntraBand);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080072}
73
Jeff Johnson723234b2017-09-03 08:49:15 -070074static void cb_notify_set_wes_mode(struct hdd_context *hdd_ctx,
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -070075 unsigned long notifyId)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080076{
Jeff Johnson723234b2017-09-03 08:49:15 -070077 sme_update_wes_mode(hdd_ctx->hHal,
78 hdd_ctx->config->isWESModeEnabled, 0);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080079}
80
81static void
Jeff Johnson723234b2017-09-03 08:49:15 -070082cb_notify_set_roam_scan_n_probes(struct hdd_context *hdd_ctx, unsigned long notifyId)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080083{
Jeff Johnson723234b2017-09-03 08:49:15 -070084 sme_update_roam_scan_n_probes(hdd_ctx->hHal, 0,
85 hdd_ctx->config->nProbes);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080086}
87
88static void
Jeff Johnson723234b2017-09-03 08:49:15 -070089cb_notify_set_roam_scan_home_away_time(struct hdd_context *hdd_ctx,
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -070090 unsigned long notifyId)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080091{
Jeff Johnson723234b2017-09-03 08:49:15 -070092 sme_update_roam_scan_home_away_time(hdd_ctx->hHal, 0,
93 hdd_ctx->config->nRoamScanHomeAwayTime,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080094 true);
95}
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080096
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080097static void
Jeff Johnson723234b2017-09-03 08:49:15 -070098notify_is_fast_roam_ini_feature_enabled(struct hdd_context *hdd_ctx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080099 unsigned long notifyId)
100{
Jeff Johnson723234b2017-09-03 08:49:15 -0700101 sme_update_is_fast_roam_ini_feature_enabled(hdd_ctx->hHal, 0,
102 hdd_ctx->config->
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800103 isFastRoamIniFeatureEnabled);
104}
105
106static void
Jeff Johnson723234b2017-09-03 08:49:15 -0700107notify_is_mawc_ini_feature_enabled(struct hdd_context *hdd_ctx,
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -0700108 unsigned long notifyId)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800109{
Jeff Johnson723234b2017-09-03 08:49:15 -0700110 sme_update_is_mawc_ini_feature_enabled(hdd_ctx->hHal,
111 hdd_ctx->config->MAWCEnabled);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800112}
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800113
114#ifdef FEATURE_WLAN_ESE
115static void
Jeff Johnson723234b2017-09-03 08:49:15 -0700116cb_notify_set_ese_feature_enabled(struct hdd_context *hdd_ctx,
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -0700117 unsigned long notifyId)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800118{
Jeff Johnson723234b2017-09-03 08:49:15 -0700119 sme_update_is_ese_feature_enabled(hdd_ctx->hHal, 0,
120 hdd_ctx->config->isEseIniFeatureEnabled);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800121}
122#endif
Jeff Johnson723234b2017-09-03 08:49:15 -0700123static void cb_notify_set_opportunistic_scan_threshold_diff(struct hdd_context *hdd_ctx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800124 unsigned long notifyId)
125{
Jeff Johnson723234b2017-09-03 08:49:15 -0700126 sme_set_roam_opportunistic_scan_threshold_diff(hdd_ctx->hHal, 0,
127 hdd_ctx->config->
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800128 nOpportunisticThresholdDiff);
129}
130
Jeff Johnson723234b2017-09-03 08:49:15 -0700131static void cb_notify_set_roam_rescan_rssi_diff(struct hdd_context *hdd_ctx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800132 unsigned long notifyId)
133{
Jeff Johnson723234b2017-09-03 08:49:15 -0700134 sme_set_roam_rescan_rssi_diff(hdd_ctx->hHal,
135 0, hdd_ctx->config->nRoamRescanRssiDiff);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800136}
137
138static void
Jeff Johnson723234b2017-09-03 08:49:15 -0700139cb_notify_set_neighbor_lookup_rssi_threshold(struct hdd_context *hdd_ctx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800140 unsigned long notifyId)
141{
Jeff Johnson723234b2017-09-03 08:49:15 -0700142 sme_set_neighbor_lookup_rssi_threshold(hdd_ctx->hHal, 0,
143 hdd_ctx->config->
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800144 nNeighborLookupRssiThreshold);
145}
146
147static void
Jeff Johnsonb6909be2017-08-28 12:07:19 -0700148cb_notify_set_delay_before_vdev_stop(struct hdd_context *hdd_ctx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800149 unsigned long notify_id)
150{
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800151 sme_set_delay_before_vdev_stop(hdd_ctx->hHal, 0,
152 hdd_ctx->config->delay_before_vdev_stop);
153}
154
155static void
Jeff Johnson723234b2017-09-03 08:49:15 -0700156cb_notify_set_neighbor_scan_period(struct hdd_context *hdd_ctx,
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -0700157 unsigned long notifyId)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800158{
Jeff Johnson723234b2017-09-03 08:49:15 -0700159 sme_set_neighbor_scan_period(hdd_ctx->hHal, 0,
160 hdd_ctx->config->nNeighborScanPeriod);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800161}
162
Sridhar Selvaraj1b2330c2017-07-21 15:16:42 +0530163/*
164 * cb_notify_set_neighbor_scan_min_period() - configure min rest
165 * time during roaming scan
166 *
167 * @hdd_ctx: HDD context data structure
168 * @notify_id: Identifies 1 of the 4 parameters to be modified
169 *
170 * Picks up the value from hdd configuration and passes it to SME.
171 * Return: void
172 */
173static void
Jeff Johnson723234b2017-09-03 08:49:15 -0700174cb_notify_set_neighbor_scan_min_period(struct hdd_context *hdd_ctx,
Sridhar Selvaraj1b2330c2017-07-21 15:16:42 +0530175 unsigned long notifyId)
176{
Jeff Johnson723234b2017-09-03 08:49:15 -0700177 sme_set_neighbor_scan_min_period(hdd_ctx->hHal, 0,
178 hdd_ctx->config->
Sridhar Selvaraj1b2330c2017-07-21 15:16:42 +0530179 neighbor_scan_min_period);
180}
181
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800182static void
Jeff Johnson723234b2017-09-03 08:49:15 -0700183cb_notify_set_neighbor_results_refresh_period(struct hdd_context *hdd_ctx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800184 unsigned long notifyId)
185{
Jeff Johnson723234b2017-09-03 08:49:15 -0700186 sme_set_neighbor_scan_refresh_period(hdd_ctx->hHal, 0,
187 hdd_ctx->config->
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800188 nNeighborResultsRefreshPeriod);
189}
190
191static void
Jeff Johnson723234b2017-09-03 08:49:15 -0700192cb_notify_set_empty_scan_refresh_period(struct hdd_context *hdd_ctx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800193 unsigned long notifyId)
194{
Jeff Johnson723234b2017-09-03 08:49:15 -0700195 sme_update_empty_scan_refresh_period(hdd_ctx->hHal, 0,
196 hdd_ctx->config->
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800197 nEmptyScanRefreshPeriod);
198}
199
200static void
Jeff Johnson723234b2017-09-03 08:49:15 -0700201cb_notify_set_neighbor_scan_min_chan_time(struct hdd_context *hdd_ctx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800202 unsigned long notifyId)
203{
Jeff Johnson723234b2017-09-03 08:49:15 -0700204 sme_set_neighbor_scan_min_chan_time(hdd_ctx->hHal,
205 hdd_ctx->config->
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800206 nNeighborScanMinChanTime, 0);
207}
208
209static void
Jeff Johnson723234b2017-09-03 08:49:15 -0700210cb_notify_set_neighbor_scan_max_chan_time(struct hdd_context *hdd_ctx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800211 unsigned long notifyId)
212{
Jeff Johnson723234b2017-09-03 08:49:15 -0700213 sme_set_neighbor_scan_max_chan_time(hdd_ctx->hHal, 0,
214 hdd_ctx->config->
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800215 nNeighborScanMaxChanTime);
216}
217
Jeff Johnson723234b2017-09-03 08:49:15 -0700218static void cb_notify_set_roam_bmiss_first_bcnt(struct hdd_context *hdd_ctx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800219 unsigned long notifyId)
220{
Jeff Johnson723234b2017-09-03 08:49:15 -0700221 sme_set_roam_bmiss_first_bcnt(hdd_ctx->hHal,
222 0, hdd_ctx->config->nRoamBmissFirstBcnt);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800223}
224
Jeff Johnson723234b2017-09-03 08:49:15 -0700225static void cb_notify_set_roam_bmiss_final_bcnt(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_roam_bmiss_final_bcnt(hdd_ctx->hHal, 0,
229 hdd_ctx->config->nRoamBmissFinalBcnt);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800230}
231
Jeff Johnson723234b2017-09-03 08:49:15 -0700232static void cb_notify_set_roam_beacon_rssi_weight(struct hdd_context *hdd_ctx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800233 unsigned long notifyId)
234{
Jeff Johnson723234b2017-09-03 08:49:15 -0700235 sme_set_roam_beacon_rssi_weight(hdd_ctx->hHal, 0,
236 hdd_ctx->config->nRoamBeaconRssiWeight);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800237}
238
239static void
Jeff Johnson723234b2017-09-03 08:49:15 -0700240cb_notify_set_dfs_scan_mode(struct hdd_context *hdd_ctx, unsigned long notifyId)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800241{
Jeff Johnson723234b2017-09-03 08:49:15 -0700242 sme_update_dfs_scan_mode(hdd_ctx->hHal, 0,
243 hdd_ctx->config->allowDFSChannelRoam);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800244}
245
Jeff Johnson723234b2017-09-03 08:49:15 -0700246static void cb_notify_set_enable_ssr(struct hdd_context *hdd_ctx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800247 unsigned long notifyId)
248{
Jeff Johnson723234b2017-09-03 08:49:15 -0700249 sme_update_enable_ssr(hdd_ctx->hHal, hdd_ctx->config->enableSSR);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800250}
251
Jeff Johnson723234b2017-09-03 08:49:15 -0700252static void cb_notify_set_g_sap_preferred_chan_location(struct hdd_context *hdd_ctx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800253 unsigned long notifyId)
254{
Jeff Johnson723234b2017-09-03 08:49:15 -0700255 wlansap_set_dfs_preferred_channel_location(hdd_ctx->hHal,
256 hdd_ctx->config->
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800257 gSapPreferredChanLocation);
258}
Jeff Johnson723234b2017-09-03 08:49:15 -0700259static void ch_notify_set_g_disable_dfs_japan_w53(struct hdd_context *hdd_ctx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800260 unsigned long notifyId)
261{
Jeff Johnson723234b2017-09-03 08:49:15 -0700262 wlansap_set_dfs_restrict_japan_w53(hdd_ctx->hHal,
263 hdd_ctx->config->
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800264 gDisableDfsJapanW53);
265}
266static void
Jeff Johnson723234b2017-09-03 08:49:15 -0700267cb_notify_update_roam_scan_offload_enabled(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 sme_update_roam_scan_offload_enabled(hdd_ctx->hHal,
271 hdd_ctx->config->
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800272 isRoamOffloadScanEnabled);
Jeff Johnson723234b2017-09-03 08:49:15 -0700273 if (0 == hdd_ctx->config->isRoamOffloadScanEnabled) {
274 hdd_ctx->config->bFastRoamInConIniFeatureEnabled = 0;
275 sme_update_enable_fast_roam_in_concurrency(hdd_ctx->hHal,
276 hdd_ctx->config->
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800277 bFastRoamInConIniFeatureEnabled);
278 }
279}
280
281static void
Jeff Johnson723234b2017-09-03 08:49:15 -0700282cb_notify_set_enable_fast_roam_in_concurrency(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_enable_fast_roam_in_concurrency(hdd_ctx->hHal,
286 hdd_ctx->config->
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800287 bFastRoamInConIniFeatureEnabled);
288}
289
290/**
291 * cb_notify_set_roam_scan_hi_rssi_scan_params() - configure hi rssi
292 * scan params from cfg to sme.
293 * @hdd_ctx: HDD context data structure
294 * @notify_id: Identifies 1 of the 4 parameters to be modified
295 *
296 * Picks up the value from hdd configuration and passes it to SME.
297 * Return: void
298 */
299
300static void
Jeff Johnsonb6909be2017-08-28 12:07:19 -0700301cb_notify_set_roam_scan_hi_rssi_scan_params(struct hdd_context *hdd_ctx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800302 unsigned long notify_id)
303{
304 int32_t val;
305
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -0700306 if (wlan_hdd_validate_context(hdd_ctx))
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800307 return;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800308
309 switch (notify_id) {
310 case eCSR_HI_RSSI_SCAN_MAXCOUNT_ID:
311 val = hdd_ctx->config->nhi_rssi_scan_max_count;
312 break;
313
314 case eCSR_HI_RSSI_SCAN_RSSI_DELTA_ID:
315 val = hdd_ctx->config->nhi_rssi_scan_rssi_delta;
316 break;
317
318 case eCSR_HI_RSSI_SCAN_DELAY_ID:
319 val = hdd_ctx->config->nhi_rssi_scan_delay;
320 break;
321
322 case eCSR_HI_RSSI_SCAN_RSSI_UB_ID:
323 val = hdd_ctx->config->nhi_rssi_scan_rssi_ub;
324 break;
325
326 default:
327 return;
328 }
329
330 sme_update_roam_scan_hi_rssi_scan_params(hdd_ctx->hHal, 0,
331 notify_id, val);
332}
333
334
Srinivas Girigowda2fb677c2017-03-25 15:35:34 -0700335struct reg_table_entry g_registry_table[] = {
Alok Kumarb64650c2018-03-23 17:05:11 +0530336#ifdef WLAN_NUD_TRACKING
337 REG_VARIABLE(CFG_ENABLE_NUD_TRACKING_NAME, WLAN_PARAM_Integer,
338 struct hdd_config, enable_nud_tracking,
339 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
340 CFG_ENABLE_NUD_TRACKING_DEFAULT,
341 CFG_ENABLE_NUD_TRACKING_MIN,
342 CFG_ENABLE_NUD_TRACKING_MAX),
343#endif
344
Ashish Kumar Dhanotiya470af292017-05-31 20:46:00 +0530345 REG_VARIABLE(CFG_ENABLE_CONNECTED_SCAN_NAME, WLAN_PARAM_Integer,
346 struct hdd_config, enable_connected_scan,
347 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
348 CFG_ENABLE_CONNECTED_SCAN_DEFAULT,
349 CFG_ENABLE_CONNECTED_SCAN_MIN,
350 CFG_ENABLE_CONNECTED_SCAN_MAX),
351
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800352 REG_VARIABLE(CFG_RTS_THRESHOLD_NAME, WLAN_PARAM_Integer,
353 struct hdd_config, RTSThreshold,
354 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
355 CFG_RTS_THRESHOLD_DEFAULT,
356 CFG_RTS_THRESHOLD_MIN,
357 CFG_RTS_THRESHOLD_MAX),
358
359 REG_VARIABLE(CFG_FRAG_THRESHOLD_NAME, WLAN_PARAM_Integer,
360 struct hdd_config, FragmentationThreshold,
361 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
362 CFG_FRAG_THRESHOLD_DEFAULT,
363 CFG_FRAG_THRESHOLD_MIN,
364 CFG_FRAG_THRESHOLD_MAX),
365
366 REG_VARIABLE(CFG_OPERATING_CHANNEL_NAME, WLAN_PARAM_Integer,
367 struct hdd_config, OperatingChannel,
368 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
369 CFG_OPERATING_CHANNEL_DEFAULT,
370 CFG_OPERATING_CHANNEL_MIN,
371 CFG_OPERATING_CHANNEL_MAX),
372
373 REG_VARIABLE(CFG_SHORT_SLOT_TIME_ENABLED_NAME, WLAN_PARAM_Integer,
374 struct hdd_config, ShortSlotTimeEnabled,
375 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
376 CFG_SHORT_SLOT_TIME_ENABLED_DEFAULT,
377 CFG_SHORT_SLOT_TIME_ENABLED_MIN,
378 CFG_SHORT_SLOT_TIME_ENABLED_MAX),
379
380 REG_VARIABLE(CFG_11D_SUPPORT_ENABLED_NAME, WLAN_PARAM_Integer,
381 struct hdd_config, Is11dSupportEnabled,
382 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
383 CFG_11D_SUPPORT_ENABLED_DEFAULT,
384 CFG_11D_SUPPORT_ENABLED_MIN,
385 CFG_11D_SUPPORT_ENABLED_MAX),
386
387 REG_VARIABLE(CFG_11H_SUPPORT_ENABLED_NAME, WLAN_PARAM_Integer,
388 struct hdd_config, Is11hSupportEnabled,
389 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
390 CFG_11H_SUPPORT_ENABLED_DEFAULT,
391 CFG_11H_SUPPORT_ENABLED_MIN,
392 CFG_11H_SUPPORT_ENABLED_MAX),
393
394 REG_VARIABLE(CFG_COUNTRY_CODE_PRIORITY_NAME, WLAN_PARAM_Integer,
395 struct hdd_config, fSupplicantCountryCodeHasPriority,
396 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
397 CFG_COUNTRY_CODE_PRIORITY_DEFAULT,
398 CFG_COUNTRY_CODE_PRIORITY_MIN,
399 CFG_COUNTRY_CODE_PRIORITY_MAX),
400
401 REG_VARIABLE(CFG_HEARTBEAT_THRESH_24_NAME, WLAN_PARAM_Integer,
402 struct hdd_config, HeartbeatThresh24,
403 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
404 CFG_HEARTBEAT_THRESH_24_DEFAULT,
405 CFG_HEARTBEAT_THRESH_24_MIN,
406 CFG_HEARTBEAT_THRESH_24_MAX),
407
408 REG_VARIABLE_STRING(CFG_POWER_USAGE_NAME, WLAN_PARAM_String,
409 struct hdd_config, PowerUsageControl,
410 VAR_FLAGS_OPTIONAL,
411 (void *)CFG_POWER_USAGE_DEFAULT),
412
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800413 REG_VARIABLE(CFG_ENABLE_IMPS_NAME, WLAN_PARAM_Integer,
414 struct hdd_config, fIsImpsEnabled,
415 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
416 CFG_ENABLE_IMPS_DEFAULT,
417 CFG_ENABLE_IMPS_MIN,
418 CFG_ENABLE_IMPS_MAX),
419
420 REG_VARIABLE(CFG_ENABLE_PS_NAME, WLAN_PARAM_Integer,
421 struct hdd_config, is_ps_enabled,
422 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
423 CFG_ENABLE_PS_DEFAULT,
424 CFG_ENABLE_PS_MIN,
425 CFG_ENABLE_PS_MAX),
426
Kiran Kumar Lokere0ac679c2016-11-17 17:43:36 -0800427 REG_VARIABLE(CFG_AUTO_PS_ENABLE_TIMER_NAME, WLAN_PARAM_Integer,
428 struct hdd_config, auto_bmps_timer_val,
429 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
430 CFG_AUTO_PS_ENABLE_TIMER_DEFAULT,
431 CFG_AUTO_PS_ENABLE_TIMER_MIN,
432 CFG_AUTO_PS_ENABLE_TIMER_MAX),
433
Zhu Jianmin04392c42017-05-12 16:34:53 +0800434#ifdef WLAN_ICMP_DISABLE_PS
435 REG_VARIABLE(CFG_ICMP_DISABLE_PS_NAME, WLAN_PARAM_Integer,
436 struct hdd_config, icmp_disable_ps_val,
437 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
438 CFG_ICMP_DISABLE_PS_DEFAULT,
439 CFG_ICMP_DISABLE_PS_MIN,
440 CFG_ICMP_DISABLE_PS_MAX),
441#endif
442
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800443 REG_VARIABLE(CFG_BMPS_MINIMUM_LI_NAME, WLAN_PARAM_Integer,
444 struct hdd_config, nBmpsMinListenInterval,
445 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
446 CFG_BMPS_MINIMUM_LI_DEFAULT,
447 CFG_BMPS_MINIMUM_LI_MIN,
448 CFG_BMPS_MINIMUM_LI_MAX),
449
450 REG_VARIABLE(CFG_BMPS_MAXIMUM_LI_NAME, WLAN_PARAM_Integer,
451 struct hdd_config, nBmpsMaxListenInterval,
452 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
453 CFG_BMPS_MAXIMUM_LI_DEFAULT,
454 CFG_BMPS_MAXIMUM_LI_MIN,
455 CFG_BMPS_MAXIMUM_LI_MAX),
456
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800457 REG_VARIABLE(CFG_DOT11_MODE_NAME, WLAN_PARAM_Integer,
458 struct hdd_config, dot11Mode,
459 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
460 CFG_DOT11_MODE_DEFAULT,
461 CFG_DOT11_MODE_MIN,
462 CFG_DOT11_MODE_MAX),
463
464 REG_VARIABLE(CFG_CHANNEL_BONDING_MODE_24GHZ_NAME, WLAN_PARAM_Integer,
465 struct hdd_config, nChannelBondingMode24GHz,
466 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
467 CFG_CHANNEL_BONDING_MODE_DEFAULT,
468 CFG_CHANNEL_BONDING_MODE_MIN,
469 CFG_CHANNEL_BONDING_MODE_MAX),
470
Abhishek Singhb59f8d42017-07-31 14:42:47 +0530471 REG_VARIABLE(CFG_OVERRIDE_HT40_20_24GHZ_NAME, WLAN_PARAM_Integer,
472 struct hdd_config, override_ht20_40_24g,
473 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
474 CFG_OVERRIDE_HT40_20_24GHZ_DEFAULT,
475 CFG_OVERRIDE_HT40_20_24GHZ_MIN,
476 CFG_OVERRIDE_HT40_20_24GHZ_MAX),
477
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800478 REG_VARIABLE(CFG_CHANNEL_BONDING_MODE_5GHZ_NAME, WLAN_PARAM_Integer,
479 struct hdd_config, nChannelBondingMode5GHz,
480 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
481 CFG_CHANNEL_BONDING_MODE_DEFAULT,
482 CFG_CHANNEL_BONDING_MODE_MIN,
483 CFG_CHANNEL_BONDING_MODE_MAX),
484
485 REG_VARIABLE(CFG_MAX_RX_AMPDU_FACTOR_NAME, WLAN_PARAM_Integer,
486 struct hdd_config, MaxRxAmpduFactor,
487 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
488 CFG_MAX_RX_AMPDU_FACTOR_DEFAULT,
489 CFG_MAX_RX_AMPDU_FACTOR_MIN,
490 CFG_MAX_RX_AMPDU_FACTOR_MAX),
491
Krishna Kumaar Natarajan22b59a72015-11-23 18:54:58 -0800492 REG_VARIABLE(CFG_HT_MPDU_DENSITY_NAME, WLAN_PARAM_Integer,
493 struct hdd_config, ht_mpdu_density,
Jeff Johnson03294f12016-12-09 17:10:24 -0800494 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
Krishna Kumaar Natarajan22b59a72015-11-23 18:54:58 -0800495 CFG_HT_MPDU_DENSITY_DEFAULT,
496 CFG_HT_MPDU_DENSITY_MIN,
497 CFG_HT_MPDU_DENSITY_MAX),
498
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800499 REG_VARIABLE(CFG_SHORT_GI_20MHZ_NAME, WLAN_PARAM_Integer,
500 struct hdd_config, ShortGI20MhzEnable,
501 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
502 CFG_SHORT_GI_20MHZ_DEFAULT,
503 CFG_SHORT_GI_20MHZ_MIN,
504 CFG_SHORT_GI_20MHZ_MAX),
505
506 REG_VARIABLE(CFG_SCAN_RESULT_AGE_COUNT_NAME, WLAN_PARAM_Integer,
507 struct hdd_config, ScanResultAgeCount,
508 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
509 CFG_SCAN_RESULT_AGE_COUNT_DEFAULT,
510 CFG_SCAN_RESULT_AGE_COUNT_MIN,
511 CFG_SCAN_RESULT_AGE_COUNT_MAX),
512
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800513 REG_VARIABLE(CFG_RSSI_CATEGORY_GAP_NAME, WLAN_PARAM_Integer,
514 struct hdd_config, nRssiCatGap,
515 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
516 CFG_RSSI_CATEGORY_GAP_DEFAULT,
517 CFG_RSSI_CATEGORY_GAP_MIN,
518 CFG_RSSI_CATEGORY_GAP_MAX),
519
520 REG_VARIABLE(CFG_SHORT_PREAMBLE_NAME, WLAN_PARAM_Integer,
521 struct hdd_config, fIsShortPreamble,
522 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
523 CFG_SHORT_PREAMBLE_DEFAULT,
524 CFG_SHORT_PREAMBLE_MIN,
525 CFG_SHORT_PREAMBLE_MAX),
526
527 REG_VARIABLE_STRING(CFG_IBSS_BSSID_NAME, WLAN_PARAM_MacAddr,
528 struct hdd_config, IbssBssid,
529 VAR_FLAGS_OPTIONAL,
530 (void *)CFG_IBSS_BSSID_DEFAULT),
531
532 REG_VARIABLE_STRING(CFG_INTF0_MAC_ADDR_NAME, WLAN_PARAM_MacAddr,
533 struct hdd_config, intfMacAddr[0],
534 VAR_FLAGS_OPTIONAL,
535 (void *)CFG_INTF0_MAC_ADDR_DEFAULT),
536
537 REG_VARIABLE_STRING(CFG_INTF1_MAC_ADDR_NAME, WLAN_PARAM_MacAddr,
538 struct hdd_config, intfMacAddr[1],
539 VAR_FLAGS_OPTIONAL,
540 (void *)CFG_INTF1_MAC_ADDR_DEFAULT),
541
542 REG_VARIABLE_STRING(CFG_INTF2_MAC_ADDR_NAME, WLAN_PARAM_MacAddr,
543 struct hdd_config, intfMacAddr[2],
544 VAR_FLAGS_OPTIONAL,
545 (void *)CFG_INTF2_MAC_ADDR_DEFAULT),
546
547 REG_VARIABLE_STRING(CFG_INTF3_MAC_ADDR_NAME, WLAN_PARAM_MacAddr,
548 struct hdd_config, intfMacAddr[3],
549 VAR_FLAGS_OPTIONAL,
550 (void *)CFG_INTF3_MAC_ADDR_DEFAULT),
551
552 REG_VARIABLE(CFG_AP_QOS_UAPSD_MODE_NAME, WLAN_PARAM_Integer,
553 struct hdd_config, apUapsdEnabled,
554 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
555 CFG_AP_QOS_UAPSD_MODE_DEFAULT,
556 CFG_AP_QOS_UAPSD_MODE_MIN,
557 CFG_AP_QOS_UAPSD_MODE_MAX),
558
559
560 REG_VARIABLE(CFG_AP_ENABLE_RANDOM_BSSID_NAME, WLAN_PARAM_Integer,
561 struct hdd_config, apRandomBssidEnabled,
562 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
563 CFG_AP_ENABLE_RANDOM_BSSID_DEFAULT,
564 CFG_AP_ENABLE_RANDOM_BSSID_MIN,
565 CFG_AP_ENABLE_RANDOM_BSSID_MAX),
566
567 REG_VARIABLE(CFG_AP_ENABLE_PROTECTION_MODE_NAME, WLAN_PARAM_Integer,
568 struct hdd_config, apProtEnabled,
569 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
570 CFG_AP_ENABLE_PROTECTION_MODE_DEFAULT,
571 CFG_AP_ENABLE_PROTECTION_MODE_MIN,
572 CFG_AP_ENABLE_PROTECTION_MODE_MAX),
573
574 REG_VARIABLE(CFG_AP_PROTECTION_MODE_NAME, WLAN_PARAM_HexInteger,
575 struct hdd_config, apProtection,
576 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
577 CFG_AP_PROTECTION_MODE_DEFAULT,
578 CFG_AP_PROTECTION_MODE_MIN,
579 CFG_AP_PROTECTION_MODE_MAX),
580
581 REG_VARIABLE(CFG_AP_OBSS_PROTECTION_MODE_NAME, WLAN_PARAM_Integer,
582 struct hdd_config, apOBSSProtEnabled,
583 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
584 CFG_AP_OBSS_PROTECTION_MODE_DEFAULT,
585 CFG_AP_OBSS_PROTECTION_MODE_MIN,
586 CFG_AP_OBSS_PROTECTION_MODE_MAX),
587
588 REG_VARIABLE(CFG_AP_STA_SECURITY_SEPERATION_NAME, WLAN_PARAM_Integer,
589 struct hdd_config, apDisableIntraBssFwd,
590 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
591 CFG_AP_STA_SECURITY_SEPERATION_DEFAULT,
592 CFG_AP_STA_SECURITY_SEPERATION_MIN,
593 CFG_AP_STA_SECURITY_SEPERATION_MAX),
594
595 REG_VARIABLE(CFG_ENABLE_LTE_COEX, WLAN_PARAM_Integer,
596 struct hdd_config, enableLTECoex,
597 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
598 CFG_ENABLE_LTE_COEX_DEFAULT,
599 CFG_ENABLE_LTE_COEX_MIN,
600 CFG_ENABLE_LTE_COEX_MAX),
Agrawal Ashishbafaff12016-12-27 17:43:08 +0530601
Nachiket Kukade8983cf62017-10-12 18:14:48 +0530602 REG_VARIABLE(CFG_VC_MODE_BITMAP, WLAN_PARAM_HexInteger,
603 struct hdd_config, vc_mode_cfg_bitmap,
604 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
605 CFG_VC_MODE_BITMAP_DEFAULT,
606 CFG_VC_MODE_BITMAP_MIN,
607 CFG_VC_MODE_BITMAP_MAX),
608
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800609 REG_VARIABLE(CFG_FORCE_SAP_ACS, WLAN_PARAM_Integer,
Agrawal Ashishbafaff12016-12-27 17:43:08 +0530610 struct hdd_config, force_sap_acs,
611 VAR_FLAGS_DYNAMIC_CFG |
612 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
613 CFG_FORCE_SAP_ACS_DEFAULT,
614 CFG_FORCE_SAP_ACS_MIN,
615 CFG_FORCE_SAP_ACS_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800616
617 REG_VARIABLE(CFG_FORCE_SAP_ACS_START_CH, WLAN_PARAM_Integer,
Agrawal Ashishbafaff12016-12-27 17:43:08 +0530618 struct hdd_config, force_sap_acs_st_ch,
619 VAR_FLAGS_DYNAMIC_CFG |
620 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
621 CFG_FORCE_SAP_ACS_START_CH_DEFAULT,
622 CFG_FORCE_SAP_ACS_START_CH_MIN,
623 CFG_FORCE_SAP_ACS_START_CH_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800624
625 REG_VARIABLE(CFG_FORCE_SAP_ACS_END_CH, WLAN_PARAM_Integer,
Agrawal Ashishbafaff12016-12-27 17:43:08 +0530626 struct hdd_config, force_sap_acs_end_ch,
627 VAR_FLAGS_DYNAMIC_CFG |
628 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
629 CFG_FORCE_SAP_ACS_END_CH_DEFAULT,
630 CFG_FORCE_SAP_ACS_END_CH_MIN,
631 CFG_FORCE_SAP_ACS_END_CH_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800632
Ganesh Kondabattini408fb8d2017-08-08 22:00:20 +0530633 REG_VARIABLE(CFG_ENABLE_SAP_MANDATORY_CHAN_LIST, WLAN_PARAM_Integer,
634 struct hdd_config, enable_sap_mandatory_chan_list,
635 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
636 CFG_ENABLE_SAP_MANDATORY_CHAN_LIST_DEFAULT,
637 CFG_ENABLE_SAP_MANDATORY_CHAN_LIST_MIN,
638 CFG_ENABLE_SAP_MANDATORY_CHAN_LIST_MAX),
639
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800640 REG_VARIABLE(CFG_AP_KEEP_ALIVE_PERIOD_NAME, WLAN_PARAM_Integer,
641 struct hdd_config, apKeepAlivePeriod,
642 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
643 CFG_AP_KEEP_ALIVE_PERIOD_DEFAULT,
644 CFG_AP_KEEP_ALIVE_PERIOD_MIN,
645 CFG_AP_KEEP_ALIVE_PERIOD_MAX),
646
647 REG_VARIABLE(CFG_GO_KEEP_ALIVE_PERIOD_NAME, WLAN_PARAM_Integer,
648 struct hdd_config, goKeepAlivePeriod,
649 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
650 CFG_GO_KEEP_ALIVE_PERIOD_DEFAULT,
651 CFG_GO_KEEP_ALIVE_PERIOD_MIN,
652 CFG_GO_KEEP_ALIVE_PERIOD_MAX),
653
654 REG_VARIABLE(CFG_AP_LINK_MONITOR_PERIOD_NAME, WLAN_PARAM_Integer,
655 struct hdd_config, apLinkMonitorPeriod,
656 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
657 CFG_AP_LINK_MONITOR_PERIOD_DEFAULT,
658 CFG_AP_LINK_MONITOR_PERIOD_MIN,
659 CFG_AP_LINK_MONITOR_PERIOD_MAX),
660
661 REG_VARIABLE(CFG_GO_LINK_MONITOR_PERIOD_NAME, WLAN_PARAM_Integer,
662 struct hdd_config, goLinkMonitorPeriod,
663 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
664 CFG_GO_LINK_MONITOR_PERIOD_DEFAULT,
665 CFG_GO_LINK_MONITOR_PERIOD_MIN,
666 CFG_GO_LINK_MONITOR_PERIOD_MAX),
667
668 REG_VARIABLE(CFG_DISABLE_PACKET_FILTER, WLAN_PARAM_Integer,
669 struct hdd_config, disablePacketFilter,
670 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
671 CFG_DISABLE_PACKET_FILTER_DEFAULT,
672 CFG_DISABLE_PACKET_FILTER_MIN,
673 CFG_DISABLE_PACKET_FILTER_MAX),
674
675 REG_VARIABLE(CFG_BEACON_INTERVAL_NAME, WLAN_PARAM_Integer,
676 struct hdd_config, nBeaconInterval,
677 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
678 CFG_BEACON_INTERVAL_DEFAULT,
679 CFG_BEACON_INTERVAL_MIN,
680 CFG_BEACON_INTERVAL_MAX),
681
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800682 REG_VARIABLE(CFG_VCC_RSSI_TRIGGER_NAME, WLAN_PARAM_Integer,
683 struct hdd_config, nVccRssiTrigger,
684 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
685 CFG_VCC_RSSI_TRIGGER_DEFAULT,
686 CFG_VCC_RSSI_TRIGGER_MIN,
687 CFG_VCC_RSSI_TRIGGER_MAX),
688
689 REG_VARIABLE(CFG_VCC_UL_MAC_LOSS_THRESH_NAME, WLAN_PARAM_Integer,
690 struct hdd_config, nVccUlMacLossThreshold,
691 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
692 CFG_VCC_UL_MAC_LOSS_THRESH_DEFAULT,
693 CFG_VCC_UL_MAC_LOSS_THRESH_MIN,
694 CFG_VCC_UL_MAC_LOSS_THRESH_MAX),
695
696 REG_VARIABLE(CFG_PASSIVE_MAX_CHANNEL_TIME_NAME, WLAN_PARAM_Integer,
697 struct hdd_config, nPassiveMaxChnTime,
698 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
699 CFG_PASSIVE_MAX_CHANNEL_TIME_DEFAULT,
700 CFG_PASSIVE_MAX_CHANNEL_TIME_MIN,
701 CFG_PASSIVE_MAX_CHANNEL_TIME_MAX),
702
703 REG_VARIABLE(CFG_PASSIVE_MIN_CHANNEL_TIME_NAME, WLAN_PARAM_Integer,
704 struct hdd_config, nPassiveMinChnTime,
705 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
706 CFG_PASSIVE_MIN_CHANNEL_TIME_DEFAULT,
707 CFG_PASSIVE_MIN_CHANNEL_TIME_MIN,
708 CFG_PASSIVE_MIN_CHANNEL_TIME_MAX),
709
710 REG_VARIABLE(CFG_ACTIVE_MAX_CHANNEL_TIME_NAME, WLAN_PARAM_Integer,
711 struct hdd_config, nActiveMaxChnTime,
712 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
713 CFG_ACTIVE_MAX_CHANNEL_TIME_DEFAULT,
714 CFG_ACTIVE_MAX_CHANNEL_TIME_MIN,
715 CFG_ACTIVE_MAX_CHANNEL_TIME_MAX),
716
717 REG_VARIABLE(CFG_ACTIVE_MIN_CHANNEL_TIME_NAME, WLAN_PARAM_Integer,
718 struct hdd_config, nActiveMinChnTime,
719 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
720 CFG_ACTIVE_MIN_CHANNEL_TIME_DEFAULT,
721 CFG_ACTIVE_MIN_CHANNEL_TIME_MIN,
722 CFG_ACTIVE_MIN_CHANNEL_TIME_MAX),
723
Kiran Kumar Lokerea2dfefe2017-06-29 19:01:24 -0700724 REG_VARIABLE(CFG_SCAN_NUM_PROBES_NAME, WLAN_PARAM_Integer,
725 struct hdd_config, scan_num_probes,
726 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
727 CFG_SCAN_NUM_PROBES_DEFAULT,
728 CFG_SCAN_NUM_PROBES_MIN,
729 CFG_SCAN_NUM_PROBES_MAX),
730
731 REG_VARIABLE(CFG_SCAN_PROBE_REPEAT_TIME_NAME, WLAN_PARAM_Integer,
732 struct hdd_config, scan_probe_repeat_time,
733 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
734 CFG_SCAN_PROBE_REPEAT_TIME_DEFAULT,
735 CFG_SCAN_PROBE_REPEAT_TIME_MIN,
736 CFG_SCAN_PROBE_REPEAT_TIME_MAX),
737
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800738 REG_VARIABLE(CFG_PASSIVE_MAX_CHANNEL_TIME_CONC_NAME, WLAN_PARAM_Integer,
739 struct hdd_config, nPassiveMaxChnTimeConc,
740 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
741 CFG_PASSIVE_MAX_CHANNEL_TIME_CONC_DEFAULT,
742 CFG_PASSIVE_MAX_CHANNEL_TIME_CONC_MIN,
743 CFG_PASSIVE_MAX_CHANNEL_TIME_CONC_MAX),
744
745 REG_VARIABLE(CFG_PASSIVE_MIN_CHANNEL_TIME_CONC_NAME, WLAN_PARAM_Integer,
746 struct hdd_config, nPassiveMinChnTimeConc,
747 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
748 CFG_PASSIVE_MIN_CHANNEL_TIME_CONC_DEFAULT,
749 CFG_PASSIVE_MIN_CHANNEL_TIME_CONC_MIN,
750 CFG_PASSIVE_MIN_CHANNEL_TIME_CONC_MAX),
751
752 REG_VARIABLE(CFG_ACTIVE_MAX_CHANNEL_TIME_CONC_NAME, WLAN_PARAM_Integer,
753 struct hdd_config, nActiveMaxChnTimeConc,
754 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
755 CFG_ACTIVE_MAX_CHANNEL_TIME_CONC_DEFAULT,
756 CFG_ACTIVE_MAX_CHANNEL_TIME_CONC_MIN,
757 CFG_ACTIVE_MAX_CHANNEL_TIME_CONC_MAX),
758
759 REG_VARIABLE(CFG_ACTIVE_MIN_CHANNEL_TIME_CONC_NAME, WLAN_PARAM_Integer,
760 struct hdd_config, nActiveMinChnTimeConc,
761 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
762 CFG_ACTIVE_MIN_CHANNEL_TIME_CONC_DEFAULT,
763 CFG_ACTIVE_MIN_CHANNEL_TIME_CONC_MIN,
764 CFG_ACTIVE_MIN_CHANNEL_TIME_CONC_MAX),
765
766 REG_VARIABLE(CFG_REST_TIME_CONC_NAME, WLAN_PARAM_Integer,
767 struct hdd_config, nRestTimeConc,
768 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
769 CFG_REST_TIME_CONC_DEFAULT,
770 CFG_REST_TIME_CONC_MIN,
771 CFG_REST_TIME_CONC_MAX),
772
Agrawal Ashish17bb3902016-05-05 13:29:40 +0530773 REG_VARIABLE(CFG_MIN_REST_TIME_NAME, WLAN_PARAM_Integer,
774 struct hdd_config, min_rest_time_conc,
775 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
776 CFG_MIN_REST_TIME_DEFAULT,
777 CFG_MIN_REST_TIME_MIN,
778 CFG_MIN_REST_TIME_MAX),
779
Jeff Johnson03294f12016-12-09 17:10:24 -0800780 REG_VARIABLE(CFG_IDLE_TIME_NAME, WLAN_PARAM_Integer,
Agrawal Ashish17bb3902016-05-05 13:29:40 +0530781 struct hdd_config, idle_time_conc,
782 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
783 CFG_IDLE_TIME_DEFAULT,
784 CFG_IDLE_TIME_MIN,
Jeff Johnson03294f12016-12-09 17:10:24 -0800785 CFG_IDLE_TIME_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800786
787 REG_VARIABLE(CFG_MAX_PS_POLL_NAME, WLAN_PARAM_Integer,
788 struct hdd_config, nMaxPsPoll,
789 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
790 CFG_MAX_PS_POLL_DEFAULT,
791 CFG_MAX_PS_POLL_MIN,
792 CFG_MAX_PS_POLL_MAX),
793
794 REG_VARIABLE(CFG_MAX_TX_POWER_NAME, WLAN_PARAM_Integer,
795 struct hdd_config, nTxPowerCap,
796 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
797 CFG_MAX_TX_POWER_DEFAULT,
798 CFG_MAX_TX_POWER_MIN,
799 CFG_MAX_TX_POWER_MAX),
800
Padma, Santhosh Kumar29df3622016-08-16 19:15:16 +0530801 REG_VARIABLE(CFG_TX_POWER_CTRL_NAME, WLAN_PARAM_Integer,
802 struct hdd_config, allow_tpc_from_ap,
803 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
804 CFG_TX_POWER_CTRL_DEFAULT,
805 CFG_TX_POWER_CTRL_MIN,
806 CFG_TX_POWER_CTRL_MAX),
807
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800808 REG_VARIABLE(CFG_MAX_LI_MODULATED_DTIM_NAME, WLAN_PARAM_Integer,
809 struct hdd_config, fMaxLIModulatedDTIM,
810 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
811 CFG_MAX_LI_MODULATED_DTIM_DEFAULT,
812 CFG_MAX_LI_MODULATED_DTIM_MIN,
813 CFG_MAX_LI_MODULATED_DTIM_MAX),
814
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800815 REG_VARIABLE(CFG_FW_MCC_RTS_CTS_PROT_NAME, WLAN_PARAM_Integer,
816 struct hdd_config, mcc_rts_cts_prot_enable,
817 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
818 CFG_FW_MCC_RTS_CTS_PROT_DEFAULT,
819 CFG_FW_MCC_RTS_CTS_PROT_MIN,
820 CFG_FW_MCC_RTS_CTS_PROT_MAX),
821
822 REG_VARIABLE(CFG_FW_MCC_BCAST_PROB_RESP_NAME, WLAN_PARAM_Integer,
823 struct hdd_config, mcc_bcast_prob_resp_enable,
824 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
825 CFG_FW_MCC_BCAST_PROB_RESP_DEFAULT,
826 CFG_FW_MCC_BCAST_PROB_RESP_MIN,
827 CFG_FW_MCC_BCAST_PROB_RESP_MAX),
828
829 REG_VARIABLE(CFG_DATA_INACTIVITY_TIMEOUT_NAME, WLAN_PARAM_Integer,
830 struct hdd_config, nDataInactivityTimeout,
831 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
832 CFG_DATA_INACTIVITY_TIMEOUT_DEFAULT,
833 CFG_DATA_INACTIVITY_TIMEOUT_MIN,
834 CFG_DATA_INACTIVITY_TIMEOUT_MAX),
835
Mukul Sharmaed92f2f2017-04-20 00:06:28 +0530836 REG_VARIABLE(CFG_WOW_DATA_INACTIVITY_TIMEOUT_NAME, WLAN_PARAM_Integer,
837 struct hdd_config, wow_data_inactivity_timeout,
838 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
839 CFG_WOW_DATA_INACTIVITY_TIMEOUT_DEFAULT,
840 CFG_WOW_DATA_INACTIVITY_TIMEOUT_MIN,
841 CFG_WOW_DATA_INACTIVITY_TIMEOUT_MAX),
842
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800843 REG_VARIABLE(CFG_QOS_WMM_MODE_NAME, WLAN_PARAM_Integer,
844 struct hdd_config, WmmMode,
845 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
846 CFG_QOS_WMM_MODE_DEFAULT,
847 CFG_QOS_WMM_MODE_MIN,
848 CFG_QOS_WMM_MODE_MAX),
849
850 REG_VARIABLE(CFG_QOS_WMM_80211E_ENABLED_NAME, WLAN_PARAM_Integer,
851 struct hdd_config, b80211eIsEnabled,
852 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
853 CFG_QOS_WMM_80211E_ENABLED_DEFAULT,
854 CFG_QOS_WMM_80211E_ENABLED_MIN,
855 CFG_QOS_WMM_80211E_ENABLED_MAX),
856
857 REG_VARIABLE(CFG_QOS_WMM_UAPSD_MASK_NAME, WLAN_PARAM_HexInteger,
858 struct hdd_config, UapsdMask,
859 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
860 CFG_QOS_WMM_UAPSD_MASK_DEFAULT,
861 CFG_QOS_WMM_UAPSD_MASK_MIN,
862 CFG_QOS_WMM_UAPSD_MASK_MAX),
863
864 REG_VARIABLE(CFG_QOS_WMM_INFRA_UAPSD_VO_SRV_INTV_NAME,
865 WLAN_PARAM_Integer,
866 struct hdd_config, InfraUapsdVoSrvIntv,
867 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
868 CFG_QOS_WMM_INFRA_UAPSD_VO_SRV_INTV_DEFAULT,
869 CFG_QOS_WMM_INFRA_UAPSD_VO_SRV_INTV_MIN,
870 CFG_QOS_WMM_INFRA_UAPSD_VO_SRV_INTV_MAX),
871
872 REG_VARIABLE(CFG_QOS_WMM_INFRA_UAPSD_VO_SUS_INTV_NAME,
873 WLAN_PARAM_Integer,
874 struct hdd_config, InfraUapsdVoSuspIntv,
875 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
876 CFG_QOS_WMM_INFRA_UAPSD_VO_SUS_INTV_DEFAULT,
877 CFG_QOS_WMM_INFRA_UAPSD_VO_SUS_INTV_MIN,
878 CFG_QOS_WMM_INFRA_UAPSD_VO_SUS_INTV_MAX),
879
880 REG_VARIABLE(CFG_QOS_WMM_INFRA_UAPSD_VI_SRV_INTV_NAME,
881 WLAN_PARAM_Integer,
882 struct hdd_config, InfraUapsdViSrvIntv,
883 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
884 CFG_QOS_WMM_INFRA_UAPSD_VI_SRV_INTV_DEFAULT,
885 CFG_QOS_WMM_INFRA_UAPSD_VI_SRV_INTV_MIN,
886 CFG_QOS_WMM_INFRA_UAPSD_VI_SRV_INTV_MAX),
887
888 REG_VARIABLE(CFG_QOS_WMM_INFRA_UAPSD_VI_SUS_INTV_NAME,
889 WLAN_PARAM_Integer,
890 struct hdd_config, InfraUapsdViSuspIntv,
891 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
892 CFG_QOS_WMM_INFRA_UAPSD_VI_SUS_INTV_DEFAULT,
893 CFG_QOS_WMM_INFRA_UAPSD_VI_SUS_INTV_MIN,
894 CFG_QOS_WMM_INFRA_UAPSD_VI_SUS_INTV_MAX),
895
896 REG_VARIABLE(CFG_QOS_WMM_INFRA_UAPSD_BE_SRV_INTV_NAME,
897 WLAN_PARAM_Integer,
898 struct hdd_config, InfraUapsdBeSrvIntv,
899 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
900 CFG_QOS_WMM_INFRA_UAPSD_BE_SRV_INTV_DEFAULT,
901 CFG_QOS_WMM_INFRA_UAPSD_BE_SRV_INTV_MIN,
902 CFG_QOS_WMM_INFRA_UAPSD_BE_SRV_INTV_MAX),
903
904 REG_VARIABLE(CFG_QOS_WMM_INFRA_UAPSD_BE_SUS_INTV_NAME,
905 WLAN_PARAM_Integer,
906 struct hdd_config, InfraUapsdBeSuspIntv,
907 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
908 CFG_QOS_WMM_INFRA_UAPSD_BE_SUS_INTV_DEFAULT,
909 CFG_QOS_WMM_INFRA_UAPSD_BE_SUS_INTV_MIN,
910 CFG_QOS_WMM_INFRA_UAPSD_BE_SUS_INTV_MAX),
911
912 REG_VARIABLE(CFG_QOS_WMM_INFRA_UAPSD_BK_SRV_INTV_NAME,
913 WLAN_PARAM_Integer,
914 struct hdd_config, InfraUapsdBkSrvIntv,
915 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
916 CFG_QOS_WMM_INFRA_UAPSD_BK_SRV_INTV_DEFAULT,
917 CFG_QOS_WMM_INFRA_UAPSD_BK_SRV_INTV_MIN,
918 CFG_QOS_WMM_INFRA_UAPSD_BK_SRV_INTV_MAX),
919
920 REG_VARIABLE(CFG_QOS_WMM_INFRA_UAPSD_BK_SUS_INTV_NAME,
921 WLAN_PARAM_Integer,
922 struct hdd_config, InfraUapsdBkSuspIntv,
923 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
924 CFG_QOS_WMM_INFRA_UAPSD_BK_SUS_INTV_DEFAULT,
925 CFG_QOS_WMM_INFRA_UAPSD_BK_SUS_INTV_MIN,
926 CFG_QOS_WMM_INFRA_UAPSD_BK_SUS_INTV_MAX),
927
928#ifdef FEATURE_WLAN_ESE
929 REG_VARIABLE(CFG_QOS_WMM_INFRA_INACTIVITY_INTERVAL_NAME,
930 WLAN_PARAM_Integer,
931 struct hdd_config, InfraInactivityInterval,
932 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
933 CFG_QOS_WMM_INFRA_INACTIVITY_INTERVAL_DEFAULT,
934 CFG_QOS_WMM_INFRA_INACTIVITY_INTERVAL_MIN,
935 CFG_QOS_WMM_INFRA_INACTIVITY_INTERVAL_MAX),
936
937 REG_DYNAMIC_VARIABLE(CFG_ESE_FEATURE_ENABLED_NAME, WLAN_PARAM_Integer,
938 struct hdd_config, isEseIniFeatureEnabled,
939 VAR_FLAGS_OPTIONAL |
940 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
941 CFG_ESE_FEATURE_ENABLED_DEFAULT,
942 CFG_ESE_FEATURE_ENABLED_MIN,
943 CFG_ESE_FEATURE_ENABLED_MAX,
944 cb_notify_set_ese_feature_enabled, 0),
945#endif /* FEATURE_WLAN_ESE */
946
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800947 /* flag to turn ON/OFF Legacy Fast Roaming */
948 REG_DYNAMIC_VARIABLE(CFG_LFR_FEATURE_ENABLED_NAME, WLAN_PARAM_Integer,
949 struct hdd_config, isFastRoamIniFeatureEnabled,
950 VAR_FLAGS_OPTIONAL |
951 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
952 CFG_LFR_FEATURE_ENABLED_DEFAULT,
953 CFG_LFR_FEATURE_ENABLED_MIN,
954 CFG_LFR_FEATURE_ENABLED_MAX,
955 notify_is_fast_roam_ini_feature_enabled, 0),
956
957 /* flag to turn ON/OFF Motion assistance for Legacy Fast Roaming */
958 REG_DYNAMIC_VARIABLE(CFG_LFR_MAWC_FEATURE_ENABLED_NAME,
959 WLAN_PARAM_Integer,
960 struct hdd_config, MAWCEnabled,
961 VAR_FLAGS_OPTIONAL |
962 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
963 CFG_LFR_MAWC_FEATURE_ENABLED_DEFAULT,
964 CFG_LFR_MAWC_FEATURE_ENABLED_MIN,
965 CFG_LFR_MAWC_FEATURE_ENABLED_MAX,
966 notify_is_mawc_ini_feature_enabled, 0),
967
Varun Reddy Yeturu061d4d62017-07-20 09:39:32 -0700968 REG_VARIABLE(CFG_MAWC_ROAM_ENABLED_NAME, WLAN_PARAM_Integer,
969 struct hdd_config, mawc_roam_enabled,
970 VAR_FLAGS_OPTIONAL |
971 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
972 CFG_MAWC_ROAM_ENABLED_DEFAULT,
973 CFG_MAWC_ROAM_ENABLED_MIN,
974 CFG_MAWC_ROAM_ENABLED_MAX),
975
976 REG_VARIABLE(CFG_MAWC_ROAM_TRAFFIC_THRESHOLD_NAME, WLAN_PARAM_Integer,
977 struct hdd_config, mawc_roam_traffic_threshold,
978 VAR_FLAGS_OPTIONAL |
979 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
980 CFG_MAWC_ROAM_TRAFFIC_THRESHOLD_DEFAULT,
981 CFG_MAWC_ROAM_TRAFFIC_THRESHOLD_MIN,
982 CFG_MAWC_ROAM_TRAFFIC_THRESHOLD_MAX),
983
984 REG_VARIABLE(CFG_MAWC_ROAM_AP_RSSI_THRESHOLD_NAME,
985 WLAN_PARAM_SignedInteger, struct hdd_config,
986 mawc_roam_ap_rssi_threshold, VAR_FLAGS_OPTIONAL |
987 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
988 CFG_MAWC_ROAM_AP_RSSI_THRESHOLD_DEFAULT,
989 CFG_MAWC_ROAM_AP_RSSI_THRESHOLD_MIN,
990 CFG_MAWC_ROAM_AP_RSSI_THRESHOLD_MAX),
991
992 REG_VARIABLE(CFG_MAWC_ROAM_RSSI_HIGH_ADJUST_NAME, WLAN_PARAM_Integer,
993 struct hdd_config, mawc_roam_rssi_high_adjust,
994 VAR_FLAGS_OPTIONAL |
995 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
996 CFG_MAWC_ROAM_RSSI_HIGH_ADJUST_DEFAULT,
997 CFG_MAWC_ROAM_RSSI_HIGH_ADJUST_MIN,
998 CFG_MAWC_ROAM_RSSI_HIGH_ADJUST_MAX),
999
1000 REG_VARIABLE(CFG_MAWC_ROAM_RSSI_LOW_ADJUST_NAME, WLAN_PARAM_Integer,
1001 struct hdd_config, mawc_roam_rssi_low_adjust,
1002 VAR_FLAGS_OPTIONAL |
1003 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1004 CFG_MAWC_ROAM_RSSI_LOW_ADJUST_DEFAULT,
1005 CFG_MAWC_ROAM_RSSI_LOW_ADJUST_MIN,
1006 CFG_MAWC_ROAM_RSSI_LOW_ADJUST_MAX),
1007
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001008 /* flag to turn ON/OFF 11r and ESE FastTransition */
1009 REG_DYNAMIC_VARIABLE(CFG_FAST_TRANSITION_ENABLED_NAME,
1010 WLAN_PARAM_Integer,
1011 struct hdd_config, isFastTransitionEnabled,
1012 VAR_FLAGS_OPTIONAL |
1013 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1014 CFG_FAST_TRANSITION_ENABLED_NAME_DEFAULT,
1015 CFG_FAST_TRANSITION_ENABLED_NAME_MIN,
1016 CFG_FAST_TRANSITION_ENABLED_NAME_MAX,
1017 cb_notify_set_fast_transition_enabled, 0),
1018
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07001019 /* Variable to specify the delta/difference between the
1020 * RSSI of current AP and roamable AP while roaming
Jeff Johnson78d88a82017-01-12 09:50:54 -08001021 */
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001022 REG_DYNAMIC_VARIABLE(CFG_ROAM_RSSI_DIFF_NAME, WLAN_PARAM_Integer,
1023 struct hdd_config, RoamRssiDiff,
1024 VAR_FLAGS_OPTIONAL |
1025 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1026 CFG_ROAM_RSSI_DIFF_DEFAULT,
1027 CFG_ROAM_RSSI_DIFF_MIN,
1028 CFG_ROAM_RSSI_DIFF_MAX,
1029 cb_notify_set_roam_rssi_diff, 0),
1030
Abhishek Singh34c0e632017-09-28 14:39:29 +05301031 REG_VARIABLE(CFG_ROAM_RSSI_ABS_THRESHOLD_NAME, WLAN_PARAM_SignedInteger,
1032 struct hdd_config, rssi_abs_thresh,
1033 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1034 CFG_ROAM_RSSI_ABS_THRESHOLD_DEFAULT,
1035 CFG_ROAM_RSSI_ABS_THRESHOLD_MIN,
1036 CFG_ROAM_RSSI_ABS_THRESHOLD_MAX),
1037
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001038 REG_DYNAMIC_VARIABLE(CFG_ENABLE_WES_MODE_NAME, WLAN_PARAM_Integer,
1039 struct hdd_config, isWESModeEnabled,
1040 VAR_FLAGS_OPTIONAL |
1041 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1042 CFG_ENABLE_WES_MODE_NAME_DEFAULT,
1043 CFG_ENABLE_WES_MODE_NAME_MIN,
1044 CFG_ENABLE_WES_MODE_NAME_MAX,
1045 cb_notify_set_wes_mode, 0),
Deepak Dhamdhere828f1892017-02-09 11:51:19 -08001046 REG_VARIABLE(CFG_PMKID_MODES_NAME, WLAN_PARAM_Integer,
1047 struct hdd_config, pmkid_modes,
Deepak Dhamdheref2a7d8b2016-08-19 16:17:38 -07001048 VAR_FLAGS_OPTIONAL |
1049 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
Deepak Dhamdhere828f1892017-02-09 11:51:19 -08001050 CFG_PMKID_MODES_DEFAULT,
1051 CFG_PMKID_MODES_MIN,
1052 CFG_PMKID_MODES_MAX),
1053
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001054 REG_DYNAMIC_VARIABLE(CFG_ROAM_SCAN_OFFLOAD_ENABLED, WLAN_PARAM_Integer,
1055 struct hdd_config, isRoamOffloadScanEnabled,
1056 VAR_FLAGS_OPTIONAL |
1057 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1058 CFG_ROAM_SCAN_OFFLOAD_ENABLED_DEFAULT,
1059 CFG_ROAM_SCAN_OFFLOAD_ENABLED_MIN,
1060 CFG_ROAM_SCAN_OFFLOAD_ENABLED_MAX,
1061 cb_notify_update_roam_scan_offload_enabled, 0),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001062
1063 REG_VARIABLE(CFG_QOS_WMM_INFRA_DIR_AC_VO_NAME, WLAN_PARAM_Integer,
1064 struct hdd_config, InfraDirAcVo,
1065 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1066 CFG_QOS_WMM_INFRA_DIR_AC_VO_DEFAULT,
1067 CFG_QOS_WMM_INFRA_DIR_AC_VO_MIN,
1068 CFG_QOS_WMM_INFRA_DIR_AC_VO_MAX),
1069
1070 REG_VARIABLE(CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VO_NAME,
1071 WLAN_PARAM_HexInteger,
1072 struct hdd_config, InfraNomMsduSizeAcVo,
1073 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1074 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VO_DEFAULT,
1075 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VO_MIN,
1076 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VO_MAX),
1077
1078 REG_VARIABLE(CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VO_NAME,
1079 WLAN_PARAM_HexInteger,
1080 struct hdd_config, InfraMeanDataRateAcVo,
1081 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1082 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VO_DEFAULT,
1083 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VO_MIN,
1084 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VO_MAX),
1085
1086 REG_VARIABLE(CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VO_NAME,
1087 WLAN_PARAM_HexInteger,
1088 struct hdd_config, InfraMinPhyRateAcVo,
1089 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1090 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VO_DEFAULT,
1091 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VO_MIN,
1092 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VO_MAX),
1093
1094 REG_VARIABLE(CFG_QOS_WMM_INFRA_SBA_AC_VO_NAME, WLAN_PARAM_HexInteger,
1095 struct hdd_config, InfraSbaAcVo,
1096 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1097 CFG_QOS_WMM_INFRA_SBA_AC_VO_DEFAULT,
1098 CFG_QOS_WMM_INFRA_SBA_AC_VO_MIN,
1099 CFG_QOS_WMM_INFRA_SBA_AC_VO_MAX),
1100
1101 REG_VARIABLE(CFG_QOS_WMM_INFRA_DIR_AC_VI_NAME, WLAN_PARAM_Integer,
1102 struct hdd_config, InfraDirAcVi,
1103 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1104 CFG_QOS_WMM_INFRA_DIR_AC_VI_DEFAULT,
1105 CFG_QOS_WMM_INFRA_DIR_AC_VI_MIN,
1106 CFG_QOS_WMM_INFRA_DIR_AC_VI_MAX),
1107
1108 REG_VARIABLE(CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VI_NAME,
1109 WLAN_PARAM_HexInteger,
1110 struct hdd_config, InfraNomMsduSizeAcVi,
1111 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1112 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VI_DEFAULT,
1113 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VI_MIN,
1114 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VI_MAX),
1115
1116 REG_VARIABLE(CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VI_NAME,
1117 WLAN_PARAM_HexInteger,
1118 struct hdd_config, InfraMeanDataRateAcVi,
1119 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1120 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VI_DEFAULT,
1121 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VI_MIN,
1122 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VI_MAX),
1123
1124 REG_VARIABLE(CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VI_NAME,
1125 WLAN_PARAM_HexInteger,
1126 struct hdd_config, InfraMinPhyRateAcVi,
1127 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1128 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VI_DEFAULT,
1129 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VI_MIN,
1130 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VI_MAX),
1131
1132 REG_VARIABLE(CFG_QOS_WMM_INFRA_SBA_AC_VI_NAME, WLAN_PARAM_HexInteger,
1133 struct hdd_config, InfraSbaAcVi,
1134 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1135 CFG_QOS_WMM_INFRA_SBA_AC_VI_DEFAULT,
1136 CFG_QOS_WMM_INFRA_SBA_AC_VI_MIN,
1137 CFG_QOS_WMM_INFRA_SBA_AC_VI_MAX),
1138
1139 REG_VARIABLE(CFG_QOS_WMM_INFRA_DIR_AC_BE_NAME, WLAN_PARAM_Integer,
1140 struct hdd_config, InfraDirAcBe,
1141 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1142 CFG_QOS_WMM_INFRA_DIR_AC_BE_DEFAULT,
1143 CFG_QOS_WMM_INFRA_DIR_AC_BE_MIN,
1144 CFG_QOS_WMM_INFRA_DIR_AC_BE_MAX),
1145
1146 REG_VARIABLE(CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_BE_NAME,
1147 WLAN_PARAM_HexInteger,
1148 struct hdd_config, InfraNomMsduSizeAcBe,
1149 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1150 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_BE_DEFAULT,
1151 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_BE_MIN,
1152 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_BE_MAX),
1153
1154 REG_VARIABLE(CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_BE_NAME,
1155 WLAN_PARAM_HexInteger,
1156 struct hdd_config, InfraMeanDataRateAcBe,
1157 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1158 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_BE_DEFAULT,
1159 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_BE_MIN,
1160 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_BE_MAX),
1161
1162 REG_VARIABLE(CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_BE_NAME,
1163 WLAN_PARAM_HexInteger,
1164 struct hdd_config, InfraMinPhyRateAcBe,
1165 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1166 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_BE_DEFAULT,
1167 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_BE_MIN,
1168 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_BE_MAX),
1169
1170 REG_VARIABLE(CFG_QOS_WMM_INFRA_SBA_AC_BE_NAME, WLAN_PARAM_HexInteger,
1171 struct hdd_config, InfraSbaAcBe,
1172 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1173 CFG_QOS_WMM_INFRA_SBA_AC_BE_DEFAULT,
1174 CFG_QOS_WMM_INFRA_SBA_AC_BE_MIN,
1175 CFG_QOS_WMM_INFRA_SBA_AC_BE_MAX),
1176
1177 REG_VARIABLE(CFG_QOS_WMM_INFRA_DIR_AC_BK_NAME, WLAN_PARAM_Integer,
1178 struct hdd_config, InfraDirAcBk,
1179 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1180 CFG_QOS_WMM_INFRA_DIR_AC_BK_DEFAULT,
1181 CFG_QOS_WMM_INFRA_DIR_AC_BK_MIN,
1182 CFG_QOS_WMM_INFRA_DIR_AC_BK_MAX),
1183
1184 REG_VARIABLE(CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_BK_NAME,
1185 WLAN_PARAM_HexInteger,
1186 struct hdd_config, InfraNomMsduSizeAcBk,
1187 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1188 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_BK_DEFAULT,
1189 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_BK_MIN,
1190 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_BK_MAX),
1191
1192 REG_VARIABLE(CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_BK_NAME,
1193 WLAN_PARAM_HexInteger,
1194 struct hdd_config, InfraMeanDataRateAcBk,
1195 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1196 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_BK_DEFAULT,
1197 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_BK_MIN,
1198 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_BK_MAX),
1199
1200 REG_VARIABLE(CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_BK_NAME,
1201 WLAN_PARAM_HexInteger,
1202 struct hdd_config, InfraMinPhyRateAcBk,
1203 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1204 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_BK_DEFAULT,
1205 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_BK_MIN,
1206 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_BK_MAX),
1207
1208 REG_VARIABLE(CFG_QOS_WMM_INFRA_SBA_AC_BK_NAME, WLAN_PARAM_HexInteger,
1209 struct hdd_config, InfraSbaAcBk,
1210 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1211 CFG_QOS_WMM_INFRA_SBA_AC_BK_DEFAULT,
1212 CFG_QOS_WMM_INFRA_SBA_AC_BK_MIN,
1213 CFG_QOS_WMM_INFRA_SBA_AC_BK_MAX),
1214
1215 REG_VARIABLE(CFG_TL_DELAYED_TRGR_FRM_INT_NAME, WLAN_PARAM_Integer,
1216 struct hdd_config, DelayedTriggerFrmInt,
1217 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1218 CFG_TL_DELAYED_TRGR_FRM_INT_DEFAULT,
1219 CFG_TL_DELAYED_TRGR_FRM_INT_MIN,
1220 CFG_TL_DELAYED_TRGR_FRM_INT_MAX),
1221
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001222 REG_VARIABLE(CFG_QOS_IMPLICIT_SETUP_ENABLED_NAME, WLAN_PARAM_Integer,
1223 struct hdd_config, bImplicitQosEnabled,
1224 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1225 CFG_QOS_IMPLICIT_SETUP_ENABLED_DEFAULT,
1226 CFG_QOS_IMPLICIT_SETUP_ENABLED_MIN,
1227 CFG_QOS_IMPLICIT_SETUP_ENABLED_MAX),
1228
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001229#ifdef FEATURE_WLAN_MCC_TO_SCC_SWITCH
1230 REG_VARIABLE(CFG_WLAN_MCC_TO_SCC_SWITCH_MODE, WLAN_PARAM_Integer,
1231 struct hdd_config, WlanMccToSccSwitchMode,
1232 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1233 CFG_WLAN_MCC_TO_SCC_SWITCH_MODE_DEFAULT,
1234 CFG_WLAN_MCC_TO_SCC_SWITCH_MODE_MIN,
1235 CFG_WLAN_MCC_TO_SCC_SWITCH_MODE_MAX),
1236#endif
1237#ifdef FEATURE_WLAN_AUTO_SHUTDOWN
1238 REG_VARIABLE(CFG_WLAN_AUTO_SHUTDOWN, WLAN_PARAM_Integer,
1239 struct hdd_config, WlanAutoShutdown,
1240 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1241 CFG_WLAN_AUTO_SHUTDOWN_DEFAULT,
1242 CFG_WLAN_AUTO_SHUTDOWN_MIN,
1243 CFG_WLAN_AUTO_SHUTDOWN_MAX),
1244#endif
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001245 REG_VARIABLE(CFG_RRM_ENABLE_NAME, WLAN_PARAM_Integer,
1246 struct hdd_config, fRrmEnable,
1247 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1248 CFG_RRM_ENABLE_DEFAULT,
1249 CFG_RRM_ENABLE_MIN,
1250 CFG_RRM_ENABLE_MAX),
1251
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001252 REG_VARIABLE(CFG_RRM_MEAS_RANDOMIZATION_INTVL_NAME, WLAN_PARAM_Integer,
1253 struct hdd_config, nRrmRandnIntvl,
1254 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1255 CFG_RRM_MEAS_RANDOMIZATION_INTVL_DEFAULT,
1256 CFG_RRM_MEAS_RANDOMIZATION_INTVL_MIN,
1257 CFG_RRM_MEAS_RANDOMIZATION_INTVL_MAX),
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08001258
1259 REG_VARIABLE_STRING(CFG_RM_CAPABILITY_NAME, WLAN_PARAM_String,
1260 struct hdd_config, rm_capability,
1261 VAR_FLAGS_OPTIONAL,
1262 (void *) CFG_RM_CAPABILITY_DEFAULT),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001263
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001264 REG_DYNAMIC_VARIABLE(CFG_NEIGHBOR_SCAN_TIMER_PERIOD_NAME,
1265 WLAN_PARAM_Integer,
1266 struct hdd_config, nNeighborScanPeriod,
1267 VAR_FLAGS_OPTIONAL |
1268 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1269 CFG_NEIGHBOR_SCAN_TIMER_PERIOD_DEFAULT,
1270 CFG_NEIGHBOR_SCAN_TIMER_PERIOD_MIN,
1271 CFG_NEIGHBOR_SCAN_TIMER_PERIOD_MAX,
1272 cb_notify_set_neighbor_scan_period, 0),
1273
Sridhar Selvaraj1b2330c2017-07-21 15:16:42 +05301274 REG_DYNAMIC_VARIABLE(CFG_NEIGHBOR_SCAN_MIN_TIMER_PERIOD_NAME,
1275 WLAN_PARAM_Integer,
1276 struct hdd_config, neighbor_scan_min_period,
1277 VAR_FLAGS_OPTIONAL |
1278 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1279 CFG_NEIGHBOR_SCAN_MIN_TIMER_PERIOD_DEFAULT,
1280 CFG_NEIGHBOR_SCAN_MIN_TIMER_PERIOD_MIN,
1281 CFG_NEIGHBOR_SCAN_MIN_TIMER_PERIOD_MAX,
1282 cb_notify_set_neighbor_scan_min_period, 0),
1283
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001284 REG_DYNAMIC_VARIABLE(CFG_NEIGHBOR_LOOKUP_RSSI_THRESHOLD_NAME,
1285 WLAN_PARAM_Integer,
1286 struct hdd_config, nNeighborLookupRssiThreshold,
1287 VAR_FLAGS_OPTIONAL |
1288 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1289 CFG_NEIGHBOR_LOOKUP_RSSI_THRESHOLD_DEFAULT,
1290 CFG_NEIGHBOR_LOOKUP_RSSI_THRESHOLD_MIN,
1291 CFG_NEIGHBOR_LOOKUP_RSSI_THRESHOLD_MAX,
1292 cb_notify_set_neighbor_lookup_rssi_threshold, 0),
1293
Varun Reddy Yeturu168134f2017-06-26 13:46:05 -07001294 REG_VARIABLE(CFG_5G_RSSI_THRESHOLD_OFFSET_NAME,
1295 WLAN_PARAM_SignedInteger, struct hdd_config,
1296 rssi_thresh_offset_5g,
1297 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1298 CFG_5G_RSSI_THRESHOLD_OFFSET_DEFAULT,
1299 CFG_5G_RSSI_THRESHOLD_OFFSET_MIN,
1300 CFG_5G_RSSI_THRESHOLD_OFFSET_MAX),
1301
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001302 REG_DYNAMIC_VARIABLE(CFG_OPPORTUNISTIC_SCAN_THRESHOLD_DIFF_NAME,
1303 WLAN_PARAM_Integer,
1304 struct hdd_config, nOpportunisticThresholdDiff,
1305 VAR_FLAGS_OPTIONAL |
1306 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1307 CFG_OPPORTUNISTIC_SCAN_THRESHOLD_DIFF_DEFAULT,
1308 CFG_OPPORTUNISTIC_SCAN_THRESHOLD_DIFF_MIN,
1309 CFG_OPPORTUNISTIC_SCAN_THRESHOLD_DIFF_MAX,
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07001310 cb_notify_set_opportunistic_scan_threshold_diff,
1311 0),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001312
1313 REG_DYNAMIC_VARIABLE(CFG_ROAM_RESCAN_RSSI_DIFF_NAME, WLAN_PARAM_Integer,
1314 struct hdd_config, nRoamRescanRssiDiff,
1315 VAR_FLAGS_OPTIONAL |
1316 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1317 CFG_ROAM_RESCAN_RSSI_DIFF_DEFAULT,
1318 CFG_ROAM_RESCAN_RSSI_DIFF_MIN,
1319 CFG_ROAM_RESCAN_RSSI_DIFF_MAX,
1320 cb_notify_set_roam_rescan_rssi_diff, 0),
1321
1322 REG_VARIABLE_STRING(CFG_NEIGHBOR_SCAN_CHAN_LIST_NAME, WLAN_PARAM_String,
1323 struct hdd_config, neighborScanChanList,
1324 VAR_FLAGS_OPTIONAL,
1325 (void *)CFG_NEIGHBOR_SCAN_CHAN_LIST_DEFAULT),
1326
1327 REG_DYNAMIC_VARIABLE(CFG_NEIGHBOR_SCAN_MIN_CHAN_TIME_NAME,
1328 WLAN_PARAM_Integer,
1329 struct hdd_config, nNeighborScanMinChanTime,
1330 VAR_FLAGS_OPTIONAL |
1331 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1332 CFG_NEIGHBOR_SCAN_MIN_CHAN_TIME_DEFAULT,
1333 CFG_NEIGHBOR_SCAN_MIN_CHAN_TIME_MIN,
1334 CFG_NEIGHBOR_SCAN_MIN_CHAN_TIME_MAX,
1335 cb_notify_set_neighbor_scan_min_chan_time, 0),
1336
1337 REG_DYNAMIC_VARIABLE(CFG_NEIGHBOR_SCAN_MAX_CHAN_TIME_NAME,
1338 WLAN_PARAM_Integer,
1339 struct hdd_config, nNeighborScanMaxChanTime,
1340 VAR_FLAGS_OPTIONAL |
1341 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1342 CFG_NEIGHBOR_SCAN_MAX_CHAN_TIME_DEFAULT,
1343 CFG_NEIGHBOR_SCAN_MAX_CHAN_TIME_MIN,
1344 CFG_NEIGHBOR_SCAN_MAX_CHAN_TIME_MAX,
1345 cb_notify_set_neighbor_scan_max_chan_time, 0),
1346
1347 REG_VARIABLE(CFG_11R_NEIGHBOR_REQ_MAX_TRIES_NAME, WLAN_PARAM_Integer,
1348 struct hdd_config, nMaxNeighborReqTries,
1349 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1350 CFG_11R_NEIGHBOR_REQ_MAX_TRIES_DEFAULT,
1351 CFG_11R_NEIGHBOR_REQ_MAX_TRIES_MIN,
1352 CFG_11R_NEIGHBOR_REQ_MAX_TRIES_MAX),
1353
1354 REG_DYNAMIC_VARIABLE(CFG_NEIGHBOR_SCAN_RESULTS_REFRESH_PERIOD_NAME,
1355 WLAN_PARAM_Integer,
1356 struct hdd_config, nNeighborResultsRefreshPeriod,
1357 VAR_FLAGS_OPTIONAL |
1358 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1359 CFG_NEIGHBOR_SCAN_RESULTS_REFRESH_PERIOD_DEFAULT,
1360 CFG_NEIGHBOR_SCAN_RESULTS_REFRESH_PERIOD_MIN,
1361 CFG_NEIGHBOR_SCAN_RESULTS_REFRESH_PERIOD_MAX,
1362 cb_notify_set_neighbor_results_refresh_period, 0),
1363
1364 REG_DYNAMIC_VARIABLE(CFG_EMPTY_SCAN_REFRESH_PERIOD_NAME,
1365 WLAN_PARAM_Integer,
1366 struct hdd_config, nEmptyScanRefreshPeriod,
1367 VAR_FLAGS_OPTIONAL |
1368 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1369 CFG_EMPTY_SCAN_REFRESH_PERIOD_DEFAULT,
1370 CFG_EMPTY_SCAN_REFRESH_PERIOD_MIN,
1371 CFG_EMPTY_SCAN_REFRESH_PERIOD_MAX,
1372 cb_notify_set_empty_scan_refresh_period, 0),
1373
1374 REG_DYNAMIC_VARIABLE(CFG_ROAM_BMISS_FIRST_BCNT_NAME, WLAN_PARAM_Integer,
1375 struct hdd_config, nRoamBmissFirstBcnt,
1376 VAR_FLAGS_OPTIONAL |
1377 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1378 CFG_ROAM_BMISS_FIRST_BCNT_DEFAULT,
1379 CFG_ROAM_BMISS_FIRST_BCNT_MIN,
1380 CFG_ROAM_BMISS_FIRST_BCNT_MAX,
1381 cb_notify_set_roam_bmiss_first_bcnt, 0),
1382
1383 REG_DYNAMIC_VARIABLE(CFG_ROAM_BMISS_FINAL_BCNT_NAME, WLAN_PARAM_Integer,
1384 struct hdd_config, nRoamBmissFinalBcnt,
1385 VAR_FLAGS_OPTIONAL |
1386 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1387 CFG_ROAM_BMISS_FINAL_BCNT_DEFAULT,
1388 CFG_ROAM_BMISS_FINAL_BCNT_MIN,
1389 CFG_ROAM_BMISS_FINAL_BCNT_MAX,
1390 cb_notify_set_roam_bmiss_final_bcnt, 0),
1391
1392 REG_DYNAMIC_VARIABLE(CFG_ROAM_BEACON_RSSI_WEIGHT_NAME,
1393 WLAN_PARAM_Integer,
1394 struct hdd_config, nRoamBeaconRssiWeight,
1395 VAR_FLAGS_OPTIONAL |
1396 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1397 CFG_ROAM_BEACON_RSSI_WEIGHT_DEFAULT,
1398 CFG_ROAM_BEACON_RSSI_WEIGHT_MIN,
1399 CFG_ROAM_BEACON_RSSI_WEIGHT_MAX,
1400 cb_notify_set_roam_beacon_rssi_weight, 0),
1401
1402 REG_DYNAMIC_VARIABLE(CFG_ROAMING_DFS_CHANNEL_NAME, WLAN_PARAM_Integer,
1403 struct hdd_config, allowDFSChannelRoam,
1404 VAR_FLAGS_OPTIONAL |
1405 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1406 CFG_ROAMING_DFS_CHANNEL_DEFAULT,
1407 CFG_ROAMING_DFS_CHANNEL_MIN,
1408 CFG_ROAMING_DFS_CHANNEL_MAX,
1409 cb_notify_set_dfs_scan_mode, 0),
1410
1411 REG_DYNAMIC_VARIABLE(CFG_DELAY_BEFORE_VDEV_STOP_NAME,
1412 WLAN_PARAM_Integer,
1413 struct hdd_config,
1414 delay_before_vdev_stop,
1415 VAR_FLAGS_OPTIONAL |
1416 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1417 CFG_DELAY_BEFORE_VDEV_STOP_DEFAULT,
1418 CFG_DELAY_BEFORE_VDEV_STOP_MIN,
1419 CFG_DELAY_BEFORE_VDEV_STOP_MAX,
1420 cb_notify_set_delay_before_vdev_stop,
1421 0),
1422
1423 REG_DYNAMIC_VARIABLE(CFG_ROAM_SCAN_HI_RSSI_MAXCOUNT_NAME,
1424 WLAN_PARAM_Integer,
1425 struct hdd_config,
1426 nhi_rssi_scan_max_count,
1427 VAR_FLAGS_OPTIONAL |
1428 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1429 CFG_ROAM_SCAN_HI_RSSI_MAXCOUNT_DEFAULT,
1430 CFG_ROAM_SCAN_HI_RSSI_MAXCOUNT_MIN,
1431 CFG_ROAM_SCAN_HI_RSSI_MAXCOUNT_MAX,
1432 cb_notify_set_roam_scan_hi_rssi_scan_params,
1433 eCSR_HI_RSSI_SCAN_MAXCOUNT_ID),
1434
1435 REG_DYNAMIC_VARIABLE(CFG_ROAM_SCAN_HI_RSSI_DELTA_NAME,
1436 WLAN_PARAM_Integer,
1437 struct hdd_config,
1438 nhi_rssi_scan_rssi_delta,
1439 VAR_FLAGS_OPTIONAL |
1440 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1441 CFG_ROAM_SCAN_HI_RSSI_DELTA_DEFAULT,
1442 CFG_ROAM_SCAN_HI_RSSI_DELTA_MIN,
1443 CFG_ROAM_SCAN_HI_RSSI_DELTA_MAX,
1444 cb_notify_set_roam_scan_hi_rssi_scan_params,
1445 eCSR_HI_RSSI_SCAN_RSSI_DELTA_ID),
1446
1447 REG_DYNAMIC_VARIABLE(CFG_ROAM_SCAN_HI_RSSI_DELAY_NAME,
1448 WLAN_PARAM_Integer,
1449 struct hdd_config,
1450 nhi_rssi_scan_delay,
1451 VAR_FLAGS_OPTIONAL |
1452 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1453 CFG_ROAM_SCAN_HI_RSSI_DELAY_DEFAULT,
1454 CFG_ROAM_SCAN_HI_RSSI_DELAY_MIN,
1455 CFG_ROAM_SCAN_HI_RSSI_DELAY_MAX,
1456 cb_notify_set_roam_scan_hi_rssi_scan_params,
1457 eCSR_HI_RSSI_SCAN_DELAY_ID),
1458
1459 REG_DYNAMIC_VARIABLE(CFG_ROAM_SCAN_HI_RSSI_UB_NAME,
1460 WLAN_PARAM_SignedInteger,
1461 struct hdd_config,
1462 nhi_rssi_scan_rssi_ub,
1463 VAR_FLAGS_OPTIONAL |
1464 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1465 CFG_ROAM_SCAN_HI_RSSI_UB_DEFAULT,
1466 CFG_ROAM_SCAN_HI_RSSI_UB_MIN,
1467 CFG_ROAM_SCAN_HI_RSSI_UB_MAX,
1468 cb_notify_set_roam_scan_hi_rssi_scan_params,
1469 eCSR_HI_RSSI_SCAN_RSSI_UB_ID),
1470
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001471 REG_VARIABLE(CFG_QOS_WMM_BURST_SIZE_DEFN_NAME, WLAN_PARAM_Integer,
1472 struct hdd_config, burstSizeDefinition,
1473 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1474 CFG_QOS_WMM_BURST_SIZE_DEFN_DEFAULT,
1475 CFG_QOS_WMM_BURST_SIZE_DEFN_MIN,
1476 CFG_QOS_WMM_BURST_SIZE_DEFN_MAX),
1477
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001478 REG_VARIABLE(CFG_ENABLE_HOST_ARPOFFLOAD_NAME, WLAN_PARAM_Integer,
1479 struct hdd_config, fhostArpOffload,
1480 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1481 CFG_ENABLE_HOST_ARPOFFLOAD_DEFAULT,
1482 CFG_ENABLE_HOST_ARPOFFLOAD_MIN,
1483 CFG_ENABLE_HOST_ARPOFFLOAD_MAX),
1484
Dustin Brown1224e212017-05-12 14:02:12 -07001485 REG_VARIABLE(CFG_HW_FILTER_MODE_NAME, WLAN_PARAM_Integer,
1486 struct hdd_config, hw_filter_mode,
Ravi Kumar Bokka794fd712017-03-21 20:52:46 +05301487 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
Dustin Brown1224e212017-05-12 14:02:12 -07001488 CFG_HW_FILTER_MODE_DEFAULT,
1489 CFG_HW_FILTER_MODE_MIN,
1490 CFG_HW_FILTER_MODE_MAX),
Ravi Kumar Bokka794fd712017-03-21 20:52:46 +05301491
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001492#ifdef FEATURE_WLAN_RA_FILTERING
1493 REG_VARIABLE(CFG_RA_FILTER_ENABLE_NAME, WLAN_PARAM_Integer,
1494 struct hdd_config, IsRArateLimitEnabled,
1495 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1496 CFG_RA_FILTER_ENABLE_DEFAULT,
1497 CFG_RA_FILTER_ENABLE_MIN,
1498 CFG_RA_FILTER_ENABLE_MAX),
1499
1500 REG_VARIABLE(CFG_RA_RATE_LIMIT_INTERVAL_NAME, WLAN_PARAM_Integer,
1501 struct hdd_config, RArateLimitInterval,
1502 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1503 CFG_RA_RATE_LIMIT_INTERVAL_DEFAULT,
1504 CFG_RA_RATE_LIMIT_INTERVAL_MIN,
1505 CFG_RA_RATE_LIMIT_INTERVAL_MAX),
1506#endif
1507
1508 REG_VARIABLE(CFG_IGNORE_PEER_ERP_INFO_NAME, WLAN_PARAM_Integer,
1509 struct hdd_config, ignore_peer_erp_info,
1510 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1511 CFG_IGNORE_PEER_ERP_INFO_DEFAULT,
1512 CFG_IGNORE_PEER_ERP_INFO_MIN,
1513 CFG_IGNORE_PEER_ERP_INFO_MAX),
1514
1515 REG_VARIABLE(CFG_ENABLE_HOST_SSDP_NAME, WLAN_PARAM_Integer,
1516 struct hdd_config, ssdp,
1517 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1518 CFG_ENABLE_HOST_SSDP_DEFAULT,
1519 CFG_ENABLE_HOST_SSDP_MIN,
1520 CFG_ENABLE_HOST_SSDP_MAX),
1521
Houston Hoffmanc7c69f02016-03-24 22:45:52 -07001522#ifdef FEATURE_RUNTIME_PM
1523 REG_VARIABLE(CFG_ENABLE_RUNTIME_PM, WLAN_PARAM_Integer,
1524 struct hdd_config, runtime_pm,
1525 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1526 CFG_ENABLE_RUNTIME_PM_DEFAULT,
1527 CFG_ENABLE_RUNTIME_PM_MIN,
1528 CFG_ENABLE_RUNTIME_PM_MAX),
1529
1530 REG_VARIABLE(CFG_RUNTIME_PM_DELAY_NAME, WLAN_PARAM_Integer,
1531 struct hdd_config, runtime_pm_delay,
1532 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1533 CFG_RUNTIME_PM_DELAY_DEFAULT,
1534 CFG_RUNTIME_PM_DELAY_MIN,
1535 CFG_RUNTIME_PM_DELAY_MAX),
1536#endif
1537
1538
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001539 REG_VARIABLE(CFG_ENABLE_HOST_NSOFFLOAD_NAME, WLAN_PARAM_Integer,
1540 struct hdd_config, fhostNSOffload,
1541 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1542 CFG_ENABLE_HOST_NSOFFLOAD_DEFAULT,
1543 CFG_ENABLE_HOST_NSOFFLOAD_MIN,
1544 CFG_ENABLE_HOST_NSOFFLOAD_MAX),
1545
1546 REG_VARIABLE(CFG_QOS_WMM_TS_INFO_ACK_POLICY_NAME, WLAN_PARAM_HexInteger,
1547 struct hdd_config, tsInfoAckPolicy,
1548 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1549 CFG_QOS_WMM_TS_INFO_ACK_POLICY_DEFAULT,
1550 CFG_QOS_WMM_TS_INFO_ACK_POLICY_MIN,
1551 CFG_QOS_WMM_TS_INFO_ACK_POLICY_MAX),
1552
1553 REG_VARIABLE(CFG_SINGLE_TID_RC_NAME, WLAN_PARAM_Integer,
1554 struct hdd_config, bSingleTidRc,
1555 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1556 CFG_SINGLE_TID_RC_DEFAULT,
1557 CFG_SINGLE_TID_RC_MIN,
1558 CFG_SINGLE_TID_RC_MAX),
1559
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001560 REG_VARIABLE(CFG_TELE_BCN_WAKEUP_EN_NAME, WLAN_PARAM_Integer,
1561 struct hdd_config, teleBcnWakeupEn,
1562 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1563 CFG_TELE_BCN_WAKEUP_EN_DEFAULT,
1564 CFG_TELE_BCN_WAKEUP_EN_MIN,
1565 CFG_TELE_BCN_WAKEUP_EN_MAX),
1566
1567 REG_VARIABLE(CFG_INFRA_STA_KEEP_ALIVE_PERIOD_NAME, WLAN_PARAM_Integer,
1568 struct hdd_config, infraStaKeepAlivePeriod,
1569 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1570 CFG_INFRA_STA_KEEP_ALIVE_PERIOD_DEFAULT,
1571 CFG_INFRA_STA_KEEP_ALIVE_PERIOD_MIN,
1572 CFG_INFRA_STA_KEEP_ALIVE_PERIOD_MAX),
1573
Dustin Brownb6b0f182017-03-08 13:08:27 -08001574 REG_VARIABLE(CFG_STA_KEEPALIVE_METHOD_NAME, WLAN_PARAM_Integer,
1575 struct hdd_config, sta_keepalive_method,
1576 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1577 CFG_STA_KEEPALIVE_METHOD_DEFAULT,
1578 CFG_STA_KEEPALIVE_METHOD_MIN,
1579 CFG_STA_KEEPALIVE_METHOD_MAX),
1580
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001581 REG_VARIABLE(CFG_QOS_ADDTS_WHEN_ACM_IS_OFF_NAME, WLAN_PARAM_Integer,
1582 struct hdd_config, AddTSWhenACMIsOff,
1583 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1584 CFG_QOS_ADDTS_WHEN_ACM_IS_OFF_DEFAULT,
1585 CFG_QOS_ADDTS_WHEN_ACM_IS_OFF_MIN,
1586 CFG_QOS_ADDTS_WHEN_ACM_IS_OFF_MAX),
1587
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001588 REG_VARIABLE(CFG_BAND_CAPABILITY_NAME, WLAN_PARAM_Integer,
1589 struct hdd_config, nBandCapability,
1590 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1591 CFG_BAND_CAPABILITY_DEFAULT,
1592 CFG_BAND_CAPABILITY_MIN,
1593 CFG_BAND_CAPABILITY_MAX),
1594
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301595/* CFG_QDF_TRACE_ENABLE Parameters */
1596 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_WDI_NAME, WLAN_PARAM_Integer,
1597 struct hdd_config, qdf_trace_enable_wdi,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001598 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301599 CFG_QDF_TRACE_ENABLE_DEFAULT,
1600 CFG_QDF_TRACE_ENABLE_MIN,
1601 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001602
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301603 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_HDD_NAME, WLAN_PARAM_Integer,
1604 struct hdd_config, qdf_trace_enable_hdd,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001605 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301606 CFG_QDF_TRACE_ENABLE_DEFAULT,
1607 CFG_QDF_TRACE_ENABLE_MIN,
1608 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001609
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301610 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_BMI_NAME, WLAN_PARAM_Integer,
1611 struct hdd_config, qdf_trace_enable_bmi,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001612 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301613 CFG_QDF_TRACE_ENABLE_DEFAULT,
1614 CFG_QDF_TRACE_ENABLE_MIN,
1615 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001616
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301617 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_SME_NAME, WLAN_PARAM_Integer,
1618 struct hdd_config, qdf_trace_enable_sme,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001619 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301620 CFG_QDF_TRACE_ENABLE_DEFAULT,
1621 CFG_QDF_TRACE_ENABLE_MIN,
1622 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001623
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301624 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_PE_NAME, WLAN_PARAM_Integer,
1625 struct hdd_config, qdf_trace_enable_pe,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001626 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301627 CFG_QDF_TRACE_ENABLE_DEFAULT,
1628 CFG_QDF_TRACE_ENABLE_MIN,
1629 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001630
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301631 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_WMA_NAME, WLAN_PARAM_Integer,
1632 struct hdd_config, qdf_trace_enable_wma,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001633 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301634 CFG_QDF_TRACE_ENABLE_DEFAULT,
1635 CFG_QDF_TRACE_ENABLE_MIN,
1636 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001637
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301638 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_SYS_NAME, WLAN_PARAM_Integer,
1639 struct hdd_config, qdf_trace_enable_sys,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001640 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301641 CFG_QDF_TRACE_ENABLE_DEFAULT,
1642 CFG_QDF_TRACE_ENABLE_MIN,
1643 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001644
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301645 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_QDF_NAME, WLAN_PARAM_Integer,
1646 struct hdd_config, qdf_trace_enable_qdf,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001647 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301648 CFG_QDF_TRACE_ENABLE_DEFAULT,
1649 CFG_QDF_TRACE_ENABLE_MIN,
1650 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001651
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301652 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_SAP_NAME, WLAN_PARAM_Integer,
1653 struct hdd_config, qdf_trace_enable_sap,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001654 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301655 CFG_QDF_TRACE_ENABLE_DEFAULT,
1656 CFG_QDF_TRACE_ENABLE_MIN,
1657 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001658
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301659 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_HDD_SAP_NAME, WLAN_PARAM_Integer,
1660 struct hdd_config, qdf_trace_enable_hdd_sap,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001661 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301662 CFG_QDF_TRACE_ENABLE_DEFAULT,
1663 CFG_QDF_TRACE_ENABLE_MIN,
1664 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001665
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301666 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_CFG_NAME, WLAN_PARAM_Integer,
1667 struct hdd_config, qdf_trace_enable_cfg,
Bhargav Shah480a90f2015-06-24 15:10:14 +05301668 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301669 CFG_QDF_TRACE_ENABLE_DEFAULT,
1670 CFG_QDF_TRACE_ENABLE_MIN,
1671 CFG_QDF_TRACE_ENABLE_MAX),
Bhargav Shah480a90f2015-06-24 15:10:14 +05301672
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301673 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_TXRX_NAME, WLAN_PARAM_Integer,
Houston Hoffmanfbf05102017-08-28 11:37:01 -07001674 struct hdd_config, qdf_trace_enable_txrx,
Bhargav Shah480a90f2015-06-24 15:10:14 +05301675 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301676 CFG_QDF_TRACE_ENABLE_DEFAULT,
1677 CFG_QDF_TRACE_ENABLE_MIN,
1678 CFG_QDF_TRACE_ENABLE_MAX),
Bhargav Shah480a90f2015-06-24 15:10:14 +05301679
Houston Hoffmanfbf05102017-08-28 11:37:01 -07001680 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_DP_NAME, WLAN_PARAM_Integer,
1681 struct hdd_config, qdf_trace_enable_dp,
1682 VAR_FLAGS_OPTIONAL,
1683 CFG_QDF_TRACE_ENABLE_DP_DEFAULT,
1684 CFG_QDF_TRACE_ENABLE_MIN,
1685 CFG_QDF_TRACE_ENABLE_MAX),
1686
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301687 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_HTC_NAME, WLAN_PARAM_Integer,
1688 struct hdd_config, qdf_trace_enable_htc,
Bhargav Shah480a90f2015-06-24 15:10:14 +05301689 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301690 CFG_QDF_TRACE_ENABLE_DEFAULT,
1691 CFG_QDF_TRACE_ENABLE_MIN,
1692 CFG_QDF_TRACE_ENABLE_MAX),
Bhargav Shah480a90f2015-06-24 15:10:14 +05301693
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301694 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_HIF_NAME, WLAN_PARAM_Integer,
1695 struct hdd_config, qdf_trace_enable_hif,
Bhargav Shah480a90f2015-06-24 15:10:14 +05301696 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301697 CFG_QDF_TRACE_ENABLE_DEFAULT,
1698 CFG_QDF_TRACE_ENABLE_MIN,
1699 CFG_QDF_TRACE_ENABLE_MAX),
Bhargav Shah480a90f2015-06-24 15:10:14 +05301700
1701 REG_VARIABLE(CFG_CDR_TRACE_ENABLE_HDD_SAP_DATA_NAME, WLAN_PARAM_Integer,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301702 struct hdd_config, qdf_trace_enable_hdd_sap_data,
Bhargav Shah480a90f2015-06-24 15:10:14 +05301703 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301704 CFG_QDF_TRACE_ENABLE_DEFAULT,
1705 CFG_QDF_TRACE_ENABLE_MIN,
1706 CFG_QDF_TRACE_ENABLE_MAX),
Bhargav Shah480a90f2015-06-24 15:10:14 +05301707
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301708 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_HDD_DATA_NAME, WLAN_PARAM_Integer,
1709 struct hdd_config, qdf_trace_enable_hdd_data,
Bhargav Shah480a90f2015-06-24 15:10:14 +05301710 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301711 CFG_QDF_TRACE_ENABLE_DEFAULT,
1712 CFG_QDF_TRACE_ENABLE_MIN,
1713 CFG_QDF_TRACE_ENABLE_MAX),
Bhargav Shah480a90f2015-06-24 15:10:14 +05301714
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301715 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_EPPING, WLAN_PARAM_Integer,
1716 struct hdd_config, qdf_trace_enable_epping,
Bhargav Shah480a90f2015-06-24 15:10:14 +05301717 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301718 CFG_QDF_TRACE_ENABLE_DEFAULT,
1719 CFG_QDF_TRACE_ENABLE_MIN,
1720 CFG_QDF_TRACE_ENABLE_MAX),
Bhargav Shah480a90f2015-06-24 15:10:14 +05301721
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301722 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_QDF_DEVICES, WLAN_PARAM_Integer,
1723 struct hdd_config, qdf_trace_enable_qdf_devices,
Bhargav Shah480a90f2015-06-24 15:10:14 +05301724 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301725 CFG_QDF_TRACE_ENABLE_DEFAULT,
1726 CFG_QDF_TRACE_ENABLE_MIN,
1727 CFG_QDF_TRACE_ENABLE_MAX),
Bhargav Shah480a90f2015-06-24 15:10:14 +05301728
Naveen Rawat7df31862017-03-01 17:09:30 -08001729 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_WIFI_POS, WLAN_PARAM_Integer,
1730 struct hdd_config, qdf_trace_enable_wifi_pos,
1731 VAR_FLAGS_OPTIONAL,
1732 CFG_QDF_TRACE_ENABLE_DEFAULT,
1733 CFG_QDF_TRACE_ENABLE_MIN,
1734 CFG_QDF_TRACE_ENABLE_MAX),
1735
Naveen Rawatf2b0dbd2017-03-27 10:00:15 -07001736 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_NAN, WLAN_PARAM_Integer,
1737 struct hdd_config, qdf_trace_enable_nan,
1738 VAR_FLAGS_OPTIONAL,
1739 CFG_QDF_TRACE_ENABLE_DEFAULT,
1740 CFG_QDF_TRACE_ENABLE_MIN,
1741 CFG_QDF_TRACE_ENABLE_MAX),
1742
Kiran Kumar Lokere798de7e2017-03-30 14:01:12 -07001743 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_REGULATORY, WLAN_PARAM_Integer,
1744 struct hdd_config, qdf_trace_enable_regulatory,
1745 VAR_FLAGS_OPTIONAL,
1746 CFG_QDF_TRACE_ENABLE_DEFAULT,
1747 CFG_QDF_TRACE_ENABLE_MIN,
1748 CFG_QDF_TRACE_ENABLE_MAX),
1749
Naveen Rawat3cb779e2018-02-16 16:36:10 -08001750 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_CP_STATS, WLAN_PARAM_Integer,
1751 struct hdd_config, qdf_trace_enable_cp_stats,
1752 VAR_FLAGS_OPTIONAL,
1753 CFG_QDF_TRACE_ENABLE_DEFAULT,
1754 CFG_QDF_TRACE_ENABLE_MIN,
1755 CFG_QDF_TRACE_ENABLE_MAX),
1756
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001757 REG_VARIABLE(CFG_TELE_BCN_MAX_LI_NAME, WLAN_PARAM_Integer,
1758 struct hdd_config, nTeleBcnMaxListenInterval,
1759 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1760 CFG_TELE_BCN_MAX_LI_DEFAULT,
1761 CFG_TELE_BCN_MAX_LI_MIN,
1762 CFG_TELE_BCN_MAX_LI_MAX),
1763
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001764 REG_VARIABLE(CFG_ENABLE_BYPASS_11D_NAME, WLAN_PARAM_Integer,
1765 struct hdd_config, enableBypass11d,
1766 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1767 CFG_ENABLE_BYPASS_11D_DEFAULT,
1768 CFG_ENABLE_BYPASS_11D_MIN,
1769 CFG_ENABLE_BYPASS_11D_MAX),
1770
1771 REG_VARIABLE(CFG_ENABLE_DFS_CHNL_SCAN_NAME, WLAN_PARAM_Integer,
1772 struct hdd_config, enableDFSChnlScan,
1773 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1774 CFG_ENABLE_DFS_CHNL_SCAN_DEFAULT,
1775 CFG_ENABLE_DFS_CHNL_SCAN_MIN,
1776 CFG_ENABLE_DFS_CHNL_SCAN_MAX),
1777
1778 REG_VARIABLE(CFG_ENABLE_DFS_PNO_CHNL_SCAN_NAME, WLAN_PARAM_Integer,
1779 struct hdd_config, enable_dfs_pno_chnl_scan,
1780 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1781 CFG_ENABLE_DFS_PNO_CHNL_SCAN_DEFAULT,
1782 CFG_ENABLE_DFS_PNO_CHNL_SCAN_MIN,
1783 CFG_ENABLE_DFS_PNO_CHNL_SCAN_MAX),
1784
1785 REG_VARIABLE(CFG_ENABLE_DYNAMIC_DTIM_NAME, WLAN_PARAM_Integer,
1786 struct hdd_config, enableDynamicDTIM,
1787 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1788 CFG_ENABLE_DYNAMIC_DTIM_DEFAULT,
1789 CFG_ENABLE_DYNAMIC_DTIM_MIN,
1790 CFG_ENABLE_DYNAMIC_DTIM_MAX),
1791
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001792 REG_VARIABLE(CFG_SHORT_GI_40MHZ_NAME, WLAN_PARAM_Integer,
1793 struct hdd_config, ShortGI40MhzEnable,
1794 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1795 CFG_SHORT_GI_40MHZ_DEFAULT,
1796 CFG_SHORT_GI_40MHZ_MIN,
1797 CFG_SHORT_GI_40MHZ_MAX),
1798
1799 REG_DYNAMIC_VARIABLE(CFG_REPORT_MAX_LINK_SPEED, WLAN_PARAM_Integer,
1800 struct hdd_config, reportMaxLinkSpeed,
1801 VAR_FLAGS_OPTIONAL |
1802 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1803 CFG_REPORT_MAX_LINK_SPEED_DEFAULT,
1804 CFG_REPORT_MAX_LINK_SPEED_MIN,
1805 CFG_REPORT_MAX_LINK_SPEED_MAX,
1806 NULL, 0),
1807
1808 REG_DYNAMIC_VARIABLE(CFG_LINK_SPEED_RSSI_HIGH, WLAN_PARAM_SignedInteger,
1809 struct hdd_config, linkSpeedRssiHigh,
1810 VAR_FLAGS_OPTIONAL |
1811 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1812 CFG_LINK_SPEED_RSSI_HIGH_DEFAULT,
1813 CFG_LINK_SPEED_RSSI_HIGH_MIN,
1814 CFG_LINK_SPEED_RSSI_HIGH_MAX,
1815 NULL, 0),
1816
1817 REG_DYNAMIC_VARIABLE(CFG_LINK_SPEED_RSSI_MID, WLAN_PARAM_SignedInteger,
1818 struct hdd_config, linkSpeedRssiMid,
1819 VAR_FLAGS_OPTIONAL |
1820 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1821 CFG_LINK_SPEED_RSSI_MID_DEFAULT,
1822 CFG_LINK_SPEED_RSSI_MID_MIN,
1823 CFG_LINK_SPEED_RSSI_MID_MAX,
1824 NULL, 0),
1825
1826 REG_DYNAMIC_VARIABLE(CFG_LINK_SPEED_RSSI_LOW, WLAN_PARAM_SignedInteger,
1827 struct hdd_config, linkSpeedRssiLow,
1828 VAR_FLAGS_OPTIONAL |
1829 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1830 CFG_LINK_SPEED_RSSI_LOW_DEFAULT,
1831 CFG_LINK_SPEED_RSSI_LOW_MIN,
1832 CFG_LINK_SPEED_RSSI_LOW_MAX,
1833 NULL, 0),
1834
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001835 REG_DYNAMIC_VARIABLE(CFG_ROAM_PREFER_5GHZ, WLAN_PARAM_Integer,
1836 struct hdd_config, nRoamPrefer5GHz,
1837 VAR_FLAGS_OPTIONAL |
1838 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1839 CFG_ROAM_PREFER_5GHZ_DEFAULT,
1840 CFG_ROAM_PREFER_5GHZ_MIN,
1841 CFG_ROAM_PREFER_5GHZ_MAX,
1842 cb_notify_set_roam_prefer5_g_hz, 0),
1843
1844 REG_DYNAMIC_VARIABLE(CFG_ROAM_INTRA_BAND, WLAN_PARAM_Integer,
1845 struct hdd_config, nRoamIntraBand,
1846 VAR_FLAGS_OPTIONAL |
1847 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1848 CFG_ROAM_INTRA_BAND_DEFAULT,
1849 CFG_ROAM_INTRA_BAND_MIN,
1850 CFG_ROAM_INTRA_BAND_MAX,
1851 cb_notify_set_roam_intra_band, 0),
1852
1853 REG_DYNAMIC_VARIABLE(CFG_ROAM_SCAN_N_PROBES, WLAN_PARAM_Integer,
1854 struct hdd_config, nProbes,
1855 VAR_FLAGS_OPTIONAL |
1856 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1857 CFG_ROAM_SCAN_N_PROBES_DEFAULT,
1858 CFG_ROAM_SCAN_N_PROBES_MIN,
1859 CFG_ROAM_SCAN_N_PROBES_MAX,
1860 cb_notify_set_roam_scan_n_probes, 0),
1861
1862 REG_DYNAMIC_VARIABLE(CFG_ROAM_SCAN_HOME_AWAY_TIME, WLAN_PARAM_Integer,
1863 struct hdd_config, nRoamScanHomeAwayTime,
1864 VAR_FLAGS_OPTIONAL |
1865 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1866 CFG_ROAM_SCAN_HOME_AWAY_TIME_DEFAULT,
1867 CFG_ROAM_SCAN_HOME_AWAY_TIME_MIN,
1868 CFG_ROAM_SCAN_HOME_AWAY_TIME_MAX,
1869 cb_notify_set_roam_scan_home_away_time, 0),
1870
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001871 REG_VARIABLE(CFG_P2P_DEVICE_ADDRESS_ADMINISTRATED_NAME,
1872 WLAN_PARAM_Integer,
1873 struct hdd_config, isP2pDeviceAddrAdministrated,
1874 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1875 CFG_P2P_DEVICE_ADDRESS_ADMINISTRATED_DEFAULT,
1876 CFG_P2P_DEVICE_ADDRESS_ADMINISTRATED_MIN,
1877 CFG_P2P_DEVICE_ADDRESS_ADMINISTRATED_MAX),
1878
1879 REG_VARIABLE(CFG_ENABLE_MCC_ENABLED_NAME, WLAN_PARAM_Integer,
1880 struct hdd_config, enableMCC,
1881 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1882 CFG_ENABLE_MCC_ENABLED_DEFAULT,
1883 CFG_ENABLE_MCC_ENABLED_MIN,
1884 CFG_ENABLE_MCC_ENABLED_MAX),
1885
1886 REG_VARIABLE(CFG_ALLOW_MCC_GO_DIFF_BI_NAME, WLAN_PARAM_Integer,
1887 struct hdd_config, allowMCCGODiffBI,
1888 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1889 CFG_ALLOW_MCC_GO_DIFF_BI_DEFAULT,
1890 CFG_ALLOW_MCC_GO_DIFF_BI_MIN,
1891 CFG_ALLOW_MCC_GO_DIFF_BI_MAX),
1892
1893 REG_VARIABLE(CFG_THERMAL_MIGRATION_ENABLE_NAME, WLAN_PARAM_Integer,
1894 struct hdd_config, thermalMitigationEnable,
1895 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1896 CFG_THERMAL_MIGRATION_ENABLE_DEFAULT,
1897 CFG_THERMAL_MIGRATION_ENABLE_MIN,
1898 CFG_THERMAL_MIGRATION_ENABLE_MAX),
1899
1900 REG_VARIABLE(CFG_THROTTLE_PERIOD_NAME, WLAN_PARAM_Integer,
1901 struct hdd_config, throttlePeriod,
1902 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1903 CFG_THROTTLE_PERIOD_DEFAULT,
1904 CFG_THROTTLE_PERIOD_MIN,
1905 CFG_THROTTLE_PERIOD_MAX),
1906
Poddar, Siddarth83905022016-04-16 17:56:08 -07001907 REG_VARIABLE(CFG_THROTTLE_DUTY_CYCLE_LEVEL0_NAME, WLAN_PARAM_Integer,
1908 struct hdd_config, throttle_dutycycle_level0,
1909 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1910 CFG_THROTTLE_DUTY_CYCLE_LEVEL0_DEFAULT,
1911 CFG_THROTTLE_DUTY_CYCLE_LEVEL0_MIN,
1912 CFG_THROTTLE_DUTY_CYCLE_LEVEL0_MAX),
1913
1914 REG_VARIABLE(CFG_THROTTLE_DUTY_CYCLE_LEVEL1_NAME, WLAN_PARAM_Integer,
1915 struct hdd_config, throttle_dutycycle_level1,
1916 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1917 CFG_THROTTLE_DUTY_CYCLE_LEVEL1_DEFAULT,
1918 CFG_THROTTLE_DUTY_CYCLE_LEVEL1_MIN,
1919 CFG_THROTTLE_DUTY_CYCLE_LEVEL1_MAX),
1920
1921 REG_VARIABLE(CFG_THROTTLE_DUTY_CYCLE_LEVEL2_NAME, WLAN_PARAM_Integer,
1922 struct hdd_config, throttle_dutycycle_level2,
1923 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1924 CFG_THROTTLE_DUTY_CYCLE_LEVEL2_DEFAULT,
1925 CFG_THROTTLE_DUTY_CYCLE_LEVEL2_MIN,
1926 CFG_THROTTLE_DUTY_CYCLE_LEVEL2_MAX),
1927
1928 REG_VARIABLE(CFG_THROTTLE_DUTY_CYCLE_LEVEL3_NAME, WLAN_PARAM_Integer,
1929 struct hdd_config, throttle_dutycycle_level3,
1930 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1931 CFG_THROTTLE_DUTY_CYCLE_LEVEL3_DEFAULT,
1932 CFG_THROTTLE_DUTY_CYCLE_LEVEL3_MIN,
1933 CFG_THROTTLE_DUTY_CYCLE_LEVEL3_MAX),
1934
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001935 REG_VARIABLE(CFG_ENABLE_MODULATED_DTIM_NAME, WLAN_PARAM_Integer,
1936 struct hdd_config, enableModulatedDTIM,
1937 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1938 CFG_ENABLE_MODULATED_DTIM_DEFAULT,
1939 CFG_ENABLE_MODULATED_DTIM_MIN,
1940 CFG_ENABLE_MODULATED_DTIM_MAX),
1941
1942 REG_VARIABLE(CFG_MC_ADDR_LIST_ENABLE_NAME, WLAN_PARAM_Integer,
1943 struct hdd_config, fEnableMCAddrList,
1944 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1945 CFG_MC_ADDR_LIST_ENABLE_DEFAULT,
1946 CFG_MC_ADDR_LIST_ENABLE_MIN,
1947 CFG_MC_ADDR_LIST_ENABLE_MAX),
1948
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001949 REG_VARIABLE(CFG_VHT_CHANNEL_WIDTH, WLAN_PARAM_Integer,
1950 struct hdd_config, vhtChannelWidth,
1951 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
1952 CFG_VHT_CHANNEL_WIDTH_DEFAULT,
1953 CFG_VHT_CHANNEL_WIDTH_MIN,
1954 CFG_VHT_CHANNEL_WIDTH_MAX),
1955
1956 REG_VARIABLE(CFG_VHT_ENABLE_RX_MCS_8_9, WLAN_PARAM_Integer,
1957 struct hdd_config, vhtRxMCS,
1958 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
1959 CFG_VHT_ENABLE_RX_MCS_8_9_DEFAULT,
1960 CFG_VHT_ENABLE_RX_MCS_8_9_MIN,
1961 CFG_VHT_ENABLE_RX_MCS_8_9_MAX),
1962
1963 REG_VARIABLE(CFG_VHT_ENABLE_TX_MCS_8_9, WLAN_PARAM_Integer,
1964 struct hdd_config, vhtTxMCS,
1965 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
1966 CFG_VHT_ENABLE_TX_MCS_8_9_DEFAULT,
1967 CFG_VHT_ENABLE_TX_MCS_8_9_MIN,
1968 CFG_VHT_ENABLE_TX_MCS_8_9_MAX),
1969
1970 REG_VARIABLE(CFG_VHT_ENABLE_RX_MCS2x2_8_9, WLAN_PARAM_Integer,
1971 struct hdd_config, vhtRxMCS2x2,
1972 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
1973 CFG_VHT_ENABLE_RX_MCS2x2_8_9_DEFAULT,
1974 CFG_VHT_ENABLE_RX_MCS2x2_8_9_MIN,
1975 CFG_VHT_ENABLE_RX_MCS2x2_8_9_MAX),
1976
1977 REG_VARIABLE(CFG_VHT_ENABLE_TX_MCS2x2_8_9, WLAN_PARAM_Integer,
1978 struct hdd_config, vhtTxMCS2x2,
1979 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
1980 CFG_VHT_ENABLE_TX_MCS2x2_8_9_DEFAULT,
1981 CFG_VHT_ENABLE_TX_MCS2x2_8_9_MIN,
1982 CFG_VHT_ENABLE_TX_MCS2x2_8_9_MAX),
1983
Kiran Kumar Lokere0e255172018-03-30 18:54:25 -07001984 REG_VARIABLE(CFG_ENABLE_VHT20_MCS9, WLAN_PARAM_Integer,
1985 struct hdd_config, enable_vht20_mcs9,
1986 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
1987 CFG_ENABLE_VHT20_MCS9_DEFAULT,
1988 CFG_ENABLE_VHT20_MCS9_MIN,
1989 CFG_ENABLE_VHT20_MCS9_MAX),
1990
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001991 REG_VARIABLE(CFG_VHT_ENABLE_2x2_CAP_FEATURE, WLAN_PARAM_Integer,
1992 struct hdd_config, enable2x2,
1993 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1994 CFG_VHT_ENABLE_2x2_CAP_FEATURE_DEFAULT,
1995 CFG_VHT_ENABLE_2x2_CAP_FEATURE_MIN,
1996 CFG_VHT_ENABLE_2x2_CAP_FEATURE_MAX),
1997
Krunal Soni158bfe62017-08-02 12:33:08 -07001998 REG_VARIABLE(CFG_DISABLE_HIGH_HT_RX_MCS_2x2, WLAN_PARAM_Integer,
1999 struct hdd_config, disable_high_ht_mcs_2x2,
2000 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2001 CFG_DISABLE_HIGH_HT_RX_MCS_2x2_DEFAULT,
2002 CFG_DISABLE_HIGH_HT_RX_MCS_2x2_MIN,
2003 CFG_DISABLE_HIGH_HT_RX_MCS_2x2_MAX),
2004
Nitesh Shah0e5c7322017-03-23 14:55:11 +05302005 REG_VARIABLE(CFG_VDEV_TYPE_NSS_2G, WLAN_PARAM_Integer,
Kiran Kumar Lokere666bf852016-05-02 12:23:02 -07002006 struct hdd_config, vdev_type_nss_2g,
2007 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2008 CFG_VDEV_TYPE_NSS_2G_DEFAULT,
2009 CFG_VDEV_TYPE_NSS_2G_MIN,
2010 CFG_VDEV_TYPE_NSS_2G_MAX),
2011
Liangwei Dong22810e82018-03-15 03:42:12 -04002012 REG_VARIABLE(CFG_ENABLE_BT_CHAIN_SEPARATION, WLAN_PARAM_Integer,
2013 struct hdd_config, enable_bt_chain_separation,
2014 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2015 CFG_ENABLE_BT_CHAIN_SEPARATION_DEFAULT,
2016 CFG_ENABLE_BT_CHAIN_SEPARATION_MIN,
2017 CFG_ENABLE_BT_CHAIN_SEPARATION_MAX),
2018
Kiran Kumar Lokere1aa9c9a2016-10-05 18:50:59 -07002019 REG_VARIABLE(CFG_STA_PREFER_80MHZ_OVER_160MHZ, WLAN_PARAM_Integer,
2020 struct hdd_config, sta_prefer_80MHz_over_160MHz,
2021 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2022 CFG_STA_PREFER_80MHZ_OVER_160MHZ_DEFAULT,
2023 CFG_STA_PREFER_80MHZ_OVER_160MHZ_MIN,
2024 CFG_STA_PREFER_80MHZ_OVER_160MHZ_MAX),
2025
Nitesh Shah0e5c7322017-03-23 14:55:11 +05302026 REG_VARIABLE(CFG_VDEV_TYPE_NSS_5G, WLAN_PARAM_Integer,
Kiran Kumar Lokere666bf852016-05-02 12:23:02 -07002027 struct hdd_config, vdev_type_nss_5g,
2028 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2029 CFG_VDEV_TYPE_NSS_5G_DEFAULT,
2030 CFG_VDEV_TYPE_NSS_5G_MIN,
2031 CFG_VDEV_TYPE_NSS_5G_MAX),
2032
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002033 REG_VARIABLE(CFG_VHT_ENABLE_MU_BFORMEE_CAP_FEATURE, WLAN_PARAM_Integer,
2034 struct hdd_config, enableMuBformee,
2035 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2036 CFG_VHT_ENABLE_MU_BFORMEE_CAP_FEATURE_DEFAULT,
2037 CFG_VHT_ENABLE_MU_BFORMEE_CAP_FEATURE_MIN,
2038 CFG_VHT_ENABLE_MU_BFORMEE_CAP_FEATURE_MAX),
2039
2040 REG_VARIABLE(CFG_VHT_ENABLE_PAID_FEATURE, WLAN_PARAM_Integer,
2041 struct hdd_config, enableVhtpAid,
2042 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2043 CFG_VHT_ENABLE_PAID_FEATURE_DEFAULT,
2044 CFG_VHT_ENABLE_PAID_FEATURE_MIN,
2045 CFG_VHT_ENABLE_PAID_FEATURE_MAX),
2046
2047 REG_VARIABLE(CFG_VHT_ENABLE_GID_FEATURE, WLAN_PARAM_Integer,
2048 struct hdd_config, enableVhtGid,
2049 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2050 CFG_VHT_ENABLE_GID_FEATURE_DEFAULT,
2051 CFG_VHT_ENABLE_GID_FEATURE_MIN,
2052 CFG_VHT_ENABLE_GID_FEATURE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002053
2054 REG_VARIABLE(CFG_VHT_ENABLE_1x1_TX_CHAINMASK, WLAN_PARAM_Integer,
2055 struct hdd_config, txchainmask1x1,
2056 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2057 CFG_VHT_ENABLE_1x1_TX_CHAINMASK_DEFAULT,
2058 CFG_VHT_ENABLE_1x1_TX_CHAINMASK_MIN,
2059 CFG_VHT_ENABLE_1x1_TX_CHAINMASK_MAX),
2060
2061 REG_VARIABLE(CFG_VHT_ENABLE_1x1_RX_CHAINMASK, WLAN_PARAM_Integer,
2062 struct hdd_config, rxchainmask1x1,
2063 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2064 CFG_VHT_ENABLE_1x1_RX_CHAINMASK_DEFAULT,
2065 CFG_VHT_ENABLE_1x1_RX_CHAINMASK_MIN,
2066 CFG_VHT_ENABLE_1x1_RX_CHAINMASK_MAX),
2067
2068 REG_VARIABLE(CFG_ENABLE_AMPDUPS_FEATURE, WLAN_PARAM_Integer,
2069 struct hdd_config, enableAmpduPs,
2070 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2071 CFG_ENABLE_AMPDUPS_FEATURE_DEFAULT,
2072 CFG_ENABLE_AMPDUPS_FEATURE_MIN,
2073 CFG_ENABLE_AMPDUPS_FEATURE_MAX),
2074
2075 REG_VARIABLE(CFG_HT_ENABLE_SMPS_CAP_FEATURE, WLAN_PARAM_Integer,
2076 struct hdd_config, enableHtSmps,
2077 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2078 CFG_HT_ENABLE_SMPS_CAP_FEATURE_DEFAULT,
2079 CFG_HT_ENABLE_SMPS_CAP_FEATURE_MIN,
2080 CFG_HT_ENABLE_SMPS_CAP_FEATURE_MAX),
2081
2082 REG_VARIABLE(CFG_HT_SMPS_CAP_FEATURE, WLAN_PARAM_Integer,
2083 struct hdd_config, htSmps,
2084 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2085 CFG_HT_SMPS_CAP_FEATURE_DEFAULT,
2086 CFG_HT_SMPS_CAP_FEATURE_MIN,
2087 CFG_HT_SMPS_CAP_FEATURE_MAX),
2088
2089 REG_VARIABLE(CFG_DISABLE_DFS_CH_SWITCH, WLAN_PARAM_Integer,
2090 struct hdd_config, disableDFSChSwitch,
2091 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2092 CFG_DISABLE_DFS_CH_SWITCH_DEFAULT,
2093 CFG_DISABLE_DFS_CH_SWITCH_MIN,
2094 CFG_DISABLE_DFS_CH_SWITCH_MAX),
2095
2096 REG_VARIABLE(CFG_ENABLE_DFS_MASTER_CAPABILITY, WLAN_PARAM_Integer,
2097 struct hdd_config, enableDFSMasterCap,
2098 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2099 CFG_ENABLE_DFS_MASTER_CAPABILITY_DEFAULT,
2100 CFG_ENABLE_DFS_MASTER_CAPABILITY_MIN,
2101 CFG_ENABLE_DFS_MASTER_CAPABILITY_MAX),
2102
2103 REG_DYNAMIC_VARIABLE(CFG_SAP_PREFERRED_CHANNEL_LOCATION,
2104 WLAN_PARAM_Integer,
2105 struct hdd_config, gSapPreferredChanLocation,
2106 VAR_FLAGS_OPTIONAL |
2107 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2108 CFG_SAP_PREFERRED_CHANNEL_LOCATION_DEFAULT,
2109 CFG_SAP_PREFERRED_CHANNEL_LOCATION_MIN,
2110 CFG_SAP_PREFERRED_CHANNEL_LOCATION_MAX,
2111 cb_notify_set_g_sap_preferred_chan_location, 0),
2112 REG_DYNAMIC_VARIABLE(CFG_DISABLE_DFS_JAPAN_W53, WLAN_PARAM_Integer,
2113 struct hdd_config, gDisableDfsJapanW53,
2114 VAR_FLAGS_OPTIONAL |
2115 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2116 CFG_DISABLE_DFS_JAPAN_W53_DEFAULT,
2117 CFG_DISABLE_DFS_JAPAN_W53_MIN,
2118 CFG_DISABLE_DFS_JAPAN_W53_MAX,
2119 ch_notify_set_g_disable_dfs_japan_w53, 0),
Hong Shi417824f2017-01-12 02:31:14 +08002120
2121 REG_VARIABLE(CFG_MAX_HT_MCS_FOR_TX_DATA, WLAN_PARAM_HexInteger,
2122 struct hdd_config, max_ht_mcs_txdata,
2123 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2124 CFG_MAX_HT_MCS_FOR_TX_DATA_DEFAULT,
2125 CFG_MAX_HT_MCS_FOR_TX_DATA_MIN,
2126 CFG_MAX_HT_MCS_FOR_TX_DATA_MAX),
2127
Will Huang496b36c2017-07-11 16:38:50 +08002128 REG_VARIABLE(CFG_SAP_GET_PEER_INFO, WLAN_PARAM_Integer,
2129 struct hdd_config, sap_get_peer_info,
2130 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2131 CFG_SAP_GET_PEER_INFO_DEFAULT,
2132 CFG_SAP_GET_PEER_INFO_MIN,
2133 CFG_SAP_GET_PEER_INFO_MAX),
2134
Hong Shia9ef8712017-02-19 21:54:02 +08002135 REG_VARIABLE(CFG_DISABLE_ABG_RATE_FOR_TX_DATA, WLAN_PARAM_Integer,
2136 struct hdd_config, disable_abg_rate_txdata,
2137 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2138 CFG_DISABLE_ABG_RATE_FOR_TX_DATA_DEFAULT,
2139 CFG_DISABLE_ABG_RATE_FOR_TX_DATA_MIN,
2140 CFG_DISABLE_ABG_RATE_FOR_TX_DATA_MAX),
2141
Hong Shib90718f2017-02-20 00:57:22 +08002142 REG_VARIABLE(CFG_RATE_FOR_TX_MGMT, WLAN_PARAM_HexInteger,
2143 struct hdd_config, rate_for_tx_mgmt,
2144 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2145 CFG_RATE_FOR_TX_MGMT_DEFAULT,
2146 CFG_RATE_FOR_TX_MGMT_MIN,
2147 CFG_RATE_FOR_TX_MGMT_MAX),
2148
Hong Shi2d384fd2017-05-22 18:38:41 +08002149 REG_VARIABLE(CFG_RATE_FOR_TX_MGMT_2G, WLAN_PARAM_HexInteger,
2150 struct hdd_config, rate_for_tx_mgmt_2g,
2151 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2152 CFG_RATE_FOR_TX_MGMT_2G_DEFAULT,
2153 CFG_RATE_FOR_TX_MGMT_2G_MIN,
2154 CFG_RATE_FOR_TX_MGMT_2G_MAX),
2155
2156 REG_VARIABLE(CFG_RATE_FOR_TX_MGMT_5G, WLAN_PARAM_HexInteger,
2157 struct hdd_config, rate_for_tx_mgmt_5g,
2158 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2159 CFG_RATE_FOR_TX_MGMT_5G_DEFAULT,
2160 CFG_RATE_FOR_TX_MGMT_5G_MIN,
2161 CFG_RATE_FOR_TX_MGMT_5G_MAX),
2162
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002163 REG_VARIABLE(CFG_ENABLE_FIRST_SCAN_2G_ONLY_NAME, WLAN_PARAM_Integer,
2164 struct hdd_config, enableFirstScan2GOnly,
2165 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2166 CFG_ENABLE_FIRST_SCAN_2G_ONLY_DEFAULT,
2167 CFG_ENABLE_FIRST_SCAN_2G_ONLY_MIN,
2168 CFG_ENABLE_FIRST_SCAN_2G_ONLY_MAX),
2169
2170 REG_VARIABLE(CFG_ENABLE_SKIP_DFS_IN_P2P_SEARCH_NAME, WLAN_PARAM_Integer,
2171 struct hdd_config, skipDfsChnlInP2pSearch,
2172 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2173 CFG_ENABLE_SKIP_DFS_IN_P2P_SEARCH_DEFAULT,
2174 CFG_ENABLE_SKIP_DFS_IN_P2P_SEARCH_MIN,
2175 CFG_ENABLE_SKIP_DFS_IN_P2P_SEARCH_MAX),
2176
2177 REG_VARIABLE(CFG_IGNORE_DYNAMIC_DTIM_IN_P2P_MODE_NAME,
2178 WLAN_PARAM_Integer,
2179 struct hdd_config, ignoreDynamicDtimInP2pMode,
2180 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2181 CFG_IGNORE_DYNAMIC_DTIM_IN_P2P_MODE_DEFAULT,
2182 CFG_IGNORE_DYNAMIC_DTIM_IN_P2P_MODE_MIN,
2183 CFG_IGNORE_DYNAMIC_DTIM_IN_P2P_MODE_MAX),
2184
2185 REG_VARIABLE(CFG_ENABLE_RX_STBC, WLAN_PARAM_Integer,
2186 struct hdd_config, enableRxSTBC,
2187 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2188 CFG_ENABLE_RX_STBC_DEFAULT,
2189 CFG_ENABLE_RX_STBC_MIN,
2190 CFG_ENABLE_RX_STBC_MAX),
2191
2192 REG_VARIABLE(CFG_ENABLE_TX_STBC, WLAN_PARAM_Integer,
2193 struct hdd_config, enableTxSTBC,
2194 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2195 CFG_ENABLE_TX_STBC_DEFAULT,
2196 CFG_ENABLE_TX_STBC_MIN,
2197 CFG_ENABLE_TX_STBC_MAX),
2198
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002199 REG_VARIABLE(CFG_PPS_ENABLE_5G_EBT, WLAN_PARAM_Integer,
2200 struct hdd_config, enable5gEBT,
2201 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2202 CFG_PPS_ENABLE_5G_EBT_FEATURE_DEFAULT,
2203 CFG_PPS_ENABLE_5G_EBT_FEATURE_MIN,
2204 CFG_PPS_ENABLE_5G_EBT_FEATURE_MAX),
2205
Dustin Brownfe7aa872017-06-26 10:52:08 -07002206 REG_VARIABLE(CFG_PREVENT_LINK_DOWN_NAME, WLAN_PARAM_Integer,
2207 struct hdd_config, prevent_link_down,
2208 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2209 CFG_PREVENT_LINK_DOWN_DEFAULT,
2210 CFG_PREVENT_LINK_DOWN_MIN,
2211 CFG_PREVENT_LINK_DOWN_MAX),
2212
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002213#ifdef FEATURE_WLAN_TDLS
2214 REG_VARIABLE(CFG_TDLS_SUPPORT_ENABLE, WLAN_PARAM_Integer,
2215 struct hdd_config, fEnableTDLSSupport,
2216 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2217 CFG_TDLS_SUPPORT_ENABLE_DEFAULT,
2218 CFG_TDLS_SUPPORT_ENABLE_MIN,
2219 CFG_TDLS_SUPPORT_ENABLE_MAX),
2220
2221 REG_VARIABLE(CFG_TDLS_IMPLICIT_TRIGGER, WLAN_PARAM_Integer,
2222 struct hdd_config, fEnableTDLSImplicitTrigger,
2223 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2224 CFG_TDLS_IMPLICIT_TRIGGER_DEFAULT,
2225 CFG_TDLS_IMPLICIT_TRIGGER_MIN,
2226 CFG_TDLS_IMPLICIT_TRIGGER_MAX),
2227
2228 REG_VARIABLE(CFG_TDLS_TX_STATS_PERIOD, WLAN_PARAM_Integer,
2229 struct hdd_config, fTDLSTxStatsPeriod,
2230 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2231 CFG_TDLS_TX_STATS_PERIOD_DEFAULT,
2232 CFG_TDLS_TX_STATS_PERIOD_MIN,
2233 CFG_TDLS_TX_STATS_PERIOD_MAX),
2234
2235 REG_VARIABLE(CFG_TDLS_TX_PACKET_THRESHOLD, WLAN_PARAM_Integer,
2236 struct hdd_config, fTDLSTxPacketThreshold,
2237 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2238 CFG_TDLS_TX_PACKET_THRESHOLD_DEFAULT,
2239 CFG_TDLS_TX_PACKET_THRESHOLD_MIN,
2240 CFG_TDLS_TX_PACKET_THRESHOLD_MAX),
2241
2242 REG_VARIABLE(CFG_TDLS_MAX_DISCOVERY_ATTEMPT, WLAN_PARAM_Integer,
2243 struct hdd_config, fTDLSMaxDiscoveryAttempt,
2244 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2245 CFG_TDLS_MAX_DISCOVERY_ATTEMPT_DEFAULT,
2246 CFG_TDLS_MAX_DISCOVERY_ATTEMPT_MIN,
2247 CFG_TDLS_MAX_DISCOVERY_ATTEMPT_MAX),
2248
Kabilan Kannanca670be2015-11-23 01:56:12 -08002249 REG_VARIABLE(CFG_TDLS_IDLE_TIMEOUT, WLAN_PARAM_Integer,
2250 struct hdd_config, tdls_idle_timeout,
2251 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2252 CFG_TDLS_IDLE_TIMEOUT_DEFAULT,
2253 CFG_TDLS_IDLE_TIMEOUT_MIN,
2254 CFG_TDLS_IDLE_TIMEOUT_MAX),
2255
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002256 REG_VARIABLE(CFG_TDLS_IDLE_PACKET_THRESHOLD, WLAN_PARAM_Integer,
2257 struct hdd_config, fTDLSIdlePacketThreshold,
2258 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2259 CFG_TDLS_IDLE_PACKET_THRESHOLD_DEFAULT,
2260 CFG_TDLS_IDLE_PACKET_THRESHOLD_MIN,
2261 CFG_TDLS_IDLE_PACKET_THRESHOLD_MAX),
2262
2263 REG_VARIABLE(CFG_TDLS_RSSI_TRIGGER_THRESHOLD, WLAN_PARAM_SignedInteger,
2264 struct hdd_config, fTDLSRSSITriggerThreshold,
2265 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2266 CFG_TDLS_RSSI_TRIGGER_THRESHOLD_DEFAULT,
2267 CFG_TDLS_RSSI_TRIGGER_THRESHOLD_MIN,
2268 CFG_TDLS_RSSI_TRIGGER_THRESHOLD_MAX),
2269
2270 REG_VARIABLE(CFG_TDLS_RSSI_TEARDOWN_THRESHOLD, WLAN_PARAM_SignedInteger,
2271 struct hdd_config, fTDLSRSSITeardownThreshold,
2272 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2273 CFG_TDLS_RSSI_TEARDOWN_THRESHOLD_DEFAULT,
2274 CFG_TDLS_RSSI_TEARDOWN_THRESHOLD_MIN,
2275 CFG_TDLS_RSSI_TEARDOWN_THRESHOLD_MAX),
2276
2277 REG_VARIABLE(CFG_TDLS_RSSI_DELTA, WLAN_PARAM_SignedInteger,
2278 struct hdd_config, fTDLSRSSIDelta,
2279 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2280 CFG_TDLS_RSSI_DELTA_DEFAULT,
2281 CFG_TDLS_RSSI_DELTA_MIN,
2282 CFG_TDLS_RSSI_DELTA_MAX),
2283
2284 REG_VARIABLE(CFG_TDLS_QOS_WMM_UAPSD_MASK_NAME, WLAN_PARAM_HexInteger,
2285 struct hdd_config, fTDLSUapsdMask,
2286 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2287 CFG_TDLS_QOS_WMM_UAPSD_MASK_DEFAULT,
2288 CFG_TDLS_QOS_WMM_UAPSD_MASK_MIN,
2289 CFG_TDLS_QOS_WMM_UAPSD_MASK_MAX),
2290
2291 REG_VARIABLE(CFG_TDLS_BUFFER_STA_SUPPORT_ENABLE, WLAN_PARAM_Integer,
2292 struct hdd_config, fEnableTDLSBufferSta,
2293 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2294 CFG_TDLS_BUFFER_STA_SUPPORT_ENABLE_DEFAULT,
2295 CFG_TDLS_BUFFER_STA_SUPPORT_ENABLE_MIN,
2296 CFG_TDLS_BUFFER_STA_SUPPORT_ENABLE_MAX),
2297
2298 REG_VARIABLE(CFG_TDLS_OFF_CHANNEL_SUPPORT_ENABLE, WLAN_PARAM_Integer,
2299 struct hdd_config, fEnableTDLSOffChannel,
2300 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2301 CFG_TDLS_OFF_CHANNEL_SUPPORT_ENABLE_DEFAULT,
2302 CFG_TDLS_OFF_CHANNEL_SUPPORT_ENABLE_MIN,
2303 CFG_TDLS_OFF_CHANNEL_SUPPORT_ENABLE_MAX),
2304
2305 REG_VARIABLE(CFG_TDLS_PREFERRED_OFF_CHANNEL_NUM, WLAN_PARAM_Integer,
2306 struct hdd_config, fTDLSPrefOffChanNum,
2307 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2308 CFG_TDLS_PREFERRED_OFF_CHANNEL_NUM_DEFAULT,
2309 CFG_TDLS_PREFERRED_OFF_CHANNEL_NUM_MIN,
2310 CFG_TDLS_PREFERRED_OFF_CHANNEL_NUM_MAX),
2311
2312 REG_VARIABLE(CFG_TDLS_PREFERRED_OFF_CHANNEL_BW, WLAN_PARAM_Integer,
2313 struct hdd_config, fTDLSPrefOffChanBandwidth,
2314 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2315 CFG_TDLS_PREFERRED_OFF_CHANNEL_BW_DEFAULT,
2316 CFG_TDLS_PREFERRED_OFF_CHANNEL_BW_MIN,
2317 CFG_TDLS_PREFERRED_OFF_CHANNEL_BW_MAX),
2318
2319 REG_VARIABLE(CFG_TDLS_PUAPSD_INACTIVITY_TIME, WLAN_PARAM_Integer,
2320 struct hdd_config, fTDLSPuapsdInactivityTimer,
2321 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2322 CFG_TDLS_PUAPSD_INACTIVITY_TIME_DEFAULT,
2323 CFG_TDLS_PUAPSD_INACTIVITY_TIME_MIN,
2324 CFG_TDLS_PUAPSD_INACTIVITY_TIME_MAX),
2325
2326 REG_VARIABLE(CFG_TDLS_PUAPSD_RX_FRAME_THRESHOLD, WLAN_PARAM_Integer,
2327 struct hdd_config, fTDLSRxFrameThreshold,
2328 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2329 CFG_TDLS_PUAPSD_RX_FRAME_THRESHOLD_DEFAULT,
2330 CFG_TDLS_PUAPSD_RX_FRAME_THRESHOLD_MIN,
2331 CFG_TDLS_PUAPSD_RX_FRAME_THRESHOLD_MAX),
2332
2333 REG_VARIABLE(CFG_TDLS_PUAPSD_PEER_TRAFFIC_IND_WINDOW,
2334 WLAN_PARAM_Integer,
2335 struct hdd_config, fTDLSPuapsdPTIWindow,
2336 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2337 CFG_TDLS_PUAPSD_PEER_TRAFFIC_IND_WINDOW_DEFAULT,
2338 CFG_TDLS_PUAPSD_PEER_TRAFFIC_IND_WINDOW_MIN,
2339 CFG_TDLS_PUAPSD_PEER_TRAFFIC_IND_WINDOW_MAX),
2340
2341 REG_VARIABLE(CFG_TDLS_PUAPSD_PEER_TRAFFIC_RSP_TIMEOUT,
2342 WLAN_PARAM_Integer,
2343 struct hdd_config, fTDLSPuapsdPTRTimeout,
2344 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2345 CFG_TDLS_PUAPSD_PEER_TRAFFIC_RSP_TIMEOUT_DEFAULT,
2346 CFG_TDLS_PUAPSD_PEER_TRAFFIC_RSP_TIMEOUT_MIN,
2347 CFG_TDLS_PUAPSD_PEER_TRAFFIC_RSP_TIMEOUT_MAX),
2348
2349 REG_VARIABLE(CFG_TDLS_EXTERNAL_CONTROL, WLAN_PARAM_Integer,
2350 struct hdd_config, fTDLSExternalControl,
2351 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2352 CFG_TDLS_EXTERNAL_CONTROL_DEFAULT,
2353 CFG_TDLS_EXTERNAL_CONTROL_MIN,
2354 CFG_TDLS_EXTERNAL_CONTROL_MAX),
2355 REG_VARIABLE(CFG_TDLS_WMM_MODE_ENABLE, WLAN_PARAM_Integer,
2356 struct hdd_config, fEnableTDLSWmmMode,
2357 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2358 CFG_TDLS_WMM_MODE_ENABLE_DEFAULT,
2359 CFG_TDLS_WMM_MODE_ENABLE_MIN,
2360 CFG_TDLS_WMM_MODE_ENABLE_MAX),
2361
2362 REG_VARIABLE(CFG_TDLS_SCAN_ENABLE, WLAN_PARAM_Integer,
2363 struct hdd_config, enable_tdls_scan,
2364 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2365 CFG_TDLS_SCAN_ENABLE_DEFAULT,
2366 CFG_TDLS_SCAN_ENABLE_MIN,
2367 CFG_TDLS_SCAN_ENABLE_MAX),
Kabilan Kannan421714b2015-11-23 04:44:59 -08002368
2369 REG_VARIABLE(CFG_TDLS_PEER_KICKOUT_THRESHOLD, WLAN_PARAM_Integer,
2370 struct hdd_config, tdls_peer_kickout_threshold,
2371 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2372 CFG_TDLS_PEER_KICKOUT_THRESHOLD_DEFAULT,
2373 CFG_TDLS_PEER_KICKOUT_THRESHOLD_MIN,
2374 CFG_TDLS_PEER_KICKOUT_THRESHOLD_MAX),
2375
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002376#endif
2377
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002378 REG_VARIABLE(CFG_SCAN_AGING_PARAM_NAME, WLAN_PARAM_Integer,
2379 struct hdd_config, scanAgingTimeout,
2380 VAR_FLAGS_OPTIONAL,
2381 CFG_SCAN_AGING_PARAM_DEFAULT,
2382 CFG_SCAN_AGING_PARAM_MIN,
2383 CFG_SCAN_AGING_PARAM_MAX),
2384
2385 REG_VARIABLE(CFG_TX_LDPC_ENABLE_FEATURE, WLAN_PARAM_Integer,
Krunal Sonia2c0e412017-05-04 14:12:41 +05302386 struct hdd_config, enable_tx_ldpc,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002387 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2388 CFG_TX_LDPC_ENABLE_FEATURE_DEFAULT,
2389 CFG_TX_LDPC_ENABLE_FEATURE_MIN,
2390 CFG_TX_LDPC_ENABLE_FEATURE_MAX),
2391
Krunal Sonia2c0e412017-05-04 14:12:41 +05302392 REG_VARIABLE(CFG_ENABLE_RX_LDPC, WLAN_PARAM_Integer,
2393 struct hdd_config, enable_rx_ldpc,
2394 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2395 CFG_ENABLE_RX_LDPC_DEFAULT,
2396 CFG_ENABLE_RX_LDPC_MIN,
2397 CFG_ENABLE_RX_LDPC_MAX),
2398
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002399 REG_VARIABLE(CFG_ENABLE_MCC_ADATIVE_SCHEDULER_ENABLED_NAME,
2400 WLAN_PARAM_Integer,
2401 struct hdd_config, enableMCCAdaptiveScheduler,
2402 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2403 CFG_ENABLE_MCC_ADATIVE_SCHEDULER_ENABLED_DEFAULT,
2404 CFG_ENABLE_MCC_ADATIVE_SCHEDULER_ENABLED_MIN,
2405 CFG_ENABLE_MCC_ADATIVE_SCHEDULER_ENABLED_MAX),
2406
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002407 REG_VARIABLE(CFG_IBSS_ADHOC_CHANNEL_5GHZ_NAME, WLAN_PARAM_Integer,
2408 struct hdd_config, AdHocChannel5G,
2409 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2410 CFG_IBSS_ADHOC_CHANNEL_5GHZ_DEFAULT,
2411 CFG_IBSS_ADHOC_CHANNEL_5GHZ_MIN,
2412 CFG_IBSS_ADHOC_CHANNEL_5GHZ_MAX),
2413
2414 REG_VARIABLE(CFG_IBSS_ADHOC_CHANNEL_24GHZ_NAME, WLAN_PARAM_Integer,
2415 struct hdd_config, AdHocChannel24G,
2416 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2417 CFG_IBSS_ADHOC_CHANNEL_24GHZ_DEFAULT,
2418 CFG_IBSS_ADHOC_CHANNEL_24GHZ_MIN,
2419 CFG_IBSS_ADHOC_CHANNEL_24GHZ_MAX),
2420
2421 REG_VARIABLE(CFG_VHT_SU_BEAMFORMEE_CAP_FEATURE, WLAN_PARAM_Integer,
2422 struct hdd_config, enableTxBF,
2423 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2424 CFG_VHT_SU_BEAMFORMEE_CAP_FEATURE_DEFAULT,
2425 CFG_VHT_SU_BEAMFORMEE_CAP_FEATURE_MIN,
2426 CFG_VHT_SU_BEAMFORMEE_CAP_FEATURE_MAX),
2427
Abhishek Singh68844282018-01-25 16:48:41 +05302428 REG_VARIABLE(CFG_ENABLE_SUBFEE_IN_VENDOR_VHTIE_NAME, WLAN_PARAM_Integer,
2429 struct hdd_config, enable_subfee_vendor_vhtie,
2430 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2431 CFG_ENABLE_SUBFEE_IN_VENDOR_VHTIE_DEFAULT,
2432 CFG_ENABLE_SUBFEE_IN_VENDOR_VHTIE_MIN,
2433 CFG_ENABLE_SUBFEE_IN_VENDOR_VHTIE_MAX),
2434
Kiran Kumar Lokere5302ab62015-12-16 16:03:16 -08002435 REG_VARIABLE(CFG_VHT_ENABLE_TXBF_SAP_MODE, WLAN_PARAM_Integer,
2436 struct hdd_config, enable_txbf_sap_mode,
2437 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2438 CFG_VHT_ENABLE_TXBF_SAP_MODE_DEFAULT,
2439 CFG_VHT_ENABLE_TXBF_SAP_MODE_MIN,
2440 CFG_VHT_ENABLE_TXBF_SAP_MODE_MAX),
2441
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002442 REG_VARIABLE(CFG_VHT_ENABLE_TXBF_IN_20MHZ, WLAN_PARAM_Integer,
2443 struct hdd_config, enableTxBFin20MHz,
2444 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2445 CFG_VHT_ENABLE_TXBF_IN_20MHZ_DEFAULT,
2446 CFG_VHT_ENABLE_TXBF_IN_20MHZ_MIN,
2447 CFG_VHT_ENABLE_TXBF_IN_20MHZ_MAX),
2448
2449 REG_VARIABLE(CFG_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED, WLAN_PARAM_Integer,
2450 struct hdd_config, txBFCsnValue,
2451 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2452 CFG_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED_DEFAULT,
2453 CFG_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED_MIN,
2454 CFG_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED_MAX),
2455
2456 REG_VARIABLE(CFG_VHT_ENABLE_TX_SU_BEAM_FORMER, WLAN_PARAM_Integer,
2457 struct hdd_config, enable_su_tx_bformer,
2458 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2459 CFG_VHT_ENABLE_TX_SU_BEAM_FORMER_DEFAULT,
2460 CFG_VHT_ENABLE_TX_SU_BEAM_FORMER_MIN,
2461 CFG_VHT_ENABLE_TX_SU_BEAM_FORMER_MAX),
2462
2463 REG_VARIABLE(CFG_SAP_ALLOW_ALL_CHANNEL_PARAM_NAME, WLAN_PARAM_Integer,
2464 struct hdd_config, sapAllowAllChannel,
2465 VAR_FLAGS_OPTIONAL,
2466 CFG_SAP_ALLOW_ALL_CHANNEL_PARAM_DEFAULT,
2467 CFG_SAP_ALLOW_ALL_CHANNEL_PARAM_MIN,
2468 CFG_SAP_ALLOW_ALL_CHANNEL_PARAM_MAX),
2469
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002470 REG_VARIABLE(CFG_DISABLE_LDPC_WITH_TXBF_AP, WLAN_PARAM_Integer,
2471 struct hdd_config, disableLDPCWithTxbfAP,
2472 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2473 CFG_DISABLE_LDPC_WITH_TXBF_AP_DEFAULT,
2474 CFG_DISABLE_LDPC_WITH_TXBF_AP_MIN,
2475 CFG_DISABLE_LDPC_WITH_TXBF_AP_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002476
2477 REG_DYNAMIC_VARIABLE(CFG_ENABLE_SSR, WLAN_PARAM_Integer,
2478 struct hdd_config, enableSSR,
2479 VAR_FLAGS_OPTIONAL |
2480 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2481 CFG_ENABLE_SSR_DEFAULT,
2482 CFG_ENABLE_SSR_MIN,
2483 CFG_ENABLE_SSR_MAX,
2484 cb_notify_set_enable_ssr, 0),
2485
Poddar, Siddarth37033032017-10-11 15:47:40 +05302486 REG_VARIABLE(CFG_ENABLE_DATA_STALL_DETECTION, WLAN_PARAM_Integer,
2487 struct hdd_config, enable_data_stall_det,
2488 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2489 CFG_ENABLE_DATA_STALL_DETECTION_DEFAULT,
2490 CFG_ENABLE_DATA_STALL_DETECTION_MIN,
2491 CFG_ENABLE_DATA_STALL_DETECTION_MAX),
2492
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002493 REG_VARIABLE(CFG_ENABLE_VHT_FOR_24GHZ_NAME, WLAN_PARAM_Integer,
2494 struct hdd_config, enableVhtFor24GHzBand,
2495 VAR_FLAGS_OPTIONAL,
2496 CFG_ENABLE_VHT_FOR_24GHZ_DEFAULT,
2497 CFG_ENABLE_VHT_FOR_24GHZ_MIN,
2498 CFG_ENABLE_VHT_FOR_24GHZ_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002499
Kapil Gupta4b2efbb2016-10-03 13:07:20 +05302500
2501 REG_VARIABLE(CFG_ENABLE_VENDOR_VHT_FOR_24GHZ_NAME, WLAN_PARAM_Integer,
2502 struct hdd_config, enable_sap_vendor_vht,
2503 VAR_FLAGS_OPTIONAL,
2504 CFG_ENABLE_VENDOR_VHT_FOR_24GHZ_DEFAULT,
2505 CFG_ENABLE_VENDOR_VHT_FOR_24GHZ_MIN,
2506 CFG_ENABLE_VENDOR_VHT_FOR_24GHZ_MAX),
2507
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002508 REG_DYNAMIC_VARIABLE(CFG_ENABLE_FAST_ROAM_IN_CONCURRENCY,
2509 WLAN_PARAM_Integer,
2510 struct hdd_config, bFastRoamInConIniFeatureEnabled,
2511 VAR_FLAGS_OPTIONAL |
2512 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2513 CFG_ENABLE_FAST_ROAM_IN_CONCURRENCY_DEFAULT,
2514 CFG_ENABLE_FAST_ROAM_IN_CONCURRENCY_MIN,
2515 CFG_ENABLE_FAST_ROAM_IN_CONCURRENCY_MAX,
2516 cb_notify_set_enable_fast_roam_in_concurrency, 0),
2517
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002518 REG_VARIABLE(CFG_ENABLE_SNR_MONITORING_NAME, WLAN_PARAM_Integer,
2519 struct hdd_config, fEnableSNRMonitoring,
2520 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2521 CFG_ENABLE_SNR_MONITORING_DEFAULT,
2522 CFG_ENABLE_SNR_MONITORING_MIN,
2523 CFG_ENABLE_SNR_MONITORING_MAX),
2524
2525#ifdef FEATURE_WLAN_SCAN_PNO
2526 REG_VARIABLE(CFG_PNO_SCAN_SUPPORT, WLAN_PARAM_Integer,
2527 struct hdd_config, configPNOScanSupport,
2528 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2529 CFG_PNO_SCAN_SUPPORT_DEFAULT,
2530 CFG_PNO_SCAN_SUPPORT_DISABLE,
2531 CFG_PNO_SCAN_SUPPORT_ENABLE),
2532
2533 REG_VARIABLE(CFG_PNO_SCAN_TIMER_REPEAT_VALUE, WLAN_PARAM_Integer,
2534 struct hdd_config, configPNOScanTimerRepeatValue,
2535 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2536 CFG_PNO_SCAN_TIMER_REPEAT_VALUE_DEFAULT,
2537 CFG_PNO_SCAN_TIMER_REPEAT_VALUE_MIN,
2538 CFG_PNO_SCAN_TIMER_REPEAT_VALUE_MAX),
Srinivas Girigowdabdc98162015-09-17 11:06:07 -07002539
2540 REG_VARIABLE(CFG_PNO_SLOW_SCAN_MULTIPLIER, WLAN_PARAM_Integer,
2541 struct hdd_config, pno_slow_scan_multiplier,
2542 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2543 CFG_PNO_SLOW_SCAN_MULTIPLIER_DEFAULT,
2544 CFG_PNO_SLOW_SCAN_MULTIPLIER_MIN,
2545 CFG_PNO_SLOW_SCAN_MULTIPLIER_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002546#endif
Jeff Johnson82cc76f2017-09-30 14:18:07 -07002547 REG_VARIABLE(CFG_MAX_AMSDU_NUM_NAME, WLAN_PARAM_Integer,
Deepak Dhamdhere612392c2016-08-28 02:56:51 -07002548 struct hdd_config, max_amsdu_num,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002549 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
Deepak Dhamdhere612392c2016-08-28 02:56:51 -07002550 CFG_MAX_AMSDU_NUM_DEFAULT,
2551 CFG_MAX_AMSDU_NUM_MIN,
2552 CFG_MAX_AMSDU_NUM_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002553
2554 REG_VARIABLE(CFG_STRICT_5GHZ_PREF_BY_MARGIN, WLAN_PARAM_Integer,
2555 struct hdd_config, nSelect5GHzMargin,
2556 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2557 CFG_STRICT_5GHZ_PREF_BY_MARGIN_DEFAULT,
2558 CFG_STRICT_5GHZ_PREF_BY_MARGIN_MIN,
2559 CFG_STRICT_5GHZ_PREF_BY_MARGIN_MAX),
2560
2561 REG_VARIABLE(CFG_ENABLE_IP_TCP_UDP_CHKSUM_OFFLOAD, WLAN_PARAM_Integer,
2562 struct hdd_config, enable_ip_tcp_udp_checksum_offload,
2563 VAR_FLAGS_OPTIONAL,
2564 CFG_ENABLE_IP_TCP_UDP_CHKSUM_OFFLOAD_DEFAULT,
2565 CFG_ENABLE_IP_TCP_UDP_CHKSUM_OFFLOAD_DISABLE,
2566 CFG_ENABLE_IP_TCP_UDP_CHKSUM_OFFLOAD_ENABLE),
2567
2568 REG_VARIABLE(CFG_POWERSAVE_OFFLOAD_NAME, WLAN_PARAM_Integer,
2569 struct hdd_config, enablePowersaveOffload,
2570 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2571 CFG_POWERSAVE_OFFLOAD_DEFAULT,
2572 CFG_POWERSAVE_OFFLOAD_MIN,
2573 CFG_POWERSAVE_OFFLOAD_MAX),
2574
2575 REG_VARIABLE(CFG_ENABLE_FW_UART_PRINT_NAME, WLAN_PARAM_Integer,
2576 struct hdd_config, enablefwprint,
2577 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2578 CFG_ENABLE_FW_UART_PRINT_DEFAULT,
2579 CFG_ENABLE_FW_UART_PRINT_DISABLE,
2580 CFG_ENABLE_FW_UART_PRINT_ENABLE),
2581
2582 REG_VARIABLE(CFG_ENABLE_FW_LOG_NAME, WLAN_PARAM_Integer,
Komal Seelamc11bb222016-01-27 18:57:10 +05302583 struct hdd_config, enable_fw_log,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002584 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2585 CFG_ENABLE_FW_LOG_DEFAULT,
2586 CFG_ENABLE_FW_LOG_DISABLE,
Yuanyuan Liu7a97b8f2017-01-27 10:42:52 -08002587 CFG_ENABLE_FW_LOG_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002588
2589#ifdef IPA_OFFLOAD
2590 REG_VARIABLE(CFG_IPA_OFFLOAD_CONFIG_NAME, WLAN_PARAM_HexInteger,
2591 struct hdd_config, IpaConfig,
2592 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2593 CFG_IPA_OFFLOAD_CONFIG_DEFAULT,
2594 CFG_IPA_OFFLOAD_CONFIG_MIN,
2595 CFG_IPA_OFFLOAD_CONFIG_MAX),
2596
2597 REG_VARIABLE(CFG_IPA_DESC_SIZE_NAME, WLAN_PARAM_Integer,
2598 struct hdd_config, IpaDescSize,
2599 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2600 CFG_IPA_DESC_SIZE_DEFAULT,
2601 CFG_IPA_DESC_SIZE_MIN,
2602 CFG_IPA_DESC_SIZE_MAX),
2603
2604 REG_VARIABLE(CFG_IPA_HIGH_BANDWIDTH_MBPS, WLAN_PARAM_Integer,
2605 struct hdd_config, IpaHighBandwidthMbps,
2606 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2607 CFG_IPA_HIGH_BANDWIDTH_MBPS_DEFAULT,
2608 CFG_IPA_HIGH_BANDWIDTH_MBPS_MIN,
2609 CFG_IPA_HIGH_BANDWIDTH_MBPS_MAX),
2610
2611 REG_VARIABLE(CFG_IPA_MEDIUM_BANDWIDTH_MBPS, WLAN_PARAM_Integer,
2612 struct hdd_config, IpaMediumBandwidthMbps,
2613 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2614 CFG_IPA_MEDIUM_BANDWIDTH_MBPS_DEFAULT,
2615 CFG_IPA_MEDIUM_BANDWIDTH_MBPS_MIN,
2616 CFG_IPA_MEDIUM_BANDWIDTH_MBPS_MAX),
2617
2618 REG_VARIABLE(CFG_IPA_LOW_BANDWIDTH_MBPS, WLAN_PARAM_Integer,
2619 struct hdd_config, IpaLowBandwidthMbps,
2620 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2621 CFG_IPA_LOW_BANDWIDTH_MBPS_DEFAULT,
2622 CFG_IPA_LOW_BANDWIDTH_MBPS_MIN,
2623 CFG_IPA_LOW_BANDWIDTH_MBPS_MAX),
2624#endif
2625
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002626 REG_VARIABLE(CFG_VHT_AMPDU_LEN_EXPONENT_NAME, WLAN_PARAM_Integer,
2627 struct hdd_config, fVhtAmpduLenExponent,
2628 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2629 CFG_VHT_AMPDU_LEN_EXPONENT_DEFAULT,
2630 CFG_VHT_AMPDU_LEN_EXPONENT_MIN,
2631 CFG_VHT_AMPDU_LEN_EXPONENT_MAX),
2632
2633 REG_VARIABLE(CFG_VHT_MPDU_LEN_NAME, WLAN_PARAM_Integer,
2634 struct hdd_config, vhtMpduLen,
2635 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2636 CFG_VHT_MPDU_LEN_DEFAULT,
2637 CFG_VHT_MPDU_LEN_MIN,
2638 CFG_VHT_MPDU_LEN_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002639
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002640 REG_VARIABLE(CFG_WOW_STATUS_NAME, WLAN_PARAM_Integer,
2641 struct hdd_config, wowEnable,
2642 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2643 CFG_WOW_STATUS_DEFAULT,
2644 CFG_WOW_ENABLE_MIN,
2645 CFG_WOW_ENABLE_MAX),
2646
2647 REG_VARIABLE(CFG_COALESING_IN_IBSS_NAME, WLAN_PARAM_Integer,
2648 struct hdd_config, isCoalesingInIBSSAllowed,
2649 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2650 CFG_COALESING_IN_IBSS_DEFAULT,
2651 CFG_COALESING_IN_IBSS_MIN,
2652 CFG_COALESING_IN_IBSS_MAX),
2653
2654 REG_VARIABLE(CFG_IBSS_ATIM_WIN_SIZE_NAME, WLAN_PARAM_Integer,
2655 struct hdd_config, ibssATIMWinSize,
2656 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2657 CFG_IBSS_ATIM_WIN_SIZE_DEFAULT,
2658 CFG_IBSS_ATIM_WIN_SIZE_MIN,
2659 CFG_IBSS_ATIM_WIN_SIZE_MAX),
2660
2661 REG_VARIABLE(CFG_SAP_MAX_NO_PEERS, WLAN_PARAM_Integer,
2662 struct hdd_config, maxNumberOfPeers,
2663 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2664 CFG_SAP_MAX_NO_PEERS_DEFAULT,
2665 CFG_SAP_MAX_NO_PEERS_MIN,
2666 CFG_SAP_MAX_NO_PEERS_MAX),
2667
2668 REG_VARIABLE(CFG_IBSS_IS_POWER_SAVE_ALLOWED_NAME, WLAN_PARAM_Integer,
2669 struct hdd_config, isIbssPowerSaveAllowed,
2670 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2671 CFG_IBSS_IS_POWER_SAVE_ALLOWED_DEFAULT,
2672 CFG_IBSS_IS_POWER_SAVE_ALLOWED_MIN,
2673 CFG_IBSS_IS_POWER_SAVE_ALLOWED_MAX),
2674
2675 REG_VARIABLE(CFG_IBSS_IS_POWER_COLLAPSE_ALLOWED_NAME,
2676 WLAN_PARAM_Integer,
2677 struct hdd_config, isIbssPowerCollapseAllowed,
2678 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2679 CFG_IBSS_IS_POWER_COLLAPSE_ALLOWED_DEFAULT,
2680 CFG_IBSS_IS_POWER_COLLAPSE_ALLOWED_MIN,
2681 CFG_IBSS_IS_POWER_COLLAPSE_ALLOWED_MAX),
2682
2683 REG_VARIABLE(CFG_IBSS_AWAKE_ON_TX_RX_NAME, WLAN_PARAM_Integer,
2684 struct hdd_config, isIbssAwakeOnTxRx,
2685 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2686 CFG_IBSS_AWAKE_ON_TX_RX_DEFAULT,
2687 CFG_IBSS_AWAKE_ON_TX_RX_MIN,
2688 CFG_IBSS_AWAKE_ON_TX_RX_MAX),
2689
2690 REG_VARIABLE(CFG_IBSS_INACTIVITY_TIME_NAME, WLAN_PARAM_Integer,
2691 struct hdd_config, ibssInactivityCount,
2692 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2693 CFG_IBSS_INACTIVITY_TIME_DEFAULT,
2694 CFG_IBSS_INACTIVITY_TIME_MIN,
2695 CFG_IBSS_INACTIVITY_TIME_MAX),
2696
2697 REG_VARIABLE(CFG_IBSS_TXSP_END_INACTIVITY_NAME, WLAN_PARAM_Integer,
2698 struct hdd_config, ibssTxSpEndInactivityTime,
2699 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2700 CFG_IBSS_TXSP_END_INACTIVITY_DEFAULT,
2701 CFG_IBSS_TXSP_END_INACTIVITY_MIN,
2702 CFG_IBSS_TXSP_END_INACTIVITY_MAX),
2703
2704 REG_VARIABLE(CFG_IBSS_PS_WARMUP_TIME_NAME, WLAN_PARAM_Integer,
2705 struct hdd_config, ibssPsWarmupTime,
2706 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2707 CFG_IBSS_PS_WARMUP_TIME_DEFAULT,
2708 CFG_IBSS_PS_WARMUP_TIME_MIN,
2709 CFG_IBSS_PS_WARMUP_TIME_MAX),
2710
2711 REG_VARIABLE(CFG_IBSS_PS_1RX_CHAIN_IN_ATIM_WINDOW_NAME,
2712 WLAN_PARAM_Integer,
2713 struct hdd_config, ibssPs1RxChainInAtimEnable,
2714 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2715 CFG_IBSS_PS_1RX_CHAIN_IN_ATIM_WINDOW_DEFAULT,
2716 CFG_IBSS_PS_1RX_CHAIN_IN_ATIM_WINDOW_MIN,
2717 CFG_IBSS_PS_1RX_CHAIN_IN_ATIM_WINDOW_MAX),
2718
2719 REG_VARIABLE(CFG_THERMAL_TEMP_MIN_LEVEL0_NAME, WLAN_PARAM_Integer,
2720 struct hdd_config, thermalTempMinLevel0,
2721 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2722 CFG_THERMAL_TEMP_MIN_LEVEL0_DEFAULT,
2723 CFG_THERMAL_TEMP_MIN_LEVEL0_MIN,
2724 CFG_THERMAL_TEMP_MIN_LEVEL0_MAX),
2725
2726 REG_VARIABLE(CFG_THERMAL_TEMP_MAX_LEVEL0_NAME, WLAN_PARAM_Integer,
2727 struct hdd_config, thermalTempMaxLevel0,
2728 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2729 CFG_THERMAL_TEMP_MAX_LEVEL0_DEFAULT,
2730 CFG_THERMAL_TEMP_MAX_LEVEL0_MIN,
2731 CFG_THERMAL_TEMP_MAX_LEVEL0_MAX),
2732
2733 REG_VARIABLE(CFG_THERMAL_TEMP_MIN_LEVEL1_NAME, WLAN_PARAM_Integer,
2734 struct hdd_config, thermalTempMinLevel1,
2735 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2736 CFG_THERMAL_TEMP_MIN_LEVEL1_DEFAULT,
2737 CFG_THERMAL_TEMP_MIN_LEVEL1_MIN,
2738 CFG_THERMAL_TEMP_MIN_LEVEL1_MAX),
2739
2740 REG_VARIABLE(CFG_THERMAL_TEMP_MAX_LEVEL1_NAME, WLAN_PARAM_Integer,
2741 struct hdd_config, thermalTempMaxLevel1,
2742 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2743 CFG_THERMAL_TEMP_MAX_LEVEL1_DEFAULT,
2744 CFG_THERMAL_TEMP_MAX_LEVEL1_MIN,
2745 CFG_THERMAL_TEMP_MAX_LEVEL1_MAX),
2746
2747 REG_VARIABLE(CFG_THERMAL_TEMP_MIN_LEVEL2_NAME, WLAN_PARAM_Integer,
2748 struct hdd_config, thermalTempMinLevel2,
2749 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2750 CFG_THERMAL_TEMP_MIN_LEVEL2_DEFAULT,
2751 CFG_THERMAL_TEMP_MIN_LEVEL2_MIN,
2752 CFG_THERMAL_TEMP_MIN_LEVEL2_MAX),
2753
2754 REG_VARIABLE(CFG_THERMAL_TEMP_MAX_LEVEL2_NAME, WLAN_PARAM_Integer,
2755 struct hdd_config, thermalTempMaxLevel2,
2756 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2757 CFG_THERMAL_TEMP_MAX_LEVEL2_DEFAULT,
2758 CFG_THERMAL_TEMP_MAX_LEVEL2_MIN,
2759 CFG_THERMAL_TEMP_MAX_LEVEL2_MAX),
2760
2761 REG_VARIABLE(CFG_THERMAL_TEMP_MIN_LEVEL3_NAME, WLAN_PARAM_Integer,
2762 struct hdd_config, thermalTempMinLevel3,
2763 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2764 CFG_THERMAL_TEMP_MIN_LEVEL3_DEFAULT,
2765 CFG_THERMAL_TEMP_MIN_LEVEL3_MIN,
2766 CFG_THERMAL_TEMP_MIN_LEVEL3_MAX),
2767
2768 REG_VARIABLE(CFG_THERMAL_TEMP_MAX_LEVEL3_NAME, WLAN_PARAM_Integer,
2769 struct hdd_config, thermalTempMaxLevel3,
2770 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2771 CFG_THERMAL_TEMP_MAX_LEVEL3_DEFAULT,
2772 CFG_THERMAL_TEMP_MAX_LEVEL3_MIN,
2773 CFG_THERMAL_TEMP_MAX_LEVEL3_MAX),
2774
2775 REG_VARIABLE(CFG_SET_TXPOWER_LIMIT2G_NAME, WLAN_PARAM_Integer,
2776 struct hdd_config, TxPower2g,
2777 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2778 CFG_SET_TXPOWER_LIMIT2G_DEFAULT,
2779 CFG_SET_TXPOWER_LIMIT2G_MIN,
2780 CFG_SET_TXPOWER_LIMIT2G_MAX),
2781
2782 REG_VARIABLE(CFG_SET_TXPOWER_LIMIT5G_NAME, WLAN_PARAM_Integer,
2783 struct hdd_config, TxPower5g,
2784 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2785 CFG_SET_TXPOWER_LIMIT5G_DEFAULT,
2786 CFG_SET_TXPOWER_LIMIT5G_MIN,
2787 CFG_SET_TXPOWER_LIMIT5G_MAX),
2788
2789 REG_VARIABLE(CFG_ENABLE_DEBUG_CONNECT_ISSUE, WLAN_PARAM_Integer,
2790 struct hdd_config, gEnableDebugLog,
2791 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2792 CFG_ENABLE_DEBUG_CONNECT_ISSUE_DEFAULT,
2793 CFG_ENABLE_DEBUG_CONNECT_ISSUE_MIN,
2794 CFG_ENABLE_DEBUG_CONNECT_ISSUE_MAX),
2795
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002796 REG_VARIABLE(CFG_ENABLE_DFS_PHYERR_FILTEROFFLOAD_NAME,
2797 WLAN_PARAM_Integer,
2798 struct hdd_config, fDfsPhyerrFilterOffload,
2799 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2800 CFG_ENABLE_DFS_PHYERR_FILTEROFFLOAD_DEFAULT,
2801 CFG_ENABLE_DFS_PHYERR_FILTEROFFLOAD_MIN,
2802 CFG_ENABLE_DFS_PHYERR_FILTEROFFLOAD_MAX),
2803
2804 REG_VARIABLE(CFG_ENABLE_OVERLAP_CH, WLAN_PARAM_Integer,
2805 struct hdd_config, gEnableOverLapCh,
2806 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2807 CFG_ENABLE_OVERLAP_CH_DEFAULT,
2808 CFG_ENABLE_OVERLAP_CH_MIN,
2809 CFG_ENABLE_OVERLAP_CH_MAX),
2810
2811 REG_VARIABLE(CFG_REG_CHANGE_DEF_COUNTRY_NAME, WLAN_PARAM_Integer,
2812 struct hdd_config, fRegChangeDefCountry,
2813 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2814 CFG_REG_CHANGE_DEF_COUNTRY_DEFAULT,
2815 CFG_REG_CHANGE_DEF_COUNTRY_MIN,
2816 CFG_REG_CHANGE_DEF_COUNTRY_MAX),
2817
gaoleze5108942017-03-31 16:56:42 +08002818 REG_VARIABLE(CFG_ACS_WITH_MORE_PARAM_NAME, WLAN_PARAM_Integer,
2819 struct hdd_config, acs_with_more_param,
2820 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2821 CFG_ACS_WITH_MORE_PARAM_DEFAULT,
2822 CFG_ACS_WITH_MORE_PARAM_MIN,
2823 CFG_ACS_WITH_MORE_PARAM_MAX),
2824
2825 REG_VARIABLE(CFG_AUTO_CHANNEL_SELECT_WEIGHT, WLAN_PARAM_HexInteger,
2826 struct hdd_config, auto_channel_select_weight,
2827 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2828 CFG_AUTO_CHANNEL_SELECT_WEIGHT_DEFAULT,
2829 CFG_AUTO_CHANNEL_SELECT_WEIGHT_MIN,
2830 CFG_AUTO_CHANNEL_SELECT_WEIGHT_MAX),
2831
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002832#ifdef QCA_LL_LEGACY_TX_FLOW_CONTROL
2833 REG_VARIABLE(CFG_LL_TX_FLOW_LWM, WLAN_PARAM_Integer,
2834 struct hdd_config, TxFlowLowWaterMark,
2835 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2836 CFG_LL_TX_FLOW_LWM_DEFAULT,
2837 CFG_LL_TX_FLOW_LWM_MIN,
2838 CFG_LL_TX_FLOW_LWM_MAX),
2839 REG_VARIABLE(CFG_LL_TX_FLOW_HWM_OFFSET, WLAN_PARAM_Integer,
2840 struct hdd_config, TxFlowHighWaterMarkOffset,
2841 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2842 CFG_LL_TX_FLOW_HWM_OFFSET_DEFAULT,
2843 CFG_LL_TX_FLOW_HWM_OFFSET_MIN,
2844 CFG_LL_TX_FLOW_HWM_OFFSET_MAX),
2845 REG_VARIABLE(CFG_LL_TX_FLOW_MAX_Q_DEPTH, WLAN_PARAM_Integer,
2846 struct hdd_config, TxFlowMaxQueueDepth,
2847 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2848 CFG_LL_TX_FLOW_MAX_Q_DEPTH_DEFAULT,
2849 CFG_LL_TX_FLOW_MAX_Q_DEPTH_MIN,
2850 CFG_LL_TX_FLOW_MAX_Q_DEPTH_MAX),
2851 REG_VARIABLE(CFG_LL_TX_LBW_FLOW_LWM, WLAN_PARAM_Integer,
2852 struct hdd_config, TxLbwFlowLowWaterMark,
2853 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2854 CFG_LL_TX_LBW_FLOW_LWM_DEFAULT,
2855 CFG_LL_TX_LBW_FLOW_LWM_MIN,
2856 CFG_LL_TX_LBW_FLOW_LWM_MAX),
2857
2858 REG_VARIABLE(CFG_LL_TX_LBW_FLOW_HWM_OFFSET, WLAN_PARAM_Integer,
2859 struct hdd_config, TxLbwFlowHighWaterMarkOffset,
2860 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2861 CFG_LL_TX_LBW_FLOW_HWM_OFFSET_DEFAULT,
2862 CFG_LL_TX_LBW_FLOW_HWM_OFFSET_MIN,
2863 CFG_LL_TX_LBW_FLOW_HWM_OFFSET_MAX),
2864
2865 REG_VARIABLE(CFG_LL_TX_LBW_FLOW_MAX_Q_DEPTH, WLAN_PARAM_Integer,
2866 struct hdd_config, TxLbwFlowMaxQueueDepth,
2867 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2868 CFG_LL_TX_LBW_FLOW_MAX_Q_DEPTH_DEFAULT,
2869 CFG_LL_TX_LBW_FLOW_MAX_Q_DEPTH_MIN,
2870 CFG_LL_TX_LBW_FLOW_MAX_Q_DEPTH_MAX),
2871
2872 REG_VARIABLE(CFG_LL_TX_HBW_FLOW_LWM, WLAN_PARAM_Integer,
2873 struct hdd_config, TxHbwFlowLowWaterMark,
2874 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2875 CFG_LL_TX_HBW_FLOW_LWM_DEFAULT,
2876 CFG_LL_TX_HBW_FLOW_LWM_MIN,
2877 CFG_LL_TX_HBW_FLOW_LWM_MAX),
2878
2879 REG_VARIABLE(CFG_LL_TX_HBW_FLOW_HWM_OFFSET, WLAN_PARAM_Integer,
2880 struct hdd_config, TxHbwFlowHighWaterMarkOffset,
2881 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2882 CFG_LL_TX_HBW_FLOW_HWM_OFFSET_DEFAULT,
2883 CFG_LL_TX_HBW_FLOW_HWM_OFFSET_MIN,
2884 CFG_LL_TX_HBW_FLOW_HWM_OFFSET_MAX),
2885
2886 REG_VARIABLE(CFG_LL_TX_HBW_FLOW_MAX_Q_DEPTH, WLAN_PARAM_Integer,
2887 struct hdd_config, TxHbwFlowMaxQueueDepth,
2888 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2889 CFG_LL_TX_HBW_FLOW_MAX_Q_DEPTH_DEFAULT,
2890 CFG_LL_TX_HBW_FLOW_MAX_Q_DEPTH_MIN,
2891 CFG_LL_TX_HBW_FLOW_MAX_Q_DEPTH_MAX),
2892#endif /* QCA_LL_LEGACY_TX_FLOW_CONTROL */
2893#ifdef QCA_LL_TX_FLOW_CONTROL_V2
2894
2895 REG_VARIABLE(CFG_LL_TX_FLOW_STOP_QUEUE_TH, WLAN_PARAM_Integer,
2896 struct hdd_config, TxFlowStopQueueThreshold,
2897 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2898 CFG_LL_TX_FLOW_STOP_QUEUE_TH_DEFAULT,
2899 CFG_LL_TX_FLOW_STOP_QUEUE_TH_MIN,
2900 CFG_LL_TX_FLOW_STOP_QUEUE_TH_MAX),
2901
2902 REG_VARIABLE(CFG_LL_TX_FLOW_START_QUEUE_OFFSET, WLAN_PARAM_Integer,
2903 struct hdd_config, TxFlowStartQueueOffset,
2904 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2905 CFG_LL_TX_FLOW_START_QUEUE_OFFSET_DEFAULT,
2906 CFG_LL_TX_FLOW_START_QUEUE_OFFSET_MIN,
2907 CFG_LL_TX_FLOW_START_QUEUE_OFFSET_MAX),
2908
2909#endif
2910 REG_VARIABLE(CFG_INITIAL_DWELL_TIME_NAME, WLAN_PARAM_Integer,
2911 struct hdd_config, nInitialDwellTime,
2912 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2913 CFG_INITIAL_DWELL_TIME_DEFAULT,
2914 CFG_INITIAL_DWELL_TIME_MIN,
2915 CFG_INITIAL_DWELL_TIME_MAX),
2916
2917 REG_VARIABLE(CFG_INITIAL_SCAN_NO_DFS_CHNL_NAME, WLAN_PARAM_Integer,
2918 struct hdd_config, initial_scan_no_dfs_chnl,
2919 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2920 CFG_INITIAL_SCAN_NO_DFS_CHNL_DEFAULT,
2921 CFG_INITIAL_SCAN_NO_DFS_CHNL_MIN,
2922 CFG_INITIAL_SCAN_NO_DFS_CHNL_MAX),
2923
2924 REG_VARIABLE(CFG_SAP_MAX_OFFLOAD_PEERS, WLAN_PARAM_Integer,
2925 struct hdd_config, apMaxOffloadPeers,
2926 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2927 CFG_SAP_MAX_OFFLOAD_PEERS_DEFAULT,
2928 CFG_SAP_MAX_OFFLOAD_PEERS_MIN,
2929 CFG_SAP_MAX_OFFLOAD_PEERS_MAX),
2930
2931 REG_VARIABLE(CFG_SAP_MAX_OFFLOAD_REORDER_BUFFS, WLAN_PARAM_Integer,
2932 struct hdd_config, apMaxOffloadReorderBuffs,
2933 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2934 CFG_SAP_MAX_OFFLOAD_REORDER_BUFFS_DEFAULT,
2935 CFG_SAP_MAX_OFFLOAD_REORDER_BUFFS_MIN,
2936 CFG_SAP_MAX_OFFLOAD_REORDER_BUFFS_MAX),
2937
2938 REG_VARIABLE(CFG_ADVERTISE_CONCURRENT_OPERATION_NAME,
2939 WLAN_PARAM_Integer,
2940 struct hdd_config, advertiseConcurrentOperation,
2941 VAR_FLAGS_OPTIONAL,
2942 CFG_ADVERTISE_CONCURRENT_OPERATION_DEFAULT,
2943 CFG_ADVERTISE_CONCURRENT_OPERATION_MIN,
2944 CFG_ADVERTISE_CONCURRENT_OPERATION_MAX),
2945
2946 REG_VARIABLE(CFG_ENABLE_MEMORY_DEEP_SLEEP, WLAN_PARAM_Integer,
2947 struct hdd_config, enableMemDeepSleep,
2948 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2949 CFG_ENABLE_MEMORY_DEEP_SLEEP_DEFAULT,
2950 CFG_ENABLE_MEMORY_DEEP_SLEEP_MIN,
2951 CFG_ENABLE_MEMORY_DEEP_SLEEP_MAX),
2952
Dustin Brown732ab9c2017-06-15 13:24:09 -07002953 REG_VARIABLE(CFG_ENABLE_CCK_TX_FIR_OVERRIDE_NAME, WLAN_PARAM_Integer,
2954 struct hdd_config, enable_cck_tx_fir_override,
2955 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2956 CFG_ENABLE_CCK_TX_FIR_OVERRIDE_DEFAULT,
2957 CFG_ENABLE_CCK_TX_FIR_OVERRIDE_MIN,
2958 CFG_ENABLE_CCK_TX_FIR_OVERRIDE_MAX),
2959
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002960 REG_VARIABLE(CFG_DEBUG_P2P_REMAIN_ON_CHANNEL_NAME, WLAN_PARAM_Integer,
2961 struct hdd_config, debugP2pRemainOnChannel,
2962 VAR_FLAGS_OPTIONAL,
2963 CFG_DEBUG_P2P_REMAIN_ON_CHANNEL_DEFAULT,
2964 CFG_DEBUG_P2P_REMAIN_ON_CHANNEL_MIN,
2965 CFG_DEBUG_P2P_REMAIN_ON_CHANNEL_MAX),
2966
2967 REG_VARIABLE(CFG_ENABLE_PACKET_LOG, WLAN_PARAM_Integer,
2968 struct hdd_config, enablePacketLog,
2969 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2970 CFG_ENABLE_PACKET_LOG_DEFAULT,
2971 CFG_ENABLE_PACKET_LOG_MIN,
2972 CFG_ENABLE_PACKET_LOG_MAX),
2973
2974#ifdef WLAN_FEATURE_ROAM_OFFLOAD
2975 REG_VARIABLE(CFG_ROAMING_OFFLOAD_NAME, WLAN_PARAM_Integer,
2976 struct hdd_config, isRoamOffloadEnabled,
2977 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2978 CFG_ROAMING_OFFLOAD_DEFAULT,
2979 CFG_ROAMING_OFFLOAD_MIN,
2980 CFG_ROAMING_OFFLOAD_MAX),
2981#endif
2982#ifdef MSM_PLATFORM
2983 REG_VARIABLE(CFG_BUS_BANDWIDTH_HIGH_THRESHOLD, WLAN_PARAM_Integer,
2984 struct hdd_config, busBandwidthHighThreshold,
2985 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2986 CFG_BUS_BANDWIDTH_HIGH_THRESHOLD_DEFAULT,
2987 CFG_BUS_BANDWIDTH_HIGH_THRESHOLD_MIN,
2988 CFG_BUS_BANDWIDTH_HIGH_THRESHOLD_MAX),
2989
2990 REG_VARIABLE(CFG_BUS_BANDWIDTH_MEDIUM_THRESHOLD, WLAN_PARAM_Integer,
2991 struct hdd_config, busBandwidthMediumThreshold,
2992 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2993 CFG_BUS_BANDWIDTH_MEDIUM_THRESHOLD_DEFAULT,
2994 CFG_BUS_BANDWIDTH_MEDIUM_THRESHOLD_MIN,
2995 CFG_BUS_BANDWIDTH_MEDIUM_THRESHOLD_MAX),
2996
2997 REG_VARIABLE(CFG_BUS_BANDWIDTH_LOW_THRESHOLD, WLAN_PARAM_Integer,
2998 struct hdd_config, busBandwidthLowThreshold,
2999 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3000 CFG_BUS_BANDWIDTH_LOW_THRESHOLD_DEFAULT,
3001 CFG_BUS_BANDWIDTH_LOW_THRESHOLD_MIN,
3002 CFG_BUS_BANDWIDTH_LOW_THRESHOLD_MAX),
3003
3004 REG_VARIABLE(CFG_BUS_BANDWIDTH_COMPUTE_INTERVAL, WLAN_PARAM_Integer,
3005 struct hdd_config, busBandwidthComputeInterval,
3006 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3007 CFG_BUS_BANDWIDTH_COMPUTE_INTERVAL_DEFAULT,
3008 CFG_BUS_BANDWIDTH_COMPUTE_INTERVAL_MIN,
3009 CFG_BUS_BANDWIDTH_COMPUTE_INTERVAL_MAX),
Ravi Joshie2331e82015-07-01 18:18:54 -07003010
Prakash Manjunathappae73e3b52018-02-27 18:56:22 -08003011 REG_VARIABLE(CFG_ENABLE_TCP_LIMIT_OUTPUT, WLAN_PARAM_Integer,
3012 struct hdd_config, enable_tcp_limit_output,
3013 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3014 CFG_ENABLE_TCP_LIMIT_OUTPUT_DEFAULT,
3015 CFG_ENABLE_TCP_LIMIT_OUTPUT_MIN,
3016 CFG_ENABLE_TCP_LIMIT_OUTPUT_MAX),
3017
Mohit Khanna6272fb682017-04-13 09:34:36 -07003018 REG_VARIABLE(CFG_ENABLE_TCP_ADV_WIN_SCALE, WLAN_PARAM_Integer,
3019 struct hdd_config, enable_tcp_adv_win_scale,
3020 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3021 CFG_ENABLE_TCP_ADV_WIN_SCALE_DEFAULT,
3022 CFG_ENABLE_TCP_ADV_WIN_SCALE_MIN,
3023 CFG_ENABLE_TCP_ADV_WIN_SCALE_MAX),
3024
Ravi Joshie2331e82015-07-01 18:18:54 -07003025 REG_VARIABLE(CFG_ENABLE_TCP_DELACK, WLAN_PARAM_Integer,
3026 struct hdd_config, enable_tcp_delack,
3027 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3028 CFG_ENABLE_TCP_DELACK_DEFAULT,
3029 CFG_ENABLE_TCP_DELACK_MIN,
3030 CFG_ENABLE_TCP_DELACK_MAX),
3031
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003032 REG_VARIABLE(CFG_TCP_DELACK_THRESHOLD_HIGH, WLAN_PARAM_Integer,
3033 struct hdd_config, tcpDelackThresholdHigh,
3034 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3035 CFG_TCP_DELACK_THRESHOLD_HIGH_DEFAULT,
3036 CFG_TCP_DELACK_THRESHOLD_HIGH_MIN,
3037 CFG_TCP_DELACK_THRESHOLD_HIGH_MAX),
Ravi Joshie2331e82015-07-01 18:18:54 -07003038
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003039 REG_VARIABLE(CFG_TCP_DELACK_THRESHOLD_LOW, WLAN_PARAM_Integer,
3040 struct hdd_config, tcpDelackThresholdLow,
3041 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3042 CFG_TCP_DELACK_THRESHOLD_LOW_DEFAULT,
3043 CFG_TCP_DELACK_THRESHOLD_LOW_MIN,
3044 CFG_TCP_DELACK_THRESHOLD_LOW_MAX),
Mohit Khannae71e2262015-11-10 09:37:24 -08003045
Ravi Joshib89e7f72016-09-07 13:43:15 -07003046 REG_VARIABLE(CFG_TCP_DELACK_TIMER_COUNT, WLAN_PARAM_Integer,
3047 struct hdd_config, tcp_delack_timer_count,
3048 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3049 CFG_TCP_DELACK_TIMER_COUNT_DEFAULT,
3050 CFG_TCP_DELACK_TIMER_COUNT_MIN,
3051 CFG_TCP_DELACK_TIMER_COUNT_MAX),
Mohit Khannae71e2262015-11-10 09:37:24 -08003052
Ravi Joshib89e7f72016-09-07 13:43:15 -07003053 REG_VARIABLE(CFG_TCP_TX_HIGH_TPUT_THRESHOLD_NAME, WLAN_PARAM_Integer,
3054 struct hdd_config, tcp_tx_high_tput_thres,
3055 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3056 CFG_TCP_TX_HIGH_TPUT_THRESHOLD_DEFAULT,
3057 CFG_TCP_TX_HIGH_TPUT_THRESHOLD_MIN,
3058 CFG_TCP_TX_HIGH_TPUT_THRESHOLD_MAX),
Mohit Khannaca4173b2017-09-12 21:52:19 -07003059 REG_VARIABLE(CFG_PERIODIC_STATS_DISPLAY_TIME_NAME, WLAN_PARAM_Integer,
3060 struct hdd_config, periodic_stats_disp_time,
3061 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3062 CFG_PERIODIC_STATS_DISPLAY_TIME_DEFAULT,
3063 CFG_PERIODIC_STATS_DISPLAY_TIME_MIN,
3064 CFG_PERIODIC_STATS_DISPLAY_TIME_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003065#endif
3066
3067 REG_VARIABLE(CFG_ENABLE_FW_LOG_TYPE, WLAN_PARAM_Integer,
3068 struct hdd_config, enableFwLogType,
3069 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3070 CFG_ENABLE_FW_LOG_TYPE_DEFAULT,
3071 CFG_ENABLE_FW_LOG_TYPE_MIN,
3072 CFG_ENABLE_FW_LOG_TYPE_MAX),
3073
3074 REG_VARIABLE(CFG_ENABLE_FW_DEBUG_LOG_LEVEL, WLAN_PARAM_Integer,
3075 struct hdd_config, enableFwLogLevel,
3076 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3077 CFG_ENABLE_FW_DEBUG_LOG_LEVEL_DEFAULT,
3078 CFG_ENABLE_FW_DEBUG_LOG_LEVEL_MIN,
3079 CFG_ENABLE_FW_DEBUG_LOG_LEVEL_MAX),
3080
Rajeev Kumar Sirasanagandla0be56df2016-09-08 19:19:47 +05303081 REG_VARIABLE(CFG_ENABLE_FW_RTS_PROFILE, WLAN_PARAM_Integer,
3082 struct hdd_config, rts_profile,
3083 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3084 CFG_ENABLE_FW_RTS_PROFILE_DEFAULT,
3085 CFG_ENABLE_FW_RTS_PROFILE_MIN,
3086 CFG_ENABLE_FW_RTS_PROFILE_MAX),
3087
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003088 REG_VARIABLE_STRING(CFG_ENABLE_FW_MODULE_LOG_LEVEL, WLAN_PARAM_String,
3089 struct hdd_config, enableFwModuleLogLevel,
3090 VAR_FLAGS_OPTIONAL,
3091 (void *)CFG_ENABLE_FW_MODULE_LOG_DEFAULT),
3092
Sourav Mohapatra57006c72017-11-19 16:15:55 +05303093 REG_VARIABLE_STRING(CFG_ENABLE_CONCURRENT_STA, WLAN_PARAM_String,
3094 struct hdd_config, enableConcurrentSTA,
3095 VAR_FLAGS_NONE,
3096 (void *)CFG_ENABLE_CONCURRENT_STA_DEFAULT),
3097
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003098#ifdef WLAN_FEATURE_11W
3099 REG_VARIABLE(CFG_PMF_SA_QUERY_MAX_RETRIES_NAME, WLAN_PARAM_Integer,
3100 struct hdd_config, pmfSaQueryMaxRetries,
3101 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3102 CFG_PMF_SA_QUERY_MAX_RETRIES_DEFAULT,
3103 CFG_PMF_SA_QUERY_MAX_RETRIES_MIN,
3104 CFG_PMF_SA_QUERY_MAX_RETRIES_MAX),
3105
3106 REG_VARIABLE(CFG_PMF_SA_QUERY_RETRY_INTERVAL_NAME, WLAN_PARAM_Integer,
3107 struct hdd_config, pmfSaQueryRetryInterval,
3108 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3109 CFG_PMF_SA_QUERY_RETRY_INTERVAL_DEFAULT,
3110 CFG_PMF_SA_QUERY_RETRY_INTERVAL_MIN,
3111 CFG_PMF_SA_QUERY_RETRY_INTERVAL_MAX),
3112#endif
3113 REG_VARIABLE(CFG_MAX_CONCURRENT_CONNECTIONS_NAME, WLAN_PARAM_Integer,
3114 struct hdd_config, gMaxConcurrentActiveSessions,
3115 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3116 CFG_MAX_CONCURRENT_CONNECTIONS_DEFAULT,
3117 CFG_MAX_CONCURRENT_CONNECTIONS_MIN,
3118 CFG_MAX_CONCURRENT_CONNECTIONS_MAX),
3119
SaidiReddy Yenugacc733af2016-11-09 17:45:42 +05303120 REG_VARIABLE(CFG_ENABLE_CRASH_INJECT, WLAN_PARAM_Integer,
3121 struct hdd_config, crash_inject_enabled,
3122 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3123 CFG_ENABLE_CRASH_INJECT_DEFAULT,
3124 CFG_ENABLE_CRASH_INJECT_MIN,
3125 CFG_ENABLE_CRASH_INJECT_MAX),
3126
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003127 REG_VARIABLE(CFG_IGNORE_CAC_NAME, WLAN_PARAM_Integer,
3128 struct hdd_config, ignoreCAC,
3129 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3130 CFG_IGNORE_CAC_DEFAULT,
3131 CFG_IGNORE_CAC_MIN,
3132 CFG_IGNORE_CAC_MAX),
3133
3134 REG_VARIABLE(CFG_ENABLE_SAP_DFS_CH_SIFS_BURST_NAME, WLAN_PARAM_Integer,
3135 struct hdd_config, IsSapDfsChSifsBurstEnabled,
3136 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3137 CFG_ENABLE_SAP_DFS_CH_SIFS_BURST_DEFAULT,
3138 CFG_ENABLE_SAP_DFS_CH_SIFS_BURST_MIN,
3139 CFG_ENABLE_SAP_DFS_CH_SIFS_BURST_MAX),
3140
3141 REG_VARIABLE(CFG_DFS_RADAR_PRI_MULTIPLIER_NAME, WLAN_PARAM_Integer,
3142 struct hdd_config, dfsRadarPriMultiplier,
3143 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3144 CFG_DFS_RADAR_PRI_MULTIPLIER_DEFAULT,
3145 CFG_DFS_RADAR_PRI_MULTIPLIER_MIN,
3146 CFG_DFS_RADAR_PRI_MULTIPLIER_MAX),
3147
3148 REG_VARIABLE(CFG_REORDER_OFFLOAD_SUPPORT_NAME, WLAN_PARAM_Integer,
3149 struct hdd_config, reorderOffloadSupport,
3150 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3151 CFG_REORDER_OFFLOAD_SUPPORT_DEFAULT,
3152 CFG_REORDER_OFFLOAD_SUPPORT_MIN,
3153 CFG_REORDER_OFFLOAD_SUPPORT_MAX),
3154
3155 REG_VARIABLE(CFG_IPA_UC_TX_BUF_COUNT_NAME, WLAN_PARAM_Integer,
3156 struct hdd_config, IpaUcTxBufCount,
3157 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
3158 CFG_IPA_UC_TX_BUF_COUNT_DEFAULT,
3159 CFG_IPA_UC_TX_BUF_COUNT_MIN,
3160 CFG_IPA_UC_TX_BUF_COUNT_MAX),
3161
3162 REG_VARIABLE(CFG_IPA_UC_TX_BUF_SIZE_NAME, WLAN_PARAM_Integer,
3163 struct hdd_config, IpaUcTxBufSize,
3164 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
3165 CFG_IPA_UC_TX_BUF_SIZE_DEFAULT,
3166 CFG_IPA_UC_TX_BUF_SIZE_MIN,
3167 CFG_IPA_UC_TX_BUF_SIZE_MAX),
3168
3169 REG_VARIABLE(CFG_IPA_UC_RX_IND_RING_COUNT_NAME, WLAN_PARAM_Integer,
3170 struct hdd_config, IpaUcRxIndRingCount,
3171 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
3172 CFG_IPA_UC_RX_IND_RING_COUNT_DEFAULT,
3173 CFG_IPA_UC_RX_IND_RING_COUNT_MIN,
3174 CFG_IPA_UC_RX_IND_RING_COUNT_MAX),
3175
3176 REG_VARIABLE(CFG_IPA_UC_TX_PARTITION_BASE_NAME, WLAN_PARAM_Integer,
3177 struct hdd_config, IpaUcTxPartitionBase,
3178 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
3179 CFG_IPA_UC_TX_PARTITION_BASE_DEFAULT,
3180 CFG_IPA_UC_TX_PARTITION_BASE_MIN,
3181 CFG_IPA_UC_TX_PARTITION_BASE_MAX),
3182#ifdef WLAN_LOGGING_SOCK_SVC_ENABLE
3183 REG_VARIABLE(CFG_WLAN_LOGGING_SUPPORT_NAME, WLAN_PARAM_Integer,
Nirav Shaheb017be2018-02-15 11:20:58 +05303184 struct hdd_config, wlan_logging_enable,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003185 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3186 CFG_WLAN_LOGGING_SUPPORT_DEFAULT,
3187 CFG_WLAN_LOGGING_SUPPORT_DISABLE,
3188 CFG_WLAN_LOGGING_SUPPORT_ENABLE),
3189
Srinivas Girigowda8187e792017-03-03 11:50:59 -08003190 REG_VARIABLE(CFG_WLAN_LOGGING_CONSOLE_SUPPORT_NAME,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003191 WLAN_PARAM_Integer,
Nirav Shaheb017be2018-02-15 11:20:58 +05303192 struct hdd_config, wlan_logging_to_console,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003193 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
Srinivas Girigowda8187e792017-03-03 11:50:59 -08003194 CFG_WLAN_LOGGING_CONSOLE_SUPPORT_DEFAULT,
3195 CFG_WLAN_LOGGING_CONSOLE_SUPPORT_DISABLE,
3196 CFG_WLAN_LOGGING_CONSOLE_SUPPORT_ENABLE),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003197#endif /* WLAN_LOGGING_SOCK_SVC_ENABLE */
3198
3199 REG_VARIABLE(CFG_ENABLE_SIFS_BURST, WLAN_PARAM_Integer,
3200 struct hdd_config, enableSifsBurst,
3201 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3202 CFG_ENABLE_SIFS_BURST_DEFAULT,
3203 CFG_ENABLE_SIFS_BURST_MIN,
3204 CFG_ENABLE_SIFS_BURST_MAX),
3205
3206#ifdef WLAN_FEATURE_LPSS
3207 REG_VARIABLE(CFG_ENABLE_LPASS_SUPPORT, WLAN_PARAM_Integer,
Komal Seelamc11bb222016-01-27 18:57:10 +05303208 struct hdd_config, enable_lpass_support,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003209 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3210 CFG_ENABLE_LPASS_SUPPORT_DEFAULT,
3211 CFG_ENABLE_LPASS_SUPPORT_MIN,
3212 CFG_ENABLE_LPASS_SUPPORT_MAX),
3213#endif
3214
3215#ifdef WLAN_FEATURE_NAN
3216 REG_VARIABLE(CFG_ENABLE_NAN_SUPPORT, WLAN_PARAM_Integer,
3217 struct hdd_config, enable_nan_support,
3218 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3219 CFG_ENABLE_NAN_SUPPORT_DEFAULT,
3220 CFG_ENABLE_NAN_SUPPORT_MIN,
3221 CFG_ENABLE_NAN_SUPPORT_MAX),
3222#endif
3223
3224 REG_VARIABLE(CFG_ENABLE_SELF_RECOVERY, WLAN_PARAM_Integer,
3225 struct hdd_config, enableSelfRecovery,
3226 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3227 CFG_ENABLE_SELF_RECOVERY_DEFAULT,
3228 CFG_ENABLE_SELF_RECOVERY_MIN,
3229 CFG_ENABLE_SELF_RECOVERY_MAX),
3230
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003231 REG_VARIABLE(CFG_ENABLE_SAP_SUSPEND, WLAN_PARAM_Integer,
Jeff Johnson60cbd2d2017-11-03 18:26:28 -07003232 struct hdd_config, enable_sap_suspend,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003233 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3234 CFG_ENABLE_SAP_SUSPEND_DEFAULT,
3235 CFG_ENABLE_SAP_SUSPEND_MIN,
3236 CFG_ENABLE_SAP_SUSPEND_MAX),
3237
3238#ifdef WLAN_FEATURE_EXTWOW_SUPPORT
3239 REG_VARIABLE(CFG_EXTWOW_GO_TO_SUSPEND, WLAN_PARAM_Integer,
3240 struct hdd_config, extWowGotoSuspend,
3241 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3242 CFG_EXTWOW_GO_TO_SUSPEND_DEFAULT,
3243 CFG_EXTWOW_GO_TO_SUSPEND_MIN,
3244 CFG_EXTWOW_GO_TO_SUSPEND_MAX),
3245
3246 REG_VARIABLE(CFG_EXTWOW_APP1_WAKE_PIN_NUMBER, WLAN_PARAM_Integer,
3247 struct hdd_config, extWowApp1WakeupPinNumber,
3248 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3249 CFG_EXTWOW_APP1_WAKE_PIN_NUMBER_DEFAULT,
3250 CFG_EXTWOW_APP1_WAKE_PIN_NUMBER_MIN,
3251 CFG_EXTWOW_APP1_WAKE_PIN_NUMBER_MAX),
3252
3253 REG_VARIABLE(CFG_EXTWOW_APP2_WAKE_PIN_NUMBER, WLAN_PARAM_Integer,
3254 struct hdd_config, extWowApp2WakeupPinNumber,
3255 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3256 CFG_EXTWOW_APP2_WAKE_PIN_NUMBER_DEFAULT,
3257 CFG_EXTWOW_APP2_WAKE_PIN_NUMBER_MIN,
3258 CFG_EXTWOW_APP2_WAKE_PIN_NUMBER_MAX),
3259
3260 REG_VARIABLE(CFG_EXTWOW_KA_INIT_PING_INTERVAL, WLAN_PARAM_Integer,
3261 struct hdd_config, extWowApp2KAInitPingInterval,
3262 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3263 CFG_EXTWOW_KA_INIT_PING_INTERVAL_DEFAULT,
3264 CFG_EXTWOW_KA_INIT_PING_INTERVAL_MIN,
3265 CFG_EXTWOW_KA_INIT_PING_INTERVAL_MAX),
3266
3267 REG_VARIABLE(CFG_EXTWOW_KA_MIN_PING_INTERVAL, WLAN_PARAM_Integer,
3268 struct hdd_config, extWowApp2KAMinPingInterval,
3269 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3270 CFG_EXTWOW_KA_MIN_PING_INTERVAL_DEFAULT,
3271 CFG_EXTWOW_KA_MIN_PING_INTERVAL_MIN,
3272 CFG_EXTWOW_KA_MIN_PING_INTERVAL_MAX),
3273
3274 REG_VARIABLE(CFG_EXTWOW_KA_MAX_PING_INTERVAL, WLAN_PARAM_Integer,
3275 struct hdd_config, extWowApp2KAMaxPingInterval,
3276 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3277 CFG_EXTWOW_KA_MAX_PING_INTERVAL_DEFAULT,
3278 CFG_EXTWOW_KA_MAX_PING_INTERVAL_MIN,
3279 CFG_EXTWOW_KA_MAX_PING_INTERVAL_MAX),
3280
3281 REG_VARIABLE(CFG_EXTWOW_KA_INC_PING_INTERVAL, WLAN_PARAM_Integer,
3282 struct hdd_config, extWowApp2KAIncPingInterval,
3283 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3284 CFG_EXTWOW_KA_INC_PING_INTERVAL_DEFAULT,
3285 CFG_EXTWOW_KA_INC_PING_INTERVAL_MIN,
3286 CFG_EXTWOW_KA_INC_PING_INTERVAL_MAX),
3287
3288 REG_VARIABLE(CFG_EXTWOW_TCP_SRC_PORT, WLAN_PARAM_Integer,
3289 struct hdd_config, extWowApp2TcpSrcPort,
3290 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3291 CFG_EXTWOW_TCP_SRC_PORT_DEFAULT,
3292 CFG_EXTWOW_TCP_SRC_PORT_MIN,
3293 CFG_EXTWOW_TCP_SRC_PORT_MAX),
3294
3295 REG_VARIABLE(CFG_EXTWOW_TCP_DST_PORT, WLAN_PARAM_Integer,
3296 struct hdd_config, extWowApp2TcpDstPort,
3297 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3298 CFG_EXTWOW_TCP_DST_PORT_DEFAULT,
3299 CFG_EXTWOW_TCP_DST_PORT_MIN,
3300 CFG_EXTWOW_TCP_DST_PORT_MAX),
3301
3302 REG_VARIABLE(CFG_EXTWOW_TCP_TX_TIMEOUT, WLAN_PARAM_Integer,
3303 struct hdd_config, extWowApp2TcpTxTimeout,
3304 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3305 CFG_EXTWOW_TCP_TX_TIMEOUT_DEFAULT,
3306 CFG_EXTWOW_TCP_TX_TIMEOUT_MIN,
3307 CFG_EXTWOW_TCP_TX_TIMEOUT_MAX),
3308
3309 REG_VARIABLE(CFG_EXTWOW_TCP_RX_TIMEOUT, WLAN_PARAM_Integer,
3310 struct hdd_config, extWowApp2TcpRxTimeout,
3311 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3312 CFG_EXTWOW_TCP_RX_TIMEOUT_DEFAULT,
3313 CFG_EXTWOW_TCP_RX_TIMEOUT_MIN,
3314 CFG_EXTWOW_TCP_RX_TIMEOUT_MAX),
3315#endif
3316 REG_VARIABLE(CFG_ENABLE_DEAUTH_TO_DISASSOC_MAP_NAME, WLAN_PARAM_Integer,
3317 struct hdd_config, gEnableDeauthToDisassocMap,
3318 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3319 CFG_ENABLE_DEAUTH_TO_DISASSOC_MAP_DEFAULT,
3320 CFG_ENABLE_DEAUTH_TO_DISASSOC_MAP_MIN,
3321 CFG_ENABLE_DEAUTH_TO_DISASSOC_MAP_MAX),
3322#ifdef DHCP_SERVER_OFFLOAD
3323 REG_VARIABLE(CFG_DHCP_SERVER_OFFLOAD_SUPPORT_NAME, WLAN_PARAM_Integer,
3324 struct hdd_config, enableDHCPServerOffload,
3325 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3326 CFG_DHCP_SERVER_OFFLOAD_SUPPORT_DEFAULT,
3327 CFG_DHCP_SERVER_OFFLOAD_SUPPORT_MIN,
3328 CFG_DHCP_SERVER_OFFLOAD_SUPPORT_MAX),
3329 REG_VARIABLE(CFG_DHCP_SERVER_OFFLOAD_NUM_CLIENT_NAME,
3330 WLAN_PARAM_Integer,
3331 struct hdd_config, dhcpMaxNumClients,
3332 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3333 CFG_DHCP_SERVER_OFFLOAD_NUM_CLIENT_DEFAULT,
3334 CFG_DHCP_SERVER_OFFLOAD_NUM_CLIENT_MIN,
3335 CFG_DHCP_SERVER_OFFLOAD_NUM_CLIENT_MAX),
3336 REG_VARIABLE_STRING(CFG_DHCP_SERVER_IP_NAME, WLAN_PARAM_String,
3337 struct hdd_config, dhcpServerIP,
3338 VAR_FLAGS_OPTIONAL,
3339 (void *)CFG_DHCP_SERVER_IP_DEFAULT),
3340#endif /* DHCP_SERVER_OFFLOAD */
3341
3342 REG_VARIABLE(CFG_ENABLE_DEAUTH_BEFORE_CONNECTION, WLAN_PARAM_Integer,
Jeff Johnson1ad3fbd2017-11-03 08:00:02 -07003343 struct hdd_config, send_deauth_before_con,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003344 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3345 CFG_ENABLE_DEAUTH_BEFORE_CONNECTION_DEFAULT,
3346 CFG_ENABLE_DEAUTH_BEFORE_CONNECTION_MIN,
3347 CFG_ENABLE_DEAUTH_BEFORE_CONNECTION_MAX),
3348
3349 REG_VARIABLE(CFG_ENABLE_MAC_ADDR_SPOOFING, WLAN_PARAM_Integer,
3350 struct hdd_config, enable_mac_spoofing,
3351 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3352 CFG_ENABLE_MAC_ADDR_SPOOFING_DEFAULT,
3353 CFG_ENABLE_MAC_ADDR_SPOOFING_MIN,
3354 CFG_ENABLE_MAC_ADDR_SPOOFING_MAX),
3355
3356 REG_VARIABLE(CFG_ENABLE_CUSTOM_CONC_RULE1_NAME, WLAN_PARAM_Integer,
3357 struct hdd_config, conc_custom_rule1,
3358 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
3359 CFG_ENABLE_CUSTOM_CONC_RULE1_NAME_DEFAULT,
3360 CFG_ENABLE_CUSTOM_CONC_RULE1_NAME_MIN,
3361 CFG_ENABLE_CUSTOM_CONC_RULE1_NAME_MAX),
3362
3363 REG_VARIABLE(CFG_ENABLE_CUSTOM_CONC_RULE2_NAME, WLAN_PARAM_Integer,
3364 struct hdd_config, conc_custom_rule2,
3365 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
3366 CFG_ENABLE_CUSTOM_CONC_RULE2_NAME_DEFAULT,
3367 CFG_ENABLE_CUSTOM_CONC_RULE2_NAME_MIN,
3368 CFG_ENABLE_CUSTOM_CONC_RULE2_NAME_MAX),
3369
3370 REG_VARIABLE(CFG_ENABLE_STA_CONNECTION_IN_5GHZ, WLAN_PARAM_Integer,
3371 struct hdd_config, is_sta_connection_in_5gz_enabled,
3372 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
3373 CFG_ENABLE_STA_CONNECTION_IN_5GHZ_DEFAULT,
3374 CFG_ENABLE_STA_CONNECTION_IN_5GHZ_MIN,
3375 CFG_ENABLE_STA_CONNECTION_IN_5GHZ_MAX),
3376
3377 REG_VARIABLE(CFG_STA_MIRACAST_MCC_REST_TIME_VAL, WLAN_PARAM_Integer,
3378 struct hdd_config, sta_miracast_mcc_rest_time_val,
3379 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3380 CFG_STA_MIRACAST_MCC_REST_TIME_VAL_DEFAULT,
3381 CFG_STA_MIRACAST_MCC_REST_TIME_VAL_MIN,
3382 CFG_STA_MIRACAST_MCC_REST_TIME_VAL_MAX),
3383
3384#ifdef FEATURE_AP_MCC_CH_AVOIDANCE
3385 REG_VARIABLE(CFG_SAP_MCC_CHANNEL_AVOIDANCE_NAME,
3386 WLAN_PARAM_Integer,
3387 struct hdd_config,
3388 sap_channel_avoidance,
3389 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
3390 CFG_SAP_MCC_CHANNEL_AVOIDANCE_DEFAULT,
3391 CFG_SAP_MCC_CHANNEL_AVOIDANCE_MIN,
3392 CFG_SAP_MCC_CHANNEL_AVOIDANCE_MAX),
3393#endif /* FEATURE_AP_MCC_CH_AVOIDANCE */
3394
3395 REG_VARIABLE(CFG_SAP_P2P_11AC_OVERRIDE_NAME, WLAN_PARAM_Integer,
3396 struct hdd_config, sap_p2p_11ac_override,
3397 VAR_FLAGS_OPTIONAL |
3398 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3399 CFG_SAP_P2P_11AC_OVERRIDE_DEFAULT,
3400 CFG_SAP_P2P_11AC_OVERRIDE_MIN,
3401 CFG_SAP_P2P_11AC_OVERRIDE_MAX),
3402
3403 REG_VARIABLE(CFG_ENABLE_RAMDUMP_COLLECTION, WLAN_PARAM_Integer,
3404 struct hdd_config, is_ramdump_enabled,
3405 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3406 CFG_ENABLE_RAMDUMP_COLLECTION_DEFAULT,
3407 CFG_ENABLE_RAMDUMP_COLLECTION_MIN,
3408 CFG_ENABLE_RAMDUMP_COLLECTION_MAX),
3409
3410 REG_VARIABLE(CFG_SAP_DOT11MC, WLAN_PARAM_Integer,
3411 struct hdd_config, sap_dot11mc,
3412 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3413 CFG_SAP_DOT11MC_DEFAULT,
3414 CFG_SAP_DOT11MC_MIN,
3415 CFG_SAP_DOT11MC_MAX),
3416
3417 REG_VARIABLE(CFG_ENABLE_NON_DFS_CHAN_ON_RADAR, WLAN_PARAM_Integer,
3418 struct hdd_config, prefer_non_dfs_on_radar,
3419 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3420 CFG_ENABLE_NON_DFS_CHAN_ON_RADAR_DEFAULT,
3421 CFG_ENABLE_NON_DFS_CHAN_ON_RADAR_MIN,
3422 CFG_ENABLE_NON_DFS_CHAN_ON_RADAR_MAX),
3423
Bala Venkateshf4928a42017-10-24 11:28:07 +05303424 REG_VARIABLE(CFG_P2P_LISTEN_DEFER_INTERVAL_NAME, WLAN_PARAM_Integer,
3425 struct hdd_config, p2p_listen_defer_interval,
3426 VAR_FLAGS_OPTIONAL |
3427 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3428 CFG_P2P_LISTEN_DEFER_INTERVAL_DEFAULT,
3429 CFG_P2P_LISTEN_DEFER_INTERVAL_MIN,
3430 CFG_P2P_LISTEN_DEFER_INTERVAL_MAX),
3431
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003432 REG_VARIABLE(CFG_MULTICAST_HOST_FW_MSGS, WLAN_PARAM_Integer,
3433 struct hdd_config, multicast_host_fw_msgs,
3434 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3435 CFG_MULTICAST_HOST_FW_MSGS_DEFAULT,
3436 CFG_MULTICAST_HOST_FW_MSGS_MIN,
3437 CFG_MULTICAST_HOST_FW_MSGS_MAX),
3438
3439 REG_VARIABLE(CFG_CONC_SYSTEM_PREF, WLAN_PARAM_Integer,
3440 struct hdd_config, conc_system_pref,
3441 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3442 CFG_CONC_SYSTEM_PREF_DEFAULT,
3443 CFG_CONC_SYSTEM_PREF_MIN,
3444 CFG_CONC_SYSTEM_PREF_MAX),
3445
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003446 REG_VARIABLE(CFG_TSO_ENABLED_NAME, WLAN_PARAM_Integer,
3447 struct hdd_config, tso_enable,
3448 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3449 CFG_TSO_ENABLED_DEFAULT,
3450 CFG_TSO_ENABLED_MIN,
3451 CFG_TSO_ENABLED_MAX),
3452
3453 REG_VARIABLE(CFG_LRO_ENABLED_NAME, WLAN_PARAM_Integer,
3454 struct hdd_config, lro_enable,
3455 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3456 CFG_LRO_ENABLED_DEFAULT,
3457 CFG_LRO_ENABLED_MIN,
3458 CFG_LRO_ENABLED_MAX),
3459
Manjunathappa Prakash7b0ad462018-04-15 00:37:16 -07003460 REG_VARIABLE(CFG_GRO_ENABLED_NAME, WLAN_PARAM_Integer,
3461 struct hdd_config, gro_enable,
3462 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3463 CFG_GRO_ENABLED_DEFAULT,
3464 CFG_GRO_ENABLED_MIN,
3465 CFG_GRO_ENABLED_MAX),
3466
Rajeev Kumardd3bc602016-08-16 14:21:05 -07003467 REG_VARIABLE(CFG_BPF_PACKET_FILTER_OFFLOAD, WLAN_PARAM_Integer,
3468 struct hdd_config, bpf_packet_filter_enable,
3469 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3470 CFG_BPF_PACKET_FILTER_OFFLOAD_DEFAULT,
3471 CFG_BPF_PACKET_FILTER_OFFLOAD_MIN,
3472 CFG_BPF_PACKET_FILTER_OFFLOAD_MAX),
3473
Nitesh Shah61c10d92016-10-19 19:29:15 +05303474 REG_VARIABLE(CFG_TDLS_ENABLE_DEFER_TIMER, WLAN_PARAM_Integer,
3475 struct hdd_config, tdls_enable_defer_time,
3476 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3477 CFG_TDLS_ENABLE_DEFER_TIMER_DEFAULT,
3478 CFG_TDLS_ENABLE_DEFER_TIMER_MIN,
3479 CFG_TDLS_ENABLE_DEFER_TIMER_MAX),
3480
Manjunathappa Prakashfff753c2016-09-01 19:34:56 -07003481 REG_VARIABLE(CFG_FLOW_STEERING_ENABLED_NAME, WLAN_PARAM_Integer,
3482 struct hdd_config, flow_steering_enable,
3483 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3484 CFG_FLOW_STEERING_ENABLED_DEFAULT,
3485 CFG_FLOW_STEERING_ENABLED_MIN,
3486 CFG_FLOW_STEERING_ENABLED_MAX),
3487
Orhan K AKYILDIZ30e8cbc2017-08-11 18:00:28 -07003488 REG_VARIABLE(CFG_MAX_MSDUS_PER_RXIND_NAME, WLAN_PARAM_Integer,
3489 struct hdd_config, max_msdus_per_rxinorderind,
3490 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3491 CFG_MAX_MSDUS_PER_RXIND_DEFAULT,
3492 CFG_MAX_MSDUS_PER_RXIND_MIN,
3493 CFG_MAX_MSDUS_PER_RXIND_MAX),
3494
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003495 REG_VARIABLE(CFG_ACTIVE_MODE_OFFLOAD, WLAN_PARAM_Integer,
3496 struct hdd_config, active_mode_offload,
3497 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3498 CFG_ACTIVE_MODE_OFFLOAD_DEFAULT,
3499 CFG_ACTIVE_MODE_OFFLOAD_MIN,
3500 CFG_ACTIVE_MODE_OFFLOAD_MAX),
3501
3502 REG_VARIABLE(CFG_FINE_TIME_MEAS_CAPABILITY, WLAN_PARAM_HexInteger,
3503 struct hdd_config, fine_time_meas_cap,
3504 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3505 CFG_FINE_TIME_MEAS_CAPABILITY_DEFAULT,
3506 CFG_FINE_TIME_MEAS_CAPABILITY_MIN,
3507 CFG_FINE_TIME_MEAS_CAPABILITY_MAX),
3508
3509#ifdef WLAN_FEATURE_FASTPATH
3510 REG_VARIABLE(CFG_ENABLE_FASTPATH, WLAN_PARAM_Integer,
3511 struct hdd_config, fastpath_enable,
3512 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3513 CFG_ENABLE_FASTPATH_DEFAULT,
3514 CFG_ENABLE_FASTPATH_MIN,
3515 CFG_ENABLE_FASTPATH_MAX),
3516#endif
3517 REG_VARIABLE(CFG_MAX_SCAN_COUNT_NAME, WLAN_PARAM_Integer,
3518 struct hdd_config, max_scan_count,
3519 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3520 CFG_MAX_SCAN_COUNT_DEFAULT,
3521 CFG_MAX_SCAN_COUNT_MIN,
3522 CFG_MAX_SCAN_COUNT_MAX),
3523
3524 REG_VARIABLE(CFG_DOT11P_MODE_NAME, WLAN_PARAM_Integer,
3525 struct hdd_config, dot11p_mode,
3526 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3527 CFG_DOT11P_MODE_DEFAULT,
3528 CFG_DOT11P_MODE_MIN,
3529 CFG_DOT11P_MODE_MAX),
3530
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003531#ifdef FEATURE_WLAN_EXTSCAN
Manjeet Singh0f2ce5c2016-09-01 12:08:57 +05303532 REG_VARIABLE(CFG_EXTSCAN_ALLOWED_NAME, WLAN_PARAM_Integer,
3533 struct hdd_config, extscan_enabled,
3534 VAR_FLAGS_OPTIONAL |
3535 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3536 CFG_EXTSCAN_ALLOWED_DEF,
3537 CFG_EXTSCAN_ALLOWED_MIN,
3538 CFG_EXTSCAN_ALLOWED_MAX),
3539
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003540 REG_VARIABLE(CFG_EXTSCAN_PASSIVE_MAX_CHANNEL_TIME_NAME,
3541 WLAN_PARAM_Integer,
3542 struct hdd_config, extscan_passive_max_chn_time,
3543 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3544 CFG_EXTSCAN_PASSIVE_MAX_CHANNEL_TIME_DEFAULT,
3545 CFG_EXTSCAN_PASSIVE_MAX_CHANNEL_TIME_MIN,
3546 CFG_EXTSCAN_PASSIVE_MAX_CHANNEL_TIME_MAX),
3547
3548 REG_VARIABLE(CFG_EXTSCAN_PASSIVE_MIN_CHANNEL_TIME_NAME,
3549 WLAN_PARAM_Integer,
3550 struct hdd_config, extscan_passive_min_chn_time,
3551 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3552 CFG_EXTSCAN_PASSIVE_MIN_CHANNEL_TIME_DEFAULT,
3553 CFG_EXTSCAN_PASSIVE_MIN_CHANNEL_TIME_MIN,
3554 CFG_EXTSCAN_PASSIVE_MIN_CHANNEL_TIME_MAX),
3555
3556 REG_VARIABLE(CFG_EXTSCAN_ACTIVE_MAX_CHANNEL_TIME_NAME,
3557 WLAN_PARAM_Integer,
3558 struct hdd_config, extscan_active_max_chn_time,
3559 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3560 CFG_EXTSCAN_ACTIVE_MAX_CHANNEL_TIME_DEFAULT,
3561 CFG_EXTSCAN_ACTIVE_MAX_CHANNEL_TIME_MIN,
3562 CFG_EXTSCAN_ACTIVE_MAX_CHANNEL_TIME_MAX),
3563
3564 REG_VARIABLE(CFG_EXTSCAN_ACTIVE_MIN_CHANNEL_TIME_NAME,
3565 WLAN_PARAM_Integer,
3566 struct hdd_config, extscan_active_min_chn_time,
3567 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3568 CFG_EXTSCAN_ACTIVE_MIN_CHANNEL_TIME_DEFAULT,
3569 CFG_EXTSCAN_ACTIVE_MIN_CHANNEL_TIME_MIN,
3570 CFG_EXTSCAN_ACTIVE_MIN_CHANNEL_TIME_MAX),
3571#endif
3572
Yingying Tang95409972016-10-20 15:16:15 +08003573#ifdef WLAN_FEATURE_WOW_PULSE
3574 REG_VARIABLE(CFG_WOW_PULSE_SUPPORT_NAME, WLAN_PARAM_Integer,
3575 struct hdd_config, wow_pulse_support,
3576 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3577 CFG_WOW_PULSE_SUPPORT_DEFAULT,
3578 CFG_WOW_PULSE_SUPPORT_MIN,
3579 CFG_WOW_PULSE_SUPPORT_MAX),
3580
3581 REG_VARIABLE(CFG_WOW_PULSE_PIN_NAME, WLAN_PARAM_Integer,
3582 struct hdd_config, wow_pulse_pin,
3583 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3584 CFG_WOW_PULSE_PIN_DEFAULT,
3585 CFG_WOW_PULSE_PIN_MIN,
3586 CFG_WOW_PULSE_PIN_MAX),
3587
3588 REG_VARIABLE(CFG_WOW_PULSE_INTERVAL_LOW_NAME, WLAN_PARAM_Integer,
3589 struct hdd_config, wow_pulse_interval_low,
3590 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3591 CFG_WOW_PULSE_INTERVAL_LOW_DEFAULT,
3592 CFG_WOW_PULSE_INTERVAL_LOW_MIN,
3593 CFG_WOW_PULSE_INTERVAL_LOW_MAX),
3594
3595 REG_VARIABLE(CFG_WOW_PULSE_INTERVAL_HIGH_NAME, WLAN_PARAM_Integer,
3596 struct hdd_config, wow_pulse_interval_high,
3597 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3598 CFG_WOW_PULSE_INTERVAL_HIGH_DEFAULT,
3599 CFG_WOW_PULSE_INTERVAL_HIGH_MIN,
3600 CFG_WOW_PULSE_INTERVAL_HIGH_MAX),
3601#endif
3602
3603
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003604 REG_VARIABLE(CFG_CE_CLASSIFY_ENABLE_NAME, WLAN_PARAM_Integer,
3605 struct hdd_config, ce_classify_enabled,
3606 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3607 CFG_CE_CLASSIFY_ENABLE_DEFAULT,
3608 CFG_CE_CLASSIFY_ENABLE_MIN,
3609 CFG_CE_CLASSIFY_ENABLE_MAX),
3610
3611 REG_VARIABLE(CFG_DUAL_MAC_FEATURE_DISABLE, WLAN_PARAM_HexInteger,
3612 struct hdd_config, dual_mac_feature_disable,
3613 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3614 CFG_DUAL_MAC_FEATURE_DISABLE_DEFAULT,
3615 CFG_DUAL_MAC_FEATURE_DISABLE_MIN,
3616 CFG_DUAL_MAC_FEATURE_DISABLE_MAX),
Nitesh Shah50a3de12017-04-03 19:37:19 +05303617
3618 REG_VARIABLE_STRING(CFG_DBS_SCAN_SELECTION_NAME, WLAN_PARAM_String,
3619 struct hdd_config, dbs_scan_selection,
3620 VAR_FLAGS_OPTIONAL,
3621 (void *)CFG_DBS_SCAN_SELECTION_DEFAULT),
3622
Ganesh Kondabattini930304c2017-10-10 15:25:36 +05303623 REG_VARIABLE(CFG_STA_SAP_SCC_ON_DFS_CHAN, WLAN_PARAM_HexInteger,
3624 struct hdd_config, sta_sap_scc_on_dfs_chan,
3625 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3626 CFG_STA_SAP_SCC_ON_DFS_CHAN_DEFAULT,
3627 CFG_STA_SAP_SCC_ON_DFS_CHAN_MIN,
3628 CFG_STA_SAP_SCC_ON_DFS_CHAN_MAX),
3629
3630
Varun Reddy Yeturub43fda12015-09-10 18:16:21 -07003631#ifdef FEATURE_WLAN_SCAN_PNO
3632 REG_VARIABLE(CFG_PNO_CHANNEL_PREDICTION_NAME, WLAN_PARAM_Integer,
3633 struct hdd_config, pno_channel_prediction,
3634 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3635 CFG_PNO_CHANNEL_PREDICTION_DEFAULT,
3636 CFG_PNO_CHANNEL_PREDICTION_MIN,
3637 CFG_PNO_CHANNEL_PREDICTION_MAX),
3638
3639 REG_VARIABLE(CFG_TOP_K_NUM_OF_CHANNELS_NAME, WLAN_PARAM_Integer,
3640 struct hdd_config, top_k_num_of_channels,
3641 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3642 CFG_TOP_K_NUM_OF_CHANNELS_DEFAULT,
3643 CFG_TOP_K_NUM_OF_CHANNELS_MIN,
3644 CFG_TOP_K_NUM_OF_CHANNELS_MAX),
3645
3646 REG_VARIABLE(CFG_STATIONARY_THRESHOLD_NAME, WLAN_PARAM_Integer,
3647 struct hdd_config, stationary_thresh,
3648 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3649 CFG_STATIONARY_THRESHOLD_DEFAULT,
3650 CFG_STATIONARY_THRESHOLD_MIN,
3651 CFG_STATIONARY_THRESHOLD_MAX),
3652
3653 REG_VARIABLE(CFG_CHANNEL_PREDICTION_FULL_SCAN_MS_NAME,
3654 WLAN_PARAM_Integer,
3655 struct hdd_config, channel_prediction_full_scan,
3656 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3657 CFG_CHANNEL_PREDICTION_FULL_SCAN_MS_DEFAULT,
3658 CFG_CHANNEL_PREDICTION_FULL_SCAN_MS_MIN,
3659 CFG_CHANNEL_PREDICTION_FULL_SCAN_MS_MAX),
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05303660
3661 REG_VARIABLE(CFG_ADAPTIVE_PNOSCAN_DWELL_MODE_NAME,
3662 WLAN_PARAM_Integer,
3663 struct hdd_config, pnoscan_adaptive_dwell_mode,
3664 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3665 CFG_ADAPTIVE_PNOSCAN_DWELL_MODE_DEFAULT,
3666 CFG_ADAPTIVE_PNOSCAN_DWELL_MODE_MIN,
3667 CFG_ADAPTIVE_PNOSCAN_DWELL_MODE_MAX),
Varun Reddy Yeturub43fda12015-09-10 18:16:21 -07003668#endif
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003669
3670 REG_VARIABLE(CFG_TX_CHAIN_MASK_CCK, WLAN_PARAM_Integer,
3671 struct hdd_config, tx_chain_mask_cck,
3672 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3673 CFG_TX_CHAIN_MASK_CCK_DEFAULT,
3674 CFG_TX_CHAIN_MASK_CCK_MIN,
3675 CFG_TX_CHAIN_MASK_CCK_MAX),
3676
3677 REG_VARIABLE(CFG_TX_CHAIN_MASK_1SS, WLAN_PARAM_Integer,
3678 struct hdd_config, tx_chain_mask_1ss,
3679 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3680 CFG_TX_CHAIN_MASK_1SS_DEFAULT,
3681 CFG_TX_CHAIN_MASK_1SS_MIN,
3682 CFG_TX_CHAIN_MASK_1SS_MAX),
3683
Jeff Johnsona89e25d2017-02-24 12:25:07 -08003684 REG_VARIABLE(CFG_ENABLE_SMART_CHAINMASK_NAME, WLAN_PARAM_Integer,
3685 struct hdd_config, smart_chainmask_enabled,
3686 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3687 CFG_ENABLE_SMART_CHAINMASK_DEFAULT,
3688 CFG_ENABLE_SMART_CHAINMASK_MIN,
3689 CFG_ENABLE_SMART_CHAINMASK_MAX),
3690
3691 REG_VARIABLE(CFG_ENABLE_COEX_ALT_CHAINMASK_NAME, WLAN_PARAM_Integer,
3692 struct hdd_config, alternative_chainmask_enabled,
3693 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3694 CFG_ENABLE_COEX_ALT_CHAINMASK_DEFAULT,
3695 CFG_ENABLE_COEX_ALT_CHAINMASK_MIN,
3696 CFG_ENABLE_COEX_ALT_CHAINMASK_MAX),
3697
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003698 REG_VARIABLE(CFG_SELF_GEN_FRM_PWR, WLAN_PARAM_Integer,
3699 struct hdd_config, self_gen_frm_pwr,
3700 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3701 CFG_SELF_GEN_FRM_PWR_DEFAULT,
3702 CFG_SELF_GEN_FRM_PWR_MIN,
3703 CFG_SELF_GEN_FRM_PWR_MAX),
3704
Varun Reddy Yeturu05186292015-09-28 17:12:33 -07003705 REG_VARIABLE(CFG_EARLY_STOP_SCAN_ENABLE, WLAN_PARAM_Integer,
3706 struct hdd_config, early_stop_scan_enable,
3707 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3708 CFG_EARLY_STOP_SCAN_ENABLE_DEFAULT,
3709 CFG_EARLY_STOP_SCAN_ENABLE_MIN,
3710 CFG_EARLY_STOP_SCAN_ENABLE_MAX),
3711
3712 REG_VARIABLE(CFG_EARLY_STOP_SCAN_MIN_THRESHOLD,
3713 WLAN_PARAM_SignedInteger, struct hdd_config,
3714 early_stop_scan_min_threshold,
3715 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3716 CFG_EARLY_STOP_SCAN_MIN_THRESHOLD_DEFAULT,
3717 CFG_EARLY_STOP_SCAN_MIN_THRESHOLD_MIN,
3718 CFG_EARLY_STOP_SCAN_MIN_THRESHOLD_MAX),
3719
3720 REG_VARIABLE(CFG_EARLY_STOP_SCAN_MAX_THRESHOLD,
3721 WLAN_PARAM_SignedInteger, struct hdd_config,
3722 early_stop_scan_max_threshold,
3723 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3724 CFG_EARLY_STOP_SCAN_MAX_THRESHOLD_DEFAULT,
3725 CFG_EARLY_STOP_SCAN_MAX_THRESHOLD_MIN,
3726 CFG_EARLY_STOP_SCAN_MAX_THRESHOLD_MAX),
3727
Varun Reddy Yeturu044bda22015-11-21 22:03:40 -08003728 REG_VARIABLE(CFG_FIRST_SCAN_BUCKET_THRESHOLD_NAME,
3729 WLAN_PARAM_SignedInteger,
3730 struct hdd_config, first_scan_bucket_threshold,
3731 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3732 CFG_FIRST_SCAN_BUCKET_THRESHOLD_DEFAULT,
3733 CFG_FIRST_SCAN_BUCKET_THRESHOLD_MIN,
3734 CFG_FIRST_SCAN_BUCKET_THRESHOLD_MAX),
3735
Ravi Joshi742495d2015-11-09 18:56:53 -08003736#ifdef FEATURE_LFR_SUBNET_DETECTION
3737 REG_VARIABLE(CFG_ENABLE_LFR_SUBNET_DETECTION, WLAN_PARAM_Integer,
3738 struct hdd_config, enable_lfr_subnet_detection,
3739 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3740 CFG_ENABLE_LFR_SUBNET_DEFAULT,
3741 CFG_ENABLE_LFR_SUBNET_MIN,
3742 CFG_ENABLE_LFR_SUBNET_MAX),
3743#endif
Sandeep Puligilla93a29ec2016-02-12 16:10:56 -08003744 REG_VARIABLE(CFG_OBSS_HT40_SCAN_ACTIVE_DWELL_TIME_NAME,
3745 WLAN_PARAM_Integer,
3746 struct hdd_config, obss_active_dwelltime,
3747 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3748 CFG_OBSS_HT40_SCAN_ACTIVE_DWELL_TIME_DEFAULT,
3749 CFG_OBSS_HT40_SCAN_ACTIVE_DWELL_TIME_MIN,
3750 CFG_OBSS_HT40_SCAN_ACTIVE_DWELL_TIME_MAX),
3751
3752 REG_VARIABLE(CFG_OBSS_HT40_SCAN_PASSIVE_DWELL_TIME_NAME,
3753 WLAN_PARAM_Integer,
3754 struct hdd_config, obss_passive_dwelltime,
3755 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3756 CFG_OBSS_HT40_SCAN_PASSIVE_DWELL_TIME_DEFAULT,
3757 CFG_OBSS_HT40_SCAN_PASSIVE_DWELL_TIME_MIN,
3758 CFG_OBSS_HT40_SCAN_PASSIVE_DWELL_TIME_MAX),
3759
3760 REG_VARIABLE(CFG_OBSS_HT40_SCAN_WIDTH_TRIGGER_INTERVAL_NAME,
3761 WLAN_PARAM_Integer,
3762 struct hdd_config, obss_width_trigger_interval,
3763 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3764 CFG_OBSS_HT40_SCAN_WIDTH_TRIGGER_INTERVAL_DEFAULT,
3765 CFG_OBSS_HT40_SCAN_WIDTH_TRIGGER_INTERVAL_MIN,
3766 CFG_OBSS_HT40_SCAN_WIDTH_TRIGGER_INTERVAL_MAX),
Deepak Dhamdhere68929ec2015-08-05 15:16:35 -07003767
3768 REG_VARIABLE(CFG_INFORM_BSS_RSSI_RAW_NAME, WLAN_PARAM_Integer,
3769 struct hdd_config, inform_bss_rssi_raw,
3770 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3771 CFG_INFORM_BSS_RSSI_RAW_DEFAULT,
3772 CFG_INFORM_BSS_RSSI_RAW_MIN,
3773 CFG_INFORM_BSS_RSSI_RAW_MAX),
Tushnim Bhattacharyya24e12a62015-10-12 14:51:56 -07003774
Manikandan Mohan976e7562016-03-15 16:33:31 -07003775#ifdef WLAN_FEATURE_TSF
3776 REG_VARIABLE(CFG_SET_TSF_GPIO_PIN_NAME, WLAN_PARAM_Integer,
3777 struct hdd_config, tsf_gpio_pin,
3778 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3779 CFG_SET_TSF_GPIO_PIN_DEFAULT,
3780 CFG_SET_TSF_GPIO_PIN_MIN,
3781 CFG_SET_TSF_GPIO_PIN_MAX),
Yu Wang66a250b2017-07-19 11:46:40 +08003782
3783#ifdef WLAN_FEATURE_TSF_PLUS
3784 REG_VARIABLE(CFG_SET_TSF_PTP_OPT_NAME, WLAN_PARAM_HexInteger,
3785 struct hdd_config, tsf_ptp_options,
3786 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3787 CFG_SET_TSF_PTP_OPT_DEFAULT,
3788 CFG_SET_TSF_PTP_OPT_MIN,
3789 CFG_SET_TSF_PTP_OPT_MAX),
3790#endif /* WLAN_FEATURE_TSF_PLUS */
Manikandan Mohan976e7562016-03-15 16:33:31 -07003791#endif
3792
Gupta, Kapilc68ad462016-02-01 19:17:23 +05303793 REG_VARIABLE(CFG_ROAM_DENSE_TRAFFIC_THRESHOLD, WLAN_PARAM_Integer,
3794 struct hdd_config, roam_dense_traffic_thresh,
3795 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3796 CFG_ROAM_DENSE_TRAFFIC_THRESHOLD_DEFAULT,
3797 CFG_ROAM_DENSE_TRAFFIC_THRESHOLD_MIN,
3798 CFG_ROAM_DENSE_TRAFFIC_THRESHOLD_MAX),
3799
3800 REG_VARIABLE(CFG_ROAM_DENSE_RSSI_THRE_OFFSET, WLAN_PARAM_Integer,
3801 struct hdd_config, roam_dense_rssi_thresh_offset,
3802 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3803 CFG_ROAM_DENSE_RSSI_THRE_OFFSET_DEFAULT,
3804 CFG_ROAM_DENSE_RSSI_THRE_OFFSET_MIN,
3805 CFG_ROAM_DENSE_RSSI_THRE_OFFSET_MAX),
3806
Abhishek Singh165bc602016-03-21 12:43:00 +05303807 REG_VARIABLE(CFG_IGNORE_PEER_HT_MODE_NAME, WLAN_PARAM_Integer,
3808 struct hdd_config, ignore_peer_ht_opmode,
3809 VAR_FLAGS_OPTIONAL |
3810 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3811 CFG_IGNORE_PEER_HT_MODE_DEFAULT,
3812 CFG_IGNORE_PEER_HT_MODE_MIN,
3813 CFG_IGNORE_PEER_HT_MODE_MAX),
3814
Gupta, Kapilc68ad462016-02-01 19:17:23 +05303815 REG_VARIABLE(CFG_ROAM_DENSE_MIN_APS, WLAN_PARAM_Integer,
3816 struct hdd_config, roam_dense_min_aps,
3817 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3818 CFG_ROAM_DENSE_MIN_APS_DEFAULT,
3819 CFG_ROAM_DENSE_MIN_APS_MIN,
3820 CFG_ROAM_DENSE_MIN_APS_MAX),
3821
Varun Reddy Yeturufaad37e2017-07-26 10:54:13 -07003822 REG_VARIABLE(CFG_ROAM_BG_SCAN_BAD_RSSI_THRESHOLD_NAME,
3823 WLAN_PARAM_SignedInteger, struct hdd_config,
3824 roam_bg_scan_bad_rssi_thresh,
3825 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3826 CFG_ROAM_BG_SCAN_BAD_RSSI_THRESHOLD_DEFAULT,
3827 CFG_ROAM_BG_SCAN_BAD_RSSI_THRESHOLD_MIN,
3828 CFG_ROAM_BG_SCAN_BAD_RSSI_THRESHOLD_MAX),
3829
3830 REG_VARIABLE(CFG_ROAM_BG_SCAN_CLIENT_BITMAP_NAME, WLAN_PARAM_Integer,
3831 struct hdd_config, roam_bg_scan_client_bitmap,
3832 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3833 CFG_ROAM_BG_SCAN_CLIENT_BITMAP_DEFAULT,
3834 CFG_ROAM_BG_SCAN_CLIENT_BITMAP_MIN,
3835 CFG_ROAM_BG_SCAN_CLIENT_BITMAP_MAX),
3836
Vignesh Viswanathanc018e982017-09-07 18:49:19 +05303837 REG_VARIABLE(CFG_ROAM_BG_SCAN_BAD_RSSI_OFFSET_2G_NAME,
3838 WLAN_PARAM_Integer, struct hdd_config,
3839 roam_bad_rssi_thresh_offset_2g,
3840 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3841 CFG_ROAM_BG_SCAN_BAD_RSSI_OFFSET_2G_DEFAULT,
3842 CFG_ROAM_BG_SCAN_BAD_RSSI_OFFSET_2G_MIN,
3843 CFG_ROAM_BG_SCAN_BAD_RSSI_OFFSET_2G_MAX),
3844
Abhinav Kumara083f212018-04-05 18:49:45 +05303845 REG_VARIABLE(CFG_ROAM_HO_DELAY_FOR_RX_NAME,
3846 WLAN_PARAM_Integer, struct hdd_config,
3847 ho_delay_for_rx,
3848 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3849 CFG_ROAM_HO_DELAY_FOR_RX_DEFAULT,
3850 CFG_ROAM_HO_DELAY_FOR_RX_MIN,
3851 CFG_ROAM_HO_DELAY_FOR_RX_MAX),
3852
Abhinav Kumara95af7c2018-04-06 17:08:00 +05303853 REG_VARIABLE(CFG_MIN_DELAY_BTW_ROAM_SCAN_NAME,
3854 WLAN_PARAM_Integer, struct hdd_config,
3855 min_delay_btw_roam_scans,
3856 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3857 CFG_MIN_DELAY_BTW_ROAM_SCAN_DEFAULT,
3858 CFG_MIN_DELAY_BTW_ROAM_SCAN_MIN,
3859 CFG_MIN_DELAY_BTW_ROAM_SCAN_MAX),
3860
3861 REG_VARIABLE(CFG_ROAM_SCAN_TRIGGER_REASON_BITMASK_NAME,
3862 WLAN_PARAM_HexInteger, struct hdd_config,
3863 roam_trigger_reason_bitmask,
3864 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3865 CFG_ROAM_SCAN_TRIGGER_REASON_BITMASK_DEFAULT,
3866 CFG_ROAM_SCAN_TRIGGER_REASON_BITMASK_MIN,
3867 CFG_ROAM_SCAN_TRIGGER_REASON_BITMASK_MAX),
3868
Abhishek Singh5ea86532016-04-27 14:10:53 +05303869 REG_VARIABLE(CFG_ENABLE_FATAL_EVENT_TRIGGER, WLAN_PARAM_Integer,
3870 struct hdd_config, enable_fatal_event,
3871 VAR_FLAGS_OPTIONAL |
3872 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3873 CFG_ENABLE_FATAL_EVENT_TRIGGER_DEFAULT,
3874 CFG_ENABLE_FATAL_EVENT_TRIGGER_MIN,
3875 CFG_ENABLE_FATAL_EVENT_TRIGGER_MAX),
3876
Abhishek Singh10ecf582016-05-04 17:48:59 +05303877 REG_VARIABLE(CFG_ENABLE_EDCA_INI_NAME, WLAN_PARAM_Integer,
3878 struct hdd_config, enable_edca_params,
3879 VAR_FLAGS_OPTIONAL |
3880 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3881 CFG_ENABLE_EDCA_INI_DEFAULT,
3882 CFG_ENABLE_EDCA_INI_MIN,
3883 CFG_ENABLE_EDCA_INI_MAX),
3884
Agrawal Ashishb2d1a452016-05-05 12:23:58 +05303885 REG_VARIABLE(CFG_ENABLE_GO_CTS2SELF_FOR_STA, WLAN_PARAM_Integer,
3886 struct hdd_config, enable_go_cts2self_for_sta,
3887 VAR_FLAGS_OPTIONAL |
3888 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3889 CFG_ENABLE_GO_CTS2SELF_FOR_STA_DEFAULT,
3890 CFG_ENABLE_GO_CTS2SELF_FOR_STA_MIN,
3891 CFG_ENABLE_GO_CTS2SELF_FOR_STA_MAX),
3892
Abhishek Singh10ecf582016-05-04 17:48:59 +05303893 REG_VARIABLE(CFG_EDCA_VO_CWMIN_VALUE_NAME, WLAN_PARAM_Integer,
3894 struct hdd_config, edca_vo_cwmin,
3895 VAR_FLAGS_OPTIONAL |
3896 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3897 CFG_EDCA_VO_CWMIN_VALUE_DEFAULT,
3898 CFG_EDCA_VO_CWMIN_VALUE_MIN,
3899 CFG_EDCA_VO_CWMIN_VALUE_MAX),
3900
3901 REG_VARIABLE(CFG_EDCA_VI_CWMIN_VALUE_NAME, WLAN_PARAM_Integer,
3902 struct hdd_config, edca_vi_cwmin,
3903 VAR_FLAGS_OPTIONAL |
3904 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3905 CFG_EDCA_VI_CWMIN_VALUE_DEFAULT,
3906 CFG_EDCA_VI_CWMIN_VALUE_MIN,
3907 CFG_EDCA_VI_CWMIN_VALUE_MAX),
3908
3909 REG_VARIABLE(CFG_EDCA_BK_CWMIN_VALUE_NAME, WLAN_PARAM_Integer,
3910 struct hdd_config, edca_bk_cwmin,
3911 VAR_FLAGS_OPTIONAL |
3912 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3913 CFG_EDCA_BK_CWMIN_VALUE_DEFAULT,
3914 CFG_EDCA_BK_CWMIN_VALUE_MIN,
3915 CFG_EDCA_BK_CWMIN_VALUE_MAX),
3916
3917 REG_VARIABLE(CFG_EDCA_BE_CWMIN_VALUE_NAME, WLAN_PARAM_Integer,
3918 struct hdd_config, edca_be_cwmin,
3919 VAR_FLAGS_OPTIONAL |
3920 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3921 CFG_EDCA_BE_CWMIN_VALUE_DEFAULT,
3922 CFG_EDCA_BE_CWMIN_VALUE_MIN,
3923 CFG_EDCA_BE_CWMIN_VALUE_MAX),
3924
3925 REG_VARIABLE(CFG_EDCA_VO_CWMAX_VALUE_NAME, WLAN_PARAM_Integer,
3926 struct hdd_config, edca_vo_cwmax,
3927 VAR_FLAGS_OPTIONAL |
3928 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3929 CFG_EDCA_VO_CWMAX_VALUE_DEFAULT,
3930 CFG_EDCA_VO_CWMAX_VALUE_MIN,
3931 CFG_EDCA_VO_CWMAX_VALUE_MAX),
3932
3933 REG_VARIABLE(CFG_EDCA_VI_CWMAX_VALUE_NAME, WLAN_PARAM_Integer,
3934 struct hdd_config, edca_vi_cwmax,
3935 VAR_FLAGS_OPTIONAL |
3936 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3937 CFG_EDCA_VI_CWMAX_VALUE_DEFAULT,
3938 CFG_EDCA_VI_CWMAX_VALUE_MIN,
3939 CFG_EDCA_VI_CWMAX_VALUE_MAX),
3940
3941 REG_VARIABLE(CFG_EDCA_BK_CWMAX_VALUE_NAME, WLAN_PARAM_Integer,
3942 struct hdd_config, edca_bk_cwmax,
3943 VAR_FLAGS_OPTIONAL |
3944 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3945 CFG_EDCA_BK_CWMAX_VALUE_DEFAULT,
3946 CFG_EDCA_BK_CWMAX_VALUE_MIN,
3947 CFG_EDCA_BK_CWMAX_VALUE_MAX),
3948
3949 REG_VARIABLE(CFG_EDCA_BE_CWMAX_VALUE_NAME, WLAN_PARAM_Integer,
3950 struct hdd_config, edca_be_cwmax,
3951 VAR_FLAGS_OPTIONAL |
3952 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3953 CFG_EDCA_BE_CWMAX_VALUE_DEFAULT,
3954 CFG_EDCA_BE_CWMAX_VALUE_MIN,
3955 CFG_EDCA_BE_CWMAX_VALUE_MAX),
3956
3957 REG_VARIABLE(CFG_EDCA_VO_AIFS_VALUE_NAME, WLAN_PARAM_Integer,
3958 struct hdd_config, edca_vo_aifs,
3959 VAR_FLAGS_OPTIONAL |
3960 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3961 CFG_EDCA_VO_AIFS_VALUE_DEFAULT,
3962 CFG_EDCA_VO_AIFS_VALUE_MIN,
3963 CFG_EDCA_VO_AIFS_VALUE_MAX),
3964
3965 REG_VARIABLE(CFG_EDCA_VI_AIFS_VALUE_NAME, WLAN_PARAM_Integer,
3966 struct hdd_config, edca_vi_aifs,
3967 VAR_FLAGS_OPTIONAL |
3968 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3969 CFG_EDCA_VI_AIFS_VALUE_DEFAULT,
3970 CFG_EDCA_VI_AIFS_VALUE_MIN,
3971 CFG_EDCA_VI_AIFS_VALUE_MAX),
3972
3973 REG_VARIABLE(CFG_EDCA_BK_AIFS_VALUE_NAME, WLAN_PARAM_Integer,
3974 struct hdd_config, edca_bk_aifs,
3975 VAR_FLAGS_OPTIONAL |
3976 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3977 CFG_EDCA_BK_AIFS_VALUE_DEFAULT,
3978 CFG_EDCA_BK_AIFS_VALUE_MIN,
3979 CFG_EDCA_BK_AIFS_VALUE_MAX),
3980
3981 REG_VARIABLE(CFG_EDCA_BE_AIFS_VALUE_NAME, WLAN_PARAM_Integer,
3982 struct hdd_config, edca_be_aifs,
3983 VAR_FLAGS_OPTIONAL |
3984 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3985 CFG_EDCA_BE_AIFS_VALUE_DEFAULT,
3986 CFG_EDCA_BE_AIFS_VALUE_MIN,
3987 CFG_EDCA_BE_AIFS_VALUE_MAX),
gbian62edd7e2017-03-07 13:12:13 +08003988
3989 REG_VARIABLE_STRING(CFG_ENABLE_TX_SCHED_WRR_VO_NAME,
3990 WLAN_PARAM_String,
3991 struct hdd_config, tx_sched_wrr_vo,
3992 VAR_FLAGS_OPTIONAL,
3993 (void *) CFG_ENABLE_TX_SCHED_WRR_VO_DEFAULT),
3994
3995 REG_VARIABLE_STRING(CFG_ENABLE_TX_SCHED_WRR_VI_NAME,
3996 WLAN_PARAM_String,
3997 struct hdd_config, tx_sched_wrr_vi,
3998 VAR_FLAGS_OPTIONAL,
3999 (void *) CFG_ENABLE_TX_SCHED_WRR_VI_DEFAULT),
4000
4001 REG_VARIABLE_STRING(CFG_ENABLE_TX_SCHED_WRR_BE_NAME,
4002 WLAN_PARAM_String,
4003 struct hdd_config, tx_sched_wrr_be,
4004 VAR_FLAGS_OPTIONAL,
4005 (void *) CFG_ENABLE_TX_SCHED_WRR_BE_DEFAULT),
4006
4007 REG_VARIABLE_STRING(CFG_ENABLE_TX_SCHED_WRR_BK_NAME,
4008 WLAN_PARAM_String,
4009 struct hdd_config, tx_sched_wrr_bk,
4010 VAR_FLAGS_OPTIONAL,
4011 (void *) CFG_ENABLE_TX_SCHED_WRR_BK_DEFAULT),
4012
Deepak Dhamdhere3385d752016-05-25 20:36:47 -07004013#ifdef WLAN_FEATURE_NAN_DATAPATH
4014 REG_VARIABLE(CFG_ENABLE_NAN_DATAPATH_NAME, WLAN_PARAM_Integer,
4015 struct hdd_config, enable_nan_datapath,
4016 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4017 CFG_ENABLE_NAN_DATAPATH_DEFAULT,
4018 CFG_ENABLE_NAN_DATAPATH_MIN,
4019 CFG_ENABLE_NAN_DATAPATH_MAX),
4020
4021 REG_VARIABLE(CFG_ENABLE_NAN_NDI_CHANNEL_NAME, WLAN_PARAM_Integer,
4022 struct hdd_config, nan_datapath_ndi_channel,
4023 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4024 CFG_ENABLE_NAN_NDI_CHANNEL_DEFAULT,
4025 CFG_ENABLE_NAN_NDI_CHANNEL_MIN,
4026 CFG_ENABLE_NAN_NDI_CHANNEL_MAX),
4027#endif
Wu Gao94488c22018-03-14 14:37:25 +08004028
Kapil Gupta0ed58dc2016-04-22 15:35:26 +05304029 REG_VARIABLE(CFG_CREATE_BUG_REPORT_FOR_SCAN, WLAN_PARAM_Integer,
4030 struct hdd_config, bug_report_for_no_scan_results,
4031 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4032 CFG_CREATE_BUG_REPORT_FOR_SCAN_DEFAULT,
4033 CFG_CREATE_BUG_REPORT_FOR_SCAN_DISABLE,
4034 CFG_CREATE_BUG_REPORT_FOR_SCAN_ENABLE),
Abhishek Singh5ea86532016-04-27 14:10:53 +05304035
Kapil Gupta8878ad92017-02-13 11:56:04 +05304036 REG_VARIABLE(CFG_USER_AUTO_CHANNEL_SELECTION, WLAN_PARAM_Integer,
4037 struct hdd_config, vendor_acs_support,
4038 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4039 CFG_USER_AUTO_CHANNEL_SELECTION_DEFAULT,
4040 CFG_USER_AUTO_CHANNEL_SELECTION_DISABLE,
4041 CFG_USER_AUTO_CHANNEL_SELECTION_ENABLE),
4042
4043 REG_VARIABLE(CFG_USER_ACS_DFS_LTE, WLAN_PARAM_Integer,
4044 struct hdd_config, acs_support_for_dfs_ltecoex,
4045 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4046 CFG_USER_ACS_DFS_LTE_DEFAULT,
4047 CFG_USER_ACS_DFS_LTE_DISABLE,
4048 CFG_USER_ACS_DFS_LTE_ENABLE),
4049
Nirav Shahcc1f1ae2016-04-26 11:41:29 +05304050 REG_VARIABLE(CFG_ENABLE_DP_TRACE, WLAN_PARAM_Integer,
4051 struct hdd_config, enable_dp_trace,
4052 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4053 CFG_ENABLE_DP_TRACE_DEFAULT,
4054 CFG_ENABLE_DP_TRACE_MIN,
4055 CFG_ENABLE_DP_TRACE_MAX),
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05304056
Mohit Khannaf8f96822017-05-17 17:11:59 -07004057
4058 REG_VARIABLE_STRING(CFG_ENABLE_DP_TRACE_CONFIG, WLAN_PARAM_String,
4059 struct hdd_config, dp_trace_config,
4060 VAR_FLAGS_OPTIONAL,
4061 (void *) CFG_ENABLE_DP_TRACE_CONFIG_DEFAULT),
4062
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05304063 REG_VARIABLE(CFG_ADAPTIVE_SCAN_DWELL_MODE_NAME, WLAN_PARAM_Integer,
4064 struct hdd_config, scan_adaptive_dwell_mode,
4065 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4066 CFG_ADAPTIVE_SCAN_DWELL_MODE_DEFAULT,
4067 CFG_ADAPTIVE_SCAN_DWELL_MODE_MIN,
4068 CFG_ADAPTIVE_SCAN_DWELL_MODE_MAX),
4069
Paul Zhang72697bd2017-12-20 09:24:25 +08004070 REG_VARIABLE(CFG_ADAPTIVE_SCAN_DWELL_MODE_NC_NAME, WLAN_PARAM_Integer,
4071 struct hdd_config, scan_adaptive_dwell_mode_nc,
4072 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4073 CFG_ADAPTIVE_SCAN_DWELL_MODE_NC_DEFAULT,
4074 CFG_ADAPTIVE_SCAN_DWELL_MODE_NC_MIN,
4075 CFG_ADAPTIVE_SCAN_DWELL_MODE_NC_MAX),
4076
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05304077 REG_VARIABLE(CFG_ADAPTIVE_ROAMSCAN_DWELL_MODE_NAME, WLAN_PARAM_Integer,
4078 struct hdd_config, roamscan_adaptive_dwell_mode,
4079 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4080 CFG_ADAPTIVE_ROAMSCAN_DWELL_MODE_DEFAULT,
4081 CFG_ADAPTIVE_ROAMSCAN_DWELL_MODE_MIN,
4082 CFG_ADAPTIVE_ROAMSCAN_DWELL_MODE_MAX),
4083
4084 REG_VARIABLE(CFG_ADAPTIVE_EXTSCAN_DWELL_MODE_NAME, WLAN_PARAM_Integer,
4085 struct hdd_config, extscan_adaptive_dwell_mode,
4086 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4087 CFG_ADAPTIVE_EXTSCAN_DWELL_MODE_DEFAULT,
4088 CFG_ADAPTIVE_EXTSCAN_DWELL_MODE_MIN,
4089 CFG_ADAPTIVE_EXTSCAN_DWELL_MODE_MAX),
4090
4091 REG_VARIABLE(CFG_ADAPTIVE_DWELL_MODE_ENABLED_NAME, WLAN_PARAM_Integer,
4092 struct hdd_config, adaptive_dwell_mode_enabled,
4093 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4094 CFG_ADAPTIVE_DWELL_MODE_ENABLED_DEFAULT,
4095 CFG_ADAPTIVE_DWELL_MODE_ENABLED_MIN,
4096 CFG_ADAPTIVE_DWELL_MODE_ENABLED_MAX),
4097
4098 REG_VARIABLE(CFG_GLOBAL_ADAPTIVE_DWELL_MODE_NAME, WLAN_PARAM_Integer,
4099 struct hdd_config, global_adapt_dwelltime_mode,
4100 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4101 CFG_GLOBAL_ADAPTIVE_DWELL_MODE_DEFAULT,
4102 CFG_GLOBAL_ADAPTIVE_DWELL_MODE_MIN,
4103 CFG_GLOBAL_ADAPTIVE_DWELL_MODE_MAX),
4104
4105 REG_VARIABLE(CFG_ADAPT_DWELL_LPF_WEIGHT_NAME, WLAN_PARAM_Integer,
4106 struct hdd_config, adapt_dwell_lpf_weight,
4107 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4108 CFG_ADAPT_DWELL_LPF_WEIGHT_DEFAULT,
4109 CFG_ADAPT_DWELL_LPF_WEIGHT_MIN,
4110 CFG_ADAPT_DWELL_LPF_WEIGHT_MAX),
4111
Naveen Rawat64e477e2016-05-20 10:34:56 -07004112 REG_VARIABLE(CFG_SUB_20_CHANNEL_WIDTH_NAME, WLAN_PARAM_Integer,
4113 struct hdd_config, enable_sub_20_channel_width,
4114 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4115 CFG_SUB_20_CHANNEL_WIDTH_DEFAULT,
4116 CFG_SUB_20_CHANNEL_WIDTH_MIN,
4117 CFG_SUB_20_CHANNEL_WIDTH_MAX),
4118
Rajeev Kumar Sirasanagandlaaf474742016-09-06 17:54:50 +05304119 REG_VARIABLE(CFG_TGT_GTX_USR_CFG_NAME, WLAN_PARAM_Integer,
4120 struct hdd_config, tgt_gtx_usr_cfg,
4121 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4122 CFG_TGT_GTX_USR_CFG_DEFAULT,
4123 CFG_TGT_GTX_USR_CFG_MIN,
4124 CFG_TGT_GTX_USR_CFG_MAX),
4125
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05304126 REG_VARIABLE(CFG_ADAPT_DWELL_PASMON_INTVAL_NAME, WLAN_PARAM_Integer,
4127 struct hdd_config, adapt_dwell_passive_mon_intval,
4128 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4129 CFG_ADAPT_DWELL_PASMON_INTVAL_DEFAULT,
4130 CFG_ADAPT_DWELL_PASMON_INTVAL_MIN,
4131 CFG_ADAPT_DWELL_PASMON_INTVAL_MAX),
4132
4133 REG_VARIABLE(CFG_ADAPT_DWELL_WIFI_THRESH_NAME, WLAN_PARAM_Integer,
4134 struct hdd_config, adapt_dwell_wifi_act_threshold,
4135 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4136 CFG_ADAPT_DWELL_WIFI_THRESH_DEFAULT,
4137 CFG_ADAPT_DWELL_WIFI_THRESH_MIN,
4138 CFG_ADAPT_DWELL_WIFI_THRESH_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004139
Nirav Shahbd36b062016-07-18 11:12:59 +05304140 REG_VARIABLE(CFG_RX_MODE_NAME, WLAN_PARAM_Integer,
4141 struct hdd_config, rx_mode,
4142 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4143 CFG_RX_MODE_DEFAULT,
4144 CFG_RX_MODE_MIN,
4145 CFG_RX_MODE_MAX),
4146
Himanshu Agarwal24aa27e2017-05-23 11:07:50 +05304147 REG_VARIABLE(CFG_CE_SERVICE_MAX_YIELD_TIME_NAME, WLAN_PARAM_Integer,
4148 struct hdd_config, ce_service_max_yield_time,
4149 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4150 CFG_CE_SERVICE_MAX_YIELD_TIME_DEFAULT,
4151 CFG_CE_SERVICE_MAX_YIELD_TIME_MIN,
4152 CFG_CE_SERVICE_MAX_YIELD_TIME_MAX),
4153
Poddar, Siddarth04eed332017-06-28 14:20:26 +05304154 REG_VARIABLE(CFG_CE_SERVICE_MAX_RX_IND_FLUSH_NAME, WLAN_PARAM_Integer,
4155 struct hdd_config, ce_service_max_rx_ind_flush,
4156 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4157 CFG_CE_SERVICE_MAX_RX_IND_FLUSH_DEFAULT,
4158 CFG_CE_SERVICE_MAX_RX_IND_FLUSH_MIN,
4159 CFG_CE_SERVICE_MAX_RX_IND_FLUSH_MAX),
4160
Nirav Shahbd36b062016-07-18 11:12:59 +05304161 REG_VARIABLE_STRING(CFG_RPS_RX_QUEUE_CPU_MAP_LIST_NAME,
4162 WLAN_PARAM_String,
4163 struct hdd_config, cpu_map_list,
4164 VAR_FLAGS_OPTIONAL,
4165 (void *)CFG_RPS_RX_QUEUE_CPU_MAP_LIST_DEFAULT),
4166
Amar Singhal18517882016-08-08 12:26:20 -07004167 REG_VARIABLE(CFG_INDOOR_CHANNEL_SUPPORT_NAME,
4168 WLAN_PARAM_Integer,
4169 struct hdd_config, indoor_channel_support,
4170 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4171 CFG_INDOOR_CHANNEL_SUPPORT_DEFAULT,
4172 CFG_INDOOR_CHANNEL_SUPPORT_MIN,
4173 CFG_INDOOR_CHANNEL_SUPPORT_MAX),
4174
Mukul Sharmaecf8e092017-12-19 22:36:31 +05304175 REG_VARIABLE(CFG_MARK_INDOOR_AS_DISABLE_NAME,
4176 WLAN_PARAM_Integer,
4177 struct hdd_config, force_ssc_disable_indoor_channel,
4178 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4179 CFG_MARK_INDOOR_AS_DISABLE_DEFAULT,
4180 CFG_MARK_INDOOR_AS_DISABLE_MIN,
4181 CFG_MARK_INDOOR_AS_DISABLE_MAX),
4182
Yingying Tangb4832f72016-10-20 13:44:55 +08004183 REG_VARIABLE(CFG_SAP_TX_LEAKAGE_THRESHOLD_NAME,
4184 WLAN_PARAM_Integer,
4185 struct hdd_config, sap_tx_leakage_threshold,
4186 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4187 CFG_SAP_TX_LEAKAGE_THRESHOLD_DEFAULT,
4188 CFG_SAP_TX_LEAKAGE_THRESHOLD_MIN,
4189 CFG_SAP_TX_LEAKAGE_THRESHOLD_MAX),
4190
Mukul Sharmaf7d62e12016-09-03 15:16:22 +05304191 REG_VARIABLE(CFG_BUG_ON_REINIT_FAILURE_NAME, WLAN_PARAM_Integer,
4192 struct hdd_config, bug_on_reinit_failure,
4193 VAR_FLAGS_OPTIONAL |
4194 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4195 CFG_BUG_ON_REINIT_FAILURE_DEFAULT,
4196 CFG_BUG_ON_REINIT_FAILURE_MIN,
4197 CFG_BUG_ON_REINIT_FAILURE_MAX),
4198
Rajeev Kumar Sirasanagandlab79b5462016-09-06 18:33:17 +05304199 REG_VARIABLE(CFG_SAP_FORCE_11N_FOR_11AC_NAME, WLAN_PARAM_Integer,
4200 struct hdd_config, sap_force_11n_for_11ac,
4201 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4202 CFG_SAP_FORCE_11N_FOR_11AC_DEFAULT,
4203 CFG_SAP_FORCE_11N_FOR_11AC_MIN,
4204 CFG_SAP_FORCE_11N_FOR_11AC_MAX),
4205
Bala Venkateshb9cf3362017-11-09 15:48:46 +05304206 REG_VARIABLE(CFG_GO_FORCE_11N_FOR_11AC_NAME, WLAN_PARAM_Integer,
4207 struct hdd_config, go_force_11n_for_11ac,
4208 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4209 CFG_GO_FORCE_11N_FOR_11AC_DEFAULT,
4210 CFG_GO_FORCE_11N_FOR_11AC_MIN,
4211 CFG_GO_FORCE_11N_FOR_11AC_MAX),
4212
Arun Khandavallifae92942016-08-01 13:31:08 +05304213 REG_VARIABLE(CFG_INTERFACE_CHANGE_WAIT_NAME, WLAN_PARAM_Integer,
4214 struct hdd_config, iface_change_wait_time,
4215 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
4216 CFG_INTERFACE_CHANGE_WAIT_DEFAULT,
4217 CFG_INTERFACE_CHANGE_WAIT_MIN,
4218 CFG_INTERFACE_CHANGE_WAIT_MAX),
Ravi Joshibb8d4512016-08-22 10:14:52 -07004219
4220 REG_VARIABLE(CFG_FILTER_MULTICAST_REPLAY_NAME,
4221 WLAN_PARAM_Integer,
4222 struct hdd_config, multicast_replay_filter,
4223 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4224 CFG_FILTER_MULTICAST_REPLAY_DEFAULT,
4225 CFG_FILTER_MULTICAST_REPLAY_MIN,
4226 CFG_FILTER_MULTICAST_REPLAY_MAX),
Manjeet Singhe7ecb7c2016-09-03 12:34:53 +05304227
4228 REG_VARIABLE(CFG_SIFS_BURST_DURATION_NAME, WLAN_PARAM_Integer,
4229 struct hdd_config, sifs_burst_duration,
4230 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4231 CFG_SIFS_BURST_DURATION_DEFAULT,
4232 CFG_SIFS_BURST_DURATION_MIN,
4233 CFG_SIFS_BURST_DURATION_MAX),
Ravi Kumar Bokka990edcc2017-01-09 20:02:58 +05304234
4235 REG_VARIABLE(CFG_ENABLE_PHY_REG, WLAN_PARAM_HexInteger,
4236 struct hdd_config, enable_phy_reg_retention,
4237 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4238 CFG_PHY_REG_DEFAULT,
4239 CFG_PHY_REG_MIN,
4240 CFG_PHY_REG_MAX),
4241
Selvaraj, Sridharebda0f22016-08-29 16:05:23 +05304242 REG_VARIABLE(CFG_OPTIMIZE_CA_EVENT_NAME, WLAN_PARAM_Integer,
4243 struct hdd_config, goptimize_chan_avoid_event,
4244 VAR_FLAGS_OPTIONAL |
4245 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4246 CFG_OPTIMIZE_CA_EVENT_DEFAULT,
4247 CFG_OPTIMIZE_CA_EVENT_DISABLE,
4248 CFG_OPTIMIZE_CA_EVENT_ENABLE),
Padma, Santhosh Kumara7119672016-08-16 16:05:14 +05304249
4250 REG_VARIABLE(CFG_TX_AGGREGATION_SIZE, WLAN_PARAM_Integer,
Paul Zhangee09f8e2018-04-23 16:11:32 +08004251 struct hdd_config, tx_aggregation_size,
4252 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4253 CFG_TX_AGGREGATION_SIZE_DEFAULT,
4254 CFG_TX_AGGREGATION_SIZE_MIN,
4255 CFG_TX_AGGREGATION_SIZE_MAX),
4256
4257 REG_VARIABLE(CFG_TX_AGGREGATION_SIZEBE, WLAN_PARAM_Integer,
4258 struct hdd_config, tx_aggregation_size_be,
4259 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4260 CFG_TX_AGGREGATION_SIZEBE_DEFAULT,
4261 CFG_TX_AGGREGATION_SIZEBE_MIN,
4262 CFG_TX_AGGREGATION_SIZEBE_MAX),
4263
4264 REG_VARIABLE(CFG_TX_AGGREGATION_SIZEBK, WLAN_PARAM_Integer,
4265 struct hdd_config, tx_aggregation_size_bk,
4266 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4267 CFG_TX_AGGREGATION_SIZEBK_DEFAULT,
4268 CFG_TX_AGGREGATION_SIZEBK_MIN,
4269 CFG_TX_AGGREGATION_SIZEBK_MAX),
4270
4271 REG_VARIABLE(CFG_TX_AGGREGATION_SIZEVI, WLAN_PARAM_Integer,
4272 struct hdd_config, tx_aggregation_size_vi,
4273 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4274 CFG_TX_AGGREGATION_SIZEVI_DEFAULT,
4275 CFG_TX_AGGREGATION_SIZEVI_MIN,
4276 CFG_TX_AGGREGATION_SIZEVI_MAX),
4277
4278 REG_VARIABLE(CFG_TX_AGGREGATION_SIZEVO, WLAN_PARAM_Integer,
4279 struct hdd_config, tx_aggregation_size_vo,
4280 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4281 CFG_TX_AGGREGATION_SIZEVO_DEFAULT,
4282 CFG_TX_AGGREGATION_SIZEVO_MIN,
4283 CFG_TX_AGGREGATION_SIZEVO_MAX),
Padma, Santhosh Kumara7119672016-08-16 16:05:14 +05304284
4285 REG_VARIABLE(CFG_RX_AGGREGATION_SIZE, WLAN_PARAM_Integer,
4286 struct hdd_config, rx_aggregation_size,
4287 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4288 CFG_RX_AGGREGATION_SIZE_DEFAULT,
4289 CFG_RX_AGGREGATION_SIZE_MIN,
4290 CFG_RX_AGGREGATION_SIZE_MAX),
Paul Zhang33fae272018-04-23 16:19:00 +08004291
4292 REG_VARIABLE(CFG_TX_AGGR_SW_RETRY_BE, WLAN_PARAM_Integer,
4293 struct hdd_config, tx_aggr_sw_retry_threshold_be,
4294 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4295 CFG_TX_AGGR_SW_RETRY_BE_DEFAULT,
4296 CFG_TX_AGGR_SW_RETRY_BE_MIN,
4297 CFG_TX_AGGR_SW_RETRY_BE_MAX),
4298
4299 REG_VARIABLE(CFG_TX_AGGR_SW_RETRY_BK, WLAN_PARAM_Integer,
4300 struct hdd_config, tx_aggr_sw_retry_threshold_bk,
4301 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4302 CFG_TX_AGGR_SW_RETRY_BK_DEFAULT,
4303 CFG_TX_AGGR_SW_RETRY_BK_MIN,
4304 CFG_TX_AGGR_SW_RETRY_BK_MAX),
4305
4306 REG_VARIABLE(CFG_TX_AGGR_SW_RETRY_VI, WLAN_PARAM_Integer,
4307 struct hdd_config, tx_aggr_sw_retry_threshold_vi,
4308 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4309 CFG_TX_AGGR_SW_RETRY_VI_DEFAULT,
4310 CFG_TX_AGGR_SW_RETRY_VI_MIN,
4311 CFG_TX_AGGR_SW_RETRY_VI_MAX),
4312
4313 REG_VARIABLE(CFG_TX_AGGR_SW_RETRY_VO, WLAN_PARAM_Integer,
4314 struct hdd_config, tx_aggr_sw_retry_threshold_vo,
4315 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4316 CFG_TX_AGGR_SW_RETRY_VO_DEFAULT,
4317 CFG_TX_AGGR_SW_RETRY_VO_MIN,
4318 CFG_TX_AGGR_SW_RETRY_VO_MAX),
4319
Agrawal, Ashish4e5fa1c2016-09-21 19:03:43 +05304320 REG_VARIABLE(CFG_SAP_MAX_INACTIVITY_OVERRIDE_NAME, WLAN_PARAM_Integer,
4321 struct hdd_config, sap_max_inactivity_override,
4322 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4323 CFG_SAP_MAX_INACTIVITY_OVERRIDE_DEFAULT,
4324 CFG_SAP_MAX_INACTIVITY_OVERRIDE_MIN,
Sandeep Puligillaafa52892016-10-26 19:03:16 -07004325 CFG_SAP_MAX_INACTIVITY_OVERRIDE_MAX),
4326 REG_VARIABLE(CFG_CRASH_FW_TIMEOUT_NAME, WLAN_PARAM_Integer,
4327 struct hdd_config, fw_timeout_crash,
4328 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4329 CFG_CRASH_FW_TIMEOUT_DEFAULT,
4330 CFG_CRASH_FW_TIMEOUT_DISABLE,
4331 CFG_CRASH_FW_TIMEOUT_ENABLE),
Dustin Browncd756942016-11-23 12:25:33 -08004332 REG_VARIABLE(CFG_RX_WAKELOCK_TIMEOUT_NAME, WLAN_PARAM_Integer,
4333 struct hdd_config, rx_wakelock_timeout,
4334 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4335 CFG_RX_WAKELOCK_TIMEOUT_DEFAULT,
4336 CFG_RX_WAKELOCK_TIMEOUT_MIN,
Anurag Chouhan7c01cc42016-12-16 21:33:43 +05304337 CFG_RX_WAKELOCK_TIMEOUT_MAX),
gaoleze2920bd2017-03-21 17:38:42 +08004338 REG_VARIABLE(CFG_SAP_CH_SWITCH_BEACON_CNT, WLAN_PARAM_Integer,
4339 struct hdd_config, sap_chanswitch_beacon_cnt,
4340 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4341 CFG_SAP_CH_SWITCH_BEACON_CNT_DEFAULT,
4342 CFG_SAP_CH_SWITCH_BEACON_CNT_MIN,
4343 CFG_SAP_CH_SWITCH_BEACON_CNT_MAX),
gaolez76d2a162017-03-21 19:23:58 +08004344 REG_VARIABLE(CFG_SAP_CH_SWITCH_MODE, WLAN_PARAM_Integer,
4345 struct hdd_config, sap_chanswitch_mode,
4346 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4347 CFG_SAP_CH_SWITCH_MODE_DEFAULT,
4348 CFG_SAP_CH_SWITCH_MODE_MIN,
4349 CFG_SAP_CH_SWITCH_MODE_MAX),
Anurag Chouhan7c01cc42016-12-16 21:33:43 +05304350 REG_VARIABLE(CFG_MAX_SCHED_SCAN_PLAN_INT_NAME, WLAN_PARAM_Integer,
4351 struct hdd_config, max_sched_scan_plan_interval,
4352 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4353 CFG_MAX_SCHED_SCAN_PLAN_INT_DEFAULT,
4354 CFG_MAX_SCHED_SCAN_PLAN_INT_MIN,
4355 CFG_MAX_SCHED_SCAN_PLAN_INT_MAX),
4356 REG_VARIABLE(CFG_MAX_SCHED_SCAN_PLAN_ITRNS_NAME, WLAN_PARAM_Integer,
4357 struct hdd_config, max_sched_scan_plan_iterations,
4358 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4359 CFG_MAX_SCHED_SCAN_PLAN_ITRNS_DEFAULT,
4360 CFG_MAX_SCHED_SCAN_PLAN_ITRNS_MIN,
4361 CFG_MAX_SCHED_SCAN_PLAN_ITRNS_MAX),
Kapil Gupta5cda2252016-12-29 18:44:26 +05304362
Jeff Johnson441e1f72017-02-07 08:50:49 -08004363 REG_VARIABLE(CFG_PRIVATE_WEXT_CONTROL_NAME, WLAN_PARAM_Integer,
4364 struct hdd_config, private_wext_control,
4365 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4366 CFG_PRIVATE_WEXT_CONTROL_DEFAULT,
4367 CFG_PRIVATE_WEXT_CONTROL_MIN,
4368 CFG_PRIVATE_WEXT_CONTROL_MAX),
Kapil Gupta5cda2252016-12-29 18:44:26 +05304369
Arun Khandavallicc544b32017-01-30 19:52:16 +05304370 REG_VARIABLE(CFG_SAP_INTERNAL_RESTART_NAME, WLAN_PARAM_Integer,
4371 struct hdd_config, sap_internal_restart,
4372 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4373 CFG_SAP_INTERNAL_RESTART_DEFAULT,
4374 CFG_SAP_INTERNAL_RESTART_MIN,
4375 CFG_SAP_INTERNAL_RESTART_MAX),
Srinivas Girigowda70e169a2017-03-07 23:55:57 -08004376
Hanumanth Reddy Pothulaffc2d482017-07-04 11:32:44 +05304377 REG_VARIABLE(CFG_RESTART_BEACONING_ON_CH_AVOID_NAME, WLAN_PARAM_Integer,
4378 struct hdd_config, restart_beaconing_on_chan_avoid_event,
Hanumanth Reddy Pothula9c161dd2017-03-23 19:03:08 +05304379 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
Hanumanth Reddy Pothulaffc2d482017-07-04 11:32:44 +05304380 CFG_RESTART_BEACONING_ON_CH_AVOID_DEFAULT,
4381 CFG_RESTART_BEACONING_ON_CH_AVOID_MIN,
4382 CFG_RESTART_BEACONING_ON_CH_AVOID_MAX),
Hanumanth Reddy Pothula9c161dd2017-03-23 19:03:08 +05304383
Kapil Gupta5cda2252016-12-29 18:44:26 +05304384 REG_VARIABLE(CFG_PER_ROAM_ENABLE_NAME, WLAN_PARAM_Integer,
4385 struct hdd_config, is_per_roam_enabled,
4386 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4387 CFG_PER_ROAM_ENABLE_DEFAULT,
4388 CFG_PER_ROAM_ENABLE_MIN,
4389 CFG_PER_ROAM_ENABLE_MAX),
4390
4391 REG_VARIABLE(CFG_PER_ROAM_CONFIG_HIGH_RATE_TH_NAME, WLAN_PARAM_Integer,
4392 struct hdd_config, per_roam_high_rate_threshold,
4393 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4394 CFG_PER_ROAM_CONFIG_HIGH_RATE_TH_DEFAULT,
4395 CFG_PER_ROAM_CONFIG_HIGH_RATE_TH_MIN,
4396 CFG_PER_ROAM_CONFIG_HIGH_RATE_TH_MAX),
4397
4398 REG_VARIABLE(CFG_PER_ROAM_CONFIG_LOW_RATE_TH_NAME, WLAN_PARAM_Integer,
4399 struct hdd_config, per_roam_low_rate_threshold,
4400 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4401 CFG_PER_ROAM_CONFIG_LOW_RATE_TH_DEFAULT,
4402 CFG_PER_ROAM_CONFIG_LOW_RATE_TH_MIN,
4403 CFG_PER_ROAM_CONFIG_LOW_RATE_TH_MAX),
4404
4405 REG_VARIABLE(CFG_PER_ROAM_CONFIG_RATE_TH_PERCENT_NAME,
4406 WLAN_PARAM_Integer, struct hdd_config, per_roam_th_percent,
4407 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4408 CFG_PER_ROAM_CONFIG_RATE_TH_PERCENT_DEFAULT,
4409 CFG_PER_ROAM_CONFIG_RATE_TH_PERCENT_MIN,
4410 CFG_PER_ROAM_CONFIG_RATE_TH_PERCENT_MAX),
4411
4412 REG_VARIABLE(CFG_PER_ROAM_REST_TIME_NAME, WLAN_PARAM_Integer,
4413 struct hdd_config, per_roam_rest_time,
4414 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4415 CFG_PER_ROAM_REST_TIME_DEFAULT,
4416 CFG_PER_ROAM_REST_TIME_MIN,
4417 CFG_PER_ROAM_REST_TIME_MAX),
Kapil Gupta957827b2017-02-13 15:47:04 +05304418
4419 REG_VARIABLE(CFG_PER_ROAM_MONITOR_TIME, WLAN_PARAM_Integer,
4420 struct hdd_config, per_roam_mon_time,
4421 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4422 CFG_PER_ROAM_MONTIOR_TIME_DEFAULT,
4423 CFG_PER_ROAM_MONITOR_TIME_MIN,
4424 CFG_PER_ROAM_MONITOR_TIME_MAX),
4425
Selvaraj, Sridhar0641fab2017-05-17 16:02:00 +05304426 REG_VARIABLE(CFG_PER_ROAM_MIN_CANDIDATE_RSSI, WLAN_PARAM_Integer,
4427 struct hdd_config, min_candidate_rssi,
4428 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4429 CFG_PER_ROAM_MIN_CANDIDATE_RSSI_DEFAULT,
4430 CFG_PER_ROAM_MIN_CANDIDATE_RSSI_MIN,
4431 CFG_PER_ROAM_MIN_CANDIDATE_RSSI_MAX),
4432
Hanumanth Reddy Pothulae87621b2017-04-12 20:53:35 +05304433 REG_VARIABLE(CFG_ACTIVE_UC_BPF_MODE_NAME, WLAN_PARAM_Integer,
4434 struct hdd_config, active_uc_bpf_mode,
Dustin Brown13995f02017-01-12 15:38:42 -08004435 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
Hanumanth Reddy Pothulae87621b2017-04-12 20:53:35 +05304436 CFG_ACTIVE_UC_BPF_MODE_DEFAULT,
4437 CFG_ACTIVE_UC_BPF_MODE_MIN,
4438 CFG_ACTIVE_UC_BPF_MODE_MAX),
4439
4440 REG_VARIABLE(CFG_ACTIVE_MC_BC_BPF_MODE_NAME, WLAN_PARAM_Integer,
4441 struct hdd_config, active_mc_bc_bpf_mode,
4442 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4443 CFG_ACTIVE_MC_BC_BPF_MODE_DEFAULT,
4444 CFG_ACTIVE_MC_BC_BPF_MODE_MIN,
4445 CFG_ACTIVE_MC_BC_BPF_MODE_MAX),
4446
Selvaraj, Sridhar4f684bb2017-01-19 15:59:23 +05304447 REG_VARIABLE(CFG_ENABLE_BCAST_PROBE_RESP_NAME, WLAN_PARAM_Integer,
4448 struct hdd_config, enable_bcast_probe_rsp,
4449 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4450 CFG_ENABLE_BCAST_PROBE_RESP_DEFAULT,
4451 CFG_ENABLE_BCAST_PROBE_RESP_MIN,
4452 CFG_ENABLE_BCAST_PROBE_RESP_MAX),
Naveen Rawatb2fc4132017-05-10 20:42:05 -07004453
Krishna Kumaar Natarajan90bb6f12017-03-03 21:05:52 -08004454#ifdef WLAN_FEATURE_11AX
4455 REG_VARIABLE(CFG_ENABLE_UL_MIMO_NAME, WLAN_PARAM_Integer,
4456 struct hdd_config, enable_ul_mimo,
4457 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4458 CFG_ENABLE_UL_MIMO_DEFAULT,
4459 CFG_ENABLE_UL_MIMO_MIN,
4460 CFG_ENABLE_UL_MIMO_MAX),
4461
Kiran Kumar Lokere4aa08a52017-12-15 19:00:39 -08004462 REG_VARIABLE(CFG_HE_DYNAMIC_FRAGMENTATION_NAME, WLAN_PARAM_Integer,
4463 struct hdd_config, he_dynamic_frag_support,
4464 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4465 CFG_HE_DYNAMIC_FRAGMENTATION_DEFAULT,
4466 CFG_HE_DYNAMIC_FRAGMENTATION_MIN,
4467 CFG_HE_DYNAMIC_FRAGMENTATION_MAX),
4468
Krishna Kumaar Natarajan90bb6f12017-03-03 21:05:52 -08004469 REG_VARIABLE(CFG_ENABLE_UL_OFDMA_NAME, WLAN_PARAM_Integer,
4470 struct hdd_config, enable_ul_ofdma,
4471 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4472 CFG_ENABLE_UL_OFDMA_DEFAULT,
4473 CFG_ENABLE_UL_OFDMA_MIN,
4474 CFG_ENABLE_UL_OFDMA_MAX),
Manikandan Mohan39accff2017-05-02 16:09:00 -07004475
4476 REG_VARIABLE(CFG_HE_STA_OBSSPD_NAME, WLAN_PARAM_HexInteger,
4477 struct hdd_config, he_sta_obsspd,
4478 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4479 CFG_HE_STA_OBSSPD_DEFAULT,
4480 CFG_HE_STA_OBSSPD_MIN,
4481 CFG_HE_STA_OBSSPD_MAX),
Krishna Kumaar Natarajan90bb6f12017-03-03 21:05:52 -08004482#endif
Dustin Brownab1364a2017-03-27 16:59:08 -07004483
Srinivas Girigowda70e169a2017-03-07 23:55:57 -08004484 REG_VARIABLE(CFG_ARP_AC_CATEGORY, WLAN_PARAM_Integer,
4485 struct hdd_config, arp_ac_category,
4486 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4487 CFG_ARP_AC_CATEGORY_DEFAULT,
4488 CFG_ARP_AC_CATEGORY_MIN,
4489 CFG_ARP_AC_CATEGORY_MAX),
Jeff Johnson12a744b2017-04-04 08:19:37 -07004490
4491 REG_VARIABLE(CFG_ENABLE_ANI_NAME, WLAN_PARAM_Integer,
4492 struct hdd_config, ani_enabled,
4493 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4494 CFG_ENABLE_ANI_DEFAULT,
4495 CFG_ENABLE_ANI_MIN,
4496 CFG_ENABLE_ANI_MAX),
Amar Singhal5cccafe2017-02-15 12:42:58 -08004497
Selvaraj, Sridhara521aab2017-03-25 16:42:34 +05304498 REG_VARIABLE(CFG_QCN_IE_SUPPORT_NAME, WLAN_PARAM_Integer,
4499 struct hdd_config, qcn_ie_support,
4500 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4501 CFG_QCN_IE_SUPPORT_DEFAULT,
4502 CFG_QCN_IE_SUPPORT_MIN,
4503 CFG_QCN_IE_SUPPORT_MAX),
Amar Singhal5cccafe2017-02-15 12:42:58 -08004504
Dustin Brown7f939932017-05-18 15:02:17 -07004505 REG_VARIABLE(CFG_TIMER_MULTIPLIER_NAME, WLAN_PARAM_Integer,
4506 struct hdd_config, timer_multiplier,
4507 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4508 CFG_TIMER_MULTIPLIER_DEFAULT,
4509 CFG_TIMER_MULTIPLIER_MIN,
4510 CFG_TIMER_MULTIPLIER_MAX),
4511
Rajeev Kumar Sirasanagandlaaec0b082017-06-21 11:59:41 +05304512 REG_VARIABLE(CFG_PRB_REQ_IE_WHITELIST_NAME, WLAN_PARAM_Integer,
4513 struct hdd_config, probe_req_ie_whitelist,
4514 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4515 CFG_PRB_REQ_IE_WHITELIST_DEFAULT,
4516 CFG_PRB_REQ_IE_WHITELIST_MIN,
4517 CFG_PRB_REQ_IE_WHITELIST_MAX),
4518
4519 REG_VARIABLE(CFG_PRB_REQ_IE_BIT_MAP0_NAME, WLAN_PARAM_HexInteger,
4520 struct hdd_config, probe_req_ie_bitmap_0,
4521 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4522 CFG_PRB_REQ_IE_BIT_MAP0_DEFAULT,
4523 CFG_PRB_REQ_IE_BIT_MAP0_MIN,
4524 CFG_PRB_REQ_IE_BIT_MAP0_MAX),
4525
4526 REG_VARIABLE(CFG_PRB_REQ_IE_BIT_MAP1_NAME, WLAN_PARAM_HexInteger,
4527 struct hdd_config, probe_req_ie_bitmap_1,
4528 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4529 CFG_PRB_REQ_IE_BIT_MAP1_DEFAULT,
4530 CFG_PRB_REQ_IE_BIT_MAP1_MIN,
4531 CFG_PRB_REQ_IE_BIT_MAP1_MAX),
4532
4533 REG_VARIABLE(CFG_PRB_REQ_IE_BIT_MAP2_NAME, WLAN_PARAM_HexInteger,
4534 struct hdd_config, probe_req_ie_bitmap_2,
4535 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4536 CFG_PRB_REQ_IE_BIT_MAP2_DEFAULT,
4537 CFG_PRB_REQ_IE_BIT_MAP2_MIN,
4538 CFG_PRB_REQ_IE_BIT_MAP2_MAX),
4539
4540 REG_VARIABLE(CFG_PRB_REQ_IE_BIT_MAP3_NAME, WLAN_PARAM_HexInteger,
4541 struct hdd_config, probe_req_ie_bitmap_3,
4542 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4543 CFG_PRB_REQ_IE_BIT_MAP3_DEFAULT,
4544 CFG_PRB_REQ_IE_BIT_MAP3_MIN,
4545 CFG_PRB_REQ_IE_BIT_MAP3_MAX),
4546
4547 REG_VARIABLE(CFG_PRB_REQ_IE_BIT_MAP4_NAME, WLAN_PARAM_HexInteger,
4548 struct hdd_config, probe_req_ie_bitmap_4,
4549 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4550 CFG_PRB_REQ_IE_BIT_MAP4_DEFAULT,
4551 CFG_PRB_REQ_IE_BIT_MAP4_MIN,
4552 CFG_PRB_REQ_IE_BIT_MAP4_MAX),
4553
4554 REG_VARIABLE(CFG_PRB_REQ_IE_BIT_MAP5_NAME, WLAN_PARAM_HexInteger,
4555 struct hdd_config, probe_req_ie_bitmap_5,
4556 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4557 CFG_PRB_REQ_IE_BIT_MAP5_DEFAULT,
4558 CFG_PRB_REQ_IE_BIT_MAP5_MIN,
4559 CFG_PRB_REQ_IE_BIT_MAP5_MAX),
4560
4561 REG_VARIABLE(CFG_PRB_REQ_IE_BIT_MAP6_NAME, WLAN_PARAM_HexInteger,
4562 struct hdd_config, probe_req_ie_bitmap_6,
4563 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4564 CFG_PRB_REQ_IE_BIT_MAP6_DEFAULT,
4565 CFG_PRB_REQ_IE_BIT_MAP6_MIN,
4566 CFG_PRB_REQ_IE_BIT_MAP6_MAX),
4567
4568 REG_VARIABLE(CFG_PRB_REQ_IE_BIT_MAP7_NAME, WLAN_PARAM_HexInteger,
4569 struct hdd_config, probe_req_ie_bitmap_7,
4570 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4571 CFG_PRB_REQ_IE_BIT_MAP7_DEFAULT,
4572 CFG_PRB_REQ_IE_BIT_MAP7_MIN,
4573 CFG_PRB_REQ_IE_BIT_MAP7_MAX),
4574
4575 REG_VARIABLE_STRING(CFG_PROBE_REQ_OUI_NAME, WLAN_PARAM_String,
4576 struct hdd_config, probe_req_ouis,
4577 VAR_FLAGS_OPTIONAL,
4578 (void *)CFG_PROBE_REQ_OUI_DEFAULT),
4579
Selvaraj, Sridhar97ce6582017-01-20 17:06:34 +05304580 REG_VARIABLE(CFG_FILS_MAX_CHAN_GUARD_TIME_NAME, WLAN_PARAM_Integer,
4581 struct hdd_config, fils_max_chan_guard_time,
4582 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4583 CFG_FILS_MAX_CHAN_GUARD_TIME_DEFAULT,
4584 CFG_FILS_MAX_CHAN_GUARD_TIME_MIN,
4585 CFG_FILS_MAX_CHAN_GUARD_TIME_MAX),
Naveen Rawat2b6e3c92017-03-20 13:59:07 -07004586
Dustin Brown20b6fcf2017-05-17 15:35:17 -07004587 REG_VARIABLE(CFG_SCAN_BACKOFF_MULTIPLIER_NAME, WLAN_PARAM_Integer,
4588 struct hdd_config, scan_backoff_multiplier,
4589 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4590 CFG_SCAN_BACKOFF_MULTIPLIER_DEFAULT,
4591 CFG_SCAN_BACKOFF_MULTIPLIER_MIN,
4592 CFG_SCAN_BACKOFF_MULTIPLIER_MAX),
4593
Varun Reddy Yeturubba32e92017-09-06 13:31:40 -07004594 REG_VARIABLE(CFG_MAWC_NLO_ENABLED_NAME, WLAN_PARAM_Integer,
4595 struct hdd_config, mawc_nlo_enabled,
4596 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4597 CFG_MAWC_NLO_ENABLED_DEFAULT,
4598 CFG_MAWC_NLO_ENABLED_MIN,
4599 CFG_MAWC_NLO_ENABLED_MAX),
4600
4601 REG_VARIABLE(CFG_MAWC_NLO_EXP_BACKOFF_RATIO_NAME, WLAN_PARAM_Integer,
4602 struct hdd_config, mawc_nlo_exp_backoff_ratio,
4603 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4604 CFG_MAWC_NLO_EXP_BACKOFF_RATIO_DEFAULT,
4605 CFG_MAWC_NLO_EXP_BACKOFF_RATIO_MIN,
4606 CFG_MAWC_NLO_EXP_BACKOFF_RATIO_MAX),
4607
4608 REG_VARIABLE(CFG_MAWC_NLO_INIT_SCAN_INTERVAL_NAME, WLAN_PARAM_Integer,
4609 struct hdd_config, mawc_nlo_init_scan_interval,
4610 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4611 CFG_MAWC_NLO_INIT_SCAN_INTERVAL_DEFAULT,
4612 CFG_MAWC_NLO_INIT_SCAN_INTERVAL_MIN,
4613 CFG_MAWC_NLO_INIT_SCAN_INTERVAL_MAX),
4614
4615 REG_VARIABLE(CFG_MAWC_NLO_MAX_SCAN_INTERVAL_NAME, WLAN_PARAM_Integer,
4616 struct hdd_config, mawc_nlo_max_scan_interval,
4617 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4618 CFG_MAWC_NLO_MAX_SCAN_INTERVAL_DEFAULT,
4619 CFG_MAWC_NLO_MAX_SCAN_INTERVAL_MIN,
4620 CFG_MAWC_NLO_MAX_SCAN_INTERVAL_MAX),
4621
4622
Jayachandran Sreekumaran68c952c2017-04-24 12:42:03 +05304623 REG_VARIABLE(CFG_EXTERNAL_ACS_POLICY, WLAN_PARAM_Integer,
4624 struct hdd_config, external_acs_policy,
4625 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4626 CFG_EXTERNAL_ACS_POLICY_DEFAULT,
4627 CFG_EXTERNAL_ACS_POLICY_MIN,
4628 CFG_EXTERNAL_ACS_POLICY_MAX),
4629
Naveen Rawat2b6e3c92017-03-20 13:59:07 -07004630 REG_VARIABLE(CFG_DROPPED_PKT_DISCONNECT_TH_NAME, WLAN_PARAM_Integer,
4631 struct hdd_config, pkt_err_disconn_th,
4632 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4633 CFG_DROPPED_PKT_DISCONNECT_TH_DEFAULT,
4634 CFG_DROPPED_PKT_DISCONNECT_TH_MIN,
4635 CFG_DROPPED_PKT_DISCONNECT_TH_MAX),
Naveen Rawatb2fc4132017-05-10 20:42:05 -07004636
4637 REG_VARIABLE(CFG_FORCE_1X1_NAME, WLAN_PARAM_Integer,
4638 struct hdd_config, is_force_1x1,
4639 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4640 CFG_FORCE_1X1_DEFAULT,
4641 CFG_FORCE_1X1_MIN,
4642 CFG_FORCE_1X1_MAX),
lifeng959a04c2017-05-10 14:21:28 +08004643
4644 REG_VARIABLE(CFG_SET_RTS_FOR_SIFS_BURSTING, WLAN_PARAM_Integer,
4645 struct hdd_config, enable_rts_sifsbursting,
4646 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4647 CFG_SET_RTS_FOR_SIFS_BURSTING_DEFAULT,
4648 CFG_SET_RTS_FOR_SIFS_BURSTING_MIN,
4649 CFG_SET_RTS_FOR_SIFS_BURSTING_MAX),
4650
4651 REG_VARIABLE(CFG_MAX_MPDUS_IN_AMPDU, WLAN_PARAM_Integer,
4652 struct hdd_config, max_mpdus_inampdu,
4653 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4654 CFG_MAX_MPDUS_IN_AMPDU_DEFAULT,
4655 CFG_MAX_MPDUS_IN_AMPDU_MIN,
4656 CFG_MAX_MPDUS_IN_AMPDU_MAX),
lifeng13a89d72017-05-10 14:49:29 +08004657
4658 REG_VARIABLE(CFG_SAP_MAX_MCS_FOR_TX_DATA, WLAN_PARAM_Integer,
4659 struct hdd_config, sap_max_mcs_txdata,
4660 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4661 CFG_SAP_MAX_MCS_FOR_TX_DATA_DEFAULT,
4662 CFG_SAP_MAX_MCS_FOR_TX_DATA_MIN,
4663 CFG_SAP_MAX_MCS_FOR_TX_DATA_MAX),
Manjunathappa Prakashdab74fa2017-06-19 12:11:03 -07004664
4665 REG_VARIABLE(CFG_TX_ORPHAN_ENABLE_NAME, WLAN_PARAM_Integer,
4666 struct hdd_config, tx_orphan_enable,
4667 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4668 CFG_TX_ORPHAN_ENABLE_DEFAULT,
4669 CFG_TX_ORPHAN_ENABLE_MIN,
4670 CFG_TX_ORPHAN_ENABLE_MAX),
Ravi Kumar Bokka05c14e52017-03-27 14:48:23 +05304671
4672 REG_VARIABLE(CFG_AUTO_DETECT_POWER_FAIL_MODE_NAME, WLAN_PARAM_Integer,
4673 struct hdd_config, auto_pwr_save_fail_mode,
4674 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4675 CFG_AUTO_DETECT_POWER_FAIL_MODE_DEFAULT,
4676 CFG_AUTO_DETECT_POWER_FAIL_MODE_MIN,
4677 CFG_AUTO_DETECT_POWER_FAIL_MODE_MAX),
4678
Naveen Rawat247a8682017-06-05 15:00:31 -07004679 REG_VARIABLE(CFG_11B_NUM_TX_CHAIN_NAME, WLAN_PARAM_Integer,
4680 struct hdd_config, num_11b_tx_chains,
4681 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4682 CFG_11B_NUM_TX_CHAIN_DEFAULT,
4683 CFG_11B_NUM_TX_CHAIN_MIN,
4684 CFG_11B_NUM_TX_CHAIN_MAX),
4685
4686 REG_VARIABLE(CFG_11AG_NUM_TX_CHAIN_NAME, WLAN_PARAM_Integer,
4687 struct hdd_config, num_11ag_tx_chains,
4688 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4689 CFG_11AG_NUM_TX_CHAIN_DEFAULT,
4690 CFG_11AG_NUM_TX_CHAIN_MIN,
4691 CFG_11AG_NUM_TX_CHAIN_MAX),
Ashish Kumar Dhanotiya9335d812017-06-30 16:57:20 +05304692
4693 REG_VARIABLE(CFG_ITO_REPEAT_COUNT_NAME, WLAN_PARAM_Integer,
4694 struct hdd_config, ito_repeat_count,
4695 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4696 CFG_ITO_REPEAT_COUNT_DEFAULT,
4697 CFG_ITO_REPEAT_COUNT_MIN,
4698 CFG_ITO_REPEAT_COUNT_MAX),
4699
Selvaraj, Sridhar57ce4df2017-05-29 18:30:49 +05304700 REG_VARIABLE(CFG_ROAM_DISALLOW_DURATION_NAME, WLAN_PARAM_Integer,
4701 struct hdd_config, disallow_duration,
4702 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4703 CFG_ROAM_DISALLOW_DURATION_DEFAULT,
4704 CFG_ROAM_DISALLOW_DURATION_MIN,
4705 CFG_ROAM_DISALLOW_DURATION_MAX),
4706
4707 REG_VARIABLE(CFG_ROAM_RSSI_CHANNEL_PENALIZATION_NAME,
4708 WLAN_PARAM_Integer, struct hdd_config,
4709 rssi_channel_penalization,
4710 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4711 CFG_ROAM_RSSI_CHANNEL_PENALIZATION_DEFAULT,
4712 CFG_ROAM_RSSI_CHANNEL_PENALIZATION_MIN,
4713 CFG_ROAM_RSSI_CHANNEL_PENALIZATION_MAX),
4714
4715 REG_VARIABLE(CFG_ROAM_NUM_DISALLOWED_APS_NAME, WLAN_PARAM_Integer,
4716 struct hdd_config, num_disallowed_aps,
4717 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4718 CFG_ROAM_NUM_DISALLOWED_APS_DEFAULT,
4719 CFG_ROAM_NUM_DISALLOWED_APS_MIN,
4720 CFG_ROAM_NUM_DISALLOWED_APS_MAX),
yeshwanth sriram guntuka1413dfb2017-06-23 14:09:48 +05304721
4722 REG_VARIABLE(CFG_OCE_ENABLE_STA_NAME, WLAN_PARAM_Integer,
4723 struct hdd_config, oce_sta_enabled,
4724 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4725 CFG_OCE_ENABLE_STA_DEFAULT,
4726 CFG_OCE_ENABLE_STA_MIN,
4727 CFG_OCE_ENABLE_STA_MAX),
4728
4729 REG_VARIABLE(CFG_OCE_ENABLE_SAP_NAME, WLAN_PARAM_Integer,
4730 struct hdd_config, oce_sap_enabled,
4731 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4732 CFG_OCE_ENABLE_SAP_DEFAULT,
4733 CFG_OCE_ENABLE_SAP_MIN,
4734 CFG_OCE_ENABLE_SAP_MAX),
Ashwini Patilf2bf05e2017-03-10 03:41:03 +05304735
Manjeet Singha9cae432017-02-28 11:58:22 +05304736 REG_VARIABLE(CFG_ENABLE_5G_BAND_PREF_NAME, WLAN_PARAM_Integer,
4737 struct hdd_config, enable_5g_band_pref,
4738 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4739 CFG_ENABLE_5G_BAND_PREF_DEFAULT,
4740 CFG_ENABLE_5G_BAND_PREF_MIN,
4741 CFG_ENABLE_5G_BAND_PREF_MAX),
4742
4743 REG_VARIABLE(CFG_5G_RSSI_BOOST_THRESHOLD_NAME, WLAN_PARAM_Integer,
4744 struct hdd_config, rssi_boost_threshold_5g,
4745 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4746 CFG_5G_RSSI_BOOST_THRESHOLD_DEFAULT,
4747 CFG_5G_RSSI_BOOST_THRESHOLD_MIN,
4748 CFG_5G_RSSI_BOOST_THRESHOLD_MAX),
4749
4750 REG_VARIABLE(CFG_5G_RSSI_BOOST_FACTOR_NAME, WLAN_PARAM_Integer,
4751 struct hdd_config, rssi_boost_factor_5g,
4752 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4753 CFG_5G_RSSI_BOOST_FACTOR_DEFAULT,
4754 CFG_5G_RSSI_BOOST_FACTOR_MIN,
4755 CFG_5G_RSSI_BOOST_FACTOR_MAX),
4756
4757 REG_VARIABLE(CFG_5G_MAX_RSSI_BOOST_NAME, WLAN_PARAM_Integer,
4758 struct hdd_config, max_rssi_boost_5g,
4759 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4760 CFG_5G_MAX_RSSI_BOOST_DEFAULT,
4761 CFG_5G_MAX_RSSI_BOOST_MIN,
4762 CFG_5G_MAX_RSSI_BOOST_MAX),
4763
4764 REG_VARIABLE(CFG_5G_RSSI_PENALIZE_THRESHOLD_NAME, WLAN_PARAM_Integer,
4765 struct hdd_config, rssi_penalize_threshold_5g,
4766 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4767 CFG_5G_RSSI_PENALIZE_THRESHOLD_DEFAULT,
4768 CFG_5G_RSSI_PENALIZE_THRESHOLD_MIN,
4769 CFG_5G_RSSI_PENALIZE_THRESHOLD_MAX),
4770
4771 REG_VARIABLE(CFG_5G_RSSI_PENALIZE_FACTOR_NAME, WLAN_PARAM_Integer,
4772 struct hdd_config, rssi_penalize_factor_5g,
4773 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4774 CFG_5G_RSSI_PENALIZE_FACTOR_DEFAULT,
4775 CFG_5G_RSSI_PENALIZE_FACTOR_MIN,
4776 CFG_5G_RSSI_PENALIZE_FACTOR_MAX),
4777
4778 REG_VARIABLE(CFG_5G_MAX_RSSI_PENALIZE_NAME, WLAN_PARAM_Integer,
4779 struct hdd_config, max_rssi_penalize_5g,
4780 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4781 CFG_5G_MAX_RSSI_PENALIZE_DEFAULT,
4782 CFG_5G_MAX_RSSI_PENALIZE_MIN,
4783 CFG_5G_MAX_RSSI_PENALIZE_MAX),
Ashish Kumar Dhanotiyab8630ab2017-07-21 14:18:14 +05304784
4785 REG_VARIABLE(CFG_LPRx_NAME, WLAN_PARAM_Integer,
4786 struct hdd_config, enable_lprx,
4787 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4788 CFG_LPRx_DEFAULT,
4789 CFG_LPRx_MIN,
4790 CFG_LPRx_MAX),
Ashish Kumar Dhanotiyab28338c2017-07-21 20:12:34 +05304791
4792 REG_VARIABLE(CFG_UPPER_BRSSI_THRESH_NAME, WLAN_PARAM_Integer,
4793 struct hdd_config, upper_brssi_thresh,
4794 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4795 CFG_UPPER_BRSSI_THRESH_DEFAULT,
4796 CFG_UPPER_BRSSI_THRESH_MIN,
4797 CFG_UPPER_BRSSI_THRESH_MAX),
4798
4799 REG_VARIABLE(CFG_LOWER_BRSSI_THRESH_NAME, WLAN_PARAM_Integer,
4800 struct hdd_config, lower_brssi_thresh,
4801 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4802 CFG_LOWER_BRSSI_THRESH_DEFAULT,
4803 CFG_LOWER_BRSSI_THRESH_MIN,
4804 CFG_LOWER_BRSSI_THRESH_MAX),
4805
4806 REG_VARIABLE(CFG_DTIM_1CHRX_ENABLE_NAME, WLAN_PARAM_Integer,
4807 struct hdd_config, enable_dtim_1chrx,
4808 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4809 CFG_DTIM_1CHRX_ENABLE_DEFAULT,
4810 CFG_DTIM_1CHRX_ENABLE_MIN,
4811 CFG_DTIM_1CHRX_ENABLE_MAX),
Ravi Joshi9771d432017-06-26 13:58:12 -07004812
4813 REG_VARIABLE(CFG_RANDOMIZE_NDI_MAC_NAME, WLAN_PARAM_Integer,
4814 struct hdd_config, is_ndi_mac_randomized,
4815 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4816 CFG_RANDOMIZE_NDI_MAC_DEFAULT,
4817 CFG_RANDOMIZE_NDI_MAC_MIN,
4818 CFG_RANDOMIZE_NDI_MAC_MAX),
Amar Singhale4a2dd52017-08-07 13:59:05 -07004819
4820 REG_VARIABLE(CFG_SCAN_11D_INTERVAL_NAME, WLAN_PARAM_Integer,
4821 struct hdd_config, scan_11d_interval,
4822 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4823 CFG_SCAN_11D_INTERVAL_DEFAULT,
4824 CFG_SCAN_11D_INTERVAL_MIN,
4825 CFG_SCAN_11D_INTERVAL_MAX),
hqu16d6e082017-09-04 10:52:31 +08004826
4827 REG_VARIABLE(CFG_CHAN_SWITCH_HOSTAPD_RATE_ENABLED_NAME,
4828 WLAN_PARAM_Integer,
4829 struct hdd_config, chan_switch_hostapd_rate_enabled,
4830 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4831 CFG_CHAN_SWITCH_HOSTAPD_RATE_ENABLED_DEFAULT,
4832 CFG_CHAN_SWITCH_HOSTAPD_RATE_ENABLED_MIN,
4833 CFG_CHAN_SWITCH_HOSTAPD_RATE_ENABLED_MAX),
Ashwini Patilf2bf05e2017-03-10 03:41:03 +05304834
Abhishek Singhb58164a2017-07-19 18:47:23 +05304835 REG_VARIABLE(CFG_IS_BSSID_HINT_PRIORITY_NAME, WLAN_PARAM_Integer,
4836 struct hdd_config, is_bssid_hint_priority,
4837 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4838 CFG_IS_BSSID_HINT_PRIORITY_DEFAULT,
4839 CFG_IS_BSSID_HINT_PRIORITY_MIN,
4840 CFG_IS_BSSID_HINT_PRIORITY_MAX),
4841
Paul Zhang99fe8842017-12-08 14:43:46 +08004842 REG_VARIABLE(CFG_LATENCY_ENABLE_NAME, WLAN_PARAM_Integer,
4843 struct hdd_config, wlm_latency_enable,
4844 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4845 CFG_LATENCY_ENABLE_DEFAULT,
4846 CFG_LATENCY_ENABLE_MIN,
4847 CFG_LATENCY_ENABLE_MAX),
4848
4849 REG_VARIABLE(CFG_LATENCY_LEVEL_NAME, WLAN_PARAM_Integer,
4850 struct hdd_config, wlm_latency_level,
4851 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4852 CFG_LATENCY_LEVEL_DEFAULT,
4853 CFG_LATENCY_LEVEL_MIN,
4854 CFG_LATENCY_LEVEL_MAX),
4855
4856 REG_VARIABLE(CFG_LATENCY_FLAGS_NORMAL_NAME, WLAN_PARAM_HexInteger,
4857 struct hdd_config, wlm_latency_flags_normal,
4858 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4859 CFG_LATENCY_FLAGS_NORMAL_DEFAULT,
4860 CFG_LATENCY_FLAGS_NORMAL_MIN,
4861 CFG_LATENCY_FLAGS_NORMAL_MAX),
4862
4863 REG_VARIABLE(CFG_LATENCY_FLAGS_MODERATE_NAME, WLAN_PARAM_HexInteger,
4864 struct hdd_config, wlm_latency_flags_moderate,
4865 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4866 CFG_LATENCY_FLAGS_MODERATE_DEFAULT,
4867 CFG_LATENCY_FLAGS_MODERATE_MIN,
4868 CFG_LATENCY_FLAGS_MODERATE_MAX),
4869
4870 REG_VARIABLE(CFG_LATENCY_FLAGS_LOW_NAME, WLAN_PARAM_HexInteger,
4871 struct hdd_config, wlm_latency_flags_low,
4872 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4873 CFG_LATENCY_FLAGS_LOW_DEFAULT,
4874 CFG_LATENCY_FLAGS_LOW_MIN,
4875 CFG_LATENCY_FLAGS_LOW_MAX),
4876
4877 REG_VARIABLE(CFG_LATENCY_FLAGS_ULTRALOW_NAME, WLAN_PARAM_HexInteger,
4878 struct hdd_config, wlm_latency_flags_ultralow,
4879 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4880 CFG_LATENCY_FLAGS_ULTRALOW_DEFAULT,
4881 CFG_LATENCY_FLAGS_ULTRALOW_MIN,
4882 CFG_LATENCY_FLAGS_ULTRALOW_MAX),
4883
Himanshu Agarwal8bcec572017-09-28 11:54:37 +05304884 REG_VARIABLE(CFG_RSSI_WEIGHTAGE_NAME, WLAN_PARAM_Integer,
4885 struct hdd_config, rssi_weightage,
4886 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4887 CFG_RSSI_WEIGHTAGE_DEFAULT,
4888 CFG_RSSI_WEIGHTAGE_MIN,
4889 CFG_RSSI_WEIGHTAGE_MAX),
4890
4891 REG_VARIABLE(CFG_HT_CAPABILITY_WEIGHTAGE_NAME, WLAN_PARAM_Integer,
4892 struct hdd_config, ht_caps_weightage,
4893 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4894 CFG_HT_CAPABILITY_WEIGHTAGE_DEFAULT,
4895 CFG_HT_CAPABILITY_WEIGHTAGE_MIN,
4896 CFG_HT_CAPABILITY_WEIGHTAGE_MAX),
4897
4898 REG_VARIABLE(CFG_VHT_CAPABILITY_WEIGHTAGE_NAME, WLAN_PARAM_Integer,
4899 struct hdd_config, vht_caps_weightage,
4900 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4901 CFG_VHT_CAPABILITY_WEIGHTAGE_DEFAULT,
4902 CFG_VHT_CAPABILITY_WEIGHTAGE_MIN,
4903 CFG_VHT_CAPABILITY_WEIGHTAGE_MAX),
4904
4905 REG_VARIABLE(CFG_HE_CAPABILITY_WEIGHTAGE_NAME, WLAN_PARAM_Integer,
4906 struct hdd_config, he_caps_weightage,
4907 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4908 CFG_HE_CAPABILITY_WEIGHTAGE_DEFAULT,
4909 CFG_HE_CAPABILITY_WEIGHTAGE_MIN,
4910 CFG_HE_CAPABILITY_WEIGHTAGE_MAX),
4911
4912 REG_VARIABLE(CFG_CHAN_WIDTH_WEIGHTAGE_NAME, WLAN_PARAM_Integer,
4913 struct hdd_config, chan_width_weightage,
4914 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4915 CFG_CHAN_WIDTH_WEIGHTAGE_DEFAULT,
4916 CFG_CHAN_WIDTH_WEIGHTAGE_MIN,
4917 CFG_CHAN_WIDTH_WEIGHTAGE_MAX),
4918
4919 REG_VARIABLE(CFG_CHAN_BAND_WEIGHTAGE_NAME, WLAN_PARAM_Integer,
4920 struct hdd_config, chan_band_weightage,
4921 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4922 CFG_CHAN_BAND_WEIGHTAGE_DEFAULT,
4923 CFG_CHAN_BAND_WEIGHTAGE_MIN,
4924 CFG_CHAN_BAND_WEIGHTAGE_MAX),
4925
4926 REG_VARIABLE(CFG_NSS_WEIGHTAGE_NAME, WLAN_PARAM_Integer,
4927 struct hdd_config, nss_weightage,
4928 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4929 CFG_NSS_WEIGHTAGE_DEFAULT,
4930 CFG_NSS_WEIGHTAGE_MIN,
4931 CFG_NSS_WEIGHTAGE_MAX),
4932
4933 REG_VARIABLE(CFG_BEAMFORMING_CAP_WEIGHTAGE_NAME, WLAN_PARAM_Integer,
4934 struct hdd_config, beamforming_cap_weightage,
4935 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4936 CFG_BEAMFORMING_CAP_WEIGHTAGE_DEFAULT,
4937 CFG_BEAMFORMING_CAP_WEIGHTAGE_MIN,
4938 CFG_BEAMFORMING_CAP_WEIGHTAGE_MAX),
4939
4940 REG_VARIABLE(CFG_PCL_WEIGHT_WEIGHTAGE_NAME, WLAN_PARAM_Integer,
4941 struct hdd_config, pcl_weightage,
4942 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4943 CFG_PCL_WEIGHT_DEFAULT,
4944 CFG_PCL_WEIGHT_MIN,
4945 CFG_PCL_WEIGHT_MAX),
4946
4947 REG_VARIABLE(CFG_CHANNEL_CONGESTION_WEIGHTAGE_NAME, WLAN_PARAM_Integer,
4948 struct hdd_config, channel_congestion_weightage,
4949 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4950 CFG_CHANNEL_CONGESTION_WEIGHTAGE_DEFAULT,
4951 CFG_CHANNEL_CONGESTION_WEIGHTAGE_MIN,
4952 CFG_CHANNEL_CONGESTION_WEIGHTAGE_MAX),
4953
4954 REG_VARIABLE(CFG_OCE_WAN_WEIGHTAGE_NAME, WLAN_PARAM_Integer,
4955 struct hdd_config, oce_wan_weightage,
4956 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4957 CFG_OCE_WAN_WEIGHTAGE_DEFAULT,
4958 CFG_OCE_WAN_WEIGHTAGE_MIN,
4959 CFG_OCE_WAN_WEIGHTAGE_MAX),
4960
4961 REG_VARIABLE(CFG_BEST_RSSI_THRESHOLD_NAME, WLAN_PARAM_Integer,
4962 struct hdd_config, best_rssi_threshold,
4963 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4964 CFG_BEST_RSSI_THRESHOLD_DEFAULT,
4965 CFG_BEST_RSSI_THRESHOLD_MIN,
4966 CFG_BEST_RSSI_THRESHOLD_MAX),
4967
4968 REG_VARIABLE(CFG_GOOD_RSSI_THRESHOLD_NAME, WLAN_PARAM_Integer,
4969 struct hdd_config, good_rssi_threshold,
4970 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4971 CFG_GOOD_RSSI_THRESHOLD_DEFAULT,
4972 CFG_GOOD_RSSI_THRESHOLD_MIN,
4973 CFG_GOOD_RSSI_THRESHOLD_MAX),
4974
4975 REG_VARIABLE(CFG_BAD_RSSI_THRESHOLD_NAME, WLAN_PARAM_Integer,
4976 struct hdd_config, bad_rssi_threshold,
4977 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4978 CFG_BAD_RSSI_THRESHOLD_DEFAULT,
4979 CFG_BAD_RSSI_THRESHOLD_MIN,
4980 CFG_BAD_RSSI_THRESHOLD_MAX),
4981
4982 REG_VARIABLE(CFG_GOOD_RSSI_PCNT_NAME, WLAN_PARAM_Integer,
4983 struct hdd_config, good_rssi_pcnt,
4984 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4985 CFG_GOOD_RSSI_PCNT_DEFAULT,
4986 CFG_GOOD_RSSI_PCNT_MIN,
4987 CFG_GOOD_RSSI_PCNT_MAX),
4988
4989 REG_VARIABLE(CFG_BAD_RSSI_PCNT_NAME, WLAN_PARAM_Integer,
4990 struct hdd_config, bad_rssi_pcnt,
4991 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4992 CFG_BAD_RSSI_PCNT_DEFAULT,
4993 CFG_BAD_RSSI_PCNT_MIN,
4994 CFG_BAD_RSSI_PCNT_MAX),
4995
4996 REG_VARIABLE(CFG_GOOD_RSSI_BUCKET_SIZE_NAME, WLAN_PARAM_Integer,
4997 struct hdd_config, good_rssi_bucket_size,
4998 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4999 CFG_GOOD_RSSI_BUCKET_SIZE_DEFAULT,
5000 CFG_GOOD_RSSI_BUCKET_SIZE_MIN,
5001 CFG_GOOD_RSSI_BUCKET_SIZE_MAX),
5002
5003 REG_VARIABLE(CFG_BAD_RSSI_BUCKET_SIZE_NAME, WLAN_PARAM_Integer,
5004 struct hdd_config, bad_rssi_bucket_size,
5005 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5006 CFG_BAD_RSSI_BUCKET_SIZE_DEFAULT,
5007 CFG_BAD_RSSI_BUCKET_SIZE_MIN,
5008 CFG_BAD_RSSI_BUCKET_SIZE_MAX),
5009
5010 REG_VARIABLE(CFG_RSSI_PERF_5G_THRESHOLD_NAME, WLAN_PARAM_Integer,
5011 struct hdd_config, rssi_pref_5g_rssi_thresh,
5012 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5013 CFG_RSSI_PERF_5G_THRESHOLD_DEFAULT,
5014 CFG_RSSI_PERF_5G_THRESHOLD_MIN,
5015 CFG_RSSI_PERF_5G_THRESHOLD_MAX),
5016
5017 REG_VARIABLE(CFG_BAND_WIDTH_WEIGHT_PER_INDEX_NAME,
5018 WLAN_PARAM_HexInteger,
5019 struct hdd_config, bandwidth_weight_per_index,
5020 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5021 CFG_BAND_WIDTH_WEIGHT_PER_INDEX_DEFAULT,
5022 CFG_BAND_WIDTH_WEIGHT_PER_INDEX_MIN,
5023 CFG_BAND_WIDTH_WEIGHT_PER_INDEX_MAX),
5024
5025 REG_VARIABLE(CFG_NSS_WEIGHT_PER_INDEX_NAME, WLAN_PARAM_HexInteger,
5026 struct hdd_config, nss_weight_per_index,
5027 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5028 CFG_NSS_WEIGHT_PER_INDEX_DEFAULT,
5029 CFG_NSS_WEIGHT_PER_INDEX_MIN,
5030 CFG_NSS_WEIGHT_PER_INDEX_MAX),
5031
5032 REG_VARIABLE(CFG_BAND_WEIGHT_PER_INDEX_NAME, WLAN_PARAM_HexInteger,
5033 struct hdd_config, band_weight_per_index,
5034 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5035 CFG_BAND_WEIGHT_PER_INDEX_DEFAULT,
5036 CFG_BAND_WEIGHT_PER_INDEX_MIN,
5037 CFG_BAND_WEIGHT_PER_INDEX_MAX),
5038
5039 REG_VARIABLE(CFG_ESP_QBSS_SLOTS_NAME, WLAN_PARAM_Integer,
5040 struct hdd_config, num_esp_qbss_slots,
5041 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5042 CFG_ESP_QBSS_SLOTS_DEFAULT,
5043 CFG_ESP_QBSS_SLOTS_MIN,
5044 CFG_ESP_QBSS_SLOTS_MAX),
5045
5046 REG_VARIABLE(CFG_ESP_QBSS_SCORE_IDX3_TO_0_NAME, WLAN_PARAM_HexInteger,
5047 struct hdd_config, esp_qbss_score_slots3_to_0,
5048 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5049 CFG_ESP_QBSS_SCORE_IDX3_TO_0_DEFAULT,
5050 CFG_ESP_QBSS_SCORE_IDX3_TO_0_MIN,
5051 CFG_ESP_QBSS_SCORE_IDX3_TO_0_MAX),
5052
5053 REG_VARIABLE(CFG_ESP_QBSS_SCORE_IDX7_TO_4_NAME, WLAN_PARAM_HexInteger,
5054 struct hdd_config, esp_qbss_score_slots7_to_4,
5055 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5056 CFG_ESP_QBSS_SCORE_IDX7_TO_4_DEFAULT,
5057 CFG_ESP_QBSS_SCORE_IDX7_TO_4_MIN,
5058 CFG_ESP_QBSS_SCORE_IDX7_TO_4_MAX),
5059
5060 REG_VARIABLE(CFG_ESP_QBSS_SCORE_IDX11_TO_8_NAME, WLAN_PARAM_HexInteger,
5061 struct hdd_config, esp_qbss_score_slots11_to_8,
5062 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5063 CFG_ESP_QBSS_SCORE_IDX11_TO_8_DEFAULT,
5064 CFG_ESP_QBSS_SCORE_IDX11_TO_8_MIN,
5065 CFG_ESP_QBSS_SCORE_IDX11_TO_8_MAX),
5066
5067 REG_VARIABLE(CFG_ESP_QBSS_SCORE_IDX15_TO_12_NAME, WLAN_PARAM_HexInteger,
5068 struct hdd_config, esp_qbss_score_slots15_to_12,
5069 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5070 CFG_ESP_QBSS_SCORE_IDX15_TO_12_DEFAULT,
5071 CFG_ESP_QBSS_SCORE_IDX15_TO_12_MIN,
5072 CFG_ESP_QBSS_SCORE_IDX15_TO_12_MAX),
5073
5074 REG_VARIABLE(CFG_OCE_WAN_SLOTS_NAME, WLAN_PARAM_Integer,
5075 struct hdd_config, num_oce_wan_slots,
5076 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5077 CFG_OCE_WAN_SLOTS_DEFAULT,
5078 CFG_OCE_WAN_SLOTS_MIN,
5079 CFG_OCE_WAN_SLOTS_MAX),
5080
5081 REG_VARIABLE(CFG_OCE_WAN_SCORE_IDX3_TO_0_NAME, WLAN_PARAM_HexInteger,
5082 struct hdd_config, oce_wan_score_slots3_to_0,
5083 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5084 CFG_OCE_WAN_SCORE_IDX3_TO_0_DEFAULT,
5085 CFG_OCE_WAN_SCORE_IDX3_TO_0_MIN,
5086 CFG_OCE_WAN_SCORE_IDX3_TO_0_MAX),
5087
5088 REG_VARIABLE(CFG_OCE_WAN_SCORE_IDX7_TO_4_NAME, WLAN_PARAM_HexInteger,
5089 struct hdd_config, oce_wan_score_slots7_to_4,
5090 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5091 CFG_OCE_WAN_SCORE_IDX7_TO_4_DEFAULT,
5092 CFG_OCE_WAN_SCORE_IDX7_TO_4_MIN,
5093 CFG_OCE_WAN_SCORE_IDX7_TO_4_MAX),
5094
5095 REG_VARIABLE(CFG_OCE_WAN_SCORE_IDX11_TO_8_NAME, WLAN_PARAM_HexInteger,
5096 struct hdd_config, oce_wan_score_slots11_to_8,
5097 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5098 CFG_OCE_WAN_SCORE_IDX11_TO_8_DEFAULT,
5099 CFG_OCE_WAN_SCORE_IDX11_TO_8_MIN,
5100 CFG_OCE_WAN_SCORE_IDX11_TO_8_MAX),
5101
5102 REG_VARIABLE(CFG_OCE_WAN_SCORE_IDX15_TO_12_NAME, WLAN_PARAM_HexInteger,
5103 struct hdd_config, oce_wan_score_slots15_to_12,
5104 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5105 CFG_OCE_WAN_SCORE_IDX15_TO_12_DEFAULT,
5106 CFG_OCE_WAN_SCORE_IDX15_TO_12_MIN,
5107 CFG_OCE_WAN_SCORE_IDX15_TO_12_MAX),
5108
5109 REG_VARIABLE(CFG_ENABLE_SCORING_FOR_ROAM_NAME, WLAN_PARAM_Integer,
5110 struct hdd_config, enable_scoring_for_roam,
5111 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5112 CFG_ENABLE_SCORING_FOR_ROAM_DEFAULT,
5113 CFG_ENABLE_SCORING_FOR_ROAM_MIN,
5114 CFG_ENABLE_SCORING_FOR_ROAM_MAX),
5115
Abhishek Singh6454ad32017-12-20 10:42:21 +05305116 REG_VARIABLE(CFG_FORCE_RSNE_OVERRIDE_NAME, WLAN_PARAM_Integer,
5117 struct hdd_config, force_rsne_override,
5118 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5119 CFG_FORCE_RSNE_OVERRIDE_DEFAULT,
5120 CFG_FORCE_RSNE_OVERRIDE_MIN,
5121 CFG_FORCE_RSNE_OVERRIDE_MAX),
5122
Ashwini Patilf2bf05e2017-03-10 03:41:03 +05305123 REG_VARIABLE(CFG_MBO_CANDIDATE_RSSI_THRESHOLD_NAME,
5124 WLAN_PARAM_SignedInteger, struct hdd_config,
5125 mbo_candidate_rssi_thres,
5126 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5127 CFG_CANDIDATE_RSSI_THRESHOLD_DEFAULT,
5128 CFG_CANDIDATE_RSSI_THRESHOLD_MIN,
5129 CFG_CANDIDATE_RSSI_THRESHOLD_MAX),
5130
5131 REG_VARIABLE(CFG_MBO_CURRENT_RSSI_THRESHOLD_NAME,
5132 WLAN_PARAM_SignedInteger, struct hdd_config,
5133 mbo_current_rssi_thres,
5134 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5135 CFG_CURRENT_RSSI_THRESHOLD_DEFAULT,
5136 CFG_CURRENT_RSSI_THRESHOLD_MIN,
5137 CFG_CURRENT_RSSI_THRESHOLD_MAX),
5138
5139 REG_VARIABLE(CFG_MBO_CUR_RSSI_MCC_THRESHOLD_NAME,
5140 WLAN_PARAM_SignedInteger, struct hdd_config,
5141 mbo_current_rssi_mcc_thres,
5142 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5143 CFG_MBO_CUR_RSSI_MCC_THRESHOLD_DEFAULT,
5144 CFG_MBO_CUR_RSSI_MCC_THRESHOLD_MIN,
5145 CFG_MBO_CUR_RSSI_MCC_THRESHOLD_MAX),
5146
5147 REG_VARIABLE(CFG_MBO_CAND_RSSI_BTC_THRESHOLD_NAME,
5148 WLAN_PARAM_SignedInteger, struct hdd_config,
5149 mbo_candidate_rssi_btc_thres,
5150 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5151 CFG_MBO_CAND_RSSI_BTC_THRESHOLD_DEFAULT,
5152 CFG_MBO_CAND_RSSI_BTC_THRESHOLD_MIN,
5153 CFG_MBO_CAND_RSSI_BTC_THRESHOLD_MAX),
Vignesh Viswanathancc7f1b92017-09-28 13:12:24 +05305154 REG_VARIABLE(CFG_IS_FILS_ENABLED_NAME, WLAN_PARAM_Integer,
5155 struct hdd_config, is_fils_enabled,
5156 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5157 CFG_IS_FILS_ENABLED_DEFAULT,
5158 CFG_IS_FILS_ENABLED_MIN,
5159 CFG_IS_FILS_ENABLED_MAX),
Hanumanth Reddy Pothula3def8942017-10-05 16:19:36 +05305160
5161 REG_VARIABLE(CFG_ENABLE_PACKET_FILTERS_NAME, WLAN_PARAM_Integer,
5162 struct hdd_config, packet_filters_bitmap,
5163 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5164 CFG_ENABLE_PACKET_FILTERS_DEFAULT,
5165 CFG_ENABLE_PACKET_FILTERS_MIN,
5166 CFG_ENABLE_PACKET_FILTERS_MAX),
lifeng1c16b6b2017-09-25 13:59:55 +08005167
5168 REG_VARIABLE(CFG_DFS_BEACON_TX_ENHANCED, WLAN_PARAM_Integer,
5169 struct hdd_config, dfs_beacon_tx_enhanced,
5170 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5171 CFG_DFS_BEACON_TX_ENHANCED_DEFAULT,
5172 CFG_DFS_BEACON_TX_ENHANCED_MIN,
5173 CFG_DFS_BEACON_TX_ENHANCED_MAX),
lifeng7c607dd2017-02-21 21:16:49 +08005174
5175 REG_VARIABLE(CFG_REDUCED_BEACON_INTERVAL, WLAN_PARAM_Integer,
5176 struct hdd_config, reduced_beacon_interval,
5177 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5178 CFG_REDUCED_BEACON_INTERVAL_DEFAULT,
5179 CFG_REDUCED_BEACON_INTERVAL_MIN,
5180 CFG_REDUCED_BEACON_INTERVAL_MAX),
Yeshwanth Sriram Guntuka2ba6fe92017-10-04 14:40:45 +05305181
5182 REG_VARIABLE(CFG_OCE_ENABLE_RSSI_BASED_ASSOC_REJECT_NAME,
5183 WLAN_PARAM_Integer, struct hdd_config,
5184 rssi_assoc_reject_enabled,
5185 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5186 CFG_OCE_ENABLE_RSSI_BASED_ASSOC_REJECT_DEFAULT,
5187 CFG_OCE_ENABLE_RSSI_BASED_ASSOC_REJECT_MIN,
5188 CFG_OCE_ENABLE_RSSI_BASED_ASSOC_REJECT_MAX),
5189
5190 REG_VARIABLE(CFG_OCE_PROBE_REQ_RATE_NAME, WLAN_PARAM_Integer,
5191 struct hdd_config, oce_probe_req_rate_enabled,
5192 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5193 CFG_OCE_PROBE_REQ_RATE_DEFAULT,
5194 CFG_OCE_PROBE_REQ_RATE_MIN,
5195 CFG_OCE_PROBE_REQ_RATE_MAX),
5196
5197 REG_VARIABLE(CFG_OCE_PROBE_RSP_RATE_NAME, WLAN_PARAM_Integer,
5198 struct hdd_config, oce_probe_resp_rate_enabled,
5199 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5200 CFG_OCE_PROBE_RSP_RATE_DEFAULT,
5201 CFG_OCE_PROBE_RSP_RATE_MIN,
5202 CFG_OCE_PROBE_RSP_RATE_MAX),
5203
5204 REG_VARIABLE(CFG_OCE_BEACON_RATE_NAME, WLAN_PARAM_Integer,
5205 struct hdd_config, oce_beacon_rate_enabled,
5206 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5207 CFG_OCE_BEACON_RATE_DEFAULT,
5208 CFG_OCE_BEACON_RATE_MIN,
5209 CFG_OCE_BEACON_RATE_MAX),
5210
5211 REG_VARIABLE(CFG_ENABLE_PROBE_REQ_DEFERRAL_NAME, WLAN_PARAM_Integer,
5212 struct hdd_config, probe_req_deferral_enabled,
5213 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5214 CFG_ENABLE_PROBE_REQ_DEFERRAL_DEFAULT,
5215 CFG_ENABLE_PROBE_REQ_DEFERRAL_MIN,
5216 CFG_ENABLE_PROBE_REQ_DEFERRAL_MAX),
5217
5218 REG_VARIABLE(CFG_ENABLE_FILS_DISCOVERY_SAP_NAME, WLAN_PARAM_Integer,
5219 struct hdd_config, fils_discovery_sap_enabled,
5220 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5221 CFG_ENABLE_FILS_DISCOVERY_SAP_DEFAULT,
5222 CFG_ENABLE_FILS_DISCOVERY_SAP_MIN,
5223 CFG_ENABLE_FILS_DISCOVERY_SAP_MAX),
5224
5225 REG_VARIABLE(CFG_ENABLE_ESP_FEATURE_NAME, WLAN_PARAM_Integer,
5226 struct hdd_config, esp_for_roam_enabled,
5227 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5228 CFG_ENABLE_ESP_FEATURE_DEFAULT,
5229 CFG_ENABLE_ESP_FEATURE_MIN,
5230 CFG_ENABLE_ESP_FEATURE_MAX),
5231
Naveen Rawat269b4ed2017-12-07 06:47:32 -08005232 REG_VARIABLE(CFG_TX_CHAIN_MASK_2G_NAME, WLAN_PARAM_Integer,
5233 struct hdd_config, tx_chain_mask_2g,
5234 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5235 CFG_TX_CHAIN_MASK_2G_DEFAULT,
5236 CFG_TX_CHAIN_MASK_2G_MIN,
5237 CFG_TX_CHAIN_MASK_2G_MAX),
5238
5239 REG_VARIABLE(CFG_RX_CHAIN_MASK_2G_NAME, WLAN_PARAM_Integer,
5240 struct hdd_config, rx_chain_mask_2g,
5241 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5242 CFG_RX_CHAIN_MASK_2G_DEFAULT,
5243 CFG_RX_CHAIN_MASK_2G_MIN,
5244 CFG_RX_CHAIN_MASK_2G_MAX),
5245
5246 REG_VARIABLE(CFG_TX_CHAIN_MASK_5G_NAME, WLAN_PARAM_Integer,
5247 struct hdd_config, tx_chain_mask_5g,
5248 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5249 CFG_TX_CHAIN_MASK_5G_DEFAULT,
5250 CFG_TX_CHAIN_MASK_5G_MIN,
5251 CFG_TX_CHAIN_MASK_5G_MAX),
5252
5253 REG_VARIABLE(CFG_RX_CHAIN_MASK_5G_NAME, WLAN_PARAM_Integer,
5254 struct hdd_config, rx_chain_mask_5g,
5255 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5256 CFG_RX_CHAIN_MASK_5G_DEFAULT,
5257 CFG_RX_CHAIN_MASK_5G_MIN,
5258 CFG_RX_CHAIN_MASK_5G_MAX),
yeshwanth sriram guntuka41f936c2017-09-01 17:53:49 +05305259
5260 REG_VARIABLE(CFG_BTM_ENABLE_NAME, WLAN_PARAM_HexInteger,
5261 struct hdd_config, btm_offload_config,
5262 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5263 CFG_BTM_ENABLE_DEFAULT,
5264 CFG_BTM_ENABLE_MIN,
5265 CFG_BTM_ENABLE_MAX),
Padma, Santhosh Kumar3e47c632017-09-01 20:15:27 +05305266
5267#ifdef WLAN_FEATURE_SAE
5268 REG_VARIABLE(CFG_IS_SAE_ENABLED_NAME, WLAN_PARAM_Integer,
5269 struct hdd_config, is_sae_enabled,
5270 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5271 CFG_IS_SAE_ENABLED_DEFAULT,
5272 CFG_IS_SAE_ENABLED_MIN,
5273 CFG_IS_SAE_ENABLED_MAX),
5274#endif
Jiachao Wu84bb2ea2018-01-08 16:17:33 +08005275
5276 REG_VARIABLE(CFG_BTM_SOLICITED_TIMEOUT, WLAN_PARAM_Integer,
5277 struct hdd_config, btm_solicited_timeout,
5278 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5279 CFG_BTM_SOLICITED_TIMEOUT_DEFAULT,
5280 CFG_BTM_SOLICITED_TIMEOUT_MIN,
5281 CFG_BTM_SOLICITED_TIMEOUT_MAX),
5282
5283 REG_VARIABLE(CFG_BTM_MAX_ATTEMPT_CNT, WLAN_PARAM_Integer,
5284 struct hdd_config, btm_max_attempt_cnt,
5285 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5286 CFG_BTM_MAX_ATTEMPT_CNT_DEFAULT,
5287 CFG_BTM_MAX_ATTEMPT_CNT_MIN,
5288 CFG_BTM_MAX_ATTEMPT_CNT_MAX),
5289
5290 REG_VARIABLE(CFG_BTM_STICKY_TIME, WLAN_PARAM_Integer,
5291 struct hdd_config, btm_sticky_time,
5292 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5293 CFG_BTM_STICKY_TIME_DEFAULT,
5294 CFG_BTM_STICKY_TIME_MIN,
5295 CFG_BTM_STICKY_TIME_MAX),
Ashish Kumar Dhanotiyacb14b112018-01-19 19:26:44 +05305296
5297 REG_VARIABLE(CFG_ENABLE_GCMP_NAME, WLAN_PARAM_Integer,
5298 struct hdd_config, gcmp_enabled,
5299 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5300 CFG_ENABLE_GCMP_DEFAULT,
5301 CFG_ENABLE_GCMP_MIN,
5302 CFG_ENABLE_GCMP_MAX),
Vignesh Viswanathan694e28e2018-01-18 20:53:57 +05305303
5304 REG_VARIABLE(CFG_OFFLOAD_11K_ENABLE_BITMASK_NAME,
5305 WLAN_PARAM_Integer,
5306 struct hdd_config, offload_11k_enable_bitmask,
5307 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5308 CFG_OFFLOAD_11K_ENABLE_BITMASK_DEFAULT,
5309 CFG_OFFLOAD_11K_ENABLE_BITMASK_MIN,
5310 CFG_OFFLOAD_11K_ENABLE_BITMASK_MAX),
5311
5312 REG_VARIABLE(CFG_OFFLOAD_NEIGHBOR_REPORT_PARAMS_BITMASK_NAME,
5313 WLAN_PARAM_Integer,
5314 struct hdd_config, neighbor_report_offload_params_bitmask,
5315 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5316 CFG_OFFLOAD_NEIGHBOR_REPORT_PARAMS_BITMASK_DEFAULT,
5317 CFG_OFFLOAD_NEIGHBOR_REPORT_PARAMS_BITMASK_MIN,
5318 CFG_OFFLOAD_NEIGHBOR_REPORT_PARAMS_BITMASK_MAX),
5319
5320 REG_VARIABLE(CFG_OFFLOAD_NEIGHBOR_REPORT_TIME_OFFSET_NAME,
5321 WLAN_PARAM_Integer,
5322 struct hdd_config, neighbor_report_offload_time_offset,
5323 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5324 CFG_OFFLOAD_NEIGHBOR_REPORT_TIME_OFFSET_DEFAULT,
5325 CFG_OFFLOAD_NEIGHBOR_REPORT_TIME_OFFSET_MIN,
5326 CFG_OFFLOAD_NEIGHBOR_REPORT_TIME_OFFSET_MAX),
5327
5328 REG_VARIABLE(CFG_OFFLOAD_NEIGHBOR_REPORT_LOW_RSSI_OFFSET_NAME,
5329 WLAN_PARAM_Integer,
5330 struct hdd_config, neighbor_report_offload_low_rssi_offset,
5331 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5332 CFG_OFFLOAD_NEIGHBOR_REPORT_LOW_RSSI_OFFSET_DEFAULT,
5333 CFG_OFFLOAD_NEIGHBOR_REPORT_LOW_RSSI_OFFSET_MIN,
5334 CFG_OFFLOAD_NEIGHBOR_REPORT_LOW_RSSI_OFFSET_MAX),
5335
5336 REG_VARIABLE(CFG_OFFLOAD_NEIGHBOR_REPORT_BMISS_COUNT_TRIGGER_NAME,
5337 WLAN_PARAM_Integer,
5338 struct hdd_config,
5339 neighbor_report_offload_bmiss_count_trigger,
5340 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5341 CFG_OFFLOAD_NEIGHBOR_REPORT_BMISS_COUNT_TRIGGER_DEFAULT,
5342 CFG_OFFLOAD_NEIGHBOR_REPORT_BMISS_COUNT_TRIGGER_MIN,
5343 CFG_OFFLOAD_NEIGHBOR_REPORT_BMISS_COUNT_TRIGGER_MAX),
5344
5345 REG_VARIABLE(CFG_OFFLOAD_NEIGHBOR_REPORT_PER_THRESHOLD_OFFSET_NAME,
5346 WLAN_PARAM_Integer,
5347 struct hdd_config,
5348 neighbor_report_offload_per_threshold_offset,
5349 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5350 CFG_OFFLOAD_NEIGHBOR_REPORT_PER_THRESHOLD_OFFSET_DEFAULT,
5351 CFG_OFFLOAD_NEIGHBOR_REPORT_PER_THRESHOLD_OFFSET_MIN,
5352 CFG_OFFLOAD_NEIGHBOR_REPORT_PER_THRESHOLD_OFFSET_MAX),
5353
5354 REG_VARIABLE(CFG_OFFLOAD_NEIGHBOR_REPORT_CACHE_TIMEOUT_NAME,
5355 WLAN_PARAM_Integer,
5356 struct hdd_config, neighbor_report_offload_cache_timeout,
5357 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5358 CFG_OFFLOAD_NEIGHBOR_REPORT_CACHE_TIMEOUT_DEFAULT,
5359 CFG_OFFLOAD_NEIGHBOR_REPORT_CACHE_TIMEOUT_MIN,
5360 CFG_OFFLOAD_NEIGHBOR_REPORT_CACHE_TIMEOUT_MAX),
5361
5362 REG_VARIABLE(CFG_OFFLOAD_NEIGHBOR_REPORT_MAX_REQ_CAP_NAME,
5363 WLAN_PARAM_Integer,
5364 struct hdd_config, neighbor_report_offload_max_req_cap,
5365 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5366 CFG_OFFLOAD_NEIGHBOR_REPORT_MAX_REQ_CAP_DEFAULT,
5367 CFG_OFFLOAD_NEIGHBOR_REPORT_MAX_REQ_CAP_MIN,
5368 CFG_OFFLOAD_NEIGHBOR_REPORT_MAX_REQ_CAP_MAX),
Surabhi Vishnoi7f085d22018-01-30 12:11:14 +05305369
5370 REG_VARIABLE(CFG_WMI_WQ_WATCHDOG, WLAN_PARAM_Integer,
5371 struct hdd_config, wmi_wq_watchdog_timeout,
5372 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5373 CFG_WMI_WQ_WATCHDOG_DEFAULT,
5374 CFG_WMI_WQ_WATCHDOG_MIN,
5375 CFG_WMI_WQ_WATCHDOG_MAX),
Ashish Kumar Dhanotiya191d1642018-02-08 17:43:09 +05305376
5377 REG_VARIABLE(CFG_DTIM_SELECTION_DIVERSITY_NAME,
5378 WLAN_PARAM_Integer,
5379 struct hdd_config, enable_dtim_selection_diversity,
5380 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5381 CFG_DTIM_SELECTION_DIVERSITY_DEFAULT,
5382 CFG_DTIM_SELECTION_DIVERSITY_MIN,
5383 CFG_DTIM_SELECTION_DIVERSITY_MAX),
Yeshwanth Sriram Guntukadb7995d2018-01-22 16:46:59 +05305384
5385 REG_VARIABLE(CFG_CHANNEL_SELECT_LOGIC_CONC_NAME, WLAN_PARAM_HexInteger,
5386 struct hdd_config, channel_select_logic_conc,
5387 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5388 CFG_CHANNEL_SELECT_LOGIC_CONC_DEFAULT,
5389 CFG_CHANNEL_SELECT_LOGIC_CONC_MIN,
5390 CFG_CHANNEL_SELECT_LOGIC_CONC_MAX),
Ashish Kumar Dhanotiya48dac7d2018-03-28 14:59:50 +05305391
5392 REG_VARIABLE(CFG_TX_SCH_DELAY_NAME,
5393 WLAN_PARAM_Integer,
5394 struct hdd_config, enable_tx_sch_delay,
5395 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5396 CFG_TX_SCH_DELAY_DEFAULT,
5397 CFG_TX_SCH_DELAY_MIN,
5398 CFG_TX_SCH_DELAY_MAX),
Jeff Johnsonc57c13a2018-04-01 11:03:29 -07005399
5400 HDD_GREEN_AP_REG_VARIABLES
Rajeev Kumar15b40a22018-04-12 11:45:24 -07005401
5402 REG_VARIABLE(CFG_ENABLE_UNIT_TEST_FRAMEWORK_NAME,
5403 WLAN_PARAM_Integer,
5404 struct hdd_config, is_unit_test_framework_enabled,
5405 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5406 CFG_ENABLE_UINT_TEST_FRAMEWORK_DEFAULT,
5407 CFG_ENABLE_UNIT_TEST_FRAMEWORK_MIN,
5408 CFG_ENABLE_UNIT_TEST_FRAMEWORK_MAX),
Abhinav Kumar271f0632018-03-29 16:01:30 +05305409
5410 REG_VARIABLE(CFG_ROAM_FT_OPEN_ENABLE_NAME, WLAN_PARAM_Integer,
5411 struct hdd_config, enable_ftopen,
5412 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5413 CFG_ROAM_FT_OPEN_ENABLE_DEFAULT,
5414 CFG_ROAM_FT_OPEN_ENABLE_MIN,
5415 CFG_ROAM_FT_OPEN_ENABLE_MAX),
Naveen Rawat2b430892018-03-13 13:58:18 -07005416
5417 REG_VARIABLE(CFG_ENABLE_RTT_MAC_RANDOMIZATION_NAME,
5418 WLAN_PARAM_Integer,
5419 struct hdd_config, enable_rtt_mac_randomization,
5420 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5421 CFG_ENABLE_RTT_MAC_RANDOMIZATION_DEFAULT,
5422 CFG_ENABLE_RTT_MAC_RANDOMIZATION_MIN,
5423 CFG_ENABLE_RTT_MAC_RANDOMIZATION_MAX),
Ashish Kumar Dhanotiya959b38c2018-04-06 21:07:57 +05305424
5425 REG_VARIABLE(CFG_ENABLE_SECONDARY_RATE_NAME,
5426 WLAN_PARAM_HexInteger,
5427 struct hdd_config, enable_secondary_rate,
5428 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5429 CFG_ENABLE_SECONDARY_RATE_DEFAULT,
5430 CFG_ENABLE_SECONDARY_RATE_MIN,
5431 CFG_ENABLE_SECONDARY_RATE_MAX),
Arun Khandavallifae92942016-08-01 13:31:08 +05305432};
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005433
Amar Singhal5cccafe2017-02-15 12:42:58 -08005434
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005435/**
5436 * get_next_line() - find and locate the new line pointer
5437 * @str: pointer to string
5438 *
5439 * This function returns a pointer to the character after the occurence
5440 * of a new line character. It also modifies the original string by replacing
5441 * the '\n' character with the null character.
5442 *
5443 * Return: the pointer to the character at new line,
5444 * or NULL if no new line character was found
5445 */
5446static char *get_next_line(char *str)
5447{
5448 char c;
5449
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07005450 if (str == NULL || *str == '\0')
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005451 return NULL;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005452
5453 c = *str;
5454 while (c != '\n' && c != '\0' && c != 0xd) {
5455 str = str + 1;
5456 c = *str;
5457 }
5458
Jeff Johnson68755312017-02-10 11:46:55 -08005459 if (c == '\0')
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005460 return NULL;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005461
Jeff Johnson68755312017-02-10 11:46:55 -08005462 *str = '\0';
Jeff Johnson68755312017-02-10 11:46:55 -08005463 return str + 1;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005464}
5465
5466/** look for space. Ascii values to look are
5467 * 0x09 == horizontal tab
5468 * 0x0a == Newline ("\n")
5469 * 0x0b == vertical tab
5470 * 0x0c == Newpage or feed form.
5471 * 0x0d == carriage return (CR or "\r")
5472 * Null ('\0') should not considered as space.
5473 */
5474#define i_isspace(ch) (((ch) >= 0x09 && (ch) <= 0x0d) || (ch) == ' ')
5475
5476/**
5477 * i_trim() - trims any leading and trailing white spaces
5478 * @str: pointer to string
5479 *
5480 * Return: the pointer of the string
5481 */
5482static char *i_trim(char *str)
5483{
5484 char *ptr;
5485
5486 if (*str == '\0')
5487 return str;
5488
5489 /* Find the first non white-space */
5490 ptr = str;
5491 while (i_isspace(*ptr))
5492 ptr++;
5493
5494 if (*ptr == '\0')
5495 return str;
5496
5497 /* This is the new start of the string */
5498 str = ptr;
5499
5500 /* Find the last non white-space */
5501 ptr += strlen(ptr) - 1;
5502
5503 while (ptr != str && i_isspace(*ptr))
5504 ptr--;
5505
5506 /* Null terminate the following character */
5507 ptr[1] = '\0';
5508
5509 return str;
5510}
5511
5512/* Maximum length of the confgiuration name and value */
5513#define CFG_VALUE_MAX_LEN 256
5514#define CFG_ENTRY_MAX_LEN (32+CFG_VALUE_MAX_LEN)
5515
5516/**
5517 * hdd_cfg_get_config() - get the configuration content
5518 * @reg_table: pointer to configuration table
5519 * @cRegTableEntries: number of the configuration entries
5520 * @ini_struct: pointer to the hdd config knob
Jeff Johnson723234b2017-09-03 08:49:15 -07005521 * @hdd_ctx: pointer to hdd context
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005522 * @pBuf: buffer to store the configuration
5523 * @buflen: size of the buffer
5524 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305525 * Return: QDF_STATUS_SUCCESS if the configuration and buffer size can carry
5526 * the content, otherwise QDF_STATUS_E_RESOURCES
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005527 */
Srinivas Girigowda2fb677c2017-03-25 15:35:34 -07005528static QDF_STATUS hdd_cfg_get_config(struct reg_table_entry *reg_table,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005529 unsigned long cRegTableEntries,
5530 uint8_t *ini_struct,
Jeff Johnson723234b2017-09-03 08:49:15 -07005531 struct hdd_context *hdd_ctx, char *pBuf,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005532 int buflen)
5533{
5534 unsigned int idx;
Srinivas Girigowda2fb677c2017-03-25 15:35:34 -07005535 struct reg_table_entry *pRegEntry = reg_table;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005536 uint32_t value;
5537 char valueStr[CFG_VALUE_MAX_LEN];
5538 char configStr[CFG_ENTRY_MAX_LEN];
5539 char *fmt;
5540 void *pField;
Anurag Chouhan6d760662016-02-20 16:05:43 +05305541 struct qdf_mac_addr *pMacAddr;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005542 char *pCur = pBuf;
5543 int curlen;
5544
5545 /* start with an empty string */
5546 *pCur = '\0';
5547
5548 for (idx = 0; idx < cRegTableEntries; idx++, pRegEntry++) {
5549 pField = ini_struct + pRegEntry->VarOffset;
5550
5551 if ((WLAN_PARAM_Integer == pRegEntry->RegType) ||
5552 (WLAN_PARAM_SignedInteger == pRegEntry->RegType) ||
5553 (WLAN_PARAM_HexInteger == pRegEntry->RegType)) {
5554 value = 0;
Vidyullatha Kanchanapally53241c42017-04-13 19:16:24 +05305555
5556 if ((pRegEntry->VarSize > sizeof(value)) ||
5557 (pRegEntry->VarSize == 0)) {
5558 pr_warn("Invalid length of %s: %d",
5559 pRegEntry->RegName, pRegEntry->VarSize);
5560 continue;
5561 }
5562
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005563 memcpy(&value, pField, pRegEntry->VarSize);
5564 if (WLAN_PARAM_HexInteger == pRegEntry->RegType) {
5565 fmt = "%x";
5566 } else if (WLAN_PARAM_SignedInteger ==
5567 pRegEntry->RegType) {
5568 fmt = "%d";
Vidyullatha Kanchanapally53241c42017-04-13 19:16:24 +05305569 value = sign_extend32(
5570 value,
5571 pRegEntry->VarSize * 8 - 1);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005572 } else {
5573 fmt = "%u";
5574 }
5575 snprintf(valueStr, CFG_VALUE_MAX_LEN, fmt, value);
5576 } else if (WLAN_PARAM_String == pRegEntry->RegType) {
5577 snprintf(valueStr, CFG_VALUE_MAX_LEN, "%s",
5578 (char *)pField);
5579 } else if (WLAN_PARAM_MacAddr == pRegEntry->RegType) {
Anurag Chouhan6d760662016-02-20 16:05:43 +05305580 pMacAddr = (struct qdf_mac_addr *) pField;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005581 snprintf(valueStr, CFG_VALUE_MAX_LEN,
5582 "%02x:%02x:%02x:%02x:%02x:%02x",
5583 pMacAddr->bytes[0],
5584 pMacAddr->bytes[1],
5585 pMacAddr->bytes[2],
5586 pMacAddr->bytes[3],
5587 pMacAddr->bytes[4], pMacAddr->bytes[5]);
5588 } else {
5589 snprintf(valueStr, CFG_VALUE_MAX_LEN, "(unhandled)");
5590 }
5591 curlen = scnprintf(configStr, CFG_ENTRY_MAX_LEN,
5592 "%s=[%s]%s\n",
5593 pRegEntry->RegName,
5594 valueStr,
5595 test_bit(idx,
Jeff Johnson723234b2017-09-03 08:49:15 -07005596 (void *)&hdd_ctx->config->
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005597 bExplicitCfg) ? "*" : "");
5598
5599 /* Ideally we want to return the config to the application,
5600 * however the config is too big so we just printk() for now
5601 */
5602#ifdef RETURN_IN_BUFFER
Hanumanth Reddy Pothulaadf163e2016-09-07 15:11:58 +05305603 if (curlen < buflen) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005604 /* copy string + '\0' */
5605 memcpy(pCur, configStr, curlen + 1);
5606
5607 /* account for addition; */
5608 pCur += curlen;
5609 buflen -= curlen;
5610 } else {
5611 /* buffer space exhausted, return what we have */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305612 return QDF_STATUS_E_RESOURCES;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005613 }
5614#else
5615 printk(KERN_INFO "%s", configStr);
5616#endif /* RETURN_IN_BUFFER */
5617
5618 }
5619
5620#ifndef RETURN_IN_BUFFER
5621 /* notify application that output is in system log */
5622 snprintf(pCur, buflen, "WLAN configuration written to system log");
5623#endif /* RETURN_IN_BUFFER */
5624
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305625 return QDF_STATUS_SUCCESS;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005626}
5627
Jeff Johnson7274ccc2017-09-30 19:45:40 -07005628/** struct hdd_cfg_entry - ini configuration entry
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005629 * @name: name of the entry
5630 * @value: value of the entry
5631 */
Jeff Johnson7274ccc2017-09-30 19:45:40 -07005632struct hdd_cfg_entry {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005633 char *name;
5634 char *value;
Jeff Johnson7274ccc2017-09-30 19:45:40 -07005635};
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005636
5637/**
5638 * find_cfg_item() - find the configuration item
5639 * @iniTable: pointer to configuration table
5640 * @entries: number fo the configuration entries
5641 * @name: the interested configuration to find
5642 * @value: the value to read back
5643 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305644 * Return: QDF_STATUS_SUCCESS if the interested configuration is found,
5645 * otherwise QDF_STATUS_E_FAILURE
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005646 */
Jeff Johnson7274ccc2017-09-30 19:45:40 -07005647static QDF_STATUS find_cfg_item(struct hdd_cfg_entry *iniTable,
5648 unsigned long entries,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005649 char *name, char **value)
5650{
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305651 QDF_STATUS status = QDF_STATUS_E_FAILURE;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005652 unsigned long i;
5653
5654 for (i = 0; i < entries; i++) {
5655 if (strcmp(iniTable[i].name, name) == 0) {
5656 *value = iniTable[i].value;
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005657 hdd_debug("Found %s entry for Name=[%s] Value=[%s] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005658 WLAN_INI_FILE, name, *value);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305659 return QDF_STATUS_SUCCESS;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005660 }
5661 }
5662
5663 return status;
5664}
5665
5666/**
5667 * parse_hex_digit() - conversion to hex value
5668 * @c: the character to convert
5669 *
5670 * Return: the hex value, otherwise 0
5671 */
5672static int parse_hex_digit(char c)
5673{
5674 if (c >= '0' && c <= '9')
5675 return c - '0';
5676 if (c >= 'a' && c <= 'f')
5677 return c - 'a' + 10;
5678 if (c >= 'A' && c <= 'F')
5679 return c - 'A' + 10;
5680
5681 return 0;
5682}
5683
5684/**
5685 * update_mac_from_string() - convert string to 6 bytes mac address
Jeff Johnson723234b2017-09-03 08:49:15 -07005686 * @hdd_ctx: the pointer to hdd context
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005687 * @macTable: the macTable to carry the conversion
5688 * @num: number of the interface
5689 *
5690 * 00AA00BB00CC -> 0x00 0xAA 0x00 0xBB 0x00 0xCC
5691 *
5692 * Return: None
5693 */
Jeff Johnson723234b2017-09-03 08:49:15 -07005694static void update_mac_from_string(struct hdd_context *hdd_ctx,
Jeff Johnson7274ccc2017-09-30 19:45:40 -07005695 struct hdd_cfg_entry *macTable, int num)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005696{
5697 int i = 0, j = 0, res = 0;
5698 char *candidate = NULL;
Anurag Chouhan6d760662016-02-20 16:05:43 +05305699 struct qdf_mac_addr macaddr[QDF_MAX_CONCURRENCY_PERSONA];
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005700
5701 memset(macaddr, 0, sizeof(macaddr));
5702
5703 for (i = 0; i < num; i++) {
5704 candidate = macTable[i].value;
Anurag Chouhan6d760662016-02-20 16:05:43 +05305705 for (j = 0; j < QDF_MAC_ADDR_SIZE; j++) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005706 res =
5707 hex2bin(&macaddr[i].bytes[j], &candidate[(j << 1)],
5708 1);
5709 if (res < 0)
5710 break;
5711 }
Anurag Chouhanc5548422016-02-24 18:33:27 +05305712 if (res == 0 && !qdf_is_macaddr_zero(&macaddr[i])) {
Jeff Johnson723234b2017-09-03 08:49:15 -07005713 qdf_mem_copy((uint8_t *) &hdd_ctx->config->
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005714 intfMacAddr[i].bytes[0],
5715 (uint8_t *) &macaddr[i].bytes[0],
Anurag Chouhan6d760662016-02-20 16:05:43 +05305716 QDF_MAC_ADDR_SIZE);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005717 }
5718 }
5719}
5720
5721/**
5722 * hdd_apply_cfg_ini() - apply the ini configuration file
Jeff Johnson723234b2017-09-03 08:49:15 -07005723 * @hdd_ctx: the pointer to hdd context
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005724 * @iniTable: pointer to configuration table
5725 * @entries: number fo the configuration entries
5726 * It overwrites the MAC address if config file exist.
5727 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305728 * Return: QDF_STATUS_SUCCESS if the ini configuration file is correctly parsed,
5729 * otherwise QDF_STATUS_E_INVAL
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005730 */
Jeff Johnson723234b2017-09-03 08:49:15 -07005731static QDF_STATUS hdd_apply_cfg_ini(struct hdd_context *hdd_ctx,
Jeff Johnson7274ccc2017-09-30 19:45:40 -07005732 struct hdd_cfg_entry *iniTable,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005733 unsigned long entries)
5734{
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305735 QDF_STATUS match_status = QDF_STATUS_E_FAILURE;
5736 QDF_STATUS ret_status = QDF_STATUS_SUCCESS;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005737 unsigned int idx;
5738 void *pField;
5739 char *value_str = NULL;
5740 unsigned long len_value_str;
5741 char *candidate;
5742 uint32_t value;
5743 int32_t svalue;
Jeff Johnson723234b2017-09-03 08:49:15 -07005744 void *pStructBase = hdd_ctx->config;
Srinivas Girigowda2fb677c2017-03-25 15:35:34 -07005745 struct reg_table_entry *pRegEntry = g_registry_table;
Anurag Chouhan6d760662016-02-20 16:05:43 +05305746 unsigned long cRegTableEntries = QDF_ARRAY_SIZE(g_registry_table);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005747 uint32_t cbOutString;
5748 int i;
5749 int rv;
5750
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005751 if (MAX_CFG_INI_ITEMS < cRegTableEntries) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005752 hdd_err("MAX_CFG_INI_ITEMS too small, must be at least %ld",
Srinivas Girigowdaba3091c2015-11-16 17:18:40 -08005753 cRegTableEntries);
5754 WARN_ON(1);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005755 }
5756
5757 for (idx = 0; idx < cRegTableEntries; idx++, pRegEntry++) {
5758 /* Calculate the address of the destination field in the structure. */
5759 pField = ((uint8_t *) pStructBase) + pRegEntry->VarOffset;
5760
5761 match_status =
5762 find_cfg_item(iniTable, entries, pRegEntry->RegName,
5763 &value_str);
5764
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305765 if ((match_status != QDF_STATUS_SUCCESS)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005766 && (pRegEntry->Flags & VAR_FLAGS_REQUIRED)) {
5767 /* If we could not read the cfg item and it is required, this is an error. */
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005768 hdd_err("Failed to read required config parameter %s", pRegEntry->RegName);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305769 ret_status = QDF_STATUS_E_FAILURE;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005770 break;
5771 }
5772
5773 if ((WLAN_PARAM_Integer == pRegEntry->RegType) ||
5774 (WLAN_PARAM_HexInteger == pRegEntry->RegType)) {
5775 /* If successfully read from the registry, use the value read.
5776 * If not, use the default value.
5777 */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305778 if (match_status == QDF_STATUS_SUCCESS
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005779 && (WLAN_PARAM_Integer == pRegEntry->RegType)) {
5780 rv = kstrtou32(value_str, 10, &value);
5781 if (rv < 0) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005782 hdd_warn("Reg Parameter %s invalid. Enforcing default", pRegEntry->RegName);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005783 value = pRegEntry->VarDefault;
5784 }
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305785 } else if (match_status == QDF_STATUS_SUCCESS
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005786 && (WLAN_PARAM_HexInteger ==
5787 pRegEntry->RegType)) {
5788 rv = kstrtou32(value_str, 16, &value);
5789 if (rv < 0) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005790 hdd_warn("Reg paramter %s invalid. Enforcing default", pRegEntry->RegName);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005791 value = pRegEntry->VarDefault;
5792 }
5793 } else {
5794 value = pRegEntry->VarDefault;
5795 }
5796
Srinivas Girigowdad1b92582017-03-02 11:47:47 -08005797 /* Only if the parameter is set in the ini file, do the range check here */
5798 if (match_status == QDF_STATUS_SUCCESS &&
5799 pRegEntry->Flags & VAR_FLAGS_RANGE_CHECK) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005800 if (value > pRegEntry->VarMax) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005801 hdd_warn("Reg Parameter %s > allowed Maximum [%u > %lu]. Enforcing Maximum", pRegEntry->RegName,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005802 value, pRegEntry->VarMax);
5803 value = pRegEntry->VarMax;
5804 }
5805
5806 if (value < pRegEntry->VarMin) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005807 hdd_warn("Reg Parameter %s < allowed Minimum [%u < %lu]. Enforcing Minimum", pRegEntry->RegName,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005808 value, pRegEntry->VarMin);
5809 value = pRegEntry->VarMin;
5810 }
5811 }
Srinivas Girigowdad1b92582017-03-02 11:47:47 -08005812 /* Only if the parameter is set in the ini file, do the range check here */
5813 else if (match_status == QDF_STATUS_SUCCESS &&
5814 pRegEntry->Flags &
5815 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005816 if (value > pRegEntry->VarMax) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005817 hdd_warn("Reg Parameter %s > allowed Maximum [%u > %lu]. Enforcing Default: %lu", pRegEntry->RegName,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005818 value, pRegEntry->VarMax,
5819 pRegEntry->VarDefault);
5820 value = pRegEntry->VarDefault;
5821 }
5822
5823 if (value < pRegEntry->VarMin) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005824 hdd_warn("Reg Parameter %s < allowed Minimum [%u < %lu]. Enforcing Default: %lu", pRegEntry->RegName,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005825 value, pRegEntry->VarMin,
5826 pRegEntry->VarDefault);
5827 value = pRegEntry->VarDefault;
5828 }
5829 }
5830 /* Move the variable into the output field. */
5831 memcpy(pField, &value, pRegEntry->VarSize);
5832 } else if (WLAN_PARAM_SignedInteger == pRegEntry->RegType) {
5833 /* If successfully read from the registry, use the value read.
5834 * If not, use the default value.
5835 */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305836 if (QDF_STATUS_SUCCESS == match_status) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005837 rv = kstrtos32(value_str, 10, &svalue);
5838 if (rv < 0) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005839 hdd_warn("Reg Parameter %s invalid. Enforcing Default", pRegEntry->RegName);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005840 svalue =
5841 (int32_t) pRegEntry->VarDefault;
5842 }
5843 } else {
5844 svalue = (int32_t) pRegEntry->VarDefault;
5845 }
5846
Srinivas Girigowdad1b92582017-03-02 11:47:47 -08005847 /* Only if the parameter is set in the ini file, do the range check here */
5848 if (match_status == QDF_STATUS_SUCCESS &&
5849 pRegEntry->Flags & VAR_FLAGS_RANGE_CHECK) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005850 if (svalue > (int32_t) pRegEntry->VarMax) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005851 hdd_warn("Reg Parameter %s > allowed Maximum "
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005852 "[%d > %d]. Enforcing Maximum", pRegEntry->RegName,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005853 svalue, (int)pRegEntry->VarMax);
5854 svalue = (int32_t) pRegEntry->VarMax;
5855 }
5856
5857 if (svalue < (int32_t) pRegEntry->VarMin) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005858 hdd_warn("Reg Parameter %s < allowed Minimum "
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005859 "[%d < %d]. Enforcing Minimum", pRegEntry->RegName,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005860 svalue, (int)pRegEntry->VarMin);
5861 svalue = (int32_t) pRegEntry->VarMin;
5862 }
5863 }
Srinivas Girigowdad1b92582017-03-02 11:47:47 -08005864 /* Only if the parameter is set in the ini file, do the range check here */
5865 else if (match_status == QDF_STATUS_SUCCESS &&
5866 pRegEntry->Flags &
5867 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005868 if (svalue > (int32_t) pRegEntry->VarMax) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005869 hdd_warn("Reg Parameter %s > allowed Maximum "
5870 "[%d > %d]. Enforcing Default: %d", pRegEntry->RegName,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005871 svalue, (int)pRegEntry->VarMax,
5872 (int)pRegEntry->VarDefault);
5873 svalue =
5874 (int32_t) pRegEntry->VarDefault;
5875 }
5876
5877 if (svalue < (int32_t) pRegEntry->VarMin) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005878 hdd_warn("Reg Parameter %s < allowed Minimum "
5879 "[%d < %d]. Enforcing Default: %d", pRegEntry->RegName,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005880 svalue, (int)pRegEntry->VarMin,
5881 (int)pRegEntry->VarDefault);
5882 svalue = pRegEntry->VarDefault;
5883 }
5884 }
5885 /* Move the variable into the output field. */
5886 memcpy(pField, &svalue, pRegEntry->VarSize);
5887 }
5888 /* Handle string parameters */
5889 else if (WLAN_PARAM_String == pRegEntry->RegType) {
5890#ifdef WLAN_CFG_DEBUG
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005891 hdd_debug("RegName = %s, VarOffset %u VarSize %u VarDefault %s",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005892 pRegEntry->RegName, pRegEntry->VarOffset,
5893 pRegEntry->VarSize,
5894 (char *)pRegEntry->VarDefault);
5895#endif
5896
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305897 if (match_status == QDF_STATUS_SUCCESS) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005898 len_value_str = strlen(value_str);
5899
5900 if (len_value_str > (pRegEntry->VarSize - 1)) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005901 hdd_err("Invalid Value=[%s] specified for Name=[%s] in %s", value_str,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005902 pRegEntry->RegName,
5903 WLAN_INI_FILE);
5904 cbOutString =
Srinivas Girigowda2fb677c2017-03-25 15:35:34 -07005905 QDF_MIN(strlen
5906 ((char *)pRegEntry->
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005907 VarDefault),
5908 pRegEntry->VarSize - 1);
5909 memcpy(pField,
5910 (void *)(pRegEntry->VarDefault),
5911 cbOutString);
5912 ((uint8_t *) pField)[cbOutString] =
5913 '\0';
5914 } else {
5915 memcpy(pField, (void *)(value_str),
5916 len_value_str);
5917 ((uint8_t *) pField)[len_value_str] =
5918 '\0';
5919 }
5920 } else {
5921 /* Failed to read the string parameter from the registry. Use the default. */
5922 cbOutString =
Srinivas Girigowda2fb677c2017-03-25 15:35:34 -07005923 QDF_MIN(strlen((char *)pRegEntry->VarDefault),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005924 pRegEntry->VarSize - 1);
5925 memcpy(pField, (void *)(pRegEntry->VarDefault),
5926 cbOutString);
5927 ((uint8_t *) pField)[cbOutString] = '\0';
5928 }
5929 } else if (WLAN_PARAM_MacAddr == pRegEntry->RegType) {
Anurag Chouhan6d760662016-02-20 16:05:43 +05305930 if (pRegEntry->VarSize != QDF_MAC_ADDR_SIZE) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005931 hdd_warn("Invalid VarSize %u for Name=[%s]", pRegEntry->VarSize,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005932 pRegEntry->RegName);
5933 continue;
5934 }
5935 candidate = (char *)pRegEntry->VarDefault;
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305936 if (match_status == QDF_STATUS_SUCCESS) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005937 len_value_str = strlen(value_str);
Anurag Chouhan6d760662016-02-20 16:05:43 +05305938 if (len_value_str != (QDF_MAC_ADDR_SIZE * 2)) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005939 hdd_err("Invalid MAC addr [%s] specified for Name=[%s] in %s", value_str,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005940 pRegEntry->RegName,
5941 WLAN_INI_FILE);
5942 } else
5943 candidate = value_str;
5944 }
5945 /* parse the string and store it in the byte array */
Anurag Chouhan6d760662016-02-20 16:05:43 +05305946 for (i = 0; i < QDF_MAC_ADDR_SIZE; i++) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005947 ((char *)pField)[i] =
5948 (char)(parse_hex_digit(candidate[i * 2]) *
5949 16 +
5950 parse_hex_digit(candidate[i * 2 + 1]));
5951 }
5952 } else {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005953 hdd_warn("Unknown param type for name[%s] in registry table", pRegEntry->RegName);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005954 }
5955
5956 /* did we successfully parse a cfg item for this parameter? */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305957 if ((match_status == QDF_STATUS_SUCCESS) &&
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005958 (idx < MAX_CFG_INI_ITEMS)) {
Jeff Johnson723234b2017-09-03 08:49:15 -07005959 set_bit(idx, (void *)&hdd_ctx->config->bExplicitCfg);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005960 }
5961 }
5962
5963 return ret_status;
5964}
5965
5966/**
5967 * hdd_execute_config_command() - executes an arbitrary configuration command
5968 * @reg_table: the pointer to configuration table
5969 * @tableSize: the size of the configuration table
5970 * @ini_struct: pointer to the hdd config knob
Jeff Johnson723234b2017-09-03 08:49:15 -07005971 * @hdd_ctx: the pointer to hdd context
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005972 * @command: the command to run
5973 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305974 * Return: QDF_STATUS_SUCCESS if the command is found and able to execute,
5975 * otherwise the appropriate QDF_STATUS will be returned
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005976 */
Srinivas Girigowda2fb677c2017-03-25 15:35:34 -07005977static QDF_STATUS hdd_execute_config_command(struct reg_table_entry *reg_table,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005978 unsigned long tableSize,
5979 uint8_t *ini_struct,
Jeff Johnson723234b2017-09-03 08:49:15 -07005980 struct hdd_context *hdd_ctx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005981 char *command)
5982{
Srinivas Girigowda2fb677c2017-03-25 15:35:34 -07005983 struct reg_table_entry *pRegEntry;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005984 char *clone;
5985 char *pCmd;
5986 void *pField;
5987 char *name;
5988 char *value_str;
5989 uint32_t value;
5990 int32_t svalue;
5991 size_t len_value_str;
5992 unsigned int idx;
5993 unsigned int i;
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305994 QDF_STATUS vstatus;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005995 int rv;
5996
5997 /* assume failure until proven otherwise */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305998 vstatus = QDF_STATUS_E_FAILURE;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005999
6000 /* clone the command so that we can manipulate it */
6001 clone = kstrdup(command, GFP_ATOMIC);
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07006002 if (NULL == clone)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006003 return vstatus;
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07006004
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006005 /* 'clone' will point to the beginning of the string so it can be freed
6006 * 'pCmd' will be used to walk/parse the command
6007 */
6008 pCmd = clone;
6009
6010 /* get rid of leading/trailing whitespace */
6011 pCmd = i_trim(pCmd);
6012 if ('\0' == *pCmd) {
6013 /* only whitespace */
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08006014 hdd_err("invalid command, only whitespace:[%s]", command);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006015 goto done;
6016 }
6017 /* parse the <name> = <value> */
6018 name = pCmd;
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07006019 while (('=' != *pCmd) && ('\0' != *pCmd))
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006020 pCmd++;
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07006021
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006022 if ('\0' == *pCmd) {
6023 /* did not find '=' */
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08006024 hdd_err("invalid command, no '=':[%s]", command);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006025 goto done;
6026 }
6027 /* replace '=' with NUL to terminate the <name> */
6028 *pCmd++ = '\0';
6029 name = i_trim(name);
6030 if ('\0' == *name) {
6031 /* did not find a name */
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08006032 hdd_err("invalid command, no <name>:[%s]", command);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006033 goto done;
6034 }
6035
6036 value_str = i_trim(pCmd);
6037 if ('\0' == *value_str) {
6038 /* did not find a value */
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08006039 hdd_err("invalid command, no <value>:[%s]", command);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006040 goto done;
6041 }
6042 /* lookup the configuration item */
6043 for (idx = 0; idx < tableSize; idx++) {
6044 if (0 == strcmp(name, reg_table[idx].RegName)) {
6045 /* found a match */
6046 break;
6047 }
6048 }
6049 if (tableSize == idx) {
6050 /* did not match the name */
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08006051 hdd_err("invalid command, unknown configuration item:[%s]", command);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006052 goto done;
6053 }
6054
6055 pRegEntry = &reg_table[idx];
6056 if (!(pRegEntry->Flags & VAR_FLAGS_DYNAMIC_CFG)) {
6057 /* does not support dynamic configuration */
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006058 hdd_err("Global_Registry_Table. %s does not support "
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08006059 "dynamic configuration", name);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306060 vstatus = QDF_STATUS_E_PERM;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006061 goto done;
6062 }
6063
6064 pField = ini_struct + pRegEntry->VarOffset;
6065
6066 switch (pRegEntry->RegType) {
6067 case WLAN_PARAM_Integer:
6068 rv = kstrtou32(value_str, 10, &value);
6069 if (rv < 0)
6070 goto done;
6071 if (value < pRegEntry->VarMin) {
6072 /* out of range */
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006073 hdd_err("Invalid command, value %u < min value %lu", value, pRegEntry->VarMin);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006074 goto done;
6075 }
6076 if (value > pRegEntry->VarMax) {
6077 /* out of range */
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006078 hdd_err("Invalid command, value %u > max value %lu", value, pRegEntry->VarMax);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006079 goto done;
6080 }
6081 memcpy(pField, &value, pRegEntry->VarSize);
6082 break;
6083
6084 case WLAN_PARAM_HexInteger:
6085 rv = kstrtou32(value_str, 16, &value);
6086 if (rv < 0)
6087 goto done;
6088 if (value < pRegEntry->VarMin) {
6089 /* out of range */
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006090 hdd_err("Invalid command, value %x < min value %lx", value, pRegEntry->VarMin);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006091 goto done;
6092 }
6093 if (value > pRegEntry->VarMax) {
6094 /* out of range */
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006095 hdd_err("Invalid command, value %x > max value %lx", value, pRegEntry->VarMax);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006096 goto done;
6097 }
6098 memcpy(pField, &value, pRegEntry->VarSize);
6099 break;
6100
6101 case WLAN_PARAM_SignedInteger:
6102 rv = kstrtos32(value_str, 10, &svalue);
6103 if (rv < 0)
6104 goto done;
6105 if (svalue < (int32_t) pRegEntry->VarMin) {
6106 /* out of range */
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006107 hdd_err("Invalid command, value %d < min value %d", svalue, (int)pRegEntry->VarMin);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006108 goto done;
6109 }
6110 if (svalue > (int32_t) pRegEntry->VarMax) {
6111 /* out of range */
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006112 hdd_err("Invalid command, value %d > max value %d", svalue, (int)pRegEntry->VarMax);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006113 goto done;
6114 }
6115 memcpy(pField, &svalue, pRegEntry->VarSize);
6116 break;
6117
6118 case WLAN_PARAM_String:
6119 len_value_str = strlen(value_str);
6120 if (len_value_str > (pRegEntry->VarSize - 1)) {
6121 /* too big */
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006122 hdd_err("Invalid command, string [%s] length "
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08006123 "%zu exceeds maximum length %u", value_str,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006124 len_value_str, (pRegEntry->VarSize - 1));
6125 goto done;
6126 }
6127 /* copy string plus NUL */
6128 memcpy(pField, value_str, (len_value_str + 1));
6129 break;
6130
6131 case WLAN_PARAM_MacAddr:
6132 len_value_str = strlen(value_str);
Anurag Chouhan6d760662016-02-20 16:05:43 +05306133 if (len_value_str != (QDF_MAC_ADDR_SIZE * 2)) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006134 /* out of range */
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006135 hdd_err("Invalid command, MAC address [%s] length "
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08006136 "%zu is not expected length %u", value_str,
Anurag Chouhan6d760662016-02-20 16:05:43 +05306137 len_value_str, (QDF_MAC_ADDR_SIZE * 2));
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006138 goto done;
6139 }
6140 /* parse the string and store it in the byte array */
Anurag Chouhan6d760662016-02-20 16:05:43 +05306141 for (i = 0; i < QDF_MAC_ADDR_SIZE; i++) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006142 ((char *)pField)[i] = (char)
6143 ((parse_hex_digit(value_str[(i * 2)]) * 16) +
6144 parse_hex_digit(value_str[(i * 2) + 1]));
6145 }
6146 break;
6147
6148 default:
6149 goto done;
6150 }
6151
6152 /* if we get here, we had a successful modification */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306153 vstatus = QDF_STATUS_SUCCESS;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006154
6155 /* config table has been modified, is there a notifier? */
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07006156 if (NULL != pRegEntry->pfnDynamicnotify)
Jeff Johnson723234b2017-09-03 08:49:15 -07006157 (pRegEntry->pfnDynamicnotify)(hdd_ctx, pRegEntry->notifyId);
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07006158
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006159 /* note that this item was explicitly configured */
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07006160 if (idx < MAX_CFG_INI_ITEMS)
Jeff Johnson723234b2017-09-03 08:49:15 -07006161 set_bit(idx, (void *)&hdd_ctx->config->bExplicitCfg);
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07006162
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006163done:
6164 kfree(clone);
6165 return vstatus;
6166}
6167
6168/**
6169 * hdd_set_power_save_offload_config() - set power save offload configuration
Jeff Johnson723234b2017-09-03 08:49:15 -07006170 * @hdd_ctx: the pointer to hdd context
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006171 *
6172 * Return: none
6173 */
Jeff Johnson723234b2017-09-03 08:49:15 -07006174static void hdd_set_power_save_offload_config(struct hdd_context *hdd_ctx)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006175{
Jeff Johnson723234b2017-09-03 08:49:15 -07006176 struct hdd_config *pConfig = hdd_ctx->config;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006177 uint32_t listenInterval = 0;
6178
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07006179 if (strcmp(pConfig->PowerUsageControl, "Min") == 0)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006180 listenInterval = pConfig->nBmpsMinListenInterval;
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07006181 else if (strcmp(pConfig->PowerUsageControl, "Max") == 0)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006182 listenInterval = pConfig->nBmpsMaxListenInterval;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006183
6184 /*
6185 * Based on Mode Set the LI
6186 * Otherwise default LI value of 1 will
6187 * be taken
6188 */
6189 if (listenInterval) {
6190 /*
6191 * setcfg for listenInterval.
6192 * Make sure CFG is updated because PE reads this
6193 * from CFG at the time of assoc or reassoc
6194 */
Jeff Johnson723234b2017-09-03 08:49:15 -07006195 sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_LISTEN_INTERVAL,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006196 listenInterval);
6197 }
6198
6199}
6200
Houston Hoffmanc7c69f02016-03-24 22:45:52 -07006201#ifdef FEATURE_RUNTIME_PM
Jeff Johnsonb6909be2017-08-28 12:07:19 -07006202static void hdd_cfg_print_runtime_pm(struct hdd_context *hdd_ctx)
Houston Hoffmanc7c69f02016-03-24 22:45:52 -07006203{
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006204 hdd_debug("Name = [gRuntimePM] Value = [%u] ",
Houston Hoffmanc7c69f02016-03-24 22:45:52 -07006205 hdd_ctx->config->runtime_pm);
6206
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006207 hdd_debug("Name = [gRuntimePMDelay] Value = [%u] ",
Houston Hoffmanc7c69f02016-03-24 22:45:52 -07006208 hdd_ctx->config->runtime_pm_delay);
6209}
6210#else
Jeff Johnsonb6909be2017-08-28 12:07:19 -07006211static void hdd_cfg_print_runtime_pm(struct hdd_context *hdd_ctx)
Houston Hoffmanc7c69f02016-03-24 22:45:52 -07006212{
6213}
6214#endif
6215
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006216/**
Kapil Gupta5cda2252016-12-29 18:44:26 +05306217 * hdd_per_roam_print_ini_config()- Print PER roam specific INI configuration
6218 * @hdd_ctx: handle to hdd context
6219 *
6220 * Return: None
6221 */
Jeff Johnsonb6909be2017-08-28 12:07:19 -07006222static void hdd_per_roam_print_ini_config(struct hdd_context *hdd_ctx)
Kapil Gupta5cda2252016-12-29 18:44:26 +05306223{
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006224 hdd_debug("Name = [%s] Value = [%u]",
Kapil Gupta5cda2252016-12-29 18:44:26 +05306225 CFG_PER_ROAM_ENABLE_NAME,
6226 hdd_ctx->config->is_per_roam_enabled);
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006227 hdd_debug("Name = [%s] Value = [%u]",
Kapil Gupta5cda2252016-12-29 18:44:26 +05306228 CFG_PER_ROAM_CONFIG_HIGH_RATE_TH_NAME,
6229 hdd_ctx->config->per_roam_high_rate_threshold);
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006230 hdd_debug("Name = [%s] Value = [%u]",
Kapil Gupta5cda2252016-12-29 18:44:26 +05306231 CFG_PER_ROAM_CONFIG_LOW_RATE_TH_NAME,
6232 hdd_ctx->config->per_roam_low_rate_threshold);
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006233 hdd_debug("Name = [%s] Value = [%u]",
Kapil Gupta5cda2252016-12-29 18:44:26 +05306234 CFG_PER_ROAM_CONFIG_RATE_TH_PERCENT_NAME,
6235 hdd_ctx->config->per_roam_th_percent);
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006236 hdd_debug("Name = [%s] Value = [%u]",
Kapil Gupta5cda2252016-12-29 18:44:26 +05306237 CFG_PER_ROAM_REST_TIME_NAME,
6238 hdd_ctx->config->per_roam_rest_time);
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006239 hdd_debug("Name = [%s] Value = [%u]",
Kapil Gupta957827b2017-02-13 15:47:04 +05306240 CFG_PER_ROAM_MONITOR_TIME,
6241 hdd_ctx->config->per_roam_mon_time);
Selvaraj, Sridhar0641fab2017-05-17 16:02:00 +05306242 hdd_debug("Name = [%s] Value = [%u]",
6243 CFG_PER_ROAM_MIN_CANDIDATE_RSSI,
6244 hdd_ctx->config->min_candidate_rssi);
Kapil Gupta5cda2252016-12-29 18:44:26 +05306245}
6246
Varun Reddy Yeturu5df6cc92017-09-18 11:10:33 -07006247static void hdd_mawc_cfg_log(struct hdd_context *hdd_ctx)
Varun Reddy Yeturu061d4d62017-07-20 09:39:32 -07006248{
6249 hdd_debug("Name = [MAWCEnabled] Value = [%u] ",
Varun Reddy Yeturu5df6cc92017-09-18 11:10:33 -07006250 hdd_ctx->config->MAWCEnabled);
Varun Reddy Yeturu061d4d62017-07-20 09:39:32 -07006251 hdd_debug("Name = [%s] Value = [%u] ",
6252 CFG_MAWC_ROAM_ENABLED_NAME,
Varun Reddy Yeturu5df6cc92017-09-18 11:10:33 -07006253 hdd_ctx->config->mawc_roam_enabled);
Varun Reddy Yeturu061d4d62017-07-20 09:39:32 -07006254 hdd_debug("Name = [%s] Value = [%u] ",
6255 CFG_MAWC_ROAM_TRAFFIC_THRESHOLD_NAME,
Varun Reddy Yeturu5df6cc92017-09-18 11:10:33 -07006256 hdd_ctx->config->mawc_roam_traffic_threshold);
Varun Reddy Yeturu061d4d62017-07-20 09:39:32 -07006257 hdd_debug("Name = [%s] Value = [%d] ",
6258 CFG_MAWC_ROAM_AP_RSSI_THRESHOLD_NAME,
Varun Reddy Yeturu5df6cc92017-09-18 11:10:33 -07006259 hdd_ctx->config->mawc_roam_ap_rssi_threshold);
Varun Reddy Yeturu061d4d62017-07-20 09:39:32 -07006260 hdd_debug("Name = [%s] Value = [%u] ",
6261 CFG_MAWC_ROAM_RSSI_HIGH_ADJUST_NAME,
Varun Reddy Yeturu5df6cc92017-09-18 11:10:33 -07006262 hdd_ctx->config->mawc_roam_rssi_high_adjust);
Varun Reddy Yeturu061d4d62017-07-20 09:39:32 -07006263 hdd_debug("Name = [%s] Value = [%u] ",
6264 CFG_MAWC_ROAM_RSSI_LOW_ADJUST_NAME,
Varun Reddy Yeturu5df6cc92017-09-18 11:10:33 -07006265 hdd_ctx->config->mawc_roam_rssi_low_adjust);
Varun Reddy Yeturu061d4d62017-07-20 09:39:32 -07006266}
6267
Kapil Gupta5cda2252016-12-29 18:44:26 +05306268/**
Rajeev Kumar Sirasanagandlaaec0b082017-06-21 11:59:41 +05306269 * hdd_cfg_print_ie_whitelist_attrs() - print the ie whitelist attrs
6270 * @hdd_ctx: pointer to hdd context
6271 *
6272 * Return: None
6273 */
Jeff Johnsonb6909be2017-08-28 12:07:19 -07006274static void hdd_cfg_print_ie_whitelist_attrs(struct hdd_context *hdd_ctx)
Rajeev Kumar Sirasanagandlaaec0b082017-06-21 11:59:41 +05306275{
6276 hdd_debug("Name = [%s] Value = [%x] ",
6277 CFG_PRB_REQ_IE_WHITELIST_NAME,
6278 hdd_ctx->config->probe_req_ie_whitelist);
6279 hdd_debug("Name = [%s] Value = [%x] ",
6280 CFG_PRB_REQ_IE_BIT_MAP0_NAME,
6281 hdd_ctx->config->probe_req_ie_bitmap_0);
6282 hdd_debug("Name = [%s] Value = [%x] ",
6283 CFG_PRB_REQ_IE_BIT_MAP1_NAME,
6284 hdd_ctx->config->probe_req_ie_bitmap_1);
6285 hdd_debug("Name = [%s] Value = [%x] ",
6286 CFG_PRB_REQ_IE_BIT_MAP2_NAME,
6287 hdd_ctx->config->probe_req_ie_bitmap_2);
6288 hdd_debug("Name = [%s] Value = [%x] ",
6289 CFG_PRB_REQ_IE_BIT_MAP3_NAME,
6290 hdd_ctx->config->probe_req_ie_bitmap_3);
6291 hdd_debug("Name = [%s] Value = [%x] ",
6292 CFG_PRB_REQ_IE_BIT_MAP4_NAME,
6293 hdd_ctx->config->probe_req_ie_bitmap_4);
6294 hdd_debug("Name = [%s] Value = [%x] ",
6295 CFG_PRB_REQ_IE_BIT_MAP5_NAME,
6296 hdd_ctx->config->probe_req_ie_bitmap_5);
6297 hdd_debug("Name = [%s] Value = [%x] ",
6298 CFG_PRB_REQ_IE_BIT_MAP6_NAME,
6299 hdd_ctx->config->probe_req_ie_bitmap_6);
6300 hdd_debug("Name = [%s] Value = [%x] ",
6301 CFG_PRB_REQ_IE_BIT_MAP7_NAME,
6302 hdd_ctx->config->probe_req_ie_bitmap_7);
6303 hdd_debug("Name = [%s] Value =[%s]",
6304 CFG_PROBE_REQ_OUI_NAME,
6305 hdd_ctx->config->probe_req_ouis);
6306}
6307
Paul Zhang99fe8842017-12-08 14:43:46 +08006308static void hdd_wlm_cfg_log(struct hdd_context *hdd_ctx)
6309{
6310 hdd_debug("Name = [%s] value = [%u]",
6311 CFG_LATENCY_ENABLE_NAME,
6312 hdd_ctx->config->wlm_latency_enable);
6313 hdd_debug("Name = [%s] value = [%u]",
6314 CFG_LATENCY_LEVEL_NAME,
6315 hdd_ctx->config->wlm_latency_level);
6316 hdd_debug("Name = [%s] value = [%u]",
6317 CFG_LATENCY_FLAGS_NORMAL_NAME,
6318 hdd_ctx->config->wlm_latency_flags_normal);
6319 hdd_debug("Name = [%s] value = [%u]",
6320 CFG_LATENCY_FLAGS_MODERATE_NAME,
6321 hdd_ctx->config->wlm_latency_flags_moderate);
6322 hdd_debug("Name = [%s] value = [%u]",
6323 CFG_LATENCY_FLAGS_LOW_NAME,
6324 hdd_ctx->config->wlm_latency_flags_low);
6325 hdd_debug("Name = [%s] value = [%u]",
6326 CFG_LATENCY_FLAGS_ULTRALOW_NAME,
6327 hdd_ctx->config->wlm_latency_flags_ultralow);
6328}
6329
Padma, Santhosh Kumar3e47c632017-09-01 20:15:27 +05306330#ifdef WLAN_FEATURE_SAE
6331static void hdd_cfg_print_sae(struct hdd_context *hdd_ctx)
6332{
6333 hdd_debug("Name = [%s] value = [%u]",
6334 CFG_IS_SAE_ENABLED_NAME,
6335 hdd_ctx->config->is_sae_enabled);
6336}
6337#else
6338static void hdd_cfg_print_sae(struct hdd_context *hdd_ctx)
6339{
6340}
6341#endif
6342
Rajeev Kumar Sirasanagandlaaec0b082017-06-21 11:59:41 +05306343/**
Vignesh Viswanathan694e28e2018-01-18 20:53:57 +05306344 * hdd_cgf_print_11k_offload_params() - Print 11k offload related parameters
6345 * @hdd_ctx: Pointer to HDD context
6346 *
6347 * Return: None
6348 */
6349static
6350void hdd_cfg_print_11k_offload_params(struct hdd_context *hdd_ctx)
6351{
6352 hdd_debug("Name = [%s] value = [%u]",
6353 CFG_OFFLOAD_11K_ENABLE_BITMASK_NAME,
6354 hdd_ctx->config->offload_11k_enable_bitmask);
6355 hdd_debug("Name = [%s] value = [%u]",
6356 CFG_OFFLOAD_NEIGHBOR_REPORT_PARAMS_BITMASK_NAME,
6357 hdd_ctx->config->neighbor_report_offload_params_bitmask);
6358 hdd_debug("Name = [%s] value = [%u]",
6359 CFG_OFFLOAD_NEIGHBOR_REPORT_TIME_OFFSET_NAME,
6360 hdd_ctx->config->neighbor_report_offload_time_offset);
6361 hdd_debug("Name = [%s] value = [%u]",
6362 CFG_OFFLOAD_NEIGHBOR_REPORT_LOW_RSSI_OFFSET_NAME,
6363 hdd_ctx->config->neighbor_report_offload_low_rssi_offset);
6364 hdd_debug("Name = [%s] value = [%u]",
6365 CFG_OFFLOAD_NEIGHBOR_REPORT_BMISS_COUNT_TRIGGER_NAME,
6366 hdd_ctx->config->neighbor_report_offload_bmiss_count_trigger);
6367 hdd_debug("Name = [%s] value = [%u]",
6368 CFG_OFFLOAD_NEIGHBOR_REPORT_PER_THRESHOLD_OFFSET_NAME,
6369 hdd_ctx->config->
6370 neighbor_report_offload_per_threshold_offset);
6371 hdd_debug("Name = [%s] value = [%u]",
6372 CFG_OFFLOAD_NEIGHBOR_REPORT_CACHE_TIMEOUT_NAME,
6373 hdd_ctx->config->neighbor_report_offload_cache_timeout);
6374 hdd_debug("Name = [%s] value = [%u]",
6375 CFG_OFFLOAD_NEIGHBOR_REPORT_MAX_REQ_CAP_NAME,
6376 hdd_ctx->config->neighbor_report_offload_max_req_cap);
6377}
6378
6379/**
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006380 * hdd_cfg_print() - print the hdd configuration
6381 * @iniTable: pointer to hdd context
6382 *
6383 * Return: None
6384 */
Jeff Johnson723234b2017-09-03 08:49:15 -07006385void hdd_cfg_print(struct hdd_context *hdd_ctx)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006386{
6387 int i;
6388
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006389 hdd_debug("*********Config values in HDD Adapter*******");
6390 hdd_debug("Name = [RTSThreshold] Value = %u",
Jeff Johnson723234b2017-09-03 08:49:15 -07006391 hdd_ctx->config->RTSThreshold);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006392 hdd_debug("Name = [OperatingChannel] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006393 hdd_ctx->config->OperatingChannel);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006394 hdd_debug("Name = [PowerUsageControl] Value = [%s]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006395 hdd_ctx->config->PowerUsageControl);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006396 hdd_debug("Name = [fIsImpsEnabled] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006397 hdd_ctx->config->fIsImpsEnabled);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006398 hdd_debug("Name = [nVccRssiTrigger] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006399 hdd_ctx->config->nVccRssiTrigger);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006400 hdd_debug("Name = [gIbssBssid] Value =[" MAC_ADDRESS_STR "]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006401 MAC_ADDR_ARRAY(hdd_ctx->config->IbssBssid.bytes));
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006402
Anurag Chouhan6d760662016-02-20 16:05:43 +05306403 for (i = 0; i < QDF_MAX_CONCURRENCY_PERSONA; i++) {
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006404 hdd_debug("Name = [Intf%dMacAddress] Value =[" MAC_ADDRESS_STR "]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006405 i, MAC_ADDR_ARRAY(hdd_ctx->config->intfMacAddr[i].bytes));
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006406 }
6407
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006408 hdd_debug("Name = [gApEnableUapsd] value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006409 hdd_ctx->config->apUapsdEnabled);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006410
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006411 hdd_debug("Name = [gEnableApProt] value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006412 hdd_ctx->config->apProtEnabled);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006413#ifdef FEATURE_WLAN_MCC_TO_SCC_SWITCH
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006414 hdd_debug("Name = [gWlanMccToSccSwitchMode] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006415 hdd_ctx->config->WlanMccToSccSwitchMode);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006416#endif
6417#ifdef FEATURE_WLAN_AUTO_SHUTDOWN
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006418 hdd_debug("Name = [gWlanAutoShutdown] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006419 hdd_ctx->config->WlanAutoShutdown);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006420#endif
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006421 hdd_debug("Name = [gApProtection] value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006422 hdd_ctx->config->apProtection);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006423 hdd_debug("Name = [gEnableApOBSSProt] value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006424 hdd_ctx->config->apOBSSProtEnabled);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006425 hdd_debug("Name = [%s] value = [%u]", CFG_FORCE_SAP_ACS,
Jeff Johnson723234b2017-09-03 08:49:15 -07006426 hdd_ctx->config->force_sap_acs);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006427 hdd_debug("Name = [%s] value = [%u]", CFG_FORCE_SAP_ACS_START_CH,
Jeff Johnson723234b2017-09-03 08:49:15 -07006428 hdd_ctx->config->force_sap_acs_st_ch);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006429 hdd_debug("Name = [%s] value = [%u]", CFG_FORCE_SAP_ACS_END_CH,
Jeff Johnson723234b2017-09-03 08:49:15 -07006430 hdd_ctx->config->force_sap_acs_end_ch);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006431#ifdef FEATURE_AP_MCC_CH_AVOIDANCE
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006432 hdd_debug("Name = [sap_channel_avoidance] value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006433 hdd_ctx->config->sap_channel_avoidance);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006434#endif /* FEATURE_AP_MCC_CH_AVOIDANCE */
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006435 hdd_debug("Name = [%s] value = [%u]", CFG_SAP_P2P_11AC_OVERRIDE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006436 hdd_ctx->config->sap_p2p_11ac_override);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006437 hdd_debug("Name = [ChannelBondingMode] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006438 hdd_ctx->config->nChannelBondingMode24GHz);
Abhishek Singhb59f8d42017-07-31 14:42:47 +05306439 hdd_debug("Name = [%s] Value = [%u] ",
6440 CFG_OVERRIDE_HT40_20_24GHZ_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006441 hdd_ctx->config->override_ht20_40_24g);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006442 hdd_debug("Name = [ChannelBondingMode] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006443 hdd_ctx->config->nChannelBondingMode5GHz);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006444 hdd_debug("Name = [dot11Mode] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006445 hdd_ctx->config->dot11Mode);
6446 hdd_debug("Name = [WmmMode] Value = [%u] ", hdd_ctx->config->WmmMode);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006447 hdd_debug("Name = [UapsdMask] Value = [0x%x] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006448 hdd_ctx->config->UapsdMask);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006449 hdd_debug("Name = [ImplicitQosIsEnabled] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006450 (int)hdd_ctx->config->bImplicitQosEnabled);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006451
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006452 hdd_debug("Name = [InfraUapsdVoSrvIntv] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006453 hdd_ctx->config->InfraUapsdVoSrvIntv);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006454 hdd_debug("Name = [InfraUapsdVoSuspIntv] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006455 hdd_ctx->config->InfraUapsdVoSuspIntv);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006456
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006457 hdd_debug("Name = [InfraUapsdViSrvIntv] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006458 hdd_ctx->config->InfraUapsdViSrvIntv);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006459 hdd_debug("Name = [InfraUapsdViSuspIntv] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006460 hdd_ctx->config->InfraUapsdViSuspIntv);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006461
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006462 hdd_debug("Name = [InfraUapsdBeSrvIntv] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006463 hdd_ctx->config->InfraUapsdBeSrvIntv);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006464 hdd_debug("Name = [InfraUapsdBeSuspIntv] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006465 hdd_ctx->config->InfraUapsdBeSuspIntv);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006466
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006467 hdd_debug("Name = [InfraUapsdBkSrvIntv] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006468 hdd_ctx->config->InfraUapsdBkSrvIntv);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006469 hdd_debug("Name = [InfraUapsdBkSuspIntv] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006470 hdd_ctx->config->InfraUapsdBkSuspIntv);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006471#ifdef FEATURE_WLAN_ESE
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006472 hdd_debug("Name = [InfraInactivityInterval] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006473 hdd_ctx->config->InfraInactivityInterval);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006474 hdd_debug("Name = [EseEnabled] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006475 hdd_ctx->config->isEseIniFeatureEnabled);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006476 hdd_debug("Name = [FastTransitionEnabled] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006477 hdd_ctx->config->isFastTransitionEnabled);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006478 hdd_debug("Name = [gTxPowerCap] Value = [%u] dBm ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006479 hdd_ctx->config->nTxPowerCap);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006480#endif
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006481 hdd_debug("Name = [gAllowTPCfromAP] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006482 hdd_ctx->config->allow_tpc_from_ap);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006483 hdd_debug("Name = [FastRoamEnabled] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006484 hdd_ctx->config->isFastRoamIniFeatureEnabled);
Varun Reddy Yeturu061d4d62017-07-20 09:39:32 -07006485 hdd_mawc_cfg_log(hdd_ctx);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006486 hdd_debug("Name = [RoamRssiDiff] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006487 hdd_ctx->config->RoamRssiDiff);
Abhishek Singh34c0e632017-09-28 14:39:29 +05306488 hdd_debug("Name = [%s] Value = [%u] ", CFG_ROAM_RSSI_ABS_THRESHOLD_NAME,
6489 hdd_ctx->config->rssi_abs_thresh);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006490 hdd_debug("Name = [isWESModeEnabled] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006491 hdd_ctx->config->isWESModeEnabled);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006492 hdd_debug("Name = [pmkidModes] Value = [0x%x] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006493 hdd_ctx->config->pmkid_modes);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006494#ifdef FEATURE_WLAN_SCAN_PNO
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006495 hdd_debug("Name = [configPNOScanSupport] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006496 hdd_ctx->config->configPNOScanSupport);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006497 hdd_debug("Name = [configPNOScanTimerRepeatValue] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006498 hdd_ctx->config->configPNOScanTimerRepeatValue);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006499 hdd_debug("Name = [gPNOSlowScanMultiplier] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006500 hdd_ctx->config->pno_slow_scan_multiplier);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006501#endif
6502#ifdef FEATURE_WLAN_TDLS
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006503 hdd_debug("Name = [fEnableTDLSSupport] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006504 hdd_ctx->config->fEnableTDLSSupport);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006505 hdd_debug("Name = [fEnableTDLSImplicitTrigger] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006506 hdd_ctx->config->fEnableTDLSImplicitTrigger);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006507 hdd_debug("Name = [fTDLSExternalControl] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006508 hdd_ctx->config->fTDLSExternalControl);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006509 hdd_debug("Name = [fTDLSUapsdMask] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006510 hdd_ctx->config->fTDLSUapsdMask);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006511 hdd_debug("Name = [fEnableTDLSBufferSta] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006512 hdd_ctx->config->fEnableTDLSBufferSta);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006513 hdd_debug("Name = [fEnableTDLSWmmMode] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006514 hdd_ctx->config->fEnableTDLSWmmMode);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006515 hdd_debug("Name = [enable_tdls_scan] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006516 hdd_ctx->config->enable_tdls_scan);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006517#endif
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006518 hdd_debug("Name = [InfraDirAcVo] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006519 hdd_ctx->config->InfraDirAcVo);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006520 hdd_debug("Name = [InfraNomMsduSizeAcVo] Value = [0x%x] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006521 hdd_ctx->config->InfraNomMsduSizeAcVo);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006522 hdd_debug("Name = [InfraMeanDataRateAcVo] Value = [0x%x] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006523 hdd_ctx->config->InfraMeanDataRateAcVo);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006524 hdd_debug("Name = [InfraMinPhyRateAcVo] Value = [0x%x] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006525 hdd_ctx->config->InfraMinPhyRateAcVo);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006526 hdd_debug("Name = [InfraSbaAcVo] Value = [0x%x] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006527 hdd_ctx->config->InfraSbaAcVo);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006528
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006529 hdd_debug("Name = [InfraDirAcVi] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006530 hdd_ctx->config->InfraDirAcVi);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006531 hdd_debug("Name = [InfraNomMsduSizeAcVi] Value = [0x%x] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006532 hdd_ctx->config->InfraNomMsduSizeAcVi);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006533 hdd_debug("Name = [InfraMeanDataRateAcVi] Value = [0x%x] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006534 hdd_ctx->config->InfraMeanDataRateAcVi);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006535 hdd_debug("Name = [InfraMinPhyRateAcVi] Value = [0x%x] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006536 hdd_ctx->config->InfraMinPhyRateAcVi);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006537 hdd_debug("Name = [InfraSbaAcVi] Value = [0x%x] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006538 hdd_ctx->config->InfraSbaAcVi);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006539
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006540 hdd_debug("Name = [InfraDirAcBe] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006541 hdd_ctx->config->InfraDirAcBe);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006542 hdd_debug("Name = [InfraNomMsduSizeAcBe] Value = [0x%x] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006543 hdd_ctx->config->InfraNomMsduSizeAcBe);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006544 hdd_debug("Name = [InfraMeanDataRateAcBe] Value = [0x%x] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006545 hdd_ctx->config->InfraMeanDataRateAcBe);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006546 hdd_debug("Name = [InfraMinPhyRateAcBe] Value = [0x%x] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006547 hdd_ctx->config->InfraMinPhyRateAcBe);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006548 hdd_debug("Name = [InfraSbaAcBe] Value = [0x%x] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006549 hdd_ctx->config->InfraSbaAcBe);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006550
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006551 hdd_debug("Name = [InfraDirAcBk] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006552 hdd_ctx->config->InfraDirAcBk);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006553 hdd_debug("Name = [InfraNomMsduSizeAcBk] Value = [0x%x] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006554 hdd_ctx->config->InfraNomMsduSizeAcBk);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006555 hdd_debug("Name = [InfraMeanDataRateAcBk] Value = [0x%x] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006556 hdd_ctx->config->InfraMeanDataRateAcBk);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006557 hdd_debug("Name = [InfraMinPhyRateAcBk] Value = [0x%x] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006558 hdd_ctx->config->InfraMinPhyRateAcBk);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006559 hdd_debug("Name = [InfraSbaAcBk] Value = [0x%x] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006560 hdd_ctx->config->InfraSbaAcBk);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006561
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006562 hdd_debug("Name = [DelayedTriggerFrmInt] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006563 hdd_ctx->config->DelayedTriggerFrmInt);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006564 hdd_debug("Name = [fhostArpOffload] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006565 hdd_ctx->config->fhostArpOffload);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006566 hdd_debug("Name = [%s] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006567 CFG_HW_FILTER_MODE_NAME, hdd_ctx->config->hw_filter_mode);
Varun Reddy Yeturubba32e92017-09-06 13:31:40 -07006568 hdd_debug("Name = [%s] Value = [%u]",
6569 CFG_MAWC_NLO_ENABLED_NAME,
6570 hdd_ctx->config->mawc_nlo_enabled);
6571 hdd_debug("Name = [%s] Value = [%u]",
6572 CFG_MAWC_NLO_EXP_BACKOFF_RATIO_NAME,
6573 hdd_ctx->config->mawc_nlo_exp_backoff_ratio);
6574 hdd_debug("Name = [%s] Value = [%u]",
6575 CFG_MAWC_NLO_INIT_SCAN_INTERVAL_NAME,
6576 hdd_ctx->config->mawc_nlo_init_scan_interval);
6577 hdd_debug("Name = [%s] Value = [%u]",
6578 CFG_MAWC_NLO_MAX_SCAN_INTERVAL_NAME,
6579 hdd_ctx->config->mawc_nlo_max_scan_interval);
Jeff Johnson723234b2017-09-03 08:49:15 -07006580 hdd_debug("Name = [ssdp] Value = [%u] ", hdd_ctx->config->ssdp);
6581 hdd_cfg_print_runtime_pm(hdd_ctx);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006582#ifdef FEATURE_WLAN_RA_FILTERING
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006583 hdd_debug("Name = [RArateLimitInterval] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006584 hdd_ctx->config->RArateLimitInterval);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006585 hdd_debug("Name = [IsRArateLimitEnabled] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006586 hdd_ctx->config->IsRArateLimitEnabled);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006587#endif
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006588 hdd_debug("Name = [nNeighborLookupRssiThreshold] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006589 hdd_ctx->config->nNeighborLookupRssiThreshold);
Varun Reddy Yeturu168134f2017-06-26 13:46:05 -07006590 hdd_debug("Name = [%s] Value = [%d] ",
6591 CFG_5G_RSSI_THRESHOLD_OFFSET_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006592 hdd_ctx->config->rssi_thresh_offset_5g);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006593 hdd_debug("Name = [delay_before_vdev_stop] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006594 hdd_ctx->config->delay_before_vdev_stop);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006595 hdd_debug("Name = [nOpportunisticThresholdDiff] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006596 hdd_ctx->config->nOpportunisticThresholdDiff);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006597 hdd_debug("Name = [nRoamRescanRssiDiff] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006598 hdd_ctx->config->nRoamRescanRssiDiff);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006599 hdd_debug("Name = [nNeighborScanMinChanTime] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006600 hdd_ctx->config->nNeighborScanMinChanTime);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006601 hdd_debug("Name = [nNeighborScanMaxChanTime] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006602 hdd_ctx->config->nNeighborScanMaxChanTime);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006603 hdd_debug("Name = [nMaxNeighborRetries] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006604 hdd_ctx->config->nMaxNeighborReqTries);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006605 hdd_debug("Name = [nNeighborScanPeriod] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006606 hdd_ctx->config->nNeighborScanPeriod);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006607 hdd_debug("Name = [n_neighbor_scan_min_period] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006608 hdd_ctx->config->neighbor_scan_min_period);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006609 hdd_debug("Name = [nNeighborScanResultsRefreshPeriod] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006610 hdd_ctx->config->nNeighborResultsRefreshPeriod);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006611 hdd_debug("Name = [nEmptyScanRefreshPeriod] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006612 hdd_ctx->config->nEmptyScanRefreshPeriod);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006613 hdd_debug("Name = [nRoamBmissFirstBcnt] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006614 hdd_ctx->config->nRoamBmissFirstBcnt);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006615 hdd_debug("Name = [nRoamBmissFinalBcnt] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006616 hdd_ctx->config->nRoamBmissFinalBcnt);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006617 hdd_debug("Name = [nRoamBeaconRssiWeight] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006618 hdd_ctx->config->nRoamBeaconRssiWeight);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006619 hdd_debug("Name = [allowDFSChannelRoam] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006620 hdd_ctx->config->allowDFSChannelRoam);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006621 hdd_debug("Name = [nhi_rssi_scan_max_count] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006622 hdd_ctx->config->nhi_rssi_scan_max_count);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006623 hdd_debug("Name = [nhi_rssi_scan_rssi_delta] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006624 hdd_ctx->config->nhi_rssi_scan_rssi_delta);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006625 hdd_debug("Name = [nhi_rssi_scan_delay] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006626 hdd_ctx->config->nhi_rssi_scan_delay);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006627 hdd_debug("Name = [nhi_rssi_scan_rssi_ub] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006628 hdd_ctx->config->nhi_rssi_scan_rssi_ub);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006629 hdd_debug("Name = [burstSizeDefinition] Value = [0x%x] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006630 hdd_ctx->config->burstSizeDefinition);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006631 hdd_debug("Name = [tsInfoAckPolicy] Value = [0x%x] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006632 hdd_ctx->config->tsInfoAckPolicy);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006633 hdd_debug("Name = [bSingleTidRc] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006634 hdd_ctx->config->bSingleTidRc);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006635 hdd_debug("Name = [gAddTSWhenACMIsOff] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006636 hdd_ctx->config->AddTSWhenACMIsOff);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006637 hdd_debug("Name = [gStaKeepAlivePeriod] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006638 hdd_ctx->config->infraStaKeepAlivePeriod);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006639 hdd_debug("Name = [BandCapability] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006640 hdd_ctx->config->nBandCapability);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006641 hdd_debug("Name = [teleBcnWakeupEnable] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006642 hdd_ctx->config->teleBcnWakeupEn);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006643 hdd_debug("Name = [maxListenInterval] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006644 hdd_ctx->config->nTeleBcnMaxListenInterval);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006645 hdd_debug("Name = [gEnableBypass11d] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006646 hdd_ctx->config->enableBypass11d);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006647 hdd_debug("Name = [gEnableDFSChnlScan] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006648 hdd_ctx->config->enableDFSChnlScan);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006649 hdd_debug("Name = [gEnableDFSPnoChnlScan] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006650 hdd_ctx->config->enable_dfs_pno_chnl_scan);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006651 hdd_debug("Name = [gReportMaxLinkSpeed] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006652 hdd_ctx->config->reportMaxLinkSpeed);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006653 hdd_debug("Name = [thermalMitigationEnable] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006654 hdd_ctx->config->thermalMitigationEnable);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006655 hdd_debug("Name = [gVhtChannelWidth] value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006656 hdd_ctx->config->vhtChannelWidth);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006657 hdd_debug("Name = [enableFirstScan2GOnly] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006658 hdd_ctx->config->enableFirstScan2GOnly);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006659 hdd_debug("Name = [skipDfsChnlInP2pSearch] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006660 hdd_ctx->config->skipDfsChnlInP2pSearch);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006661 hdd_debug("Name = [ignoreDynamicDtimInP2pMode] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006662 hdd_ctx->config->ignoreDynamicDtimInP2pMode);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006663 hdd_debug("Name = [enableRxSTBC] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006664 hdd_ctx->config->enableRxSTBC);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006665 hdd_debug("Name = [gEnableSSR] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006666 hdd_ctx->config->enableSSR);
Poddar, Siddarth37033032017-10-11 15:47:40 +05306667 hdd_debug("Name = [gEnableDataStallDetection] Value = [%u] ",
6668 hdd_ctx->config->enable_data_stall_det);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006669 hdd_debug("Name = [gEnableVhtFor24GHzBand] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006670 hdd_ctx->config->enableVhtFor24GHzBand);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006671 hdd_debug("Name = [gGoLinkMonitorPeriod] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006672 hdd_ctx->config->goLinkMonitorPeriod);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006673 hdd_debug("Name = [gApLinkMonitorPeriod] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006674 hdd_ctx->config->apLinkMonitorPeriod);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006675 hdd_debug("Name = [gGoKeepAlivePeriod] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006676 hdd_ctx->config->goKeepAlivePeriod);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006677 hdd_debug("Name = [gApKeepAlivePeriod]Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006678 hdd_ctx->config->apKeepAlivePeriod);
Deepak Dhamdhere612392c2016-08-28 02:56:51 -07006679 hdd_debug("Name = [max_amsdu_num] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006680 hdd_ctx->config->max_amsdu_num);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006681 hdd_debug("Name = [nSelect5GHzMargin] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006682 hdd_ctx->config->nSelect5GHzMargin);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006683 hdd_debug("Name = [gCoalesingInIBSS] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006684 hdd_ctx->config->isCoalesingInIBSSAllowed);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006685 hdd_debug("Name = [gIbssATIMWinSize] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006686 hdd_ctx->config->ibssATIMWinSize);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006687 hdd_debug("Name = [gIbssIsPowerSaveAllowed] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006688 hdd_ctx->config->isIbssPowerSaveAllowed);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006689 hdd_debug("Name = [gIbssIsPowerCollapseAllowed] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006690 hdd_ctx->config->isIbssPowerCollapseAllowed);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006691 hdd_debug("Name = [gIbssAwakeOnTxRx] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006692 hdd_ctx->config->isIbssAwakeOnTxRx);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006693 hdd_debug("Name = [gIbssInactivityTime] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006694 hdd_ctx->config->ibssInactivityCount);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006695 hdd_debug("Name = [gIbssTxSpEndInactivityTime] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006696 hdd_ctx->config->ibssTxSpEndInactivityTime);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006697 hdd_debug("Name = [gIbssPsWarmupTime] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006698 hdd_ctx->config->ibssPsWarmupTime);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006699 hdd_debug("Name = [gIbssPs1RxChainInAtim] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006700 hdd_ctx->config->ibssPs1RxChainInAtimEnable);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006701 hdd_debug("Name = [fDfsPhyerrFilterOffload] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006702 hdd_ctx->config->fDfsPhyerrFilterOffload);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006703 hdd_debug("Name = [gIgnorePeerErpInfo] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006704 hdd_ctx->config->ignore_peer_erp_info);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006705#ifdef IPA_OFFLOAD
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006706 hdd_debug("Name = [gIPAConfig] Value = [0x%x] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006707 hdd_ctx->config->IpaConfig);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006708 hdd_debug("Name = [gIPADescSize] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006709 hdd_ctx->config->IpaDescSize);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006710 hdd_debug("Name = [IpaHighBandwidthMbpsg] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006711 hdd_ctx->config->IpaHighBandwidthMbps);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006712 hdd_debug("Name = [IpaMediumBandwidthMbps] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006713 hdd_ctx->config->IpaMediumBandwidthMbps);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006714 hdd_debug("Name = [IpaLowBandwidthMbps] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006715 hdd_ctx->config->IpaLowBandwidthMbps);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006716#endif
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006717 hdd_debug("Name = [gEnableOverLapCh] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006718 hdd_ctx->config->gEnableOverLapCh);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006719 hdd_debug("Name = [gMaxOffloadPeers] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006720 hdd_ctx->config->apMaxOffloadPeers);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006721 hdd_debug("Name = [gMaxOffloadReorderBuffs] value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006722 hdd_ctx->config->apMaxOffloadReorderBuffs);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006723 hdd_debug("Name = [%s] Value = [%d]",
Dustin Brown732ab9c2017-06-15 13:24:09 -07006724 CFG_ENABLE_CCK_TX_FIR_OVERRIDE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006725 hdd_ctx->config->enable_cck_tx_fir_override);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006726 hdd_debug("Name = [gAllowDFSChannelRoam] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006727 hdd_ctx->config->allowDFSChannelRoam);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006728 hdd_debug("Name = [gMaxConcurrentActiveSessions] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006729 hdd_ctx->config->gMaxConcurrentActiveSessions);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006730
6731#ifdef MSM_PLATFORM
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006732 hdd_debug("Name = [gBusBandwidthHighThreshold] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006733 hdd_ctx->config->busBandwidthHighThreshold);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006734 hdd_debug("Name = [gBusBandwidthMediumThreshold] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006735 hdd_ctx->config->busBandwidthMediumThreshold);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006736 hdd_debug("Name = [gBusBandwidthLowThreshold] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006737 hdd_ctx->config->busBandwidthLowThreshold);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006738 hdd_debug("Name = [gbusBandwidthComputeInterval] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006739 hdd_ctx->config->busBandwidthComputeInterval);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006740 hdd_debug("Name = [%s] Value = [%u] ",
Prakash Manjunathappae73e3b52018-02-27 18:56:22 -08006741 CFG_ENABLE_TCP_LIMIT_OUTPUT,
6742 hdd_ctx->config->enable_tcp_limit_output);
6743 hdd_debug("Name = [%s] Value = [%u] ",
Mohit Khanna6272fb682017-04-13 09:34:36 -07006744 CFG_ENABLE_TCP_ADV_WIN_SCALE,
6745 hdd_ctx->config->enable_tcp_adv_win_scale);
6746 hdd_debug("Name = [%s] Value = [%u] ",
Ravi Joshie2331e82015-07-01 18:18:54 -07006747 CFG_ENABLE_TCP_DELACK,
Jeff Johnson723234b2017-09-03 08:49:15 -07006748 hdd_ctx->config->enable_tcp_delack);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006749 hdd_debug("Name = [gTcpDelAckThresholdHigh] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006750 hdd_ctx->config->tcpDelackThresholdHigh);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006751 hdd_debug("Name = [gTcpDelAckThresholdLow] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006752 hdd_ctx->config->tcpDelackThresholdLow);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006753 hdd_debug("Name = [%s] Value = [%u] ",
Ravi Joshib89e7f72016-09-07 13:43:15 -07006754 CFG_TCP_DELACK_TIMER_COUNT,
Jeff Johnson723234b2017-09-03 08:49:15 -07006755 hdd_ctx->config->tcp_delack_timer_count);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006756 hdd_debug("Name = [%s] Value = [%u] ",
Ravi Joshib89e7f72016-09-07 13:43:15 -07006757 CFG_TCP_TX_HIGH_TPUT_THRESHOLD_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006758 hdd_ctx->config->tcp_tx_high_tput_thres);
Mohit Khannaca4173b2017-09-12 21:52:19 -07006759 hdd_debug("Name = [%s] Value = [%u] ",
6760 CFG_PERIODIC_STATS_DISPLAY_TIME_NAME,
6761 hdd_ctx->config->periodic_stats_disp_time);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006762#endif
6763
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006764 hdd_debug("Name = [gIgnoreCAC] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006765 hdd_ctx->config->ignoreCAC);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006766 hdd_debug("Name = [gSapPreferredChanLocation] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006767 hdd_ctx->config->gSapPreferredChanLocation);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006768 hdd_debug("Name = [gDisableDfsJapanW53] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006769 hdd_ctx->config->gDisableDfsJapanW53);
Jeff Johnsonc57c13a2018-04-01 11:03:29 -07006770
6771 hdd_green_ap_print_config(hdd_ctx);
6772
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006773#ifdef WLAN_FEATURE_ROAM_OFFLOAD
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006774 hdd_debug("Name = [isRoamOffloadEnabled] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006775 hdd_ctx->config->isRoamOffloadEnabled);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006776#endif
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006777 hdd_debug("Name = [gEnableSifsBurst] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006778 hdd_ctx->config->enableSifsBurst);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006779
6780#ifdef WLAN_FEATURE_LPSS
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006781 hdd_debug("Name = [gEnableLpassSupport] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006782 hdd_ctx->config->enable_lpass_support);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006783#endif
6784
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006785 hdd_debug("Name = [gEnableSelfRecovery] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006786 hdd_ctx->config->enableSelfRecovery);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006787
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006788 hdd_debug("Name = [gEnableSapSuspend] Value = [%u]",
Jeff Johnson60cbd2d2017-11-03 18:26:28 -07006789 hdd_ctx->config->enable_sap_suspend);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006790
6791#ifdef WLAN_FEATURE_EXTWOW_SUPPORT
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006792 hdd_debug("Name = [gExtWoWgotoSuspend] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006793 hdd_ctx->config->extWowGotoSuspend);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006794
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006795 hdd_debug("Name = [gExtWowApp1WakeupPinNumber] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006796 hdd_ctx->config->extWowApp1WakeupPinNumber);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006797
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006798 hdd_debug("Name = [gExtWowApp2WakeupPinNumber] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006799 hdd_ctx->config->extWowApp2WakeupPinNumber);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006800
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006801 hdd_debug("Name = [gExtWoWApp2KAInitPingInterval] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006802 hdd_ctx->config->extWowApp2KAInitPingInterval);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006803
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006804 hdd_debug("Name = [gExtWoWApp2KAMinPingInterval] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006805 hdd_ctx->config->extWowApp2KAMinPingInterval);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006806
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006807 hdd_debug("Name = [gExtWoWApp2KAMaxPingInterval] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006808 hdd_ctx->config->extWowApp2KAMaxPingInterval);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006809
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006810 hdd_debug("Name = [gExtWoWApp2KAIncPingInterval] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006811 hdd_ctx->config->extWowApp2KAIncPingInterval);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006812
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006813 hdd_debug("Name = [gExtWoWApp2TcpSrcPort] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006814 hdd_ctx->config->extWowApp2TcpSrcPort);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006815
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006816 hdd_debug("Name = [gExtWoWApp2TcpDstPort] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006817 hdd_ctx->config->extWowApp2TcpDstPort);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006818
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006819 hdd_debug("Name = [gExtWoWApp2TcpTxTimeout] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006820 hdd_ctx->config->extWowApp2TcpTxTimeout);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006821
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006822 hdd_debug("Name = [gExtWoWApp2TcpRxTimeout] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006823 hdd_ctx->config->extWowApp2TcpRxTimeout);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006824#endif
6825
6826#ifdef DHCP_SERVER_OFFLOAD
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006827 hdd_debug("Name = [gDHCPServerOffloadEnable] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006828 hdd_ctx->config->enableDHCPServerOffload);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006829 hdd_debug("Name = [gDHCPMaxNumClients] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006830 hdd_ctx->config->dhcpMaxNumClients);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006831 hdd_debug("Name = [gDHCPServerIP] Value = [%s]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006832 hdd_ctx->config->dhcpServerIP);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006833#endif
6834
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006835 hdd_debug("Name = [gEnableDumpCollect] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006836 hdd_ctx->config->is_ramdump_enabled);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006837
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006838 hdd_debug("Name = [gP2PListenDeferInterval] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006839 hdd_ctx->config->p2p_listen_defer_interval);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006840 hdd_debug("Name = [is_ps_enabled] value = [%d]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006841 hdd_ctx->config->is_ps_enabled);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006842 hdd_debug("Name = [tso_enable] value = [%d]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006843 hdd_ctx->config->tso_enable);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006844 hdd_debug("Name = [LROEnable] value = [%d]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006845 hdd_ctx->config->lro_enable);
Orhan K AKYILDIZ30e8cbc2017-08-11 18:00:28 -07006846 hdd_debug("Name = [%s] value = [%d]",
6847 CFG_MAX_MSDUS_PER_RXIND_NAME,
6848 hdd_ctx->config->max_msdus_per_rxinorderind);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006849 hdd_debug("Name = [active_mode_offload] value = [%d]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006850 hdd_ctx->config->active_mode_offload);
Venkata Sharath Chandra Manchala4aaae0f2017-07-10 11:59:19 -07006851 hdd_debug("Name = [gEnableNAPI] value = [%d]",
6852 hdd_ctx->napi_enable);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006853 hdd_debug("Name = [gfine_time_meas_cap] value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006854 hdd_ctx->config->fine_time_meas_cap);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006855#ifdef WLAN_FEATURE_FASTPATH
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006856 hdd_debug("Name = [fastpath_enable] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006857 hdd_ctx->config->fastpath_enable);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006858#endif
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006859 hdd_debug("Name = [max_scan_count] value = [%d]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006860 hdd_ctx->config->max_scan_count);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006861 hdd_debug("Name = [%s] value = [%d]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006862 CFG_RX_MODE_NAME, hdd_ctx->config->rx_mode);
Himanshu Agarwal24aa27e2017-05-23 11:07:50 +05306863 hdd_debug("Name = [%s] value = [%d]",
6864 CFG_CE_SERVICE_MAX_YIELD_TIME_NAME,
6865 hdd_ctx->config->ce_service_max_yield_time);
Poddar, Siddarth04eed332017-06-28 14:20:26 +05306866 hdd_debug("Name = [%s] value = [%d]",
6867 CFG_CE_SERVICE_MAX_RX_IND_FLUSH_NAME,
6868 hdd_ctx->config->ce_service_max_rx_ind_flush);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006869 hdd_debug("Name = [%s] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006870 CFG_CE_CLASSIFY_ENABLE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006871 hdd_ctx->config->ce_classify_enabled);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006872 hdd_debug("Name = [%s] value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006873 CFG_DUAL_MAC_FEATURE_DISABLE,
Jeff Johnson723234b2017-09-03 08:49:15 -07006874 hdd_ctx->config->dual_mac_feature_disable);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006875 hdd_debug("Name = [%s] Value = [%s]",
Nitesh Shah50a3de12017-04-03 19:37:19 +05306876 CFG_DBS_SCAN_SELECTION_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006877 hdd_ctx->config->dbs_scan_selection);
Ganesh Kondabattini930304c2017-10-10 15:25:36 +05306878 hdd_debug("Name = [%s] value = [%u]",
6879 CFG_STA_SAP_SCC_ON_DFS_CHAN,
6880 hdd_ctx->config->sta_sap_scc_on_dfs_chan);
Varun Reddy Yeturub43fda12015-09-10 18:16:21 -07006881#ifdef FEATURE_WLAN_SCAN_PNO
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006882 hdd_debug("Name = [%s] Value = [%u]",
Archana Ramachandrane87005c2016-08-23 16:57:30 -07006883 CFG_PNO_CHANNEL_PREDICTION_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006884 hdd_ctx->config->pno_channel_prediction);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006885 hdd_debug("Name = [%s] Value = [%u]",
Archana Ramachandrane87005c2016-08-23 16:57:30 -07006886 CFG_TOP_K_NUM_OF_CHANNELS_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006887 hdd_ctx->config->top_k_num_of_channels);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006888 hdd_debug("Name = [%s] Value = [%u]",
Archana Ramachandrane87005c2016-08-23 16:57:30 -07006889 CFG_STATIONARY_THRESHOLD_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006890 hdd_ctx->config->stationary_thresh);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006891 hdd_debug("Name = [%s] Value = [%u]",
Archana Ramachandrane87005c2016-08-23 16:57:30 -07006892 CFG_CHANNEL_PREDICTION_FULL_SCAN_MS_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006893 hdd_ctx->config->channel_prediction_full_scan);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006894 hdd_debug("Name = [%s] Value = [%u]",
Archana Ramachandrane87005c2016-08-23 16:57:30 -07006895 CFG_ADAPTIVE_PNOSCAN_DWELL_MODE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006896 hdd_ctx->config->pnoscan_adaptive_dwell_mode);
Varun Reddy Yeturub43fda12015-09-10 18:16:21 -07006897#endif
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006898 hdd_debug("Name = [%s] Value = [%d]",
Archana Ramachandrane87005c2016-08-23 16:57:30 -07006899 CFG_EARLY_STOP_SCAN_ENABLE,
Jeff Johnson723234b2017-09-03 08:49:15 -07006900 hdd_ctx->config->early_stop_scan_enable);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006901 hdd_debug("Name = [%s] Value = [%d]",
Archana Ramachandrane87005c2016-08-23 16:57:30 -07006902 CFG_EARLY_STOP_SCAN_MIN_THRESHOLD,
Jeff Johnson723234b2017-09-03 08:49:15 -07006903 hdd_ctx->config->early_stop_scan_min_threshold);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006904 hdd_debug("Name = [%s] Value = [%d]",
Archana Ramachandrane87005c2016-08-23 16:57:30 -07006905 CFG_EARLY_STOP_SCAN_MAX_THRESHOLD,
Jeff Johnson723234b2017-09-03 08:49:15 -07006906 hdd_ctx->config->early_stop_scan_max_threshold);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006907 hdd_debug("Name = [%s] Value = [%d]",
Archana Ramachandrane87005c2016-08-23 16:57:30 -07006908 CFG_FIRST_SCAN_BUCKET_THRESHOLD_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006909 hdd_ctx->config->first_scan_bucket_threshold);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006910 hdd_debug("Name = [%s] Value = [%u]",
Archana Ramachandrane87005c2016-08-23 16:57:30 -07006911 CFG_HT_MPDU_DENSITY_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006912 hdd_ctx->config->ht_mpdu_density);
Mukul Sharmaecf8e092017-12-19 22:36:31 +05306913 hdd_debug("Name = [%s] value = [%d]",
6914 CFG_MARK_INDOOR_AS_DISABLE_NAME,
6915 hdd_ctx->config->force_ssc_disable_indoor_channel);
Ravi Joshi742495d2015-11-09 18:56:53 -08006916
6917#ifdef FEATURE_LFR_SUBNET_DETECTION
Dustin Brown5e89ef82018-03-14 11:50:23 -07006918 hdd_debug("Name = [%s] Value = [%d]",
6919 CFG_ENABLE_LFR_SUBNET_DETECTION,
6920 hdd_ctx->config->enable_lfr_subnet_detection);
Ravi Joshi742495d2015-11-09 18:56:53 -08006921#endif
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006922 hdd_debug("Name = [%s] Value = [%u]",
Gupta, Kapilc68ad462016-02-01 19:17:23 +05306923 CFG_ROAM_DENSE_TRAFFIC_THRESHOLD,
Jeff Johnson723234b2017-09-03 08:49:15 -07006924 hdd_ctx->config->roam_dense_traffic_thresh);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006925 hdd_debug("Name = [%s] Value = [%u]",
Gupta, Kapilc68ad462016-02-01 19:17:23 +05306926 CFG_ROAM_DENSE_RSSI_THRE_OFFSET,
Jeff Johnson723234b2017-09-03 08:49:15 -07006927 hdd_ctx->config->roam_dense_rssi_thresh_offset);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006928 hdd_debug("Name = [%s] Value = [%u]",
Abhishek Singh165bc602016-03-21 12:43:00 +05306929 CFG_IGNORE_PEER_HT_MODE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006930 hdd_ctx->config->ignore_peer_ht_opmode);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006931 hdd_debug("Name = [%s] Value = [%u]",
Kapil Gupta4b2efbb2016-10-03 13:07:20 +05306932 CFG_ENABLE_VENDOR_VHT_FOR_24GHZ_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006933 hdd_ctx->config->enable_sap_vendor_vht);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006934 hdd_debug("Name = [%s] Value = [%u]",
Abhishek Singh5ea86532016-04-27 14:10:53 +05306935 CFG_ENABLE_FATAL_EVENT_TRIGGER,
Jeff Johnson723234b2017-09-03 08:49:15 -07006936 hdd_ctx->config->enable_fatal_event);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006937 hdd_debug("Name = [%s] Value = [%u]",
Gupta, Kapilc68ad462016-02-01 19:17:23 +05306938 CFG_ROAM_DENSE_MIN_APS,
Jeff Johnson723234b2017-09-03 08:49:15 -07006939 hdd_ctx->config->roam_dense_min_aps);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006940 hdd_debug("Name = [%s] Value = [%u]",
Varun Reddy Yeturufaad37e2017-07-26 10:54:13 -07006941 CFG_ROAM_BG_SCAN_BAD_RSSI_THRESHOLD_NAME,
6942 hdd_ctx->config->roam_bg_scan_bad_rssi_thresh);
6943 hdd_debug("Name = [%s] Value = [%u]",
6944 CFG_ROAM_BG_SCAN_CLIENT_BITMAP_NAME,
6945 hdd_ctx->config->roam_bg_scan_client_bitmap);
6946 hdd_debug("Name = [%s] Value = [%u]",
Vignesh Viswanathanc018e982017-09-07 18:49:19 +05306947 CFG_ROAM_BG_SCAN_BAD_RSSI_OFFSET_2G_NAME,
6948 hdd_ctx->config->roam_bad_rssi_thresh_offset_2g);
6949 hdd_debug("Name = [%s] Value = [%u]",
Abhinav Kumara083f212018-04-05 18:49:45 +05306950 CFG_ROAM_HO_DELAY_FOR_RX_NAME,
6951 hdd_ctx->config->ho_delay_for_rx);
6952 hdd_debug("Name = [%s] Value = [%u]",
Abhinav Kumara95af7c2018-04-06 17:08:00 +05306953 CFG_MIN_DELAY_BTW_ROAM_SCAN_NAME,
6954 hdd_ctx->config->min_delay_btw_roam_scans);
6955 hdd_debug("Name = [%s] Value = [%u]",
6956 CFG_ROAM_SCAN_TRIGGER_REASON_BITMASK_NAME,
6957 hdd_ctx->config->roam_trigger_reason_bitmask);
6958 hdd_debug("Name = [%s] Value = [%u]",
Agrawal Ashish17bb3902016-05-05 13:29:40 +05306959 CFG_MIN_REST_TIME_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006960 hdd_ctx->config->min_rest_time_conc);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006961 hdd_debug("Name = [%s] Value = [%u]",
Agrawal Ashish17bb3902016-05-05 13:29:40 +05306962 CFG_IDLE_TIME_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006963 hdd_ctx->config->idle_time_conc);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006964 hdd_debug("Name = [%s] Value = [%d]",
Mukul Sharmaf7d62e12016-09-03 15:16:22 +05306965 CFG_BUG_ON_REINIT_FAILURE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006966 hdd_ctx->config->bug_on_reinit_failure);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006967 hdd_debug("Name = [%s] Value = [%u]",
Arun Khandavallifae92942016-08-01 13:31:08 +05306968 CFG_INTERFACE_CHANGE_WAIT_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006969 hdd_ctx->config->iface_change_wait_time);
Agrawal Ashish17bb3902016-05-05 13:29:40 +05306970
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006971 hdd_debug("Name = [%s] Value = [%u]",
Abhishek Singh10ecf582016-05-04 17:48:59 +05306972 CFG_ENABLE_EDCA_INI_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006973 hdd_ctx->config->enable_edca_params);
Abhishek Singh10ecf582016-05-04 17:48:59 +05306974
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006975 hdd_debug("Name = [%s] Value = [%u]",
Abhishek Singh10ecf582016-05-04 17:48:59 +05306976 CFG_EDCA_VO_CWMIN_VALUE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006977 hdd_ctx->config->edca_vo_cwmin);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006978 hdd_debug("Name = [%s] Value = [%u]",
Abhishek Singh10ecf582016-05-04 17:48:59 +05306979 CFG_EDCA_VI_CWMIN_VALUE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006980 hdd_ctx->config->edca_vi_cwmin);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006981 hdd_debug("Name = [%s] Value = [%u]",
Abhishek Singh10ecf582016-05-04 17:48:59 +05306982 CFG_EDCA_BK_CWMIN_VALUE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006983 hdd_ctx->config->edca_bk_cwmin);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006984 hdd_debug("Name = [%s] Value = [%u]",
Abhishek Singh10ecf582016-05-04 17:48:59 +05306985 CFG_EDCA_BE_CWMIN_VALUE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006986 hdd_ctx->config->edca_be_cwmin);
Abhishek Singh10ecf582016-05-04 17:48:59 +05306987
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006988 hdd_debug("Name = [%s] Value = [%u]",
Abhishek Singh10ecf582016-05-04 17:48:59 +05306989 CFG_EDCA_VO_CWMAX_VALUE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006990 hdd_ctx->config->edca_vo_cwmax);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006991 hdd_debug("Name = [%s] Value = [%u]",
Abhishek Singh10ecf582016-05-04 17:48:59 +05306992 CFG_EDCA_VI_CWMAX_VALUE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006993 hdd_ctx->config->edca_vi_cwmax);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006994 hdd_debug("Name = [%s] Value = [%u]",
Abhishek Singh10ecf582016-05-04 17:48:59 +05306995 CFG_EDCA_BK_CWMAX_VALUE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006996 hdd_ctx->config->edca_bk_cwmax);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006997 hdd_debug("Name = [%s] Value = [%u]",
Abhishek Singh10ecf582016-05-04 17:48:59 +05306998 CFG_EDCA_BE_CWMAX_VALUE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006999 hdd_ctx->config->edca_be_cwmax);
Abhishek Singh10ecf582016-05-04 17:48:59 +05307000
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007001 hdd_debug("Name = [%s] Value = [%u]",
Abhishek Singh10ecf582016-05-04 17:48:59 +05307002 CFG_EDCA_VO_AIFS_VALUE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007003 hdd_ctx->config->edca_vo_aifs);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007004 hdd_debug("Name = [%s] Value = [%u]",
Abhishek Singh10ecf582016-05-04 17:48:59 +05307005 CFG_EDCA_VI_AIFS_VALUE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007006 hdd_ctx->config->edca_vi_aifs);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007007 hdd_debug("Name = [%s] Value = [%u]",
Abhishek Singh10ecf582016-05-04 17:48:59 +05307008 CFG_EDCA_BK_AIFS_VALUE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007009 hdd_ctx->config->edca_bk_aifs);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007010 hdd_debug("Name = [%s] Value = [%u]",
Abhishek Singh10ecf582016-05-04 17:48:59 +05307011 CFG_EDCA_BE_AIFS_VALUE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007012 hdd_ctx->config->edca_be_aifs);
gbian62edd7e2017-03-07 13:12:13 +08007013
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007014 hdd_debug("Name = [%s] Value = [%s]",
gbian62edd7e2017-03-07 13:12:13 +08007015 CFG_ENABLE_TX_SCHED_WRR_VO_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007016 hdd_ctx->config->tx_sched_wrr_vo);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007017 hdd_debug("Name = [%s] Value = [%s]",
gbian62edd7e2017-03-07 13:12:13 +08007018 CFG_ENABLE_TX_SCHED_WRR_VI_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007019 hdd_ctx->config->tx_sched_wrr_vi);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007020 hdd_debug("Name = [%s] Value = [%s]",
gbian62edd7e2017-03-07 13:12:13 +08007021 CFG_ENABLE_TX_SCHED_WRR_BK_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007022 hdd_ctx->config->tx_sched_wrr_bk);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007023 hdd_debug("Name = [%s] Value = [%s]",
gbian62edd7e2017-03-07 13:12:13 +08007024 CFG_ENABLE_TX_SCHED_WRR_BE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007025 hdd_ctx->config->tx_sched_wrr_be);
Mohit Khannaf8f96822017-05-17 17:11:59 -07007026 hdd_info("Name = [%s] Value = [%u]",
Nirav Shahcc1f1ae2016-04-26 11:41:29 +05307027 CFG_ENABLE_DP_TRACE,
Jeff Johnson723234b2017-09-03 08:49:15 -07007028 hdd_ctx->config->enable_dp_trace);
Mohit Khannaf8f96822017-05-17 17:11:59 -07007029 hdd_debug("Name = [%s] Value = [%s]",
7030 CFG_ENABLE_DP_TRACE_CONFIG,
Jeff Johnson723234b2017-09-03 08:49:15 -07007031 hdd_ctx->config->dp_trace_config);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007032 hdd_debug("Name = [%s] Value = [%u]",
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05307033 CFG_ADAPTIVE_SCAN_DWELL_MODE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007034 hdd_ctx->config->scan_adaptive_dwell_mode);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007035 hdd_debug("Name = [%s] Value = [%u]",
Paul Zhang72697bd2017-12-20 09:24:25 +08007036 CFG_ADAPTIVE_SCAN_DWELL_MODE_NC_NAME,
7037 hdd_ctx->config->scan_adaptive_dwell_mode_nc);
7038 hdd_debug("Name = [%s] Value = [%u]",
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05307039 CFG_ADAPTIVE_ROAMSCAN_DWELL_MODE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007040 hdd_ctx->config->roamscan_adaptive_dwell_mode);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007041 hdd_debug("Name = [%s] Value = [%u]",
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05307042 CFG_ADAPTIVE_EXTSCAN_DWELL_MODE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007043 hdd_ctx->config->extscan_adaptive_dwell_mode);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007044 hdd_debug("Name = [%s] Value = [%u]",
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05307045 CFG_ADAPTIVE_DWELL_MODE_ENABLED_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007046 hdd_ctx->config->adaptive_dwell_mode_enabled);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007047 hdd_debug("Name = [%s] Value = [%u]",
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05307048 CFG_GLOBAL_ADAPTIVE_DWELL_MODE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007049 hdd_ctx->config->global_adapt_dwelltime_mode);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007050 hdd_debug("Name = [%s] Value = [%u]",
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05307051 CFG_ADAPT_DWELL_LPF_WEIGHT_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007052 hdd_ctx->config->adapt_dwell_lpf_weight);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007053 hdd_debug("Name = [%s] Value = [%u]",
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05307054 CFG_ADAPT_DWELL_PASMON_INTVAL_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007055 hdd_ctx->config->adapt_dwell_passive_mon_intval);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007056 hdd_debug("Name = [%s] Value = [%u]",
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05307057 CFG_ADAPT_DWELL_WIFI_THRESH_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007058 hdd_ctx->config->adapt_dwell_wifi_act_threshold);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007059 hdd_debug("Name = [%s] value = [%u]",
Naveen Rawat64e477e2016-05-20 10:34:56 -07007060 CFG_SUB_20_CHANNEL_WIDTH_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007061 hdd_ctx->config->enable_sub_20_channel_width);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007062 hdd_debug("Name = [%s] Value = [%u]",
Rajeev Kumar Sirasanagandlaaf474742016-09-06 17:54:50 +05307063 CFG_TGT_GTX_USR_CFG_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007064 hdd_ctx->config->tgt_gtx_usr_cfg);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007065 hdd_debug("Name = [%s] Value = [%u]",
Agrawal, Ashish4e5fa1c2016-09-21 19:03:43 +05307066 CFG_SAP_MAX_INACTIVITY_OVERRIDE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007067 hdd_ctx->config->sap_max_inactivity_override);
7068 hdd_ndp_print_ini_config(hdd_ctx);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007069 hdd_debug("Name = [%s] Value = [%s]",
Krishna Kumaar Natarajancc077c22016-08-02 10:41:53 -07007070 CFG_RM_CAPABILITY_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007071 hdd_ctx->config->rm_capability);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007072 hdd_debug("Name = [%s] Value = [%d]",
Rajeev Kumar Sirasanagandlab79b5462016-09-06 18:33:17 +05307073 CFG_SAP_FORCE_11N_FOR_11AC_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007074 hdd_ctx->config->sap_force_11n_for_11ac);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007075 hdd_debug("Name = [%s] Value = [%d]",
Bala Venkateshb9cf3362017-11-09 15:48:46 +05307076 CFG_GO_FORCE_11N_FOR_11AC_NAME,
7077 hdd_ctx->config->go_force_11n_for_11ac);
7078 hdd_debug("Name = [%s] Value = [%d]",
Rajeev Kumardd3bc602016-08-16 14:21:05 -07007079 CFG_BPF_PACKET_FILTER_OFFLOAD,
Jeff Johnson723234b2017-09-03 08:49:15 -07007080 hdd_ctx->config->bpf_packet_filter_enable);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007081 hdd_debug("Name = [%s] Value = [%u]",
Nitesh Shah61c10d92016-10-19 19:29:15 +05307082 CFG_TDLS_ENABLE_DEFER_TIMER,
Jeff Johnson723234b2017-09-03 08:49:15 -07007083 hdd_ctx->config->tdls_enable_defer_time);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007084 hdd_debug("Name = [%s] Value = [%d]",
Ravi Joshibb8d4512016-08-22 10:14:52 -07007085 CFG_FILTER_MULTICAST_REPLAY_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007086 hdd_ctx->config->multicast_replay_filter);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007087 hdd_debug("Name = [%s] Value = [%u]",
Agrawal Ashishb2d1a452016-05-05 12:23:58 +05307088 CFG_ENABLE_GO_CTS2SELF_FOR_STA,
Jeff Johnson723234b2017-09-03 08:49:15 -07007089 hdd_ctx->config->enable_go_cts2self_for_sta);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007090 hdd_debug("Name = [%s] Value = [%u]",
Sandeep Puligillaafa52892016-10-26 19:03:16 -07007091 CFG_CRASH_FW_TIMEOUT_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007092 hdd_ctx->config->fw_timeout_crash);
Hanumanth Reddy Pothulae87621b2017-04-12 20:53:35 +05307093 hdd_debug("Name = [%s] Value = [%u]",
7094 CFG_ACTIVE_UC_BPF_MODE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007095 hdd_ctx->config->active_uc_bpf_mode);
Hanumanth Reddy Pothulae87621b2017-04-12 20:53:35 +05307096 hdd_debug("Name = [%s] Value = [%u]",
7097 CFG_ACTIVE_MC_BC_BPF_MODE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007098 hdd_ctx->config->active_mc_bc_bpf_mode);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007099 hdd_debug("Name = [%s] Value = [%d]",
Arun Khandavallicc544b32017-01-30 19:52:16 +05307100 CFG_SAP_INTERNAL_RESTART_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007101 hdd_ctx->config->sap_internal_restart);
gaoleze5108942017-03-31 16:56:42 +08007102 hdd_debug("Name = [%s] Value = [%d]",
7103 CFG_ACS_WITH_MORE_PARAM_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007104 hdd_ctx->config->acs_with_more_param);
Ravi Kumar Bokka05c14e52017-03-27 14:48:23 +05307105 hdd_debug("Name = [%s] Value = [%u]",
7106 CFG_AUTO_DETECT_POWER_FAIL_MODE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007107 hdd_ctx->config->auto_pwr_save_fail_mode);
Hanumanth Reddy Pothula9c161dd2017-03-23 19:03:08 +05307108 hdd_debug("Name = [%s] Value = [%d]",
Hanumanth Reddy Pothulaffc2d482017-07-04 11:32:44 +05307109 CFG_RESTART_BEACONING_ON_CH_AVOID_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007110 hdd_ctx->config->restart_beaconing_on_chan_avoid_event);
Ravi Kumar Bokka05c14e52017-03-27 14:48:23 +05307111
Jeff Johnson723234b2017-09-03 08:49:15 -07007112 hdd_per_roam_print_ini_config(hdd_ctx);
7113 hdd_he_print_ini_config(hdd_ctx);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007114 hdd_debug("Name = [%s] Value = [%d]",
Srinivas Girigowda70e169a2017-03-07 23:55:57 -08007115 CFG_ARP_AC_CATEGORY,
Jeff Johnson723234b2017-09-03 08:49:15 -07007116 hdd_ctx->config->arp_ac_category);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007117 hdd_debug("Name = [%s] Value = [%u]",
Dustin Brown20b6fcf2017-05-17 15:35:17 -07007118 CFG_SCAN_BACKOFF_MULTIPLIER_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007119 hdd_ctx->config->scan_backoff_multiplier);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007120 hdd_debug("Name = [%s] Value = [%d]",
Jayachandran Sreekumaran68c952c2017-04-24 12:42:03 +05307121 CFG_EXTERNAL_ACS_POLICY,
Jeff Johnson723234b2017-09-03 08:49:15 -07007122 hdd_ctx->config->external_acs_policy);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007123 hdd_debug("Name = [%s] value = [%u]",
Naveen Rawat2b6e3c92017-03-20 13:59:07 -07007124 CFG_DROPPED_PKT_DISCONNECT_TH_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007125 hdd_ctx->config->pkt_err_disconn_th);
Rajeev Kumar Sirasanagandlaaec0b082017-06-21 11:59:41 +05307126
Jeff Johnson723234b2017-09-03 08:49:15 -07007127 hdd_cfg_print_ie_whitelist_attrs(hdd_ctx);
Rajeev Kumar Sirasanagandlaaec0b082017-06-21 11:59:41 +05307128
Naveen Rawatb2fc4132017-05-10 20:42:05 -07007129 hdd_debug("Name = [%s] value = [%u]",
7130 CFG_FORCE_1X1_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007131 hdd_ctx->config->is_force_1x1);
Srinivas Girigowda6598eea2017-07-06 19:26:19 -07007132 hdd_debug("Name = [%s] Value = %u",
Ashish Kumar Dhanotiya470af292017-05-31 20:46:00 +05307133 CFG_ENABLE_CONNECTED_SCAN_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007134 hdd_ctx->config->enable_connected_scan);
Naveen Rawat247a8682017-06-05 15:00:31 -07007135 hdd_debug("Name = [%s] value = [%u]",
7136 CFG_11B_NUM_TX_CHAIN_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007137 hdd_ctx->config->num_11b_tx_chains);
Naveen Rawat247a8682017-06-05 15:00:31 -07007138 hdd_debug("Name = [%s] value = [%u]",
7139 CFG_11AG_NUM_TX_CHAIN_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007140 hdd_ctx->config->num_11ag_tx_chains);
Ashish Kumar Dhanotiya9335d812017-06-30 16:57:20 +05307141 hdd_debug("Name = [%s] value = [%u]",
7142 CFG_ITO_REPEAT_COUNT_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007143 hdd_ctx->config->ito_repeat_count);
Selvaraj, Sridhar57ce4df2017-05-29 18:30:49 +05307144 hdd_debug("Name = [%s] Value = [%u]",
7145 CFG_ROAM_DISALLOW_DURATION_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007146 hdd_ctx->config->disallow_duration);
Selvaraj, Sridhar57ce4df2017-05-29 18:30:49 +05307147 hdd_debug("Name = [%s] Value = [%u]",
7148 CFG_ROAM_RSSI_CHANNEL_PENALIZATION_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007149 hdd_ctx->config->rssi_channel_penalization);
Selvaraj, Sridhar57ce4df2017-05-29 18:30:49 +05307150 hdd_debug("Name = [%s] Value = [%u]",
7151 CFG_ROAM_NUM_DISALLOWED_APS_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007152 hdd_ctx->config->num_disallowed_aps);
Ashish Kumar Dhanotiyab8630ab2017-07-21 14:18:14 +05307153 hdd_debug("Name = [%s] value = [%u]",
7154 CFG_LPRx_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007155 hdd_ctx->config->enable_lprx);
Ashish Kumar Dhanotiyab28338c2017-07-21 20:12:34 +05307156 hdd_debug("Name = [%s] value = [%u]",
7157 CFG_UPPER_BRSSI_THRESH_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007158 hdd_ctx->config->upper_brssi_thresh);
Ashish Kumar Dhanotiyab28338c2017-07-21 20:12:34 +05307159 hdd_debug("Name = [%s] value = [%u]",
7160 CFG_LOWER_BRSSI_THRESH_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007161 hdd_ctx->config->lower_brssi_thresh);
Ashish Kumar Dhanotiyab28338c2017-07-21 20:12:34 +05307162 hdd_debug("Name = [%s] value = [%u]",
7163 CFG_DTIM_1CHRX_ENABLE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007164 hdd_ctx->config->enable_dtim_1chrx);
Ravi Joshi9771d432017-06-26 13:58:12 -07007165 hdd_debug("Name = [%s] value = [%u]",
hqu16d6e082017-09-04 10:52:31 +08007166 CFG_RANDOMIZE_NDI_MAC_NAME,
7167 hdd_ctx->config->is_ndi_mac_randomized);
Ashish Kumar Dhanotiyacc2e0d32017-08-24 20:13:08 +05307168 hdd_debug("Name = [%s] value = [%u]",
7169 CFG_DOT11P_MODE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007170 hdd_ctx->config->dot11p_mode);
hqu16d6e082017-09-04 10:52:31 +08007171 hdd_debug("Name = [%s] value = [%u]",
Dustin Brown87194762017-09-07 14:32:12 -07007172 CFG_PREVENT_LINK_DOWN_NAME,
7173 hdd_ctx->config->prevent_link_down);
7174 hdd_debug("Name = [%s] value = [%u]",
hqu16d6e082017-09-04 10:52:31 +08007175 CFG_CHAN_SWITCH_HOSTAPD_RATE_ENABLED_NAME,
7176 hdd_ctx->config->chan_switch_hostapd_rate_enabled);
Abhishek Singhb58164a2017-07-19 18:47:23 +05307177 hdd_debug("Name = [%s] value = [%u]",
7178 CFG_IS_BSSID_HINT_PRIORITY_NAME,
7179 hdd_ctx->config->is_bssid_hint_priority);
Himanshu Agarwal8bcec572017-09-28 11:54:37 +05307180 hdd_debug("Name = [%s] value = [%u]",
7181 CFG_RSSI_WEIGHTAGE_NAME,
7182 hdd_ctx->config->rssi_weightage);
7183 hdd_debug("Name = [%s] value = [%u]",
7184 CFG_HT_CAPABILITY_WEIGHTAGE_NAME,
7185 hdd_ctx->config->ht_caps_weightage);
7186 hdd_debug("Name = [%s] value = [%u]",
7187 CFG_VHT_CAPABILITY_WEIGHTAGE_NAME,
7188 hdd_ctx->config->vht_caps_weightage);
7189 hdd_debug("Name = [%s] value = [%u]",
7190 CFG_HE_CAPABILITY_WEIGHTAGE_NAME,
7191 hdd_ctx->config->he_caps_weightage);
7192 hdd_debug("Name = [%s] value = [%u]",
7193 CFG_CHAN_WIDTH_WEIGHTAGE_NAME,
7194 hdd_ctx->config->chan_width_weightage);
7195 hdd_debug("Name = [%s] value = [%u]",
7196 CFG_CHAN_BAND_WEIGHTAGE_NAME,
7197 hdd_ctx->config->chan_band_weightage);
7198 hdd_debug("Name = [%s] value = [%u]",
7199 CFG_NSS_WEIGHTAGE_NAME,
7200 hdd_ctx->config->nss_weightage);
7201 hdd_debug("Name = [%s] value = [%u]",
7202 CFG_BEAMFORMING_CAP_WEIGHTAGE_NAME,
7203 hdd_ctx->config->beamforming_cap_weightage);
7204 hdd_debug("Name = [%s] value = [%u]",
7205 CFG_PCL_WEIGHT_WEIGHTAGE_NAME,
7206 hdd_ctx->config->pcl_weightage);
7207 hdd_debug("Name = [%s] value = [%u]",
7208 CFG_CHANNEL_CONGESTION_WEIGHTAGE_NAME,
7209 hdd_ctx->config->channel_congestion_weightage);
7210 hdd_debug("Name = [%s] value = [%u]",
7211 CFG_OCE_WAN_WEIGHTAGE_NAME,
7212 hdd_ctx->config->oce_wan_weightage);
7213 hdd_debug("Name = [%s] value = [%u]",
7214 CFG_BAND_WIDTH_WEIGHT_PER_INDEX_NAME,
7215 hdd_ctx->config->bandwidth_weight_per_index);
7216 hdd_debug("Name = [%s] value = [%u]",
7217 CFG_NSS_WEIGHT_PER_INDEX_NAME,
7218 hdd_ctx->config->nss_weight_per_index);
7219 hdd_debug("Name = [%s] value = [%u]",
7220 CFG_BAND_WEIGHT_PER_INDEX_NAME,
7221 hdd_ctx->config->band_weight_per_index);
7222 hdd_debug("Name = [%s] value = [%u]",
7223 CFG_BEST_RSSI_THRESHOLD_NAME,
7224 hdd_ctx->config->best_rssi_threshold);
7225 hdd_debug("Name = [%s] value = [%u]",
7226 CFG_GOOD_RSSI_THRESHOLD_NAME,
7227 hdd_ctx->config->good_rssi_threshold);
7228 hdd_debug("Name = [%s] value = [%u]",
7229 CFG_BAD_RSSI_THRESHOLD_NAME,
7230 hdd_ctx->config->bad_rssi_threshold);
7231 hdd_debug("Name = [%s] value = [%u]",
7232 CFG_GOOD_RSSI_PCNT_NAME,
7233 hdd_ctx->config->good_rssi_pcnt);
7234 hdd_debug("Name = [%s] value = [%u]",
7235 CFG_BAD_RSSI_PCNT_NAME,
7236 hdd_ctx->config->bad_rssi_pcnt);
7237 hdd_debug("Name = [%s] value = [%u]",
7238 CFG_GOOD_RSSI_BUCKET_SIZE_NAME,
7239 hdd_ctx->config->good_rssi_bucket_size);
7240 hdd_debug("Name = [%s] value = [%u]",
7241 CFG_BAD_RSSI_BUCKET_SIZE_NAME,
7242 hdd_ctx->config->bad_rssi_bucket_size);
7243 hdd_debug("Name = [%s] value = [%u]",
7244 CFG_RSSI_PERF_5G_THRESHOLD_NAME,
7245 hdd_ctx->config->rssi_pref_5g_rssi_thresh);
7246 hdd_debug("Name = [%s] value = [%u]",
7247 CFG_ESP_QBSS_SLOTS_NAME,
7248 hdd_ctx->config->num_esp_qbss_slots);
7249 hdd_debug("Name = [%s] value = [%u]",
7250 CFG_ESP_QBSS_SCORE_IDX3_TO_0_NAME,
7251 hdd_ctx->config->esp_qbss_score_slots3_to_0);
7252 hdd_debug("Name = [%s] value = [%u]",
7253 CFG_ESP_QBSS_SCORE_IDX7_TO_4_NAME,
7254 hdd_ctx->config->esp_qbss_score_slots7_to_4);
7255 hdd_debug("Name = [%s] value = [%u]",
7256 CFG_ESP_QBSS_SCORE_IDX11_TO_8_NAME,
7257 hdd_ctx->config->esp_qbss_score_slots11_to_8);
7258 hdd_debug("Name = [%s] value = [%u]",
7259 CFG_ESP_QBSS_SCORE_IDX15_TO_12_NAME,
7260 hdd_ctx->config->esp_qbss_score_slots15_to_12);
7261 hdd_debug("Name = [%s] value = [%u]",
7262 CFG_ENABLE_SCORING_FOR_ROAM_NAME,
7263 hdd_ctx->config->enable_scoring_for_roam);
7264
Paul Zhang99fe8842017-12-08 14:43:46 +08007265 hdd_wlm_cfg_log(hdd_ctx);
7266
Himanshu Agarwal8bcec572017-09-28 11:54:37 +05307267 hdd_debug("Name = [%s] value = [%u]",
7268 CFG_OCE_WAN_SLOTS_NAME,
7269 hdd_ctx->config->num_oce_wan_slots);
7270 hdd_debug("Name = [%s] value = [%u]",
7271 CFG_OCE_WAN_SCORE_IDX3_TO_0_NAME,
7272 hdd_ctx->config->oce_wan_score_slots3_to_0);
7273 hdd_debug("Name = [%s] value = [%u]",
7274 CFG_OCE_WAN_SCORE_IDX7_TO_4_NAME,
7275 hdd_ctx->config->oce_wan_score_slots7_to_4);
7276 hdd_debug("Name = [%s] value = [%u]",
7277 CFG_OCE_WAN_SCORE_IDX11_TO_8_NAME,
7278 hdd_ctx->config->oce_wan_score_slots11_to_8);
7279 hdd_debug("Name = [%s] value = [%u]",
7280 CFG_OCE_WAN_SCORE_IDX15_TO_12_NAME,
7281 hdd_ctx->config->oce_wan_score_slots15_to_12);
Abhishek Singh6454ad32017-12-20 10:42:21 +05307282 hdd_debug("Name = [%s] Value = [%u]",
7283 CFG_FORCE_RSNE_OVERRIDE_NAME,
7284 hdd_ctx->config->force_rsne_override);
Nachiket Kukade8983cf62017-10-12 18:14:48 +05307285 hdd_debug("Name = [%s] value = [0x%x]", CFG_VC_MODE_BITMAP,
7286 hdd_ctx->config->vc_mode_cfg_bitmap);
Ravi Kumar Bokka990edcc2017-01-09 20:02:58 +05307287 hdd_debug("Name = [%s] Value = [%u]",
7288 CFG_ENABLE_PHY_REG,
7289 hdd_ctx->config->enable_phy_reg_retention);
yeshwanth sriram guntuka41f936c2017-09-01 17:53:49 +05307290 hdd_debug("Name = [btm_offload_config] value = [0x%x]",
7291 hdd_ctx->config->btm_offload_config);
Padma, Santhosh Kumar3e47c632017-09-01 20:15:27 +05307292 hdd_cfg_print_sae(hdd_ctx);
Jiachao Wu84bb2ea2018-01-08 16:17:33 +08007293 hdd_debug("Name = [btm_solicited_timeout] value = [0x%x]",
7294 hdd_ctx->config->btm_solicited_timeout);
7295 hdd_debug("Name = [btm_max_attempt_cnt] value = [0x%x]",
7296 hdd_ctx->config->btm_max_attempt_cnt);
7297 hdd_debug("Name = [btm_sticky_time] value = [0x%x]",
7298 hdd_ctx->config->btm_sticky_time);
Ashish Kumar Dhanotiyacb14b112018-01-19 19:26:44 +05307299 hdd_debug("Name = [%s] value = [%d]",
7300 CFG_ENABLE_GCMP_NAME,
7301 hdd_ctx->config->gcmp_enabled);
Ashish Kumar Dhanotiya191d1642018-02-08 17:43:09 +05307302 hdd_debug("Name = [%s] value = [%d]",
7303 CFG_DTIM_SELECTION_DIVERSITY_NAME,
7304 hdd_ctx->config->enable_dtim_selection_diversity);
Ashish Kumar Dhanotiya48dac7d2018-03-28 14:59:50 +05307305 hdd_debug("Name = [%s] value = [%d]",
7306 CFG_TX_SCH_DELAY_NAME,
7307 hdd_ctx->config->enable_tx_sch_delay);
Vignesh Viswanathan694e28e2018-01-18 20:53:57 +05307308
7309 hdd_cfg_print_11k_offload_params(hdd_ctx);
Yeshwanth Sriram Guntukadb7995d2018-01-22 16:46:59 +05307310 hdd_debug("Name = [%s] value = [0x%x]",
7311 CFG_CHANNEL_SELECT_LOGIC_CONC_NAME,
7312 hdd_ctx->config->channel_select_logic_conc);
Alok Kumarb64650c2018-03-23 17:05:11 +05307313
7314 hdd_nud_cfg_print(hdd_ctx);
Rajeev Kumar15b40a22018-04-12 11:45:24 -07007315 hdd_debug("Name = [%s] value = [0x%x]",
7316 CFG_ENABLE_UNIT_TEST_FRAMEWORK_NAME,
7317 hdd_ctx->config->is_unit_test_framework_enabled);
Abhinav Kumar271f0632018-03-29 16:01:30 +05307318 hdd_debug("Name = [%s] Value = [%u]",
7319 CFG_ROAM_FT_OPEN_ENABLE_NAME,
7320 hdd_ctx->config->enable_ftopen);
Ashish Kumar Dhanotiya959b38c2018-04-06 21:07:57 +05307321
7322 hdd_debug("Name = [%s] value = [0x%x]",
7323 CFG_ENABLE_SECONDARY_RATE_NAME,
7324 hdd_ctx->config->enable_secondary_rate);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007325}
7326
7327
7328/**
7329 * hdd_update_mac_config() - update MAC address from cfg file
Jeff Johnson723234b2017-09-03 08:49:15 -07007330 * @hdd_ctx: the pointer to hdd context
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007331 *
7332 * It overwrites the MAC address if config file exist.
7333 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307334 * Return: QDF_STATUS_SUCCESS if the MAC address is found from cfg file
7335 * and overwritten, otherwise QDF_STATUS_E_INVAL
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007336 */
Jeff Johnson723234b2017-09-03 08:49:15 -07007337QDF_STATUS hdd_update_mac_config(struct hdd_context *hdd_ctx)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007338{
7339 int status, i = 0;
7340 const struct firmware *fw = NULL;
7341 char *line, *buffer = NULL;
Yuanyuan Liu6043d3c2016-07-25 11:40:38 -07007342 char *temp = NULL;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007343 char *name, *value;
Nachiket Kukadee4d86442017-06-23 16:57:00 +05307344 int max_mac_addr = QDF_MAX_CONCURRENCY_PERSONA;
Jeff Johnson7274ccc2017-09-30 19:45:40 -07007345 struct hdd_cfg_entry macTable[QDF_MAX_CONCURRENCY_PERSONA];
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007346 tSirMacAddr customMacAddr;
7347
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307348 QDF_STATUS qdf_status = QDF_STATUS_SUCCESS;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007349
7350 memset(macTable, 0, sizeof(macTable));
Jeff Johnson723234b2017-09-03 08:49:15 -07007351 status = request_firmware(&fw, WLAN_MAC_FILE, hdd_ctx->parent_dev);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007352
7353 if (status) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07007354 hdd_err("request_firmware failed %d", status);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307355 qdf_status = QDF_STATUS_E_FAILURE;
7356 return qdf_status;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007357 }
7358 if (!fw || !fw->data || !fw->size) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08007359 hdd_alert("invalid firmware");
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307360 qdf_status = QDF_STATUS_E_INVAL;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007361 goto config_exit;
7362 }
7363
Yuanyuan Liu6043d3c2016-07-25 11:40:38 -07007364 hdd_debug("wlan_mac.bin size %zu", fw->size);
7365
Srinivas Girigowdae6b465b2017-03-30 18:27:25 -07007366 temp = qdf_mem_malloc(fw->size + 1);
Yuanyuan Liu6043d3c2016-07-25 11:40:38 -07007367
7368 if (temp == NULL) {
7369 hdd_err("fail to alloc memory");
7370 qdf_status = QDF_STATUS_E_NOMEM;
7371 goto config_exit;
7372 }
7373 buffer = temp;
7374 qdf_mem_copy(buffer, fw->data, fw->size);
Srinivas Girigowdafb20a952017-04-05 11:38:48 -07007375 buffer[fw->size] = 0x0;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007376
7377 /* data format:
7378 * Intf0MacAddress=00AA00BB00CC
7379 * Intf1MacAddress=00AA00BB00CD
7380 * END
7381 */
7382 while (buffer != NULL) {
7383 line = get_next_line(buffer);
7384 buffer = i_trim(buffer);
7385
7386 if (strlen((char *)buffer) == 0 || *buffer == '#') {
7387 buffer = line;
7388 continue;
7389 }
7390 if (strncmp(buffer, "END", 3) == 0)
7391 break;
7392
7393 name = buffer;
7394 buffer = strnchr(buffer, strlen(buffer), '=');
7395 if (buffer) {
7396 *buffer++ = '\0';
7397 i_trim(name);
7398 if (strlen(name) != 0) {
7399 buffer = i_trim(buffer);
7400 if (strlen(buffer) == 12) {
7401 value = buffer;
7402 macTable[i].name = name;
7403 macTable[i++].value = value;
Anurag Chouhan6d760662016-02-20 16:05:43 +05307404 if (i >= QDF_MAX_CONCURRENCY_PERSONA)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007405 break;
7406 }
7407 }
7408 }
7409 buffer = line;
7410 }
Anurag Chouhan6d760662016-02-20 16:05:43 +05307411 if (i <= QDF_MAX_CONCURRENCY_PERSONA) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07007412 hdd_debug("%d Mac addresses provided", i);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007413 } else {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08007414 hdd_err("invalid number of Mac address provided, nMac = %d", i);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307415 qdf_status = QDF_STATUS_E_INVAL;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007416 goto config_exit;
7417 }
7418
Jeff Johnson723234b2017-09-03 08:49:15 -07007419 update_mac_from_string(hdd_ctx, &macTable[0], i);
Jeff Johnsona6cab552018-05-06 15:47:55 -07007420 hdd_debug("Populating remaining %d Mac addresses",
Nachiket Kukadee4d86442017-06-23 16:57:00 +05307421 max_mac_addr - i);
Jeff Johnson723234b2017-09-03 08:49:15 -07007422 hdd_populate_random_mac_addr(hdd_ctx, max_mac_addr - i);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007423
Anurag Chouhan600c3a02016-03-01 10:33:54 +05307424 qdf_mem_copy(&customMacAddr,
Jeff Johnson723234b2017-09-03 08:49:15 -07007425 &hdd_ctx->config->intfMacAddr[0].bytes[0],
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007426 sizeof(tSirMacAddr));
7427 sme_set_custom_mac_addr(customMacAddr);
7428
7429config_exit:
Yuanyuan Liu6043d3c2016-07-25 11:40:38 -07007430 qdf_mem_free(temp);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007431 release_firmware(fw);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307432 return qdf_status;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007433}
7434
7435/**
Manjunathappa Prakash59f861d2016-04-21 10:33:31 -07007436 * hdd_disable_runtime_pm() - Override to disable runtime_pm.
7437 * @cfg_ini: Handle to struct hdd_config
7438 *
7439 * Return: None
7440 */
7441#ifdef FEATURE_RUNTIME_PM
7442static void hdd_disable_runtime_pm(struct hdd_config *cfg_ini)
7443{
7444 cfg_ini->runtime_pm = 0;
7445}
7446#else
7447static void hdd_disable_runtime_pm(struct hdd_config *cfg_ini)
7448{
7449}
7450#endif
7451
7452/**
7453 * hdd_disable_auto_shutdown() - Override to disable auto_shutdown.
7454 * @cfg_ini: Handle to struct hdd_config
7455 *
7456 * Return: None
7457 */
7458#ifdef FEATURE_WLAN_AUTO_SHUTDOWN
7459static void hdd_disable_auto_shutdown(struct hdd_config *cfg_ini)
7460{
7461 cfg_ini->WlanAutoShutdown = 0;
7462}
7463#else
7464static void hdd_disable_auto_shutdown(struct hdd_config *cfg_ini)
7465{
7466}
7467#endif
7468
7469/**
7470 * hdd_override_all_ps() - overrides to disables all the powersave features.
7471 * @hdd_ctx: Pointer to HDD context.
7472 * Overrides below powersave ini configurations.
7473 * gEnableImps=0
7474 * gEnableBmps=0
7475 * gRuntimePM=0
7476 * gWlanAutoShutdown = 0
7477 * gEnableSuspend=0
7478 * gEnablePowerSaveOffload=0
7479 * gEnableWoW=0
7480 *
7481 * Return: None
7482 */
Jeff Johnsonb6909be2017-08-28 12:07:19 -07007483static void hdd_override_all_ps(struct hdd_context *hdd_ctx)
Manjunathappa Prakash59f861d2016-04-21 10:33:31 -07007484{
7485 struct hdd_config *cfg_ini = hdd_ctx->config;
7486
7487 cfg_ini->fIsImpsEnabled = 0;
7488 cfg_ini->is_ps_enabled = 0;
7489 hdd_disable_runtime_pm(cfg_ini);
7490 hdd_disable_auto_shutdown(cfg_ini);
7491 cfg_ini->enablePowersaveOffload = 0;
7492 cfg_ini->wowEnable = 0;
7493}
7494
7495/**
Nirav Shahbd36b062016-07-18 11:12:59 +05307496 * hdd_set_rx_mode_value() - set rx_mode values
7497 * @hdd_ctx: hdd context
7498 *
7499 * Return: none
7500 */
Jeff Johnsonb6909be2017-08-28 12:07:19 -07007501static void hdd_set_rx_mode_value(struct hdd_context *hdd_ctx)
Nirav Shahbd36b062016-07-18 11:12:59 +05307502{
7503 if (hdd_ctx->config->rx_mode & CFG_ENABLE_RX_THREAD &&
7504 hdd_ctx->config->rx_mode & CFG_ENABLE_RPS) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07007505 hdd_warn("rx_mode wrong configuration. Make it default");
Nirav Shahbd36b062016-07-18 11:12:59 +05307506 hdd_ctx->config->rx_mode = CFG_RX_MODE_DEFAULT;
7507 }
7508
7509 if (hdd_ctx->config->rx_mode & CFG_ENABLE_RX_THREAD)
Jeff Johnsone2ba3cd2017-10-30 20:02:09 -07007510 hdd_ctx->enable_rxthread = true;
Nirav Shahbd36b062016-07-18 11:12:59 +05307511
7512 if (hdd_ctx->config->rx_mode & CFG_ENABLE_RPS)
7513 hdd_ctx->rps = true;
7514
7515 if (hdd_ctx->config->rx_mode & CFG_ENABLE_NAPI)
7516 hdd_ctx->napi_enable = true;
7517}
7518
7519/**
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007520 * hdd_parse_config_ini() - parse the ini configuration file
Jeff Johnson723234b2017-09-03 08:49:15 -07007521 * @hdd_ctx: the pointer to hdd context
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007522 *
7523 * This function reads the qcom_cfg.ini file and
7524 * parses each 'Name=Value' pair in the ini file
7525 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307526 * Return: QDF_STATUS_SUCCESS if the qcom_cfg.ini is correctly read,
7527 * otherwise QDF_STATUS_E_INVAL
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007528 */
Jeff Johnson723234b2017-09-03 08:49:15 -07007529QDF_STATUS hdd_parse_config_ini(struct hdd_context *hdd_ctx)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007530{
7531 int status, i = 0;
7532 /** Pointer for firmware image data */
7533 const struct firmware *fw = NULL;
7534 char *buffer, *line, *pTemp = NULL;
7535 size_t size;
7536 char *name, *value;
7537 /* cfgIniTable is static to avoid excess stack usage */
Jeff Johnson7274ccc2017-09-30 19:45:40 -07007538 static struct hdd_cfg_entry cfgIniTable[MAX_CFG_INI_ITEMS];
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307539 QDF_STATUS qdf_status = QDF_STATUS_SUCCESS;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007540
7541 memset(cfgIniTable, 0, sizeof(cfgIniTable));
7542
Jeff Johnson723234b2017-09-03 08:49:15 -07007543 status = request_firmware(&fw, WLAN_INI_FILE, hdd_ctx->parent_dev);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007544
7545 if (status) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08007546 hdd_alert("request_firmware failed %d", status);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307547 qdf_status = QDF_STATUS_E_FAILURE;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007548 goto config_exit;
7549 }
7550 if (!fw || !fw->data || !fw->size) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08007551 hdd_alert("%s download failed", WLAN_INI_FILE);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307552 qdf_status = QDF_STATUS_E_FAILURE;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007553 goto config_exit;
7554 }
7555
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07007556 hdd_debug("qcom_cfg.ini Size %zu", fw->size);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007557
Anurag Chouhan600c3a02016-03-01 10:33:54 +05307558 buffer = (char *)qdf_mem_malloc(fw->size);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007559
7560 if (NULL == buffer) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07007561 hdd_err("qdf_mem_malloc failure");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007562 release_firmware(fw);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307563 return QDF_STATUS_E_NOMEM;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007564 }
7565 pTemp = buffer;
7566
Anurag Chouhan600c3a02016-03-01 10:33:54 +05307567 qdf_mem_copy((void *)buffer, (void *)fw->data, fw->size);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007568 size = fw->size;
7569
7570 while (buffer != NULL) {
7571 line = get_next_line(buffer);
7572 buffer = i_trim(buffer);
7573
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07007574 hdd_debug("%s: item", buffer);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007575
7576 if (strlen((char *)buffer) == 0 || *buffer == '#') {
7577 buffer = line;
7578 continue;
Jeff Johnson68755312017-02-10 11:46:55 -08007579 }
7580
7581 if (strncmp(buffer, "END", 3) == 0)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007582 break;
Jeff Johnson68755312017-02-10 11:46:55 -08007583
7584 name = buffer;
7585 while (*buffer != '=' && *buffer != '\0')
7586 buffer++;
7587 if (*buffer != '\0') {
7588 *buffer++ = '\0';
7589 i_trim(name);
7590 if (strlen(name) != 0) {
7591 buffer = i_trim(buffer);
7592 if (strlen(buffer) > 0) {
7593 value = buffer;
Rajeev Kumar Sirasanagandlaaec0b082017-06-21 11:59:41 +05307594 while (*buffer != '\0')
Jeff Johnson68755312017-02-10 11:46:55 -08007595 buffer++;
7596 *buffer = '\0';
7597 cfgIniTable[i].name = name;
7598 cfgIniTable[i++].value = value;
7599 if (i >= MAX_CFG_INI_ITEMS) {
7600 hdd_err("Number of items in %s > %d",
7601 WLAN_INI_FILE,
7602 MAX_CFG_INI_ITEMS);
7603 break;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007604 }
7605 }
7606 }
7607 }
7608 buffer = line;
7609 }
7610
7611 /* Loop through the registry table and apply all these configs */
Jeff Johnson723234b2017-09-03 08:49:15 -07007612 qdf_status = hdd_apply_cfg_ini(hdd_ctx, cfgIniTable, i);
7613 hdd_set_rx_mode_value(hdd_ctx);
Manjunathappa Prakash59f861d2016-04-21 10:33:31 -07007614 if (QDF_GLOBAL_MONITOR_MODE == cds_get_conparam())
Jeff Johnson723234b2017-09-03 08:49:15 -07007615 hdd_override_all_ps(hdd_ctx);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007616
7617config_exit:
7618 release_firmware(fw);
Anurag Chouhan600c3a02016-03-01 10:33:54 +05307619 qdf_mem_free(pTemp);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307620 return qdf_status;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007621}
7622
7623/**
7624 * hdd_cfg_xlate_to_csr_phy_mode() - convert PHY mode
7625 * @dot11Mode: the mode to convert
7626 *
7627 * Convert the configuration PHY mode to CSR PHY mode
7628 *
7629 * Return: the CSR phy mode value
7630 */
Srinivas Girigowda2fb677c2017-03-25 15:35:34 -07007631eCsrPhyMode hdd_cfg_xlate_to_csr_phy_mode(enum hdd_dot11_mode dot11Mode)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007632{
Naveen Rawat10b1c152017-01-18 11:16:06 -08007633 if (cds_is_sub_20_mhz_enabled())
7634 return eCSR_DOT11_MODE_abg;
7635
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007636 switch (dot11Mode) {
7637 case (eHDD_DOT11_MODE_abg):
7638 return eCSR_DOT11_MODE_abg;
7639 case (eHDD_DOT11_MODE_11b):
7640 return eCSR_DOT11_MODE_11b;
7641 case (eHDD_DOT11_MODE_11g):
7642 return eCSR_DOT11_MODE_11g;
7643 default:
7644 case (eHDD_DOT11_MODE_11n):
7645 return eCSR_DOT11_MODE_11n;
7646 case (eHDD_DOT11_MODE_11g_ONLY):
7647 return eCSR_DOT11_MODE_11g_ONLY;
7648 case (eHDD_DOT11_MODE_11n_ONLY):
7649 return eCSR_DOT11_MODE_11n_ONLY;
7650 case (eHDD_DOT11_MODE_11b_ONLY):
7651 return eCSR_DOT11_MODE_11b_ONLY;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007652 case (eHDD_DOT11_MODE_11ac_ONLY):
7653 return eCSR_DOT11_MODE_11ac_ONLY;
7654 case (eHDD_DOT11_MODE_11ac):
7655 return eCSR_DOT11_MODE_11ac;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007656 case (eHDD_DOT11_MODE_AUTO):
7657 return eCSR_DOT11_MODE_AUTO;
7658 case (eHDD_DOT11_MODE_11a):
7659 return eCSR_DOT11_MODE_11a;
Krishna Kumaar Natarajan4f1d7722017-03-03 21:12:51 -08007660 case (eHDD_DOT11_MODE_11ax_ONLY):
7661 return eCSR_DOT11_MODE_11ax_ONLY;
7662 case (eHDD_DOT11_MODE_11ax):
7663 return eCSR_DOT11_MODE_11ax;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007664 }
7665
7666}
7667
7668/**
7669 * hdd_set_idle_ps_config() - set idle power save configuration
Jeff Johnson723234b2017-09-03 08:49:15 -07007670 * @hdd_ctx: the pointer to hdd context
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007671 * @val: the value to configure
7672 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307673 * Return: QDF_STATUS_SUCCESS if command set correctly,
7674 * otherwise the QDF_STATUS return from SME layer
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007675 */
Arunk Khandavalli847969d2017-09-25 15:15:36 +05307676QDF_STATUS hdd_set_idle_ps_config(struct hdd_context *hdd_ctx, bool val)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007677{
Jeff Johnson4f519342017-09-13 14:27:17 -07007678 QDF_STATUS status;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007679
Jeff Johnson4f519342017-09-13 14:27:17 -07007680 hdd_debug("Enter Val %d", val);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007681
Arunk Khandavalli847969d2017-09-25 15:15:36 +05307682 if (hdd_ctx->imps_enabled == val) {
Dustin Brown5e89ef82018-03-14 11:50:23 -07007683 hdd_info("Already in the requested power state:%d", val);
Arunk Khandavalli847969d2017-09-25 15:15:36 +05307684 return QDF_STATUS_SUCCESS;
7685 }
7686
7687 status = sme_set_idle_powersave_config(val);
7688 if (QDF_STATUS_SUCCESS != status) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08007689 hdd_err("Fail to Set Idle PS Config val %d", val);
Arunk Khandavalli847969d2017-09-25 15:15:36 +05307690 return status;
7691 }
7692
7693 hdd_ctx->imps_enabled = val;
7694
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007695 return status;
7696}
7697
7698/**
7699 * hdd_set_fine_time_meas_cap() - set fine timing measurement capability
7700 * @hdd_ctx: HDD context
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007701 *
7702 * This function is used to pass fine timing measurement capability coming
7703 * from INI to SME. This function make sure that configure INI is supported
7704 * by the device. Use bit mask to mask out the unsupported capabilities.
7705 *
7706 * Return: None
7707 */
Naveen Rawatd2657be2017-10-10 14:31:23 -07007708static void hdd_set_fine_time_meas_cap(struct hdd_context *hdd_ctx)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007709{
7710 struct hdd_config *config = hdd_ctx->config;
7711 uint32_t capability = config->fine_time_meas_cap;
7712
7713 /* Make sure only supported capabilities are enabled in INI */
7714 capability &= CFG_FINE_TIME_MEAS_CAPABILITY_MAX;
Naveen Rawatd2657be2017-10-10 14:31:23 -07007715 ucfg_wifi_pos_set_ftm_cap(hdd_ctx->hdd_psoc, capability);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007716
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07007717 hdd_debug("fine time meas capability - INI: %04x Enabled: %04x",
Krunal Soni1878d3a2016-01-14 13:00:44 -08007718 config->fine_time_meas_cap,
Naveen Rawatd2657be2017-10-10 14:31:23 -07007719 capability);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007720}
7721
7722/**
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08007723 * hdd_convert_string_to_u8_array() - used to convert string into u8 array
7724 * @str: String to be converted
7725 * @hex_array: Array where converted value is stored
7726 * @len: Length of the populated array
7727 * @array_max_len: Maximum length of the array
7728 * @to_hex: true, if conversion required for hex string
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007729 *
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08007730 * This API is called to convert string (each byte separated by
7731 * a comma) into an u8 array
7732 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307733 * Return: QDF_STATUS
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007734 */
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08007735
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307736static QDF_STATUS hdd_convert_string_to_array(char *str, uint8_t *array,
Jiachao Wu6e9b9f92018-01-03 13:35:40 +08007737 uint8_t *len, uint16_t array_max_len, bool to_hex)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007738{
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08007739 char *format, *s = str;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007740
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08007741 if (str == NULL || array == NULL || len == NULL)
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307742 return QDF_STATUS_E_INVAL;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007743
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08007744 format = (to_hex) ? "%02x" : "%d";
7745
7746 *len = 0;
7747 while ((s != NULL) && (*len < array_max_len)) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007748 int val;
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08007749 /* Increment length only if sscanf successfully extracted
7750 * one element. Any other return value means error.
Jeff Johnson78d88a82017-01-12 09:50:54 -08007751 * Ignore it.
7752 */
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08007753 if (sscanf(s, format, &val) == 1) {
7754 array[*len] = (uint8_t) val;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007755 *len += 1;
7756 }
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08007757
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007758 s = strpbrk(s, ",");
7759 if (s)
7760 s++;
7761 }
7762
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307763 return QDF_STATUS_SUCCESS;
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08007764}
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007765
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08007766/**
7767 * hdd_hex_string_to_u8_array() - used to convert hex string into u8 array
7768 * @str: Hexadecimal string
7769 * @hex_array: Array where converted value is stored
7770 * @len: Length of the populated array
7771 * @array_max_len: Maximum length of the array
7772 *
7773 * This API is called to convert hexadecimal string (each byte separated by
7774 * a comma) into an u8 array
7775 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307776 * Return: QDF_STATUS
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08007777 */
Jeff Johnsonf1bf3a62016-10-05 15:48:13 -07007778static QDF_STATUS hdd_hex_string_to_u8_array(char *str, uint8_t *hex_array,
7779 uint8_t *len,
7780 uint8_t array_max_len)
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08007781{
7782 return hdd_convert_string_to_array(str, hex_array, len,
7783 array_max_len, true);
7784}
7785
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307786QDF_STATUS hdd_string_to_u8_array(char *str, uint8_t *array,
Jiachao Wu6e9b9f92018-01-03 13:35:40 +08007787 uint8_t *len, uint16_t array_max_len)
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08007788{
7789 return hdd_convert_string_to_array(str, array, len,
7790 array_max_len, false);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007791}
7792
7793/**
Nirav Shahbd36b062016-07-18 11:12:59 +05307794 * hdd_hex_string_to_u16_array() - convert a hex string to a uint16 array
7795 * @str: input string
7796 * @int_array: pointer to input array of type uint16
7797 * @len: pointer to number of elements which the function adds to the array
7798 * @int_array_max_len: maximum number of elements in input uint16 array
7799 *
7800 * This function is used to convert a space separated hex string to an array of
7801 * uint16_t. For example, an input string str = "a b c d" would be converted to
7802 * a unint16 array, int_array = {0xa, 0xb, 0xc, 0xd}, *len = 4.
7803 * This assumes that input value int_array_max_len >= 4.
7804 *
7805 * Return: QDF_STATUS_SUCCESS - if the conversion is successful
7806 * non zero value - if the conversion is a failure
7807 */
7808QDF_STATUS hdd_hex_string_to_u16_array(char *str,
7809 uint16_t *int_array, uint8_t *len, uint8_t int_array_max_len)
7810{
7811 char *s = str;
7812 uint32_t val = 0;
7813
7814 if (str == NULL || int_array == NULL || len == NULL)
7815 return QDF_STATUS_E_INVAL;
7816
Jeff Johnson36e74c42017-09-18 08:15:42 -07007817 hdd_debug("str %pK intArray %pK intArrayMaxLen %d",
Nirav Shahbd36b062016-07-18 11:12:59 +05307818 s, int_array, int_array_max_len);
7819
7820 *len = 0;
7821
7822 while ((s != NULL) && (*len < int_array_max_len)) {
7823 /*
7824 * Increment length only if sscanf successfully extracted one
7825 * element. Any other return value means error. Ignore it.
7826 */
7827 if (sscanf(s, "%x", &val) == 1) {
7828 int_array[*len] = (uint16_t) val;
Jeff Johnson36e74c42017-09-18 08:15:42 -07007829 hdd_debug("s %pK val %x intArray[%d]=0x%x",
Nirav Shahbd36b062016-07-18 11:12:59 +05307830 s, val, *len, int_array[*len]);
7831 *len += 1;
7832 }
7833 s = strpbrk(s, " ");
7834 if (s)
7835 s++;
7836 }
7837 return QDF_STATUS_SUCCESS;
7838}
7839
Nirav Shahbd36b062016-07-18 11:12:59 +05307840/**
Krunal Soni52198e42016-09-26 13:53:09 -07007841 * hdd_update_ht_cap_in_cfg() - to update HT cap in global CFG
Krunal Sonidf0f8742016-09-26 14:56:31 -07007842 * @hdd_ctx: pointer to hdd context
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007843 *
Krunal Soni52198e42016-09-26 13:53:09 -07007844 * This API will update the HT config in CFG after taking intersection
7845 * of INI and firmware capabilities provided reading CFG
7846 *
7847 * Return: true or false
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007848 */
Jeff Johnsonb6909be2017-08-28 12:07:19 -07007849static bool hdd_update_ht_cap_in_cfg(struct hdd_context *hdd_ctx)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007850{
Krunal Soni5c390162016-09-26 15:07:05 -07007851 uint32_t val32;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007852 uint16_t val16;
Krunal Soni5c390162016-09-26 15:07:05 -07007853 bool status = true;
Krunal Sonidf0f8742016-09-26 14:56:31 -07007854 tSirMacHTCapabilityInfo *ht_cap_info;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007855
Krunal Sonidf0f8742016-09-26 14:56:31 -07007856 if (sme_cfg_get_int(hdd_ctx->hHal, WNI_CFG_HT_CAP_INFO,
Krunal Soni5c390162016-09-26 15:07:05 -07007857 &val32) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307858 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007859 status = false;
Krunal Soni5c390162016-09-26 15:07:05 -07007860 hdd_err("Could not get WNI_CFG_HT_CAP_INFO");
Sandeep Puligilla607f34a2016-05-25 14:37:47 -07007861 }
Krunal Soni5c390162016-09-26 15:07:05 -07007862 val16 = (uint16_t) val32;
Krunal Sonidf0f8742016-09-26 14:56:31 -07007863 ht_cap_info = (tSirMacHTCapabilityInfo *) &val16;
Krunal Sonia2c0e412017-05-04 14:12:41 +05307864 ht_cap_info->advCodingCap &= hdd_ctx->config->enable_rx_ldpc;
Krunal Soni5c390162016-09-26 15:07:05 -07007865 ht_cap_info->rxSTBC = QDF_MIN(ht_cap_info->rxSTBC,
7866 hdd_ctx->config->enableRxSTBC);
7867 ht_cap_info->txSTBC &= hdd_ctx->config->enableTxSTBC;
7868 ht_cap_info->shortGI20MHz &= hdd_ctx->config->ShortGI20MhzEnable;
7869 ht_cap_info->shortGI40MHz &= hdd_ctx->config->ShortGI40MhzEnable;
7870 val32 = val16;
7871 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_HT_CAP_INFO, val32) ==
7872 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007873 status = false;
Krunal Soni5c390162016-09-26 15:07:05 -07007874 hdd_err("Could not set WNI_CFG_HT_CAP_INFO");
Krunal Soni52198e42016-09-26 13:53:09 -07007875 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07007876 return status;
Krunal Soni52198e42016-09-26 13:53:09 -07007877}
7878
7879/**
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007880 * hdd_update_vht_cap_in_cfg() - to update VHT cap in global CFG
Krunal Sonidf0f8742016-09-26 14:56:31 -07007881 * @hdd_ctx: pointer to hdd context
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007882 *
7883 * This API will update the VHT config in CFG after taking intersection
7884 * of INI and firmware capabilities provided reading CFG
7885 *
7886 * Return: true or false
7887 */
Jeff Johnsonb6909be2017-08-28 12:07:19 -07007888static bool hdd_update_vht_cap_in_cfg(struct hdd_context *hdd_ctx)
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007889{
Krunal Sonidf0f8742016-09-26 14:56:31 -07007890 bool status = true;
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007891 uint32_t val;
Krunal Sonidf0f8742016-09-26 14:56:31 -07007892 struct hdd_config *config = hdd_ctx->config;
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007893
Krunal Sonidf0f8742016-09-26 14:56:31 -07007894 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_VHT_ENABLE_TXBF_20MHZ,
7895 config->enableTxBFin20MHz) ==
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007896 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007897 status = false;
7898 hdd_err("Couldn't set value for WNI_CFG_VHT_ENABLE_TXBF_20MHZ");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007899 }
7900 /* Based on cfg.ini, update the Basic MCS set, RX/TX MCS map
7901 * in the cfg.dat. Valid values are 0(MCS0-7), 1(MCS0-8), 2(MCS0-9)
7902 * we update only the least significant 2 bits in the
7903 * corresponding fields.
7904 */
Krunal Sonidf0f8742016-09-26 14:56:31 -07007905 if ((config->dot11Mode == eHDD_DOT11_MODE_AUTO) ||
7906 (config->dot11Mode == eHDD_DOT11_MODE_11ac_ONLY) ||
7907 (config->dot11Mode == eHDD_DOT11_MODE_11ac)) {
Kiran Kumar Lokeree25d3fc2017-07-21 15:37:04 -07007908 /* Currently shortGI40Mhz is used for shortGI80Mhz and 160MHz*/
Krunal Sonidf0f8742016-09-26 14:56:31 -07007909 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_VHT_SHORT_GI_80MHZ,
7910 config->ShortGI40MhzEnable) == QDF_STATUS_E_FAILURE) {
7911 status = false;
7912 hdd_err("Couldn't pass WNI_VHT_SHORT_GI_80MHZ to CFG");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007913 }
Kiran Kumar Lokeree25d3fc2017-07-21 15:37:04 -07007914
7915 if (sme_cfg_set_int(hdd_ctx->hHal,
7916 WNI_CFG_VHT_SHORT_GI_160_AND_80_PLUS_80MHZ,
7917 config->ShortGI40MhzEnable) == QDF_STATUS_E_FAILURE) {
7918 status = false;
7919 hdd_err("Couldn't pass SHORT_GI_160MHZ to CFG");
7920 }
7921
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07007922 /* Hardware is capable of doing
7923 * 128K AMPDU in 11AC mode
7924 */
Krunal Sonidf0f8742016-09-26 14:56:31 -07007925 if (sme_cfg_set_int(hdd_ctx->hHal,
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007926 WNI_CFG_VHT_AMPDU_LEN_EXPONENT,
Krunal Sonidf0f8742016-09-26 14:56:31 -07007927 config->fVhtAmpduLenExponent) ==
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007928 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007929 status = false;
7930 hdd_err("Couldn't pass on WNI_CFG_VHT_AMPDU_LEN_EXPONENT to CFG");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007931 }
7932 /* Change MU Bformee only when TxBF is enabled */
Krunal Sonidf0f8742016-09-26 14:56:31 -07007933 if (config->enableTxBF) {
7934 sme_cfg_get_int(hdd_ctx->hHal,
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007935 WNI_CFG_VHT_MU_BEAMFORMEE_CAP, &val);
7936
Krunal Sonidf0f8742016-09-26 14:56:31 -07007937 if (val != config->enableMuBformee) {
7938 if (sme_cfg_set_int(hdd_ctx->hHal,
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007939 WNI_CFG_VHT_MU_BEAMFORMEE_CAP,
Krunal Sonidf0f8742016-09-26 14:56:31 -07007940 config->enableMuBformee
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007941 ) == QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007942 status = false;
7943 hdd_err("Couldn't pass on WNI_CFG_VHT_MU_BEAMFORMEE_CAP to CFG");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007944 }
7945 }
7946 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07007947 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_VHT_MAX_MPDU_LENGTH,
7948 config->vhtMpduLen) == QDF_STATUS_E_FAILURE) {
7949 status = false;
7950 hdd_err("Couldn't pass on WNI_CFG_VHT_MAX_MPDU_LENGTH to CFG");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007951 }
7952
Krunal Sonidf0f8742016-09-26 14:56:31 -07007953 if (config->enable2x2 && config->enable_su_tx_bformer) {
7954 if (sme_cfg_set_int(hdd_ctx->hHal,
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007955 WNI_CFG_VHT_SU_BEAMFORMER_CAP,
Krunal Sonidf0f8742016-09-26 14:56:31 -07007956 config->enable_su_tx_bformer) ==
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007957 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007958 status = false;
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007959 hdd_err("set SU_BEAMFORMER_CAP to CFG failed");
7960 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07007961 if (sme_cfg_set_int(hdd_ctx->hHal,
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007962 WNI_CFG_VHT_NUM_SOUNDING_DIMENSIONS,
7963 NUM_OF_SOUNDING_DIMENSIONS) ==
7964 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007965 status = false;
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007966 hdd_err("failed to set NUM_OF_SOUNDING_DIM");
7967 }
7968 }
7969 }
7970
Krunal Sonidf0f8742016-09-26 14:56:31 -07007971 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_VHT_RXSTBC,
7972 config->enableRxSTBC) == QDF_STATUS_E_FAILURE) {
7973 status = false;
7974 hdd_err("Couldn't pass on WNI_CFG_VHT_RXSTBC to CFG");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007975 }
7976
Krunal Sonidf0f8742016-09-26 14:56:31 -07007977 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_VHT_TXSTBC,
7978 config->enableTxSTBC) == QDF_STATUS_E_FAILURE) {
7979 status = false;
7980 hdd_err("Couldn't pass on WNI_CFG_VHT_TXSTBC to CFG");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007981 }
7982
jiad4a7a33c2017-08-08 15:32:24 +08007983 /* first get HW RX LDPC capability */
Krunal Soni5c390162016-09-26 15:07:05 -07007984 if (sme_cfg_get_int(hdd_ctx->hHal, WNI_CFG_VHT_LDPC_CODING_CAP, &val) ==
7985 QDF_STATUS_E_FAILURE) {
jiad4a7a33c2017-08-08 15:32:24 +08007986 status = false;
Krunal Soni5c390162016-09-26 15:07:05 -07007987 hdd_err("Could not get WNI_CFG_VHT_LDPC_CODING_CAP");
7988 }
jiad4a7a33c2017-08-08 15:32:24 +08007989
7990 /* enable RX LDPC only when both INI and HW are enabled */
Krunal Sonidf0f8742016-09-26 14:56:31 -07007991 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_VHT_LDPC_CODING_CAP,
jiad4a7a33c2017-08-08 15:32:24 +08007992 config->enable_rx_ldpc && val) ==
7993 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007994 status = false;
7995 hdd_err("Couldn't pass on WNI_CFG_VHT_LDPC_CODING_CAP to CFG");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007996 }
7997
Krunal Sonidf0f8742016-09-26 14:56:31 -07007998 if (sme_cfg_set_int(hdd_ctx->hHal,
Krunal Soni6c7c39f2016-09-26 14:30:34 -07007999 WNI_CFG_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED,
Krunal Sonidf0f8742016-09-26 14:56:31 -07008000 config->txBFCsnValue) ==
Krunal Soni6c7c39f2016-09-26 14:30:34 -07008001 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07008002 status = false;
8003 hdd_err("Couldn't pass on WNI_CFG_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED to CFG");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07008004 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07008005 return status;
Krunal Soni6c7c39f2016-09-26 14:30:34 -07008006
8007}
8008
8009/**
Krunal Sonidf0f8742016-09-26 14:56:31 -07008010 * hdd_update_config_cfg() - API to update INI setting based on hw/fw caps
8011 * @hdd_ctx: pointer to hdd_ctx
Krunal Soni52198e42016-09-26 13:53:09 -07008012 *
Krunal Sonidf0f8742016-09-26 14:56:31 -07008013 * This API reads the cfg file which is updated with hardware/firmware
8014 * capabilities and intersect it with INI setting provided by user. After
8015 * taking intersection it adjust cfg it self. For example, if user has enabled
8016 * RX LDPC through INI but hardware/firmware doesn't support it then disable
8017 * it in CFG file here.
8018 *
8019 * Return: true or false based on outcome.
Krunal Soni52198e42016-09-26 13:53:09 -07008020 */
Jeff Johnsonb6909be2017-08-28 12:07:19 -07008021bool hdd_update_config_cfg(struct hdd_context *hdd_ctx)
Krunal Soni52198e42016-09-26 13:53:09 -07008022{
Krunal Sonidf0f8742016-09-26 14:56:31 -07008023 bool status = true;
Krunal Sonidf0f8742016-09-26 14:56:31 -07008024 struct hdd_config *config = hdd_ctx->config;
Krunal Soni52198e42016-09-26 13:53:09 -07008025
8026 /*
8027 * During the initialization both 2G and 5G capabilities should be same.
8028 * So read 5G HT capablity and update 2G and 5G capablities.
8029 */
Krunal Sonidf0f8742016-09-26 14:56:31 -07008030 if (!hdd_update_ht_cap_in_cfg(hdd_ctx)) {
8031 status = false;
8032 hdd_err("Couldn't set HT CAP in cfg");
Krunal Soni52198e42016-09-26 13:53:09 -07008033 }
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008034
Krunal Sonidf0f8742016-09-26 14:56:31 -07008035 if (!hdd_update_vht_cap_in_cfg(hdd_ctx)) {
8036 status = false;
8037 hdd_err("Couldn't set VHT CAP in cfg");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07008038 }
8039
Krishna Kumaar Natarajan90bb6f12017-03-03 21:05:52 -08008040 if (0 != hdd_update_he_cap_in_cfg(hdd_ctx)) {
8041 status = false;
8042 hdd_err("Couldn't set HE CAP in cfg");
8043 }
8044
Krunal Sonidf0f8742016-09-26 14:56:31 -07008045 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_MAX_RX_AMPDU_FACTOR,
8046 config->MaxRxAmpduFactor) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308047 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07008048 status = false;
8049 hdd_err("Couldn't pass on WNI_CFG_HT_AMPDU_PARAMS_MAX_RX_AMPDU_FACTOR to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008050 }
8051
Krunal Sonidf0f8742016-09-26 14:56:31 -07008052 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_MPDU_DENSITY,
8053 config->ht_mpdu_density) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308054 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07008055 status = false;
8056 hdd_err("Couldn't pass on WNI_CFG_MPDU_DENSITY to CFG");
Krishna Kumaar Natarajan22b59a72015-11-23 18:54:58 -08008057 }
8058
Krunal Sonidf0f8742016-09-26 14:56:31 -07008059 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_SHORT_PREAMBLE,
8060 config->fIsShortPreamble) == QDF_STATUS_E_FAILURE) {
8061 status = false;
8062 hdd_err("Couldn't pass on WNI_CFG_SHORT_PREAMBLE to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008063 }
8064
Krunal Sonidf0f8742016-09-26 14:56:31 -07008065 if (sme_cfg_set_int(hdd_ctx->hHal,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008066 WNI_CFG_PASSIVE_MINIMUM_CHANNEL_TIME,
Krunal Sonidf0f8742016-09-26 14:56:31 -07008067 config->nPassiveMinChnTime)
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308068 == QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07008069 status = false;
8070 hdd_err("Couldn't pass on WNI_CFG_PASSIVE_MINIMUM_CHANNEL_TIME to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008071 }
8072
Krunal Sonidf0f8742016-09-26 14:56:31 -07008073 if (sme_cfg_set_int(hdd_ctx->hHal,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008074 WNI_CFG_PASSIVE_MAXIMUM_CHANNEL_TIME,
Krunal Sonidf0f8742016-09-26 14:56:31 -07008075 config->nPassiveMaxChnTime)
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308076 == QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07008077 status = false;
8078 hdd_err("Couldn't pass on WNI_CFG_PASSIVE_MAXIMUM_CHANNEL_TIME to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008079 }
8080
Krunal Sonidf0f8742016-09-26 14:56:31 -07008081 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_BEACON_INTERVAL,
8082 config->nBeaconInterval) == QDF_STATUS_E_FAILURE) {
8083 status = false;
8084 hdd_err("Couldn't pass on WNI_CFG_BEACON_INTERVAL to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008085 }
8086
Krunal Sonidf0f8742016-09-26 14:56:31 -07008087 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_MAX_PS_POLL,
8088 config->nMaxPsPoll) == QDF_STATUS_E_FAILURE) {
8089 status = false;
8090 hdd_err("Couldn't pass on WNI_CFG_MAX_PS_POLL to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008091 }
8092
Krunal Sonidf0f8742016-09-26 14:56:31 -07008093 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_PS_DATA_INACTIVITY_TIMEOUT,
8094 config->nDataInactivityTimeout) == QDF_STATUS_E_FAILURE) {
8095 status = false;
8096 hdd_err("Couldn't pass on WNI_CFG_PS_DATA_INACTIVITY_TIMEOUT to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008097 }
8098
Mukul Sharmaed92f2f2017-04-20 00:06:28 +05308099 if (sme_cfg_set_int(hdd_ctx->hHal,
8100 WNI_CFG_PS_WOW_DATA_INACTIVITY_TIMEOUT,
8101 config->wow_data_inactivity_timeout) == QDF_STATUS_E_FAILURE) {
8102 status = false;
8103 hdd_err("Fail to pass WNI_CFG_PS_WOW_DATA_INACTIVITY_TO CFG");
8104 }
8105
Krunal Sonidf0f8742016-09-26 14:56:31 -07008106 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_ENABLE_LTE_COEX,
8107 config->enableLTECoex) == QDF_STATUS_E_FAILURE) {
8108 status = false;
8109 hdd_err("Couldn't pass on WNI_CFG_ENABLE_LTE_COEX to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008110 }
8111
Krunal Sonidf0f8742016-09-26 14:56:31 -07008112 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_AP_KEEP_ALIVE_TIMEOUT,
8113 config->apKeepAlivePeriod) == QDF_STATUS_E_FAILURE) {
8114 status = false;
8115 hdd_err("Couldn't pass on WNI_CFG_AP_KEEP_ALIVE_TIMEOUT to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008116 }
8117
Krunal Sonidf0f8742016-09-26 14:56:31 -07008118 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_GO_KEEP_ALIVE_TIMEOUT,
8119 config->goKeepAlivePeriod) == QDF_STATUS_E_FAILURE) {
8120 status = false;
8121 hdd_err("Couldn't pass on WNI_CFG_GO_KEEP_ALIVE_TIMEOUT to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008122 }
8123
Krunal Sonidf0f8742016-09-26 14:56:31 -07008124 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_AP_LINK_MONITOR_TIMEOUT,
8125 config->apLinkMonitorPeriod) == QDF_STATUS_E_FAILURE) {
8126 status = false;
8127 hdd_err("Couldn't pass on WNI_CFG_AP_LINK_MONITOR_TIMEOUT to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008128 }
8129
Krunal Sonidf0f8742016-09-26 14:56:31 -07008130 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_GO_LINK_MONITOR_TIMEOUT,
8131 config->goLinkMonitorPeriod) == QDF_STATUS_E_FAILURE) {
8132 status = false;
8133 hdd_err("Couldn't pass on WNI_CFG_GO_LINK_MONITOR_TIMEOUT to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008134 }
8135
Krunal Sonidf0f8742016-09-26 14:56:31 -07008136 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_SINGLE_TID_RC,
8137 config->bSingleTidRc) == QDF_STATUS_E_FAILURE) {
8138 status = false;
8139 hdd_err("Couldn't pass on WNI_CFG_SINGLE_TID_RC to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008140 }
8141
Krunal Sonidf0f8742016-09-26 14:56:31 -07008142 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TELE_BCN_WAKEUP_EN,
8143 config->teleBcnWakeupEn) == QDF_STATUS_E_FAILURE) {
8144 status = false;
8145 hdd_err("Couldn't pass on WNI_CFG_TELE_BCN_WAKEUP_EN to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008146 }
8147
Krunal Sonidf0f8742016-09-26 14:56:31 -07008148 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TELE_BCN_MAX_LI,
8149 config->nTeleBcnMaxListenInterval) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308150 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07008151 status = false;
8152 hdd_err("Couldn't pass on WNI_CFG_TELE_BCN_MAX_LI to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008153 }
8154
Krunal Sonidf0f8742016-09-26 14:56:31 -07008155 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_INFRA_STA_KEEP_ALIVE_PERIOD,
8156 config->infraStaKeepAlivePeriod) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308157 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07008158 status = false;
8159 hdd_err("Couldn't pass on WNI_CFG_INFRA_STA_KEEP_ALIVE_PERIOD to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008160 }
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008161
Krunal Sonidf0f8742016-09-26 14:56:31 -07008162 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_FRAGMENTATION_THRESHOLD,
8163 config->FragmentationThreshold) == QDF_STATUS_E_FAILURE) {
8164 status = false;
8165 hdd_err("Couldn't pass on WNI_CFG_FRAGMENTATION_THRESHOLD to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008166 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07008167 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_RTS_THRESHOLD,
8168 config->RTSThreshold) == QDF_STATUS_E_FAILURE) {
8169 status = false;
8170 hdd_err("Couldn't pass on WNI_CFG_RTS_THRESHOLD to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008171 }
8172
Krunal Sonidf0f8742016-09-26 14:56:31 -07008173 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_11D_ENABLED,
8174 config->Is11dSupportEnabled) == QDF_STATUS_E_FAILURE) {
8175 status = false;
8176 hdd_err("Couldn't pass on WNI_CFG_11D_ENABLED to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008177 }
8178
Krunal Sonidf0f8742016-09-26 14:56:31 -07008179 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_DFS_MASTER_ENABLED,
8180 config->enableDFSMasterCap) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308181 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07008182 status = false;
8183 hdd_err("Failure: Couldn't set value for WNI_CFG_DFS_MASTER_ENABLED");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008184 }
8185
Krunal Sonidf0f8742016-09-26 14:56:31 -07008186 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_HEART_BEAT_THRESHOLD,
8187 config->HeartbeatThresh24) == QDF_STATUS_E_FAILURE) {
8188 status = false;
8189 hdd_err("Couldn't pass on WNI_CFG_HEART_BEAT_THRESHOLD to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008190 }
8191
Krunal Sonidf0f8742016-09-26 14:56:31 -07008192 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_ENABLE_MC_ADDR_LIST,
8193 config->fEnableMCAddrList) == QDF_STATUS_E_FAILURE) {
8194 status = false;
8195 hdd_err("Couldn't pass on WNI_CFG_ENABLE_MC_ADDR_LIST to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008196 }
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008197
Krunal Sonidf0f8742016-09-26 14:56:31 -07008198 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_ENABLE_MCC_ADAPTIVE_SCHED,
8199 config->enableMCCAdaptiveScheduler) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308200 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07008201 status = false;
8202 hdd_err("Couldn't pass on WNI_CFG_ENABLE_MCC_ADAPTIVE_SCHED to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008203 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07008204 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_DISABLE_LDPC_WITH_TXBF_AP,
8205 config->disableLDPCWithTxbfAP) == QDF_STATUS_E_FAILURE) {
8206 status = false;
8207 hdd_err("Couldn't pass on WNI_CFG_DISABLE_LDPC_WITH_TXBF_AP to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008208 }
8209
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008210#ifdef FEATURE_WLAN_TDLS
8211
Krunal Sonidf0f8742016-09-26 14:56:31 -07008212 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TDLS_QOS_WMM_UAPSD_MASK,
8213 config->fTDLSUapsdMask) == QDF_STATUS_E_FAILURE) {
8214 status = false;
8215 hdd_err("Couldn't pass on WNI_CFG_TDLS_QOS_WMM_UAPSD_MASK to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008216 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07008217 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TDLS_BUF_STA_ENABLED,
8218 config->fEnableTDLSBufferSta) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308219 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07008220 status = false;
8221 hdd_err("Couldn't pass on WNI_CFG_TDLS_BUF_STA_ENABLED to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008222 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07008223 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TDLS_PUAPSD_INACT_TIME,
8224 config->fTDLSPuapsdInactivityTimer) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308225 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07008226 status = false;
8227 hdd_err("Couldn't pass on WNI_CFG_TDLS_PUAPSD_INACT_TIME to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008228 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07008229 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TDLS_RX_FRAME_THRESHOLD,
8230 config->fTDLSRxFrameThreshold) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308231 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07008232 status = false;
8233 hdd_err("Couldn't pass on WNI_CFG_TDLS_RX_FRAME_THRESHOLD to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008234 }
8235
Krunal Sonidf0f8742016-09-26 14:56:31 -07008236 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TDLS_OFF_CHANNEL_ENABLED,
8237 config->fEnableTDLSOffChannel) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308238 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07008239 status = false;
8240 hdd_err("Couldn't pass on WNI_CFG_TDLS_BUF_STA_ENABLED to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008241 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07008242 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TDLS_WMM_MODE_ENABLED,
8243 config->fEnableTDLSWmmMode) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308244 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07008245 status = false;
8246 hdd_err("Couldn't pass on WNI_CFG_TDLS_WMM_MODE_ENABLED to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008247 }
8248#endif
8249
Krunal Sonidf0f8742016-09-26 14:56:31 -07008250 if (sme_cfg_set_int(hdd_ctx->hHal,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008251 WNI_CFG_DEBUG_P2P_REMAIN_ON_CHANNEL,
Krunal Sonidf0f8742016-09-26 14:56:31 -07008252 config->debugP2pRemainOnChannel) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308253 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07008254 status = false;
8255 hdd_err("Couldn't pass on WNI_CFG_DEBUG_P2P_REMAIN_ON_CHANNEL to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008256 }
8257#ifdef WLAN_FEATURE_11W
Krunal Sonidf0f8742016-09-26 14:56:31 -07008258 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_PMF_SA_QUERY_MAX_RETRIES,
8259 config->pmfSaQueryMaxRetries) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308260 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07008261 status = false;
8262 hdd_err("Couldn't pass on WNI_CFG_SA_QUERY_MAX_RETRIES to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008263 }
8264
Krunal Sonidf0f8742016-09-26 14:56:31 -07008265 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_PMF_SA_QUERY_RETRY_INTERVAL,
8266 config->pmfSaQueryRetryInterval) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308267 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07008268 status = false;
8269 hdd_err("Couldn't pass on WNI_CFG_SA_QUERY_RETRY_INTERVAL to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008270 }
8271#endif
8272
Krunal Sonidf0f8742016-09-26 14:56:31 -07008273 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_IBSS_ATIM_WIN_SIZE,
8274 config->ibssATIMWinSize) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308275 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07008276 status = false;
8277 hdd_err("Couldn't pass on WNI_CFG_IBSS_ATIM_WIN_SIZE to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008278 }
Krunal Soni53993f72016-07-08 18:20:03 -07008279
Krunal Sonidf0f8742016-09-26 14:56:31 -07008280 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TGT_GTX_USR_CFG,
8281 config->tgt_gtx_usr_cfg) == QDF_STATUS_E_FAILURE) {
8282 status = false;
8283 hdd_err("Couldn't pass on WNI_CFG_TGT_GTX_USR_CFG to CCM");
Rajeev Kumar Sirasanagandlaaf474742016-09-06 17:54:50 +05308284 }
Hong Shi417824f2017-01-12 02:31:14 +08008285
8286 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_MAX_HT_MCS_TX_DATA,
8287 config->max_ht_mcs_txdata) ==
8288 QDF_STATUS_E_FAILURE) {
8289 status = false;
8290 hdd_err("Couldn't pass on WNI_CFG_MAX_HT_MCS_TX_DATA to CCM");
8291 }
Hong Shia9ef8712017-02-19 21:54:02 +08008292
8293 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_DISABLE_ABG_RATE_FOR_TX_DATA,
8294 config->disable_abg_rate_txdata) ==
8295 QDF_STATUS_E_FAILURE) {
8296 status = false;
8297 hdd_err("Couldn't pass on WNI_CFG_DISABLE_ABG_RATE_FOR_TX_DATA to CCM");
8298 }
8299
Hong Shib90718f2017-02-20 00:57:22 +08008300 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_RATE_FOR_TX_MGMT,
8301 config->rate_for_tx_mgmt) ==
8302 QDF_STATUS_E_FAILURE) {
8303 status = false;
8304 hdd_err("Couldn't pass on WNI_CFG_RATE_FOR_TX_MGMT to CCM");
8305 }
8306
lifeng13a89d72017-05-10 14:49:29 +08008307 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_SAP_MAX_MCS_DATA,
8308 config->sap_max_mcs_txdata) ==
8309 QDF_STATUS_E_FAILURE) {
8310 status = false;
8311 hdd_err("Could not pass on WNI_CFG_SAP_MAX_MCS_DATA to CCM");
8312 }
8313
Hong Shi2d384fd2017-05-22 18:38:41 +08008314 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_RATE_FOR_TX_MGMT_2G,
8315 config->rate_for_tx_mgmt_2g) ==
8316 QDF_STATUS_E_FAILURE) {
8317 status = false;
8318 hdd_err("Couldn't pass on WNI_CFG_RATE_FOR_TX_MGMT_2G to CCM");
8319 }
8320
8321 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_RATE_FOR_TX_MGMT_5G,
8322 config->rate_for_tx_mgmt_5g) ==
8323 QDF_STATUS_E_FAILURE) {
8324 status = false;
8325 hdd_err("Couldn't pass on WNI_CFG_RATE_FOR_TX_MGMT_5G to CCM");
8326 }
8327
Krunal Sonidf0f8742016-09-26 14:56:31 -07008328 return status;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008329}
Krishna Kumaar Natarajan90bb6f12017-03-03 21:05:52 -08008330
Kapil Gupta5cda2252016-12-29 18:44:26 +05308331/**
8332 * hdd_update_per_config_to_sme() -initializes the sme config for PER roam
8333 *
8334 * @hdd_ctx: the pointer to hdd context
8335 * @sme_config: sme configuation pointer
8336 *
8337 * Return: None
8338 */
Jeff Johnsonb6909be2017-08-28 12:07:19 -07008339static void hdd_update_per_config_to_sme(struct hdd_context *hdd_ctx,
Kapil Gupta5cda2252016-12-29 18:44:26 +05308340 tSmeConfigParams *sme_config)
8341{
8342 sme_config->csrConfig.per_roam_config.enable =
8343 hdd_ctx->config->is_per_roam_enabled;
8344
8345 /* Assigning Tx and Rx for same value */
8346 sme_config->csrConfig.per_roam_config.tx_high_rate_thresh =
8347 hdd_ctx->config->per_roam_high_rate_threshold;
8348 sme_config->csrConfig.per_roam_config.rx_high_rate_thresh =
8349 hdd_ctx->config->per_roam_high_rate_threshold;
8350
8351 /* Assigning Tx and Rx for same value */
8352 sme_config->csrConfig.per_roam_config.tx_low_rate_thresh =
8353 hdd_ctx->config->per_roam_low_rate_threshold;
8354 sme_config->csrConfig.per_roam_config.rx_low_rate_thresh =
8355 hdd_ctx->config->per_roam_low_rate_threshold;
8356
8357 /* Assigning Tx and Rx for same value */
8358 sme_config->csrConfig.per_roam_config.tx_rate_thresh_percnt =
8359 hdd_ctx->config->per_roam_th_percent;
8360 sme_config->csrConfig.per_roam_config.rx_rate_thresh_percnt =
8361 hdd_ctx->config->per_roam_th_percent;
8362
8363 sme_config->csrConfig.per_roam_config.per_rest_time =
8364 hdd_ctx->config->per_roam_rest_time;
Kapil Gupta957827b2017-02-13 15:47:04 +05308365 sme_config->csrConfig.per_roam_config.tx_per_mon_time =
8366 hdd_ctx->config->per_roam_mon_time;
8367 sme_config->csrConfig.per_roam_config.rx_per_mon_time =
8368 hdd_ctx->config->per_roam_mon_time;
Selvaraj, Sridhar0641fab2017-05-17 16:02:00 +05308369
8370 /* Assigning minimum roamable AP RSSI for candidate selection */
8371 sme_config->csrConfig.per_roam_config.min_candidate_rssi =
8372 hdd_ctx->config->min_candidate_rssi;
Kapil Gupta5cda2252016-12-29 18:44:26 +05308373}
8374
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008375/**
Tushnim Bhattacharyyaba8ee932017-03-23 09:27:40 -07008376 * hdd_set_policy_mgr_user_cfg() -initializes the policy manager
8377 * configuration parameters
8378 *
Jeff Johnson723234b2017-09-03 08:49:15 -07008379 * @hdd_ctx: the pointer to hdd context
Tushnim Bhattacharyyaba8ee932017-03-23 09:27:40 -07008380 *
8381 * Return: QDF_STATUS_SUCCESS if configuration is correctly applied,
8382 * otherwise the appropriate QDF_STATUS would be returned
8383 */
Jeff Johnsonb6909be2017-08-28 12:07:19 -07008384QDF_STATUS hdd_set_policy_mgr_user_cfg(struct hdd_context *hdd_ctx)
Tushnim Bhattacharyyaba8ee932017-03-23 09:27:40 -07008385{
8386 QDF_STATUS status;
8387 struct policy_mgr_user_cfg *user_cfg;
8388
8389 user_cfg = qdf_mem_malloc(sizeof(*user_cfg));
8390 if (NULL == user_cfg) {
8391 hdd_err("unable to allocate user_cfg");
8392 return QDF_STATUS_E_NOMEM;
8393 }
8394
8395 user_cfg->conc_system_pref = hdd_ctx->config->conc_system_pref;
8396 user_cfg->enable_mcc_adaptive_scheduler =
8397 hdd_ctx->config->enableMCCAdaptiveScheduler;
8398 user_cfg->max_concurrent_active_sessions =
8399 hdd_ctx->config->gMaxConcurrentActiveSessions;
Tushnim Bhattacharyya7e546692017-03-23 18:30:29 -07008400 user_cfg->enable2x2 = hdd_ctx->config->enable2x2;
Tushnim Bhattacharyya5cc9edc2017-04-26 12:33:59 -07008401 user_cfg->mcc_to_scc_switch_mode =
8402 hdd_ctx->config->WlanMccToSccSwitchMode;
8403 user_cfg->sub_20_mhz_enabled = cds_is_sub_20_mhz_enabled();
Ganesh Kondabattini4a7f5b92017-11-21 14:58:39 +05308404 user_cfg->is_sta_sap_scc_allowed_on_dfs_chan =
8405 hdd_ctx->config->sta_sap_scc_on_dfs_chan;
Yeshwanth Sriram Guntuka469f9572018-02-12 13:28:22 +05308406 user_cfg->channel_select_logic_conc =
8407 hdd_ctx->config->channel_select_logic_conc;
Tushnim Bhattacharyyaba8ee932017-03-23 09:27:40 -07008408 status = policy_mgr_set_user_cfg(hdd_ctx->hdd_psoc, user_cfg);
Tushnim Bhattacharyyaba8ee932017-03-23 09:27:40 -07008409 qdf_mem_free(user_cfg);
8410
8411 return status;
8412}
Krunal Soni707eb782018-01-18 12:04:19 -08008413
8414eCsrRoamWmmUserModeType hdd_to_csr_wmm_mode(enum hdd_wmm_user_mode mode)
Srinivas Girigowda3ea486d2017-06-28 17:19:49 -07008415{
8416 switch (mode) {
8417 case HDD_WMM_USER_MODE_QBSS_ONLY:
8418 return eCsrRoamWmmQbssOnly;
8419 case HDD_WMM_USER_MODE_NO_QOS:
8420 return eCsrRoamWmmNoQos;
8421 case HDD_WMM_USER_MODE_AUTO:
8422 default:
8423 return eCsrRoamWmmAuto;
8424 }
8425}
8426
8427/**
Himanshu Agarwal8bcec572017-09-28 11:54:37 +05308428 * hdd_update_score_params() -initializes the sme config for bss score params
8429 *
8430 * @config: pointer to config
8431 * @score_params: bss score params
8432 *
8433 * Return: None
8434 */
8435static void hdd_update_bss_score_params(struct hdd_config *config,
8436 struct sir_score_config *score_params)
8437{
8438 int total_weight;
8439
8440 score_params->enable_scoring_for_roam =
8441 config->enable_scoring_for_roam;
8442 score_params->weight_cfg.rssi_weightage = config->rssi_weightage;
8443 score_params->weight_cfg.ht_caps_weightage = config->ht_caps_weightage;
8444 score_params->weight_cfg.vht_caps_weightage =
8445 config->vht_caps_weightage;
8446 score_params->weight_cfg.he_caps_weightage =
8447 config->he_caps_weightage;
8448 score_params->weight_cfg.chan_width_weightage =
8449 config->chan_width_weightage;
8450 score_params->weight_cfg.chan_band_weightage =
8451 config->chan_band_weightage;
8452 score_params->weight_cfg.nss_weightage = config->nss_weightage;
8453 score_params->weight_cfg.beamforming_cap_weightage =
8454 config->beamforming_cap_weightage;
8455 score_params->weight_cfg.pcl_weightage = config->pcl_weightage;
8456 score_params->weight_cfg.channel_congestion_weightage =
8457 config->channel_congestion_weightage;
8458 score_params->weight_cfg.oce_wan_weightage = config->oce_wan_weightage;
8459
8460 total_weight = score_params->weight_cfg.rssi_weightage +
8461 score_params->weight_cfg.ht_caps_weightage +
8462 score_params->weight_cfg.vht_caps_weightage +
8463 score_params->weight_cfg.he_caps_weightage +
8464 score_params->weight_cfg.chan_width_weightage +
8465 score_params->weight_cfg.chan_band_weightage +
8466 score_params->weight_cfg.nss_weightage +
8467 score_params->weight_cfg.beamforming_cap_weightage +
8468 score_params->weight_cfg.pcl_weightage +
8469 score_params->weight_cfg.channel_congestion_weightage +
8470 score_params->weight_cfg.oce_wan_weightage;
8471
8472 if (total_weight > BEST_CANDIDATE_MAX_WEIGHT) {
8473 hdd_err("total weight is greater than %d fallback to default values",
8474 BEST_CANDIDATE_MAX_WEIGHT);
8475
8476 score_params->weight_cfg.rssi_weightage = RSSI_WEIGHTAGE;
8477 score_params->weight_cfg.ht_caps_weightage =
8478 HT_CAPABILITY_WEIGHTAGE;
8479 score_params->weight_cfg.vht_caps_weightage = VHT_CAP_WEIGHTAGE;
8480 score_params->weight_cfg.he_caps_weightage = HE_CAP_WEIGHTAGE;
8481 score_params->weight_cfg.chan_width_weightage =
8482 CHAN_WIDTH_WEIGHTAGE;
8483 score_params->weight_cfg.chan_band_weightage =
8484 CHAN_BAND_WEIGHTAGE;
8485 score_params->weight_cfg.nss_weightage = NSS_WEIGHTAGE;
8486 score_params->weight_cfg.beamforming_cap_weightage =
8487 BEAMFORMING_CAP_WEIGHTAGE;
8488 score_params->weight_cfg.pcl_weightage = PCL_WEIGHT;
8489 score_params->weight_cfg.channel_congestion_weightage =
8490 CHANNEL_CONGESTION_WEIGHTAGE;
8491 score_params->weight_cfg.oce_wan_weightage = OCE_WAN_WEIGHTAGE;
8492 }
8493
8494 score_params->bandwidth_weight_per_index =
8495 hdd_limit_max_per_index_score(
8496 config->bandwidth_weight_per_index);
8497 score_params->nss_weight_per_index =
8498 hdd_limit_max_per_index_score(config->nss_weight_per_index);
8499 score_params->band_weight_per_index =
8500 hdd_limit_max_per_index_score(config->band_weight_per_index);
8501
8502 score_params->rssi_score.best_rssi_threshold =
8503 config->best_rssi_threshold;
8504 score_params->rssi_score.good_rssi_threshold =
8505 config->good_rssi_threshold;
8506 score_params->rssi_score.bad_rssi_threshold =
8507 config->bad_rssi_threshold;
8508 score_params->rssi_score.good_rssi_pcnt = config->good_rssi_pcnt;
8509 score_params->rssi_score.bad_rssi_pcnt = config->bad_rssi_pcnt;
8510 score_params->rssi_score.good_rssi_bucket_size =
8511 config->good_rssi_bucket_size;
8512 score_params->rssi_score.bad_rssi_bucket_size =
8513 config->bad_rssi_bucket_size;
8514 score_params->rssi_score.rssi_pref_5g_rssi_thresh =
8515 config->rssi_pref_5g_rssi_thresh;
8516
8517 score_params->esp_qbss_scoring.num_slot = config->num_esp_qbss_slots;
8518 score_params->esp_qbss_scoring.score_pcnt3_to_0 =
8519 hdd_limit_max_per_index_score(
8520 config->esp_qbss_score_slots3_to_0);
8521 score_params->esp_qbss_scoring.score_pcnt7_to_4 =
8522 hdd_limit_max_per_index_score(
8523 config->esp_qbss_score_slots7_to_4);
8524 score_params->esp_qbss_scoring.score_pcnt11_to_8 =
8525 hdd_limit_max_per_index_score(
8526 config->esp_qbss_score_slots11_to_8);
8527 score_params->esp_qbss_scoring.score_pcnt15_to_12 =
8528 hdd_limit_max_per_index_score(
8529 config->esp_qbss_score_slots15_to_12);
8530
8531 score_params->oce_wan_scoring.num_slot = config->num_oce_wan_slots;
8532 score_params->oce_wan_scoring.score_pcnt3_to_0 =
8533 hdd_limit_max_per_index_score(
8534 config->oce_wan_score_slots3_to_0);
8535 score_params->oce_wan_scoring.score_pcnt7_to_4 =
8536 hdd_limit_max_per_index_score(
8537 config->oce_wan_score_slots7_to_4);
8538 score_params->oce_wan_scoring.score_pcnt11_to_8 =
8539 hdd_limit_max_per_index_score(
8540 config->oce_wan_score_slots11_to_8);
8541 score_params->oce_wan_scoring.score_pcnt15_to_12 =
8542 hdd_limit_max_per_index_score(
8543 config->oce_wan_score_slots15_to_12);
8544}
8545
8546/**
Vignesh Viswanathan694e28e2018-01-18 20:53:57 +05308547 * hdd_update_11k_offload_params() - initializes the 11k offload related params
8548 *
8549 * @config: pointer to hdd_config structure
8550 * @csr_config: pointer to the csr config structure
8551 *
8552 * Return: None
8553 */
8554static
8555void hdd_update_11k_offload_params(struct hdd_config *config,
8556 tCsrConfigParam *csr_config)
8557{
8558 csr_config->offload_11k_enable_bitmask =
8559 config->offload_11k_enable_bitmask;
8560 csr_config->neighbor_report_offload.params_bitmask =
8561 config->neighbor_report_offload_params_bitmask;
8562 csr_config->neighbor_report_offload.time_offset =
8563 config->neighbor_report_offload_time_offset;
8564 csr_config->neighbor_report_offload.low_rssi_offset =
8565 config->neighbor_report_offload_low_rssi_offset;
8566 csr_config->neighbor_report_offload.bmiss_count_trigger =
8567 config->neighbor_report_offload_bmiss_count_trigger;
8568 csr_config->neighbor_report_offload.per_threshold_offset =
8569 config->neighbor_report_offload_per_threshold_offset;
8570 csr_config->neighbor_report_offload.neighbor_report_cache_timeout =
8571 config->neighbor_report_offload_cache_timeout;
8572 csr_config->neighbor_report_offload.max_neighbor_report_req_cap =
8573 config->neighbor_report_offload_max_req_cap;
8574}
8575
8576/**
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008577 * hdd_set_sme_config() -initializes the sme configuration parameters
8578 *
Jeff Johnson723234b2017-09-03 08:49:15 -07008579 * @hdd_ctx: the pointer to hdd context
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008580 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308581 * Return: QDF_STATUS_SUCCESS if configuration is correctly applied,
8582 * otherwise the appropriate QDF_STATUS would be returned
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008583 */
Jeff Johnson723234b2017-09-03 08:49:15 -07008584QDF_STATUS hdd_set_sme_config(struct hdd_context *hdd_ctx)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008585{
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308586 QDF_STATUS status = QDF_STATUS_SUCCESS;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008587 tSmeConfigParams *smeConfig;
Yeshwanth Sriram Guntuka2ba6fe92017-10-04 14:40:45 +05308588 uint8_t rrm_capab_len, val;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008589
Jeff Johnson723234b2017-09-03 08:49:15 -07008590 struct hdd_config *pConfig = hdd_ctx->config;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008591
Anurag Chouhan600c3a02016-03-01 10:33:54 +05308592 smeConfig = qdf_mem_malloc(sizeof(*smeConfig));
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008593 if (NULL == smeConfig) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08008594 hdd_err("unable to allocate smeConfig");
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308595 return QDF_STATUS_E_NOMEM;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008596 }
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008597
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07008598 hdd_debug("%s bWmmIsEnabled=%d 802_11e_enabled=%d dot11Mode=%d",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008599 __func__, pConfig->WmmMode, pConfig->b80211eIsEnabled,
8600 pConfig->dot11Mode);
8601
8602 /* Config params obtained from the registry
8603 * To Do: set regulatory information here
8604 */
8605
8606 smeConfig->csrConfig.RTSThreshold = pConfig->RTSThreshold;
8607 smeConfig->csrConfig.FragmentationThreshold =
8608 pConfig->FragmentationThreshold;
8609 smeConfig->csrConfig.shortSlotTime = pConfig->ShortSlotTimeEnabled;
8610 smeConfig->csrConfig.Is11dSupportEnabled = pConfig->Is11dSupportEnabled;
8611 smeConfig->csrConfig.HeartbeatThresh24 = pConfig->HeartbeatThresh24;
8612
8613 smeConfig->csrConfig.phyMode =
8614 hdd_cfg_xlate_to_csr_phy_mode(pConfig->dot11Mode);
8615
8616 if (pConfig->dot11Mode == eHDD_DOT11_MODE_abg ||
8617 pConfig->dot11Mode == eHDD_DOT11_MODE_11b ||
8618 pConfig->dot11Mode == eHDD_DOT11_MODE_11g ||
8619 pConfig->dot11Mode == eHDD_DOT11_MODE_11b_ONLY ||
8620 pConfig->dot11Mode == eHDD_DOT11_MODE_11g_ONLY) {
8621 smeConfig->csrConfig.channelBondingMode24GHz = 0;
8622 smeConfig->csrConfig.channelBondingMode5GHz = 0;
8623 } else {
8624 smeConfig->csrConfig.channelBondingMode24GHz =
8625 pConfig->nChannelBondingMode24GHz;
8626 smeConfig->csrConfig.channelBondingMode5GHz =
8627 pConfig->nChannelBondingMode5GHz;
8628 }
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008629 smeConfig->csrConfig.nScanResultAgeCount = pConfig->ScanResultAgeCount;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008630 smeConfig->csrConfig.AdHocChannel24 = pConfig->OperatingChannel;
8631 smeConfig->csrConfig.fSupplicantCountryCodeHasPriority =
8632 pConfig->fSupplicantCountryCodeHasPriority;
8633 smeConfig->csrConfig.bCatRssiOffset = pConfig->nRssiCatGap;
8634 smeConfig->csrConfig.vccRssiThreshold = pConfig->nVccRssiTrigger;
8635 smeConfig->csrConfig.vccUlMacLossThreshold =
8636 pConfig->nVccUlMacLossThreshold;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008637 smeConfig->csrConfig.nInitialDwellTime = pConfig->nInitialDwellTime;
8638 smeConfig->csrConfig.initial_scan_no_dfs_chnl =
8639 pConfig->initial_scan_no_dfs_chnl;
8640 smeConfig->csrConfig.nActiveMaxChnTime = pConfig->nActiveMaxChnTime;
8641 smeConfig->csrConfig.nActiveMinChnTime = pConfig->nActiveMinChnTime;
8642 smeConfig->csrConfig.nPassiveMaxChnTime = pConfig->nPassiveMaxChnTime;
8643 smeConfig->csrConfig.nPassiveMinChnTime = pConfig->nPassiveMinChnTime;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008644 smeConfig->csrConfig.nActiveMaxChnTimeConc =
8645 pConfig->nActiveMaxChnTimeConc;
8646 smeConfig->csrConfig.nActiveMinChnTimeConc =
8647 pConfig->nActiveMinChnTimeConc;
8648 smeConfig->csrConfig.nPassiveMaxChnTimeConc =
8649 pConfig->nPassiveMaxChnTimeConc;
8650 smeConfig->csrConfig.nPassiveMinChnTimeConc =
8651 pConfig->nPassiveMinChnTimeConc;
8652 smeConfig->csrConfig.nRestTimeConc = pConfig->nRestTimeConc;
Agrawal Ashish17bb3902016-05-05 13:29:40 +05308653 smeConfig->csrConfig.min_rest_time_conc = pConfig->min_rest_time_conc;
8654 smeConfig->csrConfig.idle_time_conc = pConfig->idle_time_conc;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008655
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008656 smeConfig->csrConfig.Is11eSupportEnabled = pConfig->b80211eIsEnabled;
Srinivas Girigowda3ea486d2017-06-28 17:19:49 -07008657 smeConfig->csrConfig.WMMSupportMode =
8658 hdd_to_csr_wmm_mode(pConfig->WmmMode);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008659
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08008660 smeConfig->rrmConfig.rrm_enabled = pConfig->fRrmEnable;
8661 smeConfig->rrmConfig.max_randn_interval = pConfig->nRrmRandnIntvl;
8662 hdd_hex_string_to_u8_array(pConfig->rm_capability,
8663 smeConfig->rrmConfig.rm_capability, &rrm_capab_len,
8664 DOT11F_IE_RRMENABLEDCAP_MAX_LEN);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008665 /* Remaining config params not obtained from registry
8666 * On RF EVB beacon using channel 1.
8667 */
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008668 smeConfig->csrConfig.nVhtChannelWidth = pConfig->vhtChannelWidth;
8669 smeConfig->csrConfig.enableTxBF = pConfig->enableTxBF;
Abhishek Singh68844282018-01-25 16:48:41 +05308670 smeConfig->csrConfig.enable_subfee_vendor_vhtie =
8671 pConfig->enable_subfee_vendor_vhtie;
8672
Kiran Kumar Lokere5302ab62015-12-16 16:03:16 -08008673 smeConfig->csrConfig.enable_txbf_sap_mode =
8674 pConfig->enable_txbf_sap_mode;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008675 smeConfig->csrConfig.enable2x2 = pConfig->enable2x2;
8676 smeConfig->csrConfig.enableVhtFor24GHz = pConfig->enableVhtFor24GHzBand;
Kapil Gupta4b2efbb2016-10-03 13:07:20 +05308677 smeConfig->csrConfig.vendor_vht_sap =
8678 pConfig->enable_sap_vendor_vht;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008679 smeConfig->csrConfig.enableMuBformee = pConfig->enableMuBformee;
8680 smeConfig->csrConfig.enableVhtpAid = pConfig->enableVhtpAid;
8681 smeConfig->csrConfig.enableVhtGid = pConfig->enableVhtGid;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008682 smeConfig->csrConfig.enableAmpduPs = pConfig->enableAmpduPs;
8683 smeConfig->csrConfig.enableHtSmps = pConfig->enableHtSmps;
8684 smeConfig->csrConfig.htSmps = pConfig->htSmps;
Archana Ramachandranfec24812016-02-16 16:31:56 -08008685 /* This param cannot be configured from INI */
8686 smeConfig->csrConfig.send_smps_action = true;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008687 smeConfig->csrConfig.AdHocChannel5G = pConfig->AdHocChannel5G;
8688 smeConfig->csrConfig.AdHocChannel24 = pConfig->AdHocChannel24G;
8689 smeConfig->csrConfig.ProprietaryRatesEnabled = 0;
8690 smeConfig->csrConfig.HeartbeatThresh50 = 40;
8691 smeConfig->csrConfig.bandCapability = pConfig->nBandCapability;
Varun Reddy Yeturua48bc412017-11-17 15:33:35 -08008692 if (pConfig->nBandCapability == BAND_2G) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008693 smeConfig->csrConfig.Is11hSupportEnabled = 0;
8694 } else {
8695 smeConfig->csrConfig.Is11hSupportEnabled =
8696 pConfig->Is11hSupportEnabled;
8697 }
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008698 smeConfig->csrConfig.eBand = pConfig->nBandCapability;
8699 smeConfig->csrConfig.nTxPowerCap = pConfig->nTxPowerCap;
Padma, Santhosh Kumar29df3622016-08-16 19:15:16 +05308700 smeConfig->csrConfig.allow_tpc_from_ap = pConfig->allow_tpc_from_ap;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008701 smeConfig->csrConfig.fEnableBypass11d = pConfig->enableBypass11d;
8702 smeConfig->csrConfig.fEnableDFSChnlScan = pConfig->enableDFSChnlScan;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008703 smeConfig->csrConfig.nRoamPrefer5GHz = pConfig->nRoamPrefer5GHz;
8704 smeConfig->csrConfig.nRoamIntraBand = pConfig->nRoamIntraBand;
8705 smeConfig->csrConfig.nProbes = pConfig->nProbes;
8706
8707 smeConfig->csrConfig.nRoamScanHomeAwayTime =
8708 pConfig->nRoamScanHomeAwayTime;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008709 smeConfig->csrConfig.fFirstScanOnly2GChnl =
8710 pConfig->enableFirstScan2GOnly;
8711
Peng Xuf5d60c82015-10-02 17:17:03 -07008712 smeConfig->csrConfig.Csr11dinfo.Channels.numChannels = 0;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008713
Jeff Johnson723234b2017-09-03 08:49:15 -07008714 hdd_set_power_save_offload_config(hdd_ctx);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008715
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008716 smeConfig->csrConfig.isFastRoamIniFeatureEnabled =
8717 pConfig->isFastRoamIniFeatureEnabled;
Varun Reddy Yeturu061d4d62017-07-20 09:39:32 -07008718 smeConfig->csrConfig.csr_mawc_config.mawc_enabled =
8719 pConfig->MAWCEnabled;
8720 smeConfig->csrConfig.csr_mawc_config.mawc_roam_enabled =
8721 pConfig->mawc_roam_enabled;
8722 smeConfig->csrConfig.csr_mawc_config.mawc_roam_traffic_threshold =
8723 pConfig->mawc_roam_traffic_threshold;
8724 smeConfig->csrConfig.csr_mawc_config.mawc_roam_ap_rssi_threshold =
8725 pConfig->mawc_roam_ap_rssi_threshold;
8726 smeConfig->csrConfig.csr_mawc_config.mawc_roam_rssi_high_adjust =
8727 pConfig->mawc_roam_rssi_high_adjust;
8728 smeConfig->csrConfig.csr_mawc_config.mawc_roam_rssi_low_adjust =
8729 pConfig->mawc_roam_rssi_low_adjust;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008730#ifdef FEATURE_WLAN_ESE
8731 smeConfig->csrConfig.isEseIniFeatureEnabled =
8732 pConfig->isEseIniFeatureEnabled;
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07008733 if (pConfig->isEseIniFeatureEnabled)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008734 pConfig->isFastTransitionEnabled = true;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008735#endif
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008736 smeConfig->csrConfig.isFastTransitionEnabled =
8737 pConfig->isFastTransitionEnabled;
8738 smeConfig->csrConfig.RoamRssiDiff = pConfig->RoamRssiDiff;
Abhishek Singh34c0e632017-09-28 14:39:29 +05308739 smeConfig->csrConfig.rssi_abs_thresh = pConfig->rssi_abs_thresh;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008740 smeConfig->csrConfig.isWESModeEnabled = pConfig->isWESModeEnabled;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008741 smeConfig->csrConfig.isRoamOffloadScanEnabled =
8742 pConfig->isRoamOffloadScanEnabled;
8743 smeConfig->csrConfig.bFastRoamInConIniFeatureEnabled =
8744 pConfig->bFastRoamInConIniFeatureEnabled;
8745
8746 if (0 == smeConfig->csrConfig.isRoamOffloadScanEnabled) {
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07008747 /* Disable roaming in concurrency if roam scan
8748 * offload is disabled
8749 */
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008750 smeConfig->csrConfig.bFastRoamInConIniFeatureEnabled = 0;
8751 }
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008752 smeConfig->csrConfig.neighborRoamConfig.nNeighborLookupRssiThreshold =
8753 pConfig->nNeighborLookupRssiThreshold;
Varun Reddy Yeturu168134f2017-06-26 13:46:05 -07008754 smeConfig->csrConfig.neighborRoamConfig.rssi_thresh_offset_5g =
8755 pConfig->rssi_thresh_offset_5g;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008756 smeConfig->csrConfig.neighborRoamConfig.delay_before_vdev_stop =
8757 pConfig->delay_before_vdev_stop;
8758 smeConfig->csrConfig.neighborRoamConfig.nOpportunisticThresholdDiff =
8759 pConfig->nOpportunisticThresholdDiff;
8760 smeConfig->csrConfig.neighborRoamConfig.nRoamRescanRssiDiff =
8761 pConfig->nRoamRescanRssiDiff;
8762 smeConfig->csrConfig.neighborRoamConfig.nNeighborScanMaxChanTime =
8763 pConfig->nNeighborScanMaxChanTime;
8764 smeConfig->csrConfig.neighborRoamConfig.nNeighborScanMinChanTime =
8765 pConfig->nNeighborScanMinChanTime;
8766 smeConfig->csrConfig.neighborRoamConfig.nNeighborScanTimerPeriod =
8767 pConfig->nNeighborScanPeriod;
Sridhar Selvaraj1b2330c2017-07-21 15:16:42 +05308768 smeConfig->csrConfig.neighborRoamConfig.
8769 neighbor_scan_min_timer_period =
8770 pConfig->neighbor_scan_min_period;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008771 smeConfig->csrConfig.neighborRoamConfig.nMaxNeighborRetries =
8772 pConfig->nMaxNeighborReqTries;
8773 smeConfig->csrConfig.neighborRoamConfig.nNeighborResultsRefreshPeriod =
8774 pConfig->nNeighborResultsRefreshPeriod;
8775 smeConfig->csrConfig.neighborRoamConfig.nEmptyScanRefreshPeriod =
8776 pConfig->nEmptyScanRefreshPeriod;
8777 hdd_string_to_u8_array(pConfig->neighborScanChanList,
8778 smeConfig->csrConfig.neighborRoamConfig.
8779 neighborScanChanList.channelList,
8780 &smeConfig->csrConfig.neighborRoamConfig.
8781 neighborScanChanList.numChannels,
8782 WNI_CFG_VALID_CHANNEL_LIST_LEN);
8783 smeConfig->csrConfig.neighborRoamConfig.nRoamBmissFirstBcnt =
8784 pConfig->nRoamBmissFirstBcnt;
8785 smeConfig->csrConfig.neighborRoamConfig.nRoamBmissFinalBcnt =
8786 pConfig->nRoamBmissFinalBcnt;
8787 smeConfig->csrConfig.neighborRoamConfig.nRoamBeaconRssiWeight =
8788 pConfig->nRoamBeaconRssiWeight;
8789 smeConfig->csrConfig.neighborRoamConfig.nhi_rssi_scan_max_count =
8790 pConfig->nhi_rssi_scan_max_count;
8791 smeConfig->csrConfig.neighborRoamConfig.nhi_rssi_scan_rssi_delta =
8792 pConfig->nhi_rssi_scan_rssi_delta;
8793 smeConfig->csrConfig.neighborRoamConfig.nhi_rssi_scan_delay =
8794 pConfig->nhi_rssi_scan_delay;
8795 smeConfig->csrConfig.neighborRoamConfig.nhi_rssi_scan_rssi_ub =
8796 pConfig->nhi_rssi_scan_rssi_ub;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008797 smeConfig->csrConfig.addTSWhenACMIsOff = pConfig->AddTSWhenACMIsOff;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008798 smeConfig->csrConfig.allowDFSChannelRoam = pConfig->allowDFSChannelRoam;
8799
8800 /* Enable/Disable MCC */
8801 smeConfig->csrConfig.fEnableMCCMode = pConfig->enableMCC;
8802 smeConfig->csrConfig.mcc_rts_cts_prot_enable =
8803 pConfig->mcc_rts_cts_prot_enable;
8804 smeConfig->csrConfig.mcc_bcast_prob_resp_enable =
8805 pConfig->mcc_bcast_prob_resp_enable;
8806 smeConfig->csrConfig.fAllowMCCGODiffBI = pConfig->allowMCCGODiffBI;
8807
8808 /* Scan Results Aging Time out value */
8809 smeConfig->csrConfig.scanCfgAgingTime = pConfig->scanAgingTimeout;
8810
Krunal Sonia2c0e412017-05-04 14:12:41 +05308811 smeConfig->csrConfig.enable_tx_ldpc = pConfig->enable_tx_ldpc;
8812 smeConfig->csrConfig.enable_rx_ldpc = pConfig->enable_rx_ldpc;
Krunal Soni158bfe62017-08-02 12:33:08 -07008813 smeConfig->csrConfig.disable_high_ht_mcs_2x2 =
8814 pConfig->disable_high_ht_mcs_2x2;
Kiran Kumar Lokere0e255172018-03-30 18:54:25 -07008815 smeConfig->csrConfig.enable_vht20_mcs9 = pConfig->enable_vht20_mcs9;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008816#ifdef FEATURE_WLAN_MCC_TO_SCC_SWITCH
8817 smeConfig->csrConfig.cc_switch_mode = pConfig->WlanMccToSccSwitchMode;
8818#endif
8819
Deepak Dhamdhere612392c2016-08-28 02:56:51 -07008820 smeConfig->csrConfig.max_amsdu_num = pConfig->max_amsdu_num;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008821 smeConfig->csrConfig.nSelect5GHzMargin = pConfig->nSelect5GHzMargin;
8822
8823 smeConfig->csrConfig.isCoalesingInIBSSAllowed =
Jeff Johnson723234b2017-09-03 08:49:15 -07008824 hdd_ctx->config->isCoalesingInIBSSAllowed;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008825 smeConfig->csrConfig.ignore_peer_erp_info =
8826 pConfig->ignore_peer_erp_info;
8827 /* update SSR config */
Jeff Johnson723234b2017-09-03 08:49:15 -07008828 sme_update_enable_ssr((tHalHandle) (hdd_ctx->hHal),
8829 hdd_ctx->config->enableSSR);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008830
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008831 /* Update maximum interfaces information */
Jeff Johnson723234b2017-09-03 08:49:15 -07008832 smeConfig->csrConfig.max_intf_count = hdd_ctx->max_intf_count;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008833
Jeff Johnson723234b2017-09-03 08:49:15 -07008834 smeConfig->csrConfig.fEnableDebugLog = hdd_ctx->config->gEnableDebugLog;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008835
Jeff Johnson723234b2017-09-03 08:49:15 -07008836 smeConfig->csrConfig.enable5gEBT = hdd_ctx->config->enable5gEBT;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008837
Krunal Soni1878d3a2016-01-14 13:00:44 -08008838 smeConfig->csrConfig.enableSelfRecovery =
Jeff Johnson723234b2017-09-03 08:49:15 -07008839 hdd_ctx->config->enableSelfRecovery;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008840#ifdef WLAN_FEATURE_ROAM_OFFLOAD
8841 smeConfig->csrConfig.isRoamOffloadEnabled =
Jeff Johnson723234b2017-09-03 08:49:15 -07008842 hdd_ctx->config->isRoamOffloadEnabled;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008843#endif
8844 smeConfig->csrConfig.conc_custom_rule1 =
Jeff Johnson723234b2017-09-03 08:49:15 -07008845 hdd_ctx->config->conc_custom_rule1;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008846 smeConfig->csrConfig.conc_custom_rule2 =
Jeff Johnson723234b2017-09-03 08:49:15 -07008847 hdd_ctx->config->conc_custom_rule2;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008848 smeConfig->csrConfig.is_sta_connection_in_5gz_enabled =
Jeff Johnson723234b2017-09-03 08:49:15 -07008849 hdd_ctx->config->is_sta_connection_in_5gz_enabled;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008850
Krunal Soni1878d3a2016-01-14 13:00:44 -08008851 smeConfig->csrConfig.f_sta_miracast_mcc_rest_time_val =
Jeff Johnson723234b2017-09-03 08:49:15 -07008852 hdd_ctx->config->sta_miracast_mcc_rest_time_val;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008853
8854#ifdef FEATURE_AP_MCC_CH_AVOIDANCE
Krunal Soni1878d3a2016-01-14 13:00:44 -08008855 smeConfig->csrConfig.sap_channel_avoidance =
Jeff Johnson723234b2017-09-03 08:49:15 -07008856 hdd_ctx->config->sap_channel_avoidance;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008857#endif /* FEATURE_AP_MCC_CH_AVOIDANCE */
gaoleze5108942017-03-31 16:56:42 +08008858 smeConfig->csrConfig.acs_with_more_param =
Jeff Johnson723234b2017-09-03 08:49:15 -07008859 hdd_ctx->config->acs_with_more_param;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008860
Krunal Soni1878d3a2016-01-14 13:00:44 -08008861 smeConfig->csrConfig.f_prefer_non_dfs_on_radar =
Jeff Johnson723234b2017-09-03 08:49:15 -07008862 hdd_ctx->config->prefer_non_dfs_on_radar;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008863
Jeff Johnson723234b2017-09-03 08:49:15 -07008864 smeConfig->csrConfig.is_ps_enabled = hdd_ctx->config->is_ps_enabled;
Kiran Kumar Lokere0ac679c2016-11-17 17:43:36 -08008865 smeConfig->csrConfig.auto_bmps_timer_val =
Jeff Johnson723234b2017-09-03 08:49:15 -07008866 hdd_ctx->config->auto_bmps_timer_val;
Naveen Rawatd2657be2017-10-10 14:31:23 -07008867 hdd_set_fine_time_meas_cap(hdd_ctx);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008868
Jeff Johnson723234b2017-09-03 08:49:15 -07008869 cds_set_multicast_logging(hdd_ctx->config->multicast_host_fw_msgs);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008870
Jeff Johnson1ad3fbd2017-11-03 08:00:02 -07008871 smeConfig->csrConfig.send_deauth_before_con =
8872 pConfig->send_deauth_before_con;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008873
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008874 smeConfig->csrConfig.max_scan_count =
Jeff Johnson723234b2017-09-03 08:49:15 -07008875 hdd_ctx->config->max_scan_count;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008876
8877 /* Update 802.11p config */
8878 smeConfig->csrConfig.enable_dot11p =
Jeff Johnson723234b2017-09-03 08:49:15 -07008879 (hdd_ctx->config->dot11p_mode != WLAN_HDD_11P_DISABLED);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008880
Krunal Soni1878d3a2016-01-14 13:00:44 -08008881 smeConfig->csrConfig.early_stop_scan_enable =
Jeff Johnson723234b2017-09-03 08:49:15 -07008882 hdd_ctx->config->early_stop_scan_enable;
Krunal Soni1878d3a2016-01-14 13:00:44 -08008883 smeConfig->csrConfig.early_stop_scan_min_threshold =
Jeff Johnson723234b2017-09-03 08:49:15 -07008884 hdd_ctx->config->early_stop_scan_min_threshold;
Krunal Soni1878d3a2016-01-14 13:00:44 -08008885 smeConfig->csrConfig.early_stop_scan_max_threshold =
Jeff Johnson723234b2017-09-03 08:49:15 -07008886 hdd_ctx->config->early_stop_scan_max_threshold;
Varun Reddy Yeturu044bda22015-11-21 22:03:40 -08008887 smeConfig->csrConfig.first_scan_bucket_threshold =
Jeff Johnson723234b2017-09-03 08:49:15 -07008888 hdd_ctx->config->first_scan_bucket_threshold;
Gupta, Kapilc68ad462016-02-01 19:17:23 +05308889
8890 smeConfig->csrConfig.roam_dense_rssi_thresh_offset =
Jeff Johnson723234b2017-09-03 08:49:15 -07008891 hdd_ctx->config->roam_dense_rssi_thresh_offset;
Gupta, Kapilc68ad462016-02-01 19:17:23 +05308892 smeConfig->csrConfig.roam_dense_min_aps =
Jeff Johnson723234b2017-09-03 08:49:15 -07008893 hdd_ctx->config->roam_dense_min_aps;
Gupta, Kapilc68ad462016-02-01 19:17:23 +05308894 smeConfig->csrConfig.roam_dense_traffic_thresh =
Jeff Johnson723234b2017-09-03 08:49:15 -07008895 hdd_ctx->config->roam_dense_traffic_thresh;
Varun Reddy Yeturufaad37e2017-07-26 10:54:13 -07008896 smeConfig->csrConfig.roam_bg_scan_bad_rssi_thresh =
8897 hdd_ctx->config->roam_bg_scan_bad_rssi_thresh;
8898 smeConfig->csrConfig.roam_bg_scan_client_bitmap =
8899 hdd_ctx->config->roam_bg_scan_client_bitmap;
Vignesh Viswanathanc018e982017-09-07 18:49:19 +05308900 smeConfig->csrConfig.roam_bad_rssi_thresh_offset_2g =
8901 hdd_ctx->config->roam_bad_rssi_thresh_offset_2g;
Abhinav Kumara083f212018-04-05 18:49:45 +05308902 smeConfig->csrConfig.ho_delay_for_rx =
8903 hdd_ctx->config->ho_delay_for_rx;
Abhinav Kumara95af7c2018-04-06 17:08:00 +05308904 smeConfig->csrConfig.min_delay_btw_roam_scans =
8905 hdd_ctx->config->min_delay_btw_roam_scans;
8906 smeConfig->csrConfig.roam_trigger_reason_bitmask =
8907 hdd_ctx->config->roam_trigger_reason_bitmask;
Sandeep Puligilla93a29ec2016-02-12 16:10:56 -08008908 smeConfig->csrConfig.obss_width_interval =
Jeff Johnson723234b2017-09-03 08:49:15 -07008909 hdd_ctx->config->obss_width_trigger_interval;
Sandeep Puligilla93a29ec2016-02-12 16:10:56 -08008910 smeConfig->csrConfig.obss_active_dwelltime =
Jeff Johnson723234b2017-09-03 08:49:15 -07008911 hdd_ctx->config->obss_active_dwelltime;
Sandeep Puligilla93a29ec2016-02-12 16:10:56 -08008912 smeConfig->csrConfig.obss_passive_dwelltime =
Jeff Johnson723234b2017-09-03 08:49:15 -07008913 hdd_ctx->config->obss_passive_dwelltime;
Abhishek Singh165bc602016-03-21 12:43:00 +05308914 smeConfig->csrConfig.ignore_peer_ht_opmode =
8915 pConfig->ignore_peer_ht_opmode;
Abhishek Singh5ea86532016-04-27 14:10:53 +05308916 smeConfig->csrConfig.enable_fatal_event =
8917 pConfig->enable_fatal_event;
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05308918 smeConfig->csrConfig.scan_adaptive_dwell_mode =
Jeff Johnson723234b2017-09-03 08:49:15 -07008919 hdd_ctx->config->scan_adaptive_dwell_mode;
Paul Zhang72697bd2017-12-20 09:24:25 +08008920 smeConfig->csrConfig.scan_adaptive_dwell_mode_nc =
8921 hdd_ctx->config->scan_adaptive_dwell_mode_nc;
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05308922 smeConfig->csrConfig.roamscan_adaptive_dwell_mode =
Jeff Johnson723234b2017-09-03 08:49:15 -07008923 hdd_ctx->config->roamscan_adaptive_dwell_mode;
Abhinav Kumar271f0632018-03-29 16:01:30 +05308924 smeConfig->csrConfig.enable_ftopen =
8925 hdd_ctx->config->enable_ftopen;
Gupta, Kapilc68ad462016-02-01 19:17:23 +05308926
Jeff Johnson723234b2017-09-03 08:49:15 -07008927 hdd_update_per_config_to_sme(hdd_ctx, smeConfig);
Kapil Gupta5cda2252016-12-29 18:44:26 +05308928
Abhishek Singh10ecf582016-05-04 17:48:59 +05308929 smeConfig->csrConfig.enable_edca_params =
8930 pConfig->enable_edca_params;
8931
8932 smeConfig->csrConfig.edca_vo_cwmin =
8933 pConfig->edca_vo_cwmin;
8934 smeConfig->csrConfig.edca_vi_cwmin =
8935 pConfig->edca_vi_cwmin;
8936 smeConfig->csrConfig.edca_bk_cwmin =
8937 pConfig->edca_bk_cwmin;
8938 smeConfig->csrConfig.edca_be_cwmin =
8939 pConfig->edca_be_cwmin;
8940
8941 smeConfig->csrConfig.edca_vo_cwmax =
8942 pConfig->edca_vo_cwmax;
8943 smeConfig->csrConfig.edca_vi_cwmax =
8944 pConfig->edca_vi_cwmax;
8945 smeConfig->csrConfig.edca_bk_cwmax =
8946 pConfig->edca_bk_cwmax;
8947 smeConfig->csrConfig.edca_be_cwmax =
8948 pConfig->edca_be_cwmax;
8949
8950 smeConfig->csrConfig.edca_vo_aifs =
8951 pConfig->edca_vo_aifs;
8952 smeConfig->csrConfig.edca_vi_aifs =
8953 pConfig->edca_vi_aifs;
8954 smeConfig->csrConfig.edca_bk_aifs =
8955 pConfig->edca_bk_aifs;
8956 smeConfig->csrConfig.edca_be_aifs =
8957 pConfig->edca_be_aifs;
Agrawal Ashish21ba2572016-09-03 16:40:10 +05308958 smeConfig->csrConfig.sta_roam_policy_params.dfs_mode =
8959 CSR_STA_ROAM_POLICY_DFS_ENABLED;
8960 smeConfig->csrConfig.sta_roam_policy_params.skip_unsafe_channels = 0;
Abhishek Singh10ecf582016-05-04 17:48:59 +05308961
Jeff Johnson723234b2017-09-03 08:49:15 -07008962 smeConfig->snr_monitor_enabled = hdd_ctx->config->fEnableSNRMonitoring;
Kapil Gupta4f0c0c12017-02-07 15:21:15 +05308963
Padma, Santhosh Kumara7119672016-08-16 16:05:14 +05308964 smeConfig->csrConfig.tx_aggregation_size =
Jeff Johnson723234b2017-09-03 08:49:15 -07008965 hdd_ctx->config->tx_aggregation_size;
Paul Zhangee09f8e2018-04-23 16:11:32 +08008966 smeConfig->csrConfig.tx_aggregation_size_be =
8967 hdd_ctx->config->tx_aggregation_size_be;
8968 smeConfig->csrConfig.tx_aggregation_size_bk =
8969 hdd_ctx->config->tx_aggregation_size_bk;
8970 smeConfig->csrConfig.tx_aggregation_size_vi =
8971 hdd_ctx->config->tx_aggregation_size_vi;
8972 smeConfig->csrConfig.tx_aggregation_size_vo =
8973 hdd_ctx->config->tx_aggregation_size_vo;
Padma, Santhosh Kumara7119672016-08-16 16:05:14 +05308974 smeConfig->csrConfig.rx_aggregation_size =
Jeff Johnson723234b2017-09-03 08:49:15 -07008975 hdd_ctx->config->rx_aggregation_size;
Paul Zhang33fae272018-04-23 16:19:00 +08008976 smeConfig->csrConfig.tx_aggr_sw_retry_threshold_be =
8977 hdd_ctx->config->tx_aggr_sw_retry_threshold_be;
8978 smeConfig->csrConfig.tx_aggr_sw_retry_threshold_bk =
8979 hdd_ctx->config->tx_aggr_sw_retry_threshold_bk;
8980 smeConfig->csrConfig.tx_aggr_sw_retry_threshold_vi =
8981 hdd_ctx->config->tx_aggr_sw_retry_threshold_vi;
8982 smeConfig->csrConfig.tx_aggr_sw_retry_threshold_vo =
8983 hdd_ctx->config->tx_aggr_sw_retry_threshold_vo;
Selvaraj, Sridhar4f684bb2017-01-19 15:59:23 +05308984 smeConfig->csrConfig.enable_bcast_probe_rsp =
Jeff Johnson723234b2017-09-03 08:49:15 -07008985 hdd_ctx->config->enable_bcast_probe_rsp;
Vignesh Viswanathan32761e42017-09-25 17:10:54 +05308986 smeConfig->csrConfig.is_fils_enabled =
8987 hdd_ctx->config->is_fils_enabled;
Selvaraj, Sridhara521aab2017-03-25 16:42:34 +05308988 smeConfig->csrConfig.qcn_ie_support =
Jeff Johnson723234b2017-09-03 08:49:15 -07008989 hdd_ctx->config->qcn_ie_support;
Selvaraj, Sridhar97ce6582017-01-20 17:06:34 +05308990 smeConfig->csrConfig.fils_max_chan_guard_time =
Jeff Johnson723234b2017-09-03 08:49:15 -07008991 hdd_ctx->config->fils_max_chan_guard_time;
Padma, Santhosh Kumara7119672016-08-16 16:05:14 +05308992
Krishna Kumaar Natarajan90bb6f12017-03-03 21:05:52 -08008993 hdd_he_set_sme_config(smeConfig, pConfig);
8994
Paul Zhang99fe8842017-12-08 14:43:46 +08008995 smeConfig->csrConfig.wlm_latency_enable =
8996 hdd_ctx->config->wlm_latency_enable;
8997 smeConfig->csrConfig.wlm_latency_level =
8998 hdd_ctx->config->wlm_latency_level;
8999 smeConfig->csrConfig.wlm_latency_flags[0] =
9000 hdd_ctx->config->wlm_latency_flags_normal;
9001 smeConfig->csrConfig.wlm_latency_flags[1] =
9002 hdd_ctx->config->wlm_latency_flags_moderate;
9003 smeConfig->csrConfig.wlm_latency_flags[2] =
9004 hdd_ctx->config->wlm_latency_flags_low;
9005 smeConfig->csrConfig.wlm_latency_flags[3] =
9006 hdd_ctx->config->wlm_latency_flags_ultralow;
9007
Naveen Rawat2b6e3c92017-03-20 13:59:07 -07009008 smeConfig->csrConfig.pkt_err_disconn_th =
Jeff Johnson723234b2017-09-03 08:49:15 -07009009 hdd_ctx->config->pkt_err_disconn_th;
Selvaraj, Sridhar57ce4df2017-05-29 18:30:49 +05309010 smeConfig->csrConfig.disallow_duration =
Jeff Johnson723234b2017-09-03 08:49:15 -07009011 hdd_ctx->config->disallow_duration;
Selvaraj, Sridhar57ce4df2017-05-29 18:30:49 +05309012 smeConfig->csrConfig.rssi_channel_penalization =
Jeff Johnson723234b2017-09-03 08:49:15 -07009013 hdd_ctx->config->rssi_channel_penalization;
Selvaraj, Sridhar57ce4df2017-05-29 18:30:49 +05309014 smeConfig->csrConfig.num_disallowed_aps =
Jeff Johnson723234b2017-09-03 08:49:15 -07009015 hdd_ctx->config->num_disallowed_aps;
Selvaraj, Sridhar57ce4df2017-05-29 18:30:49 +05309016
Naveen Rawatb2fc4132017-05-10 20:42:05 -07009017 smeConfig->csrConfig.is_force_1x1 =
Jeff Johnson723234b2017-09-03 08:49:15 -07009018 hdd_ctx->config->is_force_1x1;
Naveen Rawat247a8682017-06-05 15:00:31 -07009019 smeConfig->csrConfig.num_11b_tx_chains =
Jeff Johnson723234b2017-09-03 08:49:15 -07009020 hdd_ctx->config->num_11b_tx_chains;
Naveen Rawat247a8682017-06-05 15:00:31 -07009021 smeConfig->csrConfig.num_11ag_tx_chains =
Jeff Johnson723234b2017-09-03 08:49:15 -07009022 hdd_ctx->config->num_11ag_tx_chains;
Yeshwanth Sriram Guntuka2ba6fe92017-10-04 14:40:45 +05309023 val = (pConfig->oce_probe_req_rate_enabled *
9024 WMI_VDEV_OCE_PROBE_REQUEST_RATE_FEATURE_BITMAP) +
9025 (pConfig->oce_probe_resp_rate_enabled *
9026 WMI_VDEV_OCE_PROBE_RESPONSE_RATE_FEATURE_BITMAP) +
9027 (pConfig->oce_beacon_rate_enabled *
9028 WMI_VDEV_OCE_BEACON_RATE_FEATURE_BITMAP) +
9029 (pConfig->probe_req_deferral_enabled *
9030 WMI_VDEV_OCE_PROBE_REQUEST_DEFERRAL_FEATURE_BITMAP) +
9031 (pConfig->fils_discovery_sap_enabled *
9032 WMI_VDEV_OCE_FILS_DISCOVERY_FRAME_FEATURE_BITMAP) +
9033 (pConfig->esp_for_roam_enabled *
9034 WMI_VDEV_OCE_ESP_FEATURE_BITMAP) +
9035 (pConfig->rssi_assoc_reject_enabled *
9036 WMI_VDEV_OCE_REASSOC_REJECT_FEATURE_BITMAP);
9037 smeConfig->csrConfig.oce_feature_bitmap = val;
Vignesh Viswanathan9dd88d32017-11-22 14:22:03 +05309038 smeConfig->csrConfig.mbo_thresholds.mbo_candidate_rssi_thres =
9039 hdd_ctx->config->mbo_candidate_rssi_thres;
9040 smeConfig->csrConfig.mbo_thresholds.mbo_current_rssi_thres =
9041 hdd_ctx->config->mbo_current_rssi_thres;
9042 smeConfig->csrConfig.mbo_thresholds.mbo_current_rssi_mcc_thres =
9043 hdd_ctx->config->mbo_current_rssi_mcc_thres;
9044 smeConfig->csrConfig.mbo_thresholds.mbo_candidate_rssi_btc_thres =
9045 hdd_ctx->config->mbo_candidate_rssi_btc_thres;
Jiachao Wu84bb2ea2018-01-08 16:17:33 +08009046 smeConfig->csrConfig.btm_offload_config =
9047 hdd_ctx->config->btm_offload_config;
9048 smeConfig->csrConfig.btm_solicited_timeout =
9049 hdd_ctx->config->btm_solicited_timeout;
9050 smeConfig->csrConfig.btm_max_attempt_cnt =
9051 hdd_ctx->config->btm_max_attempt_cnt;
9052 smeConfig->csrConfig.btm_sticky_time =
9053 hdd_ctx->config->btm_sticky_time;
Himanshu Agarwal8bcec572017-09-28 11:54:37 +05309054 hdd_update_bss_score_params(hdd_ctx->config,
9055 &smeConfig->csrConfig.bss_score_params);
9056
Vignesh Viswanathan694e28e2018-01-18 20:53:57 +05309057 hdd_update_11k_offload_params(hdd_ctx->config,
9058 &smeConfig->csrConfig);
9059
Jeff Johnson723234b2017-09-03 08:49:15 -07009060 status = sme_update_config(hdd_ctx->hHal, smeConfig);
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07009061 if (!QDF_IS_STATUS_SUCCESS(status))
9062 hdd_err("sme_update_config() failure: %d", status);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009063
Anurag Chouhan600c3a02016-03-01 10:33:54 +05309064 qdf_mem_free(smeConfig);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009065 return status;
9066}
9067
9068/**
9069 * hdd_execute_global_config_command() - execute the global config command
Jeff Johnson723234b2017-09-03 08:49:15 -07009070 * @hdd_ctx: the pointer to hdd context
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009071 * @command: the command to run
9072 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05309073 * Return: the QDF_STATUS return from hdd_execute_config_command
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009074 */
Jeff Johnson723234b2017-09-03 08:49:15 -07009075QDF_STATUS hdd_execute_global_config_command(struct hdd_context *hdd_ctx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009076 char *command)
9077{
9078 return hdd_execute_config_command(g_registry_table,
9079 ARRAY_SIZE(g_registry_table),
Jeff Johnson723234b2017-09-03 08:49:15 -07009080 (uint8_t *) hdd_ctx->config,
9081 hdd_ctx, command);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009082}
9083
9084/**
9085 * hdd_cfg_get_global_config() - get the configuration table
Jeff Johnson723234b2017-09-03 08:49:15 -07009086 * @hdd_ctx: pointer to hdd context
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009087 * @pBuf: buffer to store the configuration
9088 * @buflen: size of the buffer
9089 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05309090 * Return: QDF_STATUS_SUCCESS if the configuration and buffer size can carry
9091 * the content, otherwise QDF_STATUS_E_RESOURCES
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009092 */
Jeff Johnson723234b2017-09-03 08:49:15 -07009093QDF_STATUS hdd_cfg_get_global_config(struct hdd_context *hdd_ctx, char *pBuf,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009094 int buflen)
9095{
9096 return hdd_cfg_get_config(g_registry_table,
9097 ARRAY_SIZE(g_registry_table),
Jeff Johnson723234b2017-09-03 08:49:15 -07009098 (uint8_t *) hdd_ctx->config, hdd_ctx, pBuf,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009099 buflen);
9100}
9101
9102/**
Deepak Dhamdhere828f1892017-02-09 11:51:19 -08009103 * hdd_get_pmkid_modes() - returns PMKID mode bits
Jeff Johnson723234b2017-09-03 08:49:15 -07009104 * @hdd_ctx: the pointer to hdd context
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009105 *
Deepak Dhamdhere828f1892017-02-09 11:51:19 -08009106 * Return: value of pmkid_modes
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009107 */
Jeff Johnson723234b2017-09-03 08:49:15 -07009108void hdd_get_pmkid_modes(struct hdd_context *hdd_ctx,
Deepak Dhamdhere828f1892017-02-09 11:51:19 -08009109 struct pmkid_mode_bits *pmkid_modes)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009110{
Jeff Johnson723234b2017-09-03 08:49:15 -07009111 pmkid_modes->fw_okc = (hdd_ctx->config->pmkid_modes &
Deepak Dhamdhere828f1892017-02-09 11:51:19 -08009112 CFG_PMKID_MODES_OKC) ? 1 : 0;
Jeff Johnson723234b2017-09-03 08:49:15 -07009113 pmkid_modes->fw_pmksa_cache = (hdd_ctx->config->pmkid_modes &
Deepak Dhamdhere828f1892017-02-09 11:51:19 -08009114 CFG_PMKID_MODES_PMKSA_CACHING) ? 1 : 0;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009115}
9116
Jeff Johnsonb6909be2017-08-28 12:07:19 -07009117bool hdd_validate_prb_req_ie_bitmap(struct hdd_context *hdd_ctx)
Rajeev Kumar Sirasanagandlaaec0b082017-06-21 11:59:41 +05309118{
9119 if (!(hdd_ctx->config->probe_req_ie_bitmap_0 ||
9120 hdd_ctx->config->probe_req_ie_bitmap_1 ||
9121 hdd_ctx->config->probe_req_ie_bitmap_2 ||
9122 hdd_ctx->config->probe_req_ie_bitmap_3 ||
9123 hdd_ctx->config->probe_req_ie_bitmap_4 ||
9124 hdd_ctx->config->probe_req_ie_bitmap_5 ||
9125 hdd_ctx->config->probe_req_ie_bitmap_6 ||
9126 hdd_ctx->config->probe_req_ie_bitmap_7))
9127 return false;
9128
9129 /*
9130 * check whether vendor oui IE is set and OUIs are present, each OUI
9131 * is entered in the form of string of 8 characters from ini, therefore,
9132 * for atleast one OUI, minimum length is 8 and hence this string length
9133 * is checked for minimum of 8
9134 */
9135 if ((hdd_ctx->config->probe_req_ie_bitmap_6 &
9136 VENDOR_SPECIFIC_IE_BITMAP) &&
9137 (strlen(hdd_ctx->config->probe_req_ouis) < 8))
9138 return false;
9139
9140 /* check whether vendor oui IE is not set but OUIs are present */
9141 if (!(hdd_ctx->config->probe_req_ie_bitmap_6 &
9142 VENDOR_SPECIFIC_IE_BITMAP) &&
9143 (strlen(hdd_ctx->config->probe_req_ouis) > 0))
9144 return false;
9145
9146 return true;
9147}
9148
Jeff Johnsonb6909be2017-08-28 12:07:19 -07009149int hdd_parse_probe_req_ouis(struct hdd_context *hdd_ctx)
Rajeev Kumar Sirasanagandlaaec0b082017-06-21 11:59:41 +05309150{
9151 uint32_t *voui = hdd_ctx->config->probe_req_voui;
9152 char *str;
9153 uint8_t *token;
9154 uint32_t oui_indx = 0;
9155 int ret;
9156 uint32_t hex_value;
9157
9158 str = (char *)(hdd_ctx->config->probe_req_ouis);
9159 str[MAX_PRB_REQ_VENDOR_OUI_INI_LEN - 1] = '\0';
9160 hdd_ctx->config->no_of_probe_req_ouis = 0;
9161
9162 if (!strlen(str)) {
9163 hdd_info("NO OUIS to parse");
9164 return 0;
9165 }
9166
9167 token = strsep(&str, " ");
9168 while (token) {
9169 if (strlen(token) != 8)
9170 goto next_token;
9171
9172 ret = kstrtouint(token, 16, &hex_value);
9173 if (ret)
9174 goto next_token;
9175
9176 voui[oui_indx++] = cpu_to_be32(hex_value);
9177 if (oui_indx >= MAX_PROBE_REQ_OUIS)
9178 break;
9179
Jeff Johnson59eb5fd2017-10-05 09:42:39 -07009180next_token:
Rajeev Kumar Sirasanagandlaaec0b082017-06-21 11:59:41 +05309181 token = strsep(&str, " ");
9182 }
9183
9184 if (!oui_indx)
9185 return -EINVAL;
9186
9187 hdd_ctx->config->no_of_probe_req_ouis = oui_indx;
9188
9189 return 0;
9190}
9191
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009192/**
9193 * hdd_update_nss() - Update the number of spatial streams supported.
9194 * Ensure that nss is either 1 or 2 before calling this.
9195 *
Kiran Kumar Lokere44a29432018-01-24 16:10:30 -08009196 * @adapter: the pointer to adapter
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009197 * @nss: the number of spatial streams to be updated
9198 *
9199 * This function is used to modify the number of spatial streams
9200 * supported when not in connected state.
9201 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05309202 * Return: QDF_STATUS_SUCCESS if nss is correctly updated,
9203 * otherwise QDF_STATUS_E_FAILURE would be returned
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009204 */
Kiran Kumar Lokere44a29432018-01-24 16:10:30 -08009205QDF_STATUS hdd_update_nss(struct hdd_adapter *adapter, uint8_t nss)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009206{
Kiran Kumar Lokere44a29432018-01-24 16:10:30 -08009207 struct hdd_context *hdd_ctx = WLAN_HDD_GET_CTX(adapter);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009208 struct hdd_config *hdd_config = hdd_ctx->config;
9209 uint32_t temp = 0;
9210 uint32_t rx_supp_data_rate, tx_supp_data_rate;
9211 bool status = true;
9212 tSirMacHTCapabilityInfo *ht_cap_info;
9213 uint8_t mcs_set[SIZE_OF_SUPPORTED_MCS_SET] = {0};
9214 uint8_t mcs_set_temp[SIZE_OF_SUPPORTED_MCS_SET];
Sandeep Puligilla98917432016-06-10 13:50:28 -07009215 uint32_t val, val32;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009216 uint16_t val16;
9217 uint8_t enable2x2;
9218
9219 if ((nss == 2) && (hdd_ctx->num_rf_chains != 2)) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08009220 hdd_err("No support for 2 spatial streams");
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05309221 return QDF_STATUS_E_INVAL;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009222 }
9223
9224 enable2x2 = (nss == 1) ? 0 : 1;
9225
9226 if (hdd_config->enable2x2 == enable2x2) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07009227 hdd_debug("NSS same as requested");
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05309228 return QDF_STATUS_SUCCESS;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009229 }
9230
9231 if (true == sme_is_any_session_in_connected_state(hdd_ctx->hHal)) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08009232 hdd_err("Connected sessions present, Do not change NSS");
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05309233 return QDF_STATUS_E_INVAL;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009234 }
9235
9236 hdd_config->enable2x2 = enable2x2;
9237
9238 if (!hdd_config->enable2x2) {
9239 /* 1x1 */
Kiran Kumar Lokere666bf852016-05-02 12:23:02 -07009240 rx_supp_data_rate = VHT_RX_HIGHEST_SUPPORTED_DATA_RATE_1_1;
9241 tx_supp_data_rate = VHT_TX_HIGHEST_SUPPORTED_DATA_RATE_1_1;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009242 } else {
9243 /* 2x2 */
Kiran Kumar Lokere666bf852016-05-02 12:23:02 -07009244 rx_supp_data_rate = VHT_RX_HIGHEST_SUPPORTED_DATA_RATE_2_2;
9245 tx_supp_data_rate = VHT_TX_HIGHEST_SUPPORTED_DATA_RATE_2_2;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009246 }
9247
9248 /* Update Rx Highest Long GI data Rate */
9249 if (sme_cfg_set_int(hdd_ctx->hHal,
9250 WNI_CFG_VHT_RX_HIGHEST_SUPPORTED_DATA_RATE,
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05309251 rx_supp_data_rate) == QDF_STATUS_E_FAILURE) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009252 status = false;
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08009253 hdd_err("Could not pass on WNI_CFG_VHT_RX_HIGHEST_SUPPORTED_DATA_RATE to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009254 }
9255
9256 /* Update Tx Highest Long GI data Rate */
9257 if (sme_cfg_set_int(hdd_ctx->hHal,
9258 WNI_CFG_VHT_TX_HIGHEST_SUPPORTED_DATA_RATE,
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05309259 tx_supp_data_rate) == QDF_STATUS_E_FAILURE) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009260 status = false;
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08009261 hdd_err("Could not pass on WNI_CFG_VHT_TX_HIGHEST_SUPPORTED_DATA_RATE to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009262 }
9263
9264 sme_cfg_get_int(hdd_ctx->hHal, WNI_CFG_HT_CAP_INFO, &temp);
9265 val16 = (uint16_t)temp;
9266 ht_cap_info = (tSirMacHTCapabilityInfo *)&val16;
Sandeep Puligilla98917432016-06-10 13:50:28 -07009267 if (!(hdd_ctx->ht_tx_stbc_supported && hdd_config->enable2x2)) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009268 ht_cap_info->txSTBC = 0;
Sandeep Puligilla98917432016-06-10 13:50:28 -07009269 } else {
9270 sme_cfg_get_int(hdd_ctx->hHal, WNI_CFG_VHT_TXSTBC, &val32);
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07009271 hdd_debug("STBC %d", val32);
Sandeep Puligilla98917432016-06-10 13:50:28 -07009272 ht_cap_info->txSTBC = val32;
9273 }
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009274 temp = val16;
9275 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_HT_CAP_INFO,
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05309276 temp) == QDF_STATUS_E_FAILURE) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009277 status = false;
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08009278 hdd_err("Could not pass on WNI_CFG_HT_CAP_INFO to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009279 }
9280
9281 sme_cfg_get_int(hdd_ctx->hHal, WNI_CFG_VHT_BASIC_MCS_SET, &temp);
9282 temp = (temp & 0xFFFC) | hdd_config->vhtRxMCS;
9283 if (hdd_config->enable2x2)
9284 temp = (temp & 0xFFF3) | (hdd_config->vhtRxMCS2x2 << 2);
9285 else
9286 temp |= 0x000C;
9287
9288 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_VHT_BASIC_MCS_SET,
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05309289 temp) == QDF_STATUS_E_FAILURE) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009290 status = false;
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08009291 hdd_err("Could not pass on WNI_CFG_VHT_BASIC_MCS_SET to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009292 }
9293
9294 sme_cfg_get_int(hdd_ctx->hHal, WNI_CFG_VHT_RX_MCS_MAP, &temp);
9295 temp = (temp & 0xFFFC) | hdd_config->vhtRxMCS;
9296 if (hdd_config->enable2x2)
9297 temp = (temp & 0xFFF3) | (hdd_config->vhtRxMCS2x2 << 2);
9298 else
9299 temp |= 0x000C;
9300
9301 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_VHT_RX_MCS_MAP,
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05309302 temp) == QDF_STATUS_E_FAILURE) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009303 status = false;
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08009304 hdd_err("Could not pass on WNI_CFG_VHT_RX_MCS_MAP to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009305 }
9306
9307 sme_cfg_get_int(hdd_ctx->hHal, WNI_CFG_VHT_TX_MCS_MAP, &temp);
9308 temp = (temp & 0xFFFC) | hdd_config->vhtTxMCS;
9309 if (hdd_config->enable2x2)
9310 temp = (temp & 0xFFF3) | (hdd_config->vhtTxMCS2x2 << 2);
9311 else
9312 temp |= 0x000C;
9313
9314 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_VHT_TX_MCS_MAP,
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05309315 temp) == QDF_STATUS_E_FAILURE) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009316 status = false;
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08009317 hdd_err("Could not pass on WNI_CFG_VHT_TX_MCS_MAP to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009318 }
9319
9320#define WLAN_HDD_RX_MCS_ALL_NSTREAM_RATES 0xff
9321 val = SIZE_OF_SUPPORTED_MCS_SET;
9322 sme_cfg_get_str(hdd_ctx->hHal, WNI_CFG_SUPPORTED_MCS_SET,
9323 mcs_set_temp, &val);
9324
9325 mcs_set[0] = mcs_set_temp[0];
9326 if (hdd_config->enable2x2)
9327 for (val = 0; val < nss; val++)
9328 mcs_set[val] = WLAN_HDD_RX_MCS_ALL_NSTREAM_RATES;
9329
9330 if (sme_cfg_set_str(hdd_ctx->hHal, WNI_CFG_SUPPORTED_MCS_SET,
9331 mcs_set,
9332 SIZE_OF_SUPPORTED_MCS_SET) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05309333 QDF_STATUS_E_FAILURE) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009334 status = false;
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08009335 hdd_err("Could not pass on MCS SET to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009336 }
Kiran Kumar Lokere44a29432018-01-24 16:10:30 -08009337 sme_update_he_cap_nss(hdd_ctx->hHal, adapter->session_id, nss);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009338#undef WLAN_HDD_RX_MCS_ALL_NSTREAM_RATES
9339
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05309340 if (QDF_STATUS_SUCCESS != sme_update_nss(hdd_ctx->hHal, nss))
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009341 status = false;
9342
Tushnim Bhattacharyya7e546692017-03-23 18:30:29 -07009343 hdd_set_policy_mgr_user_cfg(hdd_ctx);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05309344 return (status == false) ? QDF_STATUS_E_FAILURE : QDF_STATUS_SUCCESS;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009345}