blob: ffca7be436804539d3a664757fa6965f638b63d8 [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 *
4 * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
5 *
6 *
7 * Permission to use, copy, modify, and/or distribute this software for
8 * any purpose with or without fee is hereby granted, provided that the
9 * above copyright notice and this permission notice appear in all
10 * copies.
11 *
12 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
13 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
14 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
15 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
16 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
17 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
18 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
19 * PERFORMANCE OF THIS SOFTWARE.
20 */
21
22/*
23 * This file was originally distributed by Qualcomm Atheros, Inc.
24 * under proprietary terms before Copyright ownership was assigned
25 * to the Linux Foundation.
26 */
27
28/**
29 * DOC: wlan_hdd_cfg.c
30 *
31 * WLAN Host Device Driver configuration interface implementation
32 */
33
34/* Include Files */
35
36#include <linux/firmware.h>
37#include <linux/string.h>
38#include <wlan_hdd_includes.h>
39#include <wlan_hdd_main.h>
40#include <wlan_hdd_assoc.h>
41#include <wlan_hdd_cfg.h>
42#include <linux/string.h>
Anurag Chouhan6d760662016-02-20 16:05:43 +053043#include <qdf_types.h>
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080044#include <csr_api.h>
45#include <wlan_hdd_misc.h>
46#include <wlan_hdd_napi.h>
Tushnim Bhattacharyya9e81b4c2017-02-15 17:11:14 -080047#include <cds_api.h>
Krishna Kumaar Natarajan4f1d7722017-03-03 21:12:51 -080048#include "wlan_hdd_he.h"
Tushnim Bhattacharyya9028cc72017-03-09 13:10:49 -080049#include <wlan_policy_mgr_api.h>
Naveen Rawatd2657be2017-10-10 14:31:23 -070050#include "wifi_pos_api.h"
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080051
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080052static void
Jeff Johnson723234b2017-09-03 08:49:15 -070053cb_notify_set_roam_prefer5_g_hz(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_prefer5_g_hz(hdd_ctx->hHal,
56 hdd_ctx->config->nRoamPrefer5GHz);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080057}
58
59static void
Jeff Johnson723234b2017-09-03 08:49:15 -070060cb_notify_set_roam_rssi_diff(struct hdd_context *hdd_ctx, unsigned long notifyId)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080061{
Jeff Johnson723234b2017-09-03 08:49:15 -070062 sme_update_roam_rssi_diff(hdd_ctx->hHal,
63 0, hdd_ctx->config->RoamRssiDiff);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080064}
65
66static void
Jeff Johnson723234b2017-09-03 08:49:15 -070067cb_notify_set_fast_transition_enabled(struct hdd_context *hdd_ctx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080068 unsigned long notifyId)
69{
Jeff Johnson723234b2017-09-03 08:49:15 -070070 sme_update_fast_transition_enabled(hdd_ctx->hHal,
71 hdd_ctx->config->
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080072 isFastTransitionEnabled);
73}
74
75static void
Jeff Johnson723234b2017-09-03 08:49:15 -070076cb_notify_set_roam_intra_band(struct hdd_context *hdd_ctx, unsigned long notifyId)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080077{
Jeff Johnson723234b2017-09-03 08:49:15 -070078 sme_set_roam_intra_band(hdd_ctx->hHal, hdd_ctx->config->nRoamIntraBand);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080079}
80
Jeff Johnson723234b2017-09-03 08:49:15 -070081static void cb_notify_set_wes_mode(struct hdd_context *hdd_ctx,
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -070082 unsigned long notifyId)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080083{
Jeff Johnson723234b2017-09-03 08:49:15 -070084 sme_update_wes_mode(hdd_ctx->hHal,
85 hdd_ctx->config->isWESModeEnabled, 0);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080086}
87
88static void
Jeff Johnson723234b2017-09-03 08:49:15 -070089cb_notify_set_roam_scan_n_probes(struct hdd_context *hdd_ctx, unsigned long notifyId)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080090{
Jeff Johnson723234b2017-09-03 08:49:15 -070091 sme_update_roam_scan_n_probes(hdd_ctx->hHal, 0,
92 hdd_ctx->config->nProbes);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080093}
94
95static void
Jeff Johnson723234b2017-09-03 08:49:15 -070096cb_notify_set_roam_scan_home_away_time(struct hdd_context *hdd_ctx,
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -070097 unsigned long notifyId)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080098{
Jeff Johnson723234b2017-09-03 08:49:15 -070099 sme_update_roam_scan_home_away_time(hdd_ctx->hHal, 0,
100 hdd_ctx->config->nRoamScanHomeAwayTime,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800101 true);
102}
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800103
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800104static void
Jeff Johnson723234b2017-09-03 08:49:15 -0700105notify_is_fast_roam_ini_feature_enabled(struct hdd_context *hdd_ctx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800106 unsigned long notifyId)
107{
Jeff Johnson723234b2017-09-03 08:49:15 -0700108 sme_update_is_fast_roam_ini_feature_enabled(hdd_ctx->hHal, 0,
109 hdd_ctx->config->
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800110 isFastRoamIniFeatureEnabled);
111}
112
113static void
Jeff Johnson723234b2017-09-03 08:49:15 -0700114notify_is_mawc_ini_feature_enabled(struct hdd_context *hdd_ctx,
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -0700115 unsigned long notifyId)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800116{
Jeff Johnson723234b2017-09-03 08:49:15 -0700117 sme_update_is_mawc_ini_feature_enabled(hdd_ctx->hHal,
118 hdd_ctx->config->MAWCEnabled);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800119}
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800120
121#ifdef FEATURE_WLAN_ESE
122static void
Jeff Johnson723234b2017-09-03 08:49:15 -0700123cb_notify_set_ese_feature_enabled(struct hdd_context *hdd_ctx,
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -0700124 unsigned long notifyId)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800125{
Jeff Johnson723234b2017-09-03 08:49:15 -0700126 sme_update_is_ese_feature_enabled(hdd_ctx->hHal, 0,
127 hdd_ctx->config->isEseIniFeatureEnabled);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800128}
129#endif
130
131static void
Jeff Johnson723234b2017-09-03 08:49:15 -0700132cb_notify_set_fw_rssi_monitoring(struct hdd_context *hdd_ctx, unsigned long notifyId)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800133{
Jeff Johnson723234b2017-09-03 08:49:15 -0700134 sme_update_config_fw_rssi_monitoring(hdd_ctx->hHal,
135 hdd_ctx->config->
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800136 fEnableFwRssiMonitoring);
137}
138
Jeff Johnson723234b2017-09-03 08:49:15 -0700139static void cb_notify_set_opportunistic_scan_threshold_diff(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_roam_opportunistic_scan_threshold_diff(hdd_ctx->hHal, 0,
143 hdd_ctx->config->
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800144 nOpportunisticThresholdDiff);
145}
146
Jeff Johnson723234b2017-09-03 08:49:15 -0700147static void cb_notify_set_roam_rescan_rssi_diff(struct hdd_context *hdd_ctx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800148 unsigned long notifyId)
149{
Jeff Johnson723234b2017-09-03 08:49:15 -0700150 sme_set_roam_rescan_rssi_diff(hdd_ctx->hHal,
151 0, hdd_ctx->config->nRoamRescanRssiDiff);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800152}
153
154static void
Jeff Johnson723234b2017-09-03 08:49:15 -0700155cb_notify_set_neighbor_lookup_rssi_threshold(struct hdd_context *hdd_ctx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800156 unsigned long notifyId)
157{
Jeff Johnson723234b2017-09-03 08:49:15 -0700158 sme_set_neighbor_lookup_rssi_threshold(hdd_ctx->hHal, 0,
159 hdd_ctx->config->
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800160 nNeighborLookupRssiThreshold);
161}
162
163static void
Jeff Johnsonb6909be2017-08-28 12:07:19 -0700164cb_notify_set_delay_before_vdev_stop(struct hdd_context *hdd_ctx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800165 unsigned long notify_id)
166{
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800167 sme_set_delay_before_vdev_stop(hdd_ctx->hHal, 0,
168 hdd_ctx->config->delay_before_vdev_stop);
169}
170
171static void
Jeff Johnson723234b2017-09-03 08:49:15 -0700172cb_notify_set_neighbor_scan_period(struct hdd_context *hdd_ctx,
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -0700173 unsigned long notifyId)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800174{
Jeff Johnson723234b2017-09-03 08:49:15 -0700175 sme_set_neighbor_scan_period(hdd_ctx->hHal, 0,
176 hdd_ctx->config->nNeighborScanPeriod);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800177}
178
Sridhar Selvaraj1b2330c2017-07-21 15:16:42 +0530179/*
180 * cb_notify_set_neighbor_scan_min_period() - configure min rest
181 * time during roaming scan
182 *
183 * @hdd_ctx: HDD context data structure
184 * @notify_id: Identifies 1 of the 4 parameters to be modified
185 *
186 * Picks up the value from hdd configuration and passes it to SME.
187 * Return: void
188 */
189static void
Jeff Johnson723234b2017-09-03 08:49:15 -0700190cb_notify_set_neighbor_scan_min_period(struct hdd_context *hdd_ctx,
Sridhar Selvaraj1b2330c2017-07-21 15:16:42 +0530191 unsigned long notifyId)
192{
Jeff Johnson723234b2017-09-03 08:49:15 -0700193 sme_set_neighbor_scan_min_period(hdd_ctx->hHal, 0,
194 hdd_ctx->config->
Sridhar Selvaraj1b2330c2017-07-21 15:16:42 +0530195 neighbor_scan_min_period);
196}
197
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800198static void
Jeff Johnson723234b2017-09-03 08:49:15 -0700199cb_notify_set_neighbor_results_refresh_period(struct hdd_context *hdd_ctx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800200 unsigned long notifyId)
201{
Jeff Johnson723234b2017-09-03 08:49:15 -0700202 sme_set_neighbor_scan_refresh_period(hdd_ctx->hHal, 0,
203 hdd_ctx->config->
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800204 nNeighborResultsRefreshPeriod);
205}
206
207static void
Jeff Johnson723234b2017-09-03 08:49:15 -0700208cb_notify_set_empty_scan_refresh_period(struct hdd_context *hdd_ctx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800209 unsigned long notifyId)
210{
Jeff Johnson723234b2017-09-03 08:49:15 -0700211 sme_update_empty_scan_refresh_period(hdd_ctx->hHal, 0,
212 hdd_ctx->config->
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800213 nEmptyScanRefreshPeriod);
214}
215
216static void
Jeff Johnson723234b2017-09-03 08:49:15 -0700217cb_notify_set_neighbor_scan_min_chan_time(struct hdd_context *hdd_ctx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800218 unsigned long notifyId)
219{
Jeff Johnson723234b2017-09-03 08:49:15 -0700220 sme_set_neighbor_scan_min_chan_time(hdd_ctx->hHal,
221 hdd_ctx->config->
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800222 nNeighborScanMinChanTime, 0);
223}
224
225static void
Jeff Johnson723234b2017-09-03 08:49:15 -0700226cb_notify_set_neighbor_scan_max_chan_time(struct hdd_context *hdd_ctx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800227 unsigned long notifyId)
228{
Jeff Johnson723234b2017-09-03 08:49:15 -0700229 sme_set_neighbor_scan_max_chan_time(hdd_ctx->hHal, 0,
230 hdd_ctx->config->
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800231 nNeighborScanMaxChanTime);
232}
233
Jeff Johnson723234b2017-09-03 08:49:15 -0700234static void cb_notify_set_roam_bmiss_first_bcnt(struct hdd_context *hdd_ctx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800235 unsigned long notifyId)
236{
Jeff Johnson723234b2017-09-03 08:49:15 -0700237 sme_set_roam_bmiss_first_bcnt(hdd_ctx->hHal,
238 0, hdd_ctx->config->nRoamBmissFirstBcnt);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800239}
240
Jeff Johnson723234b2017-09-03 08:49:15 -0700241static void cb_notify_set_roam_bmiss_final_bcnt(struct hdd_context *hdd_ctx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800242 unsigned long notifyId)
243{
Jeff Johnson723234b2017-09-03 08:49:15 -0700244 sme_set_roam_bmiss_final_bcnt(hdd_ctx->hHal, 0,
245 hdd_ctx->config->nRoamBmissFinalBcnt);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800246}
247
Jeff Johnson723234b2017-09-03 08:49:15 -0700248static void cb_notify_set_roam_beacon_rssi_weight(struct hdd_context *hdd_ctx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800249 unsigned long notifyId)
250{
Jeff Johnson723234b2017-09-03 08:49:15 -0700251 sme_set_roam_beacon_rssi_weight(hdd_ctx->hHal, 0,
252 hdd_ctx->config->nRoamBeaconRssiWeight);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800253}
254
255static void
Jeff Johnson723234b2017-09-03 08:49:15 -0700256cb_notify_set_dfs_scan_mode(struct hdd_context *hdd_ctx, unsigned long notifyId)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800257{
Jeff Johnson723234b2017-09-03 08:49:15 -0700258 sme_update_dfs_scan_mode(hdd_ctx->hHal, 0,
259 hdd_ctx->config->allowDFSChannelRoam);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800260}
261
Jeff Johnson723234b2017-09-03 08:49:15 -0700262static void cb_notify_set_enable_ssr(struct hdd_context *hdd_ctx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800263 unsigned long notifyId)
264{
Jeff Johnson723234b2017-09-03 08:49:15 -0700265 sme_update_enable_ssr(hdd_ctx->hHal, hdd_ctx->config->enableSSR);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800266}
267
Jeff Johnson723234b2017-09-03 08:49:15 -0700268static void cb_notify_set_g_sap_preferred_chan_location(struct hdd_context *hdd_ctx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800269 unsigned long notifyId)
270{
Jeff Johnson723234b2017-09-03 08:49:15 -0700271 wlansap_set_dfs_preferred_channel_location(hdd_ctx->hHal,
272 hdd_ctx->config->
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800273 gSapPreferredChanLocation);
274}
Jeff Johnson723234b2017-09-03 08:49:15 -0700275static void ch_notify_set_g_disable_dfs_japan_w53(struct hdd_context *hdd_ctx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800276 unsigned long notifyId)
277{
Jeff Johnson723234b2017-09-03 08:49:15 -0700278 wlansap_set_dfs_restrict_japan_w53(hdd_ctx->hHal,
279 hdd_ctx->config->
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800280 gDisableDfsJapanW53);
281}
282static void
Jeff Johnson723234b2017-09-03 08:49:15 -0700283cb_notify_update_roam_scan_offload_enabled(struct hdd_context *hdd_ctx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800284 unsigned long notifyId)
285{
Jeff Johnson723234b2017-09-03 08:49:15 -0700286 sme_update_roam_scan_offload_enabled(hdd_ctx->hHal,
287 hdd_ctx->config->
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800288 isRoamOffloadScanEnabled);
Jeff Johnson723234b2017-09-03 08:49:15 -0700289 if (0 == hdd_ctx->config->isRoamOffloadScanEnabled) {
290 hdd_ctx->config->bFastRoamInConIniFeatureEnabled = 0;
291 sme_update_enable_fast_roam_in_concurrency(hdd_ctx->hHal,
292 hdd_ctx->config->
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800293 bFastRoamInConIniFeatureEnabled);
294 }
295}
296
297static void
Jeff Johnson723234b2017-09-03 08:49:15 -0700298cb_notify_set_enable_fast_roam_in_concurrency(struct hdd_context *hdd_ctx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800299 unsigned long notifyId)
300{
Jeff Johnson723234b2017-09-03 08:49:15 -0700301 sme_update_enable_fast_roam_in_concurrency(hdd_ctx->hHal,
302 hdd_ctx->config->
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800303 bFastRoamInConIniFeatureEnabled);
304}
305
306/**
307 * cb_notify_set_roam_scan_hi_rssi_scan_params() - configure hi rssi
308 * scan params from cfg to sme.
309 * @hdd_ctx: HDD context data structure
310 * @notify_id: Identifies 1 of the 4 parameters to be modified
311 *
312 * Picks up the value from hdd configuration and passes it to SME.
313 * Return: void
314 */
315
316static void
Jeff Johnsonb6909be2017-08-28 12:07:19 -0700317cb_notify_set_roam_scan_hi_rssi_scan_params(struct hdd_context *hdd_ctx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800318 unsigned long notify_id)
319{
320 int32_t val;
321
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -0700322 if (wlan_hdd_validate_context(hdd_ctx))
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800323 return;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800324
325 switch (notify_id) {
326 case eCSR_HI_RSSI_SCAN_MAXCOUNT_ID:
327 val = hdd_ctx->config->nhi_rssi_scan_max_count;
328 break;
329
330 case eCSR_HI_RSSI_SCAN_RSSI_DELTA_ID:
331 val = hdd_ctx->config->nhi_rssi_scan_rssi_delta;
332 break;
333
334 case eCSR_HI_RSSI_SCAN_DELAY_ID:
335 val = hdd_ctx->config->nhi_rssi_scan_delay;
336 break;
337
338 case eCSR_HI_RSSI_SCAN_RSSI_UB_ID:
339 val = hdd_ctx->config->nhi_rssi_scan_rssi_ub;
340 break;
341
342 default:
343 return;
344 }
345
346 sme_update_roam_scan_hi_rssi_scan_params(hdd_ctx->hHal, 0,
347 notify_id, val);
348}
349
350
Srinivas Girigowda2fb677c2017-03-25 15:35:34 -0700351struct reg_table_entry g_registry_table[] = {
Ashish Kumar Dhanotiya470af292017-05-31 20:46:00 +0530352 REG_VARIABLE(CFG_ENABLE_CONNECTED_SCAN_NAME, WLAN_PARAM_Integer,
353 struct hdd_config, enable_connected_scan,
354 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
355 CFG_ENABLE_CONNECTED_SCAN_DEFAULT,
356 CFG_ENABLE_CONNECTED_SCAN_MIN,
357 CFG_ENABLE_CONNECTED_SCAN_MAX),
358
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800359 REG_VARIABLE(CFG_RTS_THRESHOLD_NAME, WLAN_PARAM_Integer,
360 struct hdd_config, RTSThreshold,
361 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
362 CFG_RTS_THRESHOLD_DEFAULT,
363 CFG_RTS_THRESHOLD_MIN,
364 CFG_RTS_THRESHOLD_MAX),
365
366 REG_VARIABLE(CFG_FRAG_THRESHOLD_NAME, WLAN_PARAM_Integer,
367 struct hdd_config, FragmentationThreshold,
368 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
369 CFG_FRAG_THRESHOLD_DEFAULT,
370 CFG_FRAG_THRESHOLD_MIN,
371 CFG_FRAG_THRESHOLD_MAX),
372
373 REG_VARIABLE(CFG_OPERATING_CHANNEL_NAME, WLAN_PARAM_Integer,
374 struct hdd_config, OperatingChannel,
375 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
376 CFG_OPERATING_CHANNEL_DEFAULT,
377 CFG_OPERATING_CHANNEL_MIN,
378 CFG_OPERATING_CHANNEL_MAX),
379
380 REG_VARIABLE(CFG_SHORT_SLOT_TIME_ENABLED_NAME, WLAN_PARAM_Integer,
381 struct hdd_config, ShortSlotTimeEnabled,
382 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
383 CFG_SHORT_SLOT_TIME_ENABLED_DEFAULT,
384 CFG_SHORT_SLOT_TIME_ENABLED_MIN,
385 CFG_SHORT_SLOT_TIME_ENABLED_MAX),
386
387 REG_VARIABLE(CFG_11D_SUPPORT_ENABLED_NAME, WLAN_PARAM_Integer,
388 struct hdd_config, Is11dSupportEnabled,
389 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
390 CFG_11D_SUPPORT_ENABLED_DEFAULT,
391 CFG_11D_SUPPORT_ENABLED_MIN,
392 CFG_11D_SUPPORT_ENABLED_MAX),
393
394 REG_VARIABLE(CFG_11H_SUPPORT_ENABLED_NAME, WLAN_PARAM_Integer,
395 struct hdd_config, Is11hSupportEnabled,
396 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
397 CFG_11H_SUPPORT_ENABLED_DEFAULT,
398 CFG_11H_SUPPORT_ENABLED_MIN,
399 CFG_11H_SUPPORT_ENABLED_MAX),
400
401 REG_VARIABLE(CFG_COUNTRY_CODE_PRIORITY_NAME, WLAN_PARAM_Integer,
402 struct hdd_config, fSupplicantCountryCodeHasPriority,
403 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
404 CFG_COUNTRY_CODE_PRIORITY_DEFAULT,
405 CFG_COUNTRY_CODE_PRIORITY_MIN,
406 CFG_COUNTRY_CODE_PRIORITY_MAX),
407
408 REG_VARIABLE(CFG_HEARTBEAT_THRESH_24_NAME, WLAN_PARAM_Integer,
409 struct hdd_config, HeartbeatThresh24,
410 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
411 CFG_HEARTBEAT_THRESH_24_DEFAULT,
412 CFG_HEARTBEAT_THRESH_24_MIN,
413 CFG_HEARTBEAT_THRESH_24_MAX),
414
415 REG_VARIABLE_STRING(CFG_POWER_USAGE_NAME, WLAN_PARAM_String,
416 struct hdd_config, PowerUsageControl,
417 VAR_FLAGS_OPTIONAL,
418 (void *)CFG_POWER_USAGE_DEFAULT),
419
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800420 REG_VARIABLE(CFG_ENABLE_IMPS_NAME, WLAN_PARAM_Integer,
421 struct hdd_config, fIsImpsEnabled,
422 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
423 CFG_ENABLE_IMPS_DEFAULT,
424 CFG_ENABLE_IMPS_MIN,
425 CFG_ENABLE_IMPS_MAX),
426
427 REG_VARIABLE(CFG_ENABLE_PS_NAME, WLAN_PARAM_Integer,
428 struct hdd_config, is_ps_enabled,
429 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
430 CFG_ENABLE_PS_DEFAULT,
431 CFG_ENABLE_PS_MIN,
432 CFG_ENABLE_PS_MAX),
433
Kiran Kumar Lokere0ac679c2016-11-17 17:43:36 -0800434 REG_VARIABLE(CFG_AUTO_PS_ENABLE_TIMER_NAME, WLAN_PARAM_Integer,
435 struct hdd_config, auto_bmps_timer_val,
436 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
437 CFG_AUTO_PS_ENABLE_TIMER_DEFAULT,
438 CFG_AUTO_PS_ENABLE_TIMER_MIN,
439 CFG_AUTO_PS_ENABLE_TIMER_MAX),
440
Zhu Jianmin04392c42017-05-12 16:34:53 +0800441#ifdef WLAN_ICMP_DISABLE_PS
442 REG_VARIABLE(CFG_ICMP_DISABLE_PS_NAME, WLAN_PARAM_Integer,
443 struct hdd_config, icmp_disable_ps_val,
444 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
445 CFG_ICMP_DISABLE_PS_DEFAULT,
446 CFG_ICMP_DISABLE_PS_MIN,
447 CFG_ICMP_DISABLE_PS_MAX),
448#endif
449
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800450 REG_VARIABLE(CFG_BMPS_MINIMUM_LI_NAME, WLAN_PARAM_Integer,
451 struct hdd_config, nBmpsMinListenInterval,
452 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
453 CFG_BMPS_MINIMUM_LI_DEFAULT,
454 CFG_BMPS_MINIMUM_LI_MIN,
455 CFG_BMPS_MINIMUM_LI_MAX),
456
457 REG_VARIABLE(CFG_BMPS_MAXIMUM_LI_NAME, WLAN_PARAM_Integer,
458 struct hdd_config, nBmpsMaxListenInterval,
459 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
460 CFG_BMPS_MAXIMUM_LI_DEFAULT,
461 CFG_BMPS_MAXIMUM_LI_MIN,
462 CFG_BMPS_MAXIMUM_LI_MAX),
463
464 REG_VARIABLE(CFG_BMPS_MODERATE_LI_NAME, WLAN_PARAM_Integer,
465 struct hdd_config, nBmpsModListenInterval,
466 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
467 CFG_BMPS_MODERATE_LI_DEFAULT,
468 CFG_BMPS_MODERATE_LI_MIN,
469 CFG_BMPS_MODERATE_LI_MAX),
470
471 REG_VARIABLE(CFG_DOT11_MODE_NAME, WLAN_PARAM_Integer,
472 struct hdd_config, dot11Mode,
473 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
474 CFG_DOT11_MODE_DEFAULT,
475 CFG_DOT11_MODE_MIN,
476 CFG_DOT11_MODE_MAX),
477
478 REG_VARIABLE(CFG_CHANNEL_BONDING_MODE_24GHZ_NAME, WLAN_PARAM_Integer,
479 struct hdd_config, nChannelBondingMode24GHz,
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
Abhishek Singhb59f8d42017-07-31 14:42:47 +0530485 REG_VARIABLE(CFG_OVERRIDE_HT40_20_24GHZ_NAME, WLAN_PARAM_Integer,
486 struct hdd_config, override_ht20_40_24g,
487 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
488 CFG_OVERRIDE_HT40_20_24GHZ_DEFAULT,
489 CFG_OVERRIDE_HT40_20_24GHZ_MIN,
490 CFG_OVERRIDE_HT40_20_24GHZ_MAX),
491
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800492 REG_VARIABLE(CFG_CHANNEL_BONDING_MODE_5GHZ_NAME, WLAN_PARAM_Integer,
493 struct hdd_config, nChannelBondingMode5GHz,
494 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
495 CFG_CHANNEL_BONDING_MODE_DEFAULT,
496 CFG_CHANNEL_BONDING_MODE_MIN,
497 CFG_CHANNEL_BONDING_MODE_MAX),
498
499 REG_VARIABLE(CFG_MAX_RX_AMPDU_FACTOR_NAME, WLAN_PARAM_Integer,
500 struct hdd_config, MaxRxAmpduFactor,
501 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
502 CFG_MAX_RX_AMPDU_FACTOR_DEFAULT,
503 CFG_MAX_RX_AMPDU_FACTOR_MIN,
504 CFG_MAX_RX_AMPDU_FACTOR_MAX),
505
Krishna Kumaar Natarajan22b59a72015-11-23 18:54:58 -0800506 REG_VARIABLE(CFG_HT_MPDU_DENSITY_NAME, WLAN_PARAM_Integer,
507 struct hdd_config, ht_mpdu_density,
Jeff Johnson03294f12016-12-09 17:10:24 -0800508 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
Krishna Kumaar Natarajan22b59a72015-11-23 18:54:58 -0800509 CFG_HT_MPDU_DENSITY_DEFAULT,
510 CFG_HT_MPDU_DENSITY_MIN,
511 CFG_HT_MPDU_DENSITY_MAX),
512
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800513 REG_VARIABLE(CFG_FIXED_RATE_NAME, WLAN_PARAM_Integer,
514 struct hdd_config, TxRate,
515 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
516 CFG_FIXED_RATE_DEFAULT,
517 CFG_FIXED_RATE_MIN,
518 CFG_FIXED_RATE_MAX),
519
520 REG_VARIABLE(CFG_SHORT_GI_20MHZ_NAME, WLAN_PARAM_Integer,
521 struct hdd_config, ShortGI20MhzEnable,
522 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
523 CFG_SHORT_GI_20MHZ_DEFAULT,
524 CFG_SHORT_GI_20MHZ_MIN,
525 CFG_SHORT_GI_20MHZ_MAX),
526
527 REG_VARIABLE(CFG_SCAN_RESULT_AGE_COUNT_NAME, WLAN_PARAM_Integer,
528 struct hdd_config, ScanResultAgeCount,
529 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
530 CFG_SCAN_RESULT_AGE_COUNT_DEFAULT,
531 CFG_SCAN_RESULT_AGE_COUNT_MIN,
532 CFG_SCAN_RESULT_AGE_COUNT_MAX),
533
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800534 REG_VARIABLE(CFG_RSSI_CATEGORY_GAP_NAME, WLAN_PARAM_Integer,
535 struct hdd_config, nRssiCatGap,
536 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
537 CFG_RSSI_CATEGORY_GAP_DEFAULT,
538 CFG_RSSI_CATEGORY_GAP_MIN,
539 CFG_RSSI_CATEGORY_GAP_MAX),
540
541 REG_VARIABLE(CFG_SHORT_PREAMBLE_NAME, WLAN_PARAM_Integer,
542 struct hdd_config, fIsShortPreamble,
543 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
544 CFG_SHORT_PREAMBLE_DEFAULT,
545 CFG_SHORT_PREAMBLE_MIN,
546 CFG_SHORT_PREAMBLE_MAX),
547
548 REG_VARIABLE_STRING(CFG_IBSS_BSSID_NAME, WLAN_PARAM_MacAddr,
549 struct hdd_config, IbssBssid,
550 VAR_FLAGS_OPTIONAL,
551 (void *)CFG_IBSS_BSSID_DEFAULT),
552
553 REG_VARIABLE_STRING(CFG_INTF0_MAC_ADDR_NAME, WLAN_PARAM_MacAddr,
554 struct hdd_config, intfMacAddr[0],
555 VAR_FLAGS_OPTIONAL,
556 (void *)CFG_INTF0_MAC_ADDR_DEFAULT),
557
558 REG_VARIABLE_STRING(CFG_INTF1_MAC_ADDR_NAME, WLAN_PARAM_MacAddr,
559 struct hdd_config, intfMacAddr[1],
560 VAR_FLAGS_OPTIONAL,
561 (void *)CFG_INTF1_MAC_ADDR_DEFAULT),
562
563 REG_VARIABLE_STRING(CFG_INTF2_MAC_ADDR_NAME, WLAN_PARAM_MacAddr,
564 struct hdd_config, intfMacAddr[2],
565 VAR_FLAGS_OPTIONAL,
566 (void *)CFG_INTF2_MAC_ADDR_DEFAULT),
567
568 REG_VARIABLE_STRING(CFG_INTF3_MAC_ADDR_NAME, WLAN_PARAM_MacAddr,
569 struct hdd_config, intfMacAddr[3],
570 VAR_FLAGS_OPTIONAL,
571 (void *)CFG_INTF3_MAC_ADDR_DEFAULT),
572
573 REG_VARIABLE(CFG_AP_QOS_UAPSD_MODE_NAME, WLAN_PARAM_Integer,
574 struct hdd_config, apUapsdEnabled,
575 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
576 CFG_AP_QOS_UAPSD_MODE_DEFAULT,
577 CFG_AP_QOS_UAPSD_MODE_MIN,
578 CFG_AP_QOS_UAPSD_MODE_MAX),
579
580
581 REG_VARIABLE(CFG_AP_ENABLE_RANDOM_BSSID_NAME, WLAN_PARAM_Integer,
582 struct hdd_config, apRandomBssidEnabled,
583 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
584 CFG_AP_ENABLE_RANDOM_BSSID_DEFAULT,
585 CFG_AP_ENABLE_RANDOM_BSSID_MIN,
586 CFG_AP_ENABLE_RANDOM_BSSID_MAX),
587
588 REG_VARIABLE(CFG_AP_ENABLE_PROTECTION_MODE_NAME, WLAN_PARAM_Integer,
589 struct hdd_config, apProtEnabled,
590 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
591 CFG_AP_ENABLE_PROTECTION_MODE_DEFAULT,
592 CFG_AP_ENABLE_PROTECTION_MODE_MIN,
593 CFG_AP_ENABLE_PROTECTION_MODE_MAX),
594
595 REG_VARIABLE(CFG_AP_PROTECTION_MODE_NAME, WLAN_PARAM_HexInteger,
596 struct hdd_config, apProtection,
597 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
598 CFG_AP_PROTECTION_MODE_DEFAULT,
599 CFG_AP_PROTECTION_MODE_MIN,
600 CFG_AP_PROTECTION_MODE_MAX),
601
602 REG_VARIABLE(CFG_AP_OBSS_PROTECTION_MODE_NAME, WLAN_PARAM_Integer,
603 struct hdd_config, apOBSSProtEnabled,
604 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
605 CFG_AP_OBSS_PROTECTION_MODE_DEFAULT,
606 CFG_AP_OBSS_PROTECTION_MODE_MIN,
607 CFG_AP_OBSS_PROTECTION_MODE_MAX),
608
609 REG_VARIABLE(CFG_AP_STA_SECURITY_SEPERATION_NAME, WLAN_PARAM_Integer,
610 struct hdd_config, apDisableIntraBssFwd,
611 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
612 CFG_AP_STA_SECURITY_SEPERATION_DEFAULT,
613 CFG_AP_STA_SECURITY_SEPERATION_MIN,
614 CFG_AP_STA_SECURITY_SEPERATION_MAX),
615
616 REG_VARIABLE(CFG_ENABLE_LTE_COEX, WLAN_PARAM_Integer,
617 struct hdd_config, enableLTECoex,
618 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
619 CFG_ENABLE_LTE_COEX_DEFAULT,
620 CFG_ENABLE_LTE_COEX_MIN,
621 CFG_ENABLE_LTE_COEX_MAX),
Agrawal Ashishbafaff12016-12-27 17:43:08 +0530622
Nachiket Kukade8983cf62017-10-12 18:14:48 +0530623 REG_VARIABLE(CFG_VC_MODE_BITMAP, WLAN_PARAM_HexInteger,
624 struct hdd_config, vc_mode_cfg_bitmap,
625 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
626 CFG_VC_MODE_BITMAP_DEFAULT,
627 CFG_VC_MODE_BITMAP_MIN,
628 CFG_VC_MODE_BITMAP_MAX),
629
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800630 REG_VARIABLE(CFG_FORCE_SAP_ACS, WLAN_PARAM_Integer,
Agrawal Ashishbafaff12016-12-27 17:43:08 +0530631 struct hdd_config, force_sap_acs,
632 VAR_FLAGS_DYNAMIC_CFG |
633 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
634 CFG_FORCE_SAP_ACS_DEFAULT,
635 CFG_FORCE_SAP_ACS_MIN,
636 CFG_FORCE_SAP_ACS_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800637
638 REG_VARIABLE(CFG_FORCE_SAP_ACS_START_CH, WLAN_PARAM_Integer,
Agrawal Ashishbafaff12016-12-27 17:43:08 +0530639 struct hdd_config, force_sap_acs_st_ch,
640 VAR_FLAGS_DYNAMIC_CFG |
641 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
642 CFG_FORCE_SAP_ACS_START_CH_DEFAULT,
643 CFG_FORCE_SAP_ACS_START_CH_MIN,
644 CFG_FORCE_SAP_ACS_START_CH_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800645
646 REG_VARIABLE(CFG_FORCE_SAP_ACS_END_CH, WLAN_PARAM_Integer,
Agrawal Ashishbafaff12016-12-27 17:43:08 +0530647 struct hdd_config, force_sap_acs_end_ch,
648 VAR_FLAGS_DYNAMIC_CFG |
649 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
650 CFG_FORCE_SAP_ACS_END_CH_DEFAULT,
651 CFG_FORCE_SAP_ACS_END_CH_MIN,
652 CFG_FORCE_SAP_ACS_END_CH_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800653
Ganesh Kondabattini408fb8d2017-08-08 22:00:20 +0530654 REG_VARIABLE(CFG_ENABLE_SAP_MANDATORY_CHAN_LIST, WLAN_PARAM_Integer,
655 struct hdd_config, enable_sap_mandatory_chan_list,
656 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
657 CFG_ENABLE_SAP_MANDATORY_CHAN_LIST_DEFAULT,
658 CFG_ENABLE_SAP_MANDATORY_CHAN_LIST_MIN,
659 CFG_ENABLE_SAP_MANDATORY_CHAN_LIST_MAX),
660
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800661 REG_VARIABLE(CFG_AP_KEEP_ALIVE_PERIOD_NAME, WLAN_PARAM_Integer,
662 struct hdd_config, apKeepAlivePeriod,
663 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
664 CFG_AP_KEEP_ALIVE_PERIOD_DEFAULT,
665 CFG_AP_KEEP_ALIVE_PERIOD_MIN,
666 CFG_AP_KEEP_ALIVE_PERIOD_MAX),
667
668 REG_VARIABLE(CFG_GO_KEEP_ALIVE_PERIOD_NAME, WLAN_PARAM_Integer,
669 struct hdd_config, goKeepAlivePeriod,
670 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
671 CFG_GO_KEEP_ALIVE_PERIOD_DEFAULT,
672 CFG_GO_KEEP_ALIVE_PERIOD_MIN,
673 CFG_GO_KEEP_ALIVE_PERIOD_MAX),
674
675 REG_VARIABLE(CFG_AP_LINK_MONITOR_PERIOD_NAME, WLAN_PARAM_Integer,
676 struct hdd_config, apLinkMonitorPeriod,
677 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
678 CFG_AP_LINK_MONITOR_PERIOD_DEFAULT,
679 CFG_AP_LINK_MONITOR_PERIOD_MIN,
680 CFG_AP_LINK_MONITOR_PERIOD_MAX),
681
682 REG_VARIABLE(CFG_GO_LINK_MONITOR_PERIOD_NAME, WLAN_PARAM_Integer,
683 struct hdd_config, goLinkMonitorPeriod,
684 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
685 CFG_GO_LINK_MONITOR_PERIOD_DEFAULT,
686 CFG_GO_LINK_MONITOR_PERIOD_MIN,
687 CFG_GO_LINK_MONITOR_PERIOD_MAX),
688
689 REG_VARIABLE(CFG_DISABLE_PACKET_FILTER, WLAN_PARAM_Integer,
690 struct hdd_config, disablePacketFilter,
691 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
692 CFG_DISABLE_PACKET_FILTER_DEFAULT,
693 CFG_DISABLE_PACKET_FILTER_MIN,
694 CFG_DISABLE_PACKET_FILTER_MAX),
695
696 REG_VARIABLE(CFG_BEACON_INTERVAL_NAME, WLAN_PARAM_Integer,
697 struct hdd_config, nBeaconInterval,
698 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
699 CFG_BEACON_INTERVAL_DEFAULT,
700 CFG_BEACON_INTERVAL_MIN,
701 CFG_BEACON_INTERVAL_MAX),
702
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800703 REG_VARIABLE(CFG_VCC_RSSI_TRIGGER_NAME, WLAN_PARAM_Integer,
704 struct hdd_config, nVccRssiTrigger,
705 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
706 CFG_VCC_RSSI_TRIGGER_DEFAULT,
707 CFG_VCC_RSSI_TRIGGER_MIN,
708 CFG_VCC_RSSI_TRIGGER_MAX),
709
710 REG_VARIABLE(CFG_VCC_UL_MAC_LOSS_THRESH_NAME, WLAN_PARAM_Integer,
711 struct hdd_config, nVccUlMacLossThreshold,
712 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
713 CFG_VCC_UL_MAC_LOSS_THRESH_DEFAULT,
714 CFG_VCC_UL_MAC_LOSS_THRESH_MIN,
715 CFG_VCC_UL_MAC_LOSS_THRESH_MAX),
716
717 REG_VARIABLE(CFG_PASSIVE_MAX_CHANNEL_TIME_NAME, WLAN_PARAM_Integer,
718 struct hdd_config, nPassiveMaxChnTime,
719 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
720 CFG_PASSIVE_MAX_CHANNEL_TIME_DEFAULT,
721 CFG_PASSIVE_MAX_CHANNEL_TIME_MIN,
722 CFG_PASSIVE_MAX_CHANNEL_TIME_MAX),
723
724 REG_VARIABLE(CFG_PASSIVE_MIN_CHANNEL_TIME_NAME, WLAN_PARAM_Integer,
725 struct hdd_config, nPassiveMinChnTime,
726 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
727 CFG_PASSIVE_MIN_CHANNEL_TIME_DEFAULT,
728 CFG_PASSIVE_MIN_CHANNEL_TIME_MIN,
729 CFG_PASSIVE_MIN_CHANNEL_TIME_MAX),
730
731 REG_VARIABLE(CFG_ACTIVE_MAX_CHANNEL_TIME_NAME, WLAN_PARAM_Integer,
732 struct hdd_config, nActiveMaxChnTime,
733 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
734 CFG_ACTIVE_MAX_CHANNEL_TIME_DEFAULT,
735 CFG_ACTIVE_MAX_CHANNEL_TIME_MIN,
736 CFG_ACTIVE_MAX_CHANNEL_TIME_MAX),
737
738 REG_VARIABLE(CFG_ACTIVE_MIN_CHANNEL_TIME_NAME, WLAN_PARAM_Integer,
739 struct hdd_config, nActiveMinChnTime,
740 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
741 CFG_ACTIVE_MIN_CHANNEL_TIME_DEFAULT,
742 CFG_ACTIVE_MIN_CHANNEL_TIME_MIN,
743 CFG_ACTIVE_MIN_CHANNEL_TIME_MAX),
744
Kiran Kumar Lokerea2dfefe2017-06-29 19:01:24 -0700745 REG_VARIABLE(CFG_SCAN_NUM_PROBES_NAME, WLAN_PARAM_Integer,
746 struct hdd_config, scan_num_probes,
747 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
748 CFG_SCAN_NUM_PROBES_DEFAULT,
749 CFG_SCAN_NUM_PROBES_MIN,
750 CFG_SCAN_NUM_PROBES_MAX),
751
752 REG_VARIABLE(CFG_SCAN_PROBE_REPEAT_TIME_NAME, WLAN_PARAM_Integer,
753 struct hdd_config, scan_probe_repeat_time,
754 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
755 CFG_SCAN_PROBE_REPEAT_TIME_DEFAULT,
756 CFG_SCAN_PROBE_REPEAT_TIME_MIN,
757 CFG_SCAN_PROBE_REPEAT_TIME_MAX),
758
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800759 REG_VARIABLE(CFG_RETRY_LIMIT_ZERO_NAME, WLAN_PARAM_Integer,
760 struct hdd_config, retryLimitZero,
761 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
762 CFG_RETRY_LIMIT_ZERO_DEFAULT,
763 CFG_RETRY_LIMIT_ZERO_MIN,
764 CFG_RETRY_LIMIT_ZERO_MAX),
765
766 REG_VARIABLE(CFG_RETRY_LIMIT_ONE_NAME, WLAN_PARAM_Integer,
767 struct hdd_config, retryLimitOne,
768 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
769 CFG_RETRY_LIMIT_ONE_DEFAULT,
770 CFG_RETRY_LIMIT_ONE_MIN,
771 CFG_RETRY_LIMIT_ONE_MAX),
772
773 REG_VARIABLE(CFG_RETRY_LIMIT_TWO_NAME, WLAN_PARAM_Integer,
774 struct hdd_config, retryLimitTwo,
775 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
776 CFG_RETRY_LIMIT_TWO_DEFAULT,
777 CFG_RETRY_LIMIT_TWO_MIN,
778 CFG_RETRY_LIMIT_TWO_MAX),
779
780#ifdef WLAN_AP_STA_CONCURRENCY
781 REG_VARIABLE(CFG_PASSIVE_MAX_CHANNEL_TIME_CONC_NAME, WLAN_PARAM_Integer,
782 struct hdd_config, nPassiveMaxChnTimeConc,
783 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
784 CFG_PASSIVE_MAX_CHANNEL_TIME_CONC_DEFAULT,
785 CFG_PASSIVE_MAX_CHANNEL_TIME_CONC_MIN,
786 CFG_PASSIVE_MAX_CHANNEL_TIME_CONC_MAX),
787
788 REG_VARIABLE(CFG_PASSIVE_MIN_CHANNEL_TIME_CONC_NAME, WLAN_PARAM_Integer,
789 struct hdd_config, nPassiveMinChnTimeConc,
790 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
791 CFG_PASSIVE_MIN_CHANNEL_TIME_CONC_DEFAULT,
792 CFG_PASSIVE_MIN_CHANNEL_TIME_CONC_MIN,
793 CFG_PASSIVE_MIN_CHANNEL_TIME_CONC_MAX),
794
795 REG_VARIABLE(CFG_ACTIVE_MAX_CHANNEL_TIME_CONC_NAME, WLAN_PARAM_Integer,
796 struct hdd_config, nActiveMaxChnTimeConc,
797 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
798 CFG_ACTIVE_MAX_CHANNEL_TIME_CONC_DEFAULT,
799 CFG_ACTIVE_MAX_CHANNEL_TIME_CONC_MIN,
800 CFG_ACTIVE_MAX_CHANNEL_TIME_CONC_MAX),
801
802 REG_VARIABLE(CFG_ACTIVE_MIN_CHANNEL_TIME_CONC_NAME, WLAN_PARAM_Integer,
803 struct hdd_config, nActiveMinChnTimeConc,
804 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
805 CFG_ACTIVE_MIN_CHANNEL_TIME_CONC_DEFAULT,
806 CFG_ACTIVE_MIN_CHANNEL_TIME_CONC_MIN,
807 CFG_ACTIVE_MIN_CHANNEL_TIME_CONC_MAX),
808
809 REG_VARIABLE(CFG_REST_TIME_CONC_NAME, WLAN_PARAM_Integer,
810 struct hdd_config, nRestTimeConc,
811 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
812 CFG_REST_TIME_CONC_DEFAULT,
813 CFG_REST_TIME_CONC_MIN,
814 CFG_REST_TIME_CONC_MAX),
815
Agrawal Ashish17bb3902016-05-05 13:29:40 +0530816 REG_VARIABLE(CFG_MIN_REST_TIME_NAME, WLAN_PARAM_Integer,
817 struct hdd_config, min_rest_time_conc,
818 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
819 CFG_MIN_REST_TIME_DEFAULT,
820 CFG_MIN_REST_TIME_MIN,
821 CFG_MIN_REST_TIME_MAX),
822
Jeff Johnson03294f12016-12-09 17:10:24 -0800823 REG_VARIABLE(CFG_IDLE_TIME_NAME, WLAN_PARAM_Integer,
Agrawal Ashish17bb3902016-05-05 13:29:40 +0530824 struct hdd_config, idle_time_conc,
825 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
826 CFG_IDLE_TIME_DEFAULT,
827 CFG_IDLE_TIME_MIN,
Jeff Johnson03294f12016-12-09 17:10:24 -0800828 CFG_IDLE_TIME_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800829#endif
830
831 REG_VARIABLE(CFG_MAX_PS_POLL_NAME, WLAN_PARAM_Integer,
832 struct hdd_config, nMaxPsPoll,
833 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
834 CFG_MAX_PS_POLL_DEFAULT,
835 CFG_MAX_PS_POLL_MIN,
836 CFG_MAX_PS_POLL_MAX),
837
838 REG_VARIABLE(CFG_MAX_TX_POWER_NAME, WLAN_PARAM_Integer,
839 struct hdd_config, nTxPowerCap,
840 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
841 CFG_MAX_TX_POWER_DEFAULT,
842 CFG_MAX_TX_POWER_MIN,
843 CFG_MAX_TX_POWER_MAX),
844
Padma, Santhosh Kumar29df3622016-08-16 19:15:16 +0530845 REG_VARIABLE(CFG_TX_POWER_CTRL_NAME, WLAN_PARAM_Integer,
846 struct hdd_config, allow_tpc_from_ap,
847 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
848 CFG_TX_POWER_CTRL_DEFAULT,
849 CFG_TX_POWER_CTRL_MIN,
850 CFG_TX_POWER_CTRL_MAX),
851
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800852 REG_VARIABLE(CFG_LOW_GAIN_OVERRIDE_NAME, WLAN_PARAM_Integer,
853 struct hdd_config, fIsLowGainOverride,
854 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
855 CFG_LOW_GAIN_OVERRIDE_DEFAULT,
856 CFG_LOW_GAIN_OVERRIDE_MIN,
857 CFG_LOW_GAIN_OVERRIDE_MAX),
858
859 REG_VARIABLE(CFG_RSSI_FILTER_PERIOD_NAME, WLAN_PARAM_Integer,
860 struct hdd_config, nRssiFilterPeriod,
861 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
862 CFG_RSSI_FILTER_PERIOD_DEFAULT,
863 CFG_RSSI_FILTER_PERIOD_MIN,
864 CFG_RSSI_FILTER_PERIOD_MAX),
865
866 REG_VARIABLE(CFG_IGNORE_DTIM_NAME, WLAN_PARAM_Integer,
867 struct hdd_config, fIgnoreDtim,
868 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
869 CFG_IGNORE_DTIM_DEFAULT,
870 CFG_IGNORE_DTIM_MIN,
871 CFG_IGNORE_DTIM_MAX),
872
873 REG_VARIABLE(CFG_MAX_LI_MODULATED_DTIM_NAME, WLAN_PARAM_Integer,
874 struct hdd_config, fMaxLIModulatedDTIM,
875 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
876 CFG_MAX_LI_MODULATED_DTIM_DEFAULT,
877 CFG_MAX_LI_MODULATED_DTIM_MIN,
878 CFG_MAX_LI_MODULATED_DTIM_MAX),
879
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800880 REG_VARIABLE(CFG_FW_HEART_BEAT_MONITORING_NAME, WLAN_PARAM_Integer,
881 struct hdd_config, fEnableFwHeartBeatMonitoring,
882 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
883 CFG_FW_HEART_BEAT_MONITORING_DEFAULT,
884 CFG_FW_HEART_BEAT_MONITORING_MIN,
885 CFG_FW_HEART_BEAT_MONITORING_MAX),
886
887 REG_VARIABLE(CFG_FW_BEACON_FILTERING_NAME, WLAN_PARAM_Integer,
888 struct hdd_config, fEnableFwBeaconFiltering,
889 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
890 CFG_FW_BEACON_FILTERING_DEFAULT,
891 CFG_FW_BEACON_FILTERING_MIN,
892 CFG_FW_BEACON_FILTERING_MAX),
893
894 REG_DYNAMIC_VARIABLE(CFG_FW_RSSI_MONITORING_NAME, WLAN_PARAM_Integer,
895 struct hdd_config, fEnableFwRssiMonitoring,
896 VAR_FLAGS_OPTIONAL |
897 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
898 CFG_FW_RSSI_MONITORING_DEFAULT,
899 CFG_FW_RSSI_MONITORING_MIN,
900 CFG_FW_RSSI_MONITORING_MAX,
901 cb_notify_set_fw_rssi_monitoring, 0),
902
903 REG_VARIABLE(CFG_FW_MCC_RTS_CTS_PROT_NAME, WLAN_PARAM_Integer,
904 struct hdd_config, mcc_rts_cts_prot_enable,
905 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
906 CFG_FW_MCC_RTS_CTS_PROT_DEFAULT,
907 CFG_FW_MCC_RTS_CTS_PROT_MIN,
908 CFG_FW_MCC_RTS_CTS_PROT_MAX),
909
910 REG_VARIABLE(CFG_FW_MCC_BCAST_PROB_RESP_NAME, WLAN_PARAM_Integer,
911 struct hdd_config, mcc_bcast_prob_resp_enable,
912 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
913 CFG_FW_MCC_BCAST_PROB_RESP_DEFAULT,
914 CFG_FW_MCC_BCAST_PROB_RESP_MIN,
915 CFG_FW_MCC_BCAST_PROB_RESP_MAX),
916
917 REG_VARIABLE(CFG_DATA_INACTIVITY_TIMEOUT_NAME, WLAN_PARAM_Integer,
918 struct hdd_config, nDataInactivityTimeout,
919 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
920 CFG_DATA_INACTIVITY_TIMEOUT_DEFAULT,
921 CFG_DATA_INACTIVITY_TIMEOUT_MIN,
922 CFG_DATA_INACTIVITY_TIMEOUT_MAX),
923
Mukul Sharmaed92f2f2017-04-20 00:06:28 +0530924 REG_VARIABLE(CFG_WOW_DATA_INACTIVITY_TIMEOUT_NAME, WLAN_PARAM_Integer,
925 struct hdd_config, wow_data_inactivity_timeout,
926 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
927 CFG_WOW_DATA_INACTIVITY_TIMEOUT_DEFAULT,
928 CFG_WOW_DATA_INACTIVITY_TIMEOUT_MIN,
929 CFG_WOW_DATA_INACTIVITY_TIMEOUT_MAX),
930
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800931 REG_VARIABLE(CFG_QOS_WMM_MODE_NAME, WLAN_PARAM_Integer,
932 struct hdd_config, WmmMode,
933 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
934 CFG_QOS_WMM_MODE_DEFAULT,
935 CFG_QOS_WMM_MODE_MIN,
936 CFG_QOS_WMM_MODE_MAX),
937
938 REG_VARIABLE(CFG_QOS_WMM_80211E_ENABLED_NAME, WLAN_PARAM_Integer,
939 struct hdd_config, b80211eIsEnabled,
940 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
941 CFG_QOS_WMM_80211E_ENABLED_DEFAULT,
942 CFG_QOS_WMM_80211E_ENABLED_MIN,
943 CFG_QOS_WMM_80211E_ENABLED_MAX),
944
945 REG_VARIABLE(CFG_QOS_WMM_UAPSD_MASK_NAME, WLAN_PARAM_HexInteger,
946 struct hdd_config, UapsdMask,
947 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
948 CFG_QOS_WMM_UAPSD_MASK_DEFAULT,
949 CFG_QOS_WMM_UAPSD_MASK_MIN,
950 CFG_QOS_WMM_UAPSD_MASK_MAX),
951
952 REG_VARIABLE(CFG_QOS_WMM_INFRA_UAPSD_VO_SRV_INTV_NAME,
953 WLAN_PARAM_Integer,
954 struct hdd_config, InfraUapsdVoSrvIntv,
955 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
956 CFG_QOS_WMM_INFRA_UAPSD_VO_SRV_INTV_DEFAULT,
957 CFG_QOS_WMM_INFRA_UAPSD_VO_SRV_INTV_MIN,
958 CFG_QOS_WMM_INFRA_UAPSD_VO_SRV_INTV_MAX),
959
960 REG_VARIABLE(CFG_QOS_WMM_INFRA_UAPSD_VO_SUS_INTV_NAME,
961 WLAN_PARAM_Integer,
962 struct hdd_config, InfraUapsdVoSuspIntv,
963 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
964 CFG_QOS_WMM_INFRA_UAPSD_VO_SUS_INTV_DEFAULT,
965 CFG_QOS_WMM_INFRA_UAPSD_VO_SUS_INTV_MIN,
966 CFG_QOS_WMM_INFRA_UAPSD_VO_SUS_INTV_MAX),
967
968 REG_VARIABLE(CFG_QOS_WMM_INFRA_UAPSD_VI_SRV_INTV_NAME,
969 WLAN_PARAM_Integer,
970 struct hdd_config, InfraUapsdViSrvIntv,
971 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
972 CFG_QOS_WMM_INFRA_UAPSD_VI_SRV_INTV_DEFAULT,
973 CFG_QOS_WMM_INFRA_UAPSD_VI_SRV_INTV_MIN,
974 CFG_QOS_WMM_INFRA_UAPSD_VI_SRV_INTV_MAX),
975
976 REG_VARIABLE(CFG_QOS_WMM_INFRA_UAPSD_VI_SUS_INTV_NAME,
977 WLAN_PARAM_Integer,
978 struct hdd_config, InfraUapsdViSuspIntv,
979 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
980 CFG_QOS_WMM_INFRA_UAPSD_VI_SUS_INTV_DEFAULT,
981 CFG_QOS_WMM_INFRA_UAPSD_VI_SUS_INTV_MIN,
982 CFG_QOS_WMM_INFRA_UAPSD_VI_SUS_INTV_MAX),
983
984 REG_VARIABLE(CFG_QOS_WMM_INFRA_UAPSD_BE_SRV_INTV_NAME,
985 WLAN_PARAM_Integer,
986 struct hdd_config, InfraUapsdBeSrvIntv,
987 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
988 CFG_QOS_WMM_INFRA_UAPSD_BE_SRV_INTV_DEFAULT,
989 CFG_QOS_WMM_INFRA_UAPSD_BE_SRV_INTV_MIN,
990 CFG_QOS_WMM_INFRA_UAPSD_BE_SRV_INTV_MAX),
991
992 REG_VARIABLE(CFG_QOS_WMM_INFRA_UAPSD_BE_SUS_INTV_NAME,
993 WLAN_PARAM_Integer,
994 struct hdd_config, InfraUapsdBeSuspIntv,
995 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
996 CFG_QOS_WMM_INFRA_UAPSD_BE_SUS_INTV_DEFAULT,
997 CFG_QOS_WMM_INFRA_UAPSD_BE_SUS_INTV_MIN,
998 CFG_QOS_WMM_INFRA_UAPSD_BE_SUS_INTV_MAX),
999
1000 REG_VARIABLE(CFG_QOS_WMM_INFRA_UAPSD_BK_SRV_INTV_NAME,
1001 WLAN_PARAM_Integer,
1002 struct hdd_config, InfraUapsdBkSrvIntv,
1003 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1004 CFG_QOS_WMM_INFRA_UAPSD_BK_SRV_INTV_DEFAULT,
1005 CFG_QOS_WMM_INFRA_UAPSD_BK_SRV_INTV_MIN,
1006 CFG_QOS_WMM_INFRA_UAPSD_BK_SRV_INTV_MAX),
1007
1008 REG_VARIABLE(CFG_QOS_WMM_INFRA_UAPSD_BK_SUS_INTV_NAME,
1009 WLAN_PARAM_Integer,
1010 struct hdd_config, InfraUapsdBkSuspIntv,
1011 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1012 CFG_QOS_WMM_INFRA_UAPSD_BK_SUS_INTV_DEFAULT,
1013 CFG_QOS_WMM_INFRA_UAPSD_BK_SUS_INTV_MIN,
1014 CFG_QOS_WMM_INFRA_UAPSD_BK_SUS_INTV_MAX),
1015
1016#ifdef FEATURE_WLAN_ESE
1017 REG_VARIABLE(CFG_QOS_WMM_INFRA_INACTIVITY_INTERVAL_NAME,
1018 WLAN_PARAM_Integer,
1019 struct hdd_config, InfraInactivityInterval,
1020 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1021 CFG_QOS_WMM_INFRA_INACTIVITY_INTERVAL_DEFAULT,
1022 CFG_QOS_WMM_INFRA_INACTIVITY_INTERVAL_MIN,
1023 CFG_QOS_WMM_INFRA_INACTIVITY_INTERVAL_MAX),
1024
1025 REG_DYNAMIC_VARIABLE(CFG_ESE_FEATURE_ENABLED_NAME, WLAN_PARAM_Integer,
1026 struct hdd_config, isEseIniFeatureEnabled,
1027 VAR_FLAGS_OPTIONAL |
1028 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1029 CFG_ESE_FEATURE_ENABLED_DEFAULT,
1030 CFG_ESE_FEATURE_ENABLED_MIN,
1031 CFG_ESE_FEATURE_ENABLED_MAX,
1032 cb_notify_set_ese_feature_enabled, 0),
1033#endif /* FEATURE_WLAN_ESE */
1034
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001035 /* flag to turn ON/OFF Legacy Fast Roaming */
1036 REG_DYNAMIC_VARIABLE(CFG_LFR_FEATURE_ENABLED_NAME, WLAN_PARAM_Integer,
1037 struct hdd_config, isFastRoamIniFeatureEnabled,
1038 VAR_FLAGS_OPTIONAL |
1039 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1040 CFG_LFR_FEATURE_ENABLED_DEFAULT,
1041 CFG_LFR_FEATURE_ENABLED_MIN,
1042 CFG_LFR_FEATURE_ENABLED_MAX,
1043 notify_is_fast_roam_ini_feature_enabled, 0),
1044
1045 /* flag to turn ON/OFF Motion assistance for Legacy Fast Roaming */
1046 REG_DYNAMIC_VARIABLE(CFG_LFR_MAWC_FEATURE_ENABLED_NAME,
1047 WLAN_PARAM_Integer,
1048 struct hdd_config, MAWCEnabled,
1049 VAR_FLAGS_OPTIONAL |
1050 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1051 CFG_LFR_MAWC_FEATURE_ENABLED_DEFAULT,
1052 CFG_LFR_MAWC_FEATURE_ENABLED_MIN,
1053 CFG_LFR_MAWC_FEATURE_ENABLED_MAX,
1054 notify_is_mawc_ini_feature_enabled, 0),
1055
Varun Reddy Yeturu061d4d62017-07-20 09:39:32 -07001056 REG_VARIABLE(CFG_MAWC_ROAM_ENABLED_NAME, WLAN_PARAM_Integer,
1057 struct hdd_config, mawc_roam_enabled,
1058 VAR_FLAGS_OPTIONAL |
1059 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1060 CFG_MAWC_ROAM_ENABLED_DEFAULT,
1061 CFG_MAWC_ROAM_ENABLED_MIN,
1062 CFG_MAWC_ROAM_ENABLED_MAX),
1063
1064 REG_VARIABLE(CFG_MAWC_ROAM_TRAFFIC_THRESHOLD_NAME, WLAN_PARAM_Integer,
1065 struct hdd_config, mawc_roam_traffic_threshold,
1066 VAR_FLAGS_OPTIONAL |
1067 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1068 CFG_MAWC_ROAM_TRAFFIC_THRESHOLD_DEFAULT,
1069 CFG_MAWC_ROAM_TRAFFIC_THRESHOLD_MIN,
1070 CFG_MAWC_ROAM_TRAFFIC_THRESHOLD_MAX),
1071
1072 REG_VARIABLE(CFG_MAWC_ROAM_AP_RSSI_THRESHOLD_NAME,
1073 WLAN_PARAM_SignedInteger, struct hdd_config,
1074 mawc_roam_ap_rssi_threshold, VAR_FLAGS_OPTIONAL |
1075 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1076 CFG_MAWC_ROAM_AP_RSSI_THRESHOLD_DEFAULT,
1077 CFG_MAWC_ROAM_AP_RSSI_THRESHOLD_MIN,
1078 CFG_MAWC_ROAM_AP_RSSI_THRESHOLD_MAX),
1079
1080 REG_VARIABLE(CFG_MAWC_ROAM_RSSI_HIGH_ADJUST_NAME, WLAN_PARAM_Integer,
1081 struct hdd_config, mawc_roam_rssi_high_adjust,
1082 VAR_FLAGS_OPTIONAL |
1083 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1084 CFG_MAWC_ROAM_RSSI_HIGH_ADJUST_DEFAULT,
1085 CFG_MAWC_ROAM_RSSI_HIGH_ADJUST_MIN,
1086 CFG_MAWC_ROAM_RSSI_HIGH_ADJUST_MAX),
1087
1088 REG_VARIABLE(CFG_MAWC_ROAM_RSSI_LOW_ADJUST_NAME, WLAN_PARAM_Integer,
1089 struct hdd_config, mawc_roam_rssi_low_adjust,
1090 VAR_FLAGS_OPTIONAL |
1091 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1092 CFG_MAWC_ROAM_RSSI_LOW_ADJUST_DEFAULT,
1093 CFG_MAWC_ROAM_RSSI_LOW_ADJUST_MIN,
1094 CFG_MAWC_ROAM_RSSI_LOW_ADJUST_MAX),
1095
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001096 /* flag to turn ON/OFF 11r and ESE FastTransition */
1097 REG_DYNAMIC_VARIABLE(CFG_FAST_TRANSITION_ENABLED_NAME,
1098 WLAN_PARAM_Integer,
1099 struct hdd_config, isFastTransitionEnabled,
1100 VAR_FLAGS_OPTIONAL |
1101 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1102 CFG_FAST_TRANSITION_ENABLED_NAME_DEFAULT,
1103 CFG_FAST_TRANSITION_ENABLED_NAME_MIN,
1104 CFG_FAST_TRANSITION_ENABLED_NAME_MAX,
1105 cb_notify_set_fast_transition_enabled, 0),
1106
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07001107 /* Variable to specify the delta/difference between the
1108 * RSSI of current AP and roamable AP while roaming
Jeff Johnson78d88a82017-01-12 09:50:54 -08001109 */
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001110 REG_DYNAMIC_VARIABLE(CFG_ROAM_RSSI_DIFF_NAME, WLAN_PARAM_Integer,
1111 struct hdd_config, RoamRssiDiff,
1112 VAR_FLAGS_OPTIONAL |
1113 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1114 CFG_ROAM_RSSI_DIFF_DEFAULT,
1115 CFG_ROAM_RSSI_DIFF_MIN,
1116 CFG_ROAM_RSSI_DIFF_MAX,
1117 cb_notify_set_roam_rssi_diff, 0),
1118
Abhishek Singh34c0e632017-09-28 14:39:29 +05301119 REG_VARIABLE(CFG_ROAM_RSSI_ABS_THRESHOLD_NAME, WLAN_PARAM_SignedInteger,
1120 struct hdd_config, rssi_abs_thresh,
1121 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1122 CFG_ROAM_RSSI_ABS_THRESHOLD_DEFAULT,
1123 CFG_ROAM_RSSI_ABS_THRESHOLD_MIN,
1124 CFG_ROAM_RSSI_ABS_THRESHOLD_MAX),
1125
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001126 REG_DYNAMIC_VARIABLE(CFG_ENABLE_WES_MODE_NAME, WLAN_PARAM_Integer,
1127 struct hdd_config, isWESModeEnabled,
1128 VAR_FLAGS_OPTIONAL |
1129 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1130 CFG_ENABLE_WES_MODE_NAME_DEFAULT,
1131 CFG_ENABLE_WES_MODE_NAME_MIN,
1132 CFG_ENABLE_WES_MODE_NAME_MAX,
1133 cb_notify_set_wes_mode, 0),
Deepak Dhamdhere828f1892017-02-09 11:51:19 -08001134 REG_VARIABLE(CFG_PMKID_MODES_NAME, WLAN_PARAM_Integer,
1135 struct hdd_config, pmkid_modes,
Deepak Dhamdheref2a7d8b2016-08-19 16:17:38 -07001136 VAR_FLAGS_OPTIONAL |
1137 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
Deepak Dhamdhere828f1892017-02-09 11:51:19 -08001138 CFG_PMKID_MODES_DEFAULT,
1139 CFG_PMKID_MODES_MIN,
1140 CFG_PMKID_MODES_MAX),
1141
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001142 REG_DYNAMIC_VARIABLE(CFG_ROAM_SCAN_OFFLOAD_ENABLED, WLAN_PARAM_Integer,
1143 struct hdd_config, isRoamOffloadScanEnabled,
1144 VAR_FLAGS_OPTIONAL |
1145 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1146 CFG_ROAM_SCAN_OFFLOAD_ENABLED_DEFAULT,
1147 CFG_ROAM_SCAN_OFFLOAD_ENABLED_MIN,
1148 CFG_ROAM_SCAN_OFFLOAD_ENABLED_MAX,
1149 cb_notify_update_roam_scan_offload_enabled, 0),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001150
1151 REG_VARIABLE(CFG_QOS_WMM_INFRA_DIR_AC_VO_NAME, WLAN_PARAM_Integer,
1152 struct hdd_config, InfraDirAcVo,
1153 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1154 CFG_QOS_WMM_INFRA_DIR_AC_VO_DEFAULT,
1155 CFG_QOS_WMM_INFRA_DIR_AC_VO_MIN,
1156 CFG_QOS_WMM_INFRA_DIR_AC_VO_MAX),
1157
1158 REG_VARIABLE(CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VO_NAME,
1159 WLAN_PARAM_HexInteger,
1160 struct hdd_config, InfraNomMsduSizeAcVo,
1161 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1162 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VO_DEFAULT,
1163 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VO_MIN,
1164 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VO_MAX),
1165
1166 REG_VARIABLE(CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VO_NAME,
1167 WLAN_PARAM_HexInteger,
1168 struct hdd_config, InfraMeanDataRateAcVo,
1169 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1170 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VO_DEFAULT,
1171 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VO_MIN,
1172 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VO_MAX),
1173
1174 REG_VARIABLE(CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VO_NAME,
1175 WLAN_PARAM_HexInteger,
1176 struct hdd_config, InfraMinPhyRateAcVo,
1177 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1178 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VO_DEFAULT,
1179 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VO_MIN,
1180 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VO_MAX),
1181
1182 REG_VARIABLE(CFG_QOS_WMM_INFRA_SBA_AC_VO_NAME, WLAN_PARAM_HexInteger,
1183 struct hdd_config, InfraSbaAcVo,
1184 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1185 CFG_QOS_WMM_INFRA_SBA_AC_VO_DEFAULT,
1186 CFG_QOS_WMM_INFRA_SBA_AC_VO_MIN,
1187 CFG_QOS_WMM_INFRA_SBA_AC_VO_MAX),
1188
1189 REG_VARIABLE(CFG_QOS_WMM_INFRA_DIR_AC_VI_NAME, WLAN_PARAM_Integer,
1190 struct hdd_config, InfraDirAcVi,
1191 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1192 CFG_QOS_WMM_INFRA_DIR_AC_VI_DEFAULT,
1193 CFG_QOS_WMM_INFRA_DIR_AC_VI_MIN,
1194 CFG_QOS_WMM_INFRA_DIR_AC_VI_MAX),
1195
1196 REG_VARIABLE(CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VI_NAME,
1197 WLAN_PARAM_HexInteger,
1198 struct hdd_config, InfraNomMsduSizeAcVi,
1199 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1200 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VI_DEFAULT,
1201 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VI_MIN,
1202 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_VI_MAX),
1203
1204 REG_VARIABLE(CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VI_NAME,
1205 WLAN_PARAM_HexInteger,
1206 struct hdd_config, InfraMeanDataRateAcVi,
1207 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1208 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VI_DEFAULT,
1209 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VI_MIN,
1210 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_VI_MAX),
1211
1212 REG_VARIABLE(CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VI_NAME,
1213 WLAN_PARAM_HexInteger,
1214 struct hdd_config, InfraMinPhyRateAcVi,
1215 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1216 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VI_DEFAULT,
1217 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VI_MIN,
1218 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_VI_MAX),
1219
1220 REG_VARIABLE(CFG_QOS_WMM_INFRA_SBA_AC_VI_NAME, WLAN_PARAM_HexInteger,
1221 struct hdd_config, InfraSbaAcVi,
1222 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1223 CFG_QOS_WMM_INFRA_SBA_AC_VI_DEFAULT,
1224 CFG_QOS_WMM_INFRA_SBA_AC_VI_MIN,
1225 CFG_QOS_WMM_INFRA_SBA_AC_VI_MAX),
1226
1227 REG_VARIABLE(CFG_QOS_WMM_INFRA_DIR_AC_BE_NAME, WLAN_PARAM_Integer,
1228 struct hdd_config, InfraDirAcBe,
1229 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1230 CFG_QOS_WMM_INFRA_DIR_AC_BE_DEFAULT,
1231 CFG_QOS_WMM_INFRA_DIR_AC_BE_MIN,
1232 CFG_QOS_WMM_INFRA_DIR_AC_BE_MAX),
1233
1234 REG_VARIABLE(CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_BE_NAME,
1235 WLAN_PARAM_HexInteger,
1236 struct hdd_config, InfraNomMsduSizeAcBe,
1237 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1238 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_BE_DEFAULT,
1239 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_BE_MIN,
1240 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_BE_MAX),
1241
1242 REG_VARIABLE(CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_BE_NAME,
1243 WLAN_PARAM_HexInteger,
1244 struct hdd_config, InfraMeanDataRateAcBe,
1245 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1246 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_BE_DEFAULT,
1247 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_BE_MIN,
1248 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_BE_MAX),
1249
1250 REG_VARIABLE(CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_BE_NAME,
1251 WLAN_PARAM_HexInteger,
1252 struct hdd_config, InfraMinPhyRateAcBe,
1253 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1254 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_BE_DEFAULT,
1255 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_BE_MIN,
1256 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_BE_MAX),
1257
1258 REG_VARIABLE(CFG_QOS_WMM_INFRA_SBA_AC_BE_NAME, WLAN_PARAM_HexInteger,
1259 struct hdd_config, InfraSbaAcBe,
1260 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1261 CFG_QOS_WMM_INFRA_SBA_AC_BE_DEFAULT,
1262 CFG_QOS_WMM_INFRA_SBA_AC_BE_MIN,
1263 CFG_QOS_WMM_INFRA_SBA_AC_BE_MAX),
1264
1265 REG_VARIABLE(CFG_QOS_WMM_INFRA_DIR_AC_BK_NAME, WLAN_PARAM_Integer,
1266 struct hdd_config, InfraDirAcBk,
1267 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1268 CFG_QOS_WMM_INFRA_DIR_AC_BK_DEFAULT,
1269 CFG_QOS_WMM_INFRA_DIR_AC_BK_MIN,
1270 CFG_QOS_WMM_INFRA_DIR_AC_BK_MAX),
1271
1272 REG_VARIABLE(CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_BK_NAME,
1273 WLAN_PARAM_HexInteger,
1274 struct hdd_config, InfraNomMsduSizeAcBk,
1275 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1276 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_BK_DEFAULT,
1277 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_BK_MIN,
1278 CFG_QOS_WMM_INFRA_NOM_MSDU_SIZE_AC_BK_MAX),
1279
1280 REG_VARIABLE(CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_BK_NAME,
1281 WLAN_PARAM_HexInteger,
1282 struct hdd_config, InfraMeanDataRateAcBk,
1283 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1284 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_BK_DEFAULT,
1285 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_BK_MIN,
1286 CFG_QOS_WMM_INFRA_MEAN_DATA_RATE_AC_BK_MAX),
1287
1288 REG_VARIABLE(CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_BK_NAME,
1289 WLAN_PARAM_HexInteger,
1290 struct hdd_config, InfraMinPhyRateAcBk,
1291 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1292 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_BK_DEFAULT,
1293 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_BK_MIN,
1294 CFG_QOS_WMM_INFRA_MIN_PHY_RATE_AC_BK_MAX),
1295
1296 REG_VARIABLE(CFG_QOS_WMM_INFRA_SBA_AC_BK_NAME, WLAN_PARAM_HexInteger,
1297 struct hdd_config, InfraSbaAcBk,
1298 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1299 CFG_QOS_WMM_INFRA_SBA_AC_BK_DEFAULT,
1300 CFG_QOS_WMM_INFRA_SBA_AC_BK_MIN,
1301 CFG_QOS_WMM_INFRA_SBA_AC_BK_MAX),
1302
1303 REG_VARIABLE(CFG_TL_DELAYED_TRGR_FRM_INT_NAME, WLAN_PARAM_Integer,
1304 struct hdd_config, DelayedTriggerFrmInt,
1305 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1306 CFG_TL_DELAYED_TRGR_FRM_INT_DEFAULT,
1307 CFG_TL_DELAYED_TRGR_FRM_INT_MIN,
1308 CFG_TL_DELAYED_TRGR_FRM_INT_MAX),
1309
1310 REG_VARIABLE_STRING(CFG_WOWL_PATTERN_NAME, WLAN_PARAM_String,
1311 struct hdd_config, wowlPattern,
1312 VAR_FLAGS_OPTIONAL,
1313 (void *)CFG_WOWL_PATTERN_DEFAULT),
1314
1315 REG_VARIABLE(CFG_QOS_IMPLICIT_SETUP_ENABLED_NAME, WLAN_PARAM_Integer,
1316 struct hdd_config, bImplicitQosEnabled,
1317 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1318 CFG_QOS_IMPLICIT_SETUP_ENABLED_DEFAULT,
1319 CFG_QOS_IMPLICIT_SETUP_ENABLED_MIN,
1320 CFG_QOS_IMPLICIT_SETUP_ENABLED_MAX),
1321
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001322 REG_VARIABLE(CFG_AP_AUTO_SHUT_OFF, WLAN_PARAM_Integer,
1323 struct hdd_config, nAPAutoShutOff,
1324 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1325 CFG_AP_AUTO_SHUT_OFF_DEFAULT,
1326 CFG_AP_AUTO_SHUT_OFF_MIN,
1327 CFG_AP_AUTO_SHUT_OFF_MAX),
1328
1329#ifdef FEATURE_WLAN_MCC_TO_SCC_SWITCH
1330 REG_VARIABLE(CFG_WLAN_MCC_TO_SCC_SWITCH_MODE, WLAN_PARAM_Integer,
1331 struct hdd_config, WlanMccToSccSwitchMode,
1332 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1333 CFG_WLAN_MCC_TO_SCC_SWITCH_MODE_DEFAULT,
1334 CFG_WLAN_MCC_TO_SCC_SWITCH_MODE_MIN,
1335 CFG_WLAN_MCC_TO_SCC_SWITCH_MODE_MAX),
1336#endif
1337#ifdef FEATURE_WLAN_AUTO_SHUTDOWN
1338 REG_VARIABLE(CFG_WLAN_AUTO_SHUTDOWN, WLAN_PARAM_Integer,
1339 struct hdd_config, WlanAutoShutdown,
1340 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1341 CFG_WLAN_AUTO_SHUTDOWN_DEFAULT,
1342 CFG_WLAN_AUTO_SHUTDOWN_MIN,
1343 CFG_WLAN_AUTO_SHUTDOWN_MAX),
1344#endif
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001345 REG_VARIABLE(CFG_RRM_ENABLE_NAME, WLAN_PARAM_Integer,
1346 struct hdd_config, fRrmEnable,
1347 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1348 CFG_RRM_ENABLE_DEFAULT,
1349 CFG_RRM_ENABLE_MIN,
1350 CFG_RRM_ENABLE_MAX),
1351
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001352 REG_VARIABLE(CFG_RRM_MEAS_RANDOMIZATION_INTVL_NAME, WLAN_PARAM_Integer,
1353 struct hdd_config, nRrmRandnIntvl,
1354 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1355 CFG_RRM_MEAS_RANDOMIZATION_INTVL_DEFAULT,
1356 CFG_RRM_MEAS_RANDOMIZATION_INTVL_MIN,
1357 CFG_RRM_MEAS_RANDOMIZATION_INTVL_MAX),
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08001358
1359 REG_VARIABLE_STRING(CFG_RM_CAPABILITY_NAME, WLAN_PARAM_String,
1360 struct hdd_config, rm_capability,
1361 VAR_FLAGS_OPTIONAL,
1362 (void *) CFG_RM_CAPABILITY_DEFAULT),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001363
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001364 REG_VARIABLE(CFG_FT_RESOURCE_REQ_NAME, WLAN_PARAM_Integer,
1365 struct hdd_config, fFTResourceReqSupported,
1366 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1367 CFG_FT_RESOURCE_REQ_DEFAULT,
1368 CFG_FT_RESOURCE_REQ_MIN,
1369 CFG_FT_RESOURCE_REQ_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001370
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001371 REG_DYNAMIC_VARIABLE(CFG_NEIGHBOR_SCAN_TIMER_PERIOD_NAME,
1372 WLAN_PARAM_Integer,
1373 struct hdd_config, nNeighborScanPeriod,
1374 VAR_FLAGS_OPTIONAL |
1375 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1376 CFG_NEIGHBOR_SCAN_TIMER_PERIOD_DEFAULT,
1377 CFG_NEIGHBOR_SCAN_TIMER_PERIOD_MIN,
1378 CFG_NEIGHBOR_SCAN_TIMER_PERIOD_MAX,
1379 cb_notify_set_neighbor_scan_period, 0),
1380
Sridhar Selvaraj1b2330c2017-07-21 15:16:42 +05301381 REG_DYNAMIC_VARIABLE(CFG_NEIGHBOR_SCAN_MIN_TIMER_PERIOD_NAME,
1382 WLAN_PARAM_Integer,
1383 struct hdd_config, neighbor_scan_min_period,
1384 VAR_FLAGS_OPTIONAL |
1385 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1386 CFG_NEIGHBOR_SCAN_MIN_TIMER_PERIOD_DEFAULT,
1387 CFG_NEIGHBOR_SCAN_MIN_TIMER_PERIOD_MIN,
1388 CFG_NEIGHBOR_SCAN_MIN_TIMER_PERIOD_MAX,
1389 cb_notify_set_neighbor_scan_min_period, 0),
1390
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001391 REG_DYNAMIC_VARIABLE(CFG_NEIGHBOR_LOOKUP_RSSI_THRESHOLD_NAME,
1392 WLAN_PARAM_Integer,
1393 struct hdd_config, nNeighborLookupRssiThreshold,
1394 VAR_FLAGS_OPTIONAL |
1395 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1396 CFG_NEIGHBOR_LOOKUP_RSSI_THRESHOLD_DEFAULT,
1397 CFG_NEIGHBOR_LOOKUP_RSSI_THRESHOLD_MIN,
1398 CFG_NEIGHBOR_LOOKUP_RSSI_THRESHOLD_MAX,
1399 cb_notify_set_neighbor_lookup_rssi_threshold, 0),
1400
Varun Reddy Yeturu168134f2017-06-26 13:46:05 -07001401 REG_VARIABLE(CFG_5G_RSSI_THRESHOLD_OFFSET_NAME,
1402 WLAN_PARAM_SignedInteger, struct hdd_config,
1403 rssi_thresh_offset_5g,
1404 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1405 CFG_5G_RSSI_THRESHOLD_OFFSET_DEFAULT,
1406 CFG_5G_RSSI_THRESHOLD_OFFSET_MIN,
1407 CFG_5G_RSSI_THRESHOLD_OFFSET_MAX),
1408
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001409 REG_DYNAMIC_VARIABLE(CFG_OPPORTUNISTIC_SCAN_THRESHOLD_DIFF_NAME,
1410 WLAN_PARAM_Integer,
1411 struct hdd_config, nOpportunisticThresholdDiff,
1412 VAR_FLAGS_OPTIONAL |
1413 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1414 CFG_OPPORTUNISTIC_SCAN_THRESHOLD_DIFF_DEFAULT,
1415 CFG_OPPORTUNISTIC_SCAN_THRESHOLD_DIFF_MIN,
1416 CFG_OPPORTUNISTIC_SCAN_THRESHOLD_DIFF_MAX,
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07001417 cb_notify_set_opportunistic_scan_threshold_diff,
1418 0),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001419
1420 REG_DYNAMIC_VARIABLE(CFG_ROAM_RESCAN_RSSI_DIFF_NAME, WLAN_PARAM_Integer,
1421 struct hdd_config, nRoamRescanRssiDiff,
1422 VAR_FLAGS_OPTIONAL |
1423 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1424 CFG_ROAM_RESCAN_RSSI_DIFF_DEFAULT,
1425 CFG_ROAM_RESCAN_RSSI_DIFF_MIN,
1426 CFG_ROAM_RESCAN_RSSI_DIFF_MAX,
1427 cb_notify_set_roam_rescan_rssi_diff, 0),
1428
1429 REG_VARIABLE_STRING(CFG_NEIGHBOR_SCAN_CHAN_LIST_NAME, WLAN_PARAM_String,
1430 struct hdd_config, neighborScanChanList,
1431 VAR_FLAGS_OPTIONAL,
1432 (void *)CFG_NEIGHBOR_SCAN_CHAN_LIST_DEFAULT),
1433
1434 REG_DYNAMIC_VARIABLE(CFG_NEIGHBOR_SCAN_MIN_CHAN_TIME_NAME,
1435 WLAN_PARAM_Integer,
1436 struct hdd_config, nNeighborScanMinChanTime,
1437 VAR_FLAGS_OPTIONAL |
1438 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1439 CFG_NEIGHBOR_SCAN_MIN_CHAN_TIME_DEFAULT,
1440 CFG_NEIGHBOR_SCAN_MIN_CHAN_TIME_MIN,
1441 CFG_NEIGHBOR_SCAN_MIN_CHAN_TIME_MAX,
1442 cb_notify_set_neighbor_scan_min_chan_time, 0),
1443
1444 REG_DYNAMIC_VARIABLE(CFG_NEIGHBOR_SCAN_MAX_CHAN_TIME_NAME,
1445 WLAN_PARAM_Integer,
1446 struct hdd_config, nNeighborScanMaxChanTime,
1447 VAR_FLAGS_OPTIONAL |
1448 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1449 CFG_NEIGHBOR_SCAN_MAX_CHAN_TIME_DEFAULT,
1450 CFG_NEIGHBOR_SCAN_MAX_CHAN_TIME_MIN,
1451 CFG_NEIGHBOR_SCAN_MAX_CHAN_TIME_MAX,
1452 cb_notify_set_neighbor_scan_max_chan_time, 0),
1453
1454 REG_VARIABLE(CFG_11R_NEIGHBOR_REQ_MAX_TRIES_NAME, WLAN_PARAM_Integer,
1455 struct hdd_config, nMaxNeighborReqTries,
1456 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1457 CFG_11R_NEIGHBOR_REQ_MAX_TRIES_DEFAULT,
1458 CFG_11R_NEIGHBOR_REQ_MAX_TRIES_MIN,
1459 CFG_11R_NEIGHBOR_REQ_MAX_TRIES_MAX),
1460
1461 REG_DYNAMIC_VARIABLE(CFG_NEIGHBOR_SCAN_RESULTS_REFRESH_PERIOD_NAME,
1462 WLAN_PARAM_Integer,
1463 struct hdd_config, nNeighborResultsRefreshPeriod,
1464 VAR_FLAGS_OPTIONAL |
1465 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1466 CFG_NEIGHBOR_SCAN_RESULTS_REFRESH_PERIOD_DEFAULT,
1467 CFG_NEIGHBOR_SCAN_RESULTS_REFRESH_PERIOD_MIN,
1468 CFG_NEIGHBOR_SCAN_RESULTS_REFRESH_PERIOD_MAX,
1469 cb_notify_set_neighbor_results_refresh_period, 0),
1470
1471 REG_DYNAMIC_VARIABLE(CFG_EMPTY_SCAN_REFRESH_PERIOD_NAME,
1472 WLAN_PARAM_Integer,
1473 struct hdd_config, nEmptyScanRefreshPeriod,
1474 VAR_FLAGS_OPTIONAL |
1475 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1476 CFG_EMPTY_SCAN_REFRESH_PERIOD_DEFAULT,
1477 CFG_EMPTY_SCAN_REFRESH_PERIOD_MIN,
1478 CFG_EMPTY_SCAN_REFRESH_PERIOD_MAX,
1479 cb_notify_set_empty_scan_refresh_period, 0),
1480
1481 REG_DYNAMIC_VARIABLE(CFG_ROAM_BMISS_FIRST_BCNT_NAME, WLAN_PARAM_Integer,
1482 struct hdd_config, nRoamBmissFirstBcnt,
1483 VAR_FLAGS_OPTIONAL |
1484 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1485 CFG_ROAM_BMISS_FIRST_BCNT_DEFAULT,
1486 CFG_ROAM_BMISS_FIRST_BCNT_MIN,
1487 CFG_ROAM_BMISS_FIRST_BCNT_MAX,
1488 cb_notify_set_roam_bmiss_first_bcnt, 0),
1489
1490 REG_DYNAMIC_VARIABLE(CFG_ROAM_BMISS_FINAL_BCNT_NAME, WLAN_PARAM_Integer,
1491 struct hdd_config, nRoamBmissFinalBcnt,
1492 VAR_FLAGS_OPTIONAL |
1493 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1494 CFG_ROAM_BMISS_FINAL_BCNT_DEFAULT,
1495 CFG_ROAM_BMISS_FINAL_BCNT_MIN,
1496 CFG_ROAM_BMISS_FINAL_BCNT_MAX,
1497 cb_notify_set_roam_bmiss_final_bcnt, 0),
1498
1499 REG_DYNAMIC_VARIABLE(CFG_ROAM_BEACON_RSSI_WEIGHT_NAME,
1500 WLAN_PARAM_Integer,
1501 struct hdd_config, nRoamBeaconRssiWeight,
1502 VAR_FLAGS_OPTIONAL |
1503 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1504 CFG_ROAM_BEACON_RSSI_WEIGHT_DEFAULT,
1505 CFG_ROAM_BEACON_RSSI_WEIGHT_MIN,
1506 CFG_ROAM_BEACON_RSSI_WEIGHT_MAX,
1507 cb_notify_set_roam_beacon_rssi_weight, 0),
1508
1509 REG_DYNAMIC_VARIABLE(CFG_ROAMING_DFS_CHANNEL_NAME, WLAN_PARAM_Integer,
1510 struct hdd_config, allowDFSChannelRoam,
1511 VAR_FLAGS_OPTIONAL |
1512 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1513 CFG_ROAMING_DFS_CHANNEL_DEFAULT,
1514 CFG_ROAMING_DFS_CHANNEL_MIN,
1515 CFG_ROAMING_DFS_CHANNEL_MAX,
1516 cb_notify_set_dfs_scan_mode, 0),
1517
1518 REG_DYNAMIC_VARIABLE(CFG_DELAY_BEFORE_VDEV_STOP_NAME,
1519 WLAN_PARAM_Integer,
1520 struct hdd_config,
1521 delay_before_vdev_stop,
1522 VAR_FLAGS_OPTIONAL |
1523 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1524 CFG_DELAY_BEFORE_VDEV_STOP_DEFAULT,
1525 CFG_DELAY_BEFORE_VDEV_STOP_MIN,
1526 CFG_DELAY_BEFORE_VDEV_STOP_MAX,
1527 cb_notify_set_delay_before_vdev_stop,
1528 0),
1529
1530 REG_DYNAMIC_VARIABLE(CFG_ROAM_SCAN_HI_RSSI_MAXCOUNT_NAME,
1531 WLAN_PARAM_Integer,
1532 struct hdd_config,
1533 nhi_rssi_scan_max_count,
1534 VAR_FLAGS_OPTIONAL |
1535 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1536 CFG_ROAM_SCAN_HI_RSSI_MAXCOUNT_DEFAULT,
1537 CFG_ROAM_SCAN_HI_RSSI_MAXCOUNT_MIN,
1538 CFG_ROAM_SCAN_HI_RSSI_MAXCOUNT_MAX,
1539 cb_notify_set_roam_scan_hi_rssi_scan_params,
1540 eCSR_HI_RSSI_SCAN_MAXCOUNT_ID),
1541
1542 REG_DYNAMIC_VARIABLE(CFG_ROAM_SCAN_HI_RSSI_DELTA_NAME,
1543 WLAN_PARAM_Integer,
1544 struct hdd_config,
1545 nhi_rssi_scan_rssi_delta,
1546 VAR_FLAGS_OPTIONAL |
1547 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1548 CFG_ROAM_SCAN_HI_RSSI_DELTA_DEFAULT,
1549 CFG_ROAM_SCAN_HI_RSSI_DELTA_MIN,
1550 CFG_ROAM_SCAN_HI_RSSI_DELTA_MAX,
1551 cb_notify_set_roam_scan_hi_rssi_scan_params,
1552 eCSR_HI_RSSI_SCAN_RSSI_DELTA_ID),
1553
1554 REG_DYNAMIC_VARIABLE(CFG_ROAM_SCAN_HI_RSSI_DELAY_NAME,
1555 WLAN_PARAM_Integer,
1556 struct hdd_config,
1557 nhi_rssi_scan_delay,
1558 VAR_FLAGS_OPTIONAL |
1559 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1560 CFG_ROAM_SCAN_HI_RSSI_DELAY_DEFAULT,
1561 CFG_ROAM_SCAN_HI_RSSI_DELAY_MIN,
1562 CFG_ROAM_SCAN_HI_RSSI_DELAY_MAX,
1563 cb_notify_set_roam_scan_hi_rssi_scan_params,
1564 eCSR_HI_RSSI_SCAN_DELAY_ID),
1565
1566 REG_DYNAMIC_VARIABLE(CFG_ROAM_SCAN_HI_RSSI_UB_NAME,
1567 WLAN_PARAM_SignedInteger,
1568 struct hdd_config,
1569 nhi_rssi_scan_rssi_ub,
1570 VAR_FLAGS_OPTIONAL |
1571 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1572 CFG_ROAM_SCAN_HI_RSSI_UB_DEFAULT,
1573 CFG_ROAM_SCAN_HI_RSSI_UB_MIN,
1574 CFG_ROAM_SCAN_HI_RSSI_UB_MAX,
1575 cb_notify_set_roam_scan_hi_rssi_scan_params,
1576 eCSR_HI_RSSI_SCAN_RSSI_UB_ID),
1577
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001578 REG_VARIABLE(CFG_QOS_WMM_BURST_SIZE_DEFN_NAME, WLAN_PARAM_Integer,
1579 struct hdd_config, burstSizeDefinition,
1580 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1581 CFG_QOS_WMM_BURST_SIZE_DEFN_DEFAULT,
1582 CFG_QOS_WMM_BURST_SIZE_DEFN_MIN,
1583 CFG_QOS_WMM_BURST_SIZE_DEFN_MAX),
1584
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001585 REG_VARIABLE(CFG_ENABLE_HOST_ARPOFFLOAD_NAME, WLAN_PARAM_Integer,
1586 struct hdd_config, fhostArpOffload,
1587 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1588 CFG_ENABLE_HOST_ARPOFFLOAD_DEFAULT,
1589 CFG_ENABLE_HOST_ARPOFFLOAD_MIN,
1590 CFG_ENABLE_HOST_ARPOFFLOAD_MAX),
1591
Dustin Brown1224e212017-05-12 14:02:12 -07001592 REG_VARIABLE(CFG_HW_FILTER_MODE_NAME, WLAN_PARAM_Integer,
1593 struct hdd_config, hw_filter_mode,
Ravi Kumar Bokka794fd712017-03-21 20:52:46 +05301594 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
Dustin Brown1224e212017-05-12 14:02:12 -07001595 CFG_HW_FILTER_MODE_DEFAULT,
1596 CFG_HW_FILTER_MODE_MIN,
1597 CFG_HW_FILTER_MODE_MAX),
Ravi Kumar Bokka794fd712017-03-21 20:52:46 +05301598
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001599#ifdef FEATURE_WLAN_RA_FILTERING
1600 REG_VARIABLE(CFG_RA_FILTER_ENABLE_NAME, WLAN_PARAM_Integer,
1601 struct hdd_config, IsRArateLimitEnabled,
1602 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1603 CFG_RA_FILTER_ENABLE_DEFAULT,
1604 CFG_RA_FILTER_ENABLE_MIN,
1605 CFG_RA_FILTER_ENABLE_MAX),
1606
1607 REG_VARIABLE(CFG_RA_RATE_LIMIT_INTERVAL_NAME, WLAN_PARAM_Integer,
1608 struct hdd_config, RArateLimitInterval,
1609 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1610 CFG_RA_RATE_LIMIT_INTERVAL_DEFAULT,
1611 CFG_RA_RATE_LIMIT_INTERVAL_MIN,
1612 CFG_RA_RATE_LIMIT_INTERVAL_MAX),
1613#endif
1614
1615 REG_VARIABLE(CFG_IGNORE_PEER_ERP_INFO_NAME, WLAN_PARAM_Integer,
1616 struct hdd_config, ignore_peer_erp_info,
1617 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1618 CFG_IGNORE_PEER_ERP_INFO_DEFAULT,
1619 CFG_IGNORE_PEER_ERP_INFO_MIN,
1620 CFG_IGNORE_PEER_ERP_INFO_MAX),
1621
1622 REG_VARIABLE(CFG_ENABLE_HOST_SSDP_NAME, WLAN_PARAM_Integer,
1623 struct hdd_config, ssdp,
1624 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1625 CFG_ENABLE_HOST_SSDP_DEFAULT,
1626 CFG_ENABLE_HOST_SSDP_MIN,
1627 CFG_ENABLE_HOST_SSDP_MAX),
1628
Houston Hoffmanc7c69f02016-03-24 22:45:52 -07001629#ifdef FEATURE_RUNTIME_PM
1630 REG_VARIABLE(CFG_ENABLE_RUNTIME_PM, WLAN_PARAM_Integer,
1631 struct hdd_config, runtime_pm,
1632 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1633 CFG_ENABLE_RUNTIME_PM_DEFAULT,
1634 CFG_ENABLE_RUNTIME_PM_MIN,
1635 CFG_ENABLE_RUNTIME_PM_MAX),
1636
1637 REG_VARIABLE(CFG_RUNTIME_PM_DELAY_NAME, WLAN_PARAM_Integer,
1638 struct hdd_config, runtime_pm_delay,
1639 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1640 CFG_RUNTIME_PM_DELAY_DEFAULT,
1641 CFG_RUNTIME_PM_DELAY_MIN,
1642 CFG_RUNTIME_PM_DELAY_MAX),
1643#endif
1644
1645
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001646 REG_VARIABLE(CFG_ENABLE_HOST_NSOFFLOAD_NAME, WLAN_PARAM_Integer,
1647 struct hdd_config, fhostNSOffload,
1648 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1649 CFG_ENABLE_HOST_NSOFFLOAD_DEFAULT,
1650 CFG_ENABLE_HOST_NSOFFLOAD_MIN,
1651 CFG_ENABLE_HOST_NSOFFLOAD_MAX),
1652
1653 REG_VARIABLE(CFG_QOS_WMM_TS_INFO_ACK_POLICY_NAME, WLAN_PARAM_HexInteger,
1654 struct hdd_config, tsInfoAckPolicy,
1655 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1656 CFG_QOS_WMM_TS_INFO_ACK_POLICY_DEFAULT,
1657 CFG_QOS_WMM_TS_INFO_ACK_POLICY_MIN,
1658 CFG_QOS_WMM_TS_INFO_ACK_POLICY_MAX),
1659
1660 REG_VARIABLE(CFG_SINGLE_TID_RC_NAME, WLAN_PARAM_Integer,
1661 struct hdd_config, bSingleTidRc,
1662 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1663 CFG_SINGLE_TID_RC_DEFAULT,
1664 CFG_SINGLE_TID_RC_MIN,
1665 CFG_SINGLE_TID_RC_MAX),
1666
1667 REG_VARIABLE(CFG_DYNAMIC_PSPOLL_VALUE_NAME, WLAN_PARAM_Integer,
1668 struct hdd_config, dynamicPsPollValue,
1669 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1670 CFG_DYNAMIC_PSPOLL_VALUE_DEFAULT,
1671 CFG_DYNAMIC_PSPOLL_VALUE_MIN,
1672 CFG_DYNAMIC_PSPOLL_VALUE_MAX),
1673
1674 REG_VARIABLE(CFG_TELE_BCN_WAKEUP_EN_NAME, WLAN_PARAM_Integer,
1675 struct hdd_config, teleBcnWakeupEn,
1676 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1677 CFG_TELE_BCN_WAKEUP_EN_DEFAULT,
1678 CFG_TELE_BCN_WAKEUP_EN_MIN,
1679 CFG_TELE_BCN_WAKEUP_EN_MAX),
1680
1681 REG_VARIABLE(CFG_INFRA_STA_KEEP_ALIVE_PERIOD_NAME, WLAN_PARAM_Integer,
1682 struct hdd_config, infraStaKeepAlivePeriod,
1683 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1684 CFG_INFRA_STA_KEEP_ALIVE_PERIOD_DEFAULT,
1685 CFG_INFRA_STA_KEEP_ALIVE_PERIOD_MIN,
1686 CFG_INFRA_STA_KEEP_ALIVE_PERIOD_MAX),
1687
Dustin Brownb6b0f182017-03-08 13:08:27 -08001688 REG_VARIABLE(CFG_STA_KEEPALIVE_METHOD_NAME, WLAN_PARAM_Integer,
1689 struct hdd_config, sta_keepalive_method,
1690 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1691 CFG_STA_KEEPALIVE_METHOD_DEFAULT,
1692 CFG_STA_KEEPALIVE_METHOD_MIN,
1693 CFG_STA_KEEPALIVE_METHOD_MAX),
1694
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001695 REG_VARIABLE(CFG_QOS_ADDTS_WHEN_ACM_IS_OFF_NAME, WLAN_PARAM_Integer,
1696 struct hdd_config, AddTSWhenACMIsOff,
1697 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1698 CFG_QOS_ADDTS_WHEN_ACM_IS_OFF_DEFAULT,
1699 CFG_QOS_ADDTS_WHEN_ACM_IS_OFF_MIN,
1700 CFG_QOS_ADDTS_WHEN_ACM_IS_OFF_MAX),
1701
1702 REG_VARIABLE(CFG_VALIDATE_SCAN_LIST_NAME, WLAN_PARAM_Integer,
1703 struct hdd_config, fValidateScanList,
1704 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1705 CFG_VALIDATE_SCAN_LIST_DEFAULT,
1706 CFG_VALIDATE_SCAN_LIST_MIN,
1707 CFG_VALIDATE_SCAN_LIST_MAX),
1708
1709 REG_VARIABLE(CFG_NULLDATA_AP_RESP_TIMEOUT_NAME, WLAN_PARAM_Integer,
1710 struct hdd_config, nNullDataApRespTimeout,
1711 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1712 CFG_NULLDATA_AP_RESP_TIMEOUT_DEFAULT,
1713 CFG_NULLDATA_AP_RESP_TIMEOUT_MIN,
1714 CFG_NULLDATA_AP_RESP_TIMEOUT_MAX),
1715
1716 REG_VARIABLE(CFG_AP_DATA_AVAIL_POLL_PERIOD_NAME, WLAN_PARAM_Integer,
1717 struct hdd_config, apDataAvailPollPeriodInMs,
1718 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1719 CFG_AP_DATA_AVAIL_POLL_PERIOD_DEFAULT,
1720 CFG_AP_DATA_AVAIL_POLL_PERIOD_MIN,
1721 CFG_AP_DATA_AVAIL_POLL_PERIOD_MAX),
1722
1723 REG_VARIABLE(CFG_BAND_CAPABILITY_NAME, WLAN_PARAM_Integer,
1724 struct hdd_config, nBandCapability,
1725 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1726 CFG_BAND_CAPABILITY_DEFAULT,
1727 CFG_BAND_CAPABILITY_MIN,
1728 CFG_BAND_CAPABILITY_MAX),
1729
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301730/* CFG_QDF_TRACE_ENABLE Parameters */
1731 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_WDI_NAME, WLAN_PARAM_Integer,
1732 struct hdd_config, qdf_trace_enable_wdi,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001733 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301734 CFG_QDF_TRACE_ENABLE_DEFAULT,
1735 CFG_QDF_TRACE_ENABLE_MIN,
1736 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001737
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301738 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_HDD_NAME, WLAN_PARAM_Integer,
1739 struct hdd_config, qdf_trace_enable_hdd,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001740 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301741 CFG_QDF_TRACE_ENABLE_DEFAULT,
1742 CFG_QDF_TRACE_ENABLE_MIN,
1743 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001744
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301745 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_BMI_NAME, WLAN_PARAM_Integer,
1746 struct hdd_config, qdf_trace_enable_bmi,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001747 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301748 CFG_QDF_TRACE_ENABLE_DEFAULT,
1749 CFG_QDF_TRACE_ENABLE_MIN,
1750 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001751
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301752 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_SME_NAME, WLAN_PARAM_Integer,
1753 struct hdd_config, qdf_trace_enable_sme,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001754 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301755 CFG_QDF_TRACE_ENABLE_DEFAULT,
1756 CFG_QDF_TRACE_ENABLE_MIN,
1757 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001758
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301759 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_PE_NAME, WLAN_PARAM_Integer,
1760 struct hdd_config, qdf_trace_enable_pe,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001761 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301762 CFG_QDF_TRACE_ENABLE_DEFAULT,
1763 CFG_QDF_TRACE_ENABLE_MIN,
1764 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001765
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301766 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_WMA_NAME, WLAN_PARAM_Integer,
1767 struct hdd_config, qdf_trace_enable_wma,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001768 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301769 CFG_QDF_TRACE_ENABLE_DEFAULT,
1770 CFG_QDF_TRACE_ENABLE_MIN,
1771 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001772
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301773 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_SYS_NAME, WLAN_PARAM_Integer,
1774 struct hdd_config, qdf_trace_enable_sys,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001775 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301776 CFG_QDF_TRACE_ENABLE_DEFAULT,
1777 CFG_QDF_TRACE_ENABLE_MIN,
1778 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001779
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301780 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_QDF_NAME, WLAN_PARAM_Integer,
1781 struct hdd_config, qdf_trace_enable_qdf,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001782 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301783 CFG_QDF_TRACE_ENABLE_DEFAULT,
1784 CFG_QDF_TRACE_ENABLE_MIN,
1785 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001786
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301787 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_SAP_NAME, WLAN_PARAM_Integer,
1788 struct hdd_config, qdf_trace_enable_sap,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001789 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301790 CFG_QDF_TRACE_ENABLE_DEFAULT,
1791 CFG_QDF_TRACE_ENABLE_MIN,
1792 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001793
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301794 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_HDD_SAP_NAME, WLAN_PARAM_Integer,
1795 struct hdd_config, qdf_trace_enable_hdd_sap,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001796 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301797 CFG_QDF_TRACE_ENABLE_DEFAULT,
1798 CFG_QDF_TRACE_ENABLE_MIN,
1799 CFG_QDF_TRACE_ENABLE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001800
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301801 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_CFG_NAME, WLAN_PARAM_Integer,
1802 struct hdd_config, qdf_trace_enable_cfg,
Bhargav Shah480a90f2015-06-24 15:10:14 +05301803 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301804 CFG_QDF_TRACE_ENABLE_DEFAULT,
1805 CFG_QDF_TRACE_ENABLE_MIN,
1806 CFG_QDF_TRACE_ENABLE_MAX),
Bhargav Shah480a90f2015-06-24 15:10:14 +05301807
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301808 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_TXRX_NAME, WLAN_PARAM_Integer,
Houston Hoffmanfbf05102017-08-28 11:37:01 -07001809 struct hdd_config, qdf_trace_enable_txrx,
Bhargav Shah480a90f2015-06-24 15:10:14 +05301810 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301811 CFG_QDF_TRACE_ENABLE_DEFAULT,
1812 CFG_QDF_TRACE_ENABLE_MIN,
1813 CFG_QDF_TRACE_ENABLE_MAX),
Bhargav Shah480a90f2015-06-24 15:10:14 +05301814
Houston Hoffmanfbf05102017-08-28 11:37:01 -07001815 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_DP_NAME, WLAN_PARAM_Integer,
1816 struct hdd_config, qdf_trace_enable_dp,
1817 VAR_FLAGS_OPTIONAL,
1818 CFG_QDF_TRACE_ENABLE_DP_DEFAULT,
1819 CFG_QDF_TRACE_ENABLE_MIN,
1820 CFG_QDF_TRACE_ENABLE_MAX),
1821
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301822 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_HTC_NAME, WLAN_PARAM_Integer,
1823 struct hdd_config, qdf_trace_enable_htc,
Bhargav Shah480a90f2015-06-24 15:10:14 +05301824 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301825 CFG_QDF_TRACE_ENABLE_DEFAULT,
1826 CFG_QDF_TRACE_ENABLE_MIN,
1827 CFG_QDF_TRACE_ENABLE_MAX),
Bhargav Shah480a90f2015-06-24 15:10:14 +05301828
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301829 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_HIF_NAME, WLAN_PARAM_Integer,
1830 struct hdd_config, qdf_trace_enable_hif,
Bhargav Shah480a90f2015-06-24 15:10:14 +05301831 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301832 CFG_QDF_TRACE_ENABLE_DEFAULT,
1833 CFG_QDF_TRACE_ENABLE_MIN,
1834 CFG_QDF_TRACE_ENABLE_MAX),
Bhargav Shah480a90f2015-06-24 15:10:14 +05301835
1836 REG_VARIABLE(CFG_CDR_TRACE_ENABLE_HDD_SAP_DATA_NAME, WLAN_PARAM_Integer,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301837 struct hdd_config, qdf_trace_enable_hdd_sap_data,
Bhargav Shah480a90f2015-06-24 15:10:14 +05301838 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301839 CFG_QDF_TRACE_ENABLE_DEFAULT,
1840 CFG_QDF_TRACE_ENABLE_MIN,
1841 CFG_QDF_TRACE_ENABLE_MAX),
Bhargav Shah480a90f2015-06-24 15:10:14 +05301842
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301843 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_HDD_DATA_NAME, WLAN_PARAM_Integer,
1844 struct hdd_config, qdf_trace_enable_hdd_data,
Bhargav Shah480a90f2015-06-24 15:10:14 +05301845 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301846 CFG_QDF_TRACE_ENABLE_DEFAULT,
1847 CFG_QDF_TRACE_ENABLE_MIN,
1848 CFG_QDF_TRACE_ENABLE_MAX),
Bhargav Shah480a90f2015-06-24 15:10:14 +05301849
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301850 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_EPPING, WLAN_PARAM_Integer,
1851 struct hdd_config, qdf_trace_enable_epping,
Bhargav Shah480a90f2015-06-24 15:10:14 +05301852 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301853 CFG_QDF_TRACE_ENABLE_DEFAULT,
1854 CFG_QDF_TRACE_ENABLE_MIN,
1855 CFG_QDF_TRACE_ENABLE_MAX),
Bhargav Shah480a90f2015-06-24 15:10:14 +05301856
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301857 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_QDF_DEVICES, WLAN_PARAM_Integer,
1858 struct hdd_config, qdf_trace_enable_qdf_devices,
Bhargav Shah480a90f2015-06-24 15:10:14 +05301859 VAR_FLAGS_OPTIONAL,
Anurag Chouhanf04e84f2016-03-03 10:12:12 +05301860 CFG_QDF_TRACE_ENABLE_DEFAULT,
1861 CFG_QDF_TRACE_ENABLE_MIN,
1862 CFG_QDF_TRACE_ENABLE_MAX),
Bhargav Shah480a90f2015-06-24 15:10:14 +05301863
Naveen Rawat7df31862017-03-01 17:09:30 -08001864 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_WIFI_POS, WLAN_PARAM_Integer,
1865 struct hdd_config, qdf_trace_enable_wifi_pos,
1866 VAR_FLAGS_OPTIONAL,
1867 CFG_QDF_TRACE_ENABLE_DEFAULT,
1868 CFG_QDF_TRACE_ENABLE_MIN,
1869 CFG_QDF_TRACE_ENABLE_MAX),
1870
Naveen Rawatf2b0dbd2017-03-27 10:00:15 -07001871 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_NAN, WLAN_PARAM_Integer,
1872 struct hdd_config, qdf_trace_enable_nan,
1873 VAR_FLAGS_OPTIONAL,
1874 CFG_QDF_TRACE_ENABLE_DEFAULT,
1875 CFG_QDF_TRACE_ENABLE_MIN,
1876 CFG_QDF_TRACE_ENABLE_MAX),
1877
Kiran Kumar Lokere798de7e2017-03-30 14:01:12 -07001878 REG_VARIABLE(CFG_QDF_TRACE_ENABLE_REGULATORY, WLAN_PARAM_Integer,
1879 struct hdd_config, qdf_trace_enable_regulatory,
1880 VAR_FLAGS_OPTIONAL,
1881 CFG_QDF_TRACE_ENABLE_DEFAULT,
1882 CFG_QDF_TRACE_ENABLE_MIN,
1883 CFG_QDF_TRACE_ENABLE_MAX),
1884
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001885 REG_VARIABLE(CFG_TELE_BCN_TRANS_LI_NAME, WLAN_PARAM_Integer,
1886 struct hdd_config, nTeleBcnTransListenInterval,
1887 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1888 CFG_TELE_BCN_TRANS_LI_DEFAULT,
1889 CFG_TELE_BCN_TRANS_LI_MIN,
1890 CFG_TELE_BCN_TRANS_LI_MAX),
1891
1892 REG_VARIABLE(CFG_TELE_BCN_TRANS_LI_NUM_IDLE_BCNS_NAME,
1893 WLAN_PARAM_Integer,
1894 struct hdd_config, nTeleBcnTransLiNumIdleBeacons,
1895 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1896 CFG_TELE_BCN_TRANS_LI_NUM_IDLE_BCNS_DEFAULT,
1897 CFG_TELE_BCN_TRANS_LI_NUM_IDLE_BCNS_MIN,
1898 CFG_TELE_BCN_TRANS_LI_NUM_IDLE_BCNS_MAX),
1899
1900 REG_VARIABLE(CFG_TELE_BCN_MAX_LI_NAME, WLAN_PARAM_Integer,
1901 struct hdd_config, nTeleBcnMaxListenInterval,
1902 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1903 CFG_TELE_BCN_MAX_LI_DEFAULT,
1904 CFG_TELE_BCN_MAX_LI_MIN,
1905 CFG_TELE_BCN_MAX_LI_MAX),
1906
1907 REG_VARIABLE(CFG_TELE_BCN_MAX_LI_NUM_IDLE_BCNS_NAME, WLAN_PARAM_Integer,
1908 struct hdd_config, nTeleBcnMaxLiNumIdleBeacons,
1909 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1910 CFG_TELE_BCN_MAX_LI_NUM_IDLE_BCNS_DEFAULT,
1911 CFG_TELE_BCN_MAX_LI_NUM_IDLE_BCNS_MIN,
1912 CFG_TELE_BCN_MAX_LI_NUM_IDLE_BCNS_MAX),
1913
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001914 REG_VARIABLE(CFG_ENABLE_BYPASS_11D_NAME, WLAN_PARAM_Integer,
1915 struct hdd_config, enableBypass11d,
1916 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1917 CFG_ENABLE_BYPASS_11D_DEFAULT,
1918 CFG_ENABLE_BYPASS_11D_MIN,
1919 CFG_ENABLE_BYPASS_11D_MAX),
1920
1921 REG_VARIABLE(CFG_ENABLE_DFS_CHNL_SCAN_NAME, WLAN_PARAM_Integer,
1922 struct hdd_config, enableDFSChnlScan,
1923 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1924 CFG_ENABLE_DFS_CHNL_SCAN_DEFAULT,
1925 CFG_ENABLE_DFS_CHNL_SCAN_MIN,
1926 CFG_ENABLE_DFS_CHNL_SCAN_MAX),
1927
1928 REG_VARIABLE(CFG_ENABLE_DFS_PNO_CHNL_SCAN_NAME, WLAN_PARAM_Integer,
1929 struct hdd_config, enable_dfs_pno_chnl_scan,
1930 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1931 CFG_ENABLE_DFS_PNO_CHNL_SCAN_DEFAULT,
1932 CFG_ENABLE_DFS_PNO_CHNL_SCAN_MIN,
1933 CFG_ENABLE_DFS_PNO_CHNL_SCAN_MAX),
1934
1935 REG_VARIABLE(CFG_ENABLE_DYNAMIC_DTIM_NAME, WLAN_PARAM_Integer,
1936 struct hdd_config, enableDynamicDTIM,
1937 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1938 CFG_ENABLE_DYNAMIC_DTIM_DEFAULT,
1939 CFG_ENABLE_DYNAMIC_DTIM_MIN,
1940 CFG_ENABLE_DYNAMIC_DTIM_MAX),
1941
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001942 REG_VARIABLE(CFG_SHORT_GI_40MHZ_NAME, WLAN_PARAM_Integer,
1943 struct hdd_config, ShortGI40MhzEnable,
1944 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1945 CFG_SHORT_GI_40MHZ_DEFAULT,
1946 CFG_SHORT_GI_40MHZ_MIN,
1947 CFG_SHORT_GI_40MHZ_MAX),
1948
1949 REG_DYNAMIC_VARIABLE(CFG_REPORT_MAX_LINK_SPEED, WLAN_PARAM_Integer,
1950 struct hdd_config, reportMaxLinkSpeed,
1951 VAR_FLAGS_OPTIONAL |
1952 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1953 CFG_REPORT_MAX_LINK_SPEED_DEFAULT,
1954 CFG_REPORT_MAX_LINK_SPEED_MIN,
1955 CFG_REPORT_MAX_LINK_SPEED_MAX,
1956 NULL, 0),
1957
1958 REG_DYNAMIC_VARIABLE(CFG_LINK_SPEED_RSSI_HIGH, WLAN_PARAM_SignedInteger,
1959 struct hdd_config, linkSpeedRssiHigh,
1960 VAR_FLAGS_OPTIONAL |
1961 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1962 CFG_LINK_SPEED_RSSI_HIGH_DEFAULT,
1963 CFG_LINK_SPEED_RSSI_HIGH_MIN,
1964 CFG_LINK_SPEED_RSSI_HIGH_MAX,
1965 NULL, 0),
1966
1967 REG_DYNAMIC_VARIABLE(CFG_LINK_SPEED_RSSI_MID, WLAN_PARAM_SignedInteger,
1968 struct hdd_config, linkSpeedRssiMid,
1969 VAR_FLAGS_OPTIONAL |
1970 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1971 CFG_LINK_SPEED_RSSI_MID_DEFAULT,
1972 CFG_LINK_SPEED_RSSI_MID_MIN,
1973 CFG_LINK_SPEED_RSSI_MID_MAX,
1974 NULL, 0),
1975
1976 REG_DYNAMIC_VARIABLE(CFG_LINK_SPEED_RSSI_LOW, WLAN_PARAM_SignedInteger,
1977 struct hdd_config, linkSpeedRssiLow,
1978 VAR_FLAGS_OPTIONAL |
1979 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1980 CFG_LINK_SPEED_RSSI_LOW_DEFAULT,
1981 CFG_LINK_SPEED_RSSI_LOW_MIN,
1982 CFG_LINK_SPEED_RSSI_LOW_MAX,
1983 NULL, 0),
1984
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001985 REG_DYNAMIC_VARIABLE(CFG_ROAM_PREFER_5GHZ, WLAN_PARAM_Integer,
1986 struct hdd_config, nRoamPrefer5GHz,
1987 VAR_FLAGS_OPTIONAL |
1988 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1989 CFG_ROAM_PREFER_5GHZ_DEFAULT,
1990 CFG_ROAM_PREFER_5GHZ_MIN,
1991 CFG_ROAM_PREFER_5GHZ_MAX,
1992 cb_notify_set_roam_prefer5_g_hz, 0),
1993
1994 REG_DYNAMIC_VARIABLE(CFG_ROAM_INTRA_BAND, WLAN_PARAM_Integer,
1995 struct hdd_config, nRoamIntraBand,
1996 VAR_FLAGS_OPTIONAL |
1997 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
1998 CFG_ROAM_INTRA_BAND_DEFAULT,
1999 CFG_ROAM_INTRA_BAND_MIN,
2000 CFG_ROAM_INTRA_BAND_MAX,
2001 cb_notify_set_roam_intra_band, 0),
2002
2003 REG_DYNAMIC_VARIABLE(CFG_ROAM_SCAN_N_PROBES, WLAN_PARAM_Integer,
2004 struct hdd_config, nProbes,
2005 VAR_FLAGS_OPTIONAL |
2006 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2007 CFG_ROAM_SCAN_N_PROBES_DEFAULT,
2008 CFG_ROAM_SCAN_N_PROBES_MIN,
2009 CFG_ROAM_SCAN_N_PROBES_MAX,
2010 cb_notify_set_roam_scan_n_probes, 0),
2011
2012 REG_DYNAMIC_VARIABLE(CFG_ROAM_SCAN_HOME_AWAY_TIME, WLAN_PARAM_Integer,
2013 struct hdd_config, nRoamScanHomeAwayTime,
2014 VAR_FLAGS_OPTIONAL |
2015 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2016 CFG_ROAM_SCAN_HOME_AWAY_TIME_DEFAULT,
2017 CFG_ROAM_SCAN_HOME_AWAY_TIME_MIN,
2018 CFG_ROAM_SCAN_HOME_AWAY_TIME_MAX,
2019 cb_notify_set_roam_scan_home_away_time, 0),
2020
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002021 REG_VARIABLE(CFG_P2P_DEVICE_ADDRESS_ADMINISTRATED_NAME,
2022 WLAN_PARAM_Integer,
2023 struct hdd_config, isP2pDeviceAddrAdministrated,
2024 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2025 CFG_P2P_DEVICE_ADDRESS_ADMINISTRATED_DEFAULT,
2026 CFG_P2P_DEVICE_ADDRESS_ADMINISTRATED_MIN,
2027 CFG_P2P_DEVICE_ADDRESS_ADMINISTRATED_MAX),
2028
2029 REG_VARIABLE(CFG_ENABLE_MCC_ENABLED_NAME, WLAN_PARAM_Integer,
2030 struct hdd_config, enableMCC,
2031 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2032 CFG_ENABLE_MCC_ENABLED_DEFAULT,
2033 CFG_ENABLE_MCC_ENABLED_MIN,
2034 CFG_ENABLE_MCC_ENABLED_MAX),
2035
2036 REG_VARIABLE(CFG_ALLOW_MCC_GO_DIFF_BI_NAME, WLAN_PARAM_Integer,
2037 struct hdd_config, allowMCCGODiffBI,
2038 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2039 CFG_ALLOW_MCC_GO_DIFF_BI_DEFAULT,
2040 CFG_ALLOW_MCC_GO_DIFF_BI_MIN,
2041 CFG_ALLOW_MCC_GO_DIFF_BI_MAX),
2042
2043 REG_VARIABLE(CFG_THERMAL_MIGRATION_ENABLE_NAME, WLAN_PARAM_Integer,
2044 struct hdd_config, thermalMitigationEnable,
2045 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2046 CFG_THERMAL_MIGRATION_ENABLE_DEFAULT,
2047 CFG_THERMAL_MIGRATION_ENABLE_MIN,
2048 CFG_THERMAL_MIGRATION_ENABLE_MAX),
2049
2050 REG_VARIABLE(CFG_THROTTLE_PERIOD_NAME, WLAN_PARAM_Integer,
2051 struct hdd_config, throttlePeriod,
2052 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2053 CFG_THROTTLE_PERIOD_DEFAULT,
2054 CFG_THROTTLE_PERIOD_MIN,
2055 CFG_THROTTLE_PERIOD_MAX),
2056
Poddar, Siddarth83905022016-04-16 17:56:08 -07002057 REG_VARIABLE(CFG_THROTTLE_DUTY_CYCLE_LEVEL0_NAME, WLAN_PARAM_Integer,
2058 struct hdd_config, throttle_dutycycle_level0,
2059 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2060 CFG_THROTTLE_DUTY_CYCLE_LEVEL0_DEFAULT,
2061 CFG_THROTTLE_DUTY_CYCLE_LEVEL0_MIN,
2062 CFG_THROTTLE_DUTY_CYCLE_LEVEL0_MAX),
2063
2064 REG_VARIABLE(CFG_THROTTLE_DUTY_CYCLE_LEVEL1_NAME, WLAN_PARAM_Integer,
2065 struct hdd_config, throttle_dutycycle_level1,
2066 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2067 CFG_THROTTLE_DUTY_CYCLE_LEVEL1_DEFAULT,
2068 CFG_THROTTLE_DUTY_CYCLE_LEVEL1_MIN,
2069 CFG_THROTTLE_DUTY_CYCLE_LEVEL1_MAX),
2070
2071 REG_VARIABLE(CFG_THROTTLE_DUTY_CYCLE_LEVEL2_NAME, WLAN_PARAM_Integer,
2072 struct hdd_config, throttle_dutycycle_level2,
2073 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2074 CFG_THROTTLE_DUTY_CYCLE_LEVEL2_DEFAULT,
2075 CFG_THROTTLE_DUTY_CYCLE_LEVEL2_MIN,
2076 CFG_THROTTLE_DUTY_CYCLE_LEVEL2_MAX),
2077
2078 REG_VARIABLE(CFG_THROTTLE_DUTY_CYCLE_LEVEL3_NAME, WLAN_PARAM_Integer,
2079 struct hdd_config, throttle_dutycycle_level3,
2080 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2081 CFG_THROTTLE_DUTY_CYCLE_LEVEL3_DEFAULT,
2082 CFG_THROTTLE_DUTY_CYCLE_LEVEL3_MIN,
2083 CFG_THROTTLE_DUTY_CYCLE_LEVEL3_MAX),
2084
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002085 REG_VARIABLE(CFG_ENABLE_MODULATED_DTIM_NAME, WLAN_PARAM_Integer,
2086 struct hdd_config, enableModulatedDTIM,
2087 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2088 CFG_ENABLE_MODULATED_DTIM_DEFAULT,
2089 CFG_ENABLE_MODULATED_DTIM_MIN,
2090 CFG_ENABLE_MODULATED_DTIM_MAX),
2091
2092 REG_VARIABLE(CFG_MC_ADDR_LIST_ENABLE_NAME, WLAN_PARAM_Integer,
2093 struct hdd_config, fEnableMCAddrList,
2094 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2095 CFG_MC_ADDR_LIST_ENABLE_DEFAULT,
2096 CFG_MC_ADDR_LIST_ENABLE_MIN,
2097 CFG_MC_ADDR_LIST_ENABLE_MAX),
2098
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002099 REG_VARIABLE(CFG_VHT_CHANNEL_WIDTH, WLAN_PARAM_Integer,
2100 struct hdd_config, vhtChannelWidth,
2101 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2102 CFG_VHT_CHANNEL_WIDTH_DEFAULT,
2103 CFG_VHT_CHANNEL_WIDTH_MIN,
2104 CFG_VHT_CHANNEL_WIDTH_MAX),
2105
2106 REG_VARIABLE(CFG_VHT_ENABLE_RX_MCS_8_9, WLAN_PARAM_Integer,
2107 struct hdd_config, vhtRxMCS,
2108 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2109 CFG_VHT_ENABLE_RX_MCS_8_9_DEFAULT,
2110 CFG_VHT_ENABLE_RX_MCS_8_9_MIN,
2111 CFG_VHT_ENABLE_RX_MCS_8_9_MAX),
2112
2113 REG_VARIABLE(CFG_VHT_ENABLE_TX_MCS_8_9, WLAN_PARAM_Integer,
2114 struct hdd_config, vhtTxMCS,
2115 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2116 CFG_VHT_ENABLE_TX_MCS_8_9_DEFAULT,
2117 CFG_VHT_ENABLE_TX_MCS_8_9_MIN,
2118 CFG_VHT_ENABLE_TX_MCS_8_9_MAX),
2119
2120 REG_VARIABLE(CFG_VHT_ENABLE_RX_MCS2x2_8_9, WLAN_PARAM_Integer,
2121 struct hdd_config, vhtRxMCS2x2,
2122 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2123 CFG_VHT_ENABLE_RX_MCS2x2_8_9_DEFAULT,
2124 CFG_VHT_ENABLE_RX_MCS2x2_8_9_MIN,
2125 CFG_VHT_ENABLE_RX_MCS2x2_8_9_MAX),
2126
2127 REG_VARIABLE(CFG_VHT_ENABLE_TX_MCS2x2_8_9, WLAN_PARAM_Integer,
2128 struct hdd_config, vhtTxMCS2x2,
2129 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2130 CFG_VHT_ENABLE_TX_MCS2x2_8_9_DEFAULT,
2131 CFG_VHT_ENABLE_TX_MCS2x2_8_9_MIN,
2132 CFG_VHT_ENABLE_TX_MCS2x2_8_9_MAX),
2133
2134 REG_VARIABLE(CFG_VHT_ENABLE_2x2_CAP_FEATURE, WLAN_PARAM_Integer,
2135 struct hdd_config, enable2x2,
2136 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2137 CFG_VHT_ENABLE_2x2_CAP_FEATURE_DEFAULT,
2138 CFG_VHT_ENABLE_2x2_CAP_FEATURE_MIN,
2139 CFG_VHT_ENABLE_2x2_CAP_FEATURE_MAX),
2140
Krunal Soni158bfe62017-08-02 12:33:08 -07002141 REG_VARIABLE(CFG_DISABLE_HIGH_HT_RX_MCS_2x2, WLAN_PARAM_Integer,
2142 struct hdd_config, disable_high_ht_mcs_2x2,
2143 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2144 CFG_DISABLE_HIGH_HT_RX_MCS_2x2_DEFAULT,
2145 CFG_DISABLE_HIGH_HT_RX_MCS_2x2_MIN,
2146 CFG_DISABLE_HIGH_HT_RX_MCS_2x2_MAX),
2147
Nitesh Shah0e5c7322017-03-23 14:55:11 +05302148 REG_VARIABLE(CFG_VDEV_TYPE_NSS_2G, WLAN_PARAM_Integer,
Kiran Kumar Lokere666bf852016-05-02 12:23:02 -07002149 struct hdd_config, vdev_type_nss_2g,
2150 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2151 CFG_VDEV_TYPE_NSS_2G_DEFAULT,
2152 CFG_VDEV_TYPE_NSS_2G_MIN,
2153 CFG_VDEV_TYPE_NSS_2G_MAX),
2154
Kiran Kumar Lokere1aa9c9a2016-10-05 18:50:59 -07002155 REG_VARIABLE(CFG_STA_PREFER_80MHZ_OVER_160MHZ, WLAN_PARAM_Integer,
2156 struct hdd_config, sta_prefer_80MHz_over_160MHz,
2157 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2158 CFG_STA_PREFER_80MHZ_OVER_160MHZ_DEFAULT,
2159 CFG_STA_PREFER_80MHZ_OVER_160MHZ_MIN,
2160 CFG_STA_PREFER_80MHZ_OVER_160MHZ_MAX),
2161
Nitesh Shah0e5c7322017-03-23 14:55:11 +05302162 REG_VARIABLE(CFG_VDEV_TYPE_NSS_5G, WLAN_PARAM_Integer,
Kiran Kumar Lokere666bf852016-05-02 12:23:02 -07002163 struct hdd_config, vdev_type_nss_5g,
2164 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2165 CFG_VDEV_TYPE_NSS_5G_DEFAULT,
2166 CFG_VDEV_TYPE_NSS_5G_MIN,
2167 CFG_VDEV_TYPE_NSS_5G_MAX),
2168
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002169 REG_VARIABLE(CFG_VHT_ENABLE_MU_BFORMEE_CAP_FEATURE, WLAN_PARAM_Integer,
2170 struct hdd_config, enableMuBformee,
2171 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2172 CFG_VHT_ENABLE_MU_BFORMEE_CAP_FEATURE_DEFAULT,
2173 CFG_VHT_ENABLE_MU_BFORMEE_CAP_FEATURE_MIN,
2174 CFG_VHT_ENABLE_MU_BFORMEE_CAP_FEATURE_MAX),
2175
2176 REG_VARIABLE(CFG_VHT_ENABLE_PAID_FEATURE, WLAN_PARAM_Integer,
2177 struct hdd_config, enableVhtpAid,
2178 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2179 CFG_VHT_ENABLE_PAID_FEATURE_DEFAULT,
2180 CFG_VHT_ENABLE_PAID_FEATURE_MIN,
2181 CFG_VHT_ENABLE_PAID_FEATURE_MAX),
2182
2183 REG_VARIABLE(CFG_VHT_ENABLE_GID_FEATURE, WLAN_PARAM_Integer,
2184 struct hdd_config, enableVhtGid,
2185 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2186 CFG_VHT_ENABLE_GID_FEATURE_DEFAULT,
2187 CFG_VHT_ENABLE_GID_FEATURE_MIN,
2188 CFG_VHT_ENABLE_GID_FEATURE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002189
2190 REG_VARIABLE(CFG_VHT_ENABLE_1x1_TX_CHAINMASK, WLAN_PARAM_Integer,
2191 struct hdd_config, txchainmask1x1,
2192 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2193 CFG_VHT_ENABLE_1x1_TX_CHAINMASK_DEFAULT,
2194 CFG_VHT_ENABLE_1x1_TX_CHAINMASK_MIN,
2195 CFG_VHT_ENABLE_1x1_TX_CHAINMASK_MAX),
2196
2197 REG_VARIABLE(CFG_VHT_ENABLE_1x1_RX_CHAINMASK, WLAN_PARAM_Integer,
2198 struct hdd_config, rxchainmask1x1,
2199 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2200 CFG_VHT_ENABLE_1x1_RX_CHAINMASK_DEFAULT,
2201 CFG_VHT_ENABLE_1x1_RX_CHAINMASK_MIN,
2202 CFG_VHT_ENABLE_1x1_RX_CHAINMASK_MAX),
2203
2204 REG_VARIABLE(CFG_ENABLE_AMPDUPS_FEATURE, WLAN_PARAM_Integer,
2205 struct hdd_config, enableAmpduPs,
2206 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2207 CFG_ENABLE_AMPDUPS_FEATURE_DEFAULT,
2208 CFG_ENABLE_AMPDUPS_FEATURE_MIN,
2209 CFG_ENABLE_AMPDUPS_FEATURE_MAX),
2210
2211 REG_VARIABLE(CFG_HT_ENABLE_SMPS_CAP_FEATURE, WLAN_PARAM_Integer,
2212 struct hdd_config, enableHtSmps,
2213 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2214 CFG_HT_ENABLE_SMPS_CAP_FEATURE_DEFAULT,
2215 CFG_HT_ENABLE_SMPS_CAP_FEATURE_MIN,
2216 CFG_HT_ENABLE_SMPS_CAP_FEATURE_MAX),
2217
2218 REG_VARIABLE(CFG_HT_SMPS_CAP_FEATURE, WLAN_PARAM_Integer,
2219 struct hdd_config, htSmps,
2220 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2221 CFG_HT_SMPS_CAP_FEATURE_DEFAULT,
2222 CFG_HT_SMPS_CAP_FEATURE_MIN,
2223 CFG_HT_SMPS_CAP_FEATURE_MAX),
2224
2225 REG_VARIABLE(CFG_DISABLE_DFS_CH_SWITCH, WLAN_PARAM_Integer,
2226 struct hdd_config, disableDFSChSwitch,
2227 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2228 CFG_DISABLE_DFS_CH_SWITCH_DEFAULT,
2229 CFG_DISABLE_DFS_CH_SWITCH_MIN,
2230 CFG_DISABLE_DFS_CH_SWITCH_MAX),
2231
2232 REG_VARIABLE(CFG_ENABLE_DFS_MASTER_CAPABILITY, WLAN_PARAM_Integer,
2233 struct hdd_config, enableDFSMasterCap,
2234 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2235 CFG_ENABLE_DFS_MASTER_CAPABILITY_DEFAULT,
2236 CFG_ENABLE_DFS_MASTER_CAPABILITY_MIN,
2237 CFG_ENABLE_DFS_MASTER_CAPABILITY_MAX),
2238
2239 REG_DYNAMIC_VARIABLE(CFG_SAP_PREFERRED_CHANNEL_LOCATION,
2240 WLAN_PARAM_Integer,
2241 struct hdd_config, gSapPreferredChanLocation,
2242 VAR_FLAGS_OPTIONAL |
2243 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2244 CFG_SAP_PREFERRED_CHANNEL_LOCATION_DEFAULT,
2245 CFG_SAP_PREFERRED_CHANNEL_LOCATION_MIN,
2246 CFG_SAP_PREFERRED_CHANNEL_LOCATION_MAX,
2247 cb_notify_set_g_sap_preferred_chan_location, 0),
2248 REG_DYNAMIC_VARIABLE(CFG_DISABLE_DFS_JAPAN_W53, WLAN_PARAM_Integer,
2249 struct hdd_config, gDisableDfsJapanW53,
2250 VAR_FLAGS_OPTIONAL |
2251 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2252 CFG_DISABLE_DFS_JAPAN_W53_DEFAULT,
2253 CFG_DISABLE_DFS_JAPAN_W53_MIN,
2254 CFG_DISABLE_DFS_JAPAN_W53_MAX,
2255 ch_notify_set_g_disable_dfs_japan_w53, 0),
Hong Shi417824f2017-01-12 02:31:14 +08002256
2257 REG_VARIABLE(CFG_MAX_HT_MCS_FOR_TX_DATA, WLAN_PARAM_HexInteger,
2258 struct hdd_config, max_ht_mcs_txdata,
2259 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2260 CFG_MAX_HT_MCS_FOR_TX_DATA_DEFAULT,
2261 CFG_MAX_HT_MCS_FOR_TX_DATA_MIN,
2262 CFG_MAX_HT_MCS_FOR_TX_DATA_MAX),
2263
Will Huang496b36c2017-07-11 16:38:50 +08002264 REG_VARIABLE(CFG_SAP_GET_PEER_INFO, WLAN_PARAM_Integer,
2265 struct hdd_config, sap_get_peer_info,
2266 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2267 CFG_SAP_GET_PEER_INFO_DEFAULT,
2268 CFG_SAP_GET_PEER_INFO_MIN,
2269 CFG_SAP_GET_PEER_INFO_MAX),
2270
Hong Shia9ef8712017-02-19 21:54:02 +08002271 REG_VARIABLE(CFG_DISABLE_ABG_RATE_FOR_TX_DATA, WLAN_PARAM_Integer,
2272 struct hdd_config, disable_abg_rate_txdata,
2273 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2274 CFG_DISABLE_ABG_RATE_FOR_TX_DATA_DEFAULT,
2275 CFG_DISABLE_ABG_RATE_FOR_TX_DATA_MIN,
2276 CFG_DISABLE_ABG_RATE_FOR_TX_DATA_MAX),
2277
Hong Shib90718f2017-02-20 00:57:22 +08002278 REG_VARIABLE(CFG_RATE_FOR_TX_MGMT, WLAN_PARAM_HexInteger,
2279 struct hdd_config, rate_for_tx_mgmt,
2280 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2281 CFG_RATE_FOR_TX_MGMT_DEFAULT,
2282 CFG_RATE_FOR_TX_MGMT_MIN,
2283 CFG_RATE_FOR_TX_MGMT_MAX),
2284
Hong Shi2d384fd2017-05-22 18:38:41 +08002285 REG_VARIABLE(CFG_RATE_FOR_TX_MGMT_2G, WLAN_PARAM_HexInteger,
2286 struct hdd_config, rate_for_tx_mgmt_2g,
2287 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2288 CFG_RATE_FOR_TX_MGMT_2G_DEFAULT,
2289 CFG_RATE_FOR_TX_MGMT_2G_MIN,
2290 CFG_RATE_FOR_TX_MGMT_2G_MAX),
2291
2292 REG_VARIABLE(CFG_RATE_FOR_TX_MGMT_5G, WLAN_PARAM_HexInteger,
2293 struct hdd_config, rate_for_tx_mgmt_5g,
2294 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2295 CFG_RATE_FOR_TX_MGMT_5G_DEFAULT,
2296 CFG_RATE_FOR_TX_MGMT_5G_MIN,
2297 CFG_RATE_FOR_TX_MGMT_5G_MAX),
2298
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002299 REG_VARIABLE(CFG_ENABLE_FIRST_SCAN_2G_ONLY_NAME, WLAN_PARAM_Integer,
2300 struct hdd_config, enableFirstScan2GOnly,
2301 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2302 CFG_ENABLE_FIRST_SCAN_2G_ONLY_DEFAULT,
2303 CFG_ENABLE_FIRST_SCAN_2G_ONLY_MIN,
2304 CFG_ENABLE_FIRST_SCAN_2G_ONLY_MAX),
2305
2306 REG_VARIABLE(CFG_ENABLE_SKIP_DFS_IN_P2P_SEARCH_NAME, WLAN_PARAM_Integer,
2307 struct hdd_config, skipDfsChnlInP2pSearch,
2308 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2309 CFG_ENABLE_SKIP_DFS_IN_P2P_SEARCH_DEFAULT,
2310 CFG_ENABLE_SKIP_DFS_IN_P2P_SEARCH_MIN,
2311 CFG_ENABLE_SKIP_DFS_IN_P2P_SEARCH_MAX),
2312
2313 REG_VARIABLE(CFG_IGNORE_DYNAMIC_DTIM_IN_P2P_MODE_NAME,
2314 WLAN_PARAM_Integer,
2315 struct hdd_config, ignoreDynamicDtimInP2pMode,
2316 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2317 CFG_IGNORE_DYNAMIC_DTIM_IN_P2P_MODE_DEFAULT,
2318 CFG_IGNORE_DYNAMIC_DTIM_IN_P2P_MODE_MIN,
2319 CFG_IGNORE_DYNAMIC_DTIM_IN_P2P_MODE_MAX),
2320
2321 REG_VARIABLE(CFG_ENABLE_RX_STBC, WLAN_PARAM_Integer,
2322 struct hdd_config, enableRxSTBC,
2323 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2324 CFG_ENABLE_RX_STBC_DEFAULT,
2325 CFG_ENABLE_RX_STBC_MIN,
2326 CFG_ENABLE_RX_STBC_MAX),
2327
2328 REG_VARIABLE(CFG_ENABLE_TX_STBC, WLAN_PARAM_Integer,
2329 struct hdd_config, enableTxSTBC,
2330 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2331 CFG_ENABLE_TX_STBC_DEFAULT,
2332 CFG_ENABLE_TX_STBC_MIN,
2333 CFG_ENABLE_TX_STBC_MAX),
2334
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002335 REG_VARIABLE(CFG_PPS_ENABLE_5G_EBT, WLAN_PARAM_Integer,
2336 struct hdd_config, enable5gEBT,
2337 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2338 CFG_PPS_ENABLE_5G_EBT_FEATURE_DEFAULT,
2339 CFG_PPS_ENABLE_5G_EBT_FEATURE_MIN,
2340 CFG_PPS_ENABLE_5G_EBT_FEATURE_MAX),
2341
Dustin Brownfe7aa872017-06-26 10:52:08 -07002342 REG_VARIABLE(CFG_PREVENT_LINK_DOWN_NAME, WLAN_PARAM_Integer,
2343 struct hdd_config, prevent_link_down,
2344 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2345 CFG_PREVENT_LINK_DOWN_DEFAULT,
2346 CFG_PREVENT_LINK_DOWN_MIN,
2347 CFG_PREVENT_LINK_DOWN_MAX),
2348
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002349#ifdef FEATURE_WLAN_TDLS
2350 REG_VARIABLE(CFG_TDLS_SUPPORT_ENABLE, WLAN_PARAM_Integer,
2351 struct hdd_config, fEnableTDLSSupport,
2352 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2353 CFG_TDLS_SUPPORT_ENABLE_DEFAULT,
2354 CFG_TDLS_SUPPORT_ENABLE_MIN,
2355 CFG_TDLS_SUPPORT_ENABLE_MAX),
2356
2357 REG_VARIABLE(CFG_TDLS_IMPLICIT_TRIGGER, WLAN_PARAM_Integer,
2358 struct hdd_config, fEnableTDLSImplicitTrigger,
2359 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2360 CFG_TDLS_IMPLICIT_TRIGGER_DEFAULT,
2361 CFG_TDLS_IMPLICIT_TRIGGER_MIN,
2362 CFG_TDLS_IMPLICIT_TRIGGER_MAX),
2363
2364 REG_VARIABLE(CFG_TDLS_TX_STATS_PERIOD, WLAN_PARAM_Integer,
2365 struct hdd_config, fTDLSTxStatsPeriod,
2366 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2367 CFG_TDLS_TX_STATS_PERIOD_DEFAULT,
2368 CFG_TDLS_TX_STATS_PERIOD_MIN,
2369 CFG_TDLS_TX_STATS_PERIOD_MAX),
2370
2371 REG_VARIABLE(CFG_TDLS_TX_PACKET_THRESHOLD, WLAN_PARAM_Integer,
2372 struct hdd_config, fTDLSTxPacketThreshold,
2373 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2374 CFG_TDLS_TX_PACKET_THRESHOLD_DEFAULT,
2375 CFG_TDLS_TX_PACKET_THRESHOLD_MIN,
2376 CFG_TDLS_TX_PACKET_THRESHOLD_MAX),
2377
2378 REG_VARIABLE(CFG_TDLS_MAX_DISCOVERY_ATTEMPT, WLAN_PARAM_Integer,
2379 struct hdd_config, fTDLSMaxDiscoveryAttempt,
2380 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2381 CFG_TDLS_MAX_DISCOVERY_ATTEMPT_DEFAULT,
2382 CFG_TDLS_MAX_DISCOVERY_ATTEMPT_MIN,
2383 CFG_TDLS_MAX_DISCOVERY_ATTEMPT_MAX),
2384
Kabilan Kannanca670be2015-11-23 01:56:12 -08002385 REG_VARIABLE(CFG_TDLS_IDLE_TIMEOUT, WLAN_PARAM_Integer,
2386 struct hdd_config, tdls_idle_timeout,
2387 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2388 CFG_TDLS_IDLE_TIMEOUT_DEFAULT,
2389 CFG_TDLS_IDLE_TIMEOUT_MIN,
2390 CFG_TDLS_IDLE_TIMEOUT_MAX),
2391
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002392 REG_VARIABLE(CFG_TDLS_IDLE_PACKET_THRESHOLD, WLAN_PARAM_Integer,
2393 struct hdd_config, fTDLSIdlePacketThreshold,
2394 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2395 CFG_TDLS_IDLE_PACKET_THRESHOLD_DEFAULT,
2396 CFG_TDLS_IDLE_PACKET_THRESHOLD_MIN,
2397 CFG_TDLS_IDLE_PACKET_THRESHOLD_MAX),
2398
2399 REG_VARIABLE(CFG_TDLS_RSSI_TRIGGER_THRESHOLD, WLAN_PARAM_SignedInteger,
2400 struct hdd_config, fTDLSRSSITriggerThreshold,
2401 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2402 CFG_TDLS_RSSI_TRIGGER_THRESHOLD_DEFAULT,
2403 CFG_TDLS_RSSI_TRIGGER_THRESHOLD_MIN,
2404 CFG_TDLS_RSSI_TRIGGER_THRESHOLD_MAX),
2405
2406 REG_VARIABLE(CFG_TDLS_RSSI_TEARDOWN_THRESHOLD, WLAN_PARAM_SignedInteger,
2407 struct hdd_config, fTDLSRSSITeardownThreshold,
2408 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2409 CFG_TDLS_RSSI_TEARDOWN_THRESHOLD_DEFAULT,
2410 CFG_TDLS_RSSI_TEARDOWN_THRESHOLD_MIN,
2411 CFG_TDLS_RSSI_TEARDOWN_THRESHOLD_MAX),
2412
2413 REG_VARIABLE(CFG_TDLS_RSSI_DELTA, WLAN_PARAM_SignedInteger,
2414 struct hdd_config, fTDLSRSSIDelta,
2415 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2416 CFG_TDLS_RSSI_DELTA_DEFAULT,
2417 CFG_TDLS_RSSI_DELTA_MIN,
2418 CFG_TDLS_RSSI_DELTA_MAX),
2419
2420 REG_VARIABLE(CFG_TDLS_QOS_WMM_UAPSD_MASK_NAME, WLAN_PARAM_HexInteger,
2421 struct hdd_config, fTDLSUapsdMask,
2422 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2423 CFG_TDLS_QOS_WMM_UAPSD_MASK_DEFAULT,
2424 CFG_TDLS_QOS_WMM_UAPSD_MASK_MIN,
2425 CFG_TDLS_QOS_WMM_UAPSD_MASK_MAX),
2426
2427 REG_VARIABLE(CFG_TDLS_BUFFER_STA_SUPPORT_ENABLE, WLAN_PARAM_Integer,
2428 struct hdd_config, fEnableTDLSBufferSta,
2429 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2430 CFG_TDLS_BUFFER_STA_SUPPORT_ENABLE_DEFAULT,
2431 CFG_TDLS_BUFFER_STA_SUPPORT_ENABLE_MIN,
2432 CFG_TDLS_BUFFER_STA_SUPPORT_ENABLE_MAX),
2433
2434 REG_VARIABLE(CFG_TDLS_OFF_CHANNEL_SUPPORT_ENABLE, WLAN_PARAM_Integer,
2435 struct hdd_config, fEnableTDLSOffChannel,
2436 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2437 CFG_TDLS_OFF_CHANNEL_SUPPORT_ENABLE_DEFAULT,
2438 CFG_TDLS_OFF_CHANNEL_SUPPORT_ENABLE_MIN,
2439 CFG_TDLS_OFF_CHANNEL_SUPPORT_ENABLE_MAX),
2440
2441 REG_VARIABLE(CFG_TDLS_PREFERRED_OFF_CHANNEL_NUM, WLAN_PARAM_Integer,
2442 struct hdd_config, fTDLSPrefOffChanNum,
2443 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2444 CFG_TDLS_PREFERRED_OFF_CHANNEL_NUM_DEFAULT,
2445 CFG_TDLS_PREFERRED_OFF_CHANNEL_NUM_MIN,
2446 CFG_TDLS_PREFERRED_OFF_CHANNEL_NUM_MAX),
2447
2448 REG_VARIABLE(CFG_TDLS_PREFERRED_OFF_CHANNEL_BW, WLAN_PARAM_Integer,
2449 struct hdd_config, fTDLSPrefOffChanBandwidth,
2450 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2451 CFG_TDLS_PREFERRED_OFF_CHANNEL_BW_DEFAULT,
2452 CFG_TDLS_PREFERRED_OFF_CHANNEL_BW_MIN,
2453 CFG_TDLS_PREFERRED_OFF_CHANNEL_BW_MAX),
2454
2455 REG_VARIABLE(CFG_TDLS_PUAPSD_INACTIVITY_TIME, WLAN_PARAM_Integer,
2456 struct hdd_config, fTDLSPuapsdInactivityTimer,
2457 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2458 CFG_TDLS_PUAPSD_INACTIVITY_TIME_DEFAULT,
2459 CFG_TDLS_PUAPSD_INACTIVITY_TIME_MIN,
2460 CFG_TDLS_PUAPSD_INACTIVITY_TIME_MAX),
2461
2462 REG_VARIABLE(CFG_TDLS_PUAPSD_RX_FRAME_THRESHOLD, WLAN_PARAM_Integer,
2463 struct hdd_config, fTDLSRxFrameThreshold,
2464 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2465 CFG_TDLS_PUAPSD_RX_FRAME_THRESHOLD_DEFAULT,
2466 CFG_TDLS_PUAPSD_RX_FRAME_THRESHOLD_MIN,
2467 CFG_TDLS_PUAPSD_RX_FRAME_THRESHOLD_MAX),
2468
2469 REG_VARIABLE(CFG_TDLS_PUAPSD_PEER_TRAFFIC_IND_WINDOW,
2470 WLAN_PARAM_Integer,
2471 struct hdd_config, fTDLSPuapsdPTIWindow,
2472 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2473 CFG_TDLS_PUAPSD_PEER_TRAFFIC_IND_WINDOW_DEFAULT,
2474 CFG_TDLS_PUAPSD_PEER_TRAFFIC_IND_WINDOW_MIN,
2475 CFG_TDLS_PUAPSD_PEER_TRAFFIC_IND_WINDOW_MAX),
2476
2477 REG_VARIABLE(CFG_TDLS_PUAPSD_PEER_TRAFFIC_RSP_TIMEOUT,
2478 WLAN_PARAM_Integer,
2479 struct hdd_config, fTDLSPuapsdPTRTimeout,
2480 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2481 CFG_TDLS_PUAPSD_PEER_TRAFFIC_RSP_TIMEOUT_DEFAULT,
2482 CFG_TDLS_PUAPSD_PEER_TRAFFIC_RSP_TIMEOUT_MIN,
2483 CFG_TDLS_PUAPSD_PEER_TRAFFIC_RSP_TIMEOUT_MAX),
2484
2485 REG_VARIABLE(CFG_TDLS_EXTERNAL_CONTROL, WLAN_PARAM_Integer,
2486 struct hdd_config, fTDLSExternalControl,
2487 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2488 CFG_TDLS_EXTERNAL_CONTROL_DEFAULT,
2489 CFG_TDLS_EXTERNAL_CONTROL_MIN,
2490 CFG_TDLS_EXTERNAL_CONTROL_MAX),
2491 REG_VARIABLE(CFG_TDLS_WMM_MODE_ENABLE, WLAN_PARAM_Integer,
2492 struct hdd_config, fEnableTDLSWmmMode,
2493 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2494 CFG_TDLS_WMM_MODE_ENABLE_DEFAULT,
2495 CFG_TDLS_WMM_MODE_ENABLE_MIN,
2496 CFG_TDLS_WMM_MODE_ENABLE_MAX),
2497
2498 REG_VARIABLE(CFG_TDLS_SCAN_ENABLE, WLAN_PARAM_Integer,
2499 struct hdd_config, enable_tdls_scan,
2500 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2501 CFG_TDLS_SCAN_ENABLE_DEFAULT,
2502 CFG_TDLS_SCAN_ENABLE_MIN,
2503 CFG_TDLS_SCAN_ENABLE_MAX),
Kabilan Kannan421714b2015-11-23 04:44:59 -08002504
2505 REG_VARIABLE(CFG_TDLS_PEER_KICKOUT_THRESHOLD, WLAN_PARAM_Integer,
2506 struct hdd_config, tdls_peer_kickout_threshold,
2507 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2508 CFG_TDLS_PEER_KICKOUT_THRESHOLD_DEFAULT,
2509 CFG_TDLS_PEER_KICKOUT_THRESHOLD_MIN,
2510 CFG_TDLS_PEER_KICKOUT_THRESHOLD_MAX),
2511
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002512#endif
2513
2514#ifdef WLAN_SOFTAP_VSTA_FEATURE
2515 REG_VARIABLE(CFG_VSTA_SUPPORT_ENABLE, WLAN_PARAM_Integer,
2516 struct hdd_config, fEnableVSTASupport,
2517 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2518 CFG_VSTA_SUPPORT_ENABLE_DEFAULT,
2519 CFG_VSTA_SUPPORT_ENABLE_MIN,
2520 CFG_VSTA_SUPPORT_ENABLE_MAX),
2521#endif
2522 REG_VARIABLE(CFG_ENABLE_LPWR_IMG_TRANSITION_NAME, WLAN_PARAM_Integer,
2523 struct hdd_config, enableLpwrImgTransition,
2524 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2525 CFG_ENABLE_LPWR_IMG_TRANSITION_DEFAULT,
2526 CFG_ENABLE_LPWR_IMG_TRANSITION_MIN,
2527 CFG_ENABLE_LPWR_IMG_TRANSITION_MAX),
2528
2529 REG_VARIABLE(CFG_ENABLE_LPWR_IMG_TRANSITION_NAME, WLAN_PARAM_Integer,
2530 struct hdd_config, enableLpwrImgTransition,
2531 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2532 CFG_ENABLE_LPWR_IMG_TRANSITION_DEFAULT,
2533 CFG_ENABLE_LPWR_IMG_TRANSITION_MIN,
2534 CFG_ENABLE_LPWR_IMG_TRANSITION_MAX),
2535
2536 REG_VARIABLE(CFG_SCAN_AGING_PARAM_NAME, WLAN_PARAM_Integer,
2537 struct hdd_config, scanAgingTimeout,
2538 VAR_FLAGS_OPTIONAL,
2539 CFG_SCAN_AGING_PARAM_DEFAULT,
2540 CFG_SCAN_AGING_PARAM_MIN,
2541 CFG_SCAN_AGING_PARAM_MAX),
2542
2543 REG_VARIABLE(CFG_TX_LDPC_ENABLE_FEATURE, WLAN_PARAM_Integer,
Krunal Sonia2c0e412017-05-04 14:12:41 +05302544 struct hdd_config, enable_tx_ldpc,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002545 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2546 CFG_TX_LDPC_ENABLE_FEATURE_DEFAULT,
2547 CFG_TX_LDPC_ENABLE_FEATURE_MIN,
2548 CFG_TX_LDPC_ENABLE_FEATURE_MAX),
2549
Krunal Sonia2c0e412017-05-04 14:12:41 +05302550 REG_VARIABLE(CFG_ENABLE_RX_LDPC, WLAN_PARAM_Integer,
2551 struct hdd_config, enable_rx_ldpc,
2552 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2553 CFG_ENABLE_RX_LDPC_DEFAULT,
2554 CFG_ENABLE_RX_LDPC_MIN,
2555 CFG_ENABLE_RX_LDPC_MAX),
2556
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002557 REG_VARIABLE(CFG_ENABLE_MCC_ADATIVE_SCHEDULER_ENABLED_NAME,
2558 WLAN_PARAM_Integer,
2559 struct hdd_config, enableMCCAdaptiveScheduler,
2560 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2561 CFG_ENABLE_MCC_ADATIVE_SCHEDULER_ENABLED_DEFAULT,
2562 CFG_ENABLE_MCC_ADATIVE_SCHEDULER_ENABLED_MIN,
2563 CFG_ENABLE_MCC_ADATIVE_SCHEDULER_ENABLED_MAX),
2564
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002565 REG_VARIABLE(CFG_IBSS_ADHOC_CHANNEL_5GHZ_NAME, WLAN_PARAM_Integer,
2566 struct hdd_config, AdHocChannel5G,
2567 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2568 CFG_IBSS_ADHOC_CHANNEL_5GHZ_DEFAULT,
2569 CFG_IBSS_ADHOC_CHANNEL_5GHZ_MIN,
2570 CFG_IBSS_ADHOC_CHANNEL_5GHZ_MAX),
2571
2572 REG_VARIABLE(CFG_IBSS_ADHOC_CHANNEL_24GHZ_NAME, WLAN_PARAM_Integer,
2573 struct hdd_config, AdHocChannel24G,
2574 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2575 CFG_IBSS_ADHOC_CHANNEL_24GHZ_DEFAULT,
2576 CFG_IBSS_ADHOC_CHANNEL_24GHZ_MIN,
2577 CFG_IBSS_ADHOC_CHANNEL_24GHZ_MAX),
2578
2579 REG_VARIABLE(CFG_VHT_SU_BEAMFORMEE_CAP_FEATURE, WLAN_PARAM_Integer,
2580 struct hdd_config, enableTxBF,
2581 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2582 CFG_VHT_SU_BEAMFORMEE_CAP_FEATURE_DEFAULT,
2583 CFG_VHT_SU_BEAMFORMEE_CAP_FEATURE_MIN,
2584 CFG_VHT_SU_BEAMFORMEE_CAP_FEATURE_MAX),
2585
Abhishek Singh68844282018-01-25 16:48:41 +05302586 REG_VARIABLE(CFG_ENABLE_SUBFEE_IN_VENDOR_VHTIE_NAME, WLAN_PARAM_Integer,
2587 struct hdd_config, enable_subfee_vendor_vhtie,
2588 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2589 CFG_ENABLE_SUBFEE_IN_VENDOR_VHTIE_DEFAULT,
2590 CFG_ENABLE_SUBFEE_IN_VENDOR_VHTIE_MIN,
2591 CFG_ENABLE_SUBFEE_IN_VENDOR_VHTIE_MAX),
2592
Kiran Kumar Lokere5302ab62015-12-16 16:03:16 -08002593 REG_VARIABLE(CFG_VHT_ENABLE_TXBF_SAP_MODE, WLAN_PARAM_Integer,
2594 struct hdd_config, enable_txbf_sap_mode,
2595 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2596 CFG_VHT_ENABLE_TXBF_SAP_MODE_DEFAULT,
2597 CFG_VHT_ENABLE_TXBF_SAP_MODE_MIN,
2598 CFG_VHT_ENABLE_TXBF_SAP_MODE_MAX),
2599
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002600 REG_VARIABLE(CFG_VHT_ENABLE_TXBF_IN_20MHZ, WLAN_PARAM_Integer,
2601 struct hdd_config, enableTxBFin20MHz,
2602 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2603 CFG_VHT_ENABLE_TXBF_IN_20MHZ_DEFAULT,
2604 CFG_VHT_ENABLE_TXBF_IN_20MHZ_MIN,
2605 CFG_VHT_ENABLE_TXBF_IN_20MHZ_MAX),
2606
2607 REG_VARIABLE(CFG_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED, WLAN_PARAM_Integer,
2608 struct hdd_config, txBFCsnValue,
2609 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2610 CFG_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED_DEFAULT,
2611 CFG_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED_MIN,
2612 CFG_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED_MAX),
2613
2614 REG_VARIABLE(CFG_VHT_ENABLE_TX_SU_BEAM_FORMER, WLAN_PARAM_Integer,
2615 struct hdd_config, enable_su_tx_bformer,
2616 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2617 CFG_VHT_ENABLE_TX_SU_BEAM_FORMER_DEFAULT,
2618 CFG_VHT_ENABLE_TX_SU_BEAM_FORMER_MIN,
2619 CFG_VHT_ENABLE_TX_SU_BEAM_FORMER_MAX),
2620
2621 REG_VARIABLE(CFG_SAP_ALLOW_ALL_CHANNEL_PARAM_NAME, WLAN_PARAM_Integer,
2622 struct hdd_config, sapAllowAllChannel,
2623 VAR_FLAGS_OPTIONAL,
2624 CFG_SAP_ALLOW_ALL_CHANNEL_PARAM_DEFAULT,
2625 CFG_SAP_ALLOW_ALL_CHANNEL_PARAM_MIN,
2626 CFG_SAP_ALLOW_ALL_CHANNEL_PARAM_MAX),
2627
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002628 REG_VARIABLE(CFG_DISABLE_LDPC_WITH_TXBF_AP, WLAN_PARAM_Integer,
2629 struct hdd_config, disableLDPCWithTxbfAP,
2630 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2631 CFG_DISABLE_LDPC_WITH_TXBF_AP_DEFAULT,
2632 CFG_DISABLE_LDPC_WITH_TXBF_AP_MIN,
2633 CFG_DISABLE_LDPC_WITH_TXBF_AP_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002634
2635 REG_DYNAMIC_VARIABLE(CFG_ENABLE_SSR, WLAN_PARAM_Integer,
2636 struct hdd_config, enableSSR,
2637 VAR_FLAGS_OPTIONAL |
2638 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2639 CFG_ENABLE_SSR_DEFAULT,
2640 CFG_ENABLE_SSR_MIN,
2641 CFG_ENABLE_SSR_MAX,
2642 cb_notify_set_enable_ssr, 0),
2643
Poddar, Siddarth37033032017-10-11 15:47:40 +05302644 REG_VARIABLE(CFG_ENABLE_DATA_STALL_DETECTION, WLAN_PARAM_Integer,
2645 struct hdd_config, enable_data_stall_det,
2646 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2647 CFG_ENABLE_DATA_STALL_DETECTION_DEFAULT,
2648 CFG_ENABLE_DATA_STALL_DETECTION_MIN,
2649 CFG_ENABLE_DATA_STALL_DETECTION_MAX),
2650
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002651 REG_VARIABLE(CFG_MAX_MEDIUM_TIME, WLAN_PARAM_Integer,
2652 struct hdd_config, cfgMaxMediumTime,
2653 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2654 CFG_MAX_MEDIUM_TIME_STADEFAULT,
2655 CFG_MAX_MEDIUM_TIME_STAMIN,
2656 CFG_MAX_MEDIUM_TIME_STAMAX),
2657
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002658 REG_VARIABLE(CFG_ENABLE_VHT_FOR_24GHZ_NAME, WLAN_PARAM_Integer,
2659 struct hdd_config, enableVhtFor24GHzBand,
2660 VAR_FLAGS_OPTIONAL,
2661 CFG_ENABLE_VHT_FOR_24GHZ_DEFAULT,
2662 CFG_ENABLE_VHT_FOR_24GHZ_MIN,
2663 CFG_ENABLE_VHT_FOR_24GHZ_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002664
Kapil Gupta4b2efbb2016-10-03 13:07:20 +05302665
2666 REG_VARIABLE(CFG_ENABLE_VENDOR_VHT_FOR_24GHZ_NAME, WLAN_PARAM_Integer,
2667 struct hdd_config, enable_sap_vendor_vht,
2668 VAR_FLAGS_OPTIONAL,
2669 CFG_ENABLE_VENDOR_VHT_FOR_24GHZ_DEFAULT,
2670 CFG_ENABLE_VENDOR_VHT_FOR_24GHZ_MIN,
2671 CFG_ENABLE_VENDOR_VHT_FOR_24GHZ_MAX),
2672
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002673 REG_DYNAMIC_VARIABLE(CFG_ENABLE_FAST_ROAM_IN_CONCURRENCY,
2674 WLAN_PARAM_Integer,
2675 struct hdd_config, bFastRoamInConIniFeatureEnabled,
2676 VAR_FLAGS_OPTIONAL |
2677 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2678 CFG_ENABLE_FAST_ROAM_IN_CONCURRENCY_DEFAULT,
2679 CFG_ENABLE_FAST_ROAM_IN_CONCURRENCY_MIN,
2680 CFG_ENABLE_FAST_ROAM_IN_CONCURRENCY_MAX,
2681 cb_notify_set_enable_fast_roam_in_concurrency, 0),
2682
2683 REG_VARIABLE(CFG_ENABLE_ADAPT_RX_DRAIN_NAME, WLAN_PARAM_Integer,
2684 struct hdd_config, fEnableAdaptRxDrain,
2685 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2686 CFG_ENABLE_ADAPT_RX_DRAIN_DEFAULT,
2687 CFG_ENABLE_ADAPT_RX_DRAIN_MIN,
2688 CFG_ENABLE_ADAPT_RX_DRAIN_MAX),
2689
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002690 REG_VARIABLE(CFG_ENABLE_HEART_BEAT_OFFLOAD, WLAN_PARAM_Integer,
2691 struct hdd_config, enableIbssHeartBeatOffload,
2692 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2693 CFG_ENABLE_HEART_BEAT_OFFLOAD_DEFAULT,
2694 CFG_ENABLE_HEART_BEAT_OFFLOAD_MIN,
2695 CFG_ENABLE_HEART_BEAT_OFFLOAD_MAX),
2696
2697 REG_VARIABLE(CFG_ANTENNA_DIVERSITY_PARAM_NAME, WLAN_PARAM_Integer,
2698 struct hdd_config, antennaDiversity,
2699 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2700 CFG_ANTENNA_DIVERSITY_PARAM_DEFAULT,
2701 CFG_ANTENNA_DIVERSITY_PARAM_MIN,
2702 CFG_ANTENNA_DIVERSITY_PARAM_MAX),
2703
2704 REG_VARIABLE(CFG_ENABLE_SNR_MONITORING_NAME, WLAN_PARAM_Integer,
2705 struct hdd_config, fEnableSNRMonitoring,
2706 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2707 CFG_ENABLE_SNR_MONITORING_DEFAULT,
2708 CFG_ENABLE_SNR_MONITORING_MIN,
2709 CFG_ENABLE_SNR_MONITORING_MAX),
2710
2711#ifdef FEATURE_WLAN_SCAN_PNO
2712 REG_VARIABLE(CFG_PNO_SCAN_SUPPORT, WLAN_PARAM_Integer,
2713 struct hdd_config, configPNOScanSupport,
2714 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2715 CFG_PNO_SCAN_SUPPORT_DEFAULT,
2716 CFG_PNO_SCAN_SUPPORT_DISABLE,
2717 CFG_PNO_SCAN_SUPPORT_ENABLE),
2718
2719 REG_VARIABLE(CFG_PNO_SCAN_TIMER_REPEAT_VALUE, WLAN_PARAM_Integer,
2720 struct hdd_config, configPNOScanTimerRepeatValue,
2721 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2722 CFG_PNO_SCAN_TIMER_REPEAT_VALUE_DEFAULT,
2723 CFG_PNO_SCAN_TIMER_REPEAT_VALUE_MIN,
2724 CFG_PNO_SCAN_TIMER_REPEAT_VALUE_MAX),
Srinivas Girigowdabdc98162015-09-17 11:06:07 -07002725
2726 REG_VARIABLE(CFG_PNO_SLOW_SCAN_MULTIPLIER, WLAN_PARAM_Integer,
2727 struct hdd_config, pno_slow_scan_multiplier,
2728 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2729 CFG_PNO_SLOW_SCAN_MULTIPLIER_DEFAULT,
2730 CFG_PNO_SLOW_SCAN_MULTIPLIER_MIN,
2731 CFG_PNO_SLOW_SCAN_MULTIPLIER_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002732#endif
Jeff Johnson82cc76f2017-09-30 14:18:07 -07002733 REG_VARIABLE(CFG_MAX_AMSDU_NUM_NAME, WLAN_PARAM_Integer,
Deepak Dhamdhere612392c2016-08-28 02:56:51 -07002734 struct hdd_config, max_amsdu_num,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002735 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
Deepak Dhamdhere612392c2016-08-28 02:56:51 -07002736 CFG_MAX_AMSDU_NUM_DEFAULT,
2737 CFG_MAX_AMSDU_NUM_MIN,
2738 CFG_MAX_AMSDU_NUM_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002739
2740 REG_VARIABLE(CFG_STRICT_5GHZ_PREF_BY_MARGIN, WLAN_PARAM_Integer,
2741 struct hdd_config, nSelect5GHzMargin,
2742 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2743 CFG_STRICT_5GHZ_PREF_BY_MARGIN_DEFAULT,
2744 CFG_STRICT_5GHZ_PREF_BY_MARGIN_MIN,
2745 CFG_STRICT_5GHZ_PREF_BY_MARGIN_MAX),
2746
2747 REG_VARIABLE(CFG_ENABLE_IP_TCP_UDP_CHKSUM_OFFLOAD, WLAN_PARAM_Integer,
2748 struct hdd_config, enable_ip_tcp_udp_checksum_offload,
2749 VAR_FLAGS_OPTIONAL,
2750 CFG_ENABLE_IP_TCP_UDP_CHKSUM_OFFLOAD_DEFAULT,
2751 CFG_ENABLE_IP_TCP_UDP_CHKSUM_OFFLOAD_DISABLE,
2752 CFG_ENABLE_IP_TCP_UDP_CHKSUM_OFFLOAD_ENABLE),
2753
2754 REG_VARIABLE(CFG_POWERSAVE_OFFLOAD_NAME, WLAN_PARAM_Integer,
2755 struct hdd_config, enablePowersaveOffload,
2756 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2757 CFG_POWERSAVE_OFFLOAD_DEFAULT,
2758 CFG_POWERSAVE_OFFLOAD_MIN,
2759 CFG_POWERSAVE_OFFLOAD_MAX),
2760
2761 REG_VARIABLE(CFG_ENABLE_FW_UART_PRINT_NAME, WLAN_PARAM_Integer,
2762 struct hdd_config, enablefwprint,
2763 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2764 CFG_ENABLE_FW_UART_PRINT_DEFAULT,
2765 CFG_ENABLE_FW_UART_PRINT_DISABLE,
2766 CFG_ENABLE_FW_UART_PRINT_ENABLE),
2767
2768 REG_VARIABLE(CFG_ENABLE_FW_LOG_NAME, WLAN_PARAM_Integer,
Komal Seelamc11bb222016-01-27 18:57:10 +05302769 struct hdd_config, enable_fw_log,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002770 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2771 CFG_ENABLE_FW_LOG_DEFAULT,
2772 CFG_ENABLE_FW_LOG_DISABLE,
Yuanyuan Liu7a97b8f2017-01-27 10:42:52 -08002773 CFG_ENABLE_FW_LOG_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002774
2775#ifdef IPA_OFFLOAD
2776 REG_VARIABLE(CFG_IPA_OFFLOAD_CONFIG_NAME, WLAN_PARAM_HexInteger,
2777 struct hdd_config, IpaConfig,
2778 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2779 CFG_IPA_OFFLOAD_CONFIG_DEFAULT,
2780 CFG_IPA_OFFLOAD_CONFIG_MIN,
2781 CFG_IPA_OFFLOAD_CONFIG_MAX),
2782
2783 REG_VARIABLE(CFG_IPA_DESC_SIZE_NAME, WLAN_PARAM_Integer,
2784 struct hdd_config, IpaDescSize,
2785 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2786 CFG_IPA_DESC_SIZE_DEFAULT,
2787 CFG_IPA_DESC_SIZE_MIN,
2788 CFG_IPA_DESC_SIZE_MAX),
2789
2790 REG_VARIABLE(CFG_IPA_HIGH_BANDWIDTH_MBPS, WLAN_PARAM_Integer,
2791 struct hdd_config, IpaHighBandwidthMbps,
2792 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2793 CFG_IPA_HIGH_BANDWIDTH_MBPS_DEFAULT,
2794 CFG_IPA_HIGH_BANDWIDTH_MBPS_MIN,
2795 CFG_IPA_HIGH_BANDWIDTH_MBPS_MAX),
2796
2797 REG_VARIABLE(CFG_IPA_MEDIUM_BANDWIDTH_MBPS, WLAN_PARAM_Integer,
2798 struct hdd_config, IpaMediumBandwidthMbps,
2799 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2800 CFG_IPA_MEDIUM_BANDWIDTH_MBPS_DEFAULT,
2801 CFG_IPA_MEDIUM_BANDWIDTH_MBPS_MIN,
2802 CFG_IPA_MEDIUM_BANDWIDTH_MBPS_MAX),
2803
2804 REG_VARIABLE(CFG_IPA_LOW_BANDWIDTH_MBPS, WLAN_PARAM_Integer,
2805 struct hdd_config, IpaLowBandwidthMbps,
2806 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2807 CFG_IPA_LOW_BANDWIDTH_MBPS_DEFAULT,
2808 CFG_IPA_LOW_BANDWIDTH_MBPS_MIN,
2809 CFG_IPA_LOW_BANDWIDTH_MBPS_MAX),
2810#endif
2811
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002812 REG_VARIABLE(CFG_VHT_AMPDU_LEN_EXPONENT_NAME, WLAN_PARAM_Integer,
2813 struct hdd_config, fVhtAmpduLenExponent,
2814 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2815 CFG_VHT_AMPDU_LEN_EXPONENT_DEFAULT,
2816 CFG_VHT_AMPDU_LEN_EXPONENT_MIN,
2817 CFG_VHT_AMPDU_LEN_EXPONENT_MAX),
2818
2819 REG_VARIABLE(CFG_VHT_MPDU_LEN_NAME, WLAN_PARAM_Integer,
2820 struct hdd_config, vhtMpduLen,
2821 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2822 CFG_VHT_MPDU_LEN_DEFAULT,
2823 CFG_VHT_MPDU_LEN_MIN,
2824 CFG_VHT_MPDU_LEN_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002825
2826 REG_VARIABLE(CFG_MAX_WOW_FILTERS_NAME, WLAN_PARAM_Integer,
2827 struct hdd_config, maxWoWFilters,
2828 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
2829 CFG_MAX_WOW_FILTERS_DEFAULT,
2830 CFG_MAX_WOW_FILTERS_MIN,
2831 CFG_MAX_WOW_FILTERS_MAX),
2832
2833 REG_VARIABLE(CFG_WOW_STATUS_NAME, WLAN_PARAM_Integer,
2834 struct hdd_config, wowEnable,
2835 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2836 CFG_WOW_STATUS_DEFAULT,
2837 CFG_WOW_ENABLE_MIN,
2838 CFG_WOW_ENABLE_MAX),
2839
2840 REG_VARIABLE(CFG_COALESING_IN_IBSS_NAME, WLAN_PARAM_Integer,
2841 struct hdd_config, isCoalesingInIBSSAllowed,
2842 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2843 CFG_COALESING_IN_IBSS_DEFAULT,
2844 CFG_COALESING_IN_IBSS_MIN,
2845 CFG_COALESING_IN_IBSS_MAX),
2846
2847 REG_VARIABLE(CFG_IBSS_ATIM_WIN_SIZE_NAME, WLAN_PARAM_Integer,
2848 struct hdd_config, ibssATIMWinSize,
2849 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2850 CFG_IBSS_ATIM_WIN_SIZE_DEFAULT,
2851 CFG_IBSS_ATIM_WIN_SIZE_MIN,
2852 CFG_IBSS_ATIM_WIN_SIZE_MAX),
2853
2854 REG_VARIABLE(CFG_SAP_MAX_NO_PEERS, WLAN_PARAM_Integer,
2855 struct hdd_config, maxNumberOfPeers,
2856 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2857 CFG_SAP_MAX_NO_PEERS_DEFAULT,
2858 CFG_SAP_MAX_NO_PEERS_MIN,
2859 CFG_SAP_MAX_NO_PEERS_MAX),
2860
2861 REG_VARIABLE(CFG_IBSS_IS_POWER_SAVE_ALLOWED_NAME, WLAN_PARAM_Integer,
2862 struct hdd_config, isIbssPowerSaveAllowed,
2863 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2864 CFG_IBSS_IS_POWER_SAVE_ALLOWED_DEFAULT,
2865 CFG_IBSS_IS_POWER_SAVE_ALLOWED_MIN,
2866 CFG_IBSS_IS_POWER_SAVE_ALLOWED_MAX),
2867
2868 REG_VARIABLE(CFG_IBSS_IS_POWER_COLLAPSE_ALLOWED_NAME,
2869 WLAN_PARAM_Integer,
2870 struct hdd_config, isIbssPowerCollapseAllowed,
2871 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2872 CFG_IBSS_IS_POWER_COLLAPSE_ALLOWED_DEFAULT,
2873 CFG_IBSS_IS_POWER_COLLAPSE_ALLOWED_MIN,
2874 CFG_IBSS_IS_POWER_COLLAPSE_ALLOWED_MAX),
2875
2876 REG_VARIABLE(CFG_IBSS_AWAKE_ON_TX_RX_NAME, WLAN_PARAM_Integer,
2877 struct hdd_config, isIbssAwakeOnTxRx,
2878 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2879 CFG_IBSS_AWAKE_ON_TX_RX_DEFAULT,
2880 CFG_IBSS_AWAKE_ON_TX_RX_MIN,
2881 CFG_IBSS_AWAKE_ON_TX_RX_MAX),
2882
2883 REG_VARIABLE(CFG_IBSS_INACTIVITY_TIME_NAME, WLAN_PARAM_Integer,
2884 struct hdd_config, ibssInactivityCount,
2885 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2886 CFG_IBSS_INACTIVITY_TIME_DEFAULT,
2887 CFG_IBSS_INACTIVITY_TIME_MIN,
2888 CFG_IBSS_INACTIVITY_TIME_MAX),
2889
2890 REG_VARIABLE(CFG_IBSS_TXSP_END_INACTIVITY_NAME, WLAN_PARAM_Integer,
2891 struct hdd_config, ibssTxSpEndInactivityTime,
2892 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2893 CFG_IBSS_TXSP_END_INACTIVITY_DEFAULT,
2894 CFG_IBSS_TXSP_END_INACTIVITY_MIN,
2895 CFG_IBSS_TXSP_END_INACTIVITY_MAX),
2896
2897 REG_VARIABLE(CFG_IBSS_PS_WARMUP_TIME_NAME, WLAN_PARAM_Integer,
2898 struct hdd_config, ibssPsWarmupTime,
2899 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2900 CFG_IBSS_PS_WARMUP_TIME_DEFAULT,
2901 CFG_IBSS_PS_WARMUP_TIME_MIN,
2902 CFG_IBSS_PS_WARMUP_TIME_MAX),
2903
2904 REG_VARIABLE(CFG_IBSS_PS_1RX_CHAIN_IN_ATIM_WINDOW_NAME,
2905 WLAN_PARAM_Integer,
2906 struct hdd_config, ibssPs1RxChainInAtimEnable,
2907 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2908 CFG_IBSS_PS_1RX_CHAIN_IN_ATIM_WINDOW_DEFAULT,
2909 CFG_IBSS_PS_1RX_CHAIN_IN_ATIM_WINDOW_MIN,
2910 CFG_IBSS_PS_1RX_CHAIN_IN_ATIM_WINDOW_MAX),
2911
2912 REG_VARIABLE(CFG_THERMAL_TEMP_MIN_LEVEL0_NAME, WLAN_PARAM_Integer,
2913 struct hdd_config, thermalTempMinLevel0,
2914 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2915 CFG_THERMAL_TEMP_MIN_LEVEL0_DEFAULT,
2916 CFG_THERMAL_TEMP_MIN_LEVEL0_MIN,
2917 CFG_THERMAL_TEMP_MIN_LEVEL0_MAX),
2918
2919 REG_VARIABLE(CFG_THERMAL_TEMP_MAX_LEVEL0_NAME, WLAN_PARAM_Integer,
2920 struct hdd_config, thermalTempMaxLevel0,
2921 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2922 CFG_THERMAL_TEMP_MAX_LEVEL0_DEFAULT,
2923 CFG_THERMAL_TEMP_MAX_LEVEL0_MIN,
2924 CFG_THERMAL_TEMP_MAX_LEVEL0_MAX),
2925
2926 REG_VARIABLE(CFG_THERMAL_TEMP_MIN_LEVEL1_NAME, WLAN_PARAM_Integer,
2927 struct hdd_config, thermalTempMinLevel1,
2928 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2929 CFG_THERMAL_TEMP_MIN_LEVEL1_DEFAULT,
2930 CFG_THERMAL_TEMP_MIN_LEVEL1_MIN,
2931 CFG_THERMAL_TEMP_MIN_LEVEL1_MAX),
2932
2933 REG_VARIABLE(CFG_THERMAL_TEMP_MAX_LEVEL1_NAME, WLAN_PARAM_Integer,
2934 struct hdd_config, thermalTempMaxLevel1,
2935 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2936 CFG_THERMAL_TEMP_MAX_LEVEL1_DEFAULT,
2937 CFG_THERMAL_TEMP_MAX_LEVEL1_MIN,
2938 CFG_THERMAL_TEMP_MAX_LEVEL1_MAX),
2939
2940 REG_VARIABLE(CFG_THERMAL_TEMP_MIN_LEVEL2_NAME, WLAN_PARAM_Integer,
2941 struct hdd_config, thermalTempMinLevel2,
2942 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2943 CFG_THERMAL_TEMP_MIN_LEVEL2_DEFAULT,
2944 CFG_THERMAL_TEMP_MIN_LEVEL2_MIN,
2945 CFG_THERMAL_TEMP_MIN_LEVEL2_MAX),
2946
2947 REG_VARIABLE(CFG_THERMAL_TEMP_MAX_LEVEL2_NAME, WLAN_PARAM_Integer,
2948 struct hdd_config, thermalTempMaxLevel2,
2949 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2950 CFG_THERMAL_TEMP_MAX_LEVEL2_DEFAULT,
2951 CFG_THERMAL_TEMP_MAX_LEVEL2_MIN,
2952 CFG_THERMAL_TEMP_MAX_LEVEL2_MAX),
2953
2954 REG_VARIABLE(CFG_THERMAL_TEMP_MIN_LEVEL3_NAME, WLAN_PARAM_Integer,
2955 struct hdd_config, thermalTempMinLevel3,
2956 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2957 CFG_THERMAL_TEMP_MIN_LEVEL3_DEFAULT,
2958 CFG_THERMAL_TEMP_MIN_LEVEL3_MIN,
2959 CFG_THERMAL_TEMP_MIN_LEVEL3_MAX),
2960
2961 REG_VARIABLE(CFG_THERMAL_TEMP_MAX_LEVEL3_NAME, WLAN_PARAM_Integer,
2962 struct hdd_config, thermalTempMaxLevel3,
2963 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2964 CFG_THERMAL_TEMP_MAX_LEVEL3_DEFAULT,
2965 CFG_THERMAL_TEMP_MAX_LEVEL3_MIN,
2966 CFG_THERMAL_TEMP_MAX_LEVEL3_MAX),
2967
2968 REG_VARIABLE(CFG_SET_TXPOWER_LIMIT2G_NAME, WLAN_PARAM_Integer,
2969 struct hdd_config, TxPower2g,
2970 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2971 CFG_SET_TXPOWER_LIMIT2G_DEFAULT,
2972 CFG_SET_TXPOWER_LIMIT2G_MIN,
2973 CFG_SET_TXPOWER_LIMIT2G_MAX),
2974
2975 REG_VARIABLE(CFG_SET_TXPOWER_LIMIT5G_NAME, WLAN_PARAM_Integer,
2976 struct hdd_config, TxPower5g,
2977 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2978 CFG_SET_TXPOWER_LIMIT5G_DEFAULT,
2979 CFG_SET_TXPOWER_LIMIT5G_MIN,
2980 CFG_SET_TXPOWER_LIMIT5G_MAX),
2981
2982 REG_VARIABLE(CFG_ENABLE_DEBUG_CONNECT_ISSUE, WLAN_PARAM_Integer,
2983 struct hdd_config, gEnableDebugLog,
2984 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2985 CFG_ENABLE_DEBUG_CONNECT_ISSUE_DEFAULT,
2986 CFG_ENABLE_DEBUG_CONNECT_ISSUE_MIN,
2987 CFG_ENABLE_DEBUG_CONNECT_ISSUE_MAX),
2988
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08002989 REG_VARIABLE(CFG_ENABLE_DFS_PHYERR_FILTEROFFLOAD_NAME,
2990 WLAN_PARAM_Integer,
2991 struct hdd_config, fDfsPhyerrFilterOffload,
2992 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
2993 CFG_ENABLE_DFS_PHYERR_FILTEROFFLOAD_DEFAULT,
2994 CFG_ENABLE_DFS_PHYERR_FILTEROFFLOAD_MIN,
2995 CFG_ENABLE_DFS_PHYERR_FILTEROFFLOAD_MAX),
2996
2997 REG_VARIABLE(CFG_ENABLE_OVERLAP_CH, WLAN_PARAM_Integer,
2998 struct hdd_config, gEnableOverLapCh,
2999 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
3000 CFG_ENABLE_OVERLAP_CH_DEFAULT,
3001 CFG_ENABLE_OVERLAP_CH_MIN,
3002 CFG_ENABLE_OVERLAP_CH_MAX),
3003
3004 REG_VARIABLE(CFG_REG_CHANGE_DEF_COUNTRY_NAME, WLAN_PARAM_Integer,
3005 struct hdd_config, fRegChangeDefCountry,
3006 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3007 CFG_REG_CHANGE_DEF_COUNTRY_DEFAULT,
3008 CFG_REG_CHANGE_DEF_COUNTRY_MIN,
3009 CFG_REG_CHANGE_DEF_COUNTRY_MAX),
3010
gaoleze5108942017-03-31 16:56:42 +08003011 REG_VARIABLE(CFG_ACS_WITH_MORE_PARAM_NAME, WLAN_PARAM_Integer,
3012 struct hdd_config, acs_with_more_param,
3013 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3014 CFG_ACS_WITH_MORE_PARAM_DEFAULT,
3015 CFG_ACS_WITH_MORE_PARAM_MIN,
3016 CFG_ACS_WITH_MORE_PARAM_MAX),
3017
3018 REG_VARIABLE(CFG_AUTO_CHANNEL_SELECT_WEIGHT, WLAN_PARAM_HexInteger,
3019 struct hdd_config, auto_channel_select_weight,
3020 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3021 CFG_AUTO_CHANNEL_SELECT_WEIGHT_DEFAULT,
3022 CFG_AUTO_CHANNEL_SELECT_WEIGHT_MIN,
3023 CFG_AUTO_CHANNEL_SELECT_WEIGHT_MAX),
3024
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003025#ifdef QCA_LL_LEGACY_TX_FLOW_CONTROL
3026 REG_VARIABLE(CFG_LL_TX_FLOW_LWM, WLAN_PARAM_Integer,
3027 struct hdd_config, TxFlowLowWaterMark,
3028 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3029 CFG_LL_TX_FLOW_LWM_DEFAULT,
3030 CFG_LL_TX_FLOW_LWM_MIN,
3031 CFG_LL_TX_FLOW_LWM_MAX),
3032 REG_VARIABLE(CFG_LL_TX_FLOW_HWM_OFFSET, WLAN_PARAM_Integer,
3033 struct hdd_config, TxFlowHighWaterMarkOffset,
3034 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3035 CFG_LL_TX_FLOW_HWM_OFFSET_DEFAULT,
3036 CFG_LL_TX_FLOW_HWM_OFFSET_MIN,
3037 CFG_LL_TX_FLOW_HWM_OFFSET_MAX),
3038 REG_VARIABLE(CFG_LL_TX_FLOW_MAX_Q_DEPTH, WLAN_PARAM_Integer,
3039 struct hdd_config, TxFlowMaxQueueDepth,
3040 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3041 CFG_LL_TX_FLOW_MAX_Q_DEPTH_DEFAULT,
3042 CFG_LL_TX_FLOW_MAX_Q_DEPTH_MIN,
3043 CFG_LL_TX_FLOW_MAX_Q_DEPTH_MAX),
3044 REG_VARIABLE(CFG_LL_TX_LBW_FLOW_LWM, WLAN_PARAM_Integer,
3045 struct hdd_config, TxLbwFlowLowWaterMark,
3046 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3047 CFG_LL_TX_LBW_FLOW_LWM_DEFAULT,
3048 CFG_LL_TX_LBW_FLOW_LWM_MIN,
3049 CFG_LL_TX_LBW_FLOW_LWM_MAX),
3050
3051 REG_VARIABLE(CFG_LL_TX_LBW_FLOW_HWM_OFFSET, WLAN_PARAM_Integer,
3052 struct hdd_config, TxLbwFlowHighWaterMarkOffset,
3053 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3054 CFG_LL_TX_LBW_FLOW_HWM_OFFSET_DEFAULT,
3055 CFG_LL_TX_LBW_FLOW_HWM_OFFSET_MIN,
3056 CFG_LL_TX_LBW_FLOW_HWM_OFFSET_MAX),
3057
3058 REG_VARIABLE(CFG_LL_TX_LBW_FLOW_MAX_Q_DEPTH, WLAN_PARAM_Integer,
3059 struct hdd_config, TxLbwFlowMaxQueueDepth,
3060 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3061 CFG_LL_TX_LBW_FLOW_MAX_Q_DEPTH_DEFAULT,
3062 CFG_LL_TX_LBW_FLOW_MAX_Q_DEPTH_MIN,
3063 CFG_LL_TX_LBW_FLOW_MAX_Q_DEPTH_MAX),
3064
3065 REG_VARIABLE(CFG_LL_TX_HBW_FLOW_LWM, WLAN_PARAM_Integer,
3066 struct hdd_config, TxHbwFlowLowWaterMark,
3067 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3068 CFG_LL_TX_HBW_FLOW_LWM_DEFAULT,
3069 CFG_LL_TX_HBW_FLOW_LWM_MIN,
3070 CFG_LL_TX_HBW_FLOW_LWM_MAX),
3071
3072 REG_VARIABLE(CFG_LL_TX_HBW_FLOW_HWM_OFFSET, WLAN_PARAM_Integer,
3073 struct hdd_config, TxHbwFlowHighWaterMarkOffset,
3074 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3075 CFG_LL_TX_HBW_FLOW_HWM_OFFSET_DEFAULT,
3076 CFG_LL_TX_HBW_FLOW_HWM_OFFSET_MIN,
3077 CFG_LL_TX_HBW_FLOW_HWM_OFFSET_MAX),
3078
3079 REG_VARIABLE(CFG_LL_TX_HBW_FLOW_MAX_Q_DEPTH, WLAN_PARAM_Integer,
3080 struct hdd_config, TxHbwFlowMaxQueueDepth,
3081 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3082 CFG_LL_TX_HBW_FLOW_MAX_Q_DEPTH_DEFAULT,
3083 CFG_LL_TX_HBW_FLOW_MAX_Q_DEPTH_MIN,
3084 CFG_LL_TX_HBW_FLOW_MAX_Q_DEPTH_MAX),
3085#endif /* QCA_LL_LEGACY_TX_FLOW_CONTROL */
3086#ifdef QCA_LL_TX_FLOW_CONTROL_V2
3087
3088 REG_VARIABLE(CFG_LL_TX_FLOW_STOP_QUEUE_TH, WLAN_PARAM_Integer,
3089 struct hdd_config, TxFlowStopQueueThreshold,
3090 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3091 CFG_LL_TX_FLOW_STOP_QUEUE_TH_DEFAULT,
3092 CFG_LL_TX_FLOW_STOP_QUEUE_TH_MIN,
3093 CFG_LL_TX_FLOW_STOP_QUEUE_TH_MAX),
3094
3095 REG_VARIABLE(CFG_LL_TX_FLOW_START_QUEUE_OFFSET, WLAN_PARAM_Integer,
3096 struct hdd_config, TxFlowStartQueueOffset,
3097 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3098 CFG_LL_TX_FLOW_START_QUEUE_OFFSET_DEFAULT,
3099 CFG_LL_TX_FLOW_START_QUEUE_OFFSET_MIN,
3100 CFG_LL_TX_FLOW_START_QUEUE_OFFSET_MAX),
3101
3102#endif
3103 REG_VARIABLE(CFG_INITIAL_DWELL_TIME_NAME, WLAN_PARAM_Integer,
3104 struct hdd_config, nInitialDwellTime,
3105 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3106 CFG_INITIAL_DWELL_TIME_DEFAULT,
3107 CFG_INITIAL_DWELL_TIME_MIN,
3108 CFG_INITIAL_DWELL_TIME_MAX),
3109
3110 REG_VARIABLE(CFG_INITIAL_SCAN_NO_DFS_CHNL_NAME, WLAN_PARAM_Integer,
3111 struct hdd_config, initial_scan_no_dfs_chnl,
3112 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3113 CFG_INITIAL_SCAN_NO_DFS_CHNL_DEFAULT,
3114 CFG_INITIAL_SCAN_NO_DFS_CHNL_MIN,
3115 CFG_INITIAL_SCAN_NO_DFS_CHNL_MAX),
3116
3117 REG_VARIABLE(CFG_SAP_MAX_OFFLOAD_PEERS, WLAN_PARAM_Integer,
3118 struct hdd_config, apMaxOffloadPeers,
3119 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
3120 CFG_SAP_MAX_OFFLOAD_PEERS_DEFAULT,
3121 CFG_SAP_MAX_OFFLOAD_PEERS_MIN,
3122 CFG_SAP_MAX_OFFLOAD_PEERS_MAX),
3123
3124 REG_VARIABLE(CFG_SAP_MAX_OFFLOAD_REORDER_BUFFS, WLAN_PARAM_Integer,
3125 struct hdd_config, apMaxOffloadReorderBuffs,
3126 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
3127 CFG_SAP_MAX_OFFLOAD_REORDER_BUFFS_DEFAULT,
3128 CFG_SAP_MAX_OFFLOAD_REORDER_BUFFS_MIN,
3129 CFG_SAP_MAX_OFFLOAD_REORDER_BUFFS_MAX),
3130
3131 REG_VARIABLE(CFG_ADVERTISE_CONCURRENT_OPERATION_NAME,
3132 WLAN_PARAM_Integer,
3133 struct hdd_config, advertiseConcurrentOperation,
3134 VAR_FLAGS_OPTIONAL,
3135 CFG_ADVERTISE_CONCURRENT_OPERATION_DEFAULT,
3136 CFG_ADVERTISE_CONCURRENT_OPERATION_MIN,
3137 CFG_ADVERTISE_CONCURRENT_OPERATION_MAX),
3138
3139 REG_VARIABLE(CFG_ENABLE_MEMORY_DEEP_SLEEP, WLAN_PARAM_Integer,
3140 struct hdd_config, enableMemDeepSleep,
3141 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3142 CFG_ENABLE_MEMORY_DEEP_SLEEP_DEFAULT,
3143 CFG_ENABLE_MEMORY_DEEP_SLEEP_MIN,
3144 CFG_ENABLE_MEMORY_DEEP_SLEEP_MAX),
3145
Dustin Brown732ab9c2017-06-15 13:24:09 -07003146 REG_VARIABLE(CFG_ENABLE_CCK_TX_FIR_OVERRIDE_NAME, WLAN_PARAM_Integer,
3147 struct hdd_config, enable_cck_tx_fir_override,
3148 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3149 CFG_ENABLE_CCK_TX_FIR_OVERRIDE_DEFAULT,
3150 CFG_ENABLE_CCK_TX_FIR_OVERRIDE_MIN,
3151 CFG_ENABLE_CCK_TX_FIR_OVERRIDE_MAX),
3152
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003153 REG_VARIABLE(CFG_DEFAULT_RATE_INDEX_24GH, WLAN_PARAM_Integer,
3154 struct hdd_config, defaultRateIndex24Ghz,
3155 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3156 CFG_DEFAULT_RATE_INDEX_24GH_DEFAULT,
3157 CFG_DEFAULT_RATE_INDEX_24GH_MIN,
3158 CFG_DEFAULT_RATE_INDEX_24GH_MAX),
3159
3160#ifdef MEMORY_DEBUG
3161 REG_VARIABLE(CFG_ENABLE_MEMORY_DEBUG_NAME, WLAN_PARAM_Integer,
3162 struct hdd_config, IsMemoryDebugSupportEnabled,
3163 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3164 CFG_ENABLE_MEMORY_DEBUG_DEFAULT,
3165 CFG_ENABLE_MEMORY_DEBUG_MIN,
3166 CFG_ENABLE_MEMORY_DEBUG_MAX),
3167#endif
3168
3169 REG_VARIABLE(CFG_DEBUG_P2P_REMAIN_ON_CHANNEL_NAME, WLAN_PARAM_Integer,
3170 struct hdd_config, debugP2pRemainOnChannel,
3171 VAR_FLAGS_OPTIONAL,
3172 CFG_DEBUG_P2P_REMAIN_ON_CHANNEL_DEFAULT,
3173 CFG_DEBUG_P2P_REMAIN_ON_CHANNEL_MIN,
3174 CFG_DEBUG_P2P_REMAIN_ON_CHANNEL_MAX),
3175
3176 REG_VARIABLE(CFG_ENABLE_PACKET_LOG, WLAN_PARAM_Integer,
3177 struct hdd_config, enablePacketLog,
3178 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3179 CFG_ENABLE_PACKET_LOG_DEFAULT,
3180 CFG_ENABLE_PACKET_LOG_MIN,
3181 CFG_ENABLE_PACKET_LOG_MAX),
3182
3183#ifdef WLAN_FEATURE_ROAM_OFFLOAD
3184 REG_VARIABLE(CFG_ROAMING_OFFLOAD_NAME, WLAN_PARAM_Integer,
3185 struct hdd_config, isRoamOffloadEnabled,
3186 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
3187 CFG_ROAMING_OFFLOAD_DEFAULT,
3188 CFG_ROAMING_OFFLOAD_MIN,
3189 CFG_ROAMING_OFFLOAD_MAX),
3190#endif
3191#ifdef MSM_PLATFORM
3192 REG_VARIABLE(CFG_BUS_BANDWIDTH_HIGH_THRESHOLD, WLAN_PARAM_Integer,
3193 struct hdd_config, busBandwidthHighThreshold,
3194 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3195 CFG_BUS_BANDWIDTH_HIGH_THRESHOLD_DEFAULT,
3196 CFG_BUS_BANDWIDTH_HIGH_THRESHOLD_MIN,
3197 CFG_BUS_BANDWIDTH_HIGH_THRESHOLD_MAX),
3198
3199 REG_VARIABLE(CFG_BUS_BANDWIDTH_MEDIUM_THRESHOLD, WLAN_PARAM_Integer,
3200 struct hdd_config, busBandwidthMediumThreshold,
3201 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3202 CFG_BUS_BANDWIDTH_MEDIUM_THRESHOLD_DEFAULT,
3203 CFG_BUS_BANDWIDTH_MEDIUM_THRESHOLD_MIN,
3204 CFG_BUS_BANDWIDTH_MEDIUM_THRESHOLD_MAX),
3205
3206 REG_VARIABLE(CFG_BUS_BANDWIDTH_LOW_THRESHOLD, WLAN_PARAM_Integer,
3207 struct hdd_config, busBandwidthLowThreshold,
3208 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3209 CFG_BUS_BANDWIDTH_LOW_THRESHOLD_DEFAULT,
3210 CFG_BUS_BANDWIDTH_LOW_THRESHOLD_MIN,
3211 CFG_BUS_BANDWIDTH_LOW_THRESHOLD_MAX),
3212
3213 REG_VARIABLE(CFG_BUS_BANDWIDTH_COMPUTE_INTERVAL, WLAN_PARAM_Integer,
3214 struct hdd_config, busBandwidthComputeInterval,
3215 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3216 CFG_BUS_BANDWIDTH_COMPUTE_INTERVAL_DEFAULT,
3217 CFG_BUS_BANDWIDTH_COMPUTE_INTERVAL_MIN,
3218 CFG_BUS_BANDWIDTH_COMPUTE_INTERVAL_MAX),
Ravi Joshie2331e82015-07-01 18:18:54 -07003219
Prakash Manjunathappae73e3b52018-02-27 18:56:22 -08003220 REG_VARIABLE(CFG_ENABLE_TCP_LIMIT_OUTPUT, WLAN_PARAM_Integer,
3221 struct hdd_config, enable_tcp_limit_output,
3222 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3223 CFG_ENABLE_TCP_LIMIT_OUTPUT_DEFAULT,
3224 CFG_ENABLE_TCP_LIMIT_OUTPUT_MIN,
3225 CFG_ENABLE_TCP_LIMIT_OUTPUT_MAX),
3226
Mohit Khanna6272fb682017-04-13 09:34:36 -07003227 REG_VARIABLE(CFG_ENABLE_TCP_ADV_WIN_SCALE, WLAN_PARAM_Integer,
3228 struct hdd_config, enable_tcp_adv_win_scale,
3229 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3230 CFG_ENABLE_TCP_ADV_WIN_SCALE_DEFAULT,
3231 CFG_ENABLE_TCP_ADV_WIN_SCALE_MIN,
3232 CFG_ENABLE_TCP_ADV_WIN_SCALE_MAX),
3233
Ravi Joshie2331e82015-07-01 18:18:54 -07003234 REG_VARIABLE(CFG_ENABLE_TCP_DELACK, WLAN_PARAM_Integer,
3235 struct hdd_config, enable_tcp_delack,
3236 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3237 CFG_ENABLE_TCP_DELACK_DEFAULT,
3238 CFG_ENABLE_TCP_DELACK_MIN,
3239 CFG_ENABLE_TCP_DELACK_MAX),
3240
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003241 REG_VARIABLE(CFG_TCP_DELACK_THRESHOLD_HIGH, WLAN_PARAM_Integer,
3242 struct hdd_config, tcpDelackThresholdHigh,
3243 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3244 CFG_TCP_DELACK_THRESHOLD_HIGH_DEFAULT,
3245 CFG_TCP_DELACK_THRESHOLD_HIGH_MIN,
3246 CFG_TCP_DELACK_THRESHOLD_HIGH_MAX),
Ravi Joshie2331e82015-07-01 18:18:54 -07003247
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003248 REG_VARIABLE(CFG_TCP_DELACK_THRESHOLD_LOW, WLAN_PARAM_Integer,
3249 struct hdd_config, tcpDelackThresholdLow,
3250 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3251 CFG_TCP_DELACK_THRESHOLD_LOW_DEFAULT,
3252 CFG_TCP_DELACK_THRESHOLD_LOW_MIN,
3253 CFG_TCP_DELACK_THRESHOLD_LOW_MAX),
Mohit Khannae71e2262015-11-10 09:37:24 -08003254
Ravi Joshib89e7f72016-09-07 13:43:15 -07003255 REG_VARIABLE(CFG_TCP_DELACK_TIMER_COUNT, WLAN_PARAM_Integer,
3256 struct hdd_config, tcp_delack_timer_count,
3257 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3258 CFG_TCP_DELACK_TIMER_COUNT_DEFAULT,
3259 CFG_TCP_DELACK_TIMER_COUNT_MIN,
3260 CFG_TCP_DELACK_TIMER_COUNT_MAX),
Mohit Khannae71e2262015-11-10 09:37:24 -08003261
Ravi Joshib89e7f72016-09-07 13:43:15 -07003262 REG_VARIABLE(CFG_TCP_TX_HIGH_TPUT_THRESHOLD_NAME, WLAN_PARAM_Integer,
3263 struct hdd_config, tcp_tx_high_tput_thres,
3264 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3265 CFG_TCP_TX_HIGH_TPUT_THRESHOLD_DEFAULT,
3266 CFG_TCP_TX_HIGH_TPUT_THRESHOLD_MIN,
3267 CFG_TCP_TX_HIGH_TPUT_THRESHOLD_MAX),
Mohit Khannaca4173b2017-09-12 21:52:19 -07003268 REG_VARIABLE(CFG_PERIODIC_STATS_DISPLAY_TIME_NAME, WLAN_PARAM_Integer,
3269 struct hdd_config, periodic_stats_disp_time,
3270 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3271 CFG_PERIODIC_STATS_DISPLAY_TIME_DEFAULT,
3272 CFG_PERIODIC_STATS_DISPLAY_TIME_MIN,
3273 CFG_PERIODIC_STATS_DISPLAY_TIME_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003274#endif
3275
3276 REG_VARIABLE(CFG_ENABLE_FW_LOG_TYPE, WLAN_PARAM_Integer,
3277 struct hdd_config, enableFwLogType,
3278 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3279 CFG_ENABLE_FW_LOG_TYPE_DEFAULT,
3280 CFG_ENABLE_FW_LOG_TYPE_MIN,
3281 CFG_ENABLE_FW_LOG_TYPE_MAX),
3282
3283 REG_VARIABLE(CFG_ENABLE_FW_DEBUG_LOG_LEVEL, WLAN_PARAM_Integer,
3284 struct hdd_config, enableFwLogLevel,
3285 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3286 CFG_ENABLE_FW_DEBUG_LOG_LEVEL_DEFAULT,
3287 CFG_ENABLE_FW_DEBUG_LOG_LEVEL_MIN,
3288 CFG_ENABLE_FW_DEBUG_LOG_LEVEL_MAX),
3289
Rajeev Kumar Sirasanagandla0be56df2016-09-08 19:19:47 +05303290 REG_VARIABLE(CFG_ENABLE_FW_RTS_PROFILE, WLAN_PARAM_Integer,
3291 struct hdd_config, rts_profile,
3292 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3293 CFG_ENABLE_FW_RTS_PROFILE_DEFAULT,
3294 CFG_ENABLE_FW_RTS_PROFILE_MIN,
3295 CFG_ENABLE_FW_RTS_PROFILE_MAX),
3296
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003297 REG_VARIABLE_STRING(CFG_ENABLE_FW_MODULE_LOG_LEVEL, WLAN_PARAM_String,
3298 struct hdd_config, enableFwModuleLogLevel,
3299 VAR_FLAGS_OPTIONAL,
3300 (void *)CFG_ENABLE_FW_MODULE_LOG_DEFAULT),
3301
Sourav Mohapatra57006c72017-11-19 16:15:55 +05303302 REG_VARIABLE_STRING(CFG_ENABLE_CONCURRENT_STA, WLAN_PARAM_String,
3303 struct hdd_config, enableConcurrentSTA,
3304 VAR_FLAGS_NONE,
3305 (void *)CFG_ENABLE_CONCURRENT_STA_DEFAULT),
3306
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003307#ifdef WLAN_FEATURE_11W
3308 REG_VARIABLE(CFG_PMF_SA_QUERY_MAX_RETRIES_NAME, WLAN_PARAM_Integer,
3309 struct hdd_config, pmfSaQueryMaxRetries,
3310 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3311 CFG_PMF_SA_QUERY_MAX_RETRIES_DEFAULT,
3312 CFG_PMF_SA_QUERY_MAX_RETRIES_MIN,
3313 CFG_PMF_SA_QUERY_MAX_RETRIES_MAX),
3314
3315 REG_VARIABLE(CFG_PMF_SA_QUERY_RETRY_INTERVAL_NAME, WLAN_PARAM_Integer,
3316 struct hdd_config, pmfSaQueryRetryInterval,
3317 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3318 CFG_PMF_SA_QUERY_RETRY_INTERVAL_DEFAULT,
3319 CFG_PMF_SA_QUERY_RETRY_INTERVAL_MIN,
3320 CFG_PMF_SA_QUERY_RETRY_INTERVAL_MAX),
3321#endif
3322 REG_VARIABLE(CFG_MAX_CONCURRENT_CONNECTIONS_NAME, WLAN_PARAM_Integer,
3323 struct hdd_config, gMaxConcurrentActiveSessions,
3324 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3325 CFG_MAX_CONCURRENT_CONNECTIONS_DEFAULT,
3326 CFG_MAX_CONCURRENT_CONNECTIONS_MIN,
3327 CFG_MAX_CONCURRENT_CONNECTIONS_MAX),
3328
Himanshu Agarwalb229a142017-12-21 10:16:45 +05303329#ifdef WLAN_SUPPORT_GREEN_AP
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003330 REG_VARIABLE(CFG_ENABLE_GREEN_AP_FEATURE, WLAN_PARAM_Integer,
3331 struct hdd_config, enableGreenAP,
3332 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3333 CFG_ENABLE_GREEN_AP_FEATURE_DEFAULT,
3334 CFG_ENABLE_GREEN_AP_FEATURE_MIN,
3335 CFG_ENABLE_GREEN_AP_FEATURE_MAX),
Ryan Hsucb118cf2015-11-09 16:03:53 -08003336 REG_VARIABLE(CFG_ENABLE_EGAP_ENABLE_FEATURE, WLAN_PARAM_Integer,
3337 struct hdd_config, enable_egap,
3338 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3339 CFG_ENABLE_EGAP_ENABLE_FEATURE_DEFAULT,
3340 CFG_ENABLE_EGAP_ENABLE_FEATURE_MIN,
3341 CFG_ENABLE_EGAP_ENABLE_FEATURE_MAX),
3342 REG_VARIABLE(CFG_ENABLE_EGAP_INACT_TIME_FEATURE, WLAN_PARAM_Integer,
3343 struct hdd_config, egap_inact_time,
3344 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3345 CFG_ENABLE_EGAP_INACT_TIME_FEATURE_DEFAULT,
3346 CFG_ENABLE_EGAP_INACT_TIME_FEATURE_MIN,
3347 CFG_ENABLE_EGAP_INACT_TIME_FEATURE_MAX),
3348 REG_VARIABLE(CFG_ENABLE_EGAP_WAIT_TIME_FEATURE, WLAN_PARAM_Integer,
3349 struct hdd_config, egap_wait_time,
3350 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3351 CFG_ENABLE_EGAP_WAIT_TIME_FEATURE_DEFAULT,
3352 CFG_ENABLE_EGAP_WAIT_TIME_FEATURE_MIN,
3353 CFG_ENABLE_EGAP_WAIT_TIME_FEATURE_MAX),
3354 REG_VARIABLE(CFG_ENABLE_EGAP_FLAGS_FEATURE, WLAN_PARAM_Integer,
3355 struct hdd_config, egap_feature_flag,
3356 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3357 CFG_ENABLE_EGAP_FLAGS_FEATURE_DEFAULT,
3358 CFG_ENABLE_EGAP_FLAGS_FEATURE_MIN,
3359 CFG_ENABLE_EGAP_FLAGS_FEATURE_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003360#endif
3361
SaidiReddy Yenugacc733af2016-11-09 17:45:42 +05303362 REG_VARIABLE(CFG_ENABLE_CRASH_INJECT, WLAN_PARAM_Integer,
3363 struct hdd_config, crash_inject_enabled,
3364 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3365 CFG_ENABLE_CRASH_INJECT_DEFAULT,
3366 CFG_ENABLE_CRASH_INJECT_MIN,
3367 CFG_ENABLE_CRASH_INJECT_MAX),
3368
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003369 REG_VARIABLE(CFG_IGNORE_CAC_NAME, WLAN_PARAM_Integer,
3370 struct hdd_config, ignoreCAC,
3371 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3372 CFG_IGNORE_CAC_DEFAULT,
3373 CFG_IGNORE_CAC_MIN,
3374 CFG_IGNORE_CAC_MAX),
3375
3376 REG_VARIABLE(CFG_ENABLE_SAP_DFS_CH_SIFS_BURST_NAME, WLAN_PARAM_Integer,
3377 struct hdd_config, IsSapDfsChSifsBurstEnabled,
3378 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3379 CFG_ENABLE_SAP_DFS_CH_SIFS_BURST_DEFAULT,
3380 CFG_ENABLE_SAP_DFS_CH_SIFS_BURST_MIN,
3381 CFG_ENABLE_SAP_DFS_CH_SIFS_BURST_MAX),
3382
3383 REG_VARIABLE(CFG_DFS_RADAR_PRI_MULTIPLIER_NAME, WLAN_PARAM_Integer,
3384 struct hdd_config, dfsRadarPriMultiplier,
3385 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3386 CFG_DFS_RADAR_PRI_MULTIPLIER_DEFAULT,
3387 CFG_DFS_RADAR_PRI_MULTIPLIER_MIN,
3388 CFG_DFS_RADAR_PRI_MULTIPLIER_MAX),
3389
3390 REG_VARIABLE(CFG_REORDER_OFFLOAD_SUPPORT_NAME, WLAN_PARAM_Integer,
3391 struct hdd_config, reorderOffloadSupport,
3392 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3393 CFG_REORDER_OFFLOAD_SUPPORT_DEFAULT,
3394 CFG_REORDER_OFFLOAD_SUPPORT_MIN,
3395 CFG_REORDER_OFFLOAD_SUPPORT_MAX),
3396
3397 REG_VARIABLE(CFG_IPA_UC_TX_BUF_COUNT_NAME, WLAN_PARAM_Integer,
3398 struct hdd_config, IpaUcTxBufCount,
3399 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
3400 CFG_IPA_UC_TX_BUF_COUNT_DEFAULT,
3401 CFG_IPA_UC_TX_BUF_COUNT_MIN,
3402 CFG_IPA_UC_TX_BUF_COUNT_MAX),
3403
3404 REG_VARIABLE(CFG_IPA_UC_TX_BUF_SIZE_NAME, WLAN_PARAM_Integer,
3405 struct hdd_config, IpaUcTxBufSize,
3406 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
3407 CFG_IPA_UC_TX_BUF_SIZE_DEFAULT,
3408 CFG_IPA_UC_TX_BUF_SIZE_MIN,
3409 CFG_IPA_UC_TX_BUF_SIZE_MAX),
3410
3411 REG_VARIABLE(CFG_IPA_UC_RX_IND_RING_COUNT_NAME, WLAN_PARAM_Integer,
3412 struct hdd_config, IpaUcRxIndRingCount,
3413 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
3414 CFG_IPA_UC_RX_IND_RING_COUNT_DEFAULT,
3415 CFG_IPA_UC_RX_IND_RING_COUNT_MIN,
3416 CFG_IPA_UC_RX_IND_RING_COUNT_MAX),
3417
3418 REG_VARIABLE(CFG_IPA_UC_TX_PARTITION_BASE_NAME, WLAN_PARAM_Integer,
3419 struct hdd_config, IpaUcTxPartitionBase,
3420 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
3421 CFG_IPA_UC_TX_PARTITION_BASE_DEFAULT,
3422 CFG_IPA_UC_TX_PARTITION_BASE_MIN,
3423 CFG_IPA_UC_TX_PARTITION_BASE_MAX),
3424#ifdef WLAN_LOGGING_SOCK_SVC_ENABLE
3425 REG_VARIABLE(CFG_WLAN_LOGGING_SUPPORT_NAME, WLAN_PARAM_Integer,
Nirav Shaheb017be2018-02-15 11:20:58 +05303426 struct hdd_config, wlan_logging_enable,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003427 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3428 CFG_WLAN_LOGGING_SUPPORT_DEFAULT,
3429 CFG_WLAN_LOGGING_SUPPORT_DISABLE,
3430 CFG_WLAN_LOGGING_SUPPORT_ENABLE),
3431
Srinivas Girigowda8187e792017-03-03 11:50:59 -08003432 REG_VARIABLE(CFG_WLAN_LOGGING_CONSOLE_SUPPORT_NAME,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003433 WLAN_PARAM_Integer,
Nirav Shaheb017be2018-02-15 11:20:58 +05303434 struct hdd_config, wlan_logging_to_console,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003435 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
Srinivas Girigowda8187e792017-03-03 11:50:59 -08003436 CFG_WLAN_LOGGING_CONSOLE_SUPPORT_DEFAULT,
3437 CFG_WLAN_LOGGING_CONSOLE_SUPPORT_DISABLE,
3438 CFG_WLAN_LOGGING_CONSOLE_SUPPORT_ENABLE),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003439#endif /* WLAN_LOGGING_SOCK_SVC_ENABLE */
3440
3441 REG_VARIABLE(CFG_ENABLE_SIFS_BURST, WLAN_PARAM_Integer,
3442 struct hdd_config, enableSifsBurst,
3443 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3444 CFG_ENABLE_SIFS_BURST_DEFAULT,
3445 CFG_ENABLE_SIFS_BURST_MIN,
3446 CFG_ENABLE_SIFS_BURST_MAX),
3447
3448#ifdef WLAN_FEATURE_LPSS
3449 REG_VARIABLE(CFG_ENABLE_LPASS_SUPPORT, WLAN_PARAM_Integer,
Komal Seelamc11bb222016-01-27 18:57:10 +05303450 struct hdd_config, enable_lpass_support,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003451 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3452 CFG_ENABLE_LPASS_SUPPORT_DEFAULT,
3453 CFG_ENABLE_LPASS_SUPPORT_MIN,
3454 CFG_ENABLE_LPASS_SUPPORT_MAX),
3455#endif
3456
3457#ifdef WLAN_FEATURE_NAN
3458 REG_VARIABLE(CFG_ENABLE_NAN_SUPPORT, WLAN_PARAM_Integer,
3459 struct hdd_config, enable_nan_support,
3460 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3461 CFG_ENABLE_NAN_SUPPORT_DEFAULT,
3462 CFG_ENABLE_NAN_SUPPORT_MIN,
3463 CFG_ENABLE_NAN_SUPPORT_MAX),
3464#endif
3465
3466 REG_VARIABLE(CFG_ENABLE_SELF_RECOVERY, WLAN_PARAM_Integer,
3467 struct hdd_config, enableSelfRecovery,
3468 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3469 CFG_ENABLE_SELF_RECOVERY_DEFAULT,
3470 CFG_ENABLE_SELF_RECOVERY_MIN,
3471 CFG_ENABLE_SELF_RECOVERY_MAX),
3472
3473#ifdef FEATURE_WLAN_FORCE_SAP_SCC
3474 REG_VARIABLE(CFG_SAP_SCC_CHAN_AVOIDANCE, WLAN_PARAM_Integer,
3475 struct hdd_config, SapSccChanAvoidance,
3476 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3477 CFG_SAP_SCC_CHAN_AVOIDANCE_DEFAULT,
3478 CFG_SAP_SCC_CHAN_AVOIDANCE_MIN,
3479 CFG_SAP_SCC_CHAN_AVOIDANCE_MAX),
3480#endif /* FEATURE_WLAN_FORCE_SAP_SCC */
3481
3482 REG_VARIABLE(CFG_ENABLE_SAP_SUSPEND, WLAN_PARAM_Integer,
Jeff Johnson60cbd2d2017-11-03 18:26:28 -07003483 struct hdd_config, enable_sap_suspend,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003484 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3485 CFG_ENABLE_SAP_SUSPEND_DEFAULT,
3486 CFG_ENABLE_SAP_SUSPEND_MIN,
3487 CFG_ENABLE_SAP_SUSPEND_MAX),
3488
3489#ifdef WLAN_FEATURE_EXTWOW_SUPPORT
3490 REG_VARIABLE(CFG_EXTWOW_GO_TO_SUSPEND, WLAN_PARAM_Integer,
3491 struct hdd_config, extWowGotoSuspend,
3492 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3493 CFG_EXTWOW_GO_TO_SUSPEND_DEFAULT,
3494 CFG_EXTWOW_GO_TO_SUSPEND_MIN,
3495 CFG_EXTWOW_GO_TO_SUSPEND_MAX),
3496
3497 REG_VARIABLE(CFG_EXTWOW_APP1_WAKE_PIN_NUMBER, WLAN_PARAM_Integer,
3498 struct hdd_config, extWowApp1WakeupPinNumber,
3499 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3500 CFG_EXTWOW_APP1_WAKE_PIN_NUMBER_DEFAULT,
3501 CFG_EXTWOW_APP1_WAKE_PIN_NUMBER_MIN,
3502 CFG_EXTWOW_APP1_WAKE_PIN_NUMBER_MAX),
3503
3504 REG_VARIABLE(CFG_EXTWOW_APP2_WAKE_PIN_NUMBER, WLAN_PARAM_Integer,
3505 struct hdd_config, extWowApp2WakeupPinNumber,
3506 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3507 CFG_EXTWOW_APP2_WAKE_PIN_NUMBER_DEFAULT,
3508 CFG_EXTWOW_APP2_WAKE_PIN_NUMBER_MIN,
3509 CFG_EXTWOW_APP2_WAKE_PIN_NUMBER_MAX),
3510
3511 REG_VARIABLE(CFG_EXTWOW_KA_INIT_PING_INTERVAL, WLAN_PARAM_Integer,
3512 struct hdd_config, extWowApp2KAInitPingInterval,
3513 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3514 CFG_EXTWOW_KA_INIT_PING_INTERVAL_DEFAULT,
3515 CFG_EXTWOW_KA_INIT_PING_INTERVAL_MIN,
3516 CFG_EXTWOW_KA_INIT_PING_INTERVAL_MAX),
3517
3518 REG_VARIABLE(CFG_EXTWOW_KA_MIN_PING_INTERVAL, WLAN_PARAM_Integer,
3519 struct hdd_config, extWowApp2KAMinPingInterval,
3520 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3521 CFG_EXTWOW_KA_MIN_PING_INTERVAL_DEFAULT,
3522 CFG_EXTWOW_KA_MIN_PING_INTERVAL_MIN,
3523 CFG_EXTWOW_KA_MIN_PING_INTERVAL_MAX),
3524
3525 REG_VARIABLE(CFG_EXTWOW_KA_MAX_PING_INTERVAL, WLAN_PARAM_Integer,
3526 struct hdd_config, extWowApp2KAMaxPingInterval,
3527 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3528 CFG_EXTWOW_KA_MAX_PING_INTERVAL_DEFAULT,
3529 CFG_EXTWOW_KA_MAX_PING_INTERVAL_MIN,
3530 CFG_EXTWOW_KA_MAX_PING_INTERVAL_MAX),
3531
3532 REG_VARIABLE(CFG_EXTWOW_KA_INC_PING_INTERVAL, WLAN_PARAM_Integer,
3533 struct hdd_config, extWowApp2KAIncPingInterval,
3534 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3535 CFG_EXTWOW_KA_INC_PING_INTERVAL_DEFAULT,
3536 CFG_EXTWOW_KA_INC_PING_INTERVAL_MIN,
3537 CFG_EXTWOW_KA_INC_PING_INTERVAL_MAX),
3538
3539 REG_VARIABLE(CFG_EXTWOW_TCP_SRC_PORT, WLAN_PARAM_Integer,
3540 struct hdd_config, extWowApp2TcpSrcPort,
3541 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3542 CFG_EXTWOW_TCP_SRC_PORT_DEFAULT,
3543 CFG_EXTWOW_TCP_SRC_PORT_MIN,
3544 CFG_EXTWOW_TCP_SRC_PORT_MAX),
3545
3546 REG_VARIABLE(CFG_EXTWOW_TCP_DST_PORT, WLAN_PARAM_Integer,
3547 struct hdd_config, extWowApp2TcpDstPort,
3548 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3549 CFG_EXTWOW_TCP_DST_PORT_DEFAULT,
3550 CFG_EXTWOW_TCP_DST_PORT_MIN,
3551 CFG_EXTWOW_TCP_DST_PORT_MAX),
3552
3553 REG_VARIABLE(CFG_EXTWOW_TCP_TX_TIMEOUT, WLAN_PARAM_Integer,
3554 struct hdd_config, extWowApp2TcpTxTimeout,
3555 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3556 CFG_EXTWOW_TCP_TX_TIMEOUT_DEFAULT,
3557 CFG_EXTWOW_TCP_TX_TIMEOUT_MIN,
3558 CFG_EXTWOW_TCP_TX_TIMEOUT_MAX),
3559
3560 REG_VARIABLE(CFG_EXTWOW_TCP_RX_TIMEOUT, WLAN_PARAM_Integer,
3561 struct hdd_config, extWowApp2TcpRxTimeout,
3562 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3563 CFG_EXTWOW_TCP_RX_TIMEOUT_DEFAULT,
3564 CFG_EXTWOW_TCP_RX_TIMEOUT_MIN,
3565 CFG_EXTWOW_TCP_RX_TIMEOUT_MAX),
3566#endif
3567 REG_VARIABLE(CFG_ENABLE_DEAUTH_TO_DISASSOC_MAP_NAME, WLAN_PARAM_Integer,
3568 struct hdd_config, gEnableDeauthToDisassocMap,
3569 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3570 CFG_ENABLE_DEAUTH_TO_DISASSOC_MAP_DEFAULT,
3571 CFG_ENABLE_DEAUTH_TO_DISASSOC_MAP_MIN,
3572 CFG_ENABLE_DEAUTH_TO_DISASSOC_MAP_MAX),
3573#ifdef DHCP_SERVER_OFFLOAD
3574 REG_VARIABLE(CFG_DHCP_SERVER_OFFLOAD_SUPPORT_NAME, WLAN_PARAM_Integer,
3575 struct hdd_config, enableDHCPServerOffload,
3576 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3577 CFG_DHCP_SERVER_OFFLOAD_SUPPORT_DEFAULT,
3578 CFG_DHCP_SERVER_OFFLOAD_SUPPORT_MIN,
3579 CFG_DHCP_SERVER_OFFLOAD_SUPPORT_MAX),
3580 REG_VARIABLE(CFG_DHCP_SERVER_OFFLOAD_NUM_CLIENT_NAME,
3581 WLAN_PARAM_Integer,
3582 struct hdd_config, dhcpMaxNumClients,
3583 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3584 CFG_DHCP_SERVER_OFFLOAD_NUM_CLIENT_DEFAULT,
3585 CFG_DHCP_SERVER_OFFLOAD_NUM_CLIENT_MIN,
3586 CFG_DHCP_SERVER_OFFLOAD_NUM_CLIENT_MAX),
3587 REG_VARIABLE_STRING(CFG_DHCP_SERVER_IP_NAME, WLAN_PARAM_String,
3588 struct hdd_config, dhcpServerIP,
3589 VAR_FLAGS_OPTIONAL,
3590 (void *)CFG_DHCP_SERVER_IP_DEFAULT),
3591#endif /* DHCP_SERVER_OFFLOAD */
3592
3593 REG_VARIABLE(CFG_ENABLE_DEAUTH_BEFORE_CONNECTION, WLAN_PARAM_Integer,
Jeff Johnson1ad3fbd2017-11-03 08:00:02 -07003594 struct hdd_config, send_deauth_before_con,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003595 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3596 CFG_ENABLE_DEAUTH_BEFORE_CONNECTION_DEFAULT,
3597 CFG_ENABLE_DEAUTH_BEFORE_CONNECTION_MIN,
3598 CFG_ENABLE_DEAUTH_BEFORE_CONNECTION_MAX),
3599
3600 REG_VARIABLE(CFG_ENABLE_MAC_ADDR_SPOOFING, WLAN_PARAM_Integer,
3601 struct hdd_config, enable_mac_spoofing,
3602 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3603 CFG_ENABLE_MAC_ADDR_SPOOFING_DEFAULT,
3604 CFG_ENABLE_MAC_ADDR_SPOOFING_MIN,
3605 CFG_ENABLE_MAC_ADDR_SPOOFING_MAX),
3606
3607 REG_VARIABLE(CFG_ENABLE_CUSTOM_CONC_RULE1_NAME, WLAN_PARAM_Integer,
3608 struct hdd_config, conc_custom_rule1,
3609 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
3610 CFG_ENABLE_CUSTOM_CONC_RULE1_NAME_DEFAULT,
3611 CFG_ENABLE_CUSTOM_CONC_RULE1_NAME_MIN,
3612 CFG_ENABLE_CUSTOM_CONC_RULE1_NAME_MAX),
3613
3614 REG_VARIABLE(CFG_ENABLE_CUSTOM_CONC_RULE2_NAME, WLAN_PARAM_Integer,
3615 struct hdd_config, conc_custom_rule2,
3616 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
3617 CFG_ENABLE_CUSTOM_CONC_RULE2_NAME_DEFAULT,
3618 CFG_ENABLE_CUSTOM_CONC_RULE2_NAME_MIN,
3619 CFG_ENABLE_CUSTOM_CONC_RULE2_NAME_MAX),
3620
3621 REG_VARIABLE(CFG_ENABLE_STA_CONNECTION_IN_5GHZ, WLAN_PARAM_Integer,
3622 struct hdd_config, is_sta_connection_in_5gz_enabled,
3623 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
3624 CFG_ENABLE_STA_CONNECTION_IN_5GHZ_DEFAULT,
3625 CFG_ENABLE_STA_CONNECTION_IN_5GHZ_MIN,
3626 CFG_ENABLE_STA_CONNECTION_IN_5GHZ_MAX),
3627
3628 REG_VARIABLE(CFG_STA_MIRACAST_MCC_REST_TIME_VAL, WLAN_PARAM_Integer,
3629 struct hdd_config, sta_miracast_mcc_rest_time_val,
3630 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3631 CFG_STA_MIRACAST_MCC_REST_TIME_VAL_DEFAULT,
3632 CFG_STA_MIRACAST_MCC_REST_TIME_VAL_MIN,
3633 CFG_STA_MIRACAST_MCC_REST_TIME_VAL_MAX),
3634
3635#ifdef FEATURE_AP_MCC_CH_AVOIDANCE
3636 REG_VARIABLE(CFG_SAP_MCC_CHANNEL_AVOIDANCE_NAME,
3637 WLAN_PARAM_Integer,
3638 struct hdd_config,
3639 sap_channel_avoidance,
3640 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
3641 CFG_SAP_MCC_CHANNEL_AVOIDANCE_DEFAULT,
3642 CFG_SAP_MCC_CHANNEL_AVOIDANCE_MIN,
3643 CFG_SAP_MCC_CHANNEL_AVOIDANCE_MAX),
3644#endif /* FEATURE_AP_MCC_CH_AVOIDANCE */
3645
3646 REG_VARIABLE(CFG_SAP_P2P_11AC_OVERRIDE_NAME, WLAN_PARAM_Integer,
3647 struct hdd_config, sap_p2p_11ac_override,
3648 VAR_FLAGS_OPTIONAL |
3649 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3650 CFG_SAP_P2P_11AC_OVERRIDE_DEFAULT,
3651 CFG_SAP_P2P_11AC_OVERRIDE_MIN,
3652 CFG_SAP_P2P_11AC_OVERRIDE_MAX),
3653
3654 REG_VARIABLE(CFG_ENABLE_RAMDUMP_COLLECTION, WLAN_PARAM_Integer,
3655 struct hdd_config, is_ramdump_enabled,
3656 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3657 CFG_ENABLE_RAMDUMP_COLLECTION_DEFAULT,
3658 CFG_ENABLE_RAMDUMP_COLLECTION_MIN,
3659 CFG_ENABLE_RAMDUMP_COLLECTION_MAX),
3660
3661 REG_VARIABLE(CFG_SAP_DOT11MC, WLAN_PARAM_Integer,
3662 struct hdd_config, sap_dot11mc,
3663 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3664 CFG_SAP_DOT11MC_DEFAULT,
3665 CFG_SAP_DOT11MC_MIN,
3666 CFG_SAP_DOT11MC_MAX),
3667
3668 REG_VARIABLE(CFG_ENABLE_NON_DFS_CHAN_ON_RADAR, WLAN_PARAM_Integer,
3669 struct hdd_config, prefer_non_dfs_on_radar,
3670 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3671 CFG_ENABLE_NON_DFS_CHAN_ON_RADAR_DEFAULT,
3672 CFG_ENABLE_NON_DFS_CHAN_ON_RADAR_MIN,
3673 CFG_ENABLE_NON_DFS_CHAN_ON_RADAR_MAX),
3674
Bala Venkateshf4928a42017-10-24 11:28:07 +05303675 REG_VARIABLE(CFG_P2P_LISTEN_DEFER_INTERVAL_NAME, WLAN_PARAM_Integer,
3676 struct hdd_config, p2p_listen_defer_interval,
3677 VAR_FLAGS_OPTIONAL |
3678 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3679 CFG_P2P_LISTEN_DEFER_INTERVAL_DEFAULT,
3680 CFG_P2P_LISTEN_DEFER_INTERVAL_MIN,
3681 CFG_P2P_LISTEN_DEFER_INTERVAL_MAX),
3682
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003683 REG_VARIABLE(CFG_MULTICAST_HOST_FW_MSGS, WLAN_PARAM_Integer,
3684 struct hdd_config, multicast_host_fw_msgs,
3685 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3686 CFG_MULTICAST_HOST_FW_MSGS_DEFAULT,
3687 CFG_MULTICAST_HOST_FW_MSGS_MIN,
3688 CFG_MULTICAST_HOST_FW_MSGS_MAX),
3689
3690 REG_VARIABLE(CFG_CONC_SYSTEM_PREF, WLAN_PARAM_Integer,
3691 struct hdd_config, conc_system_pref,
3692 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3693 CFG_CONC_SYSTEM_PREF_DEFAULT,
3694 CFG_CONC_SYSTEM_PREF_MIN,
3695 CFG_CONC_SYSTEM_PREF_MAX),
3696
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003697 REG_VARIABLE(CFG_TSO_ENABLED_NAME, WLAN_PARAM_Integer,
3698 struct hdd_config, tso_enable,
3699 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3700 CFG_TSO_ENABLED_DEFAULT,
3701 CFG_TSO_ENABLED_MIN,
3702 CFG_TSO_ENABLED_MAX),
3703
3704 REG_VARIABLE(CFG_LRO_ENABLED_NAME, WLAN_PARAM_Integer,
3705 struct hdd_config, lro_enable,
3706 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3707 CFG_LRO_ENABLED_DEFAULT,
3708 CFG_LRO_ENABLED_MIN,
3709 CFG_LRO_ENABLED_MAX),
3710
Rajeev Kumardd3bc602016-08-16 14:21:05 -07003711 REG_VARIABLE(CFG_BPF_PACKET_FILTER_OFFLOAD, WLAN_PARAM_Integer,
3712 struct hdd_config, bpf_packet_filter_enable,
3713 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3714 CFG_BPF_PACKET_FILTER_OFFLOAD_DEFAULT,
3715 CFG_BPF_PACKET_FILTER_OFFLOAD_MIN,
3716 CFG_BPF_PACKET_FILTER_OFFLOAD_MAX),
3717
Nitesh Shah61c10d92016-10-19 19:29:15 +05303718 REG_VARIABLE(CFG_TDLS_ENABLE_DEFER_TIMER, WLAN_PARAM_Integer,
3719 struct hdd_config, tdls_enable_defer_time,
3720 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3721 CFG_TDLS_ENABLE_DEFER_TIMER_DEFAULT,
3722 CFG_TDLS_ENABLE_DEFER_TIMER_MIN,
3723 CFG_TDLS_ENABLE_DEFER_TIMER_MAX),
3724
Manjunathappa Prakashfff753c2016-09-01 19:34:56 -07003725 REG_VARIABLE(CFG_FLOW_STEERING_ENABLED_NAME, WLAN_PARAM_Integer,
3726 struct hdd_config, flow_steering_enable,
3727 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3728 CFG_FLOW_STEERING_ENABLED_DEFAULT,
3729 CFG_FLOW_STEERING_ENABLED_MIN,
3730 CFG_FLOW_STEERING_ENABLED_MAX),
3731
Orhan K AKYILDIZ30e8cbc2017-08-11 18:00:28 -07003732 REG_VARIABLE(CFG_MAX_MSDUS_PER_RXIND_NAME, WLAN_PARAM_Integer,
3733 struct hdd_config, max_msdus_per_rxinorderind,
3734 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3735 CFG_MAX_MSDUS_PER_RXIND_DEFAULT,
3736 CFG_MAX_MSDUS_PER_RXIND_MIN,
3737 CFG_MAX_MSDUS_PER_RXIND_MAX),
3738
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003739 REG_VARIABLE(CFG_ACTIVE_MODE_OFFLOAD, WLAN_PARAM_Integer,
3740 struct hdd_config, active_mode_offload,
3741 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3742 CFG_ACTIVE_MODE_OFFLOAD_DEFAULT,
3743 CFG_ACTIVE_MODE_OFFLOAD_MIN,
3744 CFG_ACTIVE_MODE_OFFLOAD_MAX),
3745
3746 REG_VARIABLE(CFG_FINE_TIME_MEAS_CAPABILITY, WLAN_PARAM_HexInteger,
3747 struct hdd_config, fine_time_meas_cap,
3748 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3749 CFG_FINE_TIME_MEAS_CAPABILITY_DEFAULT,
3750 CFG_FINE_TIME_MEAS_CAPABILITY_MIN,
3751 CFG_FINE_TIME_MEAS_CAPABILITY_MAX),
3752
3753#ifdef WLAN_FEATURE_FASTPATH
3754 REG_VARIABLE(CFG_ENABLE_FASTPATH, WLAN_PARAM_Integer,
3755 struct hdd_config, fastpath_enable,
3756 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3757 CFG_ENABLE_FASTPATH_DEFAULT,
3758 CFG_ENABLE_FASTPATH_MIN,
3759 CFG_ENABLE_FASTPATH_MAX),
3760#endif
3761 REG_VARIABLE(CFG_MAX_SCAN_COUNT_NAME, WLAN_PARAM_Integer,
3762 struct hdd_config, max_scan_count,
3763 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3764 CFG_MAX_SCAN_COUNT_DEFAULT,
3765 CFG_MAX_SCAN_COUNT_MIN,
3766 CFG_MAX_SCAN_COUNT_MAX),
3767
3768 REG_VARIABLE(CFG_DOT11P_MODE_NAME, WLAN_PARAM_Integer,
3769 struct hdd_config, dot11p_mode,
3770 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3771 CFG_DOT11P_MODE_DEFAULT,
3772 CFG_DOT11P_MODE_MIN,
3773 CFG_DOT11P_MODE_MAX),
3774
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003775#ifdef FEATURE_WLAN_EXTSCAN
Manjeet Singh0f2ce5c2016-09-01 12:08:57 +05303776 REG_VARIABLE(CFG_EXTSCAN_ALLOWED_NAME, WLAN_PARAM_Integer,
3777 struct hdd_config, extscan_enabled,
3778 VAR_FLAGS_OPTIONAL |
3779 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3780 CFG_EXTSCAN_ALLOWED_DEF,
3781 CFG_EXTSCAN_ALLOWED_MIN,
3782 CFG_EXTSCAN_ALLOWED_MAX),
3783
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003784 REG_VARIABLE(CFG_EXTSCAN_PASSIVE_MAX_CHANNEL_TIME_NAME,
3785 WLAN_PARAM_Integer,
3786 struct hdd_config, extscan_passive_max_chn_time,
3787 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3788 CFG_EXTSCAN_PASSIVE_MAX_CHANNEL_TIME_DEFAULT,
3789 CFG_EXTSCAN_PASSIVE_MAX_CHANNEL_TIME_MIN,
3790 CFG_EXTSCAN_PASSIVE_MAX_CHANNEL_TIME_MAX),
3791
3792 REG_VARIABLE(CFG_EXTSCAN_PASSIVE_MIN_CHANNEL_TIME_NAME,
3793 WLAN_PARAM_Integer,
3794 struct hdd_config, extscan_passive_min_chn_time,
3795 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3796 CFG_EXTSCAN_PASSIVE_MIN_CHANNEL_TIME_DEFAULT,
3797 CFG_EXTSCAN_PASSIVE_MIN_CHANNEL_TIME_MIN,
3798 CFG_EXTSCAN_PASSIVE_MIN_CHANNEL_TIME_MAX),
3799
3800 REG_VARIABLE(CFG_EXTSCAN_ACTIVE_MAX_CHANNEL_TIME_NAME,
3801 WLAN_PARAM_Integer,
3802 struct hdd_config, extscan_active_max_chn_time,
3803 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3804 CFG_EXTSCAN_ACTIVE_MAX_CHANNEL_TIME_DEFAULT,
3805 CFG_EXTSCAN_ACTIVE_MAX_CHANNEL_TIME_MIN,
3806 CFG_EXTSCAN_ACTIVE_MAX_CHANNEL_TIME_MAX),
3807
3808 REG_VARIABLE(CFG_EXTSCAN_ACTIVE_MIN_CHANNEL_TIME_NAME,
3809 WLAN_PARAM_Integer,
3810 struct hdd_config, extscan_active_min_chn_time,
3811 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3812 CFG_EXTSCAN_ACTIVE_MIN_CHANNEL_TIME_DEFAULT,
3813 CFG_EXTSCAN_ACTIVE_MIN_CHANNEL_TIME_MIN,
3814 CFG_EXTSCAN_ACTIVE_MIN_CHANNEL_TIME_MAX),
3815#endif
3816
Yingying Tang95409972016-10-20 15:16:15 +08003817#ifdef WLAN_FEATURE_WOW_PULSE
3818 REG_VARIABLE(CFG_WOW_PULSE_SUPPORT_NAME, WLAN_PARAM_Integer,
3819 struct hdd_config, wow_pulse_support,
3820 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3821 CFG_WOW_PULSE_SUPPORT_DEFAULT,
3822 CFG_WOW_PULSE_SUPPORT_MIN,
3823 CFG_WOW_PULSE_SUPPORT_MAX),
3824
3825 REG_VARIABLE(CFG_WOW_PULSE_PIN_NAME, WLAN_PARAM_Integer,
3826 struct hdd_config, wow_pulse_pin,
3827 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3828 CFG_WOW_PULSE_PIN_DEFAULT,
3829 CFG_WOW_PULSE_PIN_MIN,
3830 CFG_WOW_PULSE_PIN_MAX),
3831
3832 REG_VARIABLE(CFG_WOW_PULSE_INTERVAL_LOW_NAME, WLAN_PARAM_Integer,
3833 struct hdd_config, wow_pulse_interval_low,
3834 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3835 CFG_WOW_PULSE_INTERVAL_LOW_DEFAULT,
3836 CFG_WOW_PULSE_INTERVAL_LOW_MIN,
3837 CFG_WOW_PULSE_INTERVAL_LOW_MAX),
3838
3839 REG_VARIABLE(CFG_WOW_PULSE_INTERVAL_HIGH_NAME, WLAN_PARAM_Integer,
3840 struct hdd_config, wow_pulse_interval_high,
3841 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3842 CFG_WOW_PULSE_INTERVAL_HIGH_DEFAULT,
3843 CFG_WOW_PULSE_INTERVAL_HIGH_MIN,
3844 CFG_WOW_PULSE_INTERVAL_HIGH_MAX),
3845#endif
3846
3847
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003848 REG_VARIABLE(CFG_CE_CLASSIFY_ENABLE_NAME, WLAN_PARAM_Integer,
3849 struct hdd_config, ce_classify_enabled,
3850 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3851 CFG_CE_CLASSIFY_ENABLE_DEFAULT,
3852 CFG_CE_CLASSIFY_ENABLE_MIN,
3853 CFG_CE_CLASSIFY_ENABLE_MAX),
3854
3855 REG_VARIABLE(CFG_DUAL_MAC_FEATURE_DISABLE, WLAN_PARAM_HexInteger,
3856 struct hdd_config, dual_mac_feature_disable,
3857 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3858 CFG_DUAL_MAC_FEATURE_DISABLE_DEFAULT,
3859 CFG_DUAL_MAC_FEATURE_DISABLE_MIN,
3860 CFG_DUAL_MAC_FEATURE_DISABLE_MAX),
Nitesh Shah50a3de12017-04-03 19:37:19 +05303861
3862 REG_VARIABLE_STRING(CFG_DBS_SCAN_SELECTION_NAME, WLAN_PARAM_String,
3863 struct hdd_config, dbs_scan_selection,
3864 VAR_FLAGS_OPTIONAL,
3865 (void *)CFG_DBS_SCAN_SELECTION_DEFAULT),
3866
Ganesh Kondabattini930304c2017-10-10 15:25:36 +05303867 REG_VARIABLE(CFG_STA_SAP_SCC_ON_DFS_CHAN, WLAN_PARAM_HexInteger,
3868 struct hdd_config, sta_sap_scc_on_dfs_chan,
3869 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3870 CFG_STA_SAP_SCC_ON_DFS_CHAN_DEFAULT,
3871 CFG_STA_SAP_SCC_ON_DFS_CHAN_MIN,
3872 CFG_STA_SAP_SCC_ON_DFS_CHAN_MAX),
3873
3874
Varun Reddy Yeturub43fda12015-09-10 18:16:21 -07003875#ifdef FEATURE_WLAN_SCAN_PNO
3876 REG_VARIABLE(CFG_PNO_CHANNEL_PREDICTION_NAME, WLAN_PARAM_Integer,
3877 struct hdd_config, pno_channel_prediction,
3878 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3879 CFG_PNO_CHANNEL_PREDICTION_DEFAULT,
3880 CFG_PNO_CHANNEL_PREDICTION_MIN,
3881 CFG_PNO_CHANNEL_PREDICTION_MAX),
3882
3883 REG_VARIABLE(CFG_TOP_K_NUM_OF_CHANNELS_NAME, WLAN_PARAM_Integer,
3884 struct hdd_config, top_k_num_of_channels,
3885 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3886 CFG_TOP_K_NUM_OF_CHANNELS_DEFAULT,
3887 CFG_TOP_K_NUM_OF_CHANNELS_MIN,
3888 CFG_TOP_K_NUM_OF_CHANNELS_MAX),
3889
3890 REG_VARIABLE(CFG_STATIONARY_THRESHOLD_NAME, WLAN_PARAM_Integer,
3891 struct hdd_config, stationary_thresh,
3892 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3893 CFG_STATIONARY_THRESHOLD_DEFAULT,
3894 CFG_STATIONARY_THRESHOLD_MIN,
3895 CFG_STATIONARY_THRESHOLD_MAX),
3896
3897 REG_VARIABLE(CFG_CHANNEL_PREDICTION_FULL_SCAN_MS_NAME,
3898 WLAN_PARAM_Integer,
3899 struct hdd_config, channel_prediction_full_scan,
3900 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3901 CFG_CHANNEL_PREDICTION_FULL_SCAN_MS_DEFAULT,
3902 CFG_CHANNEL_PREDICTION_FULL_SCAN_MS_MIN,
3903 CFG_CHANNEL_PREDICTION_FULL_SCAN_MS_MAX),
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05303904
3905 REG_VARIABLE(CFG_ADAPTIVE_PNOSCAN_DWELL_MODE_NAME,
3906 WLAN_PARAM_Integer,
3907 struct hdd_config, pnoscan_adaptive_dwell_mode,
3908 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3909 CFG_ADAPTIVE_PNOSCAN_DWELL_MODE_DEFAULT,
3910 CFG_ADAPTIVE_PNOSCAN_DWELL_MODE_MIN,
3911 CFG_ADAPTIVE_PNOSCAN_DWELL_MODE_MAX),
Varun Reddy Yeturub43fda12015-09-10 18:16:21 -07003912#endif
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003913
3914 REG_VARIABLE(CFG_TX_CHAIN_MASK_CCK, WLAN_PARAM_Integer,
3915 struct hdd_config, tx_chain_mask_cck,
3916 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3917 CFG_TX_CHAIN_MASK_CCK_DEFAULT,
3918 CFG_TX_CHAIN_MASK_CCK_MIN,
3919 CFG_TX_CHAIN_MASK_CCK_MAX),
3920
3921 REG_VARIABLE(CFG_TX_CHAIN_MASK_1SS, WLAN_PARAM_Integer,
3922 struct hdd_config, tx_chain_mask_1ss,
3923 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3924 CFG_TX_CHAIN_MASK_1SS_DEFAULT,
3925 CFG_TX_CHAIN_MASK_1SS_MIN,
3926 CFG_TX_CHAIN_MASK_1SS_MAX),
3927
Jeff Johnsona89e25d2017-02-24 12:25:07 -08003928 REG_VARIABLE(CFG_ENABLE_SMART_CHAINMASK_NAME, WLAN_PARAM_Integer,
3929 struct hdd_config, smart_chainmask_enabled,
3930 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3931 CFG_ENABLE_SMART_CHAINMASK_DEFAULT,
3932 CFG_ENABLE_SMART_CHAINMASK_MIN,
3933 CFG_ENABLE_SMART_CHAINMASK_MAX),
3934
3935 REG_VARIABLE(CFG_ENABLE_COEX_ALT_CHAINMASK_NAME, WLAN_PARAM_Integer,
3936 struct hdd_config, alternative_chainmask_enabled,
3937 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3938 CFG_ENABLE_COEX_ALT_CHAINMASK_DEFAULT,
3939 CFG_ENABLE_COEX_ALT_CHAINMASK_MIN,
3940 CFG_ENABLE_COEX_ALT_CHAINMASK_MAX),
3941
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003942 REG_VARIABLE(CFG_SELF_GEN_FRM_PWR, WLAN_PARAM_Integer,
3943 struct hdd_config, self_gen_frm_pwr,
3944 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3945 CFG_SELF_GEN_FRM_PWR_DEFAULT,
3946 CFG_SELF_GEN_FRM_PWR_MIN,
3947 CFG_SELF_GEN_FRM_PWR_MAX),
3948
Varun Reddy Yeturu05186292015-09-28 17:12:33 -07003949 REG_VARIABLE(CFG_EARLY_STOP_SCAN_ENABLE, WLAN_PARAM_Integer,
3950 struct hdd_config, early_stop_scan_enable,
3951 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3952 CFG_EARLY_STOP_SCAN_ENABLE_DEFAULT,
3953 CFG_EARLY_STOP_SCAN_ENABLE_MIN,
3954 CFG_EARLY_STOP_SCAN_ENABLE_MAX),
3955
3956 REG_VARIABLE(CFG_EARLY_STOP_SCAN_MIN_THRESHOLD,
3957 WLAN_PARAM_SignedInteger, struct hdd_config,
3958 early_stop_scan_min_threshold,
3959 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3960 CFG_EARLY_STOP_SCAN_MIN_THRESHOLD_DEFAULT,
3961 CFG_EARLY_STOP_SCAN_MIN_THRESHOLD_MIN,
3962 CFG_EARLY_STOP_SCAN_MIN_THRESHOLD_MAX),
3963
3964 REG_VARIABLE(CFG_EARLY_STOP_SCAN_MAX_THRESHOLD,
3965 WLAN_PARAM_SignedInteger, struct hdd_config,
3966 early_stop_scan_max_threshold,
3967 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3968 CFG_EARLY_STOP_SCAN_MAX_THRESHOLD_DEFAULT,
3969 CFG_EARLY_STOP_SCAN_MAX_THRESHOLD_MIN,
3970 CFG_EARLY_STOP_SCAN_MAX_THRESHOLD_MAX),
3971
Varun Reddy Yeturu044bda22015-11-21 22:03:40 -08003972 REG_VARIABLE(CFG_FIRST_SCAN_BUCKET_THRESHOLD_NAME,
3973 WLAN_PARAM_SignedInteger,
3974 struct hdd_config, first_scan_bucket_threshold,
3975 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3976 CFG_FIRST_SCAN_BUCKET_THRESHOLD_DEFAULT,
3977 CFG_FIRST_SCAN_BUCKET_THRESHOLD_MIN,
3978 CFG_FIRST_SCAN_BUCKET_THRESHOLD_MAX),
3979
Ravi Joshi742495d2015-11-09 18:56:53 -08003980#ifdef FEATURE_LFR_SUBNET_DETECTION
3981 REG_VARIABLE(CFG_ENABLE_LFR_SUBNET_DETECTION, WLAN_PARAM_Integer,
3982 struct hdd_config, enable_lfr_subnet_detection,
3983 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3984 CFG_ENABLE_LFR_SUBNET_DEFAULT,
3985 CFG_ENABLE_LFR_SUBNET_MIN,
3986 CFG_ENABLE_LFR_SUBNET_MAX),
3987#endif
Sandeep Puligilla93a29ec2016-02-12 16:10:56 -08003988 REG_VARIABLE(CFG_OBSS_HT40_SCAN_ACTIVE_DWELL_TIME_NAME,
3989 WLAN_PARAM_Integer,
3990 struct hdd_config, obss_active_dwelltime,
3991 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
3992 CFG_OBSS_HT40_SCAN_ACTIVE_DWELL_TIME_DEFAULT,
3993 CFG_OBSS_HT40_SCAN_ACTIVE_DWELL_TIME_MIN,
3994 CFG_OBSS_HT40_SCAN_ACTIVE_DWELL_TIME_MAX),
3995
3996 REG_VARIABLE(CFG_OBSS_HT40_SCAN_PASSIVE_DWELL_TIME_NAME,
3997 WLAN_PARAM_Integer,
3998 struct hdd_config, obss_passive_dwelltime,
3999 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4000 CFG_OBSS_HT40_SCAN_PASSIVE_DWELL_TIME_DEFAULT,
4001 CFG_OBSS_HT40_SCAN_PASSIVE_DWELL_TIME_MIN,
4002 CFG_OBSS_HT40_SCAN_PASSIVE_DWELL_TIME_MAX),
4003
4004 REG_VARIABLE(CFG_OBSS_HT40_SCAN_WIDTH_TRIGGER_INTERVAL_NAME,
4005 WLAN_PARAM_Integer,
4006 struct hdd_config, obss_width_trigger_interval,
4007 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4008 CFG_OBSS_HT40_SCAN_WIDTH_TRIGGER_INTERVAL_DEFAULT,
4009 CFG_OBSS_HT40_SCAN_WIDTH_TRIGGER_INTERVAL_MIN,
4010 CFG_OBSS_HT40_SCAN_WIDTH_TRIGGER_INTERVAL_MAX),
Deepak Dhamdhere68929ec2015-08-05 15:16:35 -07004011
4012 REG_VARIABLE(CFG_INFORM_BSS_RSSI_RAW_NAME, WLAN_PARAM_Integer,
4013 struct hdd_config, inform_bss_rssi_raw,
4014 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4015 CFG_INFORM_BSS_RSSI_RAW_DEFAULT,
4016 CFG_INFORM_BSS_RSSI_RAW_MIN,
4017 CFG_INFORM_BSS_RSSI_RAW_MAX),
Tushnim Bhattacharyya24e12a62015-10-12 14:51:56 -07004018
Manikandan Mohan976e7562016-03-15 16:33:31 -07004019#ifdef WLAN_FEATURE_TSF
4020 REG_VARIABLE(CFG_SET_TSF_GPIO_PIN_NAME, WLAN_PARAM_Integer,
4021 struct hdd_config, tsf_gpio_pin,
4022 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4023 CFG_SET_TSF_GPIO_PIN_DEFAULT,
4024 CFG_SET_TSF_GPIO_PIN_MIN,
4025 CFG_SET_TSF_GPIO_PIN_MAX),
Yu Wang66a250b2017-07-19 11:46:40 +08004026
4027#ifdef WLAN_FEATURE_TSF_PLUS
4028 REG_VARIABLE(CFG_SET_TSF_PTP_OPT_NAME, WLAN_PARAM_HexInteger,
4029 struct hdd_config, tsf_ptp_options,
4030 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4031 CFG_SET_TSF_PTP_OPT_DEFAULT,
4032 CFG_SET_TSF_PTP_OPT_MIN,
4033 CFG_SET_TSF_PTP_OPT_MAX),
4034#endif /* WLAN_FEATURE_TSF_PLUS */
Manikandan Mohan976e7562016-03-15 16:33:31 -07004035#endif
4036
Gupta, Kapilc68ad462016-02-01 19:17:23 +05304037 REG_VARIABLE(CFG_ROAM_DENSE_TRAFFIC_THRESHOLD, WLAN_PARAM_Integer,
4038 struct hdd_config, roam_dense_traffic_thresh,
4039 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4040 CFG_ROAM_DENSE_TRAFFIC_THRESHOLD_DEFAULT,
4041 CFG_ROAM_DENSE_TRAFFIC_THRESHOLD_MIN,
4042 CFG_ROAM_DENSE_TRAFFIC_THRESHOLD_MAX),
4043
4044 REG_VARIABLE(CFG_ROAM_DENSE_RSSI_THRE_OFFSET, WLAN_PARAM_Integer,
4045 struct hdd_config, roam_dense_rssi_thresh_offset,
4046 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4047 CFG_ROAM_DENSE_RSSI_THRE_OFFSET_DEFAULT,
4048 CFG_ROAM_DENSE_RSSI_THRE_OFFSET_MIN,
4049 CFG_ROAM_DENSE_RSSI_THRE_OFFSET_MAX),
4050
Abhishek Singh165bc602016-03-21 12:43:00 +05304051 REG_VARIABLE(CFG_IGNORE_PEER_HT_MODE_NAME, WLAN_PARAM_Integer,
4052 struct hdd_config, ignore_peer_ht_opmode,
4053 VAR_FLAGS_OPTIONAL |
4054 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4055 CFG_IGNORE_PEER_HT_MODE_DEFAULT,
4056 CFG_IGNORE_PEER_HT_MODE_MIN,
4057 CFG_IGNORE_PEER_HT_MODE_MAX),
4058
Gupta, Kapilc68ad462016-02-01 19:17:23 +05304059 REG_VARIABLE(CFG_ROAM_DENSE_MIN_APS, WLAN_PARAM_Integer,
4060 struct hdd_config, roam_dense_min_aps,
4061 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4062 CFG_ROAM_DENSE_MIN_APS_DEFAULT,
4063 CFG_ROAM_DENSE_MIN_APS_MIN,
4064 CFG_ROAM_DENSE_MIN_APS_MAX),
4065
Varun Reddy Yeturufaad37e2017-07-26 10:54:13 -07004066 REG_VARIABLE(CFG_ROAM_BG_SCAN_BAD_RSSI_THRESHOLD_NAME,
4067 WLAN_PARAM_SignedInteger, struct hdd_config,
4068 roam_bg_scan_bad_rssi_thresh,
4069 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4070 CFG_ROAM_BG_SCAN_BAD_RSSI_THRESHOLD_DEFAULT,
4071 CFG_ROAM_BG_SCAN_BAD_RSSI_THRESHOLD_MIN,
4072 CFG_ROAM_BG_SCAN_BAD_RSSI_THRESHOLD_MAX),
4073
4074 REG_VARIABLE(CFG_ROAM_BG_SCAN_CLIENT_BITMAP_NAME, WLAN_PARAM_Integer,
4075 struct hdd_config, roam_bg_scan_client_bitmap,
4076 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4077 CFG_ROAM_BG_SCAN_CLIENT_BITMAP_DEFAULT,
4078 CFG_ROAM_BG_SCAN_CLIENT_BITMAP_MIN,
4079 CFG_ROAM_BG_SCAN_CLIENT_BITMAP_MAX),
4080
Vignesh Viswanathanc018e982017-09-07 18:49:19 +05304081 REG_VARIABLE(CFG_ROAM_BG_SCAN_BAD_RSSI_OFFSET_2G_NAME,
4082 WLAN_PARAM_Integer, struct hdd_config,
4083 roam_bad_rssi_thresh_offset_2g,
4084 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4085 CFG_ROAM_BG_SCAN_BAD_RSSI_OFFSET_2G_DEFAULT,
4086 CFG_ROAM_BG_SCAN_BAD_RSSI_OFFSET_2G_MIN,
4087 CFG_ROAM_BG_SCAN_BAD_RSSI_OFFSET_2G_MAX),
4088
Abhishek Singh5ea86532016-04-27 14:10:53 +05304089 REG_VARIABLE(CFG_ENABLE_FATAL_EVENT_TRIGGER, WLAN_PARAM_Integer,
4090 struct hdd_config, enable_fatal_event,
4091 VAR_FLAGS_OPTIONAL |
4092 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4093 CFG_ENABLE_FATAL_EVENT_TRIGGER_DEFAULT,
4094 CFG_ENABLE_FATAL_EVENT_TRIGGER_MIN,
4095 CFG_ENABLE_FATAL_EVENT_TRIGGER_MAX),
4096
Abhishek Singh10ecf582016-05-04 17:48:59 +05304097 REG_VARIABLE(CFG_ENABLE_EDCA_INI_NAME, WLAN_PARAM_Integer,
4098 struct hdd_config, enable_edca_params,
4099 VAR_FLAGS_OPTIONAL |
4100 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4101 CFG_ENABLE_EDCA_INI_DEFAULT,
4102 CFG_ENABLE_EDCA_INI_MIN,
4103 CFG_ENABLE_EDCA_INI_MAX),
4104
Agrawal Ashishb2d1a452016-05-05 12:23:58 +05304105 REG_VARIABLE(CFG_ENABLE_GO_CTS2SELF_FOR_STA, WLAN_PARAM_Integer,
4106 struct hdd_config, enable_go_cts2self_for_sta,
4107 VAR_FLAGS_OPTIONAL |
4108 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4109 CFG_ENABLE_GO_CTS2SELF_FOR_STA_DEFAULT,
4110 CFG_ENABLE_GO_CTS2SELF_FOR_STA_MIN,
4111 CFG_ENABLE_GO_CTS2SELF_FOR_STA_MAX),
4112
Abhishek Singh10ecf582016-05-04 17:48:59 +05304113 REG_VARIABLE(CFG_EDCA_VO_CWMIN_VALUE_NAME, WLAN_PARAM_Integer,
4114 struct hdd_config, edca_vo_cwmin,
4115 VAR_FLAGS_OPTIONAL |
4116 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4117 CFG_EDCA_VO_CWMIN_VALUE_DEFAULT,
4118 CFG_EDCA_VO_CWMIN_VALUE_MIN,
4119 CFG_EDCA_VO_CWMIN_VALUE_MAX),
4120
4121 REG_VARIABLE(CFG_EDCA_VI_CWMIN_VALUE_NAME, WLAN_PARAM_Integer,
4122 struct hdd_config, edca_vi_cwmin,
4123 VAR_FLAGS_OPTIONAL |
4124 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4125 CFG_EDCA_VI_CWMIN_VALUE_DEFAULT,
4126 CFG_EDCA_VI_CWMIN_VALUE_MIN,
4127 CFG_EDCA_VI_CWMIN_VALUE_MAX),
4128
4129 REG_VARIABLE(CFG_EDCA_BK_CWMIN_VALUE_NAME, WLAN_PARAM_Integer,
4130 struct hdd_config, edca_bk_cwmin,
4131 VAR_FLAGS_OPTIONAL |
4132 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4133 CFG_EDCA_BK_CWMIN_VALUE_DEFAULT,
4134 CFG_EDCA_BK_CWMIN_VALUE_MIN,
4135 CFG_EDCA_BK_CWMIN_VALUE_MAX),
4136
4137 REG_VARIABLE(CFG_EDCA_BE_CWMIN_VALUE_NAME, WLAN_PARAM_Integer,
4138 struct hdd_config, edca_be_cwmin,
4139 VAR_FLAGS_OPTIONAL |
4140 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4141 CFG_EDCA_BE_CWMIN_VALUE_DEFAULT,
4142 CFG_EDCA_BE_CWMIN_VALUE_MIN,
4143 CFG_EDCA_BE_CWMIN_VALUE_MAX),
4144
4145 REG_VARIABLE(CFG_EDCA_VO_CWMAX_VALUE_NAME, WLAN_PARAM_Integer,
4146 struct hdd_config, edca_vo_cwmax,
4147 VAR_FLAGS_OPTIONAL |
4148 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4149 CFG_EDCA_VO_CWMAX_VALUE_DEFAULT,
4150 CFG_EDCA_VO_CWMAX_VALUE_MIN,
4151 CFG_EDCA_VO_CWMAX_VALUE_MAX),
4152
4153 REG_VARIABLE(CFG_EDCA_VI_CWMAX_VALUE_NAME, WLAN_PARAM_Integer,
4154 struct hdd_config, edca_vi_cwmax,
4155 VAR_FLAGS_OPTIONAL |
4156 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4157 CFG_EDCA_VI_CWMAX_VALUE_DEFAULT,
4158 CFG_EDCA_VI_CWMAX_VALUE_MIN,
4159 CFG_EDCA_VI_CWMAX_VALUE_MAX),
4160
4161 REG_VARIABLE(CFG_EDCA_BK_CWMAX_VALUE_NAME, WLAN_PARAM_Integer,
4162 struct hdd_config, edca_bk_cwmax,
4163 VAR_FLAGS_OPTIONAL |
4164 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4165 CFG_EDCA_BK_CWMAX_VALUE_DEFAULT,
4166 CFG_EDCA_BK_CWMAX_VALUE_MIN,
4167 CFG_EDCA_BK_CWMAX_VALUE_MAX),
4168
4169 REG_VARIABLE(CFG_EDCA_BE_CWMAX_VALUE_NAME, WLAN_PARAM_Integer,
4170 struct hdd_config, edca_be_cwmax,
4171 VAR_FLAGS_OPTIONAL |
4172 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4173 CFG_EDCA_BE_CWMAX_VALUE_DEFAULT,
4174 CFG_EDCA_BE_CWMAX_VALUE_MIN,
4175 CFG_EDCA_BE_CWMAX_VALUE_MAX),
4176
4177 REG_VARIABLE(CFG_EDCA_VO_AIFS_VALUE_NAME, WLAN_PARAM_Integer,
4178 struct hdd_config, edca_vo_aifs,
4179 VAR_FLAGS_OPTIONAL |
4180 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4181 CFG_EDCA_VO_AIFS_VALUE_DEFAULT,
4182 CFG_EDCA_VO_AIFS_VALUE_MIN,
4183 CFG_EDCA_VO_AIFS_VALUE_MAX),
4184
4185 REG_VARIABLE(CFG_EDCA_VI_AIFS_VALUE_NAME, WLAN_PARAM_Integer,
4186 struct hdd_config, edca_vi_aifs,
4187 VAR_FLAGS_OPTIONAL |
4188 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4189 CFG_EDCA_VI_AIFS_VALUE_DEFAULT,
4190 CFG_EDCA_VI_AIFS_VALUE_MIN,
4191 CFG_EDCA_VI_AIFS_VALUE_MAX),
4192
4193 REG_VARIABLE(CFG_EDCA_BK_AIFS_VALUE_NAME, WLAN_PARAM_Integer,
4194 struct hdd_config, edca_bk_aifs,
4195 VAR_FLAGS_OPTIONAL |
4196 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4197 CFG_EDCA_BK_AIFS_VALUE_DEFAULT,
4198 CFG_EDCA_BK_AIFS_VALUE_MIN,
4199 CFG_EDCA_BK_AIFS_VALUE_MAX),
4200
4201 REG_VARIABLE(CFG_EDCA_BE_AIFS_VALUE_NAME, WLAN_PARAM_Integer,
4202 struct hdd_config, edca_be_aifs,
4203 VAR_FLAGS_OPTIONAL |
4204 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4205 CFG_EDCA_BE_AIFS_VALUE_DEFAULT,
4206 CFG_EDCA_BE_AIFS_VALUE_MIN,
4207 CFG_EDCA_BE_AIFS_VALUE_MAX),
gbian62edd7e2017-03-07 13:12:13 +08004208
4209 REG_VARIABLE_STRING(CFG_ENABLE_TX_SCHED_WRR_VO_NAME,
4210 WLAN_PARAM_String,
4211 struct hdd_config, tx_sched_wrr_vo,
4212 VAR_FLAGS_OPTIONAL,
4213 (void *) CFG_ENABLE_TX_SCHED_WRR_VO_DEFAULT),
4214
4215 REG_VARIABLE_STRING(CFG_ENABLE_TX_SCHED_WRR_VI_NAME,
4216 WLAN_PARAM_String,
4217 struct hdd_config, tx_sched_wrr_vi,
4218 VAR_FLAGS_OPTIONAL,
4219 (void *) CFG_ENABLE_TX_SCHED_WRR_VI_DEFAULT),
4220
4221 REG_VARIABLE_STRING(CFG_ENABLE_TX_SCHED_WRR_BE_NAME,
4222 WLAN_PARAM_String,
4223 struct hdd_config, tx_sched_wrr_be,
4224 VAR_FLAGS_OPTIONAL,
4225 (void *) CFG_ENABLE_TX_SCHED_WRR_BE_DEFAULT),
4226
4227 REG_VARIABLE_STRING(CFG_ENABLE_TX_SCHED_WRR_BK_NAME,
4228 WLAN_PARAM_String,
4229 struct hdd_config, tx_sched_wrr_bk,
4230 VAR_FLAGS_OPTIONAL,
4231 (void *) CFG_ENABLE_TX_SCHED_WRR_BK_DEFAULT),
4232
Deepak Dhamdhere3385d752016-05-25 20:36:47 -07004233#ifdef WLAN_FEATURE_NAN_DATAPATH
4234 REG_VARIABLE(CFG_ENABLE_NAN_DATAPATH_NAME, WLAN_PARAM_Integer,
4235 struct hdd_config, enable_nan_datapath,
4236 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4237 CFG_ENABLE_NAN_DATAPATH_DEFAULT,
4238 CFG_ENABLE_NAN_DATAPATH_MIN,
4239 CFG_ENABLE_NAN_DATAPATH_MAX),
4240
4241 REG_VARIABLE(CFG_ENABLE_NAN_NDI_CHANNEL_NAME, WLAN_PARAM_Integer,
4242 struct hdd_config, nan_datapath_ndi_channel,
4243 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4244 CFG_ENABLE_NAN_NDI_CHANNEL_DEFAULT,
4245 CFG_ENABLE_NAN_NDI_CHANNEL_MIN,
4246 CFG_ENABLE_NAN_NDI_CHANNEL_MAX),
4247#endif
Kapil Gupta0ed58dc2016-04-22 15:35:26 +05304248 REG_VARIABLE(CFG_CREATE_BUG_REPORT_FOR_SCAN, WLAN_PARAM_Integer,
4249 struct hdd_config, bug_report_for_no_scan_results,
4250 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4251 CFG_CREATE_BUG_REPORT_FOR_SCAN_DEFAULT,
4252 CFG_CREATE_BUG_REPORT_FOR_SCAN_DISABLE,
4253 CFG_CREATE_BUG_REPORT_FOR_SCAN_ENABLE),
Abhishek Singh5ea86532016-04-27 14:10:53 +05304254
Kapil Gupta8878ad92017-02-13 11:56:04 +05304255 REG_VARIABLE(CFG_USER_AUTO_CHANNEL_SELECTION, WLAN_PARAM_Integer,
4256 struct hdd_config, vendor_acs_support,
4257 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4258 CFG_USER_AUTO_CHANNEL_SELECTION_DEFAULT,
4259 CFG_USER_AUTO_CHANNEL_SELECTION_DISABLE,
4260 CFG_USER_AUTO_CHANNEL_SELECTION_ENABLE),
4261
4262 REG_VARIABLE(CFG_USER_ACS_DFS_LTE, WLAN_PARAM_Integer,
4263 struct hdd_config, acs_support_for_dfs_ltecoex,
4264 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4265 CFG_USER_ACS_DFS_LTE_DEFAULT,
4266 CFG_USER_ACS_DFS_LTE_DISABLE,
4267 CFG_USER_ACS_DFS_LTE_ENABLE),
4268
Nirav Shahcc1f1ae2016-04-26 11:41:29 +05304269 REG_VARIABLE(CFG_ENABLE_DP_TRACE, WLAN_PARAM_Integer,
4270 struct hdd_config, enable_dp_trace,
4271 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4272 CFG_ENABLE_DP_TRACE_DEFAULT,
4273 CFG_ENABLE_DP_TRACE_MIN,
4274 CFG_ENABLE_DP_TRACE_MAX),
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05304275
Mohit Khannaf8f96822017-05-17 17:11:59 -07004276
4277 REG_VARIABLE_STRING(CFG_ENABLE_DP_TRACE_CONFIG, WLAN_PARAM_String,
4278 struct hdd_config, dp_trace_config,
4279 VAR_FLAGS_OPTIONAL,
4280 (void *) CFG_ENABLE_DP_TRACE_CONFIG_DEFAULT),
4281
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05304282 REG_VARIABLE(CFG_ADAPTIVE_SCAN_DWELL_MODE_NAME, WLAN_PARAM_Integer,
4283 struct hdd_config, scan_adaptive_dwell_mode,
4284 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4285 CFG_ADAPTIVE_SCAN_DWELL_MODE_DEFAULT,
4286 CFG_ADAPTIVE_SCAN_DWELL_MODE_MIN,
4287 CFG_ADAPTIVE_SCAN_DWELL_MODE_MAX),
4288
Paul Zhang72697bd2017-12-20 09:24:25 +08004289 REG_VARIABLE(CFG_ADAPTIVE_SCAN_DWELL_MODE_NC_NAME, WLAN_PARAM_Integer,
4290 struct hdd_config, scan_adaptive_dwell_mode_nc,
4291 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4292 CFG_ADAPTIVE_SCAN_DWELL_MODE_NC_DEFAULT,
4293 CFG_ADAPTIVE_SCAN_DWELL_MODE_NC_MIN,
4294 CFG_ADAPTIVE_SCAN_DWELL_MODE_NC_MAX),
4295
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05304296 REG_VARIABLE(CFG_ADAPTIVE_ROAMSCAN_DWELL_MODE_NAME, WLAN_PARAM_Integer,
4297 struct hdd_config, roamscan_adaptive_dwell_mode,
4298 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4299 CFG_ADAPTIVE_ROAMSCAN_DWELL_MODE_DEFAULT,
4300 CFG_ADAPTIVE_ROAMSCAN_DWELL_MODE_MIN,
4301 CFG_ADAPTIVE_ROAMSCAN_DWELL_MODE_MAX),
4302
4303 REG_VARIABLE(CFG_ADAPTIVE_EXTSCAN_DWELL_MODE_NAME, WLAN_PARAM_Integer,
4304 struct hdd_config, extscan_adaptive_dwell_mode,
4305 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4306 CFG_ADAPTIVE_EXTSCAN_DWELL_MODE_DEFAULT,
4307 CFG_ADAPTIVE_EXTSCAN_DWELL_MODE_MIN,
4308 CFG_ADAPTIVE_EXTSCAN_DWELL_MODE_MAX),
4309
4310 REG_VARIABLE(CFG_ADAPTIVE_DWELL_MODE_ENABLED_NAME, WLAN_PARAM_Integer,
4311 struct hdd_config, adaptive_dwell_mode_enabled,
4312 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4313 CFG_ADAPTIVE_DWELL_MODE_ENABLED_DEFAULT,
4314 CFG_ADAPTIVE_DWELL_MODE_ENABLED_MIN,
4315 CFG_ADAPTIVE_DWELL_MODE_ENABLED_MAX),
4316
4317 REG_VARIABLE(CFG_GLOBAL_ADAPTIVE_DWELL_MODE_NAME, WLAN_PARAM_Integer,
4318 struct hdd_config, global_adapt_dwelltime_mode,
4319 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4320 CFG_GLOBAL_ADAPTIVE_DWELL_MODE_DEFAULT,
4321 CFG_GLOBAL_ADAPTIVE_DWELL_MODE_MIN,
4322 CFG_GLOBAL_ADAPTIVE_DWELL_MODE_MAX),
4323
4324 REG_VARIABLE(CFG_ADAPT_DWELL_LPF_WEIGHT_NAME, WLAN_PARAM_Integer,
4325 struct hdd_config, adapt_dwell_lpf_weight,
4326 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4327 CFG_ADAPT_DWELL_LPF_WEIGHT_DEFAULT,
4328 CFG_ADAPT_DWELL_LPF_WEIGHT_MIN,
4329 CFG_ADAPT_DWELL_LPF_WEIGHT_MAX),
4330
Naveen Rawat64e477e2016-05-20 10:34:56 -07004331 REG_VARIABLE(CFG_SUB_20_CHANNEL_WIDTH_NAME, WLAN_PARAM_Integer,
4332 struct hdd_config, enable_sub_20_channel_width,
4333 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4334 CFG_SUB_20_CHANNEL_WIDTH_DEFAULT,
4335 CFG_SUB_20_CHANNEL_WIDTH_MIN,
4336 CFG_SUB_20_CHANNEL_WIDTH_MAX),
4337
Rajeev Kumar Sirasanagandlaaf474742016-09-06 17:54:50 +05304338 REG_VARIABLE(CFG_TGT_GTX_USR_CFG_NAME, WLAN_PARAM_Integer,
4339 struct hdd_config, tgt_gtx_usr_cfg,
4340 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4341 CFG_TGT_GTX_USR_CFG_DEFAULT,
4342 CFG_TGT_GTX_USR_CFG_MIN,
4343 CFG_TGT_GTX_USR_CFG_MAX),
4344
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05304345 REG_VARIABLE(CFG_ADAPT_DWELL_PASMON_INTVAL_NAME, WLAN_PARAM_Integer,
4346 struct hdd_config, adapt_dwell_passive_mon_intval,
4347 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4348 CFG_ADAPT_DWELL_PASMON_INTVAL_DEFAULT,
4349 CFG_ADAPT_DWELL_PASMON_INTVAL_MIN,
4350 CFG_ADAPT_DWELL_PASMON_INTVAL_MAX),
4351
4352 REG_VARIABLE(CFG_ADAPT_DWELL_WIFI_THRESH_NAME, WLAN_PARAM_Integer,
4353 struct hdd_config, adapt_dwell_wifi_act_threshold,
4354 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4355 CFG_ADAPT_DWELL_WIFI_THRESH_DEFAULT,
4356 CFG_ADAPT_DWELL_WIFI_THRESH_MIN,
4357 CFG_ADAPT_DWELL_WIFI_THRESH_MAX),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004358
Nirav Shahbd36b062016-07-18 11:12:59 +05304359 REG_VARIABLE(CFG_RX_MODE_NAME, WLAN_PARAM_Integer,
4360 struct hdd_config, rx_mode,
4361 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4362 CFG_RX_MODE_DEFAULT,
4363 CFG_RX_MODE_MIN,
4364 CFG_RX_MODE_MAX),
4365
4366 REG_VARIABLE_STRING(CFG_RPS_RX_QUEUE_CPU_MAP_LIST_NAME,
4367 WLAN_PARAM_String,
4368 struct hdd_config, cpu_map_list,
4369 VAR_FLAGS_OPTIONAL,
4370 (void *)CFG_RPS_RX_QUEUE_CPU_MAP_LIST_DEFAULT),
4371
Amar Singhal18517882016-08-08 12:26:20 -07004372 REG_VARIABLE(CFG_INDOOR_CHANNEL_SUPPORT_NAME,
4373 WLAN_PARAM_Integer,
4374 struct hdd_config, indoor_channel_support,
4375 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4376 CFG_INDOOR_CHANNEL_SUPPORT_DEFAULT,
4377 CFG_INDOOR_CHANNEL_SUPPORT_MIN,
4378 CFG_INDOOR_CHANNEL_SUPPORT_MAX),
4379
Yingying Tangb4832f72016-10-20 13:44:55 +08004380 REG_VARIABLE(CFG_SAP_TX_LEAKAGE_THRESHOLD_NAME,
4381 WLAN_PARAM_Integer,
4382 struct hdd_config, sap_tx_leakage_threshold,
4383 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4384 CFG_SAP_TX_LEAKAGE_THRESHOLD_DEFAULT,
4385 CFG_SAP_TX_LEAKAGE_THRESHOLD_MIN,
4386 CFG_SAP_TX_LEAKAGE_THRESHOLD_MAX),
4387
Mukul Sharmaf7d62e12016-09-03 15:16:22 +05304388 REG_VARIABLE(CFG_BUG_ON_REINIT_FAILURE_NAME, WLAN_PARAM_Integer,
4389 struct hdd_config, bug_on_reinit_failure,
4390 VAR_FLAGS_OPTIONAL |
4391 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4392 CFG_BUG_ON_REINIT_FAILURE_DEFAULT,
4393 CFG_BUG_ON_REINIT_FAILURE_MIN,
4394 CFG_BUG_ON_REINIT_FAILURE_MAX),
4395
Rajeev Kumar Sirasanagandlab79b5462016-09-06 18:33:17 +05304396 REG_VARIABLE(CFG_SAP_FORCE_11N_FOR_11AC_NAME, WLAN_PARAM_Integer,
4397 struct hdd_config, sap_force_11n_for_11ac,
4398 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4399 CFG_SAP_FORCE_11N_FOR_11AC_DEFAULT,
4400 CFG_SAP_FORCE_11N_FOR_11AC_MIN,
4401 CFG_SAP_FORCE_11N_FOR_11AC_MAX),
4402
Bala Venkateshb9cf3362017-11-09 15:48:46 +05304403 REG_VARIABLE(CFG_GO_FORCE_11N_FOR_11AC_NAME, WLAN_PARAM_Integer,
4404 struct hdd_config, go_force_11n_for_11ac,
4405 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4406 CFG_GO_FORCE_11N_FOR_11AC_DEFAULT,
4407 CFG_GO_FORCE_11N_FOR_11AC_MIN,
4408 CFG_GO_FORCE_11N_FOR_11AC_MAX),
4409
Arun Khandavallifae92942016-08-01 13:31:08 +05304410 REG_VARIABLE(CFG_INTERFACE_CHANGE_WAIT_NAME, WLAN_PARAM_Integer,
4411 struct hdd_config, iface_change_wait_time,
4412 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK,
4413 CFG_INTERFACE_CHANGE_WAIT_DEFAULT,
4414 CFG_INTERFACE_CHANGE_WAIT_MIN,
4415 CFG_INTERFACE_CHANGE_WAIT_MAX),
Ravi Joshibb8d4512016-08-22 10:14:52 -07004416
4417 REG_VARIABLE(CFG_FILTER_MULTICAST_REPLAY_NAME,
4418 WLAN_PARAM_Integer,
4419 struct hdd_config, multicast_replay_filter,
4420 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4421 CFG_FILTER_MULTICAST_REPLAY_DEFAULT,
4422 CFG_FILTER_MULTICAST_REPLAY_MIN,
4423 CFG_FILTER_MULTICAST_REPLAY_MAX),
Manjeet Singhe7ecb7c2016-09-03 12:34:53 +05304424
4425 REG_VARIABLE(CFG_SIFS_BURST_DURATION_NAME, WLAN_PARAM_Integer,
4426 struct hdd_config, sifs_burst_duration,
4427 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4428 CFG_SIFS_BURST_DURATION_DEFAULT,
4429 CFG_SIFS_BURST_DURATION_MIN,
4430 CFG_SIFS_BURST_DURATION_MAX),
Ravi Kumar Bokka990edcc2017-01-09 20:02:58 +05304431
4432 REG_VARIABLE(CFG_ENABLE_PHY_REG, WLAN_PARAM_HexInteger,
4433 struct hdd_config, enable_phy_reg_retention,
4434 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4435 CFG_PHY_REG_DEFAULT,
4436 CFG_PHY_REG_MIN,
4437 CFG_PHY_REG_MAX),
4438
Selvaraj, Sridharebda0f22016-08-29 16:05:23 +05304439 REG_VARIABLE(CFG_OPTIMIZE_CA_EVENT_NAME, WLAN_PARAM_Integer,
4440 struct hdd_config, goptimize_chan_avoid_event,
4441 VAR_FLAGS_OPTIONAL |
4442 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4443 CFG_OPTIMIZE_CA_EVENT_DEFAULT,
4444 CFG_OPTIMIZE_CA_EVENT_DISABLE,
4445 CFG_OPTIMIZE_CA_EVENT_ENABLE),
Padma, Santhosh Kumara7119672016-08-16 16:05:14 +05304446
4447 REG_VARIABLE(CFG_TX_AGGREGATION_SIZE, WLAN_PARAM_Integer,
4448 struct hdd_config, tx_aggregation_size,
4449 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4450 CFG_TX_AGGREGATION_SIZE_DEFAULT,
4451 CFG_TX_AGGREGATION_SIZE_MIN,
4452 CFG_TX_AGGREGATION_SIZE_MAX),
4453
4454 REG_VARIABLE(CFG_RX_AGGREGATION_SIZE, WLAN_PARAM_Integer,
4455 struct hdd_config, rx_aggregation_size,
4456 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4457 CFG_RX_AGGREGATION_SIZE_DEFAULT,
4458 CFG_RX_AGGREGATION_SIZE_MIN,
4459 CFG_RX_AGGREGATION_SIZE_MAX),
Agrawal, Ashish4e5fa1c2016-09-21 19:03:43 +05304460 REG_VARIABLE(CFG_SAP_MAX_INACTIVITY_OVERRIDE_NAME, WLAN_PARAM_Integer,
4461 struct hdd_config, sap_max_inactivity_override,
4462 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4463 CFG_SAP_MAX_INACTIVITY_OVERRIDE_DEFAULT,
4464 CFG_SAP_MAX_INACTIVITY_OVERRIDE_MIN,
Sandeep Puligillaafa52892016-10-26 19:03:16 -07004465 CFG_SAP_MAX_INACTIVITY_OVERRIDE_MAX),
4466 REG_VARIABLE(CFG_CRASH_FW_TIMEOUT_NAME, WLAN_PARAM_Integer,
4467 struct hdd_config, fw_timeout_crash,
4468 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4469 CFG_CRASH_FW_TIMEOUT_DEFAULT,
4470 CFG_CRASH_FW_TIMEOUT_DISABLE,
4471 CFG_CRASH_FW_TIMEOUT_ENABLE),
Dustin Browncd756942016-11-23 12:25:33 -08004472 REG_VARIABLE(CFG_RX_WAKELOCK_TIMEOUT_NAME, WLAN_PARAM_Integer,
4473 struct hdd_config, rx_wakelock_timeout,
4474 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4475 CFG_RX_WAKELOCK_TIMEOUT_DEFAULT,
4476 CFG_RX_WAKELOCK_TIMEOUT_MIN,
Anurag Chouhan7c01cc42016-12-16 21:33:43 +05304477 CFG_RX_WAKELOCK_TIMEOUT_MAX),
gaoleze2920bd2017-03-21 17:38:42 +08004478 REG_VARIABLE(CFG_SAP_CH_SWITCH_BEACON_CNT, WLAN_PARAM_Integer,
4479 struct hdd_config, sap_chanswitch_beacon_cnt,
4480 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4481 CFG_SAP_CH_SWITCH_BEACON_CNT_DEFAULT,
4482 CFG_SAP_CH_SWITCH_BEACON_CNT_MIN,
4483 CFG_SAP_CH_SWITCH_BEACON_CNT_MAX),
gaolez76d2a162017-03-21 19:23:58 +08004484 REG_VARIABLE(CFG_SAP_CH_SWITCH_MODE, WLAN_PARAM_Integer,
4485 struct hdd_config, sap_chanswitch_mode,
4486 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4487 CFG_SAP_CH_SWITCH_MODE_DEFAULT,
4488 CFG_SAP_CH_SWITCH_MODE_MIN,
4489 CFG_SAP_CH_SWITCH_MODE_MAX),
Anurag Chouhan7c01cc42016-12-16 21:33:43 +05304490 REG_VARIABLE(CFG_MAX_SCHED_SCAN_PLAN_INT_NAME, WLAN_PARAM_Integer,
4491 struct hdd_config, max_sched_scan_plan_interval,
4492 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4493 CFG_MAX_SCHED_SCAN_PLAN_INT_DEFAULT,
4494 CFG_MAX_SCHED_SCAN_PLAN_INT_MIN,
4495 CFG_MAX_SCHED_SCAN_PLAN_INT_MAX),
4496 REG_VARIABLE(CFG_MAX_SCHED_SCAN_PLAN_ITRNS_NAME, WLAN_PARAM_Integer,
4497 struct hdd_config, max_sched_scan_plan_iterations,
4498 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4499 CFG_MAX_SCHED_SCAN_PLAN_ITRNS_DEFAULT,
4500 CFG_MAX_SCHED_SCAN_PLAN_ITRNS_MIN,
4501 CFG_MAX_SCHED_SCAN_PLAN_ITRNS_MAX),
Kapil Gupta5cda2252016-12-29 18:44:26 +05304502
Jeff Johnson441e1f72017-02-07 08:50:49 -08004503 REG_VARIABLE(CFG_STANDARD_WEXT_CONTROL_NAME, WLAN_PARAM_Integer,
4504 struct hdd_config, standard_wext_control,
4505 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4506 CFG_STANDARD_WEXT_CONTROL_DEFAULT,
4507 CFG_STANDARD_WEXT_CONTROL_MIN,
4508 CFG_STANDARD_WEXT_CONTROL_MAX),
4509 REG_VARIABLE(CFG_PRIVATE_WEXT_CONTROL_NAME, WLAN_PARAM_Integer,
4510 struct hdd_config, private_wext_control,
4511 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4512 CFG_PRIVATE_WEXT_CONTROL_DEFAULT,
4513 CFG_PRIVATE_WEXT_CONTROL_MIN,
4514 CFG_PRIVATE_WEXT_CONTROL_MAX),
Kapil Gupta5cda2252016-12-29 18:44:26 +05304515
Arun Khandavallicc544b32017-01-30 19:52:16 +05304516 REG_VARIABLE(CFG_SAP_INTERNAL_RESTART_NAME, WLAN_PARAM_Integer,
4517 struct hdd_config, sap_internal_restart,
4518 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4519 CFG_SAP_INTERNAL_RESTART_DEFAULT,
4520 CFG_SAP_INTERNAL_RESTART_MIN,
4521 CFG_SAP_INTERNAL_RESTART_MAX),
Srinivas Girigowda70e169a2017-03-07 23:55:57 -08004522
Hanumanth Reddy Pothulaffc2d482017-07-04 11:32:44 +05304523 REG_VARIABLE(CFG_RESTART_BEACONING_ON_CH_AVOID_NAME, WLAN_PARAM_Integer,
4524 struct hdd_config, restart_beaconing_on_chan_avoid_event,
Hanumanth Reddy Pothula9c161dd2017-03-23 19:03:08 +05304525 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
Hanumanth Reddy Pothulaffc2d482017-07-04 11:32:44 +05304526 CFG_RESTART_BEACONING_ON_CH_AVOID_DEFAULT,
4527 CFG_RESTART_BEACONING_ON_CH_AVOID_MIN,
4528 CFG_RESTART_BEACONING_ON_CH_AVOID_MAX),
Hanumanth Reddy Pothula9c161dd2017-03-23 19:03:08 +05304529
Kapil Gupta5cda2252016-12-29 18:44:26 +05304530 REG_VARIABLE(CFG_PER_ROAM_ENABLE_NAME, WLAN_PARAM_Integer,
4531 struct hdd_config, is_per_roam_enabled,
4532 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4533 CFG_PER_ROAM_ENABLE_DEFAULT,
4534 CFG_PER_ROAM_ENABLE_MIN,
4535 CFG_PER_ROAM_ENABLE_MAX),
4536
4537 REG_VARIABLE(CFG_PER_ROAM_CONFIG_HIGH_RATE_TH_NAME, WLAN_PARAM_Integer,
4538 struct hdd_config, per_roam_high_rate_threshold,
4539 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4540 CFG_PER_ROAM_CONFIG_HIGH_RATE_TH_DEFAULT,
4541 CFG_PER_ROAM_CONFIG_HIGH_RATE_TH_MIN,
4542 CFG_PER_ROAM_CONFIG_HIGH_RATE_TH_MAX),
4543
4544 REG_VARIABLE(CFG_PER_ROAM_CONFIG_LOW_RATE_TH_NAME, WLAN_PARAM_Integer,
4545 struct hdd_config, per_roam_low_rate_threshold,
4546 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4547 CFG_PER_ROAM_CONFIG_LOW_RATE_TH_DEFAULT,
4548 CFG_PER_ROAM_CONFIG_LOW_RATE_TH_MIN,
4549 CFG_PER_ROAM_CONFIG_LOW_RATE_TH_MAX),
4550
4551 REG_VARIABLE(CFG_PER_ROAM_CONFIG_RATE_TH_PERCENT_NAME,
4552 WLAN_PARAM_Integer, struct hdd_config, per_roam_th_percent,
4553 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4554 CFG_PER_ROAM_CONFIG_RATE_TH_PERCENT_DEFAULT,
4555 CFG_PER_ROAM_CONFIG_RATE_TH_PERCENT_MIN,
4556 CFG_PER_ROAM_CONFIG_RATE_TH_PERCENT_MAX),
4557
4558 REG_VARIABLE(CFG_PER_ROAM_REST_TIME_NAME, WLAN_PARAM_Integer,
4559 struct hdd_config, per_roam_rest_time,
4560 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4561 CFG_PER_ROAM_REST_TIME_DEFAULT,
4562 CFG_PER_ROAM_REST_TIME_MIN,
4563 CFG_PER_ROAM_REST_TIME_MAX),
Kapil Gupta957827b2017-02-13 15:47:04 +05304564
4565 REG_VARIABLE(CFG_PER_ROAM_MONITOR_TIME, WLAN_PARAM_Integer,
4566 struct hdd_config, per_roam_mon_time,
4567 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4568 CFG_PER_ROAM_MONTIOR_TIME_DEFAULT,
4569 CFG_PER_ROAM_MONITOR_TIME_MIN,
4570 CFG_PER_ROAM_MONITOR_TIME_MAX),
4571
Selvaraj, Sridhar0641fab2017-05-17 16:02:00 +05304572 REG_VARIABLE(CFG_PER_ROAM_MIN_CANDIDATE_RSSI, WLAN_PARAM_Integer,
4573 struct hdd_config, min_candidate_rssi,
4574 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4575 CFG_PER_ROAM_MIN_CANDIDATE_RSSI_DEFAULT,
4576 CFG_PER_ROAM_MIN_CANDIDATE_RSSI_MIN,
4577 CFG_PER_ROAM_MIN_CANDIDATE_RSSI_MAX),
4578
Hanumanth Reddy Pothulae87621b2017-04-12 20:53:35 +05304579 REG_VARIABLE(CFG_ACTIVE_UC_BPF_MODE_NAME, WLAN_PARAM_Integer,
4580 struct hdd_config, active_uc_bpf_mode,
Dustin Brown13995f02017-01-12 15:38:42 -08004581 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
Hanumanth Reddy Pothulae87621b2017-04-12 20:53:35 +05304582 CFG_ACTIVE_UC_BPF_MODE_DEFAULT,
4583 CFG_ACTIVE_UC_BPF_MODE_MIN,
4584 CFG_ACTIVE_UC_BPF_MODE_MAX),
4585
4586 REG_VARIABLE(CFG_ACTIVE_MC_BC_BPF_MODE_NAME, WLAN_PARAM_Integer,
4587 struct hdd_config, active_mc_bc_bpf_mode,
4588 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4589 CFG_ACTIVE_MC_BC_BPF_MODE_DEFAULT,
4590 CFG_ACTIVE_MC_BC_BPF_MODE_MIN,
4591 CFG_ACTIVE_MC_BC_BPF_MODE_MAX),
4592
Selvaraj, Sridhar4f684bb2017-01-19 15:59:23 +05304593 REG_VARIABLE(CFG_ENABLE_BCAST_PROBE_RESP_NAME, WLAN_PARAM_Integer,
4594 struct hdd_config, enable_bcast_probe_rsp,
4595 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4596 CFG_ENABLE_BCAST_PROBE_RESP_DEFAULT,
4597 CFG_ENABLE_BCAST_PROBE_RESP_MIN,
4598 CFG_ENABLE_BCAST_PROBE_RESP_MAX),
Naveen Rawatb2fc4132017-05-10 20:42:05 -07004599
Krishna Kumaar Natarajan90bb6f12017-03-03 21:05:52 -08004600#ifdef WLAN_FEATURE_11AX
4601 REG_VARIABLE(CFG_ENABLE_UL_MIMO_NAME, WLAN_PARAM_Integer,
4602 struct hdd_config, enable_ul_mimo,
4603 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4604 CFG_ENABLE_UL_MIMO_DEFAULT,
4605 CFG_ENABLE_UL_MIMO_MIN,
4606 CFG_ENABLE_UL_MIMO_MAX),
4607
Kiran Kumar Lokere4aa08a52017-12-15 19:00:39 -08004608 REG_VARIABLE(CFG_HE_DYNAMIC_FRAGMENTATION_NAME, WLAN_PARAM_Integer,
4609 struct hdd_config, he_dynamic_frag_support,
4610 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4611 CFG_HE_DYNAMIC_FRAGMENTATION_DEFAULT,
4612 CFG_HE_DYNAMIC_FRAGMENTATION_MIN,
4613 CFG_HE_DYNAMIC_FRAGMENTATION_MAX),
4614
Krishna Kumaar Natarajan90bb6f12017-03-03 21:05:52 -08004615 REG_VARIABLE(CFG_ENABLE_UL_OFDMA_NAME, WLAN_PARAM_Integer,
4616 struct hdd_config, enable_ul_ofdma,
4617 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4618 CFG_ENABLE_UL_OFDMA_DEFAULT,
4619 CFG_ENABLE_UL_OFDMA_MIN,
4620 CFG_ENABLE_UL_OFDMA_MAX),
Manikandan Mohan39accff2017-05-02 16:09:00 -07004621
4622 REG_VARIABLE(CFG_HE_STA_OBSSPD_NAME, WLAN_PARAM_HexInteger,
4623 struct hdd_config, he_sta_obsspd,
4624 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4625 CFG_HE_STA_OBSSPD_DEFAULT,
4626 CFG_HE_STA_OBSSPD_MIN,
4627 CFG_HE_STA_OBSSPD_MAX),
Krishna Kumaar Natarajan90bb6f12017-03-03 21:05:52 -08004628#endif
Dustin Brownab1364a2017-03-27 16:59:08 -07004629
4630 REG_VARIABLE(CFG_L1SS_SLEEP_ALLOWED_NAME, WLAN_PARAM_Integer,
4631 struct hdd_config, l1ss_sleep_allowed,
4632 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4633 CFG_L1SS_SLEEP_ALLOWED_DEFAULT,
4634 CFG_L1SS_SLEEP_ALLOWED_MIN,
4635 CFG_L1SS_SLEEP_ALLOWED_MAX),
4636
Srinivas Girigowda70e169a2017-03-07 23:55:57 -08004637 REG_VARIABLE(CFG_ARP_AC_CATEGORY, WLAN_PARAM_Integer,
4638 struct hdd_config, arp_ac_category,
4639 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4640 CFG_ARP_AC_CATEGORY_DEFAULT,
4641 CFG_ARP_AC_CATEGORY_MIN,
4642 CFG_ARP_AC_CATEGORY_MAX),
Jeff Johnson12a744b2017-04-04 08:19:37 -07004643
4644 REG_VARIABLE(CFG_ENABLE_ANI_NAME, WLAN_PARAM_Integer,
4645 struct hdd_config, ani_enabled,
4646 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4647 CFG_ENABLE_ANI_DEFAULT,
4648 CFG_ENABLE_ANI_MIN,
4649 CFG_ENABLE_ANI_MAX),
Amar Singhal5cccafe2017-02-15 12:42:58 -08004650
Selvaraj, Sridhara521aab2017-03-25 16:42:34 +05304651 REG_VARIABLE(CFG_QCN_IE_SUPPORT_NAME, WLAN_PARAM_Integer,
4652 struct hdd_config, qcn_ie_support,
4653 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4654 CFG_QCN_IE_SUPPORT_DEFAULT,
4655 CFG_QCN_IE_SUPPORT_MIN,
4656 CFG_QCN_IE_SUPPORT_MAX),
Amar Singhal5cccafe2017-02-15 12:42:58 -08004657
Dustin Brown7f939932017-05-18 15:02:17 -07004658 REG_VARIABLE(CFG_TIMER_MULTIPLIER_NAME, WLAN_PARAM_Integer,
4659 struct hdd_config, timer_multiplier,
4660 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4661 CFG_TIMER_MULTIPLIER_DEFAULT,
4662 CFG_TIMER_MULTIPLIER_MIN,
4663 CFG_TIMER_MULTIPLIER_MAX),
4664
Rajeev Kumar Sirasanagandlaaec0b082017-06-21 11:59:41 +05304665 REG_VARIABLE(CFG_PRB_REQ_IE_WHITELIST_NAME, WLAN_PARAM_Integer,
4666 struct hdd_config, probe_req_ie_whitelist,
4667 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4668 CFG_PRB_REQ_IE_WHITELIST_DEFAULT,
4669 CFG_PRB_REQ_IE_WHITELIST_MIN,
4670 CFG_PRB_REQ_IE_WHITELIST_MAX),
4671
4672 REG_VARIABLE(CFG_PRB_REQ_IE_BIT_MAP0_NAME, WLAN_PARAM_HexInteger,
4673 struct hdd_config, probe_req_ie_bitmap_0,
4674 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4675 CFG_PRB_REQ_IE_BIT_MAP0_DEFAULT,
4676 CFG_PRB_REQ_IE_BIT_MAP0_MIN,
4677 CFG_PRB_REQ_IE_BIT_MAP0_MAX),
4678
4679 REG_VARIABLE(CFG_PRB_REQ_IE_BIT_MAP1_NAME, WLAN_PARAM_HexInteger,
4680 struct hdd_config, probe_req_ie_bitmap_1,
4681 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4682 CFG_PRB_REQ_IE_BIT_MAP1_DEFAULT,
4683 CFG_PRB_REQ_IE_BIT_MAP1_MIN,
4684 CFG_PRB_REQ_IE_BIT_MAP1_MAX),
4685
4686 REG_VARIABLE(CFG_PRB_REQ_IE_BIT_MAP2_NAME, WLAN_PARAM_HexInteger,
4687 struct hdd_config, probe_req_ie_bitmap_2,
4688 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4689 CFG_PRB_REQ_IE_BIT_MAP2_DEFAULT,
4690 CFG_PRB_REQ_IE_BIT_MAP2_MIN,
4691 CFG_PRB_REQ_IE_BIT_MAP2_MAX),
4692
4693 REG_VARIABLE(CFG_PRB_REQ_IE_BIT_MAP3_NAME, WLAN_PARAM_HexInteger,
4694 struct hdd_config, probe_req_ie_bitmap_3,
4695 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4696 CFG_PRB_REQ_IE_BIT_MAP3_DEFAULT,
4697 CFG_PRB_REQ_IE_BIT_MAP3_MIN,
4698 CFG_PRB_REQ_IE_BIT_MAP3_MAX),
4699
4700 REG_VARIABLE(CFG_PRB_REQ_IE_BIT_MAP4_NAME, WLAN_PARAM_HexInteger,
4701 struct hdd_config, probe_req_ie_bitmap_4,
4702 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4703 CFG_PRB_REQ_IE_BIT_MAP4_DEFAULT,
4704 CFG_PRB_REQ_IE_BIT_MAP4_MIN,
4705 CFG_PRB_REQ_IE_BIT_MAP4_MAX),
4706
4707 REG_VARIABLE(CFG_PRB_REQ_IE_BIT_MAP5_NAME, WLAN_PARAM_HexInteger,
4708 struct hdd_config, probe_req_ie_bitmap_5,
4709 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4710 CFG_PRB_REQ_IE_BIT_MAP5_DEFAULT,
4711 CFG_PRB_REQ_IE_BIT_MAP5_MIN,
4712 CFG_PRB_REQ_IE_BIT_MAP5_MAX),
4713
4714 REG_VARIABLE(CFG_PRB_REQ_IE_BIT_MAP6_NAME, WLAN_PARAM_HexInteger,
4715 struct hdd_config, probe_req_ie_bitmap_6,
4716 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4717 CFG_PRB_REQ_IE_BIT_MAP6_DEFAULT,
4718 CFG_PRB_REQ_IE_BIT_MAP6_MIN,
4719 CFG_PRB_REQ_IE_BIT_MAP6_MAX),
4720
4721 REG_VARIABLE(CFG_PRB_REQ_IE_BIT_MAP7_NAME, WLAN_PARAM_HexInteger,
4722 struct hdd_config, probe_req_ie_bitmap_7,
4723 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4724 CFG_PRB_REQ_IE_BIT_MAP7_DEFAULT,
4725 CFG_PRB_REQ_IE_BIT_MAP7_MIN,
4726 CFG_PRB_REQ_IE_BIT_MAP7_MAX),
4727
4728 REG_VARIABLE_STRING(CFG_PROBE_REQ_OUI_NAME, WLAN_PARAM_String,
4729 struct hdd_config, probe_req_ouis,
4730 VAR_FLAGS_OPTIONAL,
4731 (void *)CFG_PROBE_REQ_OUI_DEFAULT),
4732
Selvaraj, Sridhar97ce6582017-01-20 17:06:34 +05304733 REG_VARIABLE(CFG_FILS_MAX_CHAN_GUARD_TIME_NAME, WLAN_PARAM_Integer,
4734 struct hdd_config, fils_max_chan_guard_time,
4735 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4736 CFG_FILS_MAX_CHAN_GUARD_TIME_DEFAULT,
4737 CFG_FILS_MAX_CHAN_GUARD_TIME_MIN,
4738 CFG_FILS_MAX_CHAN_GUARD_TIME_MAX),
Naveen Rawat2b6e3c92017-03-20 13:59:07 -07004739
Dustin Brown20b6fcf2017-05-17 15:35:17 -07004740 REG_VARIABLE(CFG_SCAN_BACKOFF_MULTIPLIER_NAME, WLAN_PARAM_Integer,
4741 struct hdd_config, scan_backoff_multiplier,
4742 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4743 CFG_SCAN_BACKOFF_MULTIPLIER_DEFAULT,
4744 CFG_SCAN_BACKOFF_MULTIPLIER_MIN,
4745 CFG_SCAN_BACKOFF_MULTIPLIER_MAX),
4746
Varun Reddy Yeturubba32e92017-09-06 13:31:40 -07004747 REG_VARIABLE(CFG_MAWC_NLO_ENABLED_NAME, WLAN_PARAM_Integer,
4748 struct hdd_config, mawc_nlo_enabled,
4749 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4750 CFG_MAWC_NLO_ENABLED_DEFAULT,
4751 CFG_MAWC_NLO_ENABLED_MIN,
4752 CFG_MAWC_NLO_ENABLED_MAX),
4753
4754 REG_VARIABLE(CFG_MAWC_NLO_EXP_BACKOFF_RATIO_NAME, WLAN_PARAM_Integer,
4755 struct hdd_config, mawc_nlo_exp_backoff_ratio,
4756 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4757 CFG_MAWC_NLO_EXP_BACKOFF_RATIO_DEFAULT,
4758 CFG_MAWC_NLO_EXP_BACKOFF_RATIO_MIN,
4759 CFG_MAWC_NLO_EXP_BACKOFF_RATIO_MAX),
4760
4761 REG_VARIABLE(CFG_MAWC_NLO_INIT_SCAN_INTERVAL_NAME, WLAN_PARAM_Integer,
4762 struct hdd_config, mawc_nlo_init_scan_interval,
4763 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4764 CFG_MAWC_NLO_INIT_SCAN_INTERVAL_DEFAULT,
4765 CFG_MAWC_NLO_INIT_SCAN_INTERVAL_MIN,
4766 CFG_MAWC_NLO_INIT_SCAN_INTERVAL_MAX),
4767
4768 REG_VARIABLE(CFG_MAWC_NLO_MAX_SCAN_INTERVAL_NAME, WLAN_PARAM_Integer,
4769 struct hdd_config, mawc_nlo_max_scan_interval,
4770 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4771 CFG_MAWC_NLO_MAX_SCAN_INTERVAL_DEFAULT,
4772 CFG_MAWC_NLO_MAX_SCAN_INTERVAL_MIN,
4773 CFG_MAWC_NLO_MAX_SCAN_INTERVAL_MAX),
4774
4775
Jayachandran Sreekumaran68c952c2017-04-24 12:42:03 +05304776 REG_VARIABLE(CFG_EXTERNAL_ACS_POLICY, WLAN_PARAM_Integer,
4777 struct hdd_config, external_acs_policy,
4778 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4779 CFG_EXTERNAL_ACS_POLICY_DEFAULT,
4780 CFG_EXTERNAL_ACS_POLICY_MIN,
4781 CFG_EXTERNAL_ACS_POLICY_MAX),
4782
4783 REG_VARIABLE(CFG_EXTERNAL_ACS_FREQ_BAND, WLAN_PARAM_Integer,
4784 struct hdd_config, external_acs_freq_band,
4785 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4786 CFG_EXTERNAL_ACS_FREQ_BAND_DEFAULT,
4787 CFG_EXTERNAL_ACS_FREQ_BAND_MIN,
4788 CFG_EXTERNAL_ACS_FREQ_BAND_MAX),
Naveen Rawat2b6e3c92017-03-20 13:59:07 -07004789
4790 REG_VARIABLE(CFG_DROPPED_PKT_DISCONNECT_TH_NAME, WLAN_PARAM_Integer,
4791 struct hdd_config, pkt_err_disconn_th,
4792 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4793 CFG_DROPPED_PKT_DISCONNECT_TH_DEFAULT,
4794 CFG_DROPPED_PKT_DISCONNECT_TH_MIN,
4795 CFG_DROPPED_PKT_DISCONNECT_TH_MAX),
Naveen Rawatb2fc4132017-05-10 20:42:05 -07004796
4797 REG_VARIABLE(CFG_FORCE_1X1_NAME, WLAN_PARAM_Integer,
4798 struct hdd_config, is_force_1x1,
4799 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4800 CFG_FORCE_1X1_DEFAULT,
4801 CFG_FORCE_1X1_MIN,
4802 CFG_FORCE_1X1_MAX),
lifeng959a04c2017-05-10 14:21:28 +08004803
4804 REG_VARIABLE(CFG_SET_RTS_FOR_SIFS_BURSTING, WLAN_PARAM_Integer,
4805 struct hdd_config, enable_rts_sifsbursting,
4806 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4807 CFG_SET_RTS_FOR_SIFS_BURSTING_DEFAULT,
4808 CFG_SET_RTS_FOR_SIFS_BURSTING_MIN,
4809 CFG_SET_RTS_FOR_SIFS_BURSTING_MAX),
4810
4811 REG_VARIABLE(CFG_MAX_MPDUS_IN_AMPDU, WLAN_PARAM_Integer,
4812 struct hdd_config, max_mpdus_inampdu,
4813 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4814 CFG_MAX_MPDUS_IN_AMPDU_DEFAULT,
4815 CFG_MAX_MPDUS_IN_AMPDU_MIN,
4816 CFG_MAX_MPDUS_IN_AMPDU_MAX),
lifeng13a89d72017-05-10 14:49:29 +08004817
4818 REG_VARIABLE(CFG_SAP_MAX_MCS_FOR_TX_DATA, WLAN_PARAM_Integer,
4819 struct hdd_config, sap_max_mcs_txdata,
4820 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4821 CFG_SAP_MAX_MCS_FOR_TX_DATA_DEFAULT,
4822 CFG_SAP_MAX_MCS_FOR_TX_DATA_MIN,
4823 CFG_SAP_MAX_MCS_FOR_TX_DATA_MAX),
Manjunathappa Prakashdab74fa2017-06-19 12:11:03 -07004824
4825 REG_VARIABLE(CFG_TX_ORPHAN_ENABLE_NAME, WLAN_PARAM_Integer,
4826 struct hdd_config, tx_orphan_enable,
4827 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4828 CFG_TX_ORPHAN_ENABLE_DEFAULT,
4829 CFG_TX_ORPHAN_ENABLE_MIN,
4830 CFG_TX_ORPHAN_ENABLE_MAX),
Ravi Kumar Bokka05c14e52017-03-27 14:48:23 +05304831
4832 REG_VARIABLE(CFG_AUTO_DETECT_POWER_FAIL_MODE_NAME, WLAN_PARAM_Integer,
4833 struct hdd_config, auto_pwr_save_fail_mode,
4834 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4835 CFG_AUTO_DETECT_POWER_FAIL_MODE_DEFAULT,
4836 CFG_AUTO_DETECT_POWER_FAIL_MODE_MIN,
4837 CFG_AUTO_DETECT_POWER_FAIL_MODE_MAX),
4838
Naveen Rawat247a8682017-06-05 15:00:31 -07004839 REG_VARIABLE(CFG_11B_NUM_TX_CHAIN_NAME, WLAN_PARAM_Integer,
4840 struct hdd_config, num_11b_tx_chains,
4841 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4842 CFG_11B_NUM_TX_CHAIN_DEFAULT,
4843 CFG_11B_NUM_TX_CHAIN_MIN,
4844 CFG_11B_NUM_TX_CHAIN_MAX),
4845
4846 REG_VARIABLE(CFG_11AG_NUM_TX_CHAIN_NAME, WLAN_PARAM_Integer,
4847 struct hdd_config, num_11ag_tx_chains,
4848 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4849 CFG_11AG_NUM_TX_CHAIN_DEFAULT,
4850 CFG_11AG_NUM_TX_CHAIN_MIN,
4851 CFG_11AG_NUM_TX_CHAIN_MAX),
Ashish Kumar Dhanotiya9335d812017-06-30 16:57:20 +05304852
4853 REG_VARIABLE(CFG_ITO_REPEAT_COUNT_NAME, WLAN_PARAM_Integer,
4854 struct hdd_config, ito_repeat_count,
4855 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4856 CFG_ITO_REPEAT_COUNT_DEFAULT,
4857 CFG_ITO_REPEAT_COUNT_MIN,
4858 CFG_ITO_REPEAT_COUNT_MAX),
4859
Selvaraj, Sridhar57ce4df2017-05-29 18:30:49 +05304860 REG_VARIABLE(CFG_ROAM_DISALLOW_DURATION_NAME, WLAN_PARAM_Integer,
4861 struct hdd_config, disallow_duration,
4862 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4863 CFG_ROAM_DISALLOW_DURATION_DEFAULT,
4864 CFG_ROAM_DISALLOW_DURATION_MIN,
4865 CFG_ROAM_DISALLOW_DURATION_MAX),
4866
4867 REG_VARIABLE(CFG_ROAM_RSSI_CHANNEL_PENALIZATION_NAME,
4868 WLAN_PARAM_Integer, struct hdd_config,
4869 rssi_channel_penalization,
4870 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4871 CFG_ROAM_RSSI_CHANNEL_PENALIZATION_DEFAULT,
4872 CFG_ROAM_RSSI_CHANNEL_PENALIZATION_MIN,
4873 CFG_ROAM_RSSI_CHANNEL_PENALIZATION_MAX),
4874
4875 REG_VARIABLE(CFG_ROAM_NUM_DISALLOWED_APS_NAME, WLAN_PARAM_Integer,
4876 struct hdd_config, num_disallowed_aps,
4877 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4878 CFG_ROAM_NUM_DISALLOWED_APS_DEFAULT,
4879 CFG_ROAM_NUM_DISALLOWED_APS_MIN,
4880 CFG_ROAM_NUM_DISALLOWED_APS_MAX),
yeshwanth sriram guntuka1413dfb2017-06-23 14:09:48 +05304881
4882 REG_VARIABLE(CFG_OCE_ENABLE_STA_NAME, WLAN_PARAM_Integer,
4883 struct hdd_config, oce_sta_enabled,
4884 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4885 CFG_OCE_ENABLE_STA_DEFAULT,
4886 CFG_OCE_ENABLE_STA_MIN,
4887 CFG_OCE_ENABLE_STA_MAX),
4888
4889 REG_VARIABLE(CFG_OCE_ENABLE_SAP_NAME, WLAN_PARAM_Integer,
4890 struct hdd_config, oce_sap_enabled,
4891 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4892 CFG_OCE_ENABLE_SAP_DEFAULT,
4893 CFG_OCE_ENABLE_SAP_MIN,
4894 CFG_OCE_ENABLE_SAP_MAX),
Ashwini Patilf2bf05e2017-03-10 03:41:03 +05304895
Manjeet Singha9cae432017-02-28 11:58:22 +05304896 REG_VARIABLE(CFG_ENABLE_5G_BAND_PREF_NAME, WLAN_PARAM_Integer,
4897 struct hdd_config, enable_5g_band_pref,
4898 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4899 CFG_ENABLE_5G_BAND_PREF_DEFAULT,
4900 CFG_ENABLE_5G_BAND_PREF_MIN,
4901 CFG_ENABLE_5G_BAND_PREF_MAX),
4902
4903 REG_VARIABLE(CFG_5G_RSSI_BOOST_THRESHOLD_NAME, WLAN_PARAM_Integer,
4904 struct hdd_config, rssi_boost_threshold_5g,
4905 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4906 CFG_5G_RSSI_BOOST_THRESHOLD_DEFAULT,
4907 CFG_5G_RSSI_BOOST_THRESHOLD_MIN,
4908 CFG_5G_RSSI_BOOST_THRESHOLD_MAX),
4909
4910 REG_VARIABLE(CFG_5G_RSSI_BOOST_FACTOR_NAME, WLAN_PARAM_Integer,
4911 struct hdd_config, rssi_boost_factor_5g,
4912 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4913 CFG_5G_RSSI_BOOST_FACTOR_DEFAULT,
4914 CFG_5G_RSSI_BOOST_FACTOR_MIN,
4915 CFG_5G_RSSI_BOOST_FACTOR_MAX),
4916
4917 REG_VARIABLE(CFG_5G_MAX_RSSI_BOOST_NAME, WLAN_PARAM_Integer,
4918 struct hdd_config, max_rssi_boost_5g,
4919 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4920 CFG_5G_MAX_RSSI_BOOST_DEFAULT,
4921 CFG_5G_MAX_RSSI_BOOST_MIN,
4922 CFG_5G_MAX_RSSI_BOOST_MAX),
4923
4924 REG_VARIABLE(CFG_5G_RSSI_PENALIZE_THRESHOLD_NAME, WLAN_PARAM_Integer,
4925 struct hdd_config, rssi_penalize_threshold_5g,
4926 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4927 CFG_5G_RSSI_PENALIZE_THRESHOLD_DEFAULT,
4928 CFG_5G_RSSI_PENALIZE_THRESHOLD_MIN,
4929 CFG_5G_RSSI_PENALIZE_THRESHOLD_MAX),
4930
4931 REG_VARIABLE(CFG_5G_RSSI_PENALIZE_FACTOR_NAME, WLAN_PARAM_Integer,
4932 struct hdd_config, rssi_penalize_factor_5g,
4933 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4934 CFG_5G_RSSI_PENALIZE_FACTOR_DEFAULT,
4935 CFG_5G_RSSI_PENALIZE_FACTOR_MIN,
4936 CFG_5G_RSSI_PENALIZE_FACTOR_MAX),
4937
4938 REG_VARIABLE(CFG_5G_MAX_RSSI_PENALIZE_NAME, WLAN_PARAM_Integer,
4939 struct hdd_config, max_rssi_penalize_5g,
4940 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4941 CFG_5G_MAX_RSSI_PENALIZE_DEFAULT,
4942 CFG_5G_MAX_RSSI_PENALIZE_MIN,
4943 CFG_5G_MAX_RSSI_PENALIZE_MAX),
Ashish Kumar Dhanotiyab8630ab2017-07-21 14:18:14 +05304944
4945 REG_VARIABLE(CFG_LPRx_NAME, WLAN_PARAM_Integer,
4946 struct hdd_config, enable_lprx,
4947 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4948 CFG_LPRx_DEFAULT,
4949 CFG_LPRx_MIN,
4950 CFG_LPRx_MAX),
Ashish Kumar Dhanotiyab28338c2017-07-21 20:12:34 +05304951
4952 REG_VARIABLE(CFG_UPPER_BRSSI_THRESH_NAME, WLAN_PARAM_Integer,
4953 struct hdd_config, upper_brssi_thresh,
4954 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4955 CFG_UPPER_BRSSI_THRESH_DEFAULT,
4956 CFG_UPPER_BRSSI_THRESH_MIN,
4957 CFG_UPPER_BRSSI_THRESH_MAX),
4958
4959 REG_VARIABLE(CFG_LOWER_BRSSI_THRESH_NAME, WLAN_PARAM_Integer,
4960 struct hdd_config, lower_brssi_thresh,
4961 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4962 CFG_LOWER_BRSSI_THRESH_DEFAULT,
4963 CFG_LOWER_BRSSI_THRESH_MIN,
4964 CFG_LOWER_BRSSI_THRESH_MAX),
4965
4966 REG_VARIABLE(CFG_DTIM_1CHRX_ENABLE_NAME, WLAN_PARAM_Integer,
4967 struct hdd_config, enable_dtim_1chrx,
4968 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4969 CFG_DTIM_1CHRX_ENABLE_DEFAULT,
4970 CFG_DTIM_1CHRX_ENABLE_MIN,
4971 CFG_DTIM_1CHRX_ENABLE_MAX),
Ravi Joshi9771d432017-06-26 13:58:12 -07004972
4973 REG_VARIABLE(CFG_RANDOMIZE_NDI_MAC_NAME, WLAN_PARAM_Integer,
4974 struct hdd_config, is_ndi_mac_randomized,
4975 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4976 CFG_RANDOMIZE_NDI_MAC_DEFAULT,
4977 CFG_RANDOMIZE_NDI_MAC_MIN,
4978 CFG_RANDOMIZE_NDI_MAC_MAX),
Amar Singhale4a2dd52017-08-07 13:59:05 -07004979
4980 REG_VARIABLE(CFG_SCAN_11D_INTERVAL_NAME, WLAN_PARAM_Integer,
4981 struct hdd_config, scan_11d_interval,
4982 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4983 CFG_SCAN_11D_INTERVAL_DEFAULT,
4984 CFG_SCAN_11D_INTERVAL_MIN,
4985 CFG_SCAN_11D_INTERVAL_MAX),
hqu16d6e082017-09-04 10:52:31 +08004986
4987 REG_VARIABLE(CFG_CHAN_SWITCH_HOSTAPD_RATE_ENABLED_NAME,
4988 WLAN_PARAM_Integer,
4989 struct hdd_config, chan_switch_hostapd_rate_enabled,
4990 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4991 CFG_CHAN_SWITCH_HOSTAPD_RATE_ENABLED_DEFAULT,
4992 CFG_CHAN_SWITCH_HOSTAPD_RATE_ENABLED_MIN,
4993 CFG_CHAN_SWITCH_HOSTAPD_RATE_ENABLED_MAX),
Ashwini Patilf2bf05e2017-03-10 03:41:03 +05304994
Abhishek Singhb58164a2017-07-19 18:47:23 +05304995 REG_VARIABLE(CFG_IS_BSSID_HINT_PRIORITY_NAME, WLAN_PARAM_Integer,
4996 struct hdd_config, is_bssid_hint_priority,
4997 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
4998 CFG_IS_BSSID_HINT_PRIORITY_DEFAULT,
4999 CFG_IS_BSSID_HINT_PRIORITY_MIN,
5000 CFG_IS_BSSID_HINT_PRIORITY_MAX),
5001
Paul Zhang99fe8842017-12-08 14:43:46 +08005002 REG_VARIABLE(CFG_LATENCY_ENABLE_NAME, WLAN_PARAM_Integer,
5003 struct hdd_config, wlm_latency_enable,
5004 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5005 CFG_LATENCY_ENABLE_DEFAULT,
5006 CFG_LATENCY_ENABLE_MIN,
5007 CFG_LATENCY_ENABLE_MAX),
5008
5009 REG_VARIABLE(CFG_LATENCY_LEVEL_NAME, WLAN_PARAM_Integer,
5010 struct hdd_config, wlm_latency_level,
5011 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5012 CFG_LATENCY_LEVEL_DEFAULT,
5013 CFG_LATENCY_LEVEL_MIN,
5014 CFG_LATENCY_LEVEL_MAX),
5015
5016 REG_VARIABLE(CFG_LATENCY_FLAGS_NORMAL_NAME, WLAN_PARAM_HexInteger,
5017 struct hdd_config, wlm_latency_flags_normal,
5018 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5019 CFG_LATENCY_FLAGS_NORMAL_DEFAULT,
5020 CFG_LATENCY_FLAGS_NORMAL_MIN,
5021 CFG_LATENCY_FLAGS_NORMAL_MAX),
5022
5023 REG_VARIABLE(CFG_LATENCY_FLAGS_MODERATE_NAME, WLAN_PARAM_HexInteger,
5024 struct hdd_config, wlm_latency_flags_moderate,
5025 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5026 CFG_LATENCY_FLAGS_MODERATE_DEFAULT,
5027 CFG_LATENCY_FLAGS_MODERATE_MIN,
5028 CFG_LATENCY_FLAGS_MODERATE_MAX),
5029
5030 REG_VARIABLE(CFG_LATENCY_FLAGS_LOW_NAME, WLAN_PARAM_HexInteger,
5031 struct hdd_config, wlm_latency_flags_low,
5032 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5033 CFG_LATENCY_FLAGS_LOW_DEFAULT,
5034 CFG_LATENCY_FLAGS_LOW_MIN,
5035 CFG_LATENCY_FLAGS_LOW_MAX),
5036
5037 REG_VARIABLE(CFG_LATENCY_FLAGS_ULTRALOW_NAME, WLAN_PARAM_HexInteger,
5038 struct hdd_config, wlm_latency_flags_ultralow,
5039 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5040 CFG_LATENCY_FLAGS_ULTRALOW_DEFAULT,
5041 CFG_LATENCY_FLAGS_ULTRALOW_MIN,
5042 CFG_LATENCY_FLAGS_ULTRALOW_MAX),
5043
Himanshu Agarwal8bcec572017-09-28 11:54:37 +05305044 REG_VARIABLE(CFG_RSSI_WEIGHTAGE_NAME, WLAN_PARAM_Integer,
5045 struct hdd_config, rssi_weightage,
5046 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5047 CFG_RSSI_WEIGHTAGE_DEFAULT,
5048 CFG_RSSI_WEIGHTAGE_MIN,
5049 CFG_RSSI_WEIGHTAGE_MAX),
5050
5051 REG_VARIABLE(CFG_HT_CAPABILITY_WEIGHTAGE_NAME, WLAN_PARAM_Integer,
5052 struct hdd_config, ht_caps_weightage,
5053 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5054 CFG_HT_CAPABILITY_WEIGHTAGE_DEFAULT,
5055 CFG_HT_CAPABILITY_WEIGHTAGE_MIN,
5056 CFG_HT_CAPABILITY_WEIGHTAGE_MAX),
5057
5058 REG_VARIABLE(CFG_VHT_CAPABILITY_WEIGHTAGE_NAME, WLAN_PARAM_Integer,
5059 struct hdd_config, vht_caps_weightage,
5060 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5061 CFG_VHT_CAPABILITY_WEIGHTAGE_DEFAULT,
5062 CFG_VHT_CAPABILITY_WEIGHTAGE_MIN,
5063 CFG_VHT_CAPABILITY_WEIGHTAGE_MAX),
5064
5065 REG_VARIABLE(CFG_HE_CAPABILITY_WEIGHTAGE_NAME, WLAN_PARAM_Integer,
5066 struct hdd_config, he_caps_weightage,
5067 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5068 CFG_HE_CAPABILITY_WEIGHTAGE_DEFAULT,
5069 CFG_HE_CAPABILITY_WEIGHTAGE_MIN,
5070 CFG_HE_CAPABILITY_WEIGHTAGE_MAX),
5071
5072 REG_VARIABLE(CFG_CHAN_WIDTH_WEIGHTAGE_NAME, WLAN_PARAM_Integer,
5073 struct hdd_config, chan_width_weightage,
5074 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5075 CFG_CHAN_WIDTH_WEIGHTAGE_DEFAULT,
5076 CFG_CHAN_WIDTH_WEIGHTAGE_MIN,
5077 CFG_CHAN_WIDTH_WEIGHTAGE_MAX),
5078
5079 REG_VARIABLE(CFG_CHAN_BAND_WEIGHTAGE_NAME, WLAN_PARAM_Integer,
5080 struct hdd_config, chan_band_weightage,
5081 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5082 CFG_CHAN_BAND_WEIGHTAGE_DEFAULT,
5083 CFG_CHAN_BAND_WEIGHTAGE_MIN,
5084 CFG_CHAN_BAND_WEIGHTAGE_MAX),
5085
5086 REG_VARIABLE(CFG_NSS_WEIGHTAGE_NAME, WLAN_PARAM_Integer,
5087 struct hdd_config, nss_weightage,
5088 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5089 CFG_NSS_WEIGHTAGE_DEFAULT,
5090 CFG_NSS_WEIGHTAGE_MIN,
5091 CFG_NSS_WEIGHTAGE_MAX),
5092
5093 REG_VARIABLE(CFG_BEAMFORMING_CAP_WEIGHTAGE_NAME, WLAN_PARAM_Integer,
5094 struct hdd_config, beamforming_cap_weightage,
5095 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5096 CFG_BEAMFORMING_CAP_WEIGHTAGE_DEFAULT,
5097 CFG_BEAMFORMING_CAP_WEIGHTAGE_MIN,
5098 CFG_BEAMFORMING_CAP_WEIGHTAGE_MAX),
5099
5100 REG_VARIABLE(CFG_PCL_WEIGHT_WEIGHTAGE_NAME, WLAN_PARAM_Integer,
5101 struct hdd_config, pcl_weightage,
5102 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5103 CFG_PCL_WEIGHT_DEFAULT,
5104 CFG_PCL_WEIGHT_MIN,
5105 CFG_PCL_WEIGHT_MAX),
5106
5107 REG_VARIABLE(CFG_CHANNEL_CONGESTION_WEIGHTAGE_NAME, WLAN_PARAM_Integer,
5108 struct hdd_config, channel_congestion_weightage,
5109 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5110 CFG_CHANNEL_CONGESTION_WEIGHTAGE_DEFAULT,
5111 CFG_CHANNEL_CONGESTION_WEIGHTAGE_MIN,
5112 CFG_CHANNEL_CONGESTION_WEIGHTAGE_MAX),
5113
5114 REG_VARIABLE(CFG_OCE_WAN_WEIGHTAGE_NAME, WLAN_PARAM_Integer,
5115 struct hdd_config, oce_wan_weightage,
5116 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5117 CFG_OCE_WAN_WEIGHTAGE_DEFAULT,
5118 CFG_OCE_WAN_WEIGHTAGE_MIN,
5119 CFG_OCE_WAN_WEIGHTAGE_MAX),
5120
5121 REG_VARIABLE(CFG_BEST_RSSI_THRESHOLD_NAME, WLAN_PARAM_Integer,
5122 struct hdd_config, best_rssi_threshold,
5123 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5124 CFG_BEST_RSSI_THRESHOLD_DEFAULT,
5125 CFG_BEST_RSSI_THRESHOLD_MIN,
5126 CFG_BEST_RSSI_THRESHOLD_MAX),
5127
5128 REG_VARIABLE(CFG_GOOD_RSSI_THRESHOLD_NAME, WLAN_PARAM_Integer,
5129 struct hdd_config, good_rssi_threshold,
5130 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5131 CFG_GOOD_RSSI_THRESHOLD_DEFAULT,
5132 CFG_GOOD_RSSI_THRESHOLD_MIN,
5133 CFG_GOOD_RSSI_THRESHOLD_MAX),
5134
5135 REG_VARIABLE(CFG_BAD_RSSI_THRESHOLD_NAME, WLAN_PARAM_Integer,
5136 struct hdd_config, bad_rssi_threshold,
5137 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5138 CFG_BAD_RSSI_THRESHOLD_DEFAULT,
5139 CFG_BAD_RSSI_THRESHOLD_MIN,
5140 CFG_BAD_RSSI_THRESHOLD_MAX),
5141
5142 REG_VARIABLE(CFG_GOOD_RSSI_PCNT_NAME, WLAN_PARAM_Integer,
5143 struct hdd_config, good_rssi_pcnt,
5144 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5145 CFG_GOOD_RSSI_PCNT_DEFAULT,
5146 CFG_GOOD_RSSI_PCNT_MIN,
5147 CFG_GOOD_RSSI_PCNT_MAX),
5148
5149 REG_VARIABLE(CFG_BAD_RSSI_PCNT_NAME, WLAN_PARAM_Integer,
5150 struct hdd_config, bad_rssi_pcnt,
5151 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5152 CFG_BAD_RSSI_PCNT_DEFAULT,
5153 CFG_BAD_RSSI_PCNT_MIN,
5154 CFG_BAD_RSSI_PCNT_MAX),
5155
5156 REG_VARIABLE(CFG_GOOD_RSSI_BUCKET_SIZE_NAME, WLAN_PARAM_Integer,
5157 struct hdd_config, good_rssi_bucket_size,
5158 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5159 CFG_GOOD_RSSI_BUCKET_SIZE_DEFAULT,
5160 CFG_GOOD_RSSI_BUCKET_SIZE_MIN,
5161 CFG_GOOD_RSSI_BUCKET_SIZE_MAX),
5162
5163 REG_VARIABLE(CFG_BAD_RSSI_BUCKET_SIZE_NAME, WLAN_PARAM_Integer,
5164 struct hdd_config, bad_rssi_bucket_size,
5165 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5166 CFG_BAD_RSSI_BUCKET_SIZE_DEFAULT,
5167 CFG_BAD_RSSI_BUCKET_SIZE_MIN,
5168 CFG_BAD_RSSI_BUCKET_SIZE_MAX),
5169
5170 REG_VARIABLE(CFG_RSSI_PERF_5G_THRESHOLD_NAME, WLAN_PARAM_Integer,
5171 struct hdd_config, rssi_pref_5g_rssi_thresh,
5172 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5173 CFG_RSSI_PERF_5G_THRESHOLD_DEFAULT,
5174 CFG_RSSI_PERF_5G_THRESHOLD_MIN,
5175 CFG_RSSI_PERF_5G_THRESHOLD_MAX),
5176
5177 REG_VARIABLE(CFG_BAND_WIDTH_WEIGHT_PER_INDEX_NAME,
5178 WLAN_PARAM_HexInteger,
5179 struct hdd_config, bandwidth_weight_per_index,
5180 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5181 CFG_BAND_WIDTH_WEIGHT_PER_INDEX_DEFAULT,
5182 CFG_BAND_WIDTH_WEIGHT_PER_INDEX_MIN,
5183 CFG_BAND_WIDTH_WEIGHT_PER_INDEX_MAX),
5184
5185 REG_VARIABLE(CFG_NSS_WEIGHT_PER_INDEX_NAME, WLAN_PARAM_HexInteger,
5186 struct hdd_config, nss_weight_per_index,
5187 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5188 CFG_NSS_WEIGHT_PER_INDEX_DEFAULT,
5189 CFG_NSS_WEIGHT_PER_INDEX_MIN,
5190 CFG_NSS_WEIGHT_PER_INDEX_MAX),
5191
5192 REG_VARIABLE(CFG_BAND_WEIGHT_PER_INDEX_NAME, WLAN_PARAM_HexInteger,
5193 struct hdd_config, band_weight_per_index,
5194 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5195 CFG_BAND_WEIGHT_PER_INDEX_DEFAULT,
5196 CFG_BAND_WEIGHT_PER_INDEX_MIN,
5197 CFG_BAND_WEIGHT_PER_INDEX_MAX),
5198
5199 REG_VARIABLE(CFG_ESP_QBSS_SLOTS_NAME, WLAN_PARAM_Integer,
5200 struct hdd_config, num_esp_qbss_slots,
5201 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5202 CFG_ESP_QBSS_SLOTS_DEFAULT,
5203 CFG_ESP_QBSS_SLOTS_MIN,
5204 CFG_ESP_QBSS_SLOTS_MAX),
5205
5206 REG_VARIABLE(CFG_ESP_QBSS_SCORE_IDX3_TO_0_NAME, WLAN_PARAM_HexInteger,
5207 struct hdd_config, esp_qbss_score_slots3_to_0,
5208 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5209 CFG_ESP_QBSS_SCORE_IDX3_TO_0_DEFAULT,
5210 CFG_ESP_QBSS_SCORE_IDX3_TO_0_MIN,
5211 CFG_ESP_QBSS_SCORE_IDX3_TO_0_MAX),
5212
5213 REG_VARIABLE(CFG_ESP_QBSS_SCORE_IDX7_TO_4_NAME, WLAN_PARAM_HexInteger,
5214 struct hdd_config, esp_qbss_score_slots7_to_4,
5215 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5216 CFG_ESP_QBSS_SCORE_IDX7_TO_4_DEFAULT,
5217 CFG_ESP_QBSS_SCORE_IDX7_TO_4_MIN,
5218 CFG_ESP_QBSS_SCORE_IDX7_TO_4_MAX),
5219
5220 REG_VARIABLE(CFG_ESP_QBSS_SCORE_IDX11_TO_8_NAME, WLAN_PARAM_HexInteger,
5221 struct hdd_config, esp_qbss_score_slots11_to_8,
5222 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5223 CFG_ESP_QBSS_SCORE_IDX11_TO_8_DEFAULT,
5224 CFG_ESP_QBSS_SCORE_IDX11_TO_8_MIN,
5225 CFG_ESP_QBSS_SCORE_IDX11_TO_8_MAX),
5226
5227 REG_VARIABLE(CFG_ESP_QBSS_SCORE_IDX15_TO_12_NAME, WLAN_PARAM_HexInteger,
5228 struct hdd_config, esp_qbss_score_slots15_to_12,
5229 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5230 CFG_ESP_QBSS_SCORE_IDX15_TO_12_DEFAULT,
5231 CFG_ESP_QBSS_SCORE_IDX15_TO_12_MIN,
5232 CFG_ESP_QBSS_SCORE_IDX15_TO_12_MAX),
5233
5234 REG_VARIABLE(CFG_OCE_WAN_SLOTS_NAME, WLAN_PARAM_Integer,
5235 struct hdd_config, num_oce_wan_slots,
5236 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5237 CFG_OCE_WAN_SLOTS_DEFAULT,
5238 CFG_OCE_WAN_SLOTS_MIN,
5239 CFG_OCE_WAN_SLOTS_MAX),
5240
5241 REG_VARIABLE(CFG_OCE_WAN_SCORE_IDX3_TO_0_NAME, WLAN_PARAM_HexInteger,
5242 struct hdd_config, oce_wan_score_slots3_to_0,
5243 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5244 CFG_OCE_WAN_SCORE_IDX3_TO_0_DEFAULT,
5245 CFG_OCE_WAN_SCORE_IDX3_TO_0_MIN,
5246 CFG_OCE_WAN_SCORE_IDX3_TO_0_MAX),
5247
5248 REG_VARIABLE(CFG_OCE_WAN_SCORE_IDX7_TO_4_NAME, WLAN_PARAM_HexInteger,
5249 struct hdd_config, oce_wan_score_slots7_to_4,
5250 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5251 CFG_OCE_WAN_SCORE_IDX7_TO_4_DEFAULT,
5252 CFG_OCE_WAN_SCORE_IDX7_TO_4_MIN,
5253 CFG_OCE_WAN_SCORE_IDX7_TO_4_MAX),
5254
5255 REG_VARIABLE(CFG_OCE_WAN_SCORE_IDX11_TO_8_NAME, WLAN_PARAM_HexInteger,
5256 struct hdd_config, oce_wan_score_slots11_to_8,
5257 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5258 CFG_OCE_WAN_SCORE_IDX11_TO_8_DEFAULT,
5259 CFG_OCE_WAN_SCORE_IDX11_TO_8_MIN,
5260 CFG_OCE_WAN_SCORE_IDX11_TO_8_MAX),
5261
5262 REG_VARIABLE(CFG_OCE_WAN_SCORE_IDX15_TO_12_NAME, WLAN_PARAM_HexInteger,
5263 struct hdd_config, oce_wan_score_slots15_to_12,
5264 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5265 CFG_OCE_WAN_SCORE_IDX15_TO_12_DEFAULT,
5266 CFG_OCE_WAN_SCORE_IDX15_TO_12_MIN,
5267 CFG_OCE_WAN_SCORE_IDX15_TO_12_MAX),
5268
5269 REG_VARIABLE(CFG_ENABLE_SCORING_FOR_ROAM_NAME, WLAN_PARAM_Integer,
5270 struct hdd_config, enable_scoring_for_roam,
5271 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5272 CFG_ENABLE_SCORING_FOR_ROAM_DEFAULT,
5273 CFG_ENABLE_SCORING_FOR_ROAM_MIN,
5274 CFG_ENABLE_SCORING_FOR_ROAM_MAX),
5275
Abhishek Singh6454ad32017-12-20 10:42:21 +05305276 REG_VARIABLE(CFG_FORCE_RSNE_OVERRIDE_NAME, WLAN_PARAM_Integer,
5277 struct hdd_config, force_rsne_override,
5278 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5279 CFG_FORCE_RSNE_OVERRIDE_DEFAULT,
5280 CFG_FORCE_RSNE_OVERRIDE_MIN,
5281 CFG_FORCE_RSNE_OVERRIDE_MAX),
5282
Ashwini Patilf2bf05e2017-03-10 03:41:03 +05305283 REG_VARIABLE(CFG_MBO_CANDIDATE_RSSI_THRESHOLD_NAME,
5284 WLAN_PARAM_SignedInteger, struct hdd_config,
5285 mbo_candidate_rssi_thres,
5286 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5287 CFG_CANDIDATE_RSSI_THRESHOLD_DEFAULT,
5288 CFG_CANDIDATE_RSSI_THRESHOLD_MIN,
5289 CFG_CANDIDATE_RSSI_THRESHOLD_MAX),
5290
5291 REG_VARIABLE(CFG_MBO_CURRENT_RSSI_THRESHOLD_NAME,
5292 WLAN_PARAM_SignedInteger, struct hdd_config,
5293 mbo_current_rssi_thres,
5294 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5295 CFG_CURRENT_RSSI_THRESHOLD_DEFAULT,
5296 CFG_CURRENT_RSSI_THRESHOLD_MIN,
5297 CFG_CURRENT_RSSI_THRESHOLD_MAX),
5298
5299 REG_VARIABLE(CFG_MBO_CUR_RSSI_MCC_THRESHOLD_NAME,
5300 WLAN_PARAM_SignedInteger, struct hdd_config,
5301 mbo_current_rssi_mcc_thres,
5302 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5303 CFG_MBO_CUR_RSSI_MCC_THRESHOLD_DEFAULT,
5304 CFG_MBO_CUR_RSSI_MCC_THRESHOLD_MIN,
5305 CFG_MBO_CUR_RSSI_MCC_THRESHOLD_MAX),
5306
5307 REG_VARIABLE(CFG_MBO_CAND_RSSI_BTC_THRESHOLD_NAME,
5308 WLAN_PARAM_SignedInteger, struct hdd_config,
5309 mbo_candidate_rssi_btc_thres,
5310 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5311 CFG_MBO_CAND_RSSI_BTC_THRESHOLD_DEFAULT,
5312 CFG_MBO_CAND_RSSI_BTC_THRESHOLD_MIN,
5313 CFG_MBO_CAND_RSSI_BTC_THRESHOLD_MAX),
Vignesh Viswanathancc7f1b92017-09-28 13:12:24 +05305314 REG_VARIABLE(CFG_IS_FILS_ENABLED_NAME, WLAN_PARAM_Integer,
5315 struct hdd_config, is_fils_enabled,
5316 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5317 CFG_IS_FILS_ENABLED_DEFAULT,
5318 CFG_IS_FILS_ENABLED_MIN,
5319 CFG_IS_FILS_ENABLED_MAX),
Hanumanth Reddy Pothula3def8942017-10-05 16:19:36 +05305320
5321 REG_VARIABLE(CFG_ENABLE_PACKET_FILTERS_NAME, WLAN_PARAM_Integer,
5322 struct hdd_config, packet_filters_bitmap,
5323 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5324 CFG_ENABLE_PACKET_FILTERS_DEFAULT,
5325 CFG_ENABLE_PACKET_FILTERS_MIN,
5326 CFG_ENABLE_PACKET_FILTERS_MAX),
lifeng1c16b6b2017-09-25 13:59:55 +08005327
5328 REG_VARIABLE(CFG_DFS_BEACON_TX_ENHANCED, WLAN_PARAM_Integer,
5329 struct hdd_config, dfs_beacon_tx_enhanced,
5330 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5331 CFG_DFS_BEACON_TX_ENHANCED_DEFAULT,
5332 CFG_DFS_BEACON_TX_ENHANCED_MIN,
5333 CFG_DFS_BEACON_TX_ENHANCED_MAX),
lifeng7c607dd2017-02-21 21:16:49 +08005334
5335 REG_VARIABLE(CFG_REDUCED_BEACON_INTERVAL, WLAN_PARAM_Integer,
5336 struct hdd_config, reduced_beacon_interval,
5337 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5338 CFG_REDUCED_BEACON_INTERVAL_DEFAULT,
5339 CFG_REDUCED_BEACON_INTERVAL_MIN,
5340 CFG_REDUCED_BEACON_INTERVAL_MAX),
Yeshwanth Sriram Guntuka2ba6fe92017-10-04 14:40:45 +05305341
5342 REG_VARIABLE(CFG_OCE_ENABLE_RSSI_BASED_ASSOC_REJECT_NAME,
5343 WLAN_PARAM_Integer, struct hdd_config,
5344 rssi_assoc_reject_enabled,
5345 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5346 CFG_OCE_ENABLE_RSSI_BASED_ASSOC_REJECT_DEFAULT,
5347 CFG_OCE_ENABLE_RSSI_BASED_ASSOC_REJECT_MIN,
5348 CFG_OCE_ENABLE_RSSI_BASED_ASSOC_REJECT_MAX),
5349
5350 REG_VARIABLE(CFG_OCE_PROBE_REQ_RATE_NAME, WLAN_PARAM_Integer,
5351 struct hdd_config, oce_probe_req_rate_enabled,
5352 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5353 CFG_OCE_PROBE_REQ_RATE_DEFAULT,
5354 CFG_OCE_PROBE_REQ_RATE_MIN,
5355 CFG_OCE_PROBE_REQ_RATE_MAX),
5356
5357 REG_VARIABLE(CFG_OCE_PROBE_RSP_RATE_NAME, WLAN_PARAM_Integer,
5358 struct hdd_config, oce_probe_resp_rate_enabled,
5359 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5360 CFG_OCE_PROBE_RSP_RATE_DEFAULT,
5361 CFG_OCE_PROBE_RSP_RATE_MIN,
5362 CFG_OCE_PROBE_RSP_RATE_MAX),
5363
5364 REG_VARIABLE(CFG_OCE_BEACON_RATE_NAME, WLAN_PARAM_Integer,
5365 struct hdd_config, oce_beacon_rate_enabled,
5366 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5367 CFG_OCE_BEACON_RATE_DEFAULT,
5368 CFG_OCE_BEACON_RATE_MIN,
5369 CFG_OCE_BEACON_RATE_MAX),
5370
5371 REG_VARIABLE(CFG_ENABLE_PROBE_REQ_DEFERRAL_NAME, WLAN_PARAM_Integer,
5372 struct hdd_config, probe_req_deferral_enabled,
5373 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5374 CFG_ENABLE_PROBE_REQ_DEFERRAL_DEFAULT,
5375 CFG_ENABLE_PROBE_REQ_DEFERRAL_MIN,
5376 CFG_ENABLE_PROBE_REQ_DEFERRAL_MAX),
5377
5378 REG_VARIABLE(CFG_ENABLE_FILS_DISCOVERY_SAP_NAME, WLAN_PARAM_Integer,
5379 struct hdd_config, fils_discovery_sap_enabled,
5380 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5381 CFG_ENABLE_FILS_DISCOVERY_SAP_DEFAULT,
5382 CFG_ENABLE_FILS_DISCOVERY_SAP_MIN,
5383 CFG_ENABLE_FILS_DISCOVERY_SAP_MAX),
5384
5385 REG_VARIABLE(CFG_ENABLE_ESP_FEATURE_NAME, WLAN_PARAM_Integer,
5386 struct hdd_config, esp_for_roam_enabled,
5387 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5388 CFG_ENABLE_ESP_FEATURE_DEFAULT,
5389 CFG_ENABLE_ESP_FEATURE_MIN,
5390 CFG_ENABLE_ESP_FEATURE_MAX),
5391
Naveen Rawat269b4ed2017-12-07 06:47:32 -08005392 REG_VARIABLE(CFG_TX_CHAIN_MASK_2G_NAME, WLAN_PARAM_Integer,
5393 struct hdd_config, tx_chain_mask_2g,
5394 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5395 CFG_TX_CHAIN_MASK_2G_DEFAULT,
5396 CFG_TX_CHAIN_MASK_2G_MIN,
5397 CFG_TX_CHAIN_MASK_2G_MAX),
5398
5399 REG_VARIABLE(CFG_RX_CHAIN_MASK_2G_NAME, WLAN_PARAM_Integer,
5400 struct hdd_config, rx_chain_mask_2g,
5401 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5402 CFG_RX_CHAIN_MASK_2G_DEFAULT,
5403 CFG_RX_CHAIN_MASK_2G_MIN,
5404 CFG_RX_CHAIN_MASK_2G_MAX),
5405
5406 REG_VARIABLE(CFG_TX_CHAIN_MASK_5G_NAME, WLAN_PARAM_Integer,
5407 struct hdd_config, tx_chain_mask_5g,
5408 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5409 CFG_TX_CHAIN_MASK_5G_DEFAULT,
5410 CFG_TX_CHAIN_MASK_5G_MIN,
5411 CFG_TX_CHAIN_MASK_5G_MAX),
5412
5413 REG_VARIABLE(CFG_RX_CHAIN_MASK_5G_NAME, WLAN_PARAM_Integer,
5414 struct hdd_config, rx_chain_mask_5g,
5415 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5416 CFG_RX_CHAIN_MASK_5G_DEFAULT,
5417 CFG_RX_CHAIN_MASK_5G_MIN,
5418 CFG_RX_CHAIN_MASK_5G_MAX),
yeshwanth sriram guntuka41f936c2017-09-01 17:53:49 +05305419
5420 REG_VARIABLE(CFG_BTM_ENABLE_NAME, WLAN_PARAM_HexInteger,
5421 struct hdd_config, btm_offload_config,
5422 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5423 CFG_BTM_ENABLE_DEFAULT,
5424 CFG_BTM_ENABLE_MIN,
5425 CFG_BTM_ENABLE_MAX),
Padma, Santhosh Kumar3e47c632017-09-01 20:15:27 +05305426
5427#ifdef WLAN_FEATURE_SAE
5428 REG_VARIABLE(CFG_IS_SAE_ENABLED_NAME, WLAN_PARAM_Integer,
5429 struct hdd_config, is_sae_enabled,
5430 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5431 CFG_IS_SAE_ENABLED_DEFAULT,
5432 CFG_IS_SAE_ENABLED_MIN,
5433 CFG_IS_SAE_ENABLED_MAX),
5434#endif
Jiachao Wu84bb2ea2018-01-08 16:17:33 +08005435
5436 REG_VARIABLE(CFG_BTM_SOLICITED_TIMEOUT, WLAN_PARAM_Integer,
5437 struct hdd_config, btm_solicited_timeout,
5438 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5439 CFG_BTM_SOLICITED_TIMEOUT_DEFAULT,
5440 CFG_BTM_SOLICITED_TIMEOUT_MIN,
5441 CFG_BTM_SOLICITED_TIMEOUT_MAX),
5442
5443 REG_VARIABLE(CFG_BTM_MAX_ATTEMPT_CNT, WLAN_PARAM_Integer,
5444 struct hdd_config, btm_max_attempt_cnt,
5445 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5446 CFG_BTM_MAX_ATTEMPT_CNT_DEFAULT,
5447 CFG_BTM_MAX_ATTEMPT_CNT_MIN,
5448 CFG_BTM_MAX_ATTEMPT_CNT_MAX),
5449
5450 REG_VARIABLE(CFG_BTM_STICKY_TIME, WLAN_PARAM_Integer,
5451 struct hdd_config, btm_sticky_time,
5452 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5453 CFG_BTM_STICKY_TIME_DEFAULT,
5454 CFG_BTM_STICKY_TIME_MIN,
5455 CFG_BTM_STICKY_TIME_MAX),
Ashish Kumar Dhanotiyacb14b112018-01-19 19:26:44 +05305456
5457 REG_VARIABLE(CFG_ENABLE_GCMP_NAME, WLAN_PARAM_Integer,
5458 struct hdd_config, gcmp_enabled,
5459 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5460 CFG_ENABLE_GCMP_DEFAULT,
5461 CFG_ENABLE_GCMP_MIN,
5462 CFG_ENABLE_GCMP_MAX),
Vignesh Viswanathan694e28e2018-01-18 20:53:57 +05305463
5464 REG_VARIABLE(CFG_OFFLOAD_11K_ENABLE_BITMASK_NAME,
5465 WLAN_PARAM_Integer,
5466 struct hdd_config, offload_11k_enable_bitmask,
5467 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5468 CFG_OFFLOAD_11K_ENABLE_BITMASK_DEFAULT,
5469 CFG_OFFLOAD_11K_ENABLE_BITMASK_MIN,
5470 CFG_OFFLOAD_11K_ENABLE_BITMASK_MAX),
5471
5472 REG_VARIABLE(CFG_OFFLOAD_NEIGHBOR_REPORT_PARAMS_BITMASK_NAME,
5473 WLAN_PARAM_Integer,
5474 struct hdd_config, neighbor_report_offload_params_bitmask,
5475 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5476 CFG_OFFLOAD_NEIGHBOR_REPORT_PARAMS_BITMASK_DEFAULT,
5477 CFG_OFFLOAD_NEIGHBOR_REPORT_PARAMS_BITMASK_MIN,
5478 CFG_OFFLOAD_NEIGHBOR_REPORT_PARAMS_BITMASK_MAX),
5479
5480 REG_VARIABLE(CFG_OFFLOAD_NEIGHBOR_REPORT_TIME_OFFSET_NAME,
5481 WLAN_PARAM_Integer,
5482 struct hdd_config, neighbor_report_offload_time_offset,
5483 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5484 CFG_OFFLOAD_NEIGHBOR_REPORT_TIME_OFFSET_DEFAULT,
5485 CFG_OFFLOAD_NEIGHBOR_REPORT_TIME_OFFSET_MIN,
5486 CFG_OFFLOAD_NEIGHBOR_REPORT_TIME_OFFSET_MAX),
5487
5488 REG_VARIABLE(CFG_OFFLOAD_NEIGHBOR_REPORT_LOW_RSSI_OFFSET_NAME,
5489 WLAN_PARAM_Integer,
5490 struct hdd_config, neighbor_report_offload_low_rssi_offset,
5491 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5492 CFG_OFFLOAD_NEIGHBOR_REPORT_LOW_RSSI_OFFSET_DEFAULT,
5493 CFG_OFFLOAD_NEIGHBOR_REPORT_LOW_RSSI_OFFSET_MIN,
5494 CFG_OFFLOAD_NEIGHBOR_REPORT_LOW_RSSI_OFFSET_MAX),
5495
5496 REG_VARIABLE(CFG_OFFLOAD_NEIGHBOR_REPORT_BMISS_COUNT_TRIGGER_NAME,
5497 WLAN_PARAM_Integer,
5498 struct hdd_config,
5499 neighbor_report_offload_bmiss_count_trigger,
5500 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5501 CFG_OFFLOAD_NEIGHBOR_REPORT_BMISS_COUNT_TRIGGER_DEFAULT,
5502 CFG_OFFLOAD_NEIGHBOR_REPORT_BMISS_COUNT_TRIGGER_MIN,
5503 CFG_OFFLOAD_NEIGHBOR_REPORT_BMISS_COUNT_TRIGGER_MAX),
5504
5505 REG_VARIABLE(CFG_OFFLOAD_NEIGHBOR_REPORT_PER_THRESHOLD_OFFSET_NAME,
5506 WLAN_PARAM_Integer,
5507 struct hdd_config,
5508 neighbor_report_offload_per_threshold_offset,
5509 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5510 CFG_OFFLOAD_NEIGHBOR_REPORT_PER_THRESHOLD_OFFSET_DEFAULT,
5511 CFG_OFFLOAD_NEIGHBOR_REPORT_PER_THRESHOLD_OFFSET_MIN,
5512 CFG_OFFLOAD_NEIGHBOR_REPORT_PER_THRESHOLD_OFFSET_MAX),
5513
5514 REG_VARIABLE(CFG_OFFLOAD_NEIGHBOR_REPORT_CACHE_TIMEOUT_NAME,
5515 WLAN_PARAM_Integer,
5516 struct hdd_config, neighbor_report_offload_cache_timeout,
5517 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5518 CFG_OFFLOAD_NEIGHBOR_REPORT_CACHE_TIMEOUT_DEFAULT,
5519 CFG_OFFLOAD_NEIGHBOR_REPORT_CACHE_TIMEOUT_MIN,
5520 CFG_OFFLOAD_NEIGHBOR_REPORT_CACHE_TIMEOUT_MAX),
5521
5522 REG_VARIABLE(CFG_OFFLOAD_NEIGHBOR_REPORT_MAX_REQ_CAP_NAME,
5523 WLAN_PARAM_Integer,
5524 struct hdd_config, neighbor_report_offload_max_req_cap,
5525 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5526 CFG_OFFLOAD_NEIGHBOR_REPORT_MAX_REQ_CAP_DEFAULT,
5527 CFG_OFFLOAD_NEIGHBOR_REPORT_MAX_REQ_CAP_MIN,
5528 CFG_OFFLOAD_NEIGHBOR_REPORT_MAX_REQ_CAP_MAX),
Surabhi Vishnoi7f085d22018-01-30 12:11:14 +05305529
5530 REG_VARIABLE(CFG_WMI_WQ_WATCHDOG, WLAN_PARAM_Integer,
5531 struct hdd_config, wmi_wq_watchdog_timeout,
5532 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5533 CFG_WMI_WQ_WATCHDOG_DEFAULT,
5534 CFG_WMI_WQ_WATCHDOG_MIN,
5535 CFG_WMI_WQ_WATCHDOG_MAX),
Ashish Kumar Dhanotiya191d1642018-02-08 17:43:09 +05305536
5537 REG_VARIABLE(CFG_DTIM_SELECTION_DIVERSITY_NAME,
5538 WLAN_PARAM_Integer,
5539 struct hdd_config, enable_dtim_selection_diversity,
5540 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5541 CFG_DTIM_SELECTION_DIVERSITY_DEFAULT,
5542 CFG_DTIM_SELECTION_DIVERSITY_MIN,
5543 CFG_DTIM_SELECTION_DIVERSITY_MAX),
Yeshwanth Sriram Guntukadb7995d2018-01-22 16:46:59 +05305544
5545 REG_VARIABLE(CFG_CHANNEL_SELECT_LOGIC_CONC_NAME, WLAN_PARAM_HexInteger,
5546 struct hdd_config, channel_select_logic_conc,
5547 VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
5548 CFG_CHANNEL_SELECT_LOGIC_CONC_DEFAULT,
5549 CFG_CHANNEL_SELECT_LOGIC_CONC_MIN,
5550 CFG_CHANNEL_SELECT_LOGIC_CONC_MAX),
Arun Khandavallifae92942016-08-01 13:31:08 +05305551};
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005552
Amar Singhal5cccafe2017-02-15 12:42:58 -08005553
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005554/**
5555 * get_next_line() - find and locate the new line pointer
5556 * @str: pointer to string
5557 *
5558 * This function returns a pointer to the character after the occurence
5559 * of a new line character. It also modifies the original string by replacing
5560 * the '\n' character with the null character.
5561 *
5562 * Return: the pointer to the character at new line,
5563 * or NULL if no new line character was found
5564 */
5565static char *get_next_line(char *str)
5566{
5567 char c;
5568
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07005569 if (str == NULL || *str == '\0')
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005570 return NULL;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005571
5572 c = *str;
5573 while (c != '\n' && c != '\0' && c != 0xd) {
5574 str = str + 1;
5575 c = *str;
5576 }
5577
Jeff Johnson68755312017-02-10 11:46:55 -08005578 if (c == '\0')
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005579 return NULL;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005580
Jeff Johnson68755312017-02-10 11:46:55 -08005581 *str = '\0';
Jeff Johnson68755312017-02-10 11:46:55 -08005582 return str + 1;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005583}
5584
5585/** look for space. Ascii values to look are
5586 * 0x09 == horizontal tab
5587 * 0x0a == Newline ("\n")
5588 * 0x0b == vertical tab
5589 * 0x0c == Newpage or feed form.
5590 * 0x0d == carriage return (CR or "\r")
5591 * Null ('\0') should not considered as space.
5592 */
5593#define i_isspace(ch) (((ch) >= 0x09 && (ch) <= 0x0d) || (ch) == ' ')
5594
5595/**
5596 * i_trim() - trims any leading and trailing white spaces
5597 * @str: pointer to string
5598 *
5599 * Return: the pointer of the string
5600 */
5601static char *i_trim(char *str)
5602{
5603 char *ptr;
5604
5605 if (*str == '\0')
5606 return str;
5607
5608 /* Find the first non white-space */
5609 ptr = str;
5610 while (i_isspace(*ptr))
5611 ptr++;
5612
5613 if (*ptr == '\0')
5614 return str;
5615
5616 /* This is the new start of the string */
5617 str = ptr;
5618
5619 /* Find the last non white-space */
5620 ptr += strlen(ptr) - 1;
5621
5622 while (ptr != str && i_isspace(*ptr))
5623 ptr--;
5624
5625 /* Null terminate the following character */
5626 ptr[1] = '\0';
5627
5628 return str;
5629}
5630
5631/* Maximum length of the confgiuration name and value */
5632#define CFG_VALUE_MAX_LEN 256
5633#define CFG_ENTRY_MAX_LEN (32+CFG_VALUE_MAX_LEN)
5634
5635/**
5636 * hdd_cfg_get_config() - get the configuration content
5637 * @reg_table: pointer to configuration table
5638 * @cRegTableEntries: number of the configuration entries
5639 * @ini_struct: pointer to the hdd config knob
Jeff Johnson723234b2017-09-03 08:49:15 -07005640 * @hdd_ctx: pointer to hdd context
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005641 * @pBuf: buffer to store the configuration
5642 * @buflen: size of the buffer
5643 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305644 * Return: QDF_STATUS_SUCCESS if the configuration and buffer size can carry
5645 * the content, otherwise QDF_STATUS_E_RESOURCES
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005646 */
Srinivas Girigowda2fb677c2017-03-25 15:35:34 -07005647static QDF_STATUS hdd_cfg_get_config(struct reg_table_entry *reg_table,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005648 unsigned long cRegTableEntries,
5649 uint8_t *ini_struct,
Jeff Johnson723234b2017-09-03 08:49:15 -07005650 struct hdd_context *hdd_ctx, char *pBuf,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005651 int buflen)
5652{
5653 unsigned int idx;
Srinivas Girigowda2fb677c2017-03-25 15:35:34 -07005654 struct reg_table_entry *pRegEntry = reg_table;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005655 uint32_t value;
5656 char valueStr[CFG_VALUE_MAX_LEN];
5657 char configStr[CFG_ENTRY_MAX_LEN];
5658 char *fmt;
5659 void *pField;
Anurag Chouhan6d760662016-02-20 16:05:43 +05305660 struct qdf_mac_addr *pMacAddr;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005661 char *pCur = pBuf;
5662 int curlen;
5663
5664 /* start with an empty string */
5665 *pCur = '\0';
5666
5667 for (idx = 0; idx < cRegTableEntries; idx++, pRegEntry++) {
5668 pField = ini_struct + pRegEntry->VarOffset;
5669
5670 if ((WLAN_PARAM_Integer == pRegEntry->RegType) ||
5671 (WLAN_PARAM_SignedInteger == pRegEntry->RegType) ||
5672 (WLAN_PARAM_HexInteger == pRegEntry->RegType)) {
5673 value = 0;
Vidyullatha Kanchanapally53241c42017-04-13 19:16:24 +05305674
5675 if ((pRegEntry->VarSize > sizeof(value)) ||
5676 (pRegEntry->VarSize == 0)) {
5677 pr_warn("Invalid length of %s: %d",
5678 pRegEntry->RegName, pRegEntry->VarSize);
5679 continue;
5680 }
5681
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005682 memcpy(&value, pField, pRegEntry->VarSize);
5683 if (WLAN_PARAM_HexInteger == pRegEntry->RegType) {
5684 fmt = "%x";
5685 } else if (WLAN_PARAM_SignedInteger ==
5686 pRegEntry->RegType) {
5687 fmt = "%d";
Vidyullatha Kanchanapally53241c42017-04-13 19:16:24 +05305688 value = sign_extend32(
5689 value,
5690 pRegEntry->VarSize * 8 - 1);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005691 } else {
5692 fmt = "%u";
5693 }
5694 snprintf(valueStr, CFG_VALUE_MAX_LEN, fmt, value);
5695 } else if (WLAN_PARAM_String == pRegEntry->RegType) {
5696 snprintf(valueStr, CFG_VALUE_MAX_LEN, "%s",
5697 (char *)pField);
5698 } else if (WLAN_PARAM_MacAddr == pRegEntry->RegType) {
Anurag Chouhan6d760662016-02-20 16:05:43 +05305699 pMacAddr = (struct qdf_mac_addr *) pField;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005700 snprintf(valueStr, CFG_VALUE_MAX_LEN,
5701 "%02x:%02x:%02x:%02x:%02x:%02x",
5702 pMacAddr->bytes[0],
5703 pMacAddr->bytes[1],
5704 pMacAddr->bytes[2],
5705 pMacAddr->bytes[3],
5706 pMacAddr->bytes[4], pMacAddr->bytes[5]);
5707 } else {
5708 snprintf(valueStr, CFG_VALUE_MAX_LEN, "(unhandled)");
5709 }
5710 curlen = scnprintf(configStr, CFG_ENTRY_MAX_LEN,
5711 "%s=[%s]%s\n",
5712 pRegEntry->RegName,
5713 valueStr,
5714 test_bit(idx,
Jeff Johnson723234b2017-09-03 08:49:15 -07005715 (void *)&hdd_ctx->config->
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005716 bExplicitCfg) ? "*" : "");
5717
5718 /* Ideally we want to return the config to the application,
5719 * however the config is too big so we just printk() for now
5720 */
5721#ifdef RETURN_IN_BUFFER
Hanumanth Reddy Pothulaadf163e2016-09-07 15:11:58 +05305722 if (curlen < buflen) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005723 /* copy string + '\0' */
5724 memcpy(pCur, configStr, curlen + 1);
5725
5726 /* account for addition; */
5727 pCur += curlen;
5728 buflen -= curlen;
5729 } else {
5730 /* buffer space exhausted, return what we have */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305731 return QDF_STATUS_E_RESOURCES;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005732 }
5733#else
5734 printk(KERN_INFO "%s", configStr);
5735#endif /* RETURN_IN_BUFFER */
5736
5737 }
5738
5739#ifndef RETURN_IN_BUFFER
5740 /* notify application that output is in system log */
5741 snprintf(pCur, buflen, "WLAN configuration written to system log");
5742#endif /* RETURN_IN_BUFFER */
5743
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305744 return QDF_STATUS_SUCCESS;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005745}
5746
Jeff Johnson7274ccc2017-09-30 19:45:40 -07005747/** struct hdd_cfg_entry - ini configuration entry
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005748 * @name: name of the entry
5749 * @value: value of the entry
5750 */
Jeff Johnson7274ccc2017-09-30 19:45:40 -07005751struct hdd_cfg_entry {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005752 char *name;
5753 char *value;
Jeff Johnson7274ccc2017-09-30 19:45:40 -07005754};
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005755
5756/**
5757 * find_cfg_item() - find the configuration item
5758 * @iniTable: pointer to configuration table
5759 * @entries: number fo the configuration entries
5760 * @name: the interested configuration to find
5761 * @value: the value to read back
5762 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305763 * Return: QDF_STATUS_SUCCESS if the interested configuration is found,
5764 * otherwise QDF_STATUS_E_FAILURE
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005765 */
Jeff Johnson7274ccc2017-09-30 19:45:40 -07005766static QDF_STATUS find_cfg_item(struct hdd_cfg_entry *iniTable,
5767 unsigned long entries,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005768 char *name, char **value)
5769{
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305770 QDF_STATUS status = QDF_STATUS_E_FAILURE;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005771 unsigned long i;
5772
5773 for (i = 0; i < entries; i++) {
5774 if (strcmp(iniTable[i].name, name) == 0) {
5775 *value = iniTable[i].value;
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005776 hdd_debug("Found %s entry for Name=[%s] Value=[%s] ",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005777 WLAN_INI_FILE, name, *value);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305778 return QDF_STATUS_SUCCESS;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005779 }
5780 }
5781
5782 return status;
5783}
5784
5785/**
5786 * parse_hex_digit() - conversion to hex value
5787 * @c: the character to convert
5788 *
5789 * Return: the hex value, otherwise 0
5790 */
5791static int parse_hex_digit(char c)
5792{
5793 if (c >= '0' && c <= '9')
5794 return c - '0';
5795 if (c >= 'a' && c <= 'f')
5796 return c - 'a' + 10;
5797 if (c >= 'A' && c <= 'F')
5798 return c - 'A' + 10;
5799
5800 return 0;
5801}
5802
5803/**
5804 * update_mac_from_string() - convert string to 6 bytes mac address
Jeff Johnson723234b2017-09-03 08:49:15 -07005805 * @hdd_ctx: the pointer to hdd context
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005806 * @macTable: the macTable to carry the conversion
5807 * @num: number of the interface
5808 *
5809 * 00AA00BB00CC -> 0x00 0xAA 0x00 0xBB 0x00 0xCC
5810 *
5811 * Return: None
5812 */
Jeff Johnson723234b2017-09-03 08:49:15 -07005813static void update_mac_from_string(struct hdd_context *hdd_ctx,
Jeff Johnson7274ccc2017-09-30 19:45:40 -07005814 struct hdd_cfg_entry *macTable, int num)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005815{
5816 int i = 0, j = 0, res = 0;
5817 char *candidate = NULL;
Anurag Chouhan6d760662016-02-20 16:05:43 +05305818 struct qdf_mac_addr macaddr[QDF_MAX_CONCURRENCY_PERSONA];
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005819
5820 memset(macaddr, 0, sizeof(macaddr));
5821
5822 for (i = 0; i < num; i++) {
5823 candidate = macTable[i].value;
Anurag Chouhan6d760662016-02-20 16:05:43 +05305824 for (j = 0; j < QDF_MAC_ADDR_SIZE; j++) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005825 res =
5826 hex2bin(&macaddr[i].bytes[j], &candidate[(j << 1)],
5827 1);
5828 if (res < 0)
5829 break;
5830 }
Anurag Chouhanc5548422016-02-24 18:33:27 +05305831 if (res == 0 && !qdf_is_macaddr_zero(&macaddr[i])) {
Jeff Johnson723234b2017-09-03 08:49:15 -07005832 qdf_mem_copy((uint8_t *) &hdd_ctx->config->
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005833 intfMacAddr[i].bytes[0],
5834 (uint8_t *) &macaddr[i].bytes[0],
Anurag Chouhan6d760662016-02-20 16:05:43 +05305835 QDF_MAC_ADDR_SIZE);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005836 }
5837 }
5838}
5839
5840/**
5841 * hdd_apply_cfg_ini() - apply the ini configuration file
Jeff Johnson723234b2017-09-03 08:49:15 -07005842 * @hdd_ctx: the pointer to hdd context
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005843 * @iniTable: pointer to configuration table
5844 * @entries: number fo the configuration entries
5845 * It overwrites the MAC address if config file exist.
5846 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305847 * Return: QDF_STATUS_SUCCESS if the ini configuration file is correctly parsed,
5848 * otherwise QDF_STATUS_E_INVAL
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005849 */
Jeff Johnson723234b2017-09-03 08:49:15 -07005850static QDF_STATUS hdd_apply_cfg_ini(struct hdd_context *hdd_ctx,
Jeff Johnson7274ccc2017-09-30 19:45:40 -07005851 struct hdd_cfg_entry *iniTable,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005852 unsigned long entries)
5853{
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305854 QDF_STATUS match_status = QDF_STATUS_E_FAILURE;
5855 QDF_STATUS ret_status = QDF_STATUS_SUCCESS;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005856 unsigned int idx;
5857 void *pField;
5858 char *value_str = NULL;
5859 unsigned long len_value_str;
5860 char *candidate;
5861 uint32_t value;
5862 int32_t svalue;
Jeff Johnson723234b2017-09-03 08:49:15 -07005863 void *pStructBase = hdd_ctx->config;
Srinivas Girigowda2fb677c2017-03-25 15:35:34 -07005864 struct reg_table_entry *pRegEntry = g_registry_table;
Anurag Chouhan6d760662016-02-20 16:05:43 +05305865 unsigned long cRegTableEntries = QDF_ARRAY_SIZE(g_registry_table);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005866 uint32_t cbOutString;
5867 int i;
5868 int rv;
5869
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005870 if (MAX_CFG_INI_ITEMS < cRegTableEntries) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005871 hdd_err("MAX_CFG_INI_ITEMS too small, must be at least %ld",
Srinivas Girigowdaba3091c2015-11-16 17:18:40 -08005872 cRegTableEntries);
5873 WARN_ON(1);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005874 }
5875
5876 for (idx = 0; idx < cRegTableEntries; idx++, pRegEntry++) {
5877 /* Calculate the address of the destination field in the structure. */
5878 pField = ((uint8_t *) pStructBase) + pRegEntry->VarOffset;
5879
5880 match_status =
5881 find_cfg_item(iniTable, entries, pRegEntry->RegName,
5882 &value_str);
5883
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305884 if ((match_status != QDF_STATUS_SUCCESS)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005885 && (pRegEntry->Flags & VAR_FLAGS_REQUIRED)) {
5886 /* If we could not read the cfg item and it is required, this is an error. */
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005887 hdd_err("Failed to read required config parameter %s", pRegEntry->RegName);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305888 ret_status = QDF_STATUS_E_FAILURE;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005889 break;
5890 }
5891
5892 if ((WLAN_PARAM_Integer == pRegEntry->RegType) ||
5893 (WLAN_PARAM_HexInteger == pRegEntry->RegType)) {
5894 /* If successfully read from the registry, use the value read.
5895 * If not, use the default value.
5896 */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305897 if (match_status == QDF_STATUS_SUCCESS
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005898 && (WLAN_PARAM_Integer == pRegEntry->RegType)) {
5899 rv = kstrtou32(value_str, 10, &value);
5900 if (rv < 0) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005901 hdd_warn("Reg Parameter %s invalid. Enforcing default", pRegEntry->RegName);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005902 value = pRegEntry->VarDefault;
5903 }
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305904 } else if (match_status == QDF_STATUS_SUCCESS
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005905 && (WLAN_PARAM_HexInteger ==
5906 pRegEntry->RegType)) {
5907 rv = kstrtou32(value_str, 16, &value);
5908 if (rv < 0) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005909 hdd_warn("Reg paramter %s invalid. Enforcing default", pRegEntry->RegName);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005910 value = pRegEntry->VarDefault;
5911 }
5912 } else {
5913 value = pRegEntry->VarDefault;
5914 }
5915
Srinivas Girigowdad1b92582017-03-02 11:47:47 -08005916 /* Only if the parameter is set in the ini file, do the range check here */
5917 if (match_status == QDF_STATUS_SUCCESS &&
5918 pRegEntry->Flags & VAR_FLAGS_RANGE_CHECK) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005919 if (value > pRegEntry->VarMax) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005920 hdd_warn("Reg Parameter %s > allowed Maximum [%u > %lu]. Enforcing Maximum", pRegEntry->RegName,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005921 value, pRegEntry->VarMax);
5922 value = pRegEntry->VarMax;
5923 }
5924
5925 if (value < pRegEntry->VarMin) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005926 hdd_warn("Reg Parameter %s < allowed Minimum [%u < %lu]. Enforcing Minimum", pRegEntry->RegName,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005927 value, pRegEntry->VarMin);
5928 value = pRegEntry->VarMin;
5929 }
5930 }
Srinivas Girigowdad1b92582017-03-02 11:47:47 -08005931 /* Only if the parameter is set in the ini file, do the range check here */
5932 else if (match_status == QDF_STATUS_SUCCESS &&
5933 pRegEntry->Flags &
5934 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005935 if (value > pRegEntry->VarMax) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005936 hdd_warn("Reg Parameter %s > allowed Maximum [%u > %lu]. Enforcing Default: %lu", pRegEntry->RegName,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005937 value, pRegEntry->VarMax,
5938 pRegEntry->VarDefault);
5939 value = pRegEntry->VarDefault;
5940 }
5941
5942 if (value < pRegEntry->VarMin) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005943 hdd_warn("Reg Parameter %s < allowed Minimum [%u < %lu]. Enforcing Default: %lu", pRegEntry->RegName,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005944 value, pRegEntry->VarMin,
5945 pRegEntry->VarDefault);
5946 value = pRegEntry->VarDefault;
5947 }
5948 }
5949 /* Move the variable into the output field. */
5950 memcpy(pField, &value, pRegEntry->VarSize);
5951 } else if (WLAN_PARAM_SignedInteger == pRegEntry->RegType) {
5952 /* If successfully read from the registry, use the value read.
5953 * If not, use the default value.
5954 */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05305955 if (QDF_STATUS_SUCCESS == match_status) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005956 rv = kstrtos32(value_str, 10, &svalue);
5957 if (rv < 0) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005958 hdd_warn("Reg Parameter %s invalid. Enforcing Default", pRegEntry->RegName);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005959 svalue =
5960 (int32_t) pRegEntry->VarDefault;
5961 }
5962 } else {
5963 svalue = (int32_t) pRegEntry->VarDefault;
5964 }
5965
Srinivas Girigowdad1b92582017-03-02 11:47:47 -08005966 /* Only if the parameter is set in the ini file, do the range check here */
5967 if (match_status == QDF_STATUS_SUCCESS &&
5968 pRegEntry->Flags & VAR_FLAGS_RANGE_CHECK) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005969 if (svalue > (int32_t) pRegEntry->VarMax) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005970 hdd_warn("Reg Parameter %s > allowed Maximum "
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005971 "[%d > %d]. Enforcing Maximum", pRegEntry->RegName,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005972 svalue, (int)pRegEntry->VarMax);
5973 svalue = (int32_t) pRegEntry->VarMax;
5974 }
5975
5976 if (svalue < (int32_t) pRegEntry->VarMin) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005977 hdd_warn("Reg Parameter %s < allowed Minimum "
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08005978 "[%d < %d]. Enforcing Minimum", pRegEntry->RegName,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005979 svalue, (int)pRegEntry->VarMin);
5980 svalue = (int32_t) pRegEntry->VarMin;
5981 }
5982 }
Srinivas Girigowdad1b92582017-03-02 11:47:47 -08005983 /* Only if the parameter is set in the ini file, do the range check here */
5984 else if (match_status == QDF_STATUS_SUCCESS &&
5985 pRegEntry->Flags &
5986 VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005987 if (svalue > (int32_t) pRegEntry->VarMax) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005988 hdd_warn("Reg Parameter %s > allowed Maximum "
5989 "[%d > %d]. Enforcing Default: %d", pRegEntry->RegName,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005990 svalue, (int)pRegEntry->VarMax,
5991 (int)pRegEntry->VarDefault);
5992 svalue =
5993 (int32_t) pRegEntry->VarDefault;
5994 }
5995
5996 if (svalue < (int32_t) pRegEntry->VarMin) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07005997 hdd_warn("Reg Parameter %s < allowed Minimum "
5998 "[%d < %d]. Enforcing Default: %d", pRegEntry->RegName,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08005999 svalue, (int)pRegEntry->VarMin,
6000 (int)pRegEntry->VarDefault);
6001 svalue = pRegEntry->VarDefault;
6002 }
6003 }
6004 /* Move the variable into the output field. */
6005 memcpy(pField, &svalue, pRegEntry->VarSize);
6006 }
6007 /* Handle string parameters */
6008 else if (WLAN_PARAM_String == pRegEntry->RegType) {
6009#ifdef WLAN_CFG_DEBUG
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006010 hdd_debug("RegName = %s, VarOffset %u VarSize %u VarDefault %s",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006011 pRegEntry->RegName, pRegEntry->VarOffset,
6012 pRegEntry->VarSize,
6013 (char *)pRegEntry->VarDefault);
6014#endif
6015
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306016 if (match_status == QDF_STATUS_SUCCESS) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006017 len_value_str = strlen(value_str);
6018
6019 if (len_value_str > (pRegEntry->VarSize - 1)) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08006020 hdd_err("Invalid Value=[%s] specified for Name=[%s] in %s", value_str,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006021 pRegEntry->RegName,
6022 WLAN_INI_FILE);
6023 cbOutString =
Srinivas Girigowda2fb677c2017-03-25 15:35:34 -07006024 QDF_MIN(strlen
6025 ((char *)pRegEntry->
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006026 VarDefault),
6027 pRegEntry->VarSize - 1);
6028 memcpy(pField,
6029 (void *)(pRegEntry->VarDefault),
6030 cbOutString);
6031 ((uint8_t *) pField)[cbOutString] =
6032 '\0';
6033 } else {
6034 memcpy(pField, (void *)(value_str),
6035 len_value_str);
6036 ((uint8_t *) pField)[len_value_str] =
6037 '\0';
6038 }
6039 } else {
6040 /* Failed to read the string parameter from the registry. Use the default. */
6041 cbOutString =
Srinivas Girigowda2fb677c2017-03-25 15:35:34 -07006042 QDF_MIN(strlen((char *)pRegEntry->VarDefault),
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006043 pRegEntry->VarSize - 1);
6044 memcpy(pField, (void *)(pRegEntry->VarDefault),
6045 cbOutString);
6046 ((uint8_t *) pField)[cbOutString] = '\0';
6047 }
6048 } else if (WLAN_PARAM_MacAddr == pRegEntry->RegType) {
Anurag Chouhan6d760662016-02-20 16:05:43 +05306049 if (pRegEntry->VarSize != QDF_MAC_ADDR_SIZE) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006050 hdd_warn("Invalid VarSize %u for Name=[%s]", pRegEntry->VarSize,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006051 pRegEntry->RegName);
6052 continue;
6053 }
6054 candidate = (char *)pRegEntry->VarDefault;
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306055 if (match_status == QDF_STATUS_SUCCESS) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006056 len_value_str = strlen(value_str);
Anurag Chouhan6d760662016-02-20 16:05:43 +05306057 if (len_value_str != (QDF_MAC_ADDR_SIZE * 2)) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08006058 hdd_err("Invalid MAC addr [%s] specified for Name=[%s] in %s", value_str,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006059 pRegEntry->RegName,
6060 WLAN_INI_FILE);
6061 } else
6062 candidate = value_str;
6063 }
6064 /* parse the string and store it in the byte array */
Anurag Chouhan6d760662016-02-20 16:05:43 +05306065 for (i = 0; i < QDF_MAC_ADDR_SIZE; i++) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006066 ((char *)pField)[i] =
6067 (char)(parse_hex_digit(candidate[i * 2]) *
6068 16 +
6069 parse_hex_digit(candidate[i * 2 + 1]));
6070 }
6071 } else {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006072 hdd_warn("Unknown param type for name[%s] in registry table", pRegEntry->RegName);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006073 }
6074
6075 /* did we successfully parse a cfg item for this parameter? */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306076 if ((match_status == QDF_STATUS_SUCCESS) &&
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006077 (idx < MAX_CFG_INI_ITEMS)) {
Jeff Johnson723234b2017-09-03 08:49:15 -07006078 set_bit(idx, (void *)&hdd_ctx->config->bExplicitCfg);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006079 }
6080 }
6081
6082 return ret_status;
6083}
6084
6085/**
6086 * hdd_execute_config_command() - executes an arbitrary configuration command
6087 * @reg_table: the pointer to configuration table
6088 * @tableSize: the size of the configuration table
6089 * @ini_struct: pointer to the hdd config knob
Jeff Johnson723234b2017-09-03 08:49:15 -07006090 * @hdd_ctx: the pointer to hdd context
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006091 * @command: the command to run
6092 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306093 * Return: QDF_STATUS_SUCCESS if the command is found and able to execute,
6094 * otherwise the appropriate QDF_STATUS will be returned
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006095 */
Srinivas Girigowda2fb677c2017-03-25 15:35:34 -07006096static QDF_STATUS hdd_execute_config_command(struct reg_table_entry *reg_table,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006097 unsigned long tableSize,
6098 uint8_t *ini_struct,
Jeff Johnson723234b2017-09-03 08:49:15 -07006099 struct hdd_context *hdd_ctx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006100 char *command)
6101{
Srinivas Girigowda2fb677c2017-03-25 15:35:34 -07006102 struct reg_table_entry *pRegEntry;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006103 char *clone;
6104 char *pCmd;
6105 void *pField;
6106 char *name;
6107 char *value_str;
6108 uint32_t value;
6109 int32_t svalue;
6110 size_t len_value_str;
6111 unsigned int idx;
6112 unsigned int i;
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306113 QDF_STATUS vstatus;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006114 int rv;
6115
6116 /* assume failure until proven otherwise */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306117 vstatus = QDF_STATUS_E_FAILURE;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006118
6119 /* clone the command so that we can manipulate it */
6120 clone = kstrdup(command, GFP_ATOMIC);
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07006121 if (NULL == clone)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006122 return vstatus;
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07006123
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006124 /* 'clone' will point to the beginning of the string so it can be freed
6125 * 'pCmd' will be used to walk/parse the command
6126 */
6127 pCmd = clone;
6128
6129 /* get rid of leading/trailing whitespace */
6130 pCmd = i_trim(pCmd);
6131 if ('\0' == *pCmd) {
6132 /* only whitespace */
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08006133 hdd_err("invalid command, only whitespace:[%s]", command);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006134 goto done;
6135 }
6136 /* parse the <name> = <value> */
6137 name = pCmd;
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07006138 while (('=' != *pCmd) && ('\0' != *pCmd))
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006139 pCmd++;
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07006140
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006141 if ('\0' == *pCmd) {
6142 /* did not find '=' */
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08006143 hdd_err("invalid command, no '=':[%s]", command);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006144 goto done;
6145 }
6146 /* replace '=' with NUL to terminate the <name> */
6147 *pCmd++ = '\0';
6148 name = i_trim(name);
6149 if ('\0' == *name) {
6150 /* did not find a name */
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08006151 hdd_err("invalid command, no <name>:[%s]", command);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006152 goto done;
6153 }
6154
6155 value_str = i_trim(pCmd);
6156 if ('\0' == *value_str) {
6157 /* did not find a value */
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08006158 hdd_err("invalid command, no <value>:[%s]", command);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006159 goto done;
6160 }
6161 /* lookup the configuration item */
6162 for (idx = 0; idx < tableSize; idx++) {
6163 if (0 == strcmp(name, reg_table[idx].RegName)) {
6164 /* found a match */
6165 break;
6166 }
6167 }
6168 if (tableSize == idx) {
6169 /* did not match the name */
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08006170 hdd_err("invalid command, unknown configuration item:[%s]", command);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006171 goto done;
6172 }
6173
6174 pRegEntry = &reg_table[idx];
6175 if (!(pRegEntry->Flags & VAR_FLAGS_DYNAMIC_CFG)) {
6176 /* does not support dynamic configuration */
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006177 hdd_err("Global_Registry_Table. %s does not support "
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08006178 "dynamic configuration", name);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306179 vstatus = QDF_STATUS_E_PERM;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006180 goto done;
6181 }
6182
6183 pField = ini_struct + pRegEntry->VarOffset;
6184
6185 switch (pRegEntry->RegType) {
6186 case WLAN_PARAM_Integer:
6187 rv = kstrtou32(value_str, 10, &value);
6188 if (rv < 0)
6189 goto done;
6190 if (value < pRegEntry->VarMin) {
6191 /* out of range */
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006192 hdd_err("Invalid command, value %u < min value %lu", value, pRegEntry->VarMin);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006193 goto done;
6194 }
6195 if (value > pRegEntry->VarMax) {
6196 /* out of range */
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006197 hdd_err("Invalid command, value %u > max value %lu", value, pRegEntry->VarMax);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006198 goto done;
6199 }
6200 memcpy(pField, &value, pRegEntry->VarSize);
6201 break;
6202
6203 case WLAN_PARAM_HexInteger:
6204 rv = kstrtou32(value_str, 16, &value);
6205 if (rv < 0)
6206 goto done;
6207 if (value < pRegEntry->VarMin) {
6208 /* out of range */
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006209 hdd_err("Invalid command, value %x < min value %lx", value, pRegEntry->VarMin);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006210 goto done;
6211 }
6212 if (value > pRegEntry->VarMax) {
6213 /* out of range */
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006214 hdd_err("Invalid command, value %x > max value %lx", value, pRegEntry->VarMax);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006215 goto done;
6216 }
6217 memcpy(pField, &value, pRegEntry->VarSize);
6218 break;
6219
6220 case WLAN_PARAM_SignedInteger:
6221 rv = kstrtos32(value_str, 10, &svalue);
6222 if (rv < 0)
6223 goto done;
6224 if (svalue < (int32_t) pRegEntry->VarMin) {
6225 /* out of range */
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006226 hdd_err("Invalid command, value %d < min value %d", svalue, (int)pRegEntry->VarMin);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006227 goto done;
6228 }
6229 if (svalue > (int32_t) pRegEntry->VarMax) {
6230 /* out of range */
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006231 hdd_err("Invalid command, value %d > max value %d", svalue, (int)pRegEntry->VarMax);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006232 goto done;
6233 }
6234 memcpy(pField, &svalue, pRegEntry->VarSize);
6235 break;
6236
6237 case WLAN_PARAM_String:
6238 len_value_str = strlen(value_str);
6239 if (len_value_str > (pRegEntry->VarSize - 1)) {
6240 /* too big */
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006241 hdd_err("Invalid command, string [%s] length "
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08006242 "%zu exceeds maximum length %u", value_str,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006243 len_value_str, (pRegEntry->VarSize - 1));
6244 goto done;
6245 }
6246 /* copy string plus NUL */
6247 memcpy(pField, value_str, (len_value_str + 1));
6248 break;
6249
6250 case WLAN_PARAM_MacAddr:
6251 len_value_str = strlen(value_str);
Anurag Chouhan6d760662016-02-20 16:05:43 +05306252 if (len_value_str != (QDF_MAC_ADDR_SIZE * 2)) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006253 /* out of range */
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006254 hdd_err("Invalid command, MAC address [%s] length "
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08006255 "%zu is not expected length %u", value_str,
Anurag Chouhan6d760662016-02-20 16:05:43 +05306256 len_value_str, (QDF_MAC_ADDR_SIZE * 2));
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006257 goto done;
6258 }
6259 /* parse the string and store it in the byte array */
Anurag Chouhan6d760662016-02-20 16:05:43 +05306260 for (i = 0; i < QDF_MAC_ADDR_SIZE; i++) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006261 ((char *)pField)[i] = (char)
6262 ((parse_hex_digit(value_str[(i * 2)]) * 16) +
6263 parse_hex_digit(value_str[(i * 2) + 1]));
6264 }
6265 break;
6266
6267 default:
6268 goto done;
6269 }
6270
6271 /* if we get here, we had a successful modification */
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05306272 vstatus = QDF_STATUS_SUCCESS;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006273
6274 /* config table has been modified, is there a notifier? */
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07006275 if (NULL != pRegEntry->pfnDynamicnotify)
Jeff Johnson723234b2017-09-03 08:49:15 -07006276 (pRegEntry->pfnDynamicnotify)(hdd_ctx, pRegEntry->notifyId);
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07006277
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006278 /* note that this item was explicitly configured */
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07006279 if (idx < MAX_CFG_INI_ITEMS)
Jeff Johnson723234b2017-09-03 08:49:15 -07006280 set_bit(idx, (void *)&hdd_ctx->config->bExplicitCfg);
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07006281
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006282done:
6283 kfree(clone);
6284 return vstatus;
6285}
6286
6287/**
6288 * hdd_set_power_save_offload_config() - set power save offload configuration
Jeff Johnson723234b2017-09-03 08:49:15 -07006289 * @hdd_ctx: the pointer to hdd context
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006290 *
6291 * Return: none
6292 */
Jeff Johnson723234b2017-09-03 08:49:15 -07006293static void hdd_set_power_save_offload_config(struct hdd_context *hdd_ctx)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006294{
Jeff Johnson723234b2017-09-03 08:49:15 -07006295 struct hdd_config *pConfig = hdd_ctx->config;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006296 uint32_t listenInterval = 0;
6297
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07006298 if (strcmp(pConfig->PowerUsageControl, "Min") == 0)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006299 listenInterval = pConfig->nBmpsMinListenInterval;
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07006300 else if (strcmp(pConfig->PowerUsageControl, "Max") == 0)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006301 listenInterval = pConfig->nBmpsMaxListenInterval;
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07006302 else if (strcmp(pConfig->PowerUsageControl, "Mod") == 0)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006303 listenInterval = pConfig->nBmpsModListenInterval;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006304
6305 /*
6306 * Based on Mode Set the LI
6307 * Otherwise default LI value of 1 will
6308 * be taken
6309 */
6310 if (listenInterval) {
6311 /*
6312 * setcfg for listenInterval.
6313 * Make sure CFG is updated because PE reads this
6314 * from CFG at the time of assoc or reassoc
6315 */
Jeff Johnson723234b2017-09-03 08:49:15 -07006316 sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_LISTEN_INTERVAL,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006317 listenInterval);
6318 }
6319
6320}
6321
Houston Hoffmanc7c69f02016-03-24 22:45:52 -07006322#ifdef FEATURE_RUNTIME_PM
Jeff Johnsonb6909be2017-08-28 12:07:19 -07006323static void hdd_cfg_print_runtime_pm(struct hdd_context *hdd_ctx)
Houston Hoffmanc7c69f02016-03-24 22:45:52 -07006324{
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006325 hdd_debug("Name = [gRuntimePM] Value = [%u] ",
Houston Hoffmanc7c69f02016-03-24 22:45:52 -07006326 hdd_ctx->config->runtime_pm);
6327
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006328 hdd_debug("Name = [gRuntimePMDelay] Value = [%u] ",
Houston Hoffmanc7c69f02016-03-24 22:45:52 -07006329 hdd_ctx->config->runtime_pm_delay);
6330}
6331#else
Jeff Johnsonb6909be2017-08-28 12:07:19 -07006332static void hdd_cfg_print_runtime_pm(struct hdd_context *hdd_ctx)
Houston Hoffmanc7c69f02016-03-24 22:45:52 -07006333{
6334}
6335#endif
6336
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006337/**
Kapil Gupta5cda2252016-12-29 18:44:26 +05306338 * hdd_per_roam_print_ini_config()- Print PER roam specific INI configuration
6339 * @hdd_ctx: handle to hdd context
6340 *
6341 * Return: None
6342 */
Jeff Johnsonb6909be2017-08-28 12:07:19 -07006343static void hdd_per_roam_print_ini_config(struct hdd_context *hdd_ctx)
Kapil Gupta5cda2252016-12-29 18:44:26 +05306344{
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006345 hdd_debug("Name = [%s] Value = [%u]",
Kapil Gupta5cda2252016-12-29 18:44:26 +05306346 CFG_PER_ROAM_ENABLE_NAME,
6347 hdd_ctx->config->is_per_roam_enabled);
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006348 hdd_debug("Name = [%s] Value = [%u]",
Kapil Gupta5cda2252016-12-29 18:44:26 +05306349 CFG_PER_ROAM_CONFIG_HIGH_RATE_TH_NAME,
6350 hdd_ctx->config->per_roam_high_rate_threshold);
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006351 hdd_debug("Name = [%s] Value = [%u]",
Kapil Gupta5cda2252016-12-29 18:44:26 +05306352 CFG_PER_ROAM_CONFIG_LOW_RATE_TH_NAME,
6353 hdd_ctx->config->per_roam_low_rate_threshold);
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006354 hdd_debug("Name = [%s] Value = [%u]",
Kapil Gupta5cda2252016-12-29 18:44:26 +05306355 CFG_PER_ROAM_CONFIG_RATE_TH_PERCENT_NAME,
6356 hdd_ctx->config->per_roam_th_percent);
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006357 hdd_debug("Name = [%s] Value = [%u]",
Kapil Gupta5cda2252016-12-29 18:44:26 +05306358 CFG_PER_ROAM_REST_TIME_NAME,
6359 hdd_ctx->config->per_roam_rest_time);
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07006360 hdd_debug("Name = [%s] Value = [%u]",
Kapil Gupta957827b2017-02-13 15:47:04 +05306361 CFG_PER_ROAM_MONITOR_TIME,
6362 hdd_ctx->config->per_roam_mon_time);
Selvaraj, Sridhar0641fab2017-05-17 16:02:00 +05306363 hdd_debug("Name = [%s] Value = [%u]",
6364 CFG_PER_ROAM_MIN_CANDIDATE_RSSI,
6365 hdd_ctx->config->min_candidate_rssi);
Kapil Gupta5cda2252016-12-29 18:44:26 +05306366}
6367
Varun Reddy Yeturu5df6cc92017-09-18 11:10:33 -07006368static void hdd_mawc_cfg_log(struct hdd_context *hdd_ctx)
Varun Reddy Yeturu061d4d62017-07-20 09:39:32 -07006369{
6370 hdd_debug("Name = [MAWCEnabled] Value = [%u] ",
Varun Reddy Yeturu5df6cc92017-09-18 11:10:33 -07006371 hdd_ctx->config->MAWCEnabled);
Varun Reddy Yeturu061d4d62017-07-20 09:39:32 -07006372 hdd_debug("Name = [%s] Value = [%u] ",
6373 CFG_MAWC_ROAM_ENABLED_NAME,
Varun Reddy Yeturu5df6cc92017-09-18 11:10:33 -07006374 hdd_ctx->config->mawc_roam_enabled);
Varun Reddy Yeturu061d4d62017-07-20 09:39:32 -07006375 hdd_debug("Name = [%s] Value = [%u] ",
6376 CFG_MAWC_ROAM_TRAFFIC_THRESHOLD_NAME,
Varun Reddy Yeturu5df6cc92017-09-18 11:10:33 -07006377 hdd_ctx->config->mawc_roam_traffic_threshold);
Varun Reddy Yeturu061d4d62017-07-20 09:39:32 -07006378 hdd_debug("Name = [%s] Value = [%d] ",
6379 CFG_MAWC_ROAM_AP_RSSI_THRESHOLD_NAME,
Varun Reddy Yeturu5df6cc92017-09-18 11:10:33 -07006380 hdd_ctx->config->mawc_roam_ap_rssi_threshold);
Varun Reddy Yeturu061d4d62017-07-20 09:39:32 -07006381 hdd_debug("Name = [%s] Value = [%u] ",
6382 CFG_MAWC_ROAM_RSSI_HIGH_ADJUST_NAME,
Varun Reddy Yeturu5df6cc92017-09-18 11:10:33 -07006383 hdd_ctx->config->mawc_roam_rssi_high_adjust);
Varun Reddy Yeturu061d4d62017-07-20 09:39:32 -07006384 hdd_debug("Name = [%s] Value = [%u] ",
6385 CFG_MAWC_ROAM_RSSI_LOW_ADJUST_NAME,
Varun Reddy Yeturu5df6cc92017-09-18 11:10:33 -07006386 hdd_ctx->config->mawc_roam_rssi_low_adjust);
Varun Reddy Yeturu061d4d62017-07-20 09:39:32 -07006387}
6388
Kapil Gupta5cda2252016-12-29 18:44:26 +05306389/**
Rajeev Kumar Sirasanagandlaaec0b082017-06-21 11:59:41 +05306390 * hdd_cfg_print_ie_whitelist_attrs() - print the ie whitelist attrs
6391 * @hdd_ctx: pointer to hdd context
6392 *
6393 * Return: None
6394 */
Jeff Johnsonb6909be2017-08-28 12:07:19 -07006395static void hdd_cfg_print_ie_whitelist_attrs(struct hdd_context *hdd_ctx)
Rajeev Kumar Sirasanagandlaaec0b082017-06-21 11:59:41 +05306396{
6397 hdd_debug("Name = [%s] Value = [%x] ",
6398 CFG_PRB_REQ_IE_WHITELIST_NAME,
6399 hdd_ctx->config->probe_req_ie_whitelist);
6400 hdd_debug("Name = [%s] Value = [%x] ",
6401 CFG_PRB_REQ_IE_BIT_MAP0_NAME,
6402 hdd_ctx->config->probe_req_ie_bitmap_0);
6403 hdd_debug("Name = [%s] Value = [%x] ",
6404 CFG_PRB_REQ_IE_BIT_MAP1_NAME,
6405 hdd_ctx->config->probe_req_ie_bitmap_1);
6406 hdd_debug("Name = [%s] Value = [%x] ",
6407 CFG_PRB_REQ_IE_BIT_MAP2_NAME,
6408 hdd_ctx->config->probe_req_ie_bitmap_2);
6409 hdd_debug("Name = [%s] Value = [%x] ",
6410 CFG_PRB_REQ_IE_BIT_MAP3_NAME,
6411 hdd_ctx->config->probe_req_ie_bitmap_3);
6412 hdd_debug("Name = [%s] Value = [%x] ",
6413 CFG_PRB_REQ_IE_BIT_MAP4_NAME,
6414 hdd_ctx->config->probe_req_ie_bitmap_4);
6415 hdd_debug("Name = [%s] Value = [%x] ",
6416 CFG_PRB_REQ_IE_BIT_MAP5_NAME,
6417 hdd_ctx->config->probe_req_ie_bitmap_5);
6418 hdd_debug("Name = [%s] Value = [%x] ",
6419 CFG_PRB_REQ_IE_BIT_MAP6_NAME,
6420 hdd_ctx->config->probe_req_ie_bitmap_6);
6421 hdd_debug("Name = [%s] Value = [%x] ",
6422 CFG_PRB_REQ_IE_BIT_MAP7_NAME,
6423 hdd_ctx->config->probe_req_ie_bitmap_7);
6424 hdd_debug("Name = [%s] Value =[%s]",
6425 CFG_PROBE_REQ_OUI_NAME,
6426 hdd_ctx->config->probe_req_ouis);
6427}
6428
Paul Zhang99fe8842017-12-08 14:43:46 +08006429static void hdd_wlm_cfg_log(struct hdd_context *hdd_ctx)
6430{
6431 hdd_debug("Name = [%s] value = [%u]",
6432 CFG_LATENCY_ENABLE_NAME,
6433 hdd_ctx->config->wlm_latency_enable);
6434 hdd_debug("Name = [%s] value = [%u]",
6435 CFG_LATENCY_LEVEL_NAME,
6436 hdd_ctx->config->wlm_latency_level);
6437 hdd_debug("Name = [%s] value = [%u]",
6438 CFG_LATENCY_FLAGS_NORMAL_NAME,
6439 hdd_ctx->config->wlm_latency_flags_normal);
6440 hdd_debug("Name = [%s] value = [%u]",
6441 CFG_LATENCY_FLAGS_MODERATE_NAME,
6442 hdd_ctx->config->wlm_latency_flags_moderate);
6443 hdd_debug("Name = [%s] value = [%u]",
6444 CFG_LATENCY_FLAGS_LOW_NAME,
6445 hdd_ctx->config->wlm_latency_flags_low);
6446 hdd_debug("Name = [%s] value = [%u]",
6447 CFG_LATENCY_FLAGS_ULTRALOW_NAME,
6448 hdd_ctx->config->wlm_latency_flags_ultralow);
6449}
6450
Padma, Santhosh Kumar3e47c632017-09-01 20:15:27 +05306451#ifdef WLAN_FEATURE_SAE
6452static void hdd_cfg_print_sae(struct hdd_context *hdd_ctx)
6453{
6454 hdd_debug("Name = [%s] value = [%u]",
6455 CFG_IS_SAE_ENABLED_NAME,
6456 hdd_ctx->config->is_sae_enabled);
6457}
6458#else
6459static void hdd_cfg_print_sae(struct hdd_context *hdd_ctx)
6460{
6461}
6462#endif
6463
Rajeev Kumar Sirasanagandlaaec0b082017-06-21 11:59:41 +05306464/**
Vignesh Viswanathan694e28e2018-01-18 20:53:57 +05306465 * hdd_cgf_print_11k_offload_params() - Print 11k offload related parameters
6466 * @hdd_ctx: Pointer to HDD context
6467 *
6468 * Return: None
6469 */
6470static
6471void hdd_cfg_print_11k_offload_params(struct hdd_context *hdd_ctx)
6472{
6473 hdd_debug("Name = [%s] value = [%u]",
6474 CFG_OFFLOAD_11K_ENABLE_BITMASK_NAME,
6475 hdd_ctx->config->offload_11k_enable_bitmask);
6476 hdd_debug("Name = [%s] value = [%u]",
6477 CFG_OFFLOAD_NEIGHBOR_REPORT_PARAMS_BITMASK_NAME,
6478 hdd_ctx->config->neighbor_report_offload_params_bitmask);
6479 hdd_debug("Name = [%s] value = [%u]",
6480 CFG_OFFLOAD_NEIGHBOR_REPORT_TIME_OFFSET_NAME,
6481 hdd_ctx->config->neighbor_report_offload_time_offset);
6482 hdd_debug("Name = [%s] value = [%u]",
6483 CFG_OFFLOAD_NEIGHBOR_REPORT_LOW_RSSI_OFFSET_NAME,
6484 hdd_ctx->config->neighbor_report_offload_low_rssi_offset);
6485 hdd_debug("Name = [%s] value = [%u]",
6486 CFG_OFFLOAD_NEIGHBOR_REPORT_BMISS_COUNT_TRIGGER_NAME,
6487 hdd_ctx->config->neighbor_report_offload_bmiss_count_trigger);
6488 hdd_debug("Name = [%s] value = [%u]",
6489 CFG_OFFLOAD_NEIGHBOR_REPORT_PER_THRESHOLD_OFFSET_NAME,
6490 hdd_ctx->config->
6491 neighbor_report_offload_per_threshold_offset);
6492 hdd_debug("Name = [%s] value = [%u]",
6493 CFG_OFFLOAD_NEIGHBOR_REPORT_CACHE_TIMEOUT_NAME,
6494 hdd_ctx->config->neighbor_report_offload_cache_timeout);
6495 hdd_debug("Name = [%s] value = [%u]",
6496 CFG_OFFLOAD_NEIGHBOR_REPORT_MAX_REQ_CAP_NAME,
6497 hdd_ctx->config->neighbor_report_offload_max_req_cap);
6498}
6499
6500/**
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006501 * hdd_cfg_print() - print the hdd configuration
6502 * @iniTable: pointer to hdd context
6503 *
6504 * Return: None
6505 */
Jeff Johnson723234b2017-09-03 08:49:15 -07006506void hdd_cfg_print(struct hdd_context *hdd_ctx)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006507{
6508 int i;
6509
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006510 hdd_debug("*********Config values in HDD Adapter*******");
6511 hdd_debug("Name = [RTSThreshold] Value = %u",
Jeff Johnson723234b2017-09-03 08:49:15 -07006512 hdd_ctx->config->RTSThreshold);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006513 hdd_debug("Name = [OperatingChannel] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006514 hdd_ctx->config->OperatingChannel);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006515 hdd_debug("Name = [PowerUsageControl] Value = [%s]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006516 hdd_ctx->config->PowerUsageControl);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006517 hdd_debug("Name = [fIsImpsEnabled] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006518 hdd_ctx->config->fIsImpsEnabled);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006519 hdd_debug("Name = [nVccRssiTrigger] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006520 hdd_ctx->config->nVccRssiTrigger);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006521 hdd_debug("Name = [gIbssBssid] Value =[" MAC_ADDRESS_STR "]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006522 MAC_ADDR_ARRAY(hdd_ctx->config->IbssBssid.bytes));
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006523
Anurag Chouhan6d760662016-02-20 16:05:43 +05306524 for (i = 0; i < QDF_MAX_CONCURRENCY_PERSONA; i++) {
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006525 hdd_debug("Name = [Intf%dMacAddress] Value =[" MAC_ADDRESS_STR "]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006526 i, MAC_ADDR_ARRAY(hdd_ctx->config->intfMacAddr[i].bytes));
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006527 }
6528
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006529 hdd_debug("Name = [gApEnableUapsd] value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006530 hdd_ctx->config->apUapsdEnabled);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006531
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006532 hdd_debug("Name = [gEnableApProt] value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006533 hdd_ctx->config->apProtEnabled);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006534 hdd_debug("Name = [gAPAutoShutOff] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006535 hdd_ctx->config->nAPAutoShutOff);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006536#ifdef FEATURE_WLAN_MCC_TO_SCC_SWITCH
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006537 hdd_debug("Name = [gWlanMccToSccSwitchMode] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006538 hdd_ctx->config->WlanMccToSccSwitchMode);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006539#endif
6540#ifdef FEATURE_WLAN_AUTO_SHUTDOWN
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006541 hdd_debug("Name = [gWlanAutoShutdown] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006542 hdd_ctx->config->WlanAutoShutdown);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006543#endif
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006544 hdd_debug("Name = [gApProtection] value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006545 hdd_ctx->config->apProtection);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006546 hdd_debug("Name = [gEnableApOBSSProt] value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006547 hdd_ctx->config->apOBSSProtEnabled);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006548 hdd_debug("Name = [%s] value = [%u]", CFG_FORCE_SAP_ACS,
Jeff Johnson723234b2017-09-03 08:49:15 -07006549 hdd_ctx->config->force_sap_acs);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006550 hdd_debug("Name = [%s] value = [%u]", CFG_FORCE_SAP_ACS_START_CH,
Jeff Johnson723234b2017-09-03 08:49:15 -07006551 hdd_ctx->config->force_sap_acs_st_ch);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006552 hdd_debug("Name = [%s] value = [%u]", CFG_FORCE_SAP_ACS_END_CH,
Jeff Johnson723234b2017-09-03 08:49:15 -07006553 hdd_ctx->config->force_sap_acs_end_ch);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006554#ifdef FEATURE_AP_MCC_CH_AVOIDANCE
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006555 hdd_debug("Name = [sap_channel_avoidance] value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006556 hdd_ctx->config->sap_channel_avoidance);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006557#endif /* FEATURE_AP_MCC_CH_AVOIDANCE */
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006558 hdd_debug("Name = [%s] value = [%u]", CFG_SAP_P2P_11AC_OVERRIDE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006559 hdd_ctx->config->sap_p2p_11ac_override);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006560 hdd_debug("Name = [ChannelBondingMode] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006561 hdd_ctx->config->nChannelBondingMode24GHz);
Abhishek Singhb59f8d42017-07-31 14:42:47 +05306562 hdd_debug("Name = [%s] Value = [%u] ",
6563 CFG_OVERRIDE_HT40_20_24GHZ_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006564 hdd_ctx->config->override_ht20_40_24g);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006565 hdd_debug("Name = [ChannelBondingMode] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006566 hdd_ctx->config->nChannelBondingMode5GHz);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006567 hdd_debug("Name = [dot11Mode] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006568 hdd_ctx->config->dot11Mode);
6569 hdd_debug("Name = [WmmMode] Value = [%u] ", hdd_ctx->config->WmmMode);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006570 hdd_debug("Name = [UapsdMask] Value = [0x%x] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006571 hdd_ctx->config->UapsdMask);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006572 hdd_debug("Name = [ImplicitQosIsEnabled] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006573 (int)hdd_ctx->config->bImplicitQosEnabled);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006574
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006575 hdd_debug("Name = [InfraUapsdVoSrvIntv] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006576 hdd_ctx->config->InfraUapsdVoSrvIntv);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006577 hdd_debug("Name = [InfraUapsdVoSuspIntv] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006578 hdd_ctx->config->InfraUapsdVoSuspIntv);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006579
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006580 hdd_debug("Name = [InfraUapsdViSrvIntv] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006581 hdd_ctx->config->InfraUapsdViSrvIntv);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006582 hdd_debug("Name = [InfraUapsdViSuspIntv] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006583 hdd_ctx->config->InfraUapsdViSuspIntv);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006584
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006585 hdd_debug("Name = [InfraUapsdBeSrvIntv] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006586 hdd_ctx->config->InfraUapsdBeSrvIntv);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006587 hdd_debug("Name = [InfraUapsdBeSuspIntv] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006588 hdd_ctx->config->InfraUapsdBeSuspIntv);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006589
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006590 hdd_debug("Name = [InfraUapsdBkSrvIntv] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006591 hdd_ctx->config->InfraUapsdBkSrvIntv);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006592 hdd_debug("Name = [InfraUapsdBkSuspIntv] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006593 hdd_ctx->config->InfraUapsdBkSuspIntv);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006594#ifdef FEATURE_WLAN_ESE
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006595 hdd_debug("Name = [InfraInactivityInterval] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006596 hdd_ctx->config->InfraInactivityInterval);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006597 hdd_debug("Name = [EseEnabled] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006598 hdd_ctx->config->isEseIniFeatureEnabled);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006599 hdd_debug("Name = [FastTransitionEnabled] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006600 hdd_ctx->config->isFastTransitionEnabled);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006601 hdd_debug("Name = [gTxPowerCap] Value = [%u] dBm ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006602 hdd_ctx->config->nTxPowerCap);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006603#endif
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006604 hdd_debug("Name = [gAllowTPCfromAP] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006605 hdd_ctx->config->allow_tpc_from_ap);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006606 hdd_debug("Name = [FastRoamEnabled] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006607 hdd_ctx->config->isFastRoamIniFeatureEnabled);
Varun Reddy Yeturu061d4d62017-07-20 09:39:32 -07006608 hdd_mawc_cfg_log(hdd_ctx);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006609 hdd_debug("Name = [RoamRssiDiff] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006610 hdd_ctx->config->RoamRssiDiff);
Abhishek Singh34c0e632017-09-28 14:39:29 +05306611 hdd_debug("Name = [%s] Value = [%u] ", CFG_ROAM_RSSI_ABS_THRESHOLD_NAME,
6612 hdd_ctx->config->rssi_abs_thresh);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006613 hdd_debug("Name = [isWESModeEnabled] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006614 hdd_ctx->config->isWESModeEnabled);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006615 hdd_debug("Name = [pmkidModes] Value = [0x%x] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006616 hdd_ctx->config->pmkid_modes);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006617#ifdef FEATURE_WLAN_SCAN_PNO
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006618 hdd_debug("Name = [configPNOScanSupport] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006619 hdd_ctx->config->configPNOScanSupport);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006620 hdd_debug("Name = [configPNOScanTimerRepeatValue] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006621 hdd_ctx->config->configPNOScanTimerRepeatValue);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006622 hdd_debug("Name = [gPNOSlowScanMultiplier] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006623 hdd_ctx->config->pno_slow_scan_multiplier);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006624#endif
6625#ifdef FEATURE_WLAN_TDLS
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006626 hdd_debug("Name = [fEnableTDLSSupport] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006627 hdd_ctx->config->fEnableTDLSSupport);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006628 hdd_debug("Name = [fEnableTDLSImplicitTrigger] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006629 hdd_ctx->config->fEnableTDLSImplicitTrigger);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006630 hdd_debug("Name = [fTDLSExternalControl] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006631 hdd_ctx->config->fTDLSExternalControl);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006632 hdd_debug("Name = [fTDLSUapsdMask] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006633 hdd_ctx->config->fTDLSUapsdMask);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006634 hdd_debug("Name = [fEnableTDLSBufferSta] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006635 hdd_ctx->config->fEnableTDLSBufferSta);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006636 hdd_debug("Name = [fEnableTDLSWmmMode] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006637 hdd_ctx->config->fEnableTDLSWmmMode);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006638 hdd_debug("Name = [enable_tdls_scan] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006639 hdd_ctx->config->enable_tdls_scan);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006640#endif
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006641 hdd_debug("Name = [InfraDirAcVo] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006642 hdd_ctx->config->InfraDirAcVo);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006643 hdd_debug("Name = [InfraNomMsduSizeAcVo] Value = [0x%x] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006644 hdd_ctx->config->InfraNomMsduSizeAcVo);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006645 hdd_debug("Name = [InfraMeanDataRateAcVo] Value = [0x%x] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006646 hdd_ctx->config->InfraMeanDataRateAcVo);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006647 hdd_debug("Name = [InfraMinPhyRateAcVo] Value = [0x%x] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006648 hdd_ctx->config->InfraMinPhyRateAcVo);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006649 hdd_debug("Name = [InfraSbaAcVo] Value = [0x%x] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006650 hdd_ctx->config->InfraSbaAcVo);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006651
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006652 hdd_debug("Name = [InfraDirAcVi] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006653 hdd_ctx->config->InfraDirAcVi);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006654 hdd_debug("Name = [InfraNomMsduSizeAcVi] Value = [0x%x] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006655 hdd_ctx->config->InfraNomMsduSizeAcVi);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006656 hdd_debug("Name = [InfraMeanDataRateAcVi] Value = [0x%x] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006657 hdd_ctx->config->InfraMeanDataRateAcVi);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006658 hdd_debug("Name = [InfraMinPhyRateAcVi] Value = [0x%x] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006659 hdd_ctx->config->InfraMinPhyRateAcVi);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006660 hdd_debug("Name = [InfraSbaAcVi] Value = [0x%x] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006661 hdd_ctx->config->InfraSbaAcVi);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006662
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006663 hdd_debug("Name = [InfraDirAcBe] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006664 hdd_ctx->config->InfraDirAcBe);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006665 hdd_debug("Name = [InfraNomMsduSizeAcBe] Value = [0x%x] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006666 hdd_ctx->config->InfraNomMsduSizeAcBe);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006667 hdd_debug("Name = [InfraMeanDataRateAcBe] Value = [0x%x] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006668 hdd_ctx->config->InfraMeanDataRateAcBe);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006669 hdd_debug("Name = [InfraMinPhyRateAcBe] Value = [0x%x] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006670 hdd_ctx->config->InfraMinPhyRateAcBe);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006671 hdd_debug("Name = [InfraSbaAcBe] Value = [0x%x] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006672 hdd_ctx->config->InfraSbaAcBe);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006673
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006674 hdd_debug("Name = [InfraDirAcBk] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006675 hdd_ctx->config->InfraDirAcBk);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006676 hdd_debug("Name = [InfraNomMsduSizeAcBk] Value = [0x%x] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006677 hdd_ctx->config->InfraNomMsduSizeAcBk);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006678 hdd_debug("Name = [InfraMeanDataRateAcBk] Value = [0x%x] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006679 hdd_ctx->config->InfraMeanDataRateAcBk);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006680 hdd_debug("Name = [InfraMinPhyRateAcBk] Value = [0x%x] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006681 hdd_ctx->config->InfraMinPhyRateAcBk);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006682 hdd_debug("Name = [InfraSbaAcBk] Value = [0x%x] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006683 hdd_ctx->config->InfraSbaAcBk);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006684
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006685 hdd_debug("Name = [DelayedTriggerFrmInt] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006686 hdd_ctx->config->DelayedTriggerFrmInt);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006687 hdd_debug("Name = [fhostArpOffload] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006688 hdd_ctx->config->fhostArpOffload);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006689 hdd_debug("Name = [%s] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006690 CFG_HW_FILTER_MODE_NAME, hdd_ctx->config->hw_filter_mode);
Varun Reddy Yeturubba32e92017-09-06 13:31:40 -07006691 hdd_debug("Name = [%s] Value = [%u]",
6692 CFG_MAWC_NLO_ENABLED_NAME,
6693 hdd_ctx->config->mawc_nlo_enabled);
6694 hdd_debug("Name = [%s] Value = [%u]",
6695 CFG_MAWC_NLO_EXP_BACKOFF_RATIO_NAME,
6696 hdd_ctx->config->mawc_nlo_exp_backoff_ratio);
6697 hdd_debug("Name = [%s] Value = [%u]",
6698 CFG_MAWC_NLO_INIT_SCAN_INTERVAL_NAME,
6699 hdd_ctx->config->mawc_nlo_init_scan_interval);
6700 hdd_debug("Name = [%s] Value = [%u]",
6701 CFG_MAWC_NLO_MAX_SCAN_INTERVAL_NAME,
6702 hdd_ctx->config->mawc_nlo_max_scan_interval);
Jeff Johnson723234b2017-09-03 08:49:15 -07006703 hdd_debug("Name = [ssdp] Value = [%u] ", hdd_ctx->config->ssdp);
6704 hdd_cfg_print_runtime_pm(hdd_ctx);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006705#ifdef FEATURE_WLAN_RA_FILTERING
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006706 hdd_debug("Name = [RArateLimitInterval] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006707 hdd_ctx->config->RArateLimitInterval);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006708 hdd_debug("Name = [IsRArateLimitEnabled] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006709 hdd_ctx->config->IsRArateLimitEnabled);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006710#endif
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006711 hdd_debug("Name = [fFTResourceReqSupported] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006712 hdd_ctx->config->fFTResourceReqSupported);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006713
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006714 hdd_debug("Name = [nNeighborLookupRssiThreshold] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006715 hdd_ctx->config->nNeighborLookupRssiThreshold);
Varun Reddy Yeturu168134f2017-06-26 13:46:05 -07006716 hdd_debug("Name = [%s] Value = [%d] ",
6717 CFG_5G_RSSI_THRESHOLD_OFFSET_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006718 hdd_ctx->config->rssi_thresh_offset_5g);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006719 hdd_debug("Name = [delay_before_vdev_stop] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006720 hdd_ctx->config->delay_before_vdev_stop);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006721 hdd_debug("Name = [nOpportunisticThresholdDiff] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006722 hdd_ctx->config->nOpportunisticThresholdDiff);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006723 hdd_debug("Name = [nRoamRescanRssiDiff] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006724 hdd_ctx->config->nRoamRescanRssiDiff);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006725 hdd_debug("Name = [nNeighborScanMinChanTime] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006726 hdd_ctx->config->nNeighborScanMinChanTime);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006727 hdd_debug("Name = [nNeighborScanMaxChanTime] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006728 hdd_ctx->config->nNeighborScanMaxChanTime);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006729 hdd_debug("Name = [nMaxNeighborRetries] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006730 hdd_ctx->config->nMaxNeighborReqTries);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006731 hdd_debug("Name = [nNeighborScanPeriod] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006732 hdd_ctx->config->nNeighborScanPeriod);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006733 hdd_debug("Name = [n_neighbor_scan_min_period] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006734 hdd_ctx->config->neighbor_scan_min_period);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006735 hdd_debug("Name = [nNeighborScanResultsRefreshPeriod] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006736 hdd_ctx->config->nNeighborResultsRefreshPeriod);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006737 hdd_debug("Name = [nEmptyScanRefreshPeriod] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006738 hdd_ctx->config->nEmptyScanRefreshPeriod);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006739 hdd_debug("Name = [nRoamBmissFirstBcnt] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006740 hdd_ctx->config->nRoamBmissFirstBcnt);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006741 hdd_debug("Name = [nRoamBmissFinalBcnt] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006742 hdd_ctx->config->nRoamBmissFinalBcnt);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006743 hdd_debug("Name = [nRoamBeaconRssiWeight] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006744 hdd_ctx->config->nRoamBeaconRssiWeight);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006745 hdd_debug("Name = [allowDFSChannelRoam] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006746 hdd_ctx->config->allowDFSChannelRoam);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006747 hdd_debug("Name = [nhi_rssi_scan_max_count] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006748 hdd_ctx->config->nhi_rssi_scan_max_count);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006749 hdd_debug("Name = [nhi_rssi_scan_rssi_delta] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006750 hdd_ctx->config->nhi_rssi_scan_rssi_delta);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006751 hdd_debug("Name = [nhi_rssi_scan_delay] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006752 hdd_ctx->config->nhi_rssi_scan_delay);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006753 hdd_debug("Name = [nhi_rssi_scan_rssi_ub] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006754 hdd_ctx->config->nhi_rssi_scan_rssi_ub);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006755 hdd_debug("Name = [burstSizeDefinition] Value = [0x%x] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006756 hdd_ctx->config->burstSizeDefinition);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006757 hdd_debug("Name = [tsInfoAckPolicy] Value = [0x%x] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006758 hdd_ctx->config->tsInfoAckPolicy);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006759 hdd_debug("Name = [rfSettlingTimeUs] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006760 hdd_ctx->config->rfSettlingTimeUs);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006761 hdd_debug("Name = [bSingleTidRc] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006762 hdd_ctx->config->bSingleTidRc);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006763 hdd_debug("Name = [gDynamicPSPollvalue] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006764 hdd_ctx->config->dynamicPsPollValue);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006765 hdd_debug("Name = [gAddTSWhenACMIsOff] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006766 hdd_ctx->config->AddTSWhenACMIsOff);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006767 hdd_debug("Name = [gValidateScanList] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006768 hdd_ctx->config->fValidateScanList);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006769
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006770 hdd_debug("Name = [gStaKeepAlivePeriod] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006771 hdd_ctx->config->infraStaKeepAlivePeriod);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006772 hdd_debug("Name = [gApDataAvailPollInterVal] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006773 hdd_ctx->config->apDataAvailPollPeriodInMs);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006774 hdd_debug("Name = [BandCapability] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006775 hdd_ctx->config->nBandCapability);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006776 hdd_debug("Name = [teleBcnWakeupEnable] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006777 hdd_ctx->config->teleBcnWakeupEn);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006778 hdd_debug("Name = [transListenInterval] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006779 hdd_ctx->config->nTeleBcnTransListenInterval);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006780 hdd_debug("Name = [transLiNumIdleBeacons] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006781 hdd_ctx->config->nTeleBcnTransLiNumIdleBeacons);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006782 hdd_debug("Name = [maxListenInterval] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006783 hdd_ctx->config->nTeleBcnMaxListenInterval);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006784 hdd_debug("Name = [maxLiNumIdleBeacons] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006785 hdd_ctx->config->nTeleBcnMaxLiNumIdleBeacons);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006786 hdd_debug("Name = [gEnableBypass11d] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006787 hdd_ctx->config->enableBypass11d);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006788 hdd_debug("Name = [gEnableDFSChnlScan] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006789 hdd_ctx->config->enableDFSChnlScan);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006790 hdd_debug("Name = [gEnableDFSPnoChnlScan] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006791 hdd_ctx->config->enable_dfs_pno_chnl_scan);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006792 hdd_debug("Name = [gReportMaxLinkSpeed] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006793 hdd_ctx->config->reportMaxLinkSpeed);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006794 hdd_debug("Name = [thermalMitigationEnable] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006795 hdd_ctx->config->thermalMitigationEnable);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006796 hdd_debug("Name = [gVhtChannelWidth] value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006797 hdd_ctx->config->vhtChannelWidth);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006798 hdd_debug("Name = [enableFirstScan2GOnly] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006799 hdd_ctx->config->enableFirstScan2GOnly);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006800 hdd_debug("Name = [skipDfsChnlInP2pSearch] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006801 hdd_ctx->config->skipDfsChnlInP2pSearch);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006802 hdd_debug("Name = [ignoreDynamicDtimInP2pMode] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006803 hdd_ctx->config->ignoreDynamicDtimInP2pMode);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006804 hdd_debug("Name = [enableRxSTBC] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006805 hdd_ctx->config->enableRxSTBC);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006806 hdd_debug("Name = [gEnableLpwrImgTransition] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006807 hdd_ctx->config->enableLpwrImgTransition);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006808 hdd_debug("Name = [gEnableSSR] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006809 hdd_ctx->config->enableSSR);
Poddar, Siddarth37033032017-10-11 15:47:40 +05306810 hdd_debug("Name = [gEnableDataStallDetection] Value = [%u] ",
6811 hdd_ctx->config->enable_data_stall_det);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006812 hdd_debug("Name = [gEnableVhtFor24GHzBand] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006813 hdd_ctx->config->enableVhtFor24GHzBand);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006814 hdd_debug("Name = [gEnableIbssHeartBeatOffload] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006815 hdd_ctx->config->enableIbssHeartBeatOffload);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006816 hdd_debug("Name = [gAntennaDiversity] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006817 hdd_ctx->config->antennaDiversity);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006818 hdd_debug("Name = [gGoLinkMonitorPeriod] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006819 hdd_ctx->config->goLinkMonitorPeriod);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006820 hdd_debug("Name = [gApLinkMonitorPeriod] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006821 hdd_ctx->config->apLinkMonitorPeriod);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006822 hdd_debug("Name = [gGoKeepAlivePeriod] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006823 hdd_ctx->config->goKeepAlivePeriod);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006824 hdd_debug("Name = [gApKeepAlivePeriod]Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006825 hdd_ctx->config->apKeepAlivePeriod);
Deepak Dhamdhere612392c2016-08-28 02:56:51 -07006826 hdd_debug("Name = [max_amsdu_num] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006827 hdd_ctx->config->max_amsdu_num);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006828 hdd_debug("Name = [nSelect5GHzMargin] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006829 hdd_ctx->config->nSelect5GHzMargin);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006830 hdd_debug("Name = [gCoalesingInIBSS] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006831 hdd_ctx->config->isCoalesingInIBSSAllowed);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006832 hdd_debug("Name = [gIbssATIMWinSize] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006833 hdd_ctx->config->ibssATIMWinSize);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006834 hdd_debug("Name = [gIbssIsPowerSaveAllowed] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006835 hdd_ctx->config->isIbssPowerSaveAllowed);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006836 hdd_debug("Name = [gIbssIsPowerCollapseAllowed] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006837 hdd_ctx->config->isIbssPowerCollapseAllowed);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006838 hdd_debug("Name = [gIbssAwakeOnTxRx] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006839 hdd_ctx->config->isIbssAwakeOnTxRx);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006840 hdd_debug("Name = [gIbssInactivityTime] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006841 hdd_ctx->config->ibssInactivityCount);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006842 hdd_debug("Name = [gIbssTxSpEndInactivityTime] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006843 hdd_ctx->config->ibssTxSpEndInactivityTime);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006844 hdd_debug("Name = [gIbssPsWarmupTime] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006845 hdd_ctx->config->ibssPsWarmupTime);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006846 hdd_debug("Name = [gIbssPs1RxChainInAtim] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006847 hdd_ctx->config->ibssPs1RxChainInAtimEnable);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006848 hdd_debug("Name = [fDfsPhyerrFilterOffload] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006849 hdd_ctx->config->fDfsPhyerrFilterOffload);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006850 hdd_debug("Name = [gIgnorePeerErpInfo] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006851 hdd_ctx->config->ignore_peer_erp_info);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006852#ifdef IPA_OFFLOAD
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006853 hdd_debug("Name = [gIPAConfig] Value = [0x%x] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006854 hdd_ctx->config->IpaConfig);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006855 hdd_debug("Name = [gIPADescSize] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006856 hdd_ctx->config->IpaDescSize);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006857 hdd_debug("Name = [IpaHighBandwidthMbpsg] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006858 hdd_ctx->config->IpaHighBandwidthMbps);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006859 hdd_debug("Name = [IpaMediumBandwidthMbps] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006860 hdd_ctx->config->IpaMediumBandwidthMbps);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006861 hdd_debug("Name = [IpaLowBandwidthMbps] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006862 hdd_ctx->config->IpaLowBandwidthMbps);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006863#endif
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006864 hdd_debug("Name = [gEnableOverLapCh] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006865 hdd_ctx->config->gEnableOverLapCh);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006866 hdd_debug("Name = [gMaxOffloadPeers] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006867 hdd_ctx->config->apMaxOffloadPeers);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006868 hdd_debug("Name = [gMaxOffloadReorderBuffs] value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006869 hdd_ctx->config->apMaxOffloadReorderBuffs);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006870 hdd_debug("Name = [%s] Value = [%d]",
Dustin Brown732ab9c2017-06-15 13:24:09 -07006871 CFG_ENABLE_CCK_TX_FIR_OVERRIDE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006872 hdd_ctx->config->enable_cck_tx_fir_override);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006873 hdd_debug("Name = [gAllowDFSChannelRoam] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006874 hdd_ctx->config->allowDFSChannelRoam);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006875 hdd_debug("Name = [gMaxConcurrentActiveSessions] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006876 hdd_ctx->config->gMaxConcurrentActiveSessions);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006877
6878#ifdef MSM_PLATFORM
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006879 hdd_debug("Name = [gBusBandwidthHighThreshold] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006880 hdd_ctx->config->busBandwidthHighThreshold);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006881 hdd_debug("Name = [gBusBandwidthMediumThreshold] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006882 hdd_ctx->config->busBandwidthMediumThreshold);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006883 hdd_debug("Name = [gBusBandwidthLowThreshold] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006884 hdd_ctx->config->busBandwidthLowThreshold);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006885 hdd_debug("Name = [gbusBandwidthComputeInterval] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006886 hdd_ctx->config->busBandwidthComputeInterval);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006887 hdd_debug("Name = [%s] Value = [%u] ",
Prakash Manjunathappae73e3b52018-02-27 18:56:22 -08006888 CFG_ENABLE_TCP_LIMIT_OUTPUT,
6889 hdd_ctx->config->enable_tcp_limit_output);
6890 hdd_debug("Name = [%s] Value = [%u] ",
Mohit Khanna6272fb682017-04-13 09:34:36 -07006891 CFG_ENABLE_TCP_ADV_WIN_SCALE,
6892 hdd_ctx->config->enable_tcp_adv_win_scale);
6893 hdd_debug("Name = [%s] Value = [%u] ",
Ravi Joshie2331e82015-07-01 18:18:54 -07006894 CFG_ENABLE_TCP_DELACK,
Jeff Johnson723234b2017-09-03 08:49:15 -07006895 hdd_ctx->config->enable_tcp_delack);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006896 hdd_debug("Name = [gTcpDelAckThresholdHigh] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006897 hdd_ctx->config->tcpDelackThresholdHigh);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006898 hdd_debug("Name = [gTcpDelAckThresholdLow] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006899 hdd_ctx->config->tcpDelackThresholdLow);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006900 hdd_debug("Name = [%s] Value = [%u] ",
Ravi Joshib89e7f72016-09-07 13:43:15 -07006901 CFG_TCP_DELACK_TIMER_COUNT,
Jeff Johnson723234b2017-09-03 08:49:15 -07006902 hdd_ctx->config->tcp_delack_timer_count);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006903 hdd_debug("Name = [%s] Value = [%u] ",
Ravi Joshib89e7f72016-09-07 13:43:15 -07006904 CFG_TCP_TX_HIGH_TPUT_THRESHOLD_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07006905 hdd_ctx->config->tcp_tx_high_tput_thres);
Mohit Khannaca4173b2017-09-12 21:52:19 -07006906 hdd_debug("Name = [%s] Value = [%u] ",
6907 CFG_PERIODIC_STATS_DISPLAY_TIME_NAME,
6908 hdd_ctx->config->periodic_stats_disp_time);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006909#endif
6910
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006911 hdd_debug("Name = [gIgnoreCAC] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006912 hdd_ctx->config->ignoreCAC);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006913 hdd_debug("Name = [gSapPreferredChanLocation] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006914 hdd_ctx->config->gSapPreferredChanLocation);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006915 hdd_debug("Name = [gDisableDfsJapanW53] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006916 hdd_ctx->config->gDisableDfsJapanW53);
Himanshu Agarwalb229a142017-12-21 10:16:45 +05306917#ifdef WLAN_SUPPORT_GREEN_AP
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006918 hdd_debug("Name = [gEnableGreenAp] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006919 hdd_ctx->config->enableGreenAP);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006920 hdd_debug("Name = [gEenableEGAP] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006921 hdd_ctx->config->enable_egap);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006922 hdd_debug("Name = [gEGAPInactTime] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006923 hdd_ctx->config->egap_inact_time);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006924 hdd_debug("Name = [gEGAPWaitTime] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006925 hdd_ctx->config->egap_wait_time);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006926 hdd_debug("Name = [gEGAPFeatures] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006927 hdd_ctx->config->egap_feature_flag);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006928#endif
6929#ifdef WLAN_FEATURE_ROAM_OFFLOAD
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006930 hdd_debug("Name = [isRoamOffloadEnabled] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006931 hdd_ctx->config->isRoamOffloadEnabled);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006932#endif
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006933 hdd_debug("Name = [gEnableSifsBurst] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006934 hdd_ctx->config->enableSifsBurst);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006935
6936#ifdef WLAN_FEATURE_LPSS
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006937 hdd_debug("Name = [gEnableLpassSupport] Value = [%u] ",
Jeff Johnson723234b2017-09-03 08:49:15 -07006938 hdd_ctx->config->enable_lpass_support);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006939#endif
6940
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006941 hdd_debug("Name = [gEnableSelfRecovery] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006942 hdd_ctx->config->enableSelfRecovery);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006943
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006944 hdd_debug("Name = [gEnableSapSuspend] Value = [%u]",
Jeff Johnson60cbd2d2017-11-03 18:26:28 -07006945 hdd_ctx->config->enable_sap_suspend);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006946
6947#ifdef WLAN_FEATURE_EXTWOW_SUPPORT
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006948 hdd_debug("Name = [gExtWoWgotoSuspend] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006949 hdd_ctx->config->extWowGotoSuspend);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006950
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006951 hdd_debug("Name = [gExtWowApp1WakeupPinNumber] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006952 hdd_ctx->config->extWowApp1WakeupPinNumber);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006953
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006954 hdd_debug("Name = [gExtWowApp2WakeupPinNumber] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006955 hdd_ctx->config->extWowApp2WakeupPinNumber);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006956
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006957 hdd_debug("Name = [gExtWoWApp2KAInitPingInterval] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006958 hdd_ctx->config->extWowApp2KAInitPingInterval);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006959
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006960 hdd_debug("Name = [gExtWoWApp2KAMinPingInterval] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006961 hdd_ctx->config->extWowApp2KAMinPingInterval);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006962
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006963 hdd_debug("Name = [gExtWoWApp2KAMaxPingInterval] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006964 hdd_ctx->config->extWowApp2KAMaxPingInterval);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006965
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006966 hdd_debug("Name = [gExtWoWApp2KAIncPingInterval] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006967 hdd_ctx->config->extWowApp2KAIncPingInterval);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006968
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006969 hdd_debug("Name = [gExtWoWApp2TcpSrcPort] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006970 hdd_ctx->config->extWowApp2TcpSrcPort);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006971
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006972 hdd_debug("Name = [gExtWoWApp2TcpDstPort] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006973 hdd_ctx->config->extWowApp2TcpDstPort);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006974
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006975 hdd_debug("Name = [gExtWoWApp2TcpTxTimeout] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006976 hdd_ctx->config->extWowApp2TcpTxTimeout);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006977
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006978 hdd_debug("Name = [gExtWoWApp2TcpRxTimeout] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006979 hdd_ctx->config->extWowApp2TcpRxTimeout);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006980#endif
6981
6982#ifdef DHCP_SERVER_OFFLOAD
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006983 hdd_debug("Name = [gDHCPServerOffloadEnable] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006984 hdd_ctx->config->enableDHCPServerOffload);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006985 hdd_debug("Name = [gDHCPMaxNumClients] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006986 hdd_ctx->config->dhcpMaxNumClients);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006987 hdd_debug("Name = [gDHCPServerIP] Value = [%s]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006988 hdd_ctx->config->dhcpServerIP);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006989#endif
6990
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006991 hdd_debug("Name = [gEnableDumpCollect] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006992 hdd_ctx->config->is_ramdump_enabled);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08006993
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006994 hdd_debug("Name = [gP2PListenDeferInterval] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006995 hdd_ctx->config->p2p_listen_defer_interval);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006996 hdd_debug("Name = [is_ps_enabled] value = [%d]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006997 hdd_ctx->config->is_ps_enabled);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07006998 hdd_debug("Name = [tso_enable] value = [%d]",
Jeff Johnson723234b2017-09-03 08:49:15 -07006999 hdd_ctx->config->tso_enable);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007000 hdd_debug("Name = [LROEnable] value = [%d]",
Jeff Johnson723234b2017-09-03 08:49:15 -07007001 hdd_ctx->config->lro_enable);
Orhan K AKYILDIZ30e8cbc2017-08-11 18:00:28 -07007002 hdd_debug("Name = [%s] value = [%d]",
7003 CFG_MAX_MSDUS_PER_RXIND_NAME,
7004 hdd_ctx->config->max_msdus_per_rxinorderind);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007005 hdd_debug("Name = [active_mode_offload] value = [%d]",
Jeff Johnson723234b2017-09-03 08:49:15 -07007006 hdd_ctx->config->active_mode_offload);
Venkata Sharath Chandra Manchala4aaae0f2017-07-10 11:59:19 -07007007 hdd_debug("Name = [gEnableNAPI] value = [%d]",
7008 hdd_ctx->napi_enable);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007009 hdd_debug("Name = [gfine_time_meas_cap] value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07007010 hdd_ctx->config->fine_time_meas_cap);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007011#ifdef WLAN_FEATURE_FASTPATH
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007012 hdd_debug("Name = [fastpath_enable] Value = [%u]",
Jeff Johnson723234b2017-09-03 08:49:15 -07007013 hdd_ctx->config->fastpath_enable);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007014#endif
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007015 hdd_debug("Name = [max_scan_count] value = [%d]",
Jeff Johnson723234b2017-09-03 08:49:15 -07007016 hdd_ctx->config->max_scan_count);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007017 hdd_debug("Name = [%s] value = [%d]",
Jeff Johnson723234b2017-09-03 08:49:15 -07007018 CFG_RX_MODE_NAME, hdd_ctx->config->rx_mode);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007019 hdd_debug("Name = [%s] Value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007020 CFG_CE_CLASSIFY_ENABLE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007021 hdd_ctx->config->ce_classify_enabled);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007022 hdd_debug("Name = [%s] value = [%u]",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007023 CFG_DUAL_MAC_FEATURE_DISABLE,
Jeff Johnson723234b2017-09-03 08:49:15 -07007024 hdd_ctx->config->dual_mac_feature_disable);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007025 hdd_debug("Name = [%s] Value = [%s]",
Nitesh Shah50a3de12017-04-03 19:37:19 +05307026 CFG_DBS_SCAN_SELECTION_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007027 hdd_ctx->config->dbs_scan_selection);
Ganesh Kondabattini930304c2017-10-10 15:25:36 +05307028 hdd_debug("Name = [%s] value = [%u]",
7029 CFG_STA_SAP_SCC_ON_DFS_CHAN,
7030 hdd_ctx->config->sta_sap_scc_on_dfs_chan);
Varun Reddy Yeturub43fda12015-09-10 18:16:21 -07007031#ifdef FEATURE_WLAN_SCAN_PNO
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007032 hdd_debug("Name = [%s] Value = [%u]",
Archana Ramachandrane87005c2016-08-23 16:57:30 -07007033 CFG_PNO_CHANNEL_PREDICTION_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007034 hdd_ctx->config->pno_channel_prediction);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007035 hdd_debug("Name = [%s] Value = [%u]",
Archana Ramachandrane87005c2016-08-23 16:57:30 -07007036 CFG_TOP_K_NUM_OF_CHANNELS_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007037 hdd_ctx->config->top_k_num_of_channels);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007038 hdd_debug("Name = [%s] Value = [%u]",
Archana Ramachandrane87005c2016-08-23 16:57:30 -07007039 CFG_STATIONARY_THRESHOLD_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007040 hdd_ctx->config->stationary_thresh);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007041 hdd_debug("Name = [%s] Value = [%u]",
Archana Ramachandrane87005c2016-08-23 16:57:30 -07007042 CFG_CHANNEL_PREDICTION_FULL_SCAN_MS_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007043 hdd_ctx->config->channel_prediction_full_scan);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007044 hdd_debug("Name = [%s] Value = [%u]",
Archana Ramachandrane87005c2016-08-23 16:57:30 -07007045 CFG_ADAPTIVE_PNOSCAN_DWELL_MODE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007046 hdd_ctx->config->pnoscan_adaptive_dwell_mode);
Varun Reddy Yeturub43fda12015-09-10 18:16:21 -07007047#endif
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007048 hdd_debug("Name = [%s] Value = [%d]",
Archana Ramachandrane87005c2016-08-23 16:57:30 -07007049 CFG_EARLY_STOP_SCAN_ENABLE,
Jeff Johnson723234b2017-09-03 08:49:15 -07007050 hdd_ctx->config->early_stop_scan_enable);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007051 hdd_debug("Name = [%s] Value = [%d]",
Archana Ramachandrane87005c2016-08-23 16:57:30 -07007052 CFG_EARLY_STOP_SCAN_MIN_THRESHOLD,
Jeff Johnson723234b2017-09-03 08:49:15 -07007053 hdd_ctx->config->early_stop_scan_min_threshold);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007054 hdd_debug("Name = [%s] Value = [%d]",
Archana Ramachandrane87005c2016-08-23 16:57:30 -07007055 CFG_EARLY_STOP_SCAN_MAX_THRESHOLD,
Jeff Johnson723234b2017-09-03 08:49:15 -07007056 hdd_ctx->config->early_stop_scan_max_threshold);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007057 hdd_debug("Name = [%s] Value = [%d]",
Archana Ramachandrane87005c2016-08-23 16:57:30 -07007058 CFG_FIRST_SCAN_BUCKET_THRESHOLD_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007059 hdd_ctx->config->first_scan_bucket_threshold);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007060 hdd_debug("Name = [%s] Value = [%u]",
Archana Ramachandrane87005c2016-08-23 16:57:30 -07007061 CFG_HT_MPDU_DENSITY_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007062 hdd_ctx->config->ht_mpdu_density);
Krishna Kumaar Natarajan22b59a72015-11-23 18:54:58 -08007063
Ravi Joshi742495d2015-11-09 18:56:53 -08007064
7065#ifdef FEATURE_LFR_SUBNET_DETECTION
Archana Ramachandrane87005c2016-08-23 16:57:30 -07007066 hdd_notice("Name = [%s] Value = [%d]",
7067 CFG_ENABLE_LFR_SUBNET_DETECTION,
Jeff Johnson723234b2017-09-03 08:49:15 -07007068 hdd_ctx->config->enable_lfr_subnet_detection);
Ravi Joshi742495d2015-11-09 18:56:53 -08007069#endif
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007070 hdd_debug("Name = [%s] Value = [%u]",
Gupta, Kapilc68ad462016-02-01 19:17:23 +05307071 CFG_ROAM_DENSE_TRAFFIC_THRESHOLD,
Jeff Johnson723234b2017-09-03 08:49:15 -07007072 hdd_ctx->config->roam_dense_traffic_thresh);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007073 hdd_debug("Name = [%s] Value = [%u]",
Gupta, Kapilc68ad462016-02-01 19:17:23 +05307074 CFG_ROAM_DENSE_RSSI_THRE_OFFSET,
Jeff Johnson723234b2017-09-03 08:49:15 -07007075 hdd_ctx->config->roam_dense_rssi_thresh_offset);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007076 hdd_debug("Name = [%s] Value = [%u]",
Abhishek Singh165bc602016-03-21 12:43:00 +05307077 CFG_IGNORE_PEER_HT_MODE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007078 hdd_ctx->config->ignore_peer_ht_opmode);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007079 hdd_debug("Name = [%s] Value = [%u]",
Kapil Gupta4b2efbb2016-10-03 13:07:20 +05307080 CFG_ENABLE_VENDOR_VHT_FOR_24GHZ_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007081 hdd_ctx->config->enable_sap_vendor_vht);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007082 hdd_debug("Name = [%s] Value = [%u]",
Abhishek Singh5ea86532016-04-27 14:10:53 +05307083 CFG_ENABLE_FATAL_EVENT_TRIGGER,
Jeff Johnson723234b2017-09-03 08:49:15 -07007084 hdd_ctx->config->enable_fatal_event);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007085 hdd_debug("Name = [%s] Value = [%u]",
Gupta, Kapilc68ad462016-02-01 19:17:23 +05307086 CFG_ROAM_DENSE_MIN_APS,
Jeff Johnson723234b2017-09-03 08:49:15 -07007087 hdd_ctx->config->roam_dense_min_aps);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007088 hdd_debug("Name = [%s] Value = [%u]",
Varun Reddy Yeturufaad37e2017-07-26 10:54:13 -07007089 CFG_ROAM_BG_SCAN_BAD_RSSI_THRESHOLD_NAME,
7090 hdd_ctx->config->roam_bg_scan_bad_rssi_thresh);
7091 hdd_debug("Name = [%s] Value = [%u]",
7092 CFG_ROAM_BG_SCAN_CLIENT_BITMAP_NAME,
7093 hdd_ctx->config->roam_bg_scan_client_bitmap);
7094 hdd_debug("Name = [%s] Value = [%u]",
Vignesh Viswanathanc018e982017-09-07 18:49:19 +05307095 CFG_ROAM_BG_SCAN_BAD_RSSI_OFFSET_2G_NAME,
7096 hdd_ctx->config->roam_bad_rssi_thresh_offset_2g);
7097 hdd_debug("Name = [%s] Value = [%u]",
Agrawal Ashish17bb3902016-05-05 13:29:40 +05307098 CFG_MIN_REST_TIME_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007099 hdd_ctx->config->min_rest_time_conc);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007100 hdd_debug("Name = [%s] Value = [%u]",
Agrawal Ashish17bb3902016-05-05 13:29:40 +05307101 CFG_IDLE_TIME_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007102 hdd_ctx->config->idle_time_conc);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007103 hdd_debug("Name = [%s] Value = [%d]",
Mukul Sharmaf7d62e12016-09-03 15:16:22 +05307104 CFG_BUG_ON_REINIT_FAILURE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007105 hdd_ctx->config->bug_on_reinit_failure);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007106 hdd_debug("Name = [%s] Value = [%u]",
Arun Khandavallifae92942016-08-01 13:31:08 +05307107 CFG_INTERFACE_CHANGE_WAIT_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007108 hdd_ctx->config->iface_change_wait_time);
Agrawal Ashish17bb3902016-05-05 13:29:40 +05307109
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007110 hdd_debug("Name = [%s] Value = [%u]",
Abhishek Singh10ecf582016-05-04 17:48:59 +05307111 CFG_ENABLE_EDCA_INI_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007112 hdd_ctx->config->enable_edca_params);
Abhishek Singh10ecf582016-05-04 17:48:59 +05307113
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007114 hdd_debug("Name = [%s] Value = [%u]",
Abhishek Singh10ecf582016-05-04 17:48:59 +05307115 CFG_EDCA_VO_CWMIN_VALUE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007116 hdd_ctx->config->edca_vo_cwmin);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007117 hdd_debug("Name = [%s] Value = [%u]",
Abhishek Singh10ecf582016-05-04 17:48:59 +05307118 CFG_EDCA_VI_CWMIN_VALUE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007119 hdd_ctx->config->edca_vi_cwmin);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007120 hdd_debug("Name = [%s] Value = [%u]",
Abhishek Singh10ecf582016-05-04 17:48:59 +05307121 CFG_EDCA_BK_CWMIN_VALUE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007122 hdd_ctx->config->edca_bk_cwmin);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007123 hdd_debug("Name = [%s] Value = [%u]",
Abhishek Singh10ecf582016-05-04 17:48:59 +05307124 CFG_EDCA_BE_CWMIN_VALUE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007125 hdd_ctx->config->edca_be_cwmin);
Abhishek Singh10ecf582016-05-04 17:48:59 +05307126
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007127 hdd_debug("Name = [%s] Value = [%u]",
Abhishek Singh10ecf582016-05-04 17:48:59 +05307128 CFG_EDCA_VO_CWMAX_VALUE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007129 hdd_ctx->config->edca_vo_cwmax);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007130 hdd_debug("Name = [%s] Value = [%u]",
Abhishek Singh10ecf582016-05-04 17:48:59 +05307131 CFG_EDCA_VI_CWMAX_VALUE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007132 hdd_ctx->config->edca_vi_cwmax);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007133 hdd_debug("Name = [%s] Value = [%u]",
Abhishek Singh10ecf582016-05-04 17:48:59 +05307134 CFG_EDCA_BK_CWMAX_VALUE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007135 hdd_ctx->config->edca_bk_cwmax);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007136 hdd_debug("Name = [%s] Value = [%u]",
Abhishek Singh10ecf582016-05-04 17:48:59 +05307137 CFG_EDCA_BE_CWMAX_VALUE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007138 hdd_ctx->config->edca_be_cwmax);
Abhishek Singh10ecf582016-05-04 17:48:59 +05307139
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007140 hdd_debug("Name = [%s] Value = [%u]",
Abhishek Singh10ecf582016-05-04 17:48:59 +05307141 CFG_EDCA_VO_AIFS_VALUE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007142 hdd_ctx->config->edca_vo_aifs);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007143 hdd_debug("Name = [%s] Value = [%u]",
Abhishek Singh10ecf582016-05-04 17:48:59 +05307144 CFG_EDCA_VI_AIFS_VALUE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007145 hdd_ctx->config->edca_vi_aifs);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007146 hdd_debug("Name = [%s] Value = [%u]",
Abhishek Singh10ecf582016-05-04 17:48:59 +05307147 CFG_EDCA_BK_AIFS_VALUE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007148 hdd_ctx->config->edca_bk_aifs);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007149 hdd_debug("Name = [%s] Value = [%u]",
Abhishek Singh10ecf582016-05-04 17:48:59 +05307150 CFG_EDCA_BE_AIFS_VALUE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007151 hdd_ctx->config->edca_be_aifs);
gbian62edd7e2017-03-07 13:12:13 +08007152
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007153 hdd_debug("Name = [%s] Value = [%s]",
gbian62edd7e2017-03-07 13:12:13 +08007154 CFG_ENABLE_TX_SCHED_WRR_VO_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007155 hdd_ctx->config->tx_sched_wrr_vo);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007156 hdd_debug("Name = [%s] Value = [%s]",
gbian62edd7e2017-03-07 13:12:13 +08007157 CFG_ENABLE_TX_SCHED_WRR_VI_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007158 hdd_ctx->config->tx_sched_wrr_vi);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007159 hdd_debug("Name = [%s] Value = [%s]",
gbian62edd7e2017-03-07 13:12:13 +08007160 CFG_ENABLE_TX_SCHED_WRR_BK_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007161 hdd_ctx->config->tx_sched_wrr_bk);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007162 hdd_debug("Name = [%s] Value = [%s]",
gbian62edd7e2017-03-07 13:12:13 +08007163 CFG_ENABLE_TX_SCHED_WRR_BE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007164 hdd_ctx->config->tx_sched_wrr_be);
Mohit Khannaf8f96822017-05-17 17:11:59 -07007165 hdd_info("Name = [%s] Value = [%u]",
Nirav Shahcc1f1ae2016-04-26 11:41:29 +05307166 CFG_ENABLE_DP_TRACE,
Jeff Johnson723234b2017-09-03 08:49:15 -07007167 hdd_ctx->config->enable_dp_trace);
Mohit Khannaf8f96822017-05-17 17:11:59 -07007168 hdd_debug("Name = [%s] Value = [%s]",
7169 CFG_ENABLE_DP_TRACE_CONFIG,
Jeff Johnson723234b2017-09-03 08:49:15 -07007170 hdd_ctx->config->dp_trace_config);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007171 hdd_debug("Name = [%s] Value = [%u]",
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05307172 CFG_ADAPTIVE_SCAN_DWELL_MODE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007173 hdd_ctx->config->scan_adaptive_dwell_mode);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007174 hdd_debug("Name = [%s] Value = [%u]",
Paul Zhang72697bd2017-12-20 09:24:25 +08007175 CFG_ADAPTIVE_SCAN_DWELL_MODE_NC_NAME,
7176 hdd_ctx->config->scan_adaptive_dwell_mode_nc);
7177 hdd_debug("Name = [%s] Value = [%u]",
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05307178 CFG_ADAPTIVE_ROAMSCAN_DWELL_MODE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007179 hdd_ctx->config->roamscan_adaptive_dwell_mode);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007180 hdd_debug("Name = [%s] Value = [%u]",
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05307181 CFG_ADAPTIVE_EXTSCAN_DWELL_MODE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007182 hdd_ctx->config->extscan_adaptive_dwell_mode);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007183 hdd_debug("Name = [%s] Value = [%u]",
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05307184 CFG_ADAPTIVE_DWELL_MODE_ENABLED_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007185 hdd_ctx->config->adaptive_dwell_mode_enabled);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007186 hdd_debug("Name = [%s] Value = [%u]",
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05307187 CFG_GLOBAL_ADAPTIVE_DWELL_MODE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007188 hdd_ctx->config->global_adapt_dwelltime_mode);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007189 hdd_debug("Name = [%s] Value = [%u]",
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05307190 CFG_ADAPT_DWELL_LPF_WEIGHT_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007191 hdd_ctx->config->adapt_dwell_lpf_weight);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007192 hdd_debug("Name = [%s] Value = [%u]",
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05307193 CFG_ADAPT_DWELL_PASMON_INTVAL_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007194 hdd_ctx->config->adapt_dwell_passive_mon_intval);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007195 hdd_debug("Name = [%s] Value = [%u]",
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05307196 CFG_ADAPT_DWELL_WIFI_THRESH_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007197 hdd_ctx->config->adapt_dwell_wifi_act_threshold);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007198 hdd_debug("Name = [%s] value = [%u]",
Naveen Rawat64e477e2016-05-20 10:34:56 -07007199 CFG_SUB_20_CHANNEL_WIDTH_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007200 hdd_ctx->config->enable_sub_20_channel_width);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007201 hdd_debug("Name = [%s] Value = [%u]",
Rajeev Kumar Sirasanagandlaaf474742016-09-06 17:54:50 +05307202 CFG_TGT_GTX_USR_CFG_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007203 hdd_ctx->config->tgt_gtx_usr_cfg);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007204 hdd_debug("Name = [%s] Value = [%u]",
Agrawal, Ashish4e5fa1c2016-09-21 19:03:43 +05307205 CFG_SAP_MAX_INACTIVITY_OVERRIDE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007206 hdd_ctx->config->sap_max_inactivity_override);
7207 hdd_ndp_print_ini_config(hdd_ctx);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007208 hdd_debug("Name = [%s] Value = [%s]",
Krishna Kumaar Natarajancc077c22016-08-02 10:41:53 -07007209 CFG_RM_CAPABILITY_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007210 hdd_ctx->config->rm_capability);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007211 hdd_debug("Name = [%s] Value = [%d]",
Rajeev Kumar Sirasanagandlab79b5462016-09-06 18:33:17 +05307212 CFG_SAP_FORCE_11N_FOR_11AC_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007213 hdd_ctx->config->sap_force_11n_for_11ac);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007214 hdd_debug("Name = [%s] Value = [%d]",
Bala Venkateshb9cf3362017-11-09 15:48:46 +05307215 CFG_GO_FORCE_11N_FOR_11AC_NAME,
7216 hdd_ctx->config->go_force_11n_for_11ac);
7217 hdd_debug("Name = [%s] Value = [%d]",
Rajeev Kumardd3bc602016-08-16 14:21:05 -07007218 CFG_BPF_PACKET_FILTER_OFFLOAD,
Jeff Johnson723234b2017-09-03 08:49:15 -07007219 hdd_ctx->config->bpf_packet_filter_enable);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007220 hdd_debug("Name = [%s] Value = [%u]",
Nitesh Shah61c10d92016-10-19 19:29:15 +05307221 CFG_TDLS_ENABLE_DEFER_TIMER,
Jeff Johnson723234b2017-09-03 08:49:15 -07007222 hdd_ctx->config->tdls_enable_defer_time);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007223 hdd_debug("Name = [%s] Value = [%d]",
Ravi Joshibb8d4512016-08-22 10:14:52 -07007224 CFG_FILTER_MULTICAST_REPLAY_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007225 hdd_ctx->config->multicast_replay_filter);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007226 hdd_debug("Name = [%s] Value = [%u]",
Agrawal Ashishb2d1a452016-05-05 12:23:58 +05307227 CFG_ENABLE_GO_CTS2SELF_FOR_STA,
Jeff Johnson723234b2017-09-03 08:49:15 -07007228 hdd_ctx->config->enable_go_cts2self_for_sta);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007229 hdd_debug("Name = [%s] Value = [%u]",
Sandeep Puligillaafa52892016-10-26 19:03:16 -07007230 CFG_CRASH_FW_TIMEOUT_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007231 hdd_ctx->config->fw_timeout_crash);
Hanumanth Reddy Pothulae87621b2017-04-12 20:53:35 +05307232 hdd_debug("Name = [%s] Value = [%u]",
7233 CFG_ACTIVE_UC_BPF_MODE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007234 hdd_ctx->config->active_uc_bpf_mode);
Hanumanth Reddy Pothulae87621b2017-04-12 20:53:35 +05307235 hdd_debug("Name = [%s] Value = [%u]",
7236 CFG_ACTIVE_MC_BC_BPF_MODE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007237 hdd_ctx->config->active_mc_bc_bpf_mode);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007238 hdd_debug("Name = [%s] Value = [%d]",
Arun Khandavallicc544b32017-01-30 19:52:16 +05307239 CFG_SAP_INTERNAL_RESTART_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007240 hdd_ctx->config->sap_internal_restart);
gaoleze5108942017-03-31 16:56:42 +08007241 hdd_debug("Name = [%s] Value = [%d]",
7242 CFG_ACS_WITH_MORE_PARAM_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007243 hdd_ctx->config->acs_with_more_param);
Ravi Kumar Bokka05c14e52017-03-27 14:48:23 +05307244 hdd_debug("Name = [%s] Value = [%u]",
7245 CFG_AUTO_DETECT_POWER_FAIL_MODE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007246 hdd_ctx->config->auto_pwr_save_fail_mode);
Hanumanth Reddy Pothula9c161dd2017-03-23 19:03:08 +05307247 hdd_debug("Name = [%s] Value = [%d]",
Hanumanth Reddy Pothulaffc2d482017-07-04 11:32:44 +05307248 CFG_RESTART_BEACONING_ON_CH_AVOID_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007249 hdd_ctx->config->restart_beaconing_on_chan_avoid_event);
Ravi Kumar Bokka05c14e52017-03-27 14:48:23 +05307250
Jeff Johnson723234b2017-09-03 08:49:15 -07007251 hdd_per_roam_print_ini_config(hdd_ctx);
7252 hdd_he_print_ini_config(hdd_ctx);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007253 hdd_debug("Name = [%s] Value = [%d]",
Srinivas Girigowda70e169a2017-03-07 23:55:57 -08007254 CFG_ARP_AC_CATEGORY,
Jeff Johnson723234b2017-09-03 08:49:15 -07007255 hdd_ctx->config->arp_ac_category);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007256 hdd_debug("Name = [%s] Value = [%u]",
Dustin Brown20b6fcf2017-05-17 15:35:17 -07007257 CFG_SCAN_BACKOFF_MULTIPLIER_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007258 hdd_ctx->config->scan_backoff_multiplier);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007259 hdd_debug("Name = [%s] Value = [%d]",
Jayachandran Sreekumaran68c952c2017-04-24 12:42:03 +05307260 CFG_EXTERNAL_ACS_POLICY,
Jeff Johnson723234b2017-09-03 08:49:15 -07007261 hdd_ctx->config->external_acs_policy);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007262 hdd_debug("Name = [%s] Value = [%d]",
Jayachandran Sreekumaran68c952c2017-04-24 12:42:03 +05307263 CFG_EXTERNAL_ACS_FREQ_BAND,
Jeff Johnson723234b2017-09-03 08:49:15 -07007264 hdd_ctx->config->external_acs_freq_band);
Varun Reddy Yeturu8a5d3d42017-08-02 13:03:27 -07007265 hdd_debug("Name = [%s] value = [%u]",
Naveen Rawat2b6e3c92017-03-20 13:59:07 -07007266 CFG_DROPPED_PKT_DISCONNECT_TH_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007267 hdd_ctx->config->pkt_err_disconn_th);
Rajeev Kumar Sirasanagandlaaec0b082017-06-21 11:59:41 +05307268
Jeff Johnson723234b2017-09-03 08:49:15 -07007269 hdd_cfg_print_ie_whitelist_attrs(hdd_ctx);
Rajeev Kumar Sirasanagandlaaec0b082017-06-21 11:59:41 +05307270
Naveen Rawatb2fc4132017-05-10 20:42:05 -07007271 hdd_debug("Name = [%s] value = [%u]",
7272 CFG_FORCE_1X1_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007273 hdd_ctx->config->is_force_1x1);
Srinivas Girigowda6598eea2017-07-06 19:26:19 -07007274 hdd_debug("Name = [%s] Value = %u",
Ashish Kumar Dhanotiya470af292017-05-31 20:46:00 +05307275 CFG_ENABLE_CONNECTED_SCAN_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007276 hdd_ctx->config->enable_connected_scan);
Naveen Rawat247a8682017-06-05 15:00:31 -07007277 hdd_debug("Name = [%s] value = [%u]",
7278 CFG_11B_NUM_TX_CHAIN_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007279 hdd_ctx->config->num_11b_tx_chains);
Naveen Rawat247a8682017-06-05 15:00:31 -07007280 hdd_debug("Name = [%s] value = [%u]",
7281 CFG_11AG_NUM_TX_CHAIN_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007282 hdd_ctx->config->num_11ag_tx_chains);
Ashish Kumar Dhanotiya9335d812017-06-30 16:57:20 +05307283 hdd_debug("Name = [%s] value = [%u]",
7284 CFG_ITO_REPEAT_COUNT_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007285 hdd_ctx->config->ito_repeat_count);
Selvaraj, Sridhar57ce4df2017-05-29 18:30:49 +05307286 hdd_debug("Name = [%s] Value = [%u]",
7287 CFG_ROAM_DISALLOW_DURATION_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007288 hdd_ctx->config->disallow_duration);
Selvaraj, Sridhar57ce4df2017-05-29 18:30:49 +05307289 hdd_debug("Name = [%s] Value = [%u]",
7290 CFG_ROAM_RSSI_CHANNEL_PENALIZATION_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007291 hdd_ctx->config->rssi_channel_penalization);
Selvaraj, Sridhar57ce4df2017-05-29 18:30:49 +05307292 hdd_debug("Name = [%s] Value = [%u]",
7293 CFG_ROAM_NUM_DISALLOWED_APS_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007294 hdd_ctx->config->num_disallowed_aps);
Ashish Kumar Dhanotiyab8630ab2017-07-21 14:18:14 +05307295 hdd_debug("Name = [%s] value = [%u]",
7296 CFG_LPRx_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007297 hdd_ctx->config->enable_lprx);
Ashish Kumar Dhanotiyab28338c2017-07-21 20:12:34 +05307298 hdd_debug("Name = [%s] value = [%u]",
7299 CFG_UPPER_BRSSI_THRESH_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007300 hdd_ctx->config->upper_brssi_thresh);
Ashish Kumar Dhanotiyab28338c2017-07-21 20:12:34 +05307301 hdd_debug("Name = [%s] value = [%u]",
7302 CFG_LOWER_BRSSI_THRESH_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007303 hdd_ctx->config->lower_brssi_thresh);
Ashish Kumar Dhanotiyab28338c2017-07-21 20:12:34 +05307304 hdd_debug("Name = [%s] value = [%u]",
7305 CFG_DTIM_1CHRX_ENABLE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007306 hdd_ctx->config->enable_dtim_1chrx);
Ravi Joshi9771d432017-06-26 13:58:12 -07007307 hdd_debug("Name = [%s] value = [%u]",
hqu16d6e082017-09-04 10:52:31 +08007308 CFG_RANDOMIZE_NDI_MAC_NAME,
7309 hdd_ctx->config->is_ndi_mac_randomized);
Ashish Kumar Dhanotiyacc2e0d32017-08-24 20:13:08 +05307310 hdd_debug("Name = [%s] value = [%u]",
7311 CFG_DOT11P_MODE_NAME,
Jeff Johnson723234b2017-09-03 08:49:15 -07007312 hdd_ctx->config->dot11p_mode);
hqu16d6e082017-09-04 10:52:31 +08007313 hdd_debug("Name = [%s] value = [%u]",
Dustin Brown87194762017-09-07 14:32:12 -07007314 CFG_PREVENT_LINK_DOWN_NAME,
7315 hdd_ctx->config->prevent_link_down);
7316 hdd_debug("Name = [%s] value = [%u]",
hqu16d6e082017-09-04 10:52:31 +08007317 CFG_CHAN_SWITCH_HOSTAPD_RATE_ENABLED_NAME,
7318 hdd_ctx->config->chan_switch_hostapd_rate_enabled);
Abhishek Singhb58164a2017-07-19 18:47:23 +05307319 hdd_debug("Name = [%s] value = [%u]",
7320 CFG_IS_BSSID_HINT_PRIORITY_NAME,
7321 hdd_ctx->config->is_bssid_hint_priority);
Himanshu Agarwal8bcec572017-09-28 11:54:37 +05307322 hdd_debug("Name = [%s] value = [%u]",
7323 CFG_RSSI_WEIGHTAGE_NAME,
7324 hdd_ctx->config->rssi_weightage);
7325 hdd_debug("Name = [%s] value = [%u]",
7326 CFG_HT_CAPABILITY_WEIGHTAGE_NAME,
7327 hdd_ctx->config->ht_caps_weightage);
7328 hdd_debug("Name = [%s] value = [%u]",
7329 CFG_VHT_CAPABILITY_WEIGHTAGE_NAME,
7330 hdd_ctx->config->vht_caps_weightage);
7331 hdd_debug("Name = [%s] value = [%u]",
7332 CFG_HE_CAPABILITY_WEIGHTAGE_NAME,
7333 hdd_ctx->config->he_caps_weightage);
7334 hdd_debug("Name = [%s] value = [%u]",
7335 CFG_CHAN_WIDTH_WEIGHTAGE_NAME,
7336 hdd_ctx->config->chan_width_weightage);
7337 hdd_debug("Name = [%s] value = [%u]",
7338 CFG_CHAN_BAND_WEIGHTAGE_NAME,
7339 hdd_ctx->config->chan_band_weightage);
7340 hdd_debug("Name = [%s] value = [%u]",
7341 CFG_NSS_WEIGHTAGE_NAME,
7342 hdd_ctx->config->nss_weightage);
7343 hdd_debug("Name = [%s] value = [%u]",
7344 CFG_BEAMFORMING_CAP_WEIGHTAGE_NAME,
7345 hdd_ctx->config->beamforming_cap_weightage);
7346 hdd_debug("Name = [%s] value = [%u]",
7347 CFG_PCL_WEIGHT_WEIGHTAGE_NAME,
7348 hdd_ctx->config->pcl_weightage);
7349 hdd_debug("Name = [%s] value = [%u]",
7350 CFG_CHANNEL_CONGESTION_WEIGHTAGE_NAME,
7351 hdd_ctx->config->channel_congestion_weightage);
7352 hdd_debug("Name = [%s] value = [%u]",
7353 CFG_OCE_WAN_WEIGHTAGE_NAME,
7354 hdd_ctx->config->oce_wan_weightage);
7355 hdd_debug("Name = [%s] value = [%u]",
7356 CFG_BAND_WIDTH_WEIGHT_PER_INDEX_NAME,
7357 hdd_ctx->config->bandwidth_weight_per_index);
7358 hdd_debug("Name = [%s] value = [%u]",
7359 CFG_NSS_WEIGHT_PER_INDEX_NAME,
7360 hdd_ctx->config->nss_weight_per_index);
7361 hdd_debug("Name = [%s] value = [%u]",
7362 CFG_BAND_WEIGHT_PER_INDEX_NAME,
7363 hdd_ctx->config->band_weight_per_index);
7364 hdd_debug("Name = [%s] value = [%u]",
7365 CFG_BEST_RSSI_THRESHOLD_NAME,
7366 hdd_ctx->config->best_rssi_threshold);
7367 hdd_debug("Name = [%s] value = [%u]",
7368 CFG_GOOD_RSSI_THRESHOLD_NAME,
7369 hdd_ctx->config->good_rssi_threshold);
7370 hdd_debug("Name = [%s] value = [%u]",
7371 CFG_BAD_RSSI_THRESHOLD_NAME,
7372 hdd_ctx->config->bad_rssi_threshold);
7373 hdd_debug("Name = [%s] value = [%u]",
7374 CFG_GOOD_RSSI_PCNT_NAME,
7375 hdd_ctx->config->good_rssi_pcnt);
7376 hdd_debug("Name = [%s] value = [%u]",
7377 CFG_BAD_RSSI_PCNT_NAME,
7378 hdd_ctx->config->bad_rssi_pcnt);
7379 hdd_debug("Name = [%s] value = [%u]",
7380 CFG_GOOD_RSSI_BUCKET_SIZE_NAME,
7381 hdd_ctx->config->good_rssi_bucket_size);
7382 hdd_debug("Name = [%s] value = [%u]",
7383 CFG_BAD_RSSI_BUCKET_SIZE_NAME,
7384 hdd_ctx->config->bad_rssi_bucket_size);
7385 hdd_debug("Name = [%s] value = [%u]",
7386 CFG_RSSI_PERF_5G_THRESHOLD_NAME,
7387 hdd_ctx->config->rssi_pref_5g_rssi_thresh);
7388 hdd_debug("Name = [%s] value = [%u]",
7389 CFG_ESP_QBSS_SLOTS_NAME,
7390 hdd_ctx->config->num_esp_qbss_slots);
7391 hdd_debug("Name = [%s] value = [%u]",
7392 CFG_ESP_QBSS_SCORE_IDX3_TO_0_NAME,
7393 hdd_ctx->config->esp_qbss_score_slots3_to_0);
7394 hdd_debug("Name = [%s] value = [%u]",
7395 CFG_ESP_QBSS_SCORE_IDX7_TO_4_NAME,
7396 hdd_ctx->config->esp_qbss_score_slots7_to_4);
7397 hdd_debug("Name = [%s] value = [%u]",
7398 CFG_ESP_QBSS_SCORE_IDX11_TO_8_NAME,
7399 hdd_ctx->config->esp_qbss_score_slots11_to_8);
7400 hdd_debug("Name = [%s] value = [%u]",
7401 CFG_ESP_QBSS_SCORE_IDX15_TO_12_NAME,
7402 hdd_ctx->config->esp_qbss_score_slots15_to_12);
7403 hdd_debug("Name = [%s] value = [%u]",
7404 CFG_ENABLE_SCORING_FOR_ROAM_NAME,
7405 hdd_ctx->config->enable_scoring_for_roam);
7406
Paul Zhang99fe8842017-12-08 14:43:46 +08007407 hdd_wlm_cfg_log(hdd_ctx);
7408
Himanshu Agarwal8bcec572017-09-28 11:54:37 +05307409 hdd_debug("Name = [%s] value = [%u]",
7410 CFG_OCE_WAN_SLOTS_NAME,
7411 hdd_ctx->config->num_oce_wan_slots);
7412 hdd_debug("Name = [%s] value = [%u]",
7413 CFG_OCE_WAN_SCORE_IDX3_TO_0_NAME,
7414 hdd_ctx->config->oce_wan_score_slots3_to_0);
7415 hdd_debug("Name = [%s] value = [%u]",
7416 CFG_OCE_WAN_SCORE_IDX7_TO_4_NAME,
7417 hdd_ctx->config->oce_wan_score_slots7_to_4);
7418 hdd_debug("Name = [%s] value = [%u]",
7419 CFG_OCE_WAN_SCORE_IDX11_TO_8_NAME,
7420 hdd_ctx->config->oce_wan_score_slots11_to_8);
7421 hdd_debug("Name = [%s] value = [%u]",
7422 CFG_OCE_WAN_SCORE_IDX15_TO_12_NAME,
7423 hdd_ctx->config->oce_wan_score_slots15_to_12);
Abhishek Singh6454ad32017-12-20 10:42:21 +05307424 hdd_debug("Name = [%s] Value = [%u]",
7425 CFG_FORCE_RSNE_OVERRIDE_NAME,
7426 hdd_ctx->config->force_rsne_override);
Nachiket Kukade8983cf62017-10-12 18:14:48 +05307427 hdd_debug("Name = [%s] value = [0x%x]", CFG_VC_MODE_BITMAP,
7428 hdd_ctx->config->vc_mode_cfg_bitmap);
Ravi Kumar Bokka990edcc2017-01-09 20:02:58 +05307429 hdd_debug("Name = [%s] Value = [%u]",
7430 CFG_ENABLE_PHY_REG,
7431 hdd_ctx->config->enable_phy_reg_retention);
yeshwanth sriram guntuka41f936c2017-09-01 17:53:49 +05307432 hdd_debug("Name = [btm_offload_config] value = [0x%x]",
7433 hdd_ctx->config->btm_offload_config);
Padma, Santhosh Kumar3e47c632017-09-01 20:15:27 +05307434 hdd_cfg_print_sae(hdd_ctx);
Jiachao Wu84bb2ea2018-01-08 16:17:33 +08007435 hdd_debug("Name = [btm_solicited_timeout] value = [0x%x]",
7436 hdd_ctx->config->btm_solicited_timeout);
7437 hdd_debug("Name = [btm_max_attempt_cnt] value = [0x%x]",
7438 hdd_ctx->config->btm_max_attempt_cnt);
7439 hdd_debug("Name = [btm_sticky_time] value = [0x%x]",
7440 hdd_ctx->config->btm_sticky_time);
Ashish Kumar Dhanotiyacb14b112018-01-19 19:26:44 +05307441 hdd_debug("Name = [%s] value = [%d]",
7442 CFG_ENABLE_GCMP_NAME,
7443 hdd_ctx->config->gcmp_enabled);
Ashish Kumar Dhanotiya191d1642018-02-08 17:43:09 +05307444 hdd_debug("Name = [%s] value = [%d]",
7445 CFG_DTIM_SELECTION_DIVERSITY_NAME,
7446 hdd_ctx->config->enable_dtim_selection_diversity);
Vignesh Viswanathan694e28e2018-01-18 20:53:57 +05307447
7448 hdd_cfg_print_11k_offload_params(hdd_ctx);
Yeshwanth Sriram Guntukadb7995d2018-01-22 16:46:59 +05307449 hdd_debug("Name = [%s] value = [0x%x]",
7450 CFG_CHANNEL_SELECT_LOGIC_CONC_NAME,
7451 hdd_ctx->config->channel_select_logic_conc);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007452}
7453
7454
7455/**
7456 * hdd_update_mac_config() - update MAC address from cfg file
Jeff Johnson723234b2017-09-03 08:49:15 -07007457 * @hdd_ctx: the pointer to hdd context
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007458 *
7459 * It overwrites the MAC address if config file exist.
7460 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307461 * Return: QDF_STATUS_SUCCESS if the MAC address is found from cfg file
7462 * and overwritten, otherwise QDF_STATUS_E_INVAL
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007463 */
Jeff Johnson723234b2017-09-03 08:49:15 -07007464QDF_STATUS hdd_update_mac_config(struct hdd_context *hdd_ctx)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007465{
7466 int status, i = 0;
7467 const struct firmware *fw = NULL;
7468 char *line, *buffer = NULL;
Yuanyuan Liu6043d3c2016-07-25 11:40:38 -07007469 char *temp = NULL;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007470 char *name, *value;
Nachiket Kukadee4d86442017-06-23 16:57:00 +05307471 int max_mac_addr = QDF_MAX_CONCURRENCY_PERSONA;
Jeff Johnson7274ccc2017-09-30 19:45:40 -07007472 struct hdd_cfg_entry macTable[QDF_MAX_CONCURRENCY_PERSONA];
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007473 tSirMacAddr customMacAddr;
7474
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307475 QDF_STATUS qdf_status = QDF_STATUS_SUCCESS;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007476
7477 memset(macTable, 0, sizeof(macTable));
Jeff Johnson723234b2017-09-03 08:49:15 -07007478 status = request_firmware(&fw, WLAN_MAC_FILE, hdd_ctx->parent_dev);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007479
7480 if (status) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07007481 hdd_err("request_firmware failed %d", status);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307482 qdf_status = QDF_STATUS_E_FAILURE;
7483 return qdf_status;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007484 }
7485 if (!fw || !fw->data || !fw->size) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08007486 hdd_alert("invalid firmware");
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307487 qdf_status = QDF_STATUS_E_INVAL;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007488 goto config_exit;
7489 }
7490
Yuanyuan Liu6043d3c2016-07-25 11:40:38 -07007491 hdd_debug("wlan_mac.bin size %zu", fw->size);
7492
Srinivas Girigowdae6b465b2017-03-30 18:27:25 -07007493 temp = qdf_mem_malloc(fw->size + 1);
Yuanyuan Liu6043d3c2016-07-25 11:40:38 -07007494
7495 if (temp == NULL) {
7496 hdd_err("fail to alloc memory");
7497 qdf_status = QDF_STATUS_E_NOMEM;
7498 goto config_exit;
7499 }
7500 buffer = temp;
7501 qdf_mem_copy(buffer, fw->data, fw->size);
Srinivas Girigowdafb20a952017-04-05 11:38:48 -07007502 buffer[fw->size] = 0x0;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007503
7504 /* data format:
7505 * Intf0MacAddress=00AA00BB00CC
7506 * Intf1MacAddress=00AA00BB00CD
7507 * END
7508 */
7509 while (buffer != NULL) {
7510 line = get_next_line(buffer);
7511 buffer = i_trim(buffer);
7512
7513 if (strlen((char *)buffer) == 0 || *buffer == '#') {
7514 buffer = line;
7515 continue;
7516 }
7517 if (strncmp(buffer, "END", 3) == 0)
7518 break;
7519
7520 name = buffer;
7521 buffer = strnchr(buffer, strlen(buffer), '=');
7522 if (buffer) {
7523 *buffer++ = '\0';
7524 i_trim(name);
7525 if (strlen(name) != 0) {
7526 buffer = i_trim(buffer);
7527 if (strlen(buffer) == 12) {
7528 value = buffer;
7529 macTable[i].name = name;
7530 macTable[i++].value = value;
Anurag Chouhan6d760662016-02-20 16:05:43 +05307531 if (i >= QDF_MAX_CONCURRENCY_PERSONA)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007532 break;
7533 }
7534 }
7535 }
7536 buffer = line;
7537 }
Anurag Chouhan6d760662016-02-20 16:05:43 +05307538 if (i <= QDF_MAX_CONCURRENCY_PERSONA) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07007539 hdd_debug("%d Mac addresses provided", i);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007540 } else {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08007541 hdd_err("invalid number of Mac address provided, nMac = %d", i);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307542 qdf_status = QDF_STATUS_E_INVAL;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007543 goto config_exit;
7544 }
7545
Jeff Johnson723234b2017-09-03 08:49:15 -07007546 update_mac_from_string(hdd_ctx, &macTable[0], i);
Nachiket Kukadee4d86442017-06-23 16:57:00 +05307547 hdd_debug("Populating remaining %d Mac addreses",
7548 max_mac_addr - i);
Jeff Johnson723234b2017-09-03 08:49:15 -07007549 hdd_populate_random_mac_addr(hdd_ctx, max_mac_addr - i);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007550
Anurag Chouhan600c3a02016-03-01 10:33:54 +05307551 qdf_mem_copy(&customMacAddr,
Jeff Johnson723234b2017-09-03 08:49:15 -07007552 &hdd_ctx->config->intfMacAddr[0].bytes[0],
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007553 sizeof(tSirMacAddr));
7554 sme_set_custom_mac_addr(customMacAddr);
7555
7556config_exit:
Yuanyuan Liu6043d3c2016-07-25 11:40:38 -07007557 qdf_mem_free(temp);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007558 release_firmware(fw);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307559 return qdf_status;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007560}
7561
7562/**
Manjunathappa Prakash59f861d2016-04-21 10:33:31 -07007563 * hdd_disable_runtime_pm() - Override to disable runtime_pm.
7564 * @cfg_ini: Handle to struct hdd_config
7565 *
7566 * Return: None
7567 */
7568#ifdef FEATURE_RUNTIME_PM
7569static void hdd_disable_runtime_pm(struct hdd_config *cfg_ini)
7570{
7571 cfg_ini->runtime_pm = 0;
7572}
7573#else
7574static void hdd_disable_runtime_pm(struct hdd_config *cfg_ini)
7575{
7576}
7577#endif
7578
7579/**
7580 * hdd_disable_auto_shutdown() - Override to disable auto_shutdown.
7581 * @cfg_ini: Handle to struct hdd_config
7582 *
7583 * Return: None
7584 */
7585#ifdef FEATURE_WLAN_AUTO_SHUTDOWN
7586static void hdd_disable_auto_shutdown(struct hdd_config *cfg_ini)
7587{
7588 cfg_ini->WlanAutoShutdown = 0;
7589}
7590#else
7591static void hdd_disable_auto_shutdown(struct hdd_config *cfg_ini)
7592{
7593}
7594#endif
7595
7596/**
7597 * hdd_override_all_ps() - overrides to disables all the powersave features.
7598 * @hdd_ctx: Pointer to HDD context.
7599 * Overrides below powersave ini configurations.
7600 * gEnableImps=0
7601 * gEnableBmps=0
7602 * gRuntimePM=0
7603 * gWlanAutoShutdown = 0
7604 * gEnableSuspend=0
7605 * gEnablePowerSaveOffload=0
7606 * gEnableWoW=0
7607 *
7608 * Return: None
7609 */
Jeff Johnsonb6909be2017-08-28 12:07:19 -07007610static void hdd_override_all_ps(struct hdd_context *hdd_ctx)
Manjunathappa Prakash59f861d2016-04-21 10:33:31 -07007611{
7612 struct hdd_config *cfg_ini = hdd_ctx->config;
7613
7614 cfg_ini->fIsImpsEnabled = 0;
7615 cfg_ini->is_ps_enabled = 0;
7616 hdd_disable_runtime_pm(cfg_ini);
7617 hdd_disable_auto_shutdown(cfg_ini);
7618 cfg_ini->enablePowersaveOffload = 0;
7619 cfg_ini->wowEnable = 0;
7620}
7621
7622/**
Nirav Shahbd36b062016-07-18 11:12:59 +05307623 * hdd_set_rx_mode_value() - set rx_mode values
7624 * @hdd_ctx: hdd context
7625 *
7626 * Return: none
7627 */
Jeff Johnsonb6909be2017-08-28 12:07:19 -07007628static void hdd_set_rx_mode_value(struct hdd_context *hdd_ctx)
Nirav Shahbd36b062016-07-18 11:12:59 +05307629{
7630 if (hdd_ctx->config->rx_mode & CFG_ENABLE_RX_THREAD &&
7631 hdd_ctx->config->rx_mode & CFG_ENABLE_RPS) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07007632 hdd_warn("rx_mode wrong configuration. Make it default");
Nirav Shahbd36b062016-07-18 11:12:59 +05307633 hdd_ctx->config->rx_mode = CFG_RX_MODE_DEFAULT;
7634 }
7635
7636 if (hdd_ctx->config->rx_mode & CFG_ENABLE_RX_THREAD)
Jeff Johnsone2ba3cd2017-10-30 20:02:09 -07007637 hdd_ctx->enable_rxthread = true;
Nirav Shahbd36b062016-07-18 11:12:59 +05307638
7639 if (hdd_ctx->config->rx_mode & CFG_ENABLE_RPS)
7640 hdd_ctx->rps = true;
7641
7642 if (hdd_ctx->config->rx_mode & CFG_ENABLE_NAPI)
7643 hdd_ctx->napi_enable = true;
7644}
7645
7646/**
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007647 * hdd_parse_config_ini() - parse the ini configuration file
Jeff Johnson723234b2017-09-03 08:49:15 -07007648 * @hdd_ctx: the pointer to hdd context
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007649 *
7650 * This function reads the qcom_cfg.ini file and
7651 * parses each 'Name=Value' pair in the ini file
7652 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307653 * Return: QDF_STATUS_SUCCESS if the qcom_cfg.ini is correctly read,
7654 * otherwise QDF_STATUS_E_INVAL
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007655 */
Jeff Johnson723234b2017-09-03 08:49:15 -07007656QDF_STATUS hdd_parse_config_ini(struct hdd_context *hdd_ctx)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007657{
7658 int status, i = 0;
7659 /** Pointer for firmware image data */
7660 const struct firmware *fw = NULL;
7661 char *buffer, *line, *pTemp = NULL;
7662 size_t size;
7663 char *name, *value;
7664 /* cfgIniTable is static to avoid excess stack usage */
Jeff Johnson7274ccc2017-09-30 19:45:40 -07007665 static struct hdd_cfg_entry cfgIniTable[MAX_CFG_INI_ITEMS];
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307666 QDF_STATUS qdf_status = QDF_STATUS_SUCCESS;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007667
7668 memset(cfgIniTable, 0, sizeof(cfgIniTable));
7669
Jeff Johnson723234b2017-09-03 08:49:15 -07007670 status = request_firmware(&fw, WLAN_INI_FILE, hdd_ctx->parent_dev);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007671
7672 if (status) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08007673 hdd_alert("request_firmware failed %d", status);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307674 qdf_status = QDF_STATUS_E_FAILURE;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007675 goto config_exit;
7676 }
7677 if (!fw || !fw->data || !fw->size) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08007678 hdd_alert("%s download failed", WLAN_INI_FILE);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307679 qdf_status = QDF_STATUS_E_FAILURE;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007680 goto config_exit;
7681 }
7682
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07007683 hdd_debug("qcom_cfg.ini Size %zu", fw->size);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007684
Anurag Chouhan600c3a02016-03-01 10:33:54 +05307685 buffer = (char *)qdf_mem_malloc(fw->size);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007686
7687 if (NULL == buffer) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07007688 hdd_err("qdf_mem_malloc failure");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007689 release_firmware(fw);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307690 return QDF_STATUS_E_NOMEM;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007691 }
7692 pTemp = buffer;
7693
Anurag Chouhan600c3a02016-03-01 10:33:54 +05307694 qdf_mem_copy((void *)buffer, (void *)fw->data, fw->size);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007695 size = fw->size;
7696
7697 while (buffer != NULL) {
7698 line = get_next_line(buffer);
7699 buffer = i_trim(buffer);
7700
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07007701 hdd_debug("%s: item", buffer);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007702
7703 if (strlen((char *)buffer) == 0 || *buffer == '#') {
7704 buffer = line;
7705 continue;
Jeff Johnson68755312017-02-10 11:46:55 -08007706 }
7707
7708 if (strncmp(buffer, "END", 3) == 0)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007709 break;
Jeff Johnson68755312017-02-10 11:46:55 -08007710
7711 name = buffer;
7712 while (*buffer != '=' && *buffer != '\0')
7713 buffer++;
7714 if (*buffer != '\0') {
7715 *buffer++ = '\0';
7716 i_trim(name);
7717 if (strlen(name) != 0) {
7718 buffer = i_trim(buffer);
7719 if (strlen(buffer) > 0) {
7720 value = buffer;
Rajeev Kumar Sirasanagandlaaec0b082017-06-21 11:59:41 +05307721 while (*buffer != '\0')
Jeff Johnson68755312017-02-10 11:46:55 -08007722 buffer++;
7723 *buffer = '\0';
7724 cfgIniTable[i].name = name;
7725 cfgIniTable[i++].value = value;
7726 if (i >= MAX_CFG_INI_ITEMS) {
7727 hdd_err("Number of items in %s > %d",
7728 WLAN_INI_FILE,
7729 MAX_CFG_INI_ITEMS);
7730 break;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007731 }
7732 }
7733 }
7734 }
7735 buffer = line;
7736 }
7737
7738 /* Loop through the registry table and apply all these configs */
Jeff Johnson723234b2017-09-03 08:49:15 -07007739 qdf_status = hdd_apply_cfg_ini(hdd_ctx, cfgIniTable, i);
7740 hdd_set_rx_mode_value(hdd_ctx);
Manjunathappa Prakash59f861d2016-04-21 10:33:31 -07007741 if (QDF_GLOBAL_MONITOR_MODE == cds_get_conparam())
Jeff Johnson723234b2017-09-03 08:49:15 -07007742 hdd_override_all_ps(hdd_ctx);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007743
7744config_exit:
7745 release_firmware(fw);
Anurag Chouhan600c3a02016-03-01 10:33:54 +05307746 qdf_mem_free(pTemp);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307747 return qdf_status;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007748}
7749
7750/**
7751 * hdd_cfg_xlate_to_csr_phy_mode() - convert PHY mode
7752 * @dot11Mode: the mode to convert
7753 *
7754 * Convert the configuration PHY mode to CSR PHY mode
7755 *
7756 * Return: the CSR phy mode value
7757 */
Srinivas Girigowda2fb677c2017-03-25 15:35:34 -07007758eCsrPhyMode hdd_cfg_xlate_to_csr_phy_mode(enum hdd_dot11_mode dot11Mode)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007759{
Naveen Rawat10b1c152017-01-18 11:16:06 -08007760 if (cds_is_sub_20_mhz_enabled())
7761 return eCSR_DOT11_MODE_abg;
7762
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007763 switch (dot11Mode) {
7764 case (eHDD_DOT11_MODE_abg):
7765 return eCSR_DOT11_MODE_abg;
7766 case (eHDD_DOT11_MODE_11b):
7767 return eCSR_DOT11_MODE_11b;
7768 case (eHDD_DOT11_MODE_11g):
7769 return eCSR_DOT11_MODE_11g;
7770 default:
7771 case (eHDD_DOT11_MODE_11n):
7772 return eCSR_DOT11_MODE_11n;
7773 case (eHDD_DOT11_MODE_11g_ONLY):
7774 return eCSR_DOT11_MODE_11g_ONLY;
7775 case (eHDD_DOT11_MODE_11n_ONLY):
7776 return eCSR_DOT11_MODE_11n_ONLY;
7777 case (eHDD_DOT11_MODE_11b_ONLY):
7778 return eCSR_DOT11_MODE_11b_ONLY;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007779 case (eHDD_DOT11_MODE_11ac_ONLY):
7780 return eCSR_DOT11_MODE_11ac_ONLY;
7781 case (eHDD_DOT11_MODE_11ac):
7782 return eCSR_DOT11_MODE_11ac;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007783 case (eHDD_DOT11_MODE_AUTO):
7784 return eCSR_DOT11_MODE_AUTO;
7785 case (eHDD_DOT11_MODE_11a):
7786 return eCSR_DOT11_MODE_11a;
Krishna Kumaar Natarajan4f1d7722017-03-03 21:12:51 -08007787 case (eHDD_DOT11_MODE_11ax_ONLY):
7788 return eCSR_DOT11_MODE_11ax_ONLY;
7789 case (eHDD_DOT11_MODE_11ax):
7790 return eCSR_DOT11_MODE_11ax;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007791 }
7792
7793}
7794
7795/**
7796 * hdd_set_idle_ps_config() - set idle power save configuration
Jeff Johnson723234b2017-09-03 08:49:15 -07007797 * @hdd_ctx: the pointer to hdd context
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007798 * @val: the value to configure
7799 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307800 * Return: QDF_STATUS_SUCCESS if command set correctly,
7801 * otherwise the QDF_STATUS return from SME layer
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007802 */
Arunk Khandavalli847969d2017-09-25 15:15:36 +05307803QDF_STATUS hdd_set_idle_ps_config(struct hdd_context *hdd_ctx, bool val)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007804{
Jeff Johnson4f519342017-09-13 14:27:17 -07007805 QDF_STATUS status;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007806
Jeff Johnson4f519342017-09-13 14:27:17 -07007807 hdd_debug("Enter Val %d", val);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007808
Arunk Khandavalli847969d2017-09-25 15:15:36 +05307809 if (hdd_ctx->imps_enabled == val) {
7810 hdd_notice("Already in the requested power state:%d", val);
7811 return QDF_STATUS_SUCCESS;
7812 }
7813
7814 status = sme_set_idle_powersave_config(val);
7815 if (QDF_STATUS_SUCCESS != status) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08007816 hdd_err("Fail to Set Idle PS Config val %d", val);
Arunk Khandavalli847969d2017-09-25 15:15:36 +05307817 return status;
7818 }
7819
7820 hdd_ctx->imps_enabled = val;
7821
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007822 return status;
7823}
7824
7825/**
7826 * hdd_set_fine_time_meas_cap() - set fine timing measurement capability
7827 * @hdd_ctx: HDD context
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007828 *
7829 * This function is used to pass fine timing measurement capability coming
7830 * from INI to SME. This function make sure that configure INI is supported
7831 * by the device. Use bit mask to mask out the unsupported capabilities.
7832 *
7833 * Return: None
7834 */
Naveen Rawatd2657be2017-10-10 14:31:23 -07007835static void hdd_set_fine_time_meas_cap(struct hdd_context *hdd_ctx)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007836{
7837 struct hdd_config *config = hdd_ctx->config;
7838 uint32_t capability = config->fine_time_meas_cap;
7839
7840 /* Make sure only supported capabilities are enabled in INI */
7841 capability &= CFG_FINE_TIME_MEAS_CAPABILITY_MAX;
Naveen Rawatd2657be2017-10-10 14:31:23 -07007842 ucfg_wifi_pos_set_ftm_cap(hdd_ctx->hdd_psoc, capability);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007843
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07007844 hdd_debug("fine time meas capability - INI: %04x Enabled: %04x",
Krunal Soni1878d3a2016-01-14 13:00:44 -08007845 config->fine_time_meas_cap,
Naveen Rawatd2657be2017-10-10 14:31:23 -07007846 capability);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007847}
7848
7849/**
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08007850 * hdd_convert_string_to_u8_array() - used to convert string into u8 array
7851 * @str: String to be converted
7852 * @hex_array: Array where converted value is stored
7853 * @len: Length of the populated array
7854 * @array_max_len: Maximum length of the array
7855 * @to_hex: true, if conversion required for hex string
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007856 *
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08007857 * This API is called to convert string (each byte separated by
7858 * a comma) into an u8 array
7859 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307860 * Return: QDF_STATUS
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007861 */
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08007862
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307863static QDF_STATUS hdd_convert_string_to_array(char *str, uint8_t *array,
Jiachao Wu6e9b9f92018-01-03 13:35:40 +08007864 uint8_t *len, uint16_t array_max_len, bool to_hex)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007865{
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08007866 char *format, *s = str;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007867
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08007868 if (str == NULL || array == NULL || len == NULL)
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307869 return QDF_STATUS_E_INVAL;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007870
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08007871 format = (to_hex) ? "%02x" : "%d";
7872
7873 *len = 0;
7874 while ((s != NULL) && (*len < array_max_len)) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007875 int val;
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08007876 /* Increment length only if sscanf successfully extracted
7877 * one element. Any other return value means error.
Jeff Johnson78d88a82017-01-12 09:50:54 -08007878 * Ignore it.
7879 */
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08007880 if (sscanf(s, format, &val) == 1) {
7881 array[*len] = (uint8_t) val;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007882 *len += 1;
7883 }
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08007884
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007885 s = strpbrk(s, ",");
7886 if (s)
7887 s++;
7888 }
7889
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307890 return QDF_STATUS_SUCCESS;
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08007891}
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007892
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08007893/**
7894 * hdd_hex_string_to_u8_array() - used to convert hex string into u8 array
7895 * @str: Hexadecimal string
7896 * @hex_array: Array where converted value is stored
7897 * @len: Length of the populated array
7898 * @array_max_len: Maximum length of the array
7899 *
7900 * This API is called to convert hexadecimal string (each byte separated by
7901 * a comma) into an u8 array
7902 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307903 * Return: QDF_STATUS
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08007904 */
Jeff Johnsonf1bf3a62016-10-05 15:48:13 -07007905static QDF_STATUS hdd_hex_string_to_u8_array(char *str, uint8_t *hex_array,
7906 uint8_t *len,
7907 uint8_t array_max_len)
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08007908{
7909 return hdd_convert_string_to_array(str, hex_array, len,
7910 array_max_len, true);
7911}
7912
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307913QDF_STATUS hdd_string_to_u8_array(char *str, uint8_t *array,
Jiachao Wu6e9b9f92018-01-03 13:35:40 +08007914 uint8_t *len, uint16_t array_max_len)
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08007915{
7916 return hdd_convert_string_to_array(str, array, len,
7917 array_max_len, false);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007918}
7919
7920/**
Nirav Shahbd36b062016-07-18 11:12:59 +05307921 * hdd_hex_string_to_u16_array() - convert a hex string to a uint16 array
7922 * @str: input string
7923 * @int_array: pointer to input array of type uint16
7924 * @len: pointer to number of elements which the function adds to the array
7925 * @int_array_max_len: maximum number of elements in input uint16 array
7926 *
7927 * This function is used to convert a space separated hex string to an array of
7928 * uint16_t. For example, an input string str = "a b c d" would be converted to
7929 * a unint16 array, int_array = {0xa, 0xb, 0xc, 0xd}, *len = 4.
7930 * This assumes that input value int_array_max_len >= 4.
7931 *
7932 * Return: QDF_STATUS_SUCCESS - if the conversion is successful
7933 * non zero value - if the conversion is a failure
7934 */
7935QDF_STATUS hdd_hex_string_to_u16_array(char *str,
7936 uint16_t *int_array, uint8_t *len, uint8_t int_array_max_len)
7937{
7938 char *s = str;
7939 uint32_t val = 0;
7940
7941 if (str == NULL || int_array == NULL || len == NULL)
7942 return QDF_STATUS_E_INVAL;
7943
Jeff Johnson36e74c42017-09-18 08:15:42 -07007944 hdd_debug("str %pK intArray %pK intArrayMaxLen %d",
Nirav Shahbd36b062016-07-18 11:12:59 +05307945 s, int_array, int_array_max_len);
7946
7947 *len = 0;
7948
7949 while ((s != NULL) && (*len < int_array_max_len)) {
7950 /*
7951 * Increment length only if sscanf successfully extracted one
7952 * element. Any other return value means error. Ignore it.
7953 */
7954 if (sscanf(s, "%x", &val) == 1) {
7955 int_array[*len] = (uint16_t) val;
Jeff Johnson36e74c42017-09-18 08:15:42 -07007956 hdd_debug("s %pK val %x intArray[%d]=0x%x",
Nirav Shahbd36b062016-07-18 11:12:59 +05307957 s, val, *len, int_array[*len]);
7958 *len += 1;
7959 }
7960 s = strpbrk(s, " ");
7961 if (s)
7962 s++;
7963 }
7964 return QDF_STATUS_SUCCESS;
7965}
7966
Nirav Shahbd36b062016-07-18 11:12:59 +05307967/**
Krunal Soni52198e42016-09-26 13:53:09 -07007968 * hdd_update_ht_cap_in_cfg() - to update HT cap in global CFG
Krunal Sonidf0f8742016-09-26 14:56:31 -07007969 * @hdd_ctx: pointer to hdd context
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007970 *
Krunal Soni52198e42016-09-26 13:53:09 -07007971 * This API will update the HT config in CFG after taking intersection
7972 * of INI and firmware capabilities provided reading CFG
7973 *
7974 * Return: true or false
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007975 */
Jeff Johnsonb6909be2017-08-28 12:07:19 -07007976static bool hdd_update_ht_cap_in_cfg(struct hdd_context *hdd_ctx)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007977{
Krunal Soni5c390162016-09-26 15:07:05 -07007978 uint32_t val32;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007979 uint16_t val16;
Krunal Soni5c390162016-09-26 15:07:05 -07007980 bool status = true;
Krunal Sonidf0f8742016-09-26 14:56:31 -07007981 tSirMacHTCapabilityInfo *ht_cap_info;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08007982
Krunal Sonidf0f8742016-09-26 14:56:31 -07007983 if (sme_cfg_get_int(hdd_ctx->hHal, WNI_CFG_HT_CAP_INFO,
Krunal Soni5c390162016-09-26 15:07:05 -07007984 &val32) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05307985 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07007986 status = false;
Krunal Soni5c390162016-09-26 15:07:05 -07007987 hdd_err("Could not get WNI_CFG_HT_CAP_INFO");
Sandeep Puligilla607f34a2016-05-25 14:37:47 -07007988 }
Krunal Soni5c390162016-09-26 15:07:05 -07007989 val16 = (uint16_t) val32;
Krunal Sonidf0f8742016-09-26 14:56:31 -07007990 ht_cap_info = (tSirMacHTCapabilityInfo *) &val16;
Krunal Sonia2c0e412017-05-04 14:12:41 +05307991 ht_cap_info->advCodingCap &= hdd_ctx->config->enable_rx_ldpc;
Krunal Soni5c390162016-09-26 15:07:05 -07007992 ht_cap_info->rxSTBC = QDF_MIN(ht_cap_info->rxSTBC,
7993 hdd_ctx->config->enableRxSTBC);
7994 ht_cap_info->txSTBC &= hdd_ctx->config->enableTxSTBC;
7995 ht_cap_info->shortGI20MHz &= hdd_ctx->config->ShortGI20MhzEnable;
7996 ht_cap_info->shortGI40MHz &= hdd_ctx->config->ShortGI40MhzEnable;
7997 val32 = val16;
7998 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_HT_CAP_INFO, val32) ==
7999 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07008000 status = false;
Krunal Soni5c390162016-09-26 15:07:05 -07008001 hdd_err("Could not set WNI_CFG_HT_CAP_INFO");
Krunal Soni52198e42016-09-26 13:53:09 -07008002 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07008003 return status;
Krunal Soni52198e42016-09-26 13:53:09 -07008004}
8005
8006/**
Krunal Soni6c7c39f2016-09-26 14:30:34 -07008007 * hdd_update_vht_cap_in_cfg() - to update VHT cap in global CFG
Krunal Sonidf0f8742016-09-26 14:56:31 -07008008 * @hdd_ctx: pointer to hdd context
Krunal Soni6c7c39f2016-09-26 14:30:34 -07008009 *
8010 * This API will update the VHT config in CFG after taking intersection
8011 * of INI and firmware capabilities provided reading CFG
8012 *
8013 * Return: true or false
8014 */
Jeff Johnsonb6909be2017-08-28 12:07:19 -07008015static bool hdd_update_vht_cap_in_cfg(struct hdd_context *hdd_ctx)
Krunal Soni6c7c39f2016-09-26 14:30:34 -07008016{
Krunal Sonidf0f8742016-09-26 14:56:31 -07008017 bool status = true;
Krunal Soni6c7c39f2016-09-26 14:30:34 -07008018 uint32_t val;
Krunal Sonidf0f8742016-09-26 14:56:31 -07008019 struct hdd_config *config = hdd_ctx->config;
Krunal Soni6c7c39f2016-09-26 14:30:34 -07008020
Krunal Sonidf0f8742016-09-26 14:56:31 -07008021 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_VHT_ENABLE_TXBF_20MHZ,
8022 config->enableTxBFin20MHz) ==
Krunal Soni6c7c39f2016-09-26 14:30:34 -07008023 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07008024 status = false;
8025 hdd_err("Couldn't set value for WNI_CFG_VHT_ENABLE_TXBF_20MHZ");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07008026 }
8027 /* Based on cfg.ini, update the Basic MCS set, RX/TX MCS map
8028 * in the cfg.dat. Valid values are 0(MCS0-7), 1(MCS0-8), 2(MCS0-9)
8029 * we update only the least significant 2 bits in the
8030 * corresponding fields.
8031 */
Krunal Sonidf0f8742016-09-26 14:56:31 -07008032 if ((config->dot11Mode == eHDD_DOT11_MODE_AUTO) ||
8033 (config->dot11Mode == eHDD_DOT11_MODE_11ac_ONLY) ||
8034 (config->dot11Mode == eHDD_DOT11_MODE_11ac)) {
Kiran Kumar Lokeree25d3fc2017-07-21 15:37:04 -07008035 /* Currently shortGI40Mhz is used for shortGI80Mhz and 160MHz*/
Krunal Sonidf0f8742016-09-26 14:56:31 -07008036 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_VHT_SHORT_GI_80MHZ,
8037 config->ShortGI40MhzEnable) == QDF_STATUS_E_FAILURE) {
8038 status = false;
8039 hdd_err("Couldn't pass WNI_VHT_SHORT_GI_80MHZ to CFG");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07008040 }
Kiran Kumar Lokeree25d3fc2017-07-21 15:37:04 -07008041
8042 if (sme_cfg_set_int(hdd_ctx->hHal,
8043 WNI_CFG_VHT_SHORT_GI_160_AND_80_PLUS_80MHZ,
8044 config->ShortGI40MhzEnable) == QDF_STATUS_E_FAILURE) {
8045 status = false;
8046 hdd_err("Couldn't pass SHORT_GI_160MHZ to CFG");
8047 }
8048
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07008049 /* Hardware is capable of doing
8050 * 128K AMPDU in 11AC mode
8051 */
Krunal Sonidf0f8742016-09-26 14:56:31 -07008052 if (sme_cfg_set_int(hdd_ctx->hHal,
Krunal Soni6c7c39f2016-09-26 14:30:34 -07008053 WNI_CFG_VHT_AMPDU_LEN_EXPONENT,
Krunal Sonidf0f8742016-09-26 14:56:31 -07008054 config->fVhtAmpduLenExponent) ==
Krunal Soni6c7c39f2016-09-26 14:30:34 -07008055 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07008056 status = false;
8057 hdd_err("Couldn't pass on WNI_CFG_VHT_AMPDU_LEN_EXPONENT to CFG");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07008058 }
8059 /* Change MU Bformee only when TxBF is enabled */
Krunal Sonidf0f8742016-09-26 14:56:31 -07008060 if (config->enableTxBF) {
8061 sme_cfg_get_int(hdd_ctx->hHal,
Krunal Soni6c7c39f2016-09-26 14:30:34 -07008062 WNI_CFG_VHT_MU_BEAMFORMEE_CAP, &val);
8063
Krunal Sonidf0f8742016-09-26 14:56:31 -07008064 if (val != config->enableMuBformee) {
8065 if (sme_cfg_set_int(hdd_ctx->hHal,
Krunal Soni6c7c39f2016-09-26 14:30:34 -07008066 WNI_CFG_VHT_MU_BEAMFORMEE_CAP,
Krunal Sonidf0f8742016-09-26 14:56:31 -07008067 config->enableMuBformee
Krunal Soni6c7c39f2016-09-26 14:30:34 -07008068 ) == QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07008069 status = false;
8070 hdd_err("Couldn't pass on WNI_CFG_VHT_MU_BEAMFORMEE_CAP to CFG");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07008071 }
8072 }
8073 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07008074 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_VHT_MAX_MPDU_LENGTH,
8075 config->vhtMpduLen) == QDF_STATUS_E_FAILURE) {
8076 status = false;
8077 hdd_err("Couldn't pass on WNI_CFG_VHT_MAX_MPDU_LENGTH to CFG");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07008078 }
8079
Krunal Sonidf0f8742016-09-26 14:56:31 -07008080 if (config->enable2x2 && config->enable_su_tx_bformer) {
8081 if (sme_cfg_set_int(hdd_ctx->hHal,
Krunal Soni6c7c39f2016-09-26 14:30:34 -07008082 WNI_CFG_VHT_SU_BEAMFORMER_CAP,
Krunal Sonidf0f8742016-09-26 14:56:31 -07008083 config->enable_su_tx_bformer) ==
Krunal Soni6c7c39f2016-09-26 14:30:34 -07008084 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07008085 status = false;
Krunal Soni6c7c39f2016-09-26 14:30:34 -07008086 hdd_err("set SU_BEAMFORMER_CAP to CFG failed");
8087 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07008088 if (sme_cfg_set_int(hdd_ctx->hHal,
Krunal Soni6c7c39f2016-09-26 14:30:34 -07008089 WNI_CFG_VHT_NUM_SOUNDING_DIMENSIONS,
8090 NUM_OF_SOUNDING_DIMENSIONS) ==
8091 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07008092 status = false;
Krunal Soni6c7c39f2016-09-26 14:30:34 -07008093 hdd_err("failed to set NUM_OF_SOUNDING_DIM");
8094 }
8095 }
8096 }
8097
Krunal Sonidf0f8742016-09-26 14:56:31 -07008098 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_VHT_RXSTBC,
8099 config->enableRxSTBC) == QDF_STATUS_E_FAILURE) {
8100 status = false;
8101 hdd_err("Couldn't pass on WNI_CFG_VHT_RXSTBC to CFG");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07008102 }
8103
Krunal Sonidf0f8742016-09-26 14:56:31 -07008104 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_VHT_TXSTBC,
8105 config->enableTxSTBC) == QDF_STATUS_E_FAILURE) {
8106 status = false;
8107 hdd_err("Couldn't pass on WNI_CFG_VHT_TXSTBC to CFG");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07008108 }
8109
jiad4a7a33c2017-08-08 15:32:24 +08008110 /* first get HW RX LDPC capability */
Krunal Soni5c390162016-09-26 15:07:05 -07008111 if (sme_cfg_get_int(hdd_ctx->hHal, WNI_CFG_VHT_LDPC_CODING_CAP, &val) ==
8112 QDF_STATUS_E_FAILURE) {
jiad4a7a33c2017-08-08 15:32:24 +08008113 status = false;
Krunal Soni5c390162016-09-26 15:07:05 -07008114 hdd_err("Could not get WNI_CFG_VHT_LDPC_CODING_CAP");
8115 }
jiad4a7a33c2017-08-08 15:32:24 +08008116
8117 /* enable RX LDPC only when both INI and HW are enabled */
Krunal Sonidf0f8742016-09-26 14:56:31 -07008118 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_VHT_LDPC_CODING_CAP,
jiad4a7a33c2017-08-08 15:32:24 +08008119 config->enable_rx_ldpc && val) ==
8120 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07008121 status = false;
8122 hdd_err("Couldn't pass on WNI_CFG_VHT_LDPC_CODING_CAP to CFG");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07008123 }
8124
Krunal Sonidf0f8742016-09-26 14:56:31 -07008125 if (sme_cfg_set_int(hdd_ctx->hHal,
Krunal Soni6c7c39f2016-09-26 14:30:34 -07008126 WNI_CFG_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED,
Krunal Sonidf0f8742016-09-26 14:56:31 -07008127 config->txBFCsnValue) ==
Krunal Soni6c7c39f2016-09-26 14:30:34 -07008128 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07008129 status = false;
8130 hdd_err("Couldn't pass on WNI_CFG_VHT_CSN_BEAMFORMEE_ANT_SUPPORTED to CFG");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07008131 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07008132 return status;
Krunal Soni6c7c39f2016-09-26 14:30:34 -07008133
8134}
8135
8136/**
Krunal Sonidf0f8742016-09-26 14:56:31 -07008137 * hdd_update_config_cfg() - API to update INI setting based on hw/fw caps
8138 * @hdd_ctx: pointer to hdd_ctx
Krunal Soni52198e42016-09-26 13:53:09 -07008139 *
Krunal Sonidf0f8742016-09-26 14:56:31 -07008140 * This API reads the cfg file which is updated with hardware/firmware
8141 * capabilities and intersect it with INI setting provided by user. After
8142 * taking intersection it adjust cfg it self. For example, if user has enabled
8143 * RX LDPC through INI but hardware/firmware doesn't support it then disable
8144 * it in CFG file here.
8145 *
8146 * Return: true or false based on outcome.
Krunal Soni52198e42016-09-26 13:53:09 -07008147 */
Jeff Johnsonb6909be2017-08-28 12:07:19 -07008148bool hdd_update_config_cfg(struct hdd_context *hdd_ctx)
Krunal Soni52198e42016-09-26 13:53:09 -07008149{
Krunal Sonidf0f8742016-09-26 14:56:31 -07008150 bool status = true;
Krunal Soni52198e42016-09-26 13:53:09 -07008151 uint32_t val;
Krunal Sonidf0f8742016-09-26 14:56:31 -07008152 struct hdd_config *config = hdd_ctx->config;
Krunal Soni52198e42016-09-26 13:53:09 -07008153
8154 /*
8155 * During the initialization both 2G and 5G capabilities should be same.
8156 * So read 5G HT capablity and update 2G and 5G capablities.
8157 */
Krunal Sonidf0f8742016-09-26 14:56:31 -07008158 if (!hdd_update_ht_cap_in_cfg(hdd_ctx)) {
8159 status = false;
8160 hdd_err("Couldn't set HT CAP in cfg");
Krunal Soni52198e42016-09-26 13:53:09 -07008161 }
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008162
Krunal Sonidf0f8742016-09-26 14:56:31 -07008163 if (!hdd_update_vht_cap_in_cfg(hdd_ctx)) {
8164 status = false;
8165 hdd_err("Couldn't set VHT CAP in cfg");
Krunal Soni6c7c39f2016-09-26 14:30:34 -07008166 }
8167
Krishna Kumaar Natarajan90bb6f12017-03-03 21:05:52 -08008168 if (0 != hdd_update_he_cap_in_cfg(hdd_ctx)) {
8169 status = false;
8170 hdd_err("Couldn't set HE CAP in cfg");
8171 }
8172
Krunal Sonidf0f8742016-09-26 14:56:31 -07008173 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_FIXED_RATE, config->TxRate)
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308174 == QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07008175 status = false;
8176 hdd_err("Couldn't pass on WNI_CFG_FIXED_RATE 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_MAX_RX_AMPDU_FACTOR,
8180 config->MaxRxAmpduFactor) ==
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("Couldn't pass on WNI_CFG_HT_AMPDU_PARAMS_MAX_RX_AMPDU_FACTOR to CFG");
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_MPDU_DENSITY,
8187 config->ht_mpdu_density) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308188 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07008189 status = false;
8190 hdd_err("Couldn't pass on WNI_CFG_MPDU_DENSITY to CFG");
Krishna Kumaar Natarajan22b59a72015-11-23 18:54:58 -08008191 }
8192
Krunal Sonidf0f8742016-09-26 14:56:31 -07008193 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_SHORT_PREAMBLE,
8194 config->fIsShortPreamble) == QDF_STATUS_E_FAILURE) {
8195 status = false;
8196 hdd_err("Couldn't pass on WNI_CFG_SHORT_PREAMBLE to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008197 }
8198
Krunal Sonidf0f8742016-09-26 14:56:31 -07008199 if (sme_cfg_set_int(hdd_ctx->hHal,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008200 WNI_CFG_PASSIVE_MINIMUM_CHANNEL_TIME,
Krunal Sonidf0f8742016-09-26 14:56:31 -07008201 config->nPassiveMinChnTime)
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308202 == QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07008203 status = false;
8204 hdd_err("Couldn't pass on WNI_CFG_PASSIVE_MINIMUM_CHANNEL_TIME to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008205 }
8206
Krunal Sonidf0f8742016-09-26 14:56:31 -07008207 if (sme_cfg_set_int(hdd_ctx->hHal,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008208 WNI_CFG_PASSIVE_MAXIMUM_CHANNEL_TIME,
Krunal Sonidf0f8742016-09-26 14:56:31 -07008209 config->nPassiveMaxChnTime)
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308210 == QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07008211 status = false;
8212 hdd_err("Couldn't pass on WNI_CFG_PASSIVE_MAXIMUM_CHANNEL_TIME to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008213 }
8214
Krunal Sonidf0f8742016-09-26 14:56:31 -07008215 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_BEACON_INTERVAL,
8216 config->nBeaconInterval) == QDF_STATUS_E_FAILURE) {
8217 status = false;
8218 hdd_err("Couldn't pass on WNI_CFG_BEACON_INTERVAL to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008219 }
8220
Krunal Sonidf0f8742016-09-26 14:56:31 -07008221 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_MAX_PS_POLL,
8222 config->nMaxPsPoll) == QDF_STATUS_E_FAILURE) {
8223 status = false;
8224 hdd_err("Couldn't pass on WNI_CFG_MAX_PS_POLL to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008225 }
8226
Krunal Sonidf0f8742016-09-26 14:56:31 -07008227 if (sme_cfg_set_int (hdd_ctx->hHal, WNI_CFG_LOW_GAIN_OVERRIDE,
8228 config->fIsLowGainOverride) == QDF_STATUS_E_FAILURE) {
8229 status = false;
8230 hdd_err("Couldn't pass on WNI_CFG_LOW_GAIN_OVERRIDE to HAL");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008231 }
8232
Krunal Sonidf0f8742016-09-26 14:56:31 -07008233 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_RSSI_FILTER_PERIOD,
8234 config->nRssiFilterPeriod) == QDF_STATUS_E_FAILURE) {
8235 status = false;
8236 hdd_err("Couldn't pass on WNI_CFG_RSSI_FILTER_PERIOD to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008237 }
8238
Krunal Sonidf0f8742016-09-26 14:56:31 -07008239 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_IGNORE_DTIM,
8240 config->fIgnoreDtim) == QDF_STATUS_E_FAILURE) {
8241 status = false;
8242 hdd_err("Couldn't pass on WNI_IGNORE_DTIM to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008243 }
8244
Krunal Sonidf0f8742016-09-26 14:56:31 -07008245 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_PS_ENABLE_HEART_BEAT,
8246 config->fEnableFwHeartBeatMonitoring)
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308247 == QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07008248 status = false;
8249 hdd_err("Couldn't pass on WNI_CFG_PS_HEART_BEAT to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008250 }
8251
Krunal Sonidf0f8742016-09-26 14:56:31 -07008252 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_PS_ENABLE_BCN_FILTER,
8253 config->fEnableFwBeaconFiltering) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308254 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07008255 status = false;
8256 hdd_err("Couldn't pass on WNI_CFG_PS_BCN_FILTER to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008257 }
8258
Krunal Sonidf0f8742016-09-26 14:56:31 -07008259 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_PS_ENABLE_RSSI_MONITOR,
8260 config->fEnableFwRssiMonitoring) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308261 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07008262 status = false;
8263 hdd_err("Couldn't pass on WNI_CFG_PS_RSSI_MONITOR to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008264 }
8265
Krunal Sonidf0f8742016-09-26 14:56:31 -07008266 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_PS_DATA_INACTIVITY_TIMEOUT,
8267 config->nDataInactivityTimeout) == QDF_STATUS_E_FAILURE) {
8268 status = false;
8269 hdd_err("Couldn't pass on WNI_CFG_PS_DATA_INACTIVITY_TIMEOUT to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008270 }
8271
Mukul Sharmaed92f2f2017-04-20 00:06:28 +05308272 if (sme_cfg_set_int(hdd_ctx->hHal,
8273 WNI_CFG_PS_WOW_DATA_INACTIVITY_TIMEOUT,
8274 config->wow_data_inactivity_timeout) == QDF_STATUS_E_FAILURE) {
8275 status = false;
8276 hdd_err("Fail to pass WNI_CFG_PS_WOW_DATA_INACTIVITY_TO CFG");
8277 }
8278
Krunal Sonidf0f8742016-09-26 14:56:31 -07008279 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_ENABLE_LTE_COEX,
8280 config->enableLTECoex) == QDF_STATUS_E_FAILURE) {
8281 status = false;
8282 hdd_err("Couldn't pass on WNI_CFG_ENABLE_LTE_COEX to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008283 }
8284
Krunal Sonidf0f8742016-09-26 14:56:31 -07008285 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_AP_KEEP_ALIVE_TIMEOUT,
8286 config->apKeepAlivePeriod) == QDF_STATUS_E_FAILURE) {
8287 status = false;
8288 hdd_err("Couldn't pass on WNI_CFG_AP_KEEP_ALIVE_TIMEOUT to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008289 }
8290
Krunal Sonidf0f8742016-09-26 14:56:31 -07008291 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_GO_KEEP_ALIVE_TIMEOUT,
8292 config->goKeepAlivePeriod) == QDF_STATUS_E_FAILURE) {
8293 status = false;
8294 hdd_err("Couldn't pass on WNI_CFG_GO_KEEP_ALIVE_TIMEOUT to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008295 }
8296
Krunal Sonidf0f8742016-09-26 14:56:31 -07008297 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_AP_LINK_MONITOR_TIMEOUT,
8298 config->apLinkMonitorPeriod) == QDF_STATUS_E_FAILURE) {
8299 status = false;
8300 hdd_err("Couldn't pass on WNI_CFG_AP_LINK_MONITOR_TIMEOUT to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008301 }
8302
Krunal Sonidf0f8742016-09-26 14:56:31 -07008303 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_GO_LINK_MONITOR_TIMEOUT,
8304 config->goLinkMonitorPeriod) == QDF_STATUS_E_FAILURE) {
8305 status = false;
8306 hdd_err("Couldn't pass on WNI_CFG_GO_LINK_MONITOR_TIMEOUT to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008307 }
8308
Krunal Sonidf0f8742016-09-26 14:56:31 -07008309 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_SINGLE_TID_RC,
8310 config->bSingleTidRc) == QDF_STATUS_E_FAILURE) {
8311 status = false;
8312 hdd_err("Couldn't pass on WNI_CFG_SINGLE_TID_RC to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008313 }
8314
Krunal Sonidf0f8742016-09-26 14:56:31 -07008315 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TELE_BCN_WAKEUP_EN,
8316 config->teleBcnWakeupEn) == QDF_STATUS_E_FAILURE) {
8317 status = false;
8318 hdd_err("Couldn't pass on WNI_CFG_TELE_BCN_WAKEUP_EN to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008319 }
8320
Krunal Sonidf0f8742016-09-26 14:56:31 -07008321 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TELE_BCN_TRANS_LI,
8322 config->nTeleBcnTransListenInterval) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308323 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07008324 status = false;
8325 hdd_err("Couldn't pass on WNI_CFG_TELE_BCN_TRANS_LI to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008326 }
8327
Krunal Sonidf0f8742016-09-26 14:56:31 -07008328 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TELE_BCN_MAX_LI,
8329 config->nTeleBcnMaxListenInterval) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308330 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07008331 status = false;
8332 hdd_err("Couldn't pass on WNI_CFG_TELE_BCN_MAX_LI to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008333 }
8334
Krunal Sonidf0f8742016-09-26 14:56:31 -07008335 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TELE_BCN_TRANS_LI_IDLE_BCNS,
8336 config->nTeleBcnTransLiNumIdleBeacons) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308337 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07008338 status = false;
8339 hdd_err("Couldn't pass on WNI_CFG_TELE_BCN_TRANS_LI_IDLE_BCNS to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008340 }
8341
Krunal Sonidf0f8742016-09-26 14:56:31 -07008342 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TELE_BCN_MAX_LI_IDLE_BCNS,
8343 config->nTeleBcnMaxLiNumIdleBeacons) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308344 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07008345 status = false;
8346 hdd_err("Couldn't pass on WNI_CFG_TELE_BCN_MAX_LI_IDLE_BCNS to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008347 }
8348
Krunal Sonidf0f8742016-09-26 14:56:31 -07008349 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_RF_SETTLING_TIME_CLK,
8350 config->rfSettlingTimeUs) == QDF_STATUS_E_FAILURE) {
8351 status = false;
8352 hdd_err("Couldn't pass on WNI_CFG_RF_SETTLING_TIME_CLK to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008353 }
8354
Krunal Sonidf0f8742016-09-26 14:56:31 -07008355 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_INFRA_STA_KEEP_ALIVE_PERIOD,
8356 config->infraStaKeepAlivePeriod) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308357 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07008358 status = false;
8359 hdd_err("Couldn't pass on WNI_CFG_INFRA_STA_KEEP_ALIVE_PERIOD to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008360 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07008361 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_DYNAMIC_PS_POLL_VALUE,
8362 config->dynamicPsPollValue) == QDF_STATUS_E_FAILURE) {
8363 status = false;
8364 hdd_err("Couldn't pass on WNI_CFG_DYNAMIC_PS_POLL_VALUE to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008365 }
8366
Krunal Sonidf0f8742016-09-26 14:56:31 -07008367 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_PS_NULLDATA_AP_RESP_TIMEOUT,
8368 config->nNullDataApRespTimeout) == QDF_STATUS_E_FAILURE) {
8369 status = false;
8370 hdd_err("Couldn't pass on WNI_CFG_PS_NULLDATA_DELAY_TIMEOUT to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008371 }
8372
Krunal Sonidf0f8742016-09-26 14:56:31 -07008373 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_AP_DATA_AVAIL_POLL_PERIOD,
8374 config->apDataAvailPollPeriodInMs) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308375 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07008376 status = false;
8377 hdd_err("Couldn't pass on WNI_CFG_AP_DATA_AVAIL_POLL_PERIOD to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008378 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07008379 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_FRAGMENTATION_THRESHOLD,
8380 config->FragmentationThreshold) == QDF_STATUS_E_FAILURE) {
8381 status = false;
8382 hdd_err("Couldn't pass on WNI_CFG_FRAGMENTATION_THRESHOLD to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008383 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07008384 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_RTS_THRESHOLD,
8385 config->RTSThreshold) == QDF_STATUS_E_FAILURE) {
8386 status = false;
8387 hdd_err("Couldn't pass on WNI_CFG_RTS_THRESHOLD to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008388 }
8389
Krunal Sonidf0f8742016-09-26 14:56:31 -07008390 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_11D_ENABLED,
8391 config->Is11dSupportEnabled) == QDF_STATUS_E_FAILURE) {
8392 status = false;
8393 hdd_err("Couldn't pass on WNI_CFG_11D_ENABLED to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008394 }
8395
Krunal Sonidf0f8742016-09-26 14:56:31 -07008396 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_DFS_MASTER_ENABLED,
8397 config->enableDFSMasterCap) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308398 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07008399 status = false;
8400 hdd_err("Failure: Couldn't set value for WNI_CFG_DFS_MASTER_ENABLED");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008401 }
8402
Krunal Sonidf0f8742016-09-26 14:56:31 -07008403 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_HEART_BEAT_THRESHOLD,
8404 config->HeartbeatThresh24) == QDF_STATUS_E_FAILURE) {
8405 status = false;
8406 hdd_err("Couldn't pass on WNI_CFG_HEART_BEAT_THRESHOLD to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008407 }
8408
Krunal Sonidf0f8742016-09-26 14:56:31 -07008409 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_ENABLE_MC_ADDR_LIST,
8410 config->fEnableMCAddrList) == QDF_STATUS_E_FAILURE) {
8411 status = false;
8412 hdd_err("Couldn't pass on WNI_CFG_ENABLE_MC_ADDR_LIST to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008413 }
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008414
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008415#ifdef WLAN_SOFTAP_VSTA_FEATURE
Krunal Sonidf0f8742016-09-26 14:56:31 -07008416 if (config->fEnableVSTASupport) {
8417 sme_cfg_get_int(hdd_ctx->hHal, WNI_CFG_ASSOC_STA_LIMIT, &val);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008418 if (val <= WNI_CFG_ASSOC_STA_LIMIT_STADEF)
8419 val = WNI_CFG_ASSOC_STA_LIMIT_STAMAX;
8420 } else {
Krunal Sonidf0f8742016-09-26 14:56:31 -07008421 val = config->maxNumberOfPeers;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008422
8423 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07008424 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_ASSOC_STA_LIMIT, val) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308425 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07008426 status = false;
8427 hdd_err("Couldn't pass on WNI_CFG_ASSOC_STA_LIMIT to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008428 }
8429#endif
Krunal Sonidf0f8742016-09-26 14:56:31 -07008430 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_ENABLE_LPWR_IMG_TRANSITION,
8431 config->enableLpwrImgTransition)
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308432 == QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07008433 status = false;
8434 hdd_err("Couldn't pass on WNI_CFG_ENABLE_LPWR_IMG_TRANSITION to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008435 }
8436
Krunal Sonidf0f8742016-09-26 14:56:31 -07008437 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_ENABLE_MCC_ADAPTIVE_SCHED,
8438 config->enableMCCAdaptiveScheduler) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308439 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07008440 status = false;
8441 hdd_err("Couldn't pass on WNI_CFG_ENABLE_MCC_ADAPTIVE_SCHED to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008442 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07008443 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_DISABLE_LDPC_WITH_TXBF_AP,
8444 config->disableLDPCWithTxbfAP) == QDF_STATUS_E_FAILURE) {
8445 status = false;
8446 hdd_err("Couldn't pass on WNI_CFG_DISABLE_LDPC_WITH_TXBF_AP to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008447 }
8448
Krunal Sonidf0f8742016-09-26 14:56:31 -07008449 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_DYNAMIC_THRESHOLD_ZERO,
8450 config->retryLimitZero) == QDF_STATUS_E_FAILURE) {
8451 status = false;
8452 hdd_err("Couldn't pass on WNI_CFG_DYNAMIC_THRESHOLD_ZERO to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008453 }
8454
Krunal Sonidf0f8742016-09-26 14:56:31 -07008455 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_DYNAMIC_THRESHOLD_ONE,
8456 config->retryLimitOne) == QDF_STATUS_E_FAILURE) {
8457 status = false;
8458 hdd_err("Couldn't pass on WNI_CFG_DYNAMIC_THRESHOLD_ONE to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008459 }
8460
Krunal Sonidf0f8742016-09-26 14:56:31 -07008461 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_DYNAMIC_THRESHOLD_TWO,
8462 config->retryLimitTwo) == QDF_STATUS_E_FAILURE) {
8463 status = false;
8464 hdd_err("Couldn't pass on WNI_CFG_DYNAMIC_THRESHOLD_TWO to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008465 }
8466
Krunal Sonidf0f8742016-09-26 14:56:31 -07008467 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_MAX_MEDIUM_TIME,
8468 config->cfgMaxMediumTime) == QDF_STATUS_E_FAILURE) {
8469 status = false;
8470 hdd_err("Couldn't pass on WNI_CFG_MAX_MEDIUM_TIME to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008471 }
8472#ifdef FEATURE_WLAN_TDLS
8473
Krunal Sonidf0f8742016-09-26 14:56:31 -07008474 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TDLS_QOS_WMM_UAPSD_MASK,
8475 config->fTDLSUapsdMask) == QDF_STATUS_E_FAILURE) {
8476 status = false;
8477 hdd_err("Couldn't pass on WNI_CFG_TDLS_QOS_WMM_UAPSD_MASK to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008478 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07008479 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TDLS_BUF_STA_ENABLED,
8480 config->fEnableTDLSBufferSta) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308481 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07008482 status = false;
8483 hdd_err("Couldn't pass on WNI_CFG_TDLS_BUF_STA_ENABLED to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008484 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07008485 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TDLS_PUAPSD_INACT_TIME,
8486 config->fTDLSPuapsdInactivityTimer) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308487 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07008488 status = false;
8489 hdd_err("Couldn't pass on WNI_CFG_TDLS_PUAPSD_INACT_TIME to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008490 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07008491 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TDLS_RX_FRAME_THRESHOLD,
8492 config->fTDLSRxFrameThreshold) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308493 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07008494 status = false;
8495 hdd_err("Couldn't pass on WNI_CFG_TDLS_RX_FRAME_THRESHOLD to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008496 }
8497
Krunal Sonidf0f8742016-09-26 14:56:31 -07008498 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TDLS_OFF_CHANNEL_ENABLED,
8499 config->fEnableTDLSOffChannel) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308500 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07008501 status = false;
8502 hdd_err("Couldn't pass on WNI_CFG_TDLS_BUF_STA_ENABLED to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008503 }
Krunal Sonidf0f8742016-09-26 14:56:31 -07008504 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TDLS_WMM_MODE_ENABLED,
8505 config->fEnableTDLSWmmMode) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308506 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07008507 status = false;
8508 hdd_err("Couldn't pass on WNI_CFG_TDLS_WMM_MODE_ENABLED to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008509 }
8510#endif
8511
Krunal Sonidf0f8742016-09-26 14:56:31 -07008512 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_ENABLE_ADAPT_RX_DRAIN,
8513 config->fEnableAdaptRxDrain) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308514 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07008515 status = false;
8516 hdd_err("Couldn't pass on WNI_CFG_ENABLE_ADAPT_RX_DRAIN to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008517 }
8518
Krunal Sonidf0f8742016-09-26 14:56:31 -07008519 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_ANTENNA_DIVESITY,
8520 config->antennaDiversity) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308521 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07008522 status = false;
8523 hdd_err("Couldn't pass on WNI_CFG_ANTENNA_DIVESITY to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008524 }
8525
Krunal Sonidf0f8742016-09-26 14:56:31 -07008526 if (sme_cfg_set_int(hdd_ctx->hHal,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008527 WNI_CFG_DEFAULT_RATE_INDEX_24GHZ,
Krunal Sonidf0f8742016-09-26 14:56:31 -07008528 config->defaultRateIndex24Ghz) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308529 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07008530 status = false;
8531 hdd_err("Couldn't pass on WNI_CFG_DEFAULT_RATE_INDEX_24GHZ to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008532 }
8533
Krunal Sonidf0f8742016-09-26 14:56:31 -07008534 if (sme_cfg_set_int(hdd_ctx->hHal,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008535 WNI_CFG_DEBUG_P2P_REMAIN_ON_CHANNEL,
Krunal Sonidf0f8742016-09-26 14:56:31 -07008536 config->debugP2pRemainOnChannel) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308537 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07008538 status = false;
8539 hdd_err("Couldn't pass on WNI_CFG_DEBUG_P2P_REMAIN_ON_CHANNEL to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008540 }
8541#ifdef WLAN_FEATURE_11W
Krunal Sonidf0f8742016-09-26 14:56:31 -07008542 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_PMF_SA_QUERY_MAX_RETRIES,
8543 config->pmfSaQueryMaxRetries) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308544 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07008545 status = false;
8546 hdd_err("Couldn't pass on WNI_CFG_SA_QUERY_MAX_RETRIES to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008547 }
8548
Krunal Sonidf0f8742016-09-26 14:56:31 -07008549 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_PMF_SA_QUERY_RETRY_INTERVAL,
8550 config->pmfSaQueryRetryInterval) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308551 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07008552 status = false;
8553 hdd_err("Couldn't pass on WNI_CFG_SA_QUERY_RETRY_INTERVAL to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008554 }
8555#endif
8556
Krunal Sonidf0f8742016-09-26 14:56:31 -07008557 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_IBSS_ATIM_WIN_SIZE,
8558 config->ibssATIMWinSize) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308559 QDF_STATUS_E_FAILURE) {
Krunal Sonidf0f8742016-09-26 14:56:31 -07008560 status = false;
8561 hdd_err("Couldn't pass on WNI_CFG_IBSS_ATIM_WIN_SIZE to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008562 }
Krunal Soni53993f72016-07-08 18:20:03 -07008563
Krunal Sonidf0f8742016-09-26 14:56:31 -07008564 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_TGT_GTX_USR_CFG,
8565 config->tgt_gtx_usr_cfg) == QDF_STATUS_E_FAILURE) {
8566 status = false;
8567 hdd_err("Couldn't pass on WNI_CFG_TGT_GTX_USR_CFG to CCM");
Rajeev Kumar Sirasanagandlaaf474742016-09-06 17:54:50 +05308568 }
Hong Shi417824f2017-01-12 02:31:14 +08008569
8570 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_MAX_HT_MCS_TX_DATA,
8571 config->max_ht_mcs_txdata) ==
8572 QDF_STATUS_E_FAILURE) {
8573 status = false;
8574 hdd_err("Couldn't pass on WNI_CFG_MAX_HT_MCS_TX_DATA to CCM");
8575 }
Hong Shia9ef8712017-02-19 21:54:02 +08008576
8577 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_DISABLE_ABG_RATE_FOR_TX_DATA,
8578 config->disable_abg_rate_txdata) ==
8579 QDF_STATUS_E_FAILURE) {
8580 status = false;
8581 hdd_err("Couldn't pass on WNI_CFG_DISABLE_ABG_RATE_FOR_TX_DATA to CCM");
8582 }
8583
Hong Shib90718f2017-02-20 00:57:22 +08008584 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_RATE_FOR_TX_MGMT,
8585 config->rate_for_tx_mgmt) ==
8586 QDF_STATUS_E_FAILURE) {
8587 status = false;
8588 hdd_err("Couldn't pass on WNI_CFG_RATE_FOR_TX_MGMT to CCM");
8589 }
8590
lifeng13a89d72017-05-10 14:49:29 +08008591 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_SAP_MAX_MCS_DATA,
8592 config->sap_max_mcs_txdata) ==
8593 QDF_STATUS_E_FAILURE) {
8594 status = false;
8595 hdd_err("Could not pass on WNI_CFG_SAP_MAX_MCS_DATA to CCM");
8596 }
8597
Hong Shi2d384fd2017-05-22 18:38:41 +08008598 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_RATE_FOR_TX_MGMT_2G,
8599 config->rate_for_tx_mgmt_2g) ==
8600 QDF_STATUS_E_FAILURE) {
8601 status = false;
8602 hdd_err("Couldn't pass on WNI_CFG_RATE_FOR_TX_MGMT_2G to CCM");
8603 }
8604
8605 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_RATE_FOR_TX_MGMT_5G,
8606 config->rate_for_tx_mgmt_5g) ==
8607 QDF_STATUS_E_FAILURE) {
8608 status = false;
8609 hdd_err("Couldn't pass on WNI_CFG_RATE_FOR_TX_MGMT_5G to CCM");
8610 }
8611
Krunal Sonidf0f8742016-09-26 14:56:31 -07008612 return status;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008613}
Krishna Kumaar Natarajan90bb6f12017-03-03 21:05:52 -08008614
Kapil Gupta5cda2252016-12-29 18:44:26 +05308615/**
8616 * hdd_update_per_config_to_sme() -initializes the sme config for PER roam
8617 *
8618 * @hdd_ctx: the pointer to hdd context
8619 * @sme_config: sme configuation pointer
8620 *
8621 * Return: None
8622 */
Jeff Johnsonb6909be2017-08-28 12:07:19 -07008623static void hdd_update_per_config_to_sme(struct hdd_context *hdd_ctx,
Kapil Gupta5cda2252016-12-29 18:44:26 +05308624 tSmeConfigParams *sme_config)
8625{
8626 sme_config->csrConfig.per_roam_config.enable =
8627 hdd_ctx->config->is_per_roam_enabled;
8628
8629 /* Assigning Tx and Rx for same value */
8630 sme_config->csrConfig.per_roam_config.tx_high_rate_thresh =
8631 hdd_ctx->config->per_roam_high_rate_threshold;
8632 sme_config->csrConfig.per_roam_config.rx_high_rate_thresh =
8633 hdd_ctx->config->per_roam_high_rate_threshold;
8634
8635 /* Assigning Tx and Rx for same value */
8636 sme_config->csrConfig.per_roam_config.tx_low_rate_thresh =
8637 hdd_ctx->config->per_roam_low_rate_threshold;
8638 sme_config->csrConfig.per_roam_config.rx_low_rate_thresh =
8639 hdd_ctx->config->per_roam_low_rate_threshold;
8640
8641 /* Assigning Tx and Rx for same value */
8642 sme_config->csrConfig.per_roam_config.tx_rate_thresh_percnt =
8643 hdd_ctx->config->per_roam_th_percent;
8644 sme_config->csrConfig.per_roam_config.rx_rate_thresh_percnt =
8645 hdd_ctx->config->per_roam_th_percent;
8646
8647 sme_config->csrConfig.per_roam_config.per_rest_time =
8648 hdd_ctx->config->per_roam_rest_time;
Kapil Gupta957827b2017-02-13 15:47:04 +05308649 sme_config->csrConfig.per_roam_config.tx_per_mon_time =
8650 hdd_ctx->config->per_roam_mon_time;
8651 sme_config->csrConfig.per_roam_config.rx_per_mon_time =
8652 hdd_ctx->config->per_roam_mon_time;
Selvaraj, Sridhar0641fab2017-05-17 16:02:00 +05308653
8654 /* Assigning minimum roamable AP RSSI for candidate selection */
8655 sme_config->csrConfig.per_roam_config.min_candidate_rssi =
8656 hdd_ctx->config->min_candidate_rssi;
Kapil Gupta5cda2252016-12-29 18:44:26 +05308657}
8658
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008659/**
Tushnim Bhattacharyyaba8ee932017-03-23 09:27:40 -07008660 * hdd_set_policy_mgr_user_cfg() -initializes the policy manager
8661 * configuration parameters
8662 *
Jeff Johnson723234b2017-09-03 08:49:15 -07008663 * @hdd_ctx: the pointer to hdd context
Tushnim Bhattacharyyaba8ee932017-03-23 09:27:40 -07008664 *
8665 * Return: QDF_STATUS_SUCCESS if configuration is correctly applied,
8666 * otherwise the appropriate QDF_STATUS would be returned
8667 */
Jeff Johnsonb6909be2017-08-28 12:07:19 -07008668QDF_STATUS hdd_set_policy_mgr_user_cfg(struct hdd_context *hdd_ctx)
Tushnim Bhattacharyyaba8ee932017-03-23 09:27:40 -07008669{
8670 QDF_STATUS status;
8671 struct policy_mgr_user_cfg *user_cfg;
8672
8673 user_cfg = qdf_mem_malloc(sizeof(*user_cfg));
8674 if (NULL == user_cfg) {
8675 hdd_err("unable to allocate user_cfg");
8676 return QDF_STATUS_E_NOMEM;
8677 }
8678
8679 user_cfg->conc_system_pref = hdd_ctx->config->conc_system_pref;
8680 user_cfg->enable_mcc_adaptive_scheduler =
8681 hdd_ctx->config->enableMCCAdaptiveScheduler;
8682 user_cfg->max_concurrent_active_sessions =
8683 hdd_ctx->config->gMaxConcurrentActiveSessions;
Tushnim Bhattacharyya7e546692017-03-23 18:30:29 -07008684 user_cfg->enable2x2 = hdd_ctx->config->enable2x2;
Tushnim Bhattacharyya5cc9edc2017-04-26 12:33:59 -07008685 user_cfg->mcc_to_scc_switch_mode =
8686 hdd_ctx->config->WlanMccToSccSwitchMode;
8687 user_cfg->sub_20_mhz_enabled = cds_is_sub_20_mhz_enabled();
Ganesh Kondabattini4a7f5b92017-11-21 14:58:39 +05308688 user_cfg->is_sta_sap_scc_allowed_on_dfs_chan =
8689 hdd_ctx->config->sta_sap_scc_on_dfs_chan;
Yeshwanth Sriram Guntuka469f9572018-02-12 13:28:22 +05308690 user_cfg->channel_select_logic_conc =
8691 hdd_ctx->config->channel_select_logic_conc;
Tushnim Bhattacharyyaba8ee932017-03-23 09:27:40 -07008692 status = policy_mgr_set_user_cfg(hdd_ctx->hdd_psoc, user_cfg);
Tushnim Bhattacharyyaba8ee932017-03-23 09:27:40 -07008693 qdf_mem_free(user_cfg);
8694
8695 return status;
8696}
Krunal Soni707eb782018-01-18 12:04:19 -08008697
8698eCsrRoamWmmUserModeType hdd_to_csr_wmm_mode(enum hdd_wmm_user_mode mode)
Srinivas Girigowda3ea486d2017-06-28 17:19:49 -07008699{
8700 switch (mode) {
8701 case HDD_WMM_USER_MODE_QBSS_ONLY:
8702 return eCsrRoamWmmQbssOnly;
8703 case HDD_WMM_USER_MODE_NO_QOS:
8704 return eCsrRoamWmmNoQos;
8705 case HDD_WMM_USER_MODE_AUTO:
8706 default:
8707 return eCsrRoamWmmAuto;
8708 }
8709}
8710
8711/**
Himanshu Agarwal8bcec572017-09-28 11:54:37 +05308712 * hdd_update_score_params() -initializes the sme config for bss score params
8713 *
8714 * @config: pointer to config
8715 * @score_params: bss score params
8716 *
8717 * Return: None
8718 */
8719static void hdd_update_bss_score_params(struct hdd_config *config,
8720 struct sir_score_config *score_params)
8721{
8722 int total_weight;
8723
8724 score_params->enable_scoring_for_roam =
8725 config->enable_scoring_for_roam;
8726 score_params->weight_cfg.rssi_weightage = config->rssi_weightage;
8727 score_params->weight_cfg.ht_caps_weightage = config->ht_caps_weightage;
8728 score_params->weight_cfg.vht_caps_weightage =
8729 config->vht_caps_weightage;
8730 score_params->weight_cfg.he_caps_weightage =
8731 config->he_caps_weightage;
8732 score_params->weight_cfg.chan_width_weightage =
8733 config->chan_width_weightage;
8734 score_params->weight_cfg.chan_band_weightage =
8735 config->chan_band_weightage;
8736 score_params->weight_cfg.nss_weightage = config->nss_weightage;
8737 score_params->weight_cfg.beamforming_cap_weightage =
8738 config->beamforming_cap_weightage;
8739 score_params->weight_cfg.pcl_weightage = config->pcl_weightage;
8740 score_params->weight_cfg.channel_congestion_weightage =
8741 config->channel_congestion_weightage;
8742 score_params->weight_cfg.oce_wan_weightage = config->oce_wan_weightage;
8743
8744 total_weight = score_params->weight_cfg.rssi_weightage +
8745 score_params->weight_cfg.ht_caps_weightage +
8746 score_params->weight_cfg.vht_caps_weightage +
8747 score_params->weight_cfg.he_caps_weightage +
8748 score_params->weight_cfg.chan_width_weightage +
8749 score_params->weight_cfg.chan_band_weightage +
8750 score_params->weight_cfg.nss_weightage +
8751 score_params->weight_cfg.beamforming_cap_weightage +
8752 score_params->weight_cfg.pcl_weightage +
8753 score_params->weight_cfg.channel_congestion_weightage +
8754 score_params->weight_cfg.oce_wan_weightage;
8755
8756 if (total_weight > BEST_CANDIDATE_MAX_WEIGHT) {
8757 hdd_err("total weight is greater than %d fallback to default values",
8758 BEST_CANDIDATE_MAX_WEIGHT);
8759
8760 score_params->weight_cfg.rssi_weightage = RSSI_WEIGHTAGE;
8761 score_params->weight_cfg.ht_caps_weightage =
8762 HT_CAPABILITY_WEIGHTAGE;
8763 score_params->weight_cfg.vht_caps_weightage = VHT_CAP_WEIGHTAGE;
8764 score_params->weight_cfg.he_caps_weightage = HE_CAP_WEIGHTAGE;
8765 score_params->weight_cfg.chan_width_weightage =
8766 CHAN_WIDTH_WEIGHTAGE;
8767 score_params->weight_cfg.chan_band_weightage =
8768 CHAN_BAND_WEIGHTAGE;
8769 score_params->weight_cfg.nss_weightage = NSS_WEIGHTAGE;
8770 score_params->weight_cfg.beamforming_cap_weightage =
8771 BEAMFORMING_CAP_WEIGHTAGE;
8772 score_params->weight_cfg.pcl_weightage = PCL_WEIGHT;
8773 score_params->weight_cfg.channel_congestion_weightage =
8774 CHANNEL_CONGESTION_WEIGHTAGE;
8775 score_params->weight_cfg.oce_wan_weightage = OCE_WAN_WEIGHTAGE;
8776 }
8777
8778 score_params->bandwidth_weight_per_index =
8779 hdd_limit_max_per_index_score(
8780 config->bandwidth_weight_per_index);
8781 score_params->nss_weight_per_index =
8782 hdd_limit_max_per_index_score(config->nss_weight_per_index);
8783 score_params->band_weight_per_index =
8784 hdd_limit_max_per_index_score(config->band_weight_per_index);
8785
8786 score_params->rssi_score.best_rssi_threshold =
8787 config->best_rssi_threshold;
8788 score_params->rssi_score.good_rssi_threshold =
8789 config->good_rssi_threshold;
8790 score_params->rssi_score.bad_rssi_threshold =
8791 config->bad_rssi_threshold;
8792 score_params->rssi_score.good_rssi_pcnt = config->good_rssi_pcnt;
8793 score_params->rssi_score.bad_rssi_pcnt = config->bad_rssi_pcnt;
8794 score_params->rssi_score.good_rssi_bucket_size =
8795 config->good_rssi_bucket_size;
8796 score_params->rssi_score.bad_rssi_bucket_size =
8797 config->bad_rssi_bucket_size;
8798 score_params->rssi_score.rssi_pref_5g_rssi_thresh =
8799 config->rssi_pref_5g_rssi_thresh;
8800
8801 score_params->esp_qbss_scoring.num_slot = config->num_esp_qbss_slots;
8802 score_params->esp_qbss_scoring.score_pcnt3_to_0 =
8803 hdd_limit_max_per_index_score(
8804 config->esp_qbss_score_slots3_to_0);
8805 score_params->esp_qbss_scoring.score_pcnt7_to_4 =
8806 hdd_limit_max_per_index_score(
8807 config->esp_qbss_score_slots7_to_4);
8808 score_params->esp_qbss_scoring.score_pcnt11_to_8 =
8809 hdd_limit_max_per_index_score(
8810 config->esp_qbss_score_slots11_to_8);
8811 score_params->esp_qbss_scoring.score_pcnt15_to_12 =
8812 hdd_limit_max_per_index_score(
8813 config->esp_qbss_score_slots15_to_12);
8814
8815 score_params->oce_wan_scoring.num_slot = config->num_oce_wan_slots;
8816 score_params->oce_wan_scoring.score_pcnt3_to_0 =
8817 hdd_limit_max_per_index_score(
8818 config->oce_wan_score_slots3_to_0);
8819 score_params->oce_wan_scoring.score_pcnt7_to_4 =
8820 hdd_limit_max_per_index_score(
8821 config->oce_wan_score_slots7_to_4);
8822 score_params->oce_wan_scoring.score_pcnt11_to_8 =
8823 hdd_limit_max_per_index_score(
8824 config->oce_wan_score_slots11_to_8);
8825 score_params->oce_wan_scoring.score_pcnt15_to_12 =
8826 hdd_limit_max_per_index_score(
8827 config->oce_wan_score_slots15_to_12);
8828}
8829
8830/**
Vignesh Viswanathan694e28e2018-01-18 20:53:57 +05308831 * hdd_update_11k_offload_params() - initializes the 11k offload related params
8832 *
8833 * @config: pointer to hdd_config structure
8834 * @csr_config: pointer to the csr config structure
8835 *
8836 * Return: None
8837 */
8838static
8839void hdd_update_11k_offload_params(struct hdd_config *config,
8840 tCsrConfigParam *csr_config)
8841{
8842 csr_config->offload_11k_enable_bitmask =
8843 config->offload_11k_enable_bitmask;
8844 csr_config->neighbor_report_offload.params_bitmask =
8845 config->neighbor_report_offload_params_bitmask;
8846 csr_config->neighbor_report_offload.time_offset =
8847 config->neighbor_report_offload_time_offset;
8848 csr_config->neighbor_report_offload.low_rssi_offset =
8849 config->neighbor_report_offload_low_rssi_offset;
8850 csr_config->neighbor_report_offload.bmiss_count_trigger =
8851 config->neighbor_report_offload_bmiss_count_trigger;
8852 csr_config->neighbor_report_offload.per_threshold_offset =
8853 config->neighbor_report_offload_per_threshold_offset;
8854 csr_config->neighbor_report_offload.neighbor_report_cache_timeout =
8855 config->neighbor_report_offload_cache_timeout;
8856 csr_config->neighbor_report_offload.max_neighbor_report_req_cap =
8857 config->neighbor_report_offload_max_req_cap;
8858}
8859
8860/**
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008861 * hdd_set_sme_config() -initializes the sme configuration parameters
8862 *
Jeff Johnson723234b2017-09-03 08:49:15 -07008863 * @hdd_ctx: the pointer to hdd context
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008864 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308865 * Return: QDF_STATUS_SUCCESS if configuration is correctly applied,
8866 * otherwise the appropriate QDF_STATUS would be returned
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008867 */
Jeff Johnson723234b2017-09-03 08:49:15 -07008868QDF_STATUS hdd_set_sme_config(struct hdd_context *hdd_ctx)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008869{
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308870 QDF_STATUS status = QDF_STATUS_SUCCESS;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008871 tSmeConfigParams *smeConfig;
Yeshwanth Sriram Guntuka2ba6fe92017-10-04 14:40:45 +05308872 uint8_t rrm_capab_len, val;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008873
Jeff Johnson723234b2017-09-03 08:49:15 -07008874 struct hdd_config *pConfig = hdd_ctx->config;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008875
Anurag Chouhan600c3a02016-03-01 10:33:54 +05308876 smeConfig = qdf_mem_malloc(sizeof(*smeConfig));
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008877 if (NULL == smeConfig) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08008878 hdd_err("unable to allocate smeConfig");
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05308879 return QDF_STATUS_E_NOMEM;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008880 }
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008881
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07008882 hdd_debug("%s bWmmIsEnabled=%d 802_11e_enabled=%d dot11Mode=%d",
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008883 __func__, pConfig->WmmMode, pConfig->b80211eIsEnabled,
8884 pConfig->dot11Mode);
8885
8886 /* Config params obtained from the registry
8887 * To Do: set regulatory information here
8888 */
8889
8890 smeConfig->csrConfig.RTSThreshold = pConfig->RTSThreshold;
8891 smeConfig->csrConfig.FragmentationThreshold =
8892 pConfig->FragmentationThreshold;
8893 smeConfig->csrConfig.shortSlotTime = pConfig->ShortSlotTimeEnabled;
8894 smeConfig->csrConfig.Is11dSupportEnabled = pConfig->Is11dSupportEnabled;
8895 smeConfig->csrConfig.HeartbeatThresh24 = pConfig->HeartbeatThresh24;
8896
8897 smeConfig->csrConfig.phyMode =
8898 hdd_cfg_xlate_to_csr_phy_mode(pConfig->dot11Mode);
8899
8900 if (pConfig->dot11Mode == eHDD_DOT11_MODE_abg ||
8901 pConfig->dot11Mode == eHDD_DOT11_MODE_11b ||
8902 pConfig->dot11Mode == eHDD_DOT11_MODE_11g ||
8903 pConfig->dot11Mode == eHDD_DOT11_MODE_11b_ONLY ||
8904 pConfig->dot11Mode == eHDD_DOT11_MODE_11g_ONLY) {
8905 smeConfig->csrConfig.channelBondingMode24GHz = 0;
8906 smeConfig->csrConfig.channelBondingMode5GHz = 0;
8907 } else {
8908 smeConfig->csrConfig.channelBondingMode24GHz =
8909 pConfig->nChannelBondingMode24GHz;
8910 smeConfig->csrConfig.channelBondingMode5GHz =
8911 pConfig->nChannelBondingMode5GHz;
8912 }
8913 smeConfig->csrConfig.TxRate = pConfig->TxRate;
8914 smeConfig->csrConfig.nScanResultAgeCount = pConfig->ScanResultAgeCount;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008915 smeConfig->csrConfig.AdHocChannel24 = pConfig->OperatingChannel;
8916 smeConfig->csrConfig.fSupplicantCountryCodeHasPriority =
8917 pConfig->fSupplicantCountryCodeHasPriority;
8918 smeConfig->csrConfig.bCatRssiOffset = pConfig->nRssiCatGap;
8919 smeConfig->csrConfig.vccRssiThreshold = pConfig->nVccRssiTrigger;
8920 smeConfig->csrConfig.vccUlMacLossThreshold =
8921 pConfig->nVccUlMacLossThreshold;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008922 smeConfig->csrConfig.nInitialDwellTime = pConfig->nInitialDwellTime;
8923 smeConfig->csrConfig.initial_scan_no_dfs_chnl =
8924 pConfig->initial_scan_no_dfs_chnl;
8925 smeConfig->csrConfig.nActiveMaxChnTime = pConfig->nActiveMaxChnTime;
8926 smeConfig->csrConfig.nActiveMinChnTime = pConfig->nActiveMinChnTime;
8927 smeConfig->csrConfig.nPassiveMaxChnTime = pConfig->nPassiveMaxChnTime;
8928 smeConfig->csrConfig.nPassiveMinChnTime = pConfig->nPassiveMinChnTime;
8929#ifdef WLAN_AP_STA_CONCURRENCY
8930 smeConfig->csrConfig.nActiveMaxChnTimeConc =
8931 pConfig->nActiveMaxChnTimeConc;
8932 smeConfig->csrConfig.nActiveMinChnTimeConc =
8933 pConfig->nActiveMinChnTimeConc;
8934 smeConfig->csrConfig.nPassiveMaxChnTimeConc =
8935 pConfig->nPassiveMaxChnTimeConc;
8936 smeConfig->csrConfig.nPassiveMinChnTimeConc =
8937 pConfig->nPassiveMinChnTimeConc;
8938 smeConfig->csrConfig.nRestTimeConc = pConfig->nRestTimeConc;
Agrawal Ashish17bb3902016-05-05 13:29:40 +05308939 smeConfig->csrConfig.min_rest_time_conc = pConfig->min_rest_time_conc;
8940 smeConfig->csrConfig.idle_time_conc = pConfig->idle_time_conc;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008941
8942#endif
8943 smeConfig->csrConfig.Is11eSupportEnabled = pConfig->b80211eIsEnabled;
Srinivas Girigowda3ea486d2017-06-28 17:19:49 -07008944 smeConfig->csrConfig.WMMSupportMode =
8945 hdd_to_csr_wmm_mode(pConfig->WmmMode);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008946
Krishna Kumaar Natarajanf599c6e2015-11-03 11:44:03 -08008947 smeConfig->rrmConfig.rrm_enabled = pConfig->fRrmEnable;
8948 smeConfig->rrmConfig.max_randn_interval = pConfig->nRrmRandnIntvl;
8949 hdd_hex_string_to_u8_array(pConfig->rm_capability,
8950 smeConfig->rrmConfig.rm_capability, &rrm_capab_len,
8951 DOT11F_IE_RRMENABLEDCAP_MAX_LEN);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008952 /* Remaining config params not obtained from registry
8953 * On RF EVB beacon using channel 1.
8954 */
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008955 smeConfig->csrConfig.nVhtChannelWidth = pConfig->vhtChannelWidth;
8956 smeConfig->csrConfig.enableTxBF = pConfig->enableTxBF;
Abhishek Singh68844282018-01-25 16:48:41 +05308957 smeConfig->csrConfig.enable_subfee_vendor_vhtie =
8958 pConfig->enable_subfee_vendor_vhtie;
8959
Kiran Kumar Lokere5302ab62015-12-16 16:03:16 -08008960 smeConfig->csrConfig.enable_txbf_sap_mode =
8961 pConfig->enable_txbf_sap_mode;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008962 smeConfig->csrConfig.enable2x2 = pConfig->enable2x2;
8963 smeConfig->csrConfig.enableVhtFor24GHz = pConfig->enableVhtFor24GHzBand;
Kapil Gupta4b2efbb2016-10-03 13:07:20 +05308964 smeConfig->csrConfig.vendor_vht_sap =
8965 pConfig->enable_sap_vendor_vht;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008966 smeConfig->csrConfig.enableMuBformee = pConfig->enableMuBformee;
8967 smeConfig->csrConfig.enableVhtpAid = pConfig->enableVhtpAid;
8968 smeConfig->csrConfig.enableVhtGid = pConfig->enableVhtGid;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008969 smeConfig->csrConfig.enableAmpduPs = pConfig->enableAmpduPs;
8970 smeConfig->csrConfig.enableHtSmps = pConfig->enableHtSmps;
8971 smeConfig->csrConfig.htSmps = pConfig->htSmps;
Archana Ramachandranfec24812016-02-16 16:31:56 -08008972 /* This param cannot be configured from INI */
8973 smeConfig->csrConfig.send_smps_action = true;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008974 smeConfig->csrConfig.AdHocChannel5G = pConfig->AdHocChannel5G;
8975 smeConfig->csrConfig.AdHocChannel24 = pConfig->AdHocChannel24G;
8976 smeConfig->csrConfig.ProprietaryRatesEnabled = 0;
8977 smeConfig->csrConfig.HeartbeatThresh50 = 40;
8978 smeConfig->csrConfig.bandCapability = pConfig->nBandCapability;
Varun Reddy Yeturua48bc412017-11-17 15:33:35 -08008979 if (pConfig->nBandCapability == BAND_2G) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008980 smeConfig->csrConfig.Is11hSupportEnabled = 0;
8981 } else {
8982 smeConfig->csrConfig.Is11hSupportEnabled =
8983 pConfig->Is11hSupportEnabled;
8984 }
8985 smeConfig->csrConfig.cbChoice = 0;
8986 smeConfig->csrConfig.eBand = pConfig->nBandCapability;
8987 smeConfig->csrConfig.nTxPowerCap = pConfig->nTxPowerCap;
Padma, Santhosh Kumar29df3622016-08-16 19:15:16 +05308988 smeConfig->csrConfig.allow_tpc_from_ap = pConfig->allow_tpc_from_ap;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008989 smeConfig->csrConfig.fEnableBypass11d = pConfig->enableBypass11d;
8990 smeConfig->csrConfig.fEnableDFSChnlScan = pConfig->enableDFSChnlScan;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008991 smeConfig->csrConfig.nRoamPrefer5GHz = pConfig->nRoamPrefer5GHz;
8992 smeConfig->csrConfig.nRoamIntraBand = pConfig->nRoamIntraBand;
8993 smeConfig->csrConfig.nProbes = pConfig->nProbes;
8994
8995 smeConfig->csrConfig.nRoamScanHomeAwayTime =
8996 pConfig->nRoamScanHomeAwayTime;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08008997 smeConfig->csrConfig.fFirstScanOnly2GChnl =
8998 pConfig->enableFirstScan2GOnly;
8999
Peng Xuf5d60c82015-10-02 17:17:03 -07009000 smeConfig->csrConfig.Csr11dinfo.Channels.numChannels = 0;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009001
Jeff Johnson723234b2017-09-03 08:49:15 -07009002 hdd_set_power_save_offload_config(hdd_ctx);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009003
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009004 smeConfig->csrConfig.csr11rConfig.IsFTResourceReqSupported =
9005 pConfig->fFTResourceReqSupported;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009006 smeConfig->csrConfig.isFastRoamIniFeatureEnabled =
9007 pConfig->isFastRoamIniFeatureEnabled;
Varun Reddy Yeturu061d4d62017-07-20 09:39:32 -07009008 smeConfig->csrConfig.csr_mawc_config.mawc_enabled =
9009 pConfig->MAWCEnabled;
9010 smeConfig->csrConfig.csr_mawc_config.mawc_roam_enabled =
9011 pConfig->mawc_roam_enabled;
9012 smeConfig->csrConfig.csr_mawc_config.mawc_roam_traffic_threshold =
9013 pConfig->mawc_roam_traffic_threshold;
9014 smeConfig->csrConfig.csr_mawc_config.mawc_roam_ap_rssi_threshold =
9015 pConfig->mawc_roam_ap_rssi_threshold;
9016 smeConfig->csrConfig.csr_mawc_config.mawc_roam_rssi_high_adjust =
9017 pConfig->mawc_roam_rssi_high_adjust;
9018 smeConfig->csrConfig.csr_mawc_config.mawc_roam_rssi_low_adjust =
9019 pConfig->mawc_roam_rssi_low_adjust;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009020#ifdef FEATURE_WLAN_ESE
9021 smeConfig->csrConfig.isEseIniFeatureEnabled =
9022 pConfig->isEseIniFeatureEnabled;
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07009023 if (pConfig->isEseIniFeatureEnabled)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009024 pConfig->isFastTransitionEnabled = true;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009025#endif
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009026 smeConfig->csrConfig.isFastTransitionEnabled =
9027 pConfig->isFastTransitionEnabled;
9028 smeConfig->csrConfig.RoamRssiDiff = pConfig->RoamRssiDiff;
Abhishek Singh34c0e632017-09-28 14:39:29 +05309029 smeConfig->csrConfig.rssi_abs_thresh = pConfig->rssi_abs_thresh;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009030 smeConfig->csrConfig.isWESModeEnabled = pConfig->isWESModeEnabled;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009031 smeConfig->csrConfig.isRoamOffloadScanEnabled =
9032 pConfig->isRoamOffloadScanEnabled;
9033 smeConfig->csrConfig.bFastRoamInConIniFeatureEnabled =
9034 pConfig->bFastRoamInConIniFeatureEnabled;
9035
9036 if (0 == smeConfig->csrConfig.isRoamOffloadScanEnabled) {
Srinivas Girigowdafbe8c7b2017-03-25 16:36:35 -07009037 /* Disable roaming in concurrency if roam scan
9038 * offload is disabled
9039 */
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009040 smeConfig->csrConfig.bFastRoamInConIniFeatureEnabled = 0;
9041 }
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009042 smeConfig->csrConfig.neighborRoamConfig.nNeighborLookupRssiThreshold =
9043 pConfig->nNeighborLookupRssiThreshold;
Varun Reddy Yeturu168134f2017-06-26 13:46:05 -07009044 smeConfig->csrConfig.neighborRoamConfig.rssi_thresh_offset_5g =
9045 pConfig->rssi_thresh_offset_5g;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009046 smeConfig->csrConfig.neighborRoamConfig.delay_before_vdev_stop =
9047 pConfig->delay_before_vdev_stop;
9048 smeConfig->csrConfig.neighborRoamConfig.nOpportunisticThresholdDiff =
9049 pConfig->nOpportunisticThresholdDiff;
9050 smeConfig->csrConfig.neighborRoamConfig.nRoamRescanRssiDiff =
9051 pConfig->nRoamRescanRssiDiff;
9052 smeConfig->csrConfig.neighborRoamConfig.nNeighborScanMaxChanTime =
9053 pConfig->nNeighborScanMaxChanTime;
9054 smeConfig->csrConfig.neighborRoamConfig.nNeighborScanMinChanTime =
9055 pConfig->nNeighborScanMinChanTime;
9056 smeConfig->csrConfig.neighborRoamConfig.nNeighborScanTimerPeriod =
9057 pConfig->nNeighborScanPeriod;
Sridhar Selvaraj1b2330c2017-07-21 15:16:42 +05309058 smeConfig->csrConfig.neighborRoamConfig.
9059 neighbor_scan_min_timer_period =
9060 pConfig->neighbor_scan_min_period;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009061 smeConfig->csrConfig.neighborRoamConfig.nMaxNeighborRetries =
9062 pConfig->nMaxNeighborReqTries;
9063 smeConfig->csrConfig.neighborRoamConfig.nNeighborResultsRefreshPeriod =
9064 pConfig->nNeighborResultsRefreshPeriod;
9065 smeConfig->csrConfig.neighborRoamConfig.nEmptyScanRefreshPeriod =
9066 pConfig->nEmptyScanRefreshPeriod;
9067 hdd_string_to_u8_array(pConfig->neighborScanChanList,
9068 smeConfig->csrConfig.neighborRoamConfig.
9069 neighborScanChanList.channelList,
9070 &smeConfig->csrConfig.neighborRoamConfig.
9071 neighborScanChanList.numChannels,
9072 WNI_CFG_VALID_CHANNEL_LIST_LEN);
9073 smeConfig->csrConfig.neighborRoamConfig.nRoamBmissFirstBcnt =
9074 pConfig->nRoamBmissFirstBcnt;
9075 smeConfig->csrConfig.neighborRoamConfig.nRoamBmissFinalBcnt =
9076 pConfig->nRoamBmissFinalBcnt;
9077 smeConfig->csrConfig.neighborRoamConfig.nRoamBeaconRssiWeight =
9078 pConfig->nRoamBeaconRssiWeight;
9079 smeConfig->csrConfig.neighborRoamConfig.nhi_rssi_scan_max_count =
9080 pConfig->nhi_rssi_scan_max_count;
9081 smeConfig->csrConfig.neighborRoamConfig.nhi_rssi_scan_rssi_delta =
9082 pConfig->nhi_rssi_scan_rssi_delta;
9083 smeConfig->csrConfig.neighborRoamConfig.nhi_rssi_scan_delay =
9084 pConfig->nhi_rssi_scan_delay;
9085 smeConfig->csrConfig.neighborRoamConfig.nhi_rssi_scan_rssi_ub =
9086 pConfig->nhi_rssi_scan_rssi_ub;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009087 smeConfig->csrConfig.addTSWhenACMIsOff = pConfig->AddTSWhenACMIsOff;
9088 smeConfig->csrConfig.fValidateList = pConfig->fValidateScanList;
9089 smeConfig->csrConfig.allowDFSChannelRoam = pConfig->allowDFSChannelRoam;
9090
9091 /* Enable/Disable MCC */
9092 smeConfig->csrConfig.fEnableMCCMode = pConfig->enableMCC;
9093 smeConfig->csrConfig.mcc_rts_cts_prot_enable =
9094 pConfig->mcc_rts_cts_prot_enable;
9095 smeConfig->csrConfig.mcc_bcast_prob_resp_enable =
9096 pConfig->mcc_bcast_prob_resp_enable;
9097 smeConfig->csrConfig.fAllowMCCGODiffBI = pConfig->allowMCCGODiffBI;
9098
9099 /* Scan Results Aging Time out value */
9100 smeConfig->csrConfig.scanCfgAgingTime = pConfig->scanAgingTimeout;
9101
Krunal Sonia2c0e412017-05-04 14:12:41 +05309102 smeConfig->csrConfig.enable_tx_ldpc = pConfig->enable_tx_ldpc;
9103 smeConfig->csrConfig.enable_rx_ldpc = pConfig->enable_rx_ldpc;
Krunal Soni158bfe62017-08-02 12:33:08 -07009104 smeConfig->csrConfig.disable_high_ht_mcs_2x2 =
9105 pConfig->disable_high_ht_mcs_2x2;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009106#ifdef FEATURE_WLAN_MCC_TO_SCC_SWITCH
9107 smeConfig->csrConfig.cc_switch_mode = pConfig->WlanMccToSccSwitchMode;
9108#endif
9109
Deepak Dhamdhere612392c2016-08-28 02:56:51 -07009110 smeConfig->csrConfig.max_amsdu_num = pConfig->max_amsdu_num;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009111 smeConfig->csrConfig.nSelect5GHzMargin = pConfig->nSelect5GHzMargin;
9112
9113 smeConfig->csrConfig.isCoalesingInIBSSAllowed =
Jeff Johnson723234b2017-09-03 08:49:15 -07009114 hdd_ctx->config->isCoalesingInIBSSAllowed;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009115 smeConfig->csrConfig.ignore_peer_erp_info =
9116 pConfig->ignore_peer_erp_info;
9117 /* update SSR config */
Jeff Johnson723234b2017-09-03 08:49:15 -07009118 sme_update_enable_ssr((tHalHandle) (hdd_ctx->hHal),
9119 hdd_ctx->config->enableSSR);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009120
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009121 /* Update maximum interfaces information */
Jeff Johnson723234b2017-09-03 08:49:15 -07009122 smeConfig->csrConfig.max_intf_count = hdd_ctx->max_intf_count;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009123
Jeff Johnson723234b2017-09-03 08:49:15 -07009124 smeConfig->csrConfig.fEnableDebugLog = hdd_ctx->config->gEnableDebugLog;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009125
Jeff Johnson723234b2017-09-03 08:49:15 -07009126 smeConfig->csrConfig.enable5gEBT = hdd_ctx->config->enable5gEBT;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009127
Krunal Soni1878d3a2016-01-14 13:00:44 -08009128 smeConfig->csrConfig.enableSelfRecovery =
Jeff Johnson723234b2017-09-03 08:49:15 -07009129 hdd_ctx->config->enableSelfRecovery;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009130#ifdef WLAN_FEATURE_ROAM_OFFLOAD
9131 smeConfig->csrConfig.isRoamOffloadEnabled =
Jeff Johnson723234b2017-09-03 08:49:15 -07009132 hdd_ctx->config->isRoamOffloadEnabled;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009133#endif
9134 smeConfig->csrConfig.conc_custom_rule1 =
Jeff Johnson723234b2017-09-03 08:49:15 -07009135 hdd_ctx->config->conc_custom_rule1;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009136 smeConfig->csrConfig.conc_custom_rule2 =
Jeff Johnson723234b2017-09-03 08:49:15 -07009137 hdd_ctx->config->conc_custom_rule2;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009138 smeConfig->csrConfig.is_sta_connection_in_5gz_enabled =
Jeff Johnson723234b2017-09-03 08:49:15 -07009139 hdd_ctx->config->is_sta_connection_in_5gz_enabled;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009140
Krunal Soni1878d3a2016-01-14 13:00:44 -08009141 smeConfig->csrConfig.f_sta_miracast_mcc_rest_time_val =
Jeff Johnson723234b2017-09-03 08:49:15 -07009142 hdd_ctx->config->sta_miracast_mcc_rest_time_val;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009143
9144#ifdef FEATURE_AP_MCC_CH_AVOIDANCE
Krunal Soni1878d3a2016-01-14 13:00:44 -08009145 smeConfig->csrConfig.sap_channel_avoidance =
Jeff Johnson723234b2017-09-03 08:49:15 -07009146 hdd_ctx->config->sap_channel_avoidance;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009147#endif /* FEATURE_AP_MCC_CH_AVOIDANCE */
gaoleze5108942017-03-31 16:56:42 +08009148 smeConfig->csrConfig.acs_with_more_param =
Jeff Johnson723234b2017-09-03 08:49:15 -07009149 hdd_ctx->config->acs_with_more_param;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009150
Krunal Soni1878d3a2016-01-14 13:00:44 -08009151 smeConfig->csrConfig.f_prefer_non_dfs_on_radar =
Jeff Johnson723234b2017-09-03 08:49:15 -07009152 hdd_ctx->config->prefer_non_dfs_on_radar;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009153
Jeff Johnson723234b2017-09-03 08:49:15 -07009154 smeConfig->csrConfig.is_ps_enabled = hdd_ctx->config->is_ps_enabled;
Kiran Kumar Lokere0ac679c2016-11-17 17:43:36 -08009155 smeConfig->csrConfig.auto_bmps_timer_val =
Jeff Johnson723234b2017-09-03 08:49:15 -07009156 hdd_ctx->config->auto_bmps_timer_val;
Naveen Rawatd2657be2017-10-10 14:31:23 -07009157 hdd_set_fine_time_meas_cap(hdd_ctx);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009158
Jeff Johnson723234b2017-09-03 08:49:15 -07009159 cds_set_multicast_logging(hdd_ctx->config->multicast_host_fw_msgs);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009160
Jeff Johnson1ad3fbd2017-11-03 08:00:02 -07009161 smeConfig->csrConfig.send_deauth_before_con =
9162 pConfig->send_deauth_before_con;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009163
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009164 smeConfig->csrConfig.max_scan_count =
Jeff Johnson723234b2017-09-03 08:49:15 -07009165 hdd_ctx->config->max_scan_count;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009166
9167 /* Update 802.11p config */
9168 smeConfig->csrConfig.enable_dot11p =
Jeff Johnson723234b2017-09-03 08:49:15 -07009169 (hdd_ctx->config->dot11p_mode != WLAN_HDD_11P_DISABLED);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009170
Krunal Soni1878d3a2016-01-14 13:00:44 -08009171 smeConfig->csrConfig.early_stop_scan_enable =
Jeff Johnson723234b2017-09-03 08:49:15 -07009172 hdd_ctx->config->early_stop_scan_enable;
Krunal Soni1878d3a2016-01-14 13:00:44 -08009173 smeConfig->csrConfig.early_stop_scan_min_threshold =
Jeff Johnson723234b2017-09-03 08:49:15 -07009174 hdd_ctx->config->early_stop_scan_min_threshold;
Krunal Soni1878d3a2016-01-14 13:00:44 -08009175 smeConfig->csrConfig.early_stop_scan_max_threshold =
Jeff Johnson723234b2017-09-03 08:49:15 -07009176 hdd_ctx->config->early_stop_scan_max_threshold;
Varun Reddy Yeturu044bda22015-11-21 22:03:40 -08009177 smeConfig->csrConfig.first_scan_bucket_threshold =
Jeff Johnson723234b2017-09-03 08:49:15 -07009178 hdd_ctx->config->first_scan_bucket_threshold;
Gupta, Kapilc68ad462016-02-01 19:17:23 +05309179
9180 smeConfig->csrConfig.roam_dense_rssi_thresh_offset =
Jeff Johnson723234b2017-09-03 08:49:15 -07009181 hdd_ctx->config->roam_dense_rssi_thresh_offset;
Gupta, Kapilc68ad462016-02-01 19:17:23 +05309182 smeConfig->csrConfig.roam_dense_min_aps =
Jeff Johnson723234b2017-09-03 08:49:15 -07009183 hdd_ctx->config->roam_dense_min_aps;
Gupta, Kapilc68ad462016-02-01 19:17:23 +05309184 smeConfig->csrConfig.roam_dense_traffic_thresh =
Jeff Johnson723234b2017-09-03 08:49:15 -07009185 hdd_ctx->config->roam_dense_traffic_thresh;
Varun Reddy Yeturufaad37e2017-07-26 10:54:13 -07009186 smeConfig->csrConfig.roam_bg_scan_bad_rssi_thresh =
9187 hdd_ctx->config->roam_bg_scan_bad_rssi_thresh;
9188 smeConfig->csrConfig.roam_bg_scan_client_bitmap =
9189 hdd_ctx->config->roam_bg_scan_client_bitmap;
Vignesh Viswanathanc018e982017-09-07 18:49:19 +05309190 smeConfig->csrConfig.roam_bad_rssi_thresh_offset_2g =
9191 hdd_ctx->config->roam_bad_rssi_thresh_offset_2g;
Sandeep Puligilla93a29ec2016-02-12 16:10:56 -08009192 smeConfig->csrConfig.obss_width_interval =
Jeff Johnson723234b2017-09-03 08:49:15 -07009193 hdd_ctx->config->obss_width_trigger_interval;
Sandeep Puligilla93a29ec2016-02-12 16:10:56 -08009194 smeConfig->csrConfig.obss_active_dwelltime =
Jeff Johnson723234b2017-09-03 08:49:15 -07009195 hdd_ctx->config->obss_active_dwelltime;
Sandeep Puligilla93a29ec2016-02-12 16:10:56 -08009196 smeConfig->csrConfig.obss_passive_dwelltime =
Jeff Johnson723234b2017-09-03 08:49:15 -07009197 hdd_ctx->config->obss_passive_dwelltime;
Abhishek Singh165bc602016-03-21 12:43:00 +05309198 smeConfig->csrConfig.ignore_peer_ht_opmode =
9199 pConfig->ignore_peer_ht_opmode;
Abhishek Singh5ea86532016-04-27 14:10:53 +05309200 smeConfig->csrConfig.enable_fatal_event =
9201 pConfig->enable_fatal_event;
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05309202 smeConfig->csrConfig.scan_adaptive_dwell_mode =
Jeff Johnson723234b2017-09-03 08:49:15 -07009203 hdd_ctx->config->scan_adaptive_dwell_mode;
Paul Zhang72697bd2017-12-20 09:24:25 +08009204 smeConfig->csrConfig.scan_adaptive_dwell_mode_nc =
9205 hdd_ctx->config->scan_adaptive_dwell_mode_nc;
Gupta, Kapil96c7f2f2016-04-25 19:13:41 +05309206 smeConfig->csrConfig.roamscan_adaptive_dwell_mode =
Jeff Johnson723234b2017-09-03 08:49:15 -07009207 hdd_ctx->config->roamscan_adaptive_dwell_mode;
Gupta, Kapilc68ad462016-02-01 19:17:23 +05309208
Jeff Johnson723234b2017-09-03 08:49:15 -07009209 hdd_update_per_config_to_sme(hdd_ctx, smeConfig);
Kapil Gupta5cda2252016-12-29 18:44:26 +05309210
Abhishek Singh10ecf582016-05-04 17:48:59 +05309211 smeConfig->csrConfig.enable_edca_params =
9212 pConfig->enable_edca_params;
9213
9214 smeConfig->csrConfig.edca_vo_cwmin =
9215 pConfig->edca_vo_cwmin;
9216 smeConfig->csrConfig.edca_vi_cwmin =
9217 pConfig->edca_vi_cwmin;
9218 smeConfig->csrConfig.edca_bk_cwmin =
9219 pConfig->edca_bk_cwmin;
9220 smeConfig->csrConfig.edca_be_cwmin =
9221 pConfig->edca_be_cwmin;
9222
9223 smeConfig->csrConfig.edca_vo_cwmax =
9224 pConfig->edca_vo_cwmax;
9225 smeConfig->csrConfig.edca_vi_cwmax =
9226 pConfig->edca_vi_cwmax;
9227 smeConfig->csrConfig.edca_bk_cwmax =
9228 pConfig->edca_bk_cwmax;
9229 smeConfig->csrConfig.edca_be_cwmax =
9230 pConfig->edca_be_cwmax;
9231
9232 smeConfig->csrConfig.edca_vo_aifs =
9233 pConfig->edca_vo_aifs;
9234 smeConfig->csrConfig.edca_vi_aifs =
9235 pConfig->edca_vi_aifs;
9236 smeConfig->csrConfig.edca_bk_aifs =
9237 pConfig->edca_bk_aifs;
9238 smeConfig->csrConfig.edca_be_aifs =
9239 pConfig->edca_be_aifs;
Agrawal Ashish21ba2572016-09-03 16:40:10 +05309240 smeConfig->csrConfig.sta_roam_policy_params.dfs_mode =
9241 CSR_STA_ROAM_POLICY_DFS_ENABLED;
9242 smeConfig->csrConfig.sta_roam_policy_params.skip_unsafe_channels = 0;
Abhishek Singh10ecf582016-05-04 17:48:59 +05309243
Jeff Johnson723234b2017-09-03 08:49:15 -07009244 smeConfig->snr_monitor_enabled = hdd_ctx->config->fEnableSNRMonitoring;
Kapil Gupta4f0c0c12017-02-07 15:21:15 +05309245
Padma, Santhosh Kumara7119672016-08-16 16:05:14 +05309246 smeConfig->csrConfig.tx_aggregation_size =
Jeff Johnson723234b2017-09-03 08:49:15 -07009247 hdd_ctx->config->tx_aggregation_size;
Padma, Santhosh Kumara7119672016-08-16 16:05:14 +05309248 smeConfig->csrConfig.rx_aggregation_size =
Jeff Johnson723234b2017-09-03 08:49:15 -07009249 hdd_ctx->config->rx_aggregation_size;
Selvaraj, Sridhar4f684bb2017-01-19 15:59:23 +05309250 smeConfig->csrConfig.enable_bcast_probe_rsp =
Jeff Johnson723234b2017-09-03 08:49:15 -07009251 hdd_ctx->config->enable_bcast_probe_rsp;
Vignesh Viswanathan32761e42017-09-25 17:10:54 +05309252 smeConfig->csrConfig.is_fils_enabled =
9253 hdd_ctx->config->is_fils_enabled;
Selvaraj, Sridhara521aab2017-03-25 16:42:34 +05309254 smeConfig->csrConfig.qcn_ie_support =
Jeff Johnson723234b2017-09-03 08:49:15 -07009255 hdd_ctx->config->qcn_ie_support;
Selvaraj, Sridhar97ce6582017-01-20 17:06:34 +05309256 smeConfig->csrConfig.fils_max_chan_guard_time =
Jeff Johnson723234b2017-09-03 08:49:15 -07009257 hdd_ctx->config->fils_max_chan_guard_time;
Padma, Santhosh Kumara7119672016-08-16 16:05:14 +05309258
Krishna Kumaar Natarajan90bb6f12017-03-03 21:05:52 -08009259 hdd_he_set_sme_config(smeConfig, pConfig);
9260
Paul Zhang99fe8842017-12-08 14:43:46 +08009261 smeConfig->csrConfig.wlm_latency_enable =
9262 hdd_ctx->config->wlm_latency_enable;
9263 smeConfig->csrConfig.wlm_latency_level =
9264 hdd_ctx->config->wlm_latency_level;
9265 smeConfig->csrConfig.wlm_latency_flags[0] =
9266 hdd_ctx->config->wlm_latency_flags_normal;
9267 smeConfig->csrConfig.wlm_latency_flags[1] =
9268 hdd_ctx->config->wlm_latency_flags_moderate;
9269 smeConfig->csrConfig.wlm_latency_flags[2] =
9270 hdd_ctx->config->wlm_latency_flags_low;
9271 smeConfig->csrConfig.wlm_latency_flags[3] =
9272 hdd_ctx->config->wlm_latency_flags_ultralow;
9273
Naveen Rawat2b6e3c92017-03-20 13:59:07 -07009274 smeConfig->csrConfig.pkt_err_disconn_th =
Jeff Johnson723234b2017-09-03 08:49:15 -07009275 hdd_ctx->config->pkt_err_disconn_th;
Selvaraj, Sridhar57ce4df2017-05-29 18:30:49 +05309276 smeConfig->csrConfig.disallow_duration =
Jeff Johnson723234b2017-09-03 08:49:15 -07009277 hdd_ctx->config->disallow_duration;
Selvaraj, Sridhar57ce4df2017-05-29 18:30:49 +05309278 smeConfig->csrConfig.rssi_channel_penalization =
Jeff Johnson723234b2017-09-03 08:49:15 -07009279 hdd_ctx->config->rssi_channel_penalization;
Selvaraj, Sridhar57ce4df2017-05-29 18:30:49 +05309280 smeConfig->csrConfig.num_disallowed_aps =
Jeff Johnson723234b2017-09-03 08:49:15 -07009281 hdd_ctx->config->num_disallowed_aps;
Selvaraj, Sridhar57ce4df2017-05-29 18:30:49 +05309282
Naveen Rawatb2fc4132017-05-10 20:42:05 -07009283 smeConfig->csrConfig.is_force_1x1 =
Jeff Johnson723234b2017-09-03 08:49:15 -07009284 hdd_ctx->config->is_force_1x1;
Naveen Rawat247a8682017-06-05 15:00:31 -07009285 smeConfig->csrConfig.num_11b_tx_chains =
Jeff Johnson723234b2017-09-03 08:49:15 -07009286 hdd_ctx->config->num_11b_tx_chains;
Naveen Rawat247a8682017-06-05 15:00:31 -07009287 smeConfig->csrConfig.num_11ag_tx_chains =
Jeff Johnson723234b2017-09-03 08:49:15 -07009288 hdd_ctx->config->num_11ag_tx_chains;
Yeshwanth Sriram Guntuka2ba6fe92017-10-04 14:40:45 +05309289 val = (pConfig->oce_probe_req_rate_enabled *
9290 WMI_VDEV_OCE_PROBE_REQUEST_RATE_FEATURE_BITMAP) +
9291 (pConfig->oce_probe_resp_rate_enabled *
9292 WMI_VDEV_OCE_PROBE_RESPONSE_RATE_FEATURE_BITMAP) +
9293 (pConfig->oce_beacon_rate_enabled *
9294 WMI_VDEV_OCE_BEACON_RATE_FEATURE_BITMAP) +
9295 (pConfig->probe_req_deferral_enabled *
9296 WMI_VDEV_OCE_PROBE_REQUEST_DEFERRAL_FEATURE_BITMAP) +
9297 (pConfig->fils_discovery_sap_enabled *
9298 WMI_VDEV_OCE_FILS_DISCOVERY_FRAME_FEATURE_BITMAP) +
9299 (pConfig->esp_for_roam_enabled *
9300 WMI_VDEV_OCE_ESP_FEATURE_BITMAP) +
9301 (pConfig->rssi_assoc_reject_enabled *
9302 WMI_VDEV_OCE_REASSOC_REJECT_FEATURE_BITMAP);
9303 smeConfig->csrConfig.oce_feature_bitmap = val;
Vignesh Viswanathan9dd88d32017-11-22 14:22:03 +05309304 smeConfig->csrConfig.mbo_thresholds.mbo_candidate_rssi_thres =
9305 hdd_ctx->config->mbo_candidate_rssi_thres;
9306 smeConfig->csrConfig.mbo_thresholds.mbo_current_rssi_thres =
9307 hdd_ctx->config->mbo_current_rssi_thres;
9308 smeConfig->csrConfig.mbo_thresholds.mbo_current_rssi_mcc_thres =
9309 hdd_ctx->config->mbo_current_rssi_mcc_thres;
9310 smeConfig->csrConfig.mbo_thresholds.mbo_candidate_rssi_btc_thres =
9311 hdd_ctx->config->mbo_candidate_rssi_btc_thres;
Jiachao Wu84bb2ea2018-01-08 16:17:33 +08009312 smeConfig->csrConfig.btm_offload_config =
9313 hdd_ctx->config->btm_offload_config;
9314 smeConfig->csrConfig.btm_solicited_timeout =
9315 hdd_ctx->config->btm_solicited_timeout;
9316 smeConfig->csrConfig.btm_max_attempt_cnt =
9317 hdd_ctx->config->btm_max_attempt_cnt;
9318 smeConfig->csrConfig.btm_sticky_time =
9319 hdd_ctx->config->btm_sticky_time;
Himanshu Agarwal8bcec572017-09-28 11:54:37 +05309320 hdd_update_bss_score_params(hdd_ctx->config,
9321 &smeConfig->csrConfig.bss_score_params);
9322
Vignesh Viswanathan694e28e2018-01-18 20:53:57 +05309323 hdd_update_11k_offload_params(hdd_ctx->config,
9324 &smeConfig->csrConfig);
9325
Jeff Johnson723234b2017-09-03 08:49:15 -07009326 status = sme_update_config(hdd_ctx->hHal, smeConfig);
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07009327 if (!QDF_IS_STATUS_SUCCESS(status))
9328 hdd_err("sme_update_config() failure: %d", status);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009329
Anurag Chouhan600c3a02016-03-01 10:33:54 +05309330 qdf_mem_free(smeConfig);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009331 return status;
9332}
9333
9334/**
9335 * hdd_execute_global_config_command() - execute the global config command
Jeff Johnson723234b2017-09-03 08:49:15 -07009336 * @hdd_ctx: the pointer to hdd context
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009337 * @command: the command to run
9338 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05309339 * Return: the QDF_STATUS return from hdd_execute_config_command
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009340 */
Jeff Johnson723234b2017-09-03 08:49:15 -07009341QDF_STATUS hdd_execute_global_config_command(struct hdd_context *hdd_ctx,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009342 char *command)
9343{
9344 return hdd_execute_config_command(g_registry_table,
9345 ARRAY_SIZE(g_registry_table),
Jeff Johnson723234b2017-09-03 08:49:15 -07009346 (uint8_t *) hdd_ctx->config,
9347 hdd_ctx, command);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009348}
9349
9350/**
9351 * hdd_cfg_get_global_config() - get the configuration table
Jeff Johnson723234b2017-09-03 08:49:15 -07009352 * @hdd_ctx: pointer to hdd context
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009353 * @pBuf: buffer to store the configuration
9354 * @buflen: size of the buffer
9355 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05309356 * Return: QDF_STATUS_SUCCESS if the configuration and buffer size can carry
9357 * the content, otherwise QDF_STATUS_E_RESOURCES
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009358 */
Jeff Johnson723234b2017-09-03 08:49:15 -07009359QDF_STATUS hdd_cfg_get_global_config(struct hdd_context *hdd_ctx, char *pBuf,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009360 int buflen)
9361{
9362 return hdd_cfg_get_config(g_registry_table,
9363 ARRAY_SIZE(g_registry_table),
Jeff Johnson723234b2017-09-03 08:49:15 -07009364 (uint8_t *) hdd_ctx->config, hdd_ctx, pBuf,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009365 buflen);
9366}
9367
9368/**
Deepak Dhamdhere828f1892017-02-09 11:51:19 -08009369 * hdd_get_pmkid_modes() - returns PMKID mode bits
Jeff Johnson723234b2017-09-03 08:49:15 -07009370 * @hdd_ctx: the pointer to hdd context
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009371 *
Deepak Dhamdhere828f1892017-02-09 11:51:19 -08009372 * Return: value of pmkid_modes
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009373 */
Jeff Johnson723234b2017-09-03 08:49:15 -07009374void hdd_get_pmkid_modes(struct hdd_context *hdd_ctx,
Deepak Dhamdhere828f1892017-02-09 11:51:19 -08009375 struct pmkid_mode_bits *pmkid_modes)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009376{
Jeff Johnson723234b2017-09-03 08:49:15 -07009377 pmkid_modes->fw_okc = (hdd_ctx->config->pmkid_modes &
Deepak Dhamdhere828f1892017-02-09 11:51:19 -08009378 CFG_PMKID_MODES_OKC) ? 1 : 0;
Jeff Johnson723234b2017-09-03 08:49:15 -07009379 pmkid_modes->fw_pmksa_cache = (hdd_ctx->config->pmkid_modes &
Deepak Dhamdhere828f1892017-02-09 11:51:19 -08009380 CFG_PMKID_MODES_PMKSA_CACHING) ? 1 : 0;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009381}
9382
Jeff Johnsonb6909be2017-08-28 12:07:19 -07009383bool hdd_validate_prb_req_ie_bitmap(struct hdd_context *hdd_ctx)
Rajeev Kumar Sirasanagandlaaec0b082017-06-21 11:59:41 +05309384{
9385 if (!(hdd_ctx->config->probe_req_ie_bitmap_0 ||
9386 hdd_ctx->config->probe_req_ie_bitmap_1 ||
9387 hdd_ctx->config->probe_req_ie_bitmap_2 ||
9388 hdd_ctx->config->probe_req_ie_bitmap_3 ||
9389 hdd_ctx->config->probe_req_ie_bitmap_4 ||
9390 hdd_ctx->config->probe_req_ie_bitmap_5 ||
9391 hdd_ctx->config->probe_req_ie_bitmap_6 ||
9392 hdd_ctx->config->probe_req_ie_bitmap_7))
9393 return false;
9394
9395 /*
9396 * check whether vendor oui IE is set and OUIs are present, each OUI
9397 * is entered in the form of string of 8 characters from ini, therefore,
9398 * for atleast one OUI, minimum length is 8 and hence this string length
9399 * is checked for minimum of 8
9400 */
9401 if ((hdd_ctx->config->probe_req_ie_bitmap_6 &
9402 VENDOR_SPECIFIC_IE_BITMAP) &&
9403 (strlen(hdd_ctx->config->probe_req_ouis) < 8))
9404 return false;
9405
9406 /* check whether vendor oui IE is not set but OUIs are present */
9407 if (!(hdd_ctx->config->probe_req_ie_bitmap_6 &
9408 VENDOR_SPECIFIC_IE_BITMAP) &&
9409 (strlen(hdd_ctx->config->probe_req_ouis) > 0))
9410 return false;
9411
9412 return true;
9413}
9414
Jeff Johnsonb6909be2017-08-28 12:07:19 -07009415int hdd_parse_probe_req_ouis(struct hdd_context *hdd_ctx)
Rajeev Kumar Sirasanagandlaaec0b082017-06-21 11:59:41 +05309416{
9417 uint32_t *voui = hdd_ctx->config->probe_req_voui;
9418 char *str;
9419 uint8_t *token;
9420 uint32_t oui_indx = 0;
9421 int ret;
9422 uint32_t hex_value;
9423
9424 str = (char *)(hdd_ctx->config->probe_req_ouis);
9425 str[MAX_PRB_REQ_VENDOR_OUI_INI_LEN - 1] = '\0';
9426 hdd_ctx->config->no_of_probe_req_ouis = 0;
9427
9428 if (!strlen(str)) {
9429 hdd_info("NO OUIS to parse");
9430 return 0;
9431 }
9432
9433 token = strsep(&str, " ");
9434 while (token) {
9435 if (strlen(token) != 8)
9436 goto next_token;
9437
9438 ret = kstrtouint(token, 16, &hex_value);
9439 if (ret)
9440 goto next_token;
9441
9442 voui[oui_indx++] = cpu_to_be32(hex_value);
9443 if (oui_indx >= MAX_PROBE_REQ_OUIS)
9444 break;
9445
Jeff Johnson59eb5fd2017-10-05 09:42:39 -07009446next_token:
Rajeev Kumar Sirasanagandlaaec0b082017-06-21 11:59:41 +05309447 token = strsep(&str, " ");
9448 }
9449
9450 if (!oui_indx)
9451 return -EINVAL;
9452
9453 hdd_ctx->config->no_of_probe_req_ouis = oui_indx;
9454
9455 return 0;
9456}
9457
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009458/**
9459 * hdd_update_nss() - Update the number of spatial streams supported.
9460 * Ensure that nss is either 1 or 2 before calling this.
9461 *
Kiran Kumar Lokere44a29432018-01-24 16:10:30 -08009462 * @adapter: the pointer to adapter
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009463 * @nss: the number of spatial streams to be updated
9464 *
9465 * This function is used to modify the number of spatial streams
9466 * supported when not in connected state.
9467 *
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05309468 * Return: QDF_STATUS_SUCCESS if nss is correctly updated,
9469 * otherwise QDF_STATUS_E_FAILURE would be returned
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009470 */
Kiran Kumar Lokere44a29432018-01-24 16:10:30 -08009471QDF_STATUS hdd_update_nss(struct hdd_adapter *adapter, uint8_t nss)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009472{
Kiran Kumar Lokere44a29432018-01-24 16:10:30 -08009473 struct hdd_context *hdd_ctx = WLAN_HDD_GET_CTX(adapter);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009474 struct hdd_config *hdd_config = hdd_ctx->config;
9475 uint32_t temp = 0;
9476 uint32_t rx_supp_data_rate, tx_supp_data_rate;
9477 bool status = true;
9478 tSirMacHTCapabilityInfo *ht_cap_info;
9479 uint8_t mcs_set[SIZE_OF_SUPPORTED_MCS_SET] = {0};
9480 uint8_t mcs_set_temp[SIZE_OF_SUPPORTED_MCS_SET];
Sandeep Puligilla98917432016-06-10 13:50:28 -07009481 uint32_t val, val32;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009482 uint16_t val16;
9483 uint8_t enable2x2;
9484
9485 if ((nss == 2) && (hdd_ctx->num_rf_chains != 2)) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08009486 hdd_err("No support for 2 spatial streams");
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05309487 return QDF_STATUS_E_INVAL;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009488 }
9489
9490 enable2x2 = (nss == 1) ? 0 : 1;
9491
9492 if (hdd_config->enable2x2 == enable2x2) {
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07009493 hdd_debug("NSS same as requested");
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05309494 return QDF_STATUS_SUCCESS;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009495 }
9496
9497 if (true == sme_is_any_session_in_connected_state(hdd_ctx->hHal)) {
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08009498 hdd_err("Connected sessions present, Do not change NSS");
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05309499 return QDF_STATUS_E_INVAL;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009500 }
9501
9502 hdd_config->enable2x2 = enable2x2;
9503
9504 if (!hdd_config->enable2x2) {
9505 /* 1x1 */
Kiran Kumar Lokere666bf852016-05-02 12:23:02 -07009506 rx_supp_data_rate = VHT_RX_HIGHEST_SUPPORTED_DATA_RATE_1_1;
9507 tx_supp_data_rate = VHT_TX_HIGHEST_SUPPORTED_DATA_RATE_1_1;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009508 } else {
9509 /* 2x2 */
Kiran Kumar Lokere666bf852016-05-02 12:23:02 -07009510 rx_supp_data_rate = VHT_RX_HIGHEST_SUPPORTED_DATA_RATE_2_2;
9511 tx_supp_data_rate = VHT_TX_HIGHEST_SUPPORTED_DATA_RATE_2_2;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009512 }
9513
9514 /* Update Rx Highest Long GI data Rate */
9515 if (sme_cfg_set_int(hdd_ctx->hHal,
9516 WNI_CFG_VHT_RX_HIGHEST_SUPPORTED_DATA_RATE,
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05309517 rx_supp_data_rate) == QDF_STATUS_E_FAILURE) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009518 status = false;
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08009519 hdd_err("Could not pass on WNI_CFG_VHT_RX_HIGHEST_SUPPORTED_DATA_RATE to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009520 }
9521
9522 /* Update Tx Highest Long GI data Rate */
9523 if (sme_cfg_set_int(hdd_ctx->hHal,
9524 WNI_CFG_VHT_TX_HIGHEST_SUPPORTED_DATA_RATE,
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05309525 tx_supp_data_rate) == QDF_STATUS_E_FAILURE) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009526 status = false;
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08009527 hdd_err("Could not pass on WNI_CFG_VHT_TX_HIGHEST_SUPPORTED_DATA_RATE to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009528 }
9529
9530 sme_cfg_get_int(hdd_ctx->hHal, WNI_CFG_HT_CAP_INFO, &temp);
9531 val16 = (uint16_t)temp;
9532 ht_cap_info = (tSirMacHTCapabilityInfo *)&val16;
Sandeep Puligilla98917432016-06-10 13:50:28 -07009533 if (!(hdd_ctx->ht_tx_stbc_supported && hdd_config->enable2x2)) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009534 ht_cap_info->txSTBC = 0;
Sandeep Puligilla98917432016-06-10 13:50:28 -07009535 } else {
9536 sme_cfg_get_int(hdd_ctx->hHal, WNI_CFG_VHT_TXSTBC, &val32);
Srinivas Girigowda5c0ea4f2017-03-19 23:13:15 -07009537 hdd_debug("STBC %d", val32);
Sandeep Puligilla98917432016-06-10 13:50:28 -07009538 ht_cap_info->txSTBC = val32;
9539 }
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009540 temp = val16;
9541 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_HT_CAP_INFO,
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05309542 temp) == QDF_STATUS_E_FAILURE) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009543 status = false;
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08009544 hdd_err("Could not pass on WNI_CFG_HT_CAP_INFO to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009545 }
9546
9547 sme_cfg_get_int(hdd_ctx->hHal, WNI_CFG_VHT_BASIC_MCS_SET, &temp);
9548 temp = (temp & 0xFFFC) | hdd_config->vhtRxMCS;
9549 if (hdd_config->enable2x2)
9550 temp = (temp & 0xFFF3) | (hdd_config->vhtRxMCS2x2 << 2);
9551 else
9552 temp |= 0x000C;
9553
9554 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_VHT_BASIC_MCS_SET,
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05309555 temp) == QDF_STATUS_E_FAILURE) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009556 status = false;
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08009557 hdd_err("Could not pass on WNI_CFG_VHT_BASIC_MCS_SET to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009558 }
9559
9560 sme_cfg_get_int(hdd_ctx->hHal, WNI_CFG_VHT_RX_MCS_MAP, &temp);
9561 temp = (temp & 0xFFFC) | hdd_config->vhtRxMCS;
9562 if (hdd_config->enable2x2)
9563 temp = (temp & 0xFFF3) | (hdd_config->vhtRxMCS2x2 << 2);
9564 else
9565 temp |= 0x000C;
9566
9567 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_VHT_RX_MCS_MAP,
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05309568 temp) == QDF_STATUS_E_FAILURE) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009569 status = false;
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08009570 hdd_err("Could not pass on WNI_CFG_VHT_RX_MCS_MAP to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009571 }
9572
9573 sme_cfg_get_int(hdd_ctx->hHal, WNI_CFG_VHT_TX_MCS_MAP, &temp);
9574 temp = (temp & 0xFFFC) | hdd_config->vhtTxMCS;
9575 if (hdd_config->enable2x2)
9576 temp = (temp & 0xFFF3) | (hdd_config->vhtTxMCS2x2 << 2);
9577 else
9578 temp |= 0x000C;
9579
9580 if (sme_cfg_set_int(hdd_ctx->hHal, WNI_CFG_VHT_TX_MCS_MAP,
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05309581 temp) == QDF_STATUS_E_FAILURE) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009582 status = false;
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08009583 hdd_err("Could not pass on WNI_CFG_VHT_TX_MCS_MAP to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009584 }
9585
9586#define WLAN_HDD_RX_MCS_ALL_NSTREAM_RATES 0xff
9587 val = SIZE_OF_SUPPORTED_MCS_SET;
9588 sme_cfg_get_str(hdd_ctx->hHal, WNI_CFG_SUPPORTED_MCS_SET,
9589 mcs_set_temp, &val);
9590
9591 mcs_set[0] = mcs_set_temp[0];
9592 if (hdd_config->enable2x2)
9593 for (val = 0; val < nss; val++)
9594 mcs_set[val] = WLAN_HDD_RX_MCS_ALL_NSTREAM_RATES;
9595
9596 if (sme_cfg_set_str(hdd_ctx->hHal, WNI_CFG_SUPPORTED_MCS_SET,
9597 mcs_set,
9598 SIZE_OF_SUPPORTED_MCS_SET) ==
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05309599 QDF_STATUS_E_FAILURE) {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009600 status = false;
Jeff Johnson26c3f0a2016-12-05 14:56:02 -08009601 hdd_err("Could not pass on MCS SET to CFG");
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009602 }
Kiran Kumar Lokere44a29432018-01-24 16:10:30 -08009603 sme_update_he_cap_nss(hdd_ctx->hHal, adapter->session_id, nss);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009604#undef WLAN_HDD_RX_MCS_ALL_NSTREAM_RATES
9605
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05309606 if (QDF_STATUS_SUCCESS != sme_update_nss(hdd_ctx->hHal, nss))
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009607 status = false;
9608
Tushnim Bhattacharyya7e546692017-03-23 18:30:29 -07009609 hdd_set_policy_mgr_user_cfg(hdd_ctx);
Anurag Chouhanfb54ab02016-02-18 18:00:46 +05309610 return (status == false) ? QDF_STATUS_E_FAILURE : QDF_STATUS_SUCCESS;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08009611}