xref: /wlan-driver/qca-wifi-host-cmn/umac/scan/dispatcher/inc/cfg_scan.h (revision 5113495b16420b49004c444715d2daae2066e7dc)
1*5113495bSYour Name /*
2*5113495bSYour Name  * Copyright (c) 2012-2021 The Linux Foundation. All rights reserved.
3*5113495bSYour Name  * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
4*5113495bSYour Name  *
5*5113495bSYour Name  * Permission to use, copy, modify, and/or distribute this software for
6*5113495bSYour Name  * any purpose with or without fee is hereby granted, provided that the
7*5113495bSYour Name  * above copyright notice and this permission notice appear in all
8*5113495bSYour Name  * copies.
9*5113495bSYour Name  *
10*5113495bSYour Name  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
11*5113495bSYour Name  * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
12*5113495bSYour Name  * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
13*5113495bSYour Name  * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
14*5113495bSYour Name  * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
15*5113495bSYour Name  * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
16*5113495bSYour Name  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
17*5113495bSYour Name  * PERFORMANCE OF THIS SOFTWARE.
18*5113495bSYour Name  */
19*5113495bSYour Name 
20*5113495bSYour Name /**
21*5113495bSYour Name  * DOC: This file contains centralized definitions of SCAN component
22*5113495bSYour Name  */
23*5113495bSYour Name #ifndef __CONFIG_SCAN_H
24*5113495bSYour Name #define __CONFIG_SCAN_H
25*5113495bSYour Name 
26*5113495bSYour Name #include "cfg_define.h"
27*5113495bSYour Name 
28*5113495bSYour Name /**
29*5113495bSYour Name  * enum scan_mode_6ghz - scan mode for 6GHz
30*5113495bSYour Name  * @SCAN_MODE_6G_NO_CHANNEL: Remove 6GHz channels in the scan request
31*5113495bSYour Name  * @SCAN_MODE_6G_PSC_CHANNEL: Scan only 6Ghz PSC channels and non-PSC
32*5113495bSYour Name  *                            through RNR IE
33*5113495bSYour Name  * @SCAN_MODE_6G_ALL_CHANNEL: Scan all the 6Ghz channels
34*5113495bSYour Name  * @SCAN_MODE_6G_RNR_ONLY: Scan the channels (both PSC and non-PSC) found in
35*5113495bSYour Name  *  RNR-IEs while scanning 2g and 5g bands. Host fills all PSC and non-PSC
36*5113495bSYour Name  *  channels in the scan request and set the flag FLAG_SCAN_ONLY_IF_RNR_FOUND
37*5113495bSYour Name  *  for each channel.
38*5113495bSYour Name  * @SCAN_MODE_6G_PSC_DUTY_CYCLE: Scan the complete PSC channel list for every
39*5113495bSYour Name  *  duty cycle. For every duty cycle scan, host fills all 6g channels and sets
40*5113495bSYour Name  *  the flag FLAG_SCAN_ONLY_IF_RNR_FOUND only for non-PSC channels. Rest of the
41*5113495bSYour Name  *  scans will be done only on RNR channels (PSC and non-PSC).
42*5113495bSYour Name  * @SCAN_MODE_6G_ALL_DUTY_CYCLE: Scan the complete 6g(PSC and non-PSC) channel
43*5113495bSYour Name  *  list for every duty cycle. For every duty cycle scan, host fills all 6g
44*5113495bSYour Name  *  channels and doesn't set the flag FLAG_SCAN_ONLY_IF_RNR_FOUND for any 6g
45*5113495bSYour Name  *  (PSC/non-PSC) channels. Rest of the scans will be done only on RNR (PSC and
46*5113495bSYour Name  *  non-PSC channels).
47*5113495bSYour Name  * @SCAN_MODE_6G_MAX: Max enumeration
48*5113495bSYour Name  */
49*5113495bSYour Name enum scan_mode_6ghz {
50*5113495bSYour Name 	SCAN_MODE_6G_NO_CHANNEL,
51*5113495bSYour Name 	SCAN_MODE_6G_PSC_CHANNEL,
52*5113495bSYour Name 	SCAN_MODE_6G_ALL_CHANNEL,
53*5113495bSYour Name 	SCAN_MODE_6G_RNR_ONLY,
54*5113495bSYour Name 	SCAN_MODE_6G_PSC_DUTY_CYCLE,
55*5113495bSYour Name 	SCAN_MODE_6G_ALL_DUTY_CYCLE,
56*5113495bSYour Name 	SCAN_MODE_6G_MAX = SCAN_MODE_6G_ALL_DUTY_CYCLE,
57*5113495bSYour Name };
58*5113495bSYour Name 
59*5113495bSYour Name /*
60*5113495bSYour Name  * <ini>
61*5113495bSYour Name  * drop_bcn_on_chan_mismatch - drop the beacon for chan mismatch
62*5113495bSYour Name  * @Min: 0
63*5113495bSYour Name  * @Max: 1
64*5113495bSYour Name  * @Default: 1
65*5113495bSYour Name  *
66*5113495bSYour Name  * This ini is used to decide drop the beacon or not if channel received
67*5113495bSYour Name  * in metadata doesn't match the one in beacon.
68*5113495bSYour Name  *
69*5113495bSYour Name  * Related: None
70*5113495bSYour Name  *
71*5113495bSYour Name  * Usage: External
72*5113495bSYour Name  *
73*5113495bSYour Name  * </ini>
74*5113495bSYour Name  */
75*5113495bSYour Name #define CFG_DROP_BCN_ON_CHANNEL_MISMATCH CFG_INI_BOOL(\
76*5113495bSYour Name 		"drop_bcn_on_chan_mismatch",\
77*5113495bSYour Name 		true,\
78*5113495bSYour Name 		"drop bcn on channel mismatch")
79*5113495bSYour Name 
80*5113495bSYour Name /*
81*5113495bSYour Name  * <ini>
82*5113495bSYour Name  * drop_bcn_on_invalid_freq - drop the beacon or probe resp with invalid freq
83*5113495bSYour Name  * @Min: 0
84*5113495bSYour Name  * @Max: 1
85*5113495bSYour Name  * @Default: 1
86*5113495bSYour Name  *
87*5113495bSYour Name  * This ini is used to decide whether to drop the beacon/probe resp or not
88*5113495bSYour Name  * if channel received in DS param, HT info and HE IE is invalid.
89*5113495bSYour Name  *
90*5113495bSYour Name  * Related: None
91*5113495bSYour Name  *
92*5113495bSYour Name  * Usage: External
93*5113495bSYour Name  *
94*5113495bSYour Name  * </ini>
95*5113495bSYour Name  */
96*5113495bSYour Name #define CFG_DROP_BCN_ON_INVALID_FREQ CFG_INI_BOOL(\
97*5113495bSYour Name 		"drop_bcn_on_invalid_freq",\
98*5113495bSYour Name 		true,\
99*5113495bSYour Name 		"drop bcn on invalid freq in HT, DS, HE IE")
100*5113495bSYour Name 
101*5113495bSYour Name /*
102*5113495bSYour Name  * <ini>
103*5113495bSYour Name  * gActiveMaxChannelTime - Set max channel time for active scan
104*5113495bSYour Name  * @Min: 0
105*5113495bSYour Name  * @Max: 10000
106*5113495bSYour Name  * @Default: 40
107*5113495bSYour Name  *
108*5113495bSYour Name  * This ini is used to set maximum channel time in msecs spent in
109*5113495bSYour Name  * active scan
110*5113495bSYour Name  *
111*5113495bSYour Name  * Related: None
112*5113495bSYour Name  *
113*5113495bSYour Name  * Usage: External
114*5113495bSYour Name  *
115*5113495bSYour Name  * </ini>
116*5113495bSYour Name  */
117*5113495bSYour Name #define CFG_ACTIVE_MAX_CHANNEL_TIME CFG_INI_UINT(\
118*5113495bSYour Name 		"gActiveMaxChannelTime",\
119*5113495bSYour Name 		0, 10000, PLATFORM_VALUE(40, 105),\
120*5113495bSYour Name 		CFG_VALUE_OR_DEFAULT, "active dwell time")
121*5113495bSYour Name 
122*5113495bSYour Name /*
123*5113495bSYour Name  * <ini>
124*5113495bSYour Name  * gEnableDFSChnlScan - Enable/Disable scan on DFS channels
125*5113495bSYour Name  * @Min: 0
126*5113495bSYour Name  * @Max: 1
127*5113495bSYour Name  * @Default: 1
128*5113495bSYour Name  *
129*5113495bSYour Name  * This ini is used to enable/disable scan on DFS channels.
130*5113495bSYour Name  *
131*5113495bSYour Name  * Related: Scan
132*5113495bSYour Name  *
133*5113495bSYour Name  * Usage: External
134*5113495bSYour Name  *
135*5113495bSYour Name  * </ini>
136*5113495bSYour Name  */
137*5113495bSYour Name #define CFG_ENABLE_DFS_SCAN CFG_INI_BOOL( \
138*5113495bSYour Name 				"gEnableDFSChnlScan", \
139*5113495bSYour Name 				true, \
140*5113495bSYour Name 				"enable dfs scan")
141*5113495bSYour Name 
142*5113495bSYour Name /*
143*5113495bSYour Name  * <ini>
144*5113495bSYour Name  * gInitialScanNoDFSChnl - Exclude DFS channels in first scan
145*5113495bSYour Name  * @Min: 0
146*5113495bSYour Name  * @Max: 1
147*5113495bSYour Name  * @Default: 0
148*5113495bSYour Name  *
149*5113495bSYour Name  * This ini is used to enable/disable scan on DFS channels, in first scan only
150*5113495bSYour Name  *
151*5113495bSYour Name  * Related: Scan
152*5113495bSYour Name  *
153*5113495bSYour Name  * Usage: External
154*5113495bSYour Name  *
155*5113495bSYour Name  * </ini>
156*5113495bSYour Name  */
157*5113495bSYour Name #define CFG_INITIAL_NO_DFS_SCAN CFG_INI_BOOL( \
158*5113495bSYour Name 				"gInitialScanNoDFSChnl", \
159*5113495bSYour Name 				false, \
160*5113495bSYour Name 				"disable initial dfs scan")
161*5113495bSYour Name 
162*5113495bSYour Name /*
163*5113495bSYour Name  * <ini>
164*5113495bSYour Name  * active_max_channel_time_2g - Set max time for active 2G channel scan
165*5113495bSYour Name  * @Min: 0
166*5113495bSYour Name  * @Max: 10000
167*5113495bSYour Name  * @Default: 80
168*5113495bSYour Name  *
169*5113495bSYour Name  * This ini is used to set maximum time in msecs spent in active 2G channel scan
170*5113495bSYour Name  * if it's not zero, in case of zero, CFG_ACTIVE_MAX_CHANNEL_TIME is used for 2G
171*5113495bSYour Name  * channels also.
172*5113495bSYour Name  *
173*5113495bSYour Name  * Related: None
174*5113495bSYour Name  *
175*5113495bSYour Name  * Usage: External
176*5113495bSYour Name  *
177*5113495bSYour Name  * </ini>
178*5113495bSYour Name  */
179*5113495bSYour Name #define CFG_ACTIVE_MAX_2G_CHANNEL_TIME CFG_INI_UINT(\
180*5113495bSYour Name 		"active_max_channel_time_2g",\
181*5113495bSYour Name 		0, 10000, PLATFORM_VALUE(80, 0),\
182*5113495bSYour Name 		CFG_VALUE_OR_DEFAULT, "active dwell time for 2G channels")
183*5113495bSYour Name 
184*5113495bSYour Name /*
185*5113495bSYour Name  * <ini>
186*5113495bSYour Name  * min_channel_time_6g - Set min dwell time for 6G channels scan
187*5113495bSYour Name  * @Min: 5
188*5113495bSYour Name  * @Max: 60
189*5113495bSYour Name  * @Default: 25
190*5113495bSYour Name  *
191*5113495bSYour Name  * This ini is used to set minimum time in msecs spent in 6G channels scan.
192*5113495bSYour Name  * Firmware will park on the 6G channel for this duration and if no FILS
193*5113495bSYour Name  * discovery, Beacon, Probe resp is received it will move to new channel after
194*5113495bSYour Name  * this duration. If found , it will wait for "active_max_channel_time_6g"
195*5113495bSYour Name  * duration
196*5113495bSYour Name  *
197*5113495bSYour Name  * Related: active_max_channel_time_6g
198*5113495bSYour Name  *
199*5113495bSYour Name  * Supported Feature: Scan
200*5113495bSYour Name  *
201*5113495bSYour Name  * Usage: External
202*5113495bSYour Name  *
203*5113495bSYour Name  * </ini>
204*5113495bSYour Name  */
205*5113495bSYour Name #define CFG_MIN_6G_CHANNEL_TIME CFG_INI_UINT(\
206*5113495bSYour Name 		"min_dwell_time_6g",\
207*5113495bSYour Name 		5, 60, 25,\
208*5113495bSYour Name 		CFG_VALUE_OR_DEFAULT, "min dwell time for 6G channels")
209*5113495bSYour Name 
210*5113495bSYour Name /*
211*5113495bSYour Name  * <ini>
212*5113495bSYour Name  * active_max_channel_time_6g - Set max time for active 6G channel scan
213*5113495bSYour Name  * @Min: 0
214*5113495bSYour Name  * @Max: 10000
215*5113495bSYour Name  * @Default: 60
216*5113495bSYour Name  *
217*5113495bSYour Name  * This ini is used to set maximum time in msecs spent in active 6G channel scan
218*5113495bSYour Name  *
219*5113495bSYour Name  *
220*5113495bSYour Name  * Related: None
221*5113495bSYour Name  *
222*5113495bSYour Name  * Supported Feature: Scan
223*5113495bSYour Name  *
224*5113495bSYour Name  * Usage: External
225*5113495bSYour Name  *
226*5113495bSYour Name  * </ini>
227*5113495bSYour Name  */
228*5113495bSYour Name #define CFG_ACTIVE_MAX_6G_CHANNEL_TIME CFG_INI_UINT(\
229*5113495bSYour Name 		"active_max_channel_time_6g",\
230*5113495bSYour Name 		0, 10000, 60,\
231*5113495bSYour Name 		CFG_VALUE_OR_DEFAULT, "max active dwell time for 6G channels")
232*5113495bSYour Name 
233*5113495bSYour Name /*
234*5113495bSYour Name  * <ini>
235*5113495bSYour Name  * passive_max_channel_time_6g - Set max time for passive 6G channel scan
236*5113495bSYour Name  * @Min: 0
237*5113495bSYour Name  * @Max: 10000
238*5113495bSYour Name  * @Default: 60
239*5113495bSYour Name  *
240*5113495bSYour Name  * This ini is used to set maximum time in msecs spent in passive 6G chan scan
241*5113495bSYour Name  *
242*5113495bSYour Name  * Related: None
243*5113495bSYour Name  *
244*5113495bSYour Name  * Supported Feature: Scan
245*5113495bSYour Name  *
246*5113495bSYour Name  * Usage: External
247*5113495bSYour Name  *
248*5113495bSYour Name  * </ini>
249*5113495bSYour Name  */
250*5113495bSYour Name #define CFG_PASSIVE_MAX_6G_CHANNEL_TIME CFG_INI_UINT(\
251*5113495bSYour Name 		"passive_max_channel_time_6g",\
252*5113495bSYour Name 		0, 10000, 60,\
253*5113495bSYour Name 		CFG_VALUE_OR_DEFAULT, "max passive dwell time for 6G channels")
254*5113495bSYour Name 
255*5113495bSYour Name /*
256*5113495bSYour Name  * <ini>
257*5113495bSYour Name  * active_max_channel_time_6g_conc - Set max time for active 6G
258*5113495bSYour Name  * channel scan when associated to AP.
259*5113495bSYour Name  * @Min: 0
260*5113495bSYour Name  * @Max: 10000
261*5113495bSYour Name  * @Default: 40
262*5113495bSYour Name  *
263*5113495bSYour Name  * This ini is used to set maximum time in msecs spent in
264*5113495bSYour Name  * active 6G channel scan
265*5113495bSYour Name  *
266*5113495bSYour Name  * Related: None
267*5113495bSYour Name  *
268*5113495bSYour Name  * Supported Feature: Scan
269*5113495bSYour Name  *
270*5113495bSYour Name  * Usage: External
271*5113495bSYour Name  *
272*5113495bSYour Name  * </ini>
273*5113495bSYour Name  */
274*5113495bSYour Name #define CFG_ACTIVE_MAX_6G_CHANNEL_TIME_CONC CFG_INI_UINT(\
275*5113495bSYour Name 		"active_max_channel_time_6g_conc",\
276*5113495bSYour Name 		0, 10000, 40,\
277*5113495bSYour Name 		CFG_VALUE_OR_DEFAULT, "active conc dwell time for 6G channels")
278*5113495bSYour Name 
279*5113495bSYour Name /*
280*5113495bSYour Name  * <ini>
281*5113495bSYour Name  * passive_max_channel_time_6g_conc - Set max time for passive 6G
282*5113495bSYour Name  * channel scan when associated to AP.
283*5113495bSYour Name  * @Min: 0
284*5113495bSYour Name  * @Max: 10000
285*5113495bSYour Name  * @Default: 40
286*5113495bSYour Name  *
287*5113495bSYour Name  * This ini is used to set maximum time in msecs spent in
288*5113495bSYour Name  * passive 6G chan scan
289*5113495bSYour Name  *
290*5113495bSYour Name  * Related: None
291*5113495bSYour Name  *
292*5113495bSYour Name  * Supported Feature: Scan
293*5113495bSYour Name  *
294*5113495bSYour Name  * Usage: External
295*5113495bSYour Name  *
296*5113495bSYour Name  * </ini>
297*5113495bSYour Name  */
298*5113495bSYour Name #define CFG_PASSIVE_MAX_6G_CHANNEL_TIME_CONC CFG_INI_UINT(\
299*5113495bSYour Name 		"passive_max_channel_time_6g_conc",\
300*5113495bSYour Name 		0, 10000, 40,\
301*5113495bSYour Name 		CFG_VALUE_OR_DEFAULT,\
302*5113495bSYour Name 		"passive conc dwell time for 6G channels")
303*5113495bSYour Name 
304*5113495bSYour Name /*
305*5113495bSYour Name  * <ini>
306*5113495bSYour Name  * gPassiveMaxChannelTime - Set max channel time for passive scan
307*5113495bSYour Name  * @Min: 0
308*5113495bSYour Name  * @Max: 10000
309*5113495bSYour Name  * @Default: 110
310*5113495bSYour Name  *
311*5113495bSYour Name  * This ini is used to set maximum channel time in msecs spent in
312*5113495bSYour Name  * passive scan
313*5113495bSYour Name  *
314*5113495bSYour Name  * Related: None
315*5113495bSYour Name  *
316*5113495bSYour Name  * Usage: External
317*5113495bSYour Name  *
318*5113495bSYour Name  * </ini>
319*5113495bSYour Name  */
320*5113495bSYour Name #define CFG_PASSIVE_MAX_CHANNEL_TIME CFG_INI_UINT(\
321*5113495bSYour Name 		"gPassiveMaxChannelTime",\
322*5113495bSYour Name 		0, 10000, PLATFORM_VALUE(110, 300),\
323*5113495bSYour Name 		CFG_VALUE_OR_DEFAULT, "passive dwell time")
324*5113495bSYour Name 
325*5113495bSYour Name /*
326*5113495bSYour Name  * <ini>
327*5113495bSYour Name  * gScanNumProbes - Set the number of probes on each channel for active scan
328*5113495bSYour Name  * @Min: 0
329*5113495bSYour Name  * @Max: 20
330*5113495bSYour Name  * @Default: 0
331*5113495bSYour Name  *
332*5113495bSYour Name  * This ini is used to set number of probes on each channel for
333*5113495bSYour Name  * active scan
334*5113495bSYour Name  */
335*5113495bSYour Name #define CFG_SCAN_NUM_PROBES CFG_INI_UINT(\
336*5113495bSYour Name 			"gScanNumProbes",\
337*5113495bSYour Name 			0, 20, PLATFORM_VALUE(0, 2),\
338*5113495bSYour Name 			CFG_VALUE_OR_DEFAULT,\
339*5113495bSYour Name 			"number of probes on each channel")
340*5113495bSYour Name 
341*5113495bSYour Name /*
342*5113495bSYour Name  * <ini>
343*5113495bSYour Name  * gScanProbeRepeatTime - Set the probe repeat time on each channel
344*5113495bSYour Name  * @Min: 0
345*5113495bSYour Name  * @Max: 30
346*5113495bSYour Name  * @Default: 0
347*5113495bSYour Name  *
348*5113495bSYour Name  * This ini is used to set probe repeat time on each channel for
349*5113495bSYour Name  * active scan
350*5113495bSYour Name  *
351*5113495bSYour Name  * Related: None
352*5113495bSYour Name  *
353*5113495bSYour Name  * Supported Feature: Scan
354*5113495bSYour Name  *
355*5113495bSYour Name  * Usage: External
356*5113495bSYour Name  *
357*5113495bSYour Name  * </ini>
358*5113495bSYour Name  */
359*5113495bSYour Name #define CFG_SCAN_PROBE_REPEAT_TIME CFG_INI_UINT(\
360*5113495bSYour Name 			"gScanProbeRepeatTime",\
361*5113495bSYour Name 			0, 50, PLATFORM_VALUE(20, 50),\
362*5113495bSYour Name 			CFG_VALUE_OR_DEFAULT,\
363*5113495bSYour Name 			"probe repeat time on each channel")
364*5113495bSYour Name 
365*5113495bSYour Name /*
366*5113495bSYour Name  * <ini>
367*5113495bSYour Name  * hostscan_adaptive_dwell_mode - Enable adaptive dwell mode
368*5113495bSYour Name  * during host scan with connection
369*5113495bSYour Name  * @Min: 0
370*5113495bSYour Name  * @Max: 4
371*5113495bSYour Name  * @Default: 1
372*5113495bSYour Name  *
373*5113495bSYour Name  * This ini will set the algo used in dwell time optimization
374*5113495bSYour Name  * during host scan with connection.
375*5113495bSYour Name  * See enum wmi_dwelltime_adaptive_mode.
376*5113495bSYour Name  * Acceptable values for this:
377*5113495bSYour Name  * 0: Default (Use firmware default mode)
378*5113495bSYour Name  * 1: Conservative optimization
379*5113495bSYour Name  * 2: Moderate optimization
380*5113495bSYour Name  * 3: Aggressive optimization
381*5113495bSYour Name  * 4: Static
382*5113495bSYour Name  *
383*5113495bSYour Name  * Related: None
384*5113495bSYour Name  *
385*5113495bSYour Name  * Supported Feature: Scan
386*5113495bSYour Name  *
387*5113495bSYour Name  * Usage: External
388*5113495bSYour Name  *
389*5113495bSYour Name  * </ini>
390*5113495bSYour Name  */
391*5113495bSYour Name #define CFG_ADAPTIVE_SCAN_DWELL_MODE CFG_INI_UINT(\
392*5113495bSYour Name 			"hostscan_adaptive_dwell_mode",\
393*5113495bSYour Name 			0, 4, PLATFORM_VALUE(1, 0),\
394*5113495bSYour Name 			CFG_VALUE_OR_DEFAULT,\
395*5113495bSYour Name 			"Enable adaptive dwell mode")
396*5113495bSYour Name 
397*5113495bSYour Name /*
398*5113495bSYour Name  * <ini>
399*5113495bSYour Name  * hostscan_adaptive_dwell_mode_no_conn - Enable adaptive dwell mode
400*5113495bSYour Name  * during host scan without connection
401*5113495bSYour Name  * @Min: 0
402*5113495bSYour Name  * @Max: 4
403*5113495bSYour Name  * @Default: 4
404*5113495bSYour Name  *
405*5113495bSYour Name  * This ini will set the algo used in dwell time optimization
406*5113495bSYour Name  * during host scan with connection.
407*5113495bSYour Name  * See enum wmi_dwelltime_adaptive_mode.
408*5113495bSYour Name  * Acceptable values for this:
409*5113495bSYour Name  * 0: Default (Use firmware default mode)
410*5113495bSYour Name  * 1: Conservative optimization
411*5113495bSYour Name  * 2: Moderate optimization
412*5113495bSYour Name  * 3: Aggressive optimization
413*5113495bSYour Name  * 4: Static
414*5113495bSYour Name  *
415*5113495bSYour Name  * Related: None
416*5113495bSYour Name  *
417*5113495bSYour Name  * Supported Feature: Scan
418*5113495bSYour Name  *
419*5113495bSYour Name  * Usage: External
420*5113495bSYour Name  *
421*5113495bSYour Name  * </ini>
422*5113495bSYour Name  */
423*5113495bSYour Name #define CFG_ADAPTIVE_SCAN_DWELL_MODE_NC CFG_INI_UINT(\
424*5113495bSYour Name 			"hostscan_adaptive_dwell_mode_no_conn",\
425*5113495bSYour Name 			0, 4, PLATFORM_VALUE(4, 0),\
426*5113495bSYour Name 			CFG_VALUE_OR_DEFAULT,\
427*5113495bSYour Name 			"Enable adaptive dwell mode without connection")
428*5113495bSYour Name 
429*5113495bSYour Name /*
430*5113495bSYour Name  * <ini>
431*5113495bSYour Name  * honour_nl_scan_policy_flags - This ini will decide whether to honour
432*5113495bSYour Name  * NL80211 scan policy flags
433*5113495bSYour Name  * @Min: 0
434*5113495bSYour Name  * @Max: 1
435*5113495bSYour Name  * @Default: 1
436*5113495bSYour Name  *
437*5113495bSYour Name  * This parameter will decide whether to honour scan flags such as
438*5113495bSYour Name  * NL80211_SCAN_FLAG_HIGH_ACCURACY , NL80211_SCAN_FLAG_LOW_SPAN,
439*5113495bSYour Name  * NL80211_SCAN_FLAG_LOW_POWER.
440*5113495bSYour Name  * Acceptable values for this:
441*5113495bSYour Name  * 0: Config is disabled
442*5113495bSYour Name  * 1: Config is enabled
443*5113495bSYour Name  *
444*5113495bSYour Name  * Related: None
445*5113495bSYour Name  *
446*5113495bSYour Name  * Supported Feature: Scan
447*5113495bSYour Name  *
448*5113495bSYour Name  * Usage: Internal
449*5113495bSYour Name  *
450*5113495bSYour Name  * </ini>
451*5113495bSYour Name  */
452*5113495bSYour Name #define CFG_HONOUR_NL_SCAN_POLICY_FLAGS CFG_INI_BOOL(\
453*5113495bSYour Name 			"honour_nl_scan_policy_flags",\
454*5113495bSYour Name 			true, \
455*5113495bSYour Name 			"honour NL80211 scan policy flags")
456*5113495bSYour Name 
457*5113495bSYour Name #ifdef FEATURE_WLAN_SCAN_PNO
458*5113495bSYour Name /*
459*5113495bSYour Name  * <ini>
460*5113495bSYour Name  * g_user_config_sched_scan_plan - set user config sched scan plans.
461*5113495bSYour Name  * @Min: 0
462*5113495bSYour Name  * @Max:1
463*5113495bSYour Name  * @Default: 1
464*5113495bSYour Name  *
465*5113495bSYour Name  * This ini is used to decide if user config number of sched scan plan needs to
466*5113495bSYour Name  * be configured or only one sched scan plan needs to be configured.
467*5113495bSYour Name  * If this ini is enabled then  user config number of sched scan plans will be
468*5113495bSYour Name  * configured else only one sched scan plan will be configured.
469*5113495bSYour Name  *
470*5113495bSYour Name  * Supported Feature: PNO scan
471*5113495bSYour Name  *
472*5113495bSYour Name  * Usage: External
473*5113495bSYour Name  *
474*5113495bSYour Name  * </ini>
475*5113495bSYour Name  */
476*5113495bSYour Name 
477*5113495bSYour Name #define CFG_USER_CONFIG_SCHED_SCAN_PLAN CFG_INI_BOOL(\
478*5113495bSYour Name 			"g_user_config_sched_scan_plan",\
479*5113495bSYour Name 			true, \
480*5113495bSYour Name 			"set user config sched scan plans")
481*5113495bSYour Name 
482*5113495bSYour Name /*
483*5113495bSYour Name  * <ini>
484*5113495bSYour Name  * g_max_sched_scan_plan_iterations - pno sched max scan plan iterations.
485*5113495bSYour Name  * @Min: 1
486*5113495bSYour Name  * @Max: 100
487*5113495bSYour Name  * @Default: 10
488*5113495bSYour Name  *
489*5113495bSYour Name  * This ini is used to set max sched scan plan iterations for pno scan
490*5113495bSYour Name  * (value in seconds).
491*5113495bSYour Name  *
492*5113495bSYour Name  * Related: gPNOScanSupport
493*5113495bSYour Name  *
494*5113495bSYour Name  * Supported Feature: PNO scan
495*5113495bSYour Name  *
496*5113495bSYour Name  * Usage: External
497*5113495bSYour Name  *
498*5113495bSYour Name  * </ini>
499*5113495bSYour Name  */
500*5113495bSYour Name #define CFG_MAX_SCHED_SCAN_PLAN_ITERATIONS CFG_INI_UINT( \
501*5113495bSYour Name 			"g_max_sched_scan_plan_iterations", \
502*5113495bSYour Name 			1, 100, 10, \
503*5113495bSYour Name 			CFG_VALUE_OR_DEFAULT, \
504*5113495bSYour Name 			"Max sched scan plan iterations")
505*5113495bSYour Name 
506*5113495bSYour Name /*
507*5113495bSYour Name  * <ini>
508*5113495bSYour Name  * g_max_sched_scan_plan_int - pno sched max scan plan interval.
509*5113495bSYour Name  * @Min: 1
510*5113495bSYour Name  * @Max: 7200
511*5113495bSYour Name  * @Default: 3600
512*5113495bSYour Name  *
513*5113495bSYour Name  * This ini is used to set max sched scan plan interval for pno scan
514*5113495bSYour Name  * (value in seconds).
515*5113495bSYour Name  *
516*5113495bSYour Name  * Related: gPNOScanSupport
517*5113495bSYour Name  *
518*5113495bSYour Name  * Supported Feature: PNO scan
519*5113495bSYour Name  *
520*5113495bSYour Name  * Usage: External
521*5113495bSYour Name  *
522*5113495bSYour Name  * </ini>
523*5113495bSYour Name  */
524*5113495bSYour Name #define CFG_MAX_SCHED_SCAN_PLAN_INTERVAL CFG_INI_UINT( \
525*5113495bSYour Name 			"g_max_sched_scan_plan_int", \
526*5113495bSYour Name 			1, 7200, 3600, \
527*5113495bSYour Name 			CFG_VALUE_OR_DEFAULT, \
528*5113495bSYour Name 			"Max sched scan plan interval")
529*5113495bSYour Name 
530*5113495bSYour Name /*
531*5113495bSYour Name  * <ini>
532*5113495bSYour Name  * gEnableDFSPnoChnlScan - enable dfs channels in PNO scan
533*5113495bSYour Name  * @Min: 0
534*5113495bSYour Name  * @Max: 1
535*5113495bSYour Name  * @Default: 1
536*5113495bSYour Name  *
537*5113495bSYour Name  * This ini is used to enable/disable dfs channels in PNO scan request,
538*5113495bSYour Name  * enabling this ini enables driver to include dfs channels in its
539*5113495bSYour Name  * PNO scan request
540*5113495bSYour Name  * Related: NA
541*5113495bSYour Name  *
542*5113495bSYour Name  * Supported Feature: DFS, PNO
543*5113495bSYour Name  *
544*5113495bSYour Name  * Usage: Internal/External
545*5113495bSYour Name  *
546*5113495bSYour Name  * </ini>
547*5113495bSYour Name  */
548*5113495bSYour Name #define CFG_ENABLE_DFS_PNO_CHNL_SCAN CFG_INI_BOOL( \
549*5113495bSYour Name 			"gEnableDFSPnoChnlScan", \
550*5113495bSYour Name 			true, \
551*5113495bSYour Name 			"Enable dfs channels in PNO Scan")
552*5113495bSYour Name 
553*5113495bSYour Name /*
554*5113495bSYour Name  * <ini>
555*5113495bSYour Name  * gPNOScanSupport - Enable or Disable PNO scan
556*5113495bSYour Name  * @Min: 0
557*5113495bSYour Name  * @Max: 1
558*5113495bSYour Name  * @Default: 1
559*5113495bSYour Name  *
560*5113495bSYour Name  * This ini is used to Enable or Disable PNO scan
561*5113495bSYour Name  *
562*5113495bSYour Name  * Related: None
563*5113495bSYour Name  *
564*5113495bSYour Name  * Supported Feature: Scan
565*5113495bSYour Name  *
566*5113495bSYour Name  * Usage: External
567*5113495bSYour Name  *
568*5113495bSYour Name  * </ini>
569*5113495bSYour Name  */
570*5113495bSYour Name #define CFG_PNO_SCAN_SUPPORT CFG_INI_BOOL( \
571*5113495bSYour Name 			"gPNOScanSupport", \
572*5113495bSYour Name 			true, \
573*5113495bSYour Name 			"Enable/Disable PNO scan")
574*5113495bSYour Name 
575*5113495bSYour Name /*
576*5113495bSYour Name  * <ini>
577*5113495bSYour Name  * gPNOScanTimerRepeatValue - Set PNO scan timer repeat value
578*5113495bSYour Name  * @Min: 0
579*5113495bSYour Name  * @Max: 0xffffffff
580*5113495bSYour Name  * @Default: 30
581*5113495bSYour Name  *
582*5113495bSYour Name  * This ini is used by firmware to set fast scan max cycles
583*5113495bSYour Name  * equal to gPNOScanTimerRepeatValue. Taking power consumption
584*5113495bSYour Name  * into account firmware after gPNOScanTimerRepeatValue times
585*5113495bSYour Name  * fast_scan_period switches to slow_scan_period.
586*5113495bSYour Name  *
587*5113495bSYour Name  * Usage: External
588*5113495bSYour Name  *
589*5113495bSYour Name  * </ini>
590*5113495bSYour Name  */
591*5113495bSYour Name #define CFG_PNO_SCAN_TIMER_REPEAT_VALUE CFG_INI_UINT( \
592*5113495bSYour Name 			"gPNOScanTimerRepeatValue", \
593*5113495bSYour Name 			0, \
594*5113495bSYour Name 			0xffffffff, \
595*5113495bSYour Name 			30, \
596*5113495bSYour Name 			CFG_VALUE_OR_DEFAULT, \
597*5113495bSYour Name 			"PNO scan timer repeat value")
598*5113495bSYour Name 
599*5113495bSYour Name /*
600*5113495bSYour Name  * <ini>
601*5113495bSYour Name  * gPNOSlowScanMultiplier - Set PNO slow scan multiplier
602*5113495bSYour Name  * @Min: 0
603*5113495bSYour Name  * @Max: 30
604*5113495bSYour Name  * @Default: 6
605*5113495bSYour Name  *
606*5113495bSYour Name  * This ini is used by firmware to set slow scan period
607*5113495bSYour Name  * as gPNOSlowScanMultiplier times fast_scan_period.
608*5113495bSYour Name  *
609*5113495bSYour Name  * Related: None
610*5113495bSYour Name  *
611*5113495bSYour Name  * Supported Feature: Scan
612*5113495bSYour Name  *
613*5113495bSYour Name  * Usage: External
614*5113495bSYour Name  *
615*5113495bSYour Name  * </ini>
616*5113495bSYour Name  */
617*5113495bSYour Name #define CFG_PNO_SLOW_SCAN_MULTIPLIER CFG_INI_UINT( \
618*5113495bSYour Name 			"gPNOSlowScanMultiplier", \
619*5113495bSYour Name 			0, \
620*5113495bSYour Name 			30, \
621*5113495bSYour Name 			6, \
622*5113495bSYour Name 			CFG_VALUE_OR_DEFAULT, \
623*5113495bSYour Name 			"PNO slow scan multiplier")
624*5113495bSYour Name 
625*5113495bSYour Name /*
626*5113495bSYour Name  * <ini>
627*5113495bSYour Name  * gPNOChannelPrediction - Enable/disable the PNO channel
628*5113495bSYour Name  * prediction feature.
629*5113495bSYour Name  * @Min: 0
630*5113495bSYour Name  * @Max: 1
631*5113495bSYour Name  * @Default: 0
632*5113495bSYour Name  *
633*5113495bSYour Name  * In current PNO implementation, scan is always done until all configured
634*5113495bSYour Name  * channels are scanned. If we can determine DUT is stationary based on
635*5113495bSYour Name  * scanning a subset of channels, we may cancel the remaining channels.
636*5113495bSYour Name  * Hence, we can save additional power consumption.
637*5113495bSYour Name  *
638*5113495bSYour Name  * Related: None
639*5113495bSYour Name  *
640*5113495bSYour Name  * Supported Feature: Scan
641*5113495bSYour Name  *
642*5113495bSYour Name  * Usage: External
643*5113495bSYour Name  *
644*5113495bSYour Name  * </ini>
645*5113495bSYour Name  */
646*5113495bSYour Name #define CFG_PNO_CHANNEL_PREDICTION CFG_INI_BOOL( \
647*5113495bSYour Name 			"gPNOChannelPrediction", \
648*5113495bSYour Name 			false, \
649*5113495bSYour Name 			"enable/disable PNO channel prediction feature")
650*5113495bSYour Name 
651*5113495bSYour Name /*
652*5113495bSYour Name  * <ini>
653*5113495bSYour Name  * gTopKNumOfChannels - top K number of channels are used for tanimoto distance
654*5113495bSYour Name  * @Min: 1
655*5113495bSYour Name  * @Max: 5
656*5113495bSYour Name  * @Default: 3
657*5113495bSYour Name  *
658*5113495bSYour Name  * These are the top channels on which the probability of finding the AP's is
659*5113495bSYour Name  * extremely high. This number is intended for tweaking the internal algorithm
660*5113495bSYour Name  * for experiments. This should not be changed externally.
661*5113495bSYour Name  *
662*5113495bSYour Name  * Related: None
663*5113495bSYour Name  *
664*5113495bSYour Name  * Supported Feature: Scan
665*5113495bSYour Name  *
666*5113495bSYour Name  * Usage: External
667*5113495bSYour Name  *
668*5113495bSYour Name  * </ini>
669*5113495bSYour Name  */
670*5113495bSYour Name #define CFG_TOP_K_NUM_OF_CHANNELS CFG_INI_UINT( \
671*5113495bSYour Name 			"gTopKNumOfChannels", \
672*5113495bSYour Name 			1, \
673*5113495bSYour Name 			5, \
674*5113495bSYour Name 			3, \
675*5113495bSYour Name 			CFG_VALUE_OR_DEFAULT, \
676*5113495bSYour Name 			"Top K number of channels")
677*5113495bSYour Name /*
678*5113495bSYour Name  * <ini>
679*5113495bSYour Name  * gStationaryThreshold - STA threshold value to determine if it is stationary
680*5113495bSYour Name  * @Min: 0
681*5113495bSYour Name  * @Max: 100
682*5113495bSYour Name  * @Default: 10
683*5113495bSYour Name  *
684*5113495bSYour Name  * This is the threshold value to determine that the STA is
685*5113495bSYour Name  * stationary. If the tanimoto distance is less than this
686*5113495bSYour Name  * value, then the device is considered to be stationary.
687*5113495bSYour Name  * This parameter is intended to tweak the internal algorithm
688*5113495bSYour Name  * for experiments. This should not be changed externally.
689*5113495bSYour Name  *
690*5113495bSYour Name  *
691*5113495bSYour Name  * Related: None
692*5113495bSYour Name  *
693*5113495bSYour Name  * Supported Feature: Scan
694*5113495bSYour Name  *
695*5113495bSYour Name  * Usage: External
696*5113495bSYour Name  *
697*5113495bSYour Name  * </ini>
698*5113495bSYour Name  */
699*5113495bSYour Name #define CFG_STATIONARY_THRESHOLD CFG_INI_UINT( \
700*5113495bSYour Name 			"gStationaryThreshold", \
701*5113495bSYour Name 			0, \
702*5113495bSYour Name 			100, \
703*5113495bSYour Name 			10, \
704*5113495bSYour Name 			CFG_VALUE_OR_DEFAULT, \
705*5113495bSYour Name 			"Threshold to determine if sta is stationary")
706*5113495bSYour Name 
707*5113495bSYour Name /*
708*5113495bSYour Name  * <ini>
709*5113495bSYour Name  * gChPredictionFullScanMs - Set periodic timer for channel prediction
710*5113495bSYour Name  * @Min: 3000
711*5113495bSYour Name  * @Max: 0x7fffffff
712*5113495bSYour Name  * @Default: 60000
713*5113495bSYour Name  *
714*5113495bSYour Name  * This ini is used to set the periodic timer upon which
715*5113495bSYour Name  * a full scan needs to be triggered when PNO channel
716*5113495bSYour Name  * prediction feature is enabled. This parameter is intended
717*5113495bSYour Name  * to tweak the internal algorithm for experiments.
718*5113495bSYour Name  *
719*5113495bSYour Name  * Related: None
720*5113495bSYour Name  *
721*5113495bSYour Name  * Supported Feature: Scan
722*5113495bSYour Name  *
723*5113495bSYour Name  * Usage: Internal
724*5113495bSYour Name  *
725*5113495bSYour Name  * </ini>
726*5113495bSYour Name  */
727*5113495bSYour Name #define CFG_CHANNEL_PREDICTION_SCAN_TIMER CFG_INI_UINT( \
728*5113495bSYour Name 			"gChPredictionFullScanMs", \
729*5113495bSYour Name 			3000, \
730*5113495bSYour Name 			0x7fffffff, \
731*5113495bSYour Name 			60000, \
732*5113495bSYour Name 			CFG_VALUE_OR_DEFAULT, \
733*5113495bSYour Name 			"Timer value for channel prediction")
734*5113495bSYour Name 
735*5113495bSYour Name /*
736*5113495bSYour Name  * <ini>
737*5113495bSYour Name  * pnoscan_adaptive_dwell_mode - Enable adaptive dwell mode
738*5113495bSYour Name  * during pno scan
739*5113495bSYour Name  * @Min: 0
740*5113495bSYour Name  * @Max: 4
741*5113495bSYour Name  * @Default: 1
742*5113495bSYour Name  *
743*5113495bSYour Name  * This ini will set the algo used in dwell time optimization
744*5113495bSYour Name  * during pno scan. see enum scan_dwelltime_adaptive_mode.
745*5113495bSYour Name  * Acceptable values for this:
746*5113495bSYour Name  * 0: Default (Use firmware default mode)
747*5113495bSYour Name  * 1: Conservative optimization
748*5113495bSYour Name  * 2: Moderate optimization
749*5113495bSYour Name  * 3: Aggressive optimization
750*5113495bSYour Name  * 4: Static
751*5113495bSYour Name  *
752*5113495bSYour Name  * Related: None
753*5113495bSYour Name  *
754*5113495bSYour Name  * Supported Feature: Scan
755*5113495bSYour Name  *
756*5113495bSYour Name  * Usage: External
757*5113495bSYour Name  *
758*5113495bSYour Name  * </ini>
759*5113495bSYour Name  */
760*5113495bSYour Name #define CFG_ADAPTIVE_PNOSCAN_DWELL_MODE CFG_INI_UINT( \
761*5113495bSYour Name 			"pnoscan_adaptive_dwell_mode", \
762*5113495bSYour Name 			0, \
763*5113495bSYour Name 			4, \
764*5113495bSYour Name 			1, \
765*5113495bSYour Name 			CFG_VALUE_OR_DEFAULT, \
766*5113495bSYour Name 			"Algorithm used in dwell time optimization")
767*5113495bSYour Name 
768*5113495bSYour Name /*
769*5113495bSYour Name  * <ini>
770*5113495bSYour Name  * gScanBackoffMultiplier - For NLO/PNO, multiply fast scan period by this every
771*5113495bSYour Name  *      max cycles
772*5113495bSYour Name  * @Min: 0
773*5113495bSYour Name  * @Max: 255
774*5113495bSYour Name  * @Default: 0
775*5113495bSYour Name  *
776*5113495bSYour Name  * For Network Listen Offload and Preferred Network Offload, multiply the fast
777*5113495bSYour Name  * scan period by this value after max cycles have occurred. Setting this to 0
778*5113495bSYour Name  * disables the feature.
779*5113495bSYour Name  *
780*5113495bSYour Name  * @E.g.
781*5113495bSYour Name  *      # Disable scan backoff multiplier
782*5113495bSYour Name  *      gScanBackoffMultiplier=0
783*5113495bSYour Name  *      # Effectively the same
784*5113495bSYour Name  *      gScanBackoffMultiplier=1
785*5113495bSYour Name  *      # Double the scan period after each max cycles have occurred
786*5113495bSYour Name  *      gScanBackoffMultiplier=2
787*5113495bSYour Name  *
788*5113495bSYour Name  * Related: NLO, PNO
789*5113495bSYour Name  *
790*5113495bSYour Name  * Usage: Internal/External
791*5113495bSYour Name  *
792*5113495bSYour Name  * </ini>
793*5113495bSYour Name  */
794*5113495bSYour Name #define CFG_SCAN_BACKOFF_MULTIPLIER CFG_INI_UINT( \
795*5113495bSYour Name 			"gScanBackoffMultiplier", \
796*5113495bSYour Name 			0, \
797*5113495bSYour Name 			255, \
798*5113495bSYour Name 			0, \
799*5113495bSYour Name 			CFG_VALUE_OR_DEFAULT, \
800*5113495bSYour Name 			"Scan backoff multiplier")
801*5113495bSYour Name 
802*5113495bSYour Name /*
803*5113495bSYour Name  * <ini>
804*5113495bSYour Name  * mawc_nlo_enabled - For NLO/PNO, enable MAWC based scan
805*5113495bSYour Name  * @Min: 0
806*5113495bSYour Name  * @Max: 1
807*5113495bSYour Name  * @Default: 0
808*5113495bSYour Name  *
809*5113495bSYour Name  * Enable/Disable the Motion Aided Wireless Connectivity
810*5113495bSYour Name  * based NLO using this parameter
811*5113495bSYour Name  *
812*5113495bSYour Name  * Related: NLO, PNO
813*5113495bSYour Name  *
814*5113495bSYour Name  * Usage: Internal/External
815*5113495bSYour Name  *
816*5113495bSYour Name  * </ini>
817*5113495bSYour Name  */
818*5113495bSYour Name #define CFG_MAWC_NLO_ENABLED CFG_INI_BOOL( \
819*5113495bSYour Name 			"mawc_nlo_enabled", \
820*5113495bSYour Name 			0, \
821*5113495bSYour Name 			"Enable MAWC based scan")
822*5113495bSYour Name 
823*5113495bSYour Name /*
824*5113495bSYour Name  * <ini>
825*5113495bSYour Name  * mawc_nlo_exp_backoff_ratio - Exponential back off ratio
826*5113495bSYour Name  * @Min: 0
827*5113495bSYour Name  * @Max: 300
828*5113495bSYour Name  * @Default: 3
829*5113495bSYour Name  *
830*5113495bSYour Name  * Configure the exponential back off ratio using this
831*5113495bSYour Name  * parameter for MAWC based NLO
832*5113495bSYour Name  * ratio of exponential backoff, next = current + current*ratio/100
833*5113495bSYour Name  *
834*5113495bSYour Name  * Related: NLO, PNO
835*5113495bSYour Name  *
836*5113495bSYour Name  * Usage: Internal/External
837*5113495bSYour Name  *
838*5113495bSYour Name  * </ini>
839*5113495bSYour Name  */
840*5113495bSYour Name #define CFG_MAWC_NLO_EXP_BACKOFF_RATIO CFG_INI_UINT( \
841*5113495bSYour Name 			"mawc_nlo_exp_backoff_ratio", \
842*5113495bSYour Name 			0, \
843*5113495bSYour Name 			300, \
844*5113495bSYour Name 			3, \
845*5113495bSYour Name 			CFG_VALUE_OR_DEFAULT, \
846*5113495bSYour Name 			"MWAC based NLO exponential ratio")
847*5113495bSYour Name 
848*5113495bSYour Name /*
849*5113495bSYour Name  * <ini>
850*5113495bSYour Name  * mawc_nlo_init_scan_interval - Initial Scan Interval
851*5113495bSYour Name  * @Min: 1000
852*5113495bSYour Name  * @Max: 0xFFFFFFFF
853*5113495bSYour Name  * @Default: 10000
854*5113495bSYour Name  *
855*5113495bSYour Name  * Configure the initial scan interval  using this
856*5113495bSYour Name  * parameter for MAWC based NLO (Units in Milliseconds)
857*5113495bSYour Name  *
858*5113495bSYour Name  * Related: NLO, PNO
859*5113495bSYour Name  *
860*5113495bSYour Name  * Usage: Internal/External
861*5113495bSYour Name  *
862*5113495bSYour Name  * </ini>
863*5113495bSYour Name  */
864*5113495bSYour Name #define CFG_MAWC_NLO_INIT_SCAN_INTERVAL CFG_INI_UINT( \
865*5113495bSYour Name 			"mawc_nlo_init_scan_interval", \
866*5113495bSYour Name 			1000, \
867*5113495bSYour Name 			0xFFFFFFFF, \
868*5113495bSYour Name 			10000, \
869*5113495bSYour Name 			CFG_VALUE_OR_DEFAULT, \
870*5113495bSYour Name 			"Initial Scan Interval")
871*5113495bSYour Name 
872*5113495bSYour Name /*
873*5113495bSYour Name  * <ini>
874*5113495bSYour Name  * mawc_nlo_max_scan_interval - Maximum Scan Interval
875*5113495bSYour Name  * @Min: 1000
876*5113495bSYour Name  * @Max: 0xFFFFFFFF
877*5113495bSYour Name  * @Default: 60000
878*5113495bSYour Name  *
879*5113495bSYour Name  * Configure the maximum scan interval  using this
880*5113495bSYour Name  * parameter for MAWC based NLO (Units in Milliseconds)
881*5113495bSYour Name  *
882*5113495bSYour Name  * Related: NLO, PNO
883*5113495bSYour Name  *
884*5113495bSYour Name  * Usage: Internal/External
885*5113495bSYour Name  *
886*5113495bSYour Name  * </ini>
887*5113495bSYour Name  */
888*5113495bSYour Name #define CFG_MAWC_NLO_MAX_SCAN_INTERVAL CFG_INI_UINT( \
889*5113495bSYour Name 			"mawc_nlo_max_scan_interval", \
890*5113495bSYour Name 			1000, \
891*5113495bSYour Name 			0xFFFFFFFF, \
892*5113495bSYour Name 			60000, \
893*5113495bSYour Name 			CFG_VALUE_OR_DEFAULT, \
894*5113495bSYour Name 			"Maximum Scan Interval")
895*5113495bSYour Name 
896*5113495bSYour Name #define CFG_SCAN_PNO \
897*5113495bSYour Name 	CFG(CFG_MAX_SCHED_SCAN_PLAN_ITERATIONS) \
898*5113495bSYour Name 	CFG(CFG_MAX_SCHED_SCAN_PLAN_INTERVAL) \
899*5113495bSYour Name 	CFG(CFG_PNO_SCAN_SUPPORT) \
900*5113495bSYour Name 	CFG(CFG_ENABLE_DFS_PNO_CHNL_SCAN) \
901*5113495bSYour Name 	CFG(CFG_PNO_SCAN_TIMER_REPEAT_VALUE) \
902*5113495bSYour Name 	CFG(CFG_PNO_SLOW_SCAN_MULTIPLIER) \
903*5113495bSYour Name 	CFG(CFG_PNO_CHANNEL_PREDICTION) \
904*5113495bSYour Name 	CFG(CFG_TOP_K_NUM_OF_CHANNELS) \
905*5113495bSYour Name 	CFG(CFG_STATIONARY_THRESHOLD) \
906*5113495bSYour Name 	CFG(CFG_CHANNEL_PREDICTION_SCAN_TIMER) \
907*5113495bSYour Name 	CFG(CFG_ADAPTIVE_PNOSCAN_DWELL_MODE) \
908*5113495bSYour Name 	CFG(CFG_SCAN_BACKOFF_MULTIPLIER) \
909*5113495bSYour Name 	CFG(CFG_MAWC_NLO_ENABLED) \
910*5113495bSYour Name 	CFG(CFG_MAWC_NLO_EXP_BACKOFF_RATIO) \
911*5113495bSYour Name 	CFG(CFG_MAWC_NLO_INIT_SCAN_INTERVAL) \
912*5113495bSYour Name 	CFG(CFG_MAWC_NLO_MAX_SCAN_INTERVAL) \
913*5113495bSYour Name 	CFG(CFG_USER_CONFIG_SCHED_SCAN_PLAN)
914*5113495bSYour Name 
915*5113495bSYour Name #else
916*5113495bSYour Name #define CFG_SCAN_PNO
917*5113495bSYour Name #endif  /* FEATURE_WLAN_SCAN_PNO */
918*5113495bSYour Name 
919*5113495bSYour Name /*
920*5113495bSYour Name  * <ini>
921*5113495bSYour Name  * gActiveMaxChannelTimeConc - Maximum active scan time in milliseconds.
922*5113495bSYour Name  * @Min: 0
923*5113495bSYour Name  * @Max: 10000
924*5113495bSYour Name  * @Default: 40
925*5113495bSYour Name  *
926*5113495bSYour Name  * This ini is used to set maximum active scan time in STA+SAP concurrent
927*5113495bSYour Name  * mode.
928*5113495bSYour Name  *
929*5113495bSYour Name  * Related: None.
930*5113495bSYour Name  *
931*5113495bSYour Name  * Supported Feature: Concurrency
932*5113495bSYour Name  *
933*5113495bSYour Name  * Usage: Internal/External
934*5113495bSYour Name  *
935*5113495bSYour Name  * </ini>
936*5113495bSYour Name  */
937*5113495bSYour Name #define CFG_ACTIVE_MAX_CHANNEL_TIME_CONC CFG_INI_UINT(\
938*5113495bSYour Name 				"gActiveMaxChannelTimeConc",\
939*5113495bSYour Name 				0, 10000, PLATFORM_VALUE(40, 0),\
940*5113495bSYour Name 				CFG_VALUE_OR_DEFAULT, \
941*5113495bSYour Name 				"active scan time in STA+SAP concurrent")
942*5113495bSYour Name 
943*5113495bSYour Name /*
944*5113495bSYour Name  * <ini>
945*5113495bSYour Name  * gPassiveMaxChannelTimeConc - Maximum passive scan time in milliseconds.
946*5113495bSYour Name  * @Min: 0
947*5113495bSYour Name  * @Max: 10000
948*5113495bSYour Name  * @Default: 110
949*5113495bSYour Name  *
950*5113495bSYour Name  * This ini is used to set maximum passive scan time in STA+SAP concurrent
951*5113495bSYour Name  * mode.
952*5113495bSYour Name  *
953*5113495bSYour Name  * Related: None.
954*5113495bSYour Name  *
955*5113495bSYour Name  * Supported Feature: Concurrency
956*5113495bSYour Name  *
957*5113495bSYour Name  * Usage: Internal/External
958*5113495bSYour Name  *
959*5113495bSYour Name  * </ini>
960*5113495bSYour Name  */
961*5113495bSYour Name #define CFG_PASSIVE_MAX_CHANNEL_TIME_CONC CFG_INI_UINT(\
962*5113495bSYour Name 				"gPassiveMaxChannelTimeConc",\
963*5113495bSYour Name 				0, 10000, PLATFORM_VALUE(110, 0),\
964*5113495bSYour Name 				CFG_VALUE_OR_DEFAULT, \
965*5113495bSYour Name 				"Set priority for connection with bssid_hint")
966*5113495bSYour Name 
967*5113495bSYour Name /*
968*5113495bSYour Name  * <ini>
969*5113495bSYour Name  * gRestTimeConc - Rest time before moving to a new channel to scan.
970*5113495bSYour Name  * @Min: 0
971*5113495bSYour Name  * @Max: 10000
972*5113495bSYour Name  * @Default: 100
973*5113495bSYour Name  *
974*5113495bSYour Name  * This ini is used to configure rest time.
975*5113495bSYour Name  *
976*5113495bSYour Name  * Related: None.
977*5113495bSYour Name  *
978*5113495bSYour Name  * Supported Feature: Concurrency
979*5113495bSYour Name  *
980*5113495bSYour Name  * Usage: Internal/External
981*5113495bSYour Name  *
982*5113495bSYour Name  * </ini>
983*5113495bSYour Name  */
984*5113495bSYour Name #define CFG_MAX_REST_TIME_CONC CFG_INI_UINT(\
985*5113495bSYour Name 				"nRestTimeConc",\
986*5113495bSYour Name 				0, 10000, PLATFORM_VALUE(100, 0),\
987*5113495bSYour Name 				CFG_VALUE_OR_DEFAULT, \
988*5113495bSYour Name 				"Rest time before moving to a new channel")
989*5113495bSYour Name 
990*5113495bSYour Name /*
991*5113495bSYour Name  * <ini>
992*5113495bSYour Name  * min_rest_time_conc - Minimum time spent on home channel before moving to a
993*5113495bSYour Name  * new channel to scan.
994*5113495bSYour Name  * @Min: 0
995*5113495bSYour Name  * @Max: 50
996*5113495bSYour Name  * @Default: 50
997*5113495bSYour Name  *
998*5113495bSYour Name  * This ini is used to configure minimum time spent on home channel before
999*5113495bSYour Name  * moving to a new channel to scan.
1000*5113495bSYour Name  *
1001*5113495bSYour Name  * Related: None.
1002*5113495bSYour Name  *
1003*5113495bSYour Name  * Supported Feature: Concurrency
1004*5113495bSYour Name  *
1005*5113495bSYour Name  * Usage: Internal/External
1006*5113495bSYour Name  *
1007*5113495bSYour Name  * </ini>
1008*5113495bSYour Name  */
1009*5113495bSYour Name #define CFG_MIN_REST_TIME_CONC CFG_INI_UINT(\
1010*5113495bSYour Name 				"min_rest_time_conc",\
1011*5113495bSYour Name 				0, 50, PLATFORM_VALUE(50, 0),\
1012*5113495bSYour Name 				CFG_VALUE_OR_DEFAULT, \
1013*5113495bSYour Name 				"minimum time spent on home channel")
1014*5113495bSYour Name 
1015*5113495bSYour Name /*
1016*5113495bSYour Name  * <ini>
1017*5113495bSYour Name  * wake_lock_in_user_scan - use to acquire wake lock during user scan
1018*5113495bSYour Name  * @Min: 0
1019*5113495bSYour Name  * @Max: 1
1020*5113495bSYour Name  * @Default: 0
1021*5113495bSYour Name  *
1022*5113495bSYour Name  * This INI is added for a specific OEM on their request, who don’t want to
1023*5113495bSYour Name  * use PNO offload scan (sched scans). This is useful only if PNO scan offload
1024*5113495bSYour Name  * is disabled. If PNO scan is enabled this INI should be disabled and its
1025*5113495bSYour Name  * by default disabled intentionally.
1026*5113495bSYour Name  * This is used to acquire wake lock to handle the case where PNO scan offload
1027*5113495bSYour Name  * is disabled so that wlan is not suspended during scan before connect and
1028*5113495bSYour Name  * thus scan is not aborted in between. In case PNO scan is offloaded, the FW
1029*5113495bSYour Name  * will take care of connect scans and will wake up host when candidate is found
1030*5113495bSYour Name  *
1031*5113495bSYour Name  * Related: Scan
1032*5113495bSYour Name  *
1033*5113495bSYour Name  * Usage: Internal/External
1034*5113495bSYour Name  *
1035*5113495bSYour Name  * </ini>
1036*5113495bSYour Name  */
1037*5113495bSYour Name #define CFG_ENABLE_WAKE_LOCK_IN_SCAN CFG_INI_BOOL( \
1038*5113495bSYour Name 				"wake_lock_in_user_scan", \
1039*5113495bSYour Name 				false, \
1040*5113495bSYour Name 				"use wake lock during scan")
1041*5113495bSYour Name 
1042*5113495bSYour Name /*
1043*5113495bSYour Name  * <ini>
1044*5113495bSYour Name  * gIdleTimeConc - Data inactivity time in msec.
1045*5113495bSYour Name  * @Min: 0
1046*5113495bSYour Name  * @Max: 25
1047*5113495bSYour Name  * @Default: 25
1048*5113495bSYour Name  *
1049*5113495bSYour Name  * This ini is used to configure data inactivity time in msec on bss channel
1050*5113495bSYour Name  * that will be used by scan engine in firmware.
1051*5113495bSYour Name  * For example if this value is 25ms then firmware will check for data
1052*5113495bSYour Name  * inactivity every 25ms till gRestTimeConc is reached.
1053*5113495bSYour Name  * If inactive then scan engine will move from home channel to scan the next
1054*5113495bSYour Name  * frequency.
1055*5113495bSYour Name  *
1056*5113495bSYour Name  * Related: None.
1057*5113495bSYour Name  *
1058*5113495bSYour Name  * Supported Feature: Concurrency
1059*5113495bSYour Name  *
1060*5113495bSYour Name  * Usage: Internal/External
1061*5113495bSYour Name  *
1062*5113495bSYour Name  * </ini>
1063*5113495bSYour Name  */
1064*5113495bSYour Name #define CFG_IDLE_TIME_CONC CFG_INI_UINT(\
1065*5113495bSYour Name 				"gIdleTimeConc",\
1066*5113495bSYour Name 				0, 25, PLATFORM_VALUE(25, 0),\
1067*5113495bSYour Name 				CFG_VALUE_OR_DEFAULT, \
1068*5113495bSYour Name 				"data inactivity time on bss channel")
1069*5113495bSYour Name 
1070*5113495bSYour Name /*
1071*5113495bSYour Name  * <ini>
1072*5113495bSYour Name  * gChlistTrimConc - Enable scan list modification on concurrent mode.
1073*5113495bSYour Name  * @Min: 0
1074*5113495bSYour Name  * @Max: 1
1075*5113495bSYour Name  * @Default: 0
1076*5113495bSYour Name  *
1077*5113495bSYour Name  * This ini is used to enable/disable scan list modification
1078*5113495bSYour Name  * on concurrent mode.
1079*5113495bSYour Name  *
1080*5113495bSYour Name  * Related: None.
1081*5113495bSYour Name  *
1082*5113495bSYour Name  * Supported Feature: Concurrency, Scan
1083*5113495bSYour Name  *
1084*5113495bSYour Name  * Usage: Internal/External
1085*5113495bSYour Name  *
1086*5113495bSYour Name  * </ini>
1087*5113495bSYour Name  */
1088*5113495bSYour Name #define CFG_CHAN_LIST_TRIM_CONC CFG_INI_BOOL(\
1089*5113495bSYour Name 				"ch_list_trim_conc",\
1090*5113495bSYour Name 				false, \
1091*5113495bSYour Name 				"Enable scan list trim")
1092*5113495bSYour Name 
1093*5113495bSYour Name /*
1094*5113495bSYour Name  * <ini>
1095*5113495bSYour Name  * gEnableMacAddrSpoof - Enable mac address randomization feature.
1096*5113495bSYour Name  * @Min: 0
1097*5113495bSYour Name  * @Max: 1
1098*5113495bSYour Name  * @Default: 1
1099*5113495bSYour Name  *
1100*5113495bSYour Name  * This ini is used to enable/disable mac address randomization for scan.
1101*5113495bSYour Name  *
1102*5113495bSYour Name  * Supported Feature: SCAN
1103*5113495bSYour Name  *
1104*5113495bSYour Name  *
1105*5113495bSYour Name  * Usage: Internal/External
1106*5113495bSYour Name  *
1107*5113495bSYour Name  * </ini>
1108*5113495bSYour Name  */
1109*5113495bSYour Name #define CFG_ENABLE_MAC_ADDR_SPOOFING CFG_INI_BOOL( \
1110*5113495bSYour Name 		"gEnableMacAddrSpoof", \
1111*5113495bSYour Name 		true, \
1112*5113495bSYour Name 		"Enable mac spoofing")
1113*5113495bSYour Name 
1114*5113495bSYour Name /*
1115*5113495bSYour Name  * <ini>
1116*5113495bSYour Name  * gScanAgingTime - Set scan aging time
1117*5113495bSYour Name  * @Min: 0
1118*5113495bSYour Name  * @Max: 200
1119*5113495bSYour Name  * @Default: 30
1120*5113495bSYour Name  *
1121*5113495bSYour Name  * This ini is used to set scan aging timeout value
1122*5113495bSYour Name  * in secs. For example after 30 secs the bss results
1123*5113495bSYour Name  * greater than 30secs age will be flushed.
1124*5113495bSYour Name  *
1125*5113495bSYour Name  * Related: None
1126*5113495bSYour Name  *
1127*5113495bSYour Name  * Supported Feature: Scan
1128*5113495bSYour Name  *
1129*5113495bSYour Name  * Usage: External
1130*5113495bSYour Name  *
1131*5113495bSYour Name  * </ini>
1132*5113495bSYour Name  */
1133*5113495bSYour Name #ifdef CONFIG_WIFI_EMULATION_WIFI_3_0
1134*5113495bSYour Name #define CFG_SCAN_AGING_TIME_DEFAULT (90)
1135*5113495bSYour Name #else
1136*5113495bSYour Name #define CFG_SCAN_AGING_TIME_DEFAULT (30)
1137*5113495bSYour Name #endif
1138*5113495bSYour Name 
1139*5113495bSYour Name #define CFG_SCAN_AGING_TIME CFG_INI_UINT( \
1140*5113495bSYour Name 			"gScanAgingTime", \
1141*5113495bSYour Name 			0, \
1142*5113495bSYour Name 			200, \
1143*5113495bSYour Name 			CFG_SCAN_AGING_TIME_DEFAULT, \
1144*5113495bSYour Name 			CFG_VALUE_OR_DEFAULT, \
1145*5113495bSYour Name 			"scan aging time")
1146*5113495bSYour Name /*
1147*5113495bSYour Name  * <ini>
1148*5113495bSYour Name  * extscan_adaptive_dwell_mode  Enable adaptive dwell mode
1149*5113495bSYour Name  * during ext scan
1150*5113495bSYour Name  * @Min: 0
1151*5113495bSYour Name  * @Max: 4
1152*5113495bSYour Name  * @Default: 1
1153*5113495bSYour Name  *
1154*5113495bSYour Name  * This ini will set the algo used in dwell time optimization
1155*5113495bSYour Name  * during ext scan. see enum scan_dwelltime_adaptive_mode.
1156*5113495bSYour Name  * Acceptable values for this:
1157*5113495bSYour Name  * 0: Default (Use firmware default mode)
1158*5113495bSYour Name  * 1: Conservative optimization
1159*5113495bSYour Name  * 2: Moderate optimization
1160*5113495bSYour Name  * 3: Aggressive optimization
1161*5113495bSYour Name  * 4: Static
1162*5113495bSYour Name  *
1163*5113495bSYour Name  * Related: None
1164*5113495bSYour Name  *
1165*5113495bSYour Name  * Supported Feature: Scan
1166*5113495bSYour Name  *
1167*5113495bSYour Name  * Usage: External
1168*5113495bSYour Name  *
1169*5113495bSYour Name  * </ini>
1170*5113495bSYour Name  */
1171*5113495bSYour Name #define CFG_ADAPTIVE_EXTSCAN_DWELL_MODE CFG_INI_UINT( \
1172*5113495bSYour Name 			"extscan_adaptive_dwell_mode", \
1173*5113495bSYour Name 			0, \
1174*5113495bSYour Name 			4, \
1175*5113495bSYour Name 			1, \
1176*5113495bSYour Name 			CFG_VALUE_OR_DEFAULT, \
1177*5113495bSYour Name 			"ext scan adaptive dwell mode")
1178*5113495bSYour Name 
1179*5113495bSYour Name /*
1180*5113495bSYour Name  * <ini>
1181*5113495bSYour Name  * sta_scan_burst_duration - Burst duration in case of split scan.
1182*5113495bSYour Name  * @Min: 0
1183*5113495bSYour Name  * @Max: 180
1184*5113495bSYour Name  * @Default: 0
1185*5113495bSYour Name  *
1186*5113495bSYour Name  * This ini is used to set burst duration of sta scan requests.
1187*5113495bSYour Name  *
1188*5113495bSYour Name  * Related: None.
1189*5113495bSYour Name  *
1190*5113495bSYour Name  * Supported Feature: Concurrency
1191*5113495bSYour Name  *
1192*5113495bSYour Name  * Usage: External
1193*5113495bSYour Name  *
1194*5113495bSYour Name  * </ini>
1195*5113495bSYour Name  */
1196*5113495bSYour Name #define CFG_STA_SCAN_BURST_DURATION CFG_INI_UINT( \
1197*5113495bSYour Name 			"sta_scan_burst_duration", \
1198*5113495bSYour Name 			0, \
1199*5113495bSYour Name 			180, \
1200*5113495bSYour Name 			0, \
1201*5113495bSYour Name 			CFG_VALUE_OR_DEFAULT, \
1202*5113495bSYour Name 			"sta scan burst duration")
1203*5113495bSYour Name 
1204*5113495bSYour Name /*
1205*5113495bSYour Name  * <ini>
1206*5113495bSYour Name  * p2p_scan_burst_duration - Burst duration in case of split scan for p2p scan.
1207*5113495bSYour Name  * @Min: 0
1208*5113495bSYour Name  * @Max: 180
1209*5113495bSYour Name  * @Default: 0
1210*5113495bSYour Name  *
1211*5113495bSYour Name  * This ini is used to set burst duration of scan for p2p scan requests.
1212*5113495bSYour Name  *
1213*5113495bSYour Name  * Related: None.
1214*5113495bSYour Name  *
1215*5113495bSYour Name  * Supported Feature: Concurrency
1216*5113495bSYour Name  *
1217*5113495bSYour Name  * Usage: External
1218*5113495bSYour Name  *
1219*5113495bSYour Name  * </ini>
1220*5113495bSYour Name  */
1221*5113495bSYour Name 
1222*5113495bSYour Name #define CFG_P2P_SCAN_BURST_DURATION CFG_INI_UINT( \
1223*5113495bSYour Name 			"p2p_scan_burst_duration", \
1224*5113495bSYour Name 			0, \
1225*5113495bSYour Name 			180, \
1226*5113495bSYour Name 			0, \
1227*5113495bSYour Name 			CFG_VALUE_OR_DEFAULT, \
1228*5113495bSYour Name 			"p2p scan burst duration")
1229*5113495bSYour Name /*
1230*5113495bSYour Name  * <ini>
1231*5113495bSYour Name  * go_scan_burst_duration - Burst duration in case of split scan when GO is
1232*5113495bSYour Name  * active.
1233*5113495bSYour Name  * @Min: 0
1234*5113495bSYour Name  * @Max: 180
1235*5113495bSYour Name  * @Default: 0
1236*5113495bSYour Name  *
1237*5113495bSYour Name  * This ini is used to set burst duration of scan when GO is active.
1238*5113495bSYour Name  *
1239*5113495bSYour Name  * Related: None.
1240*5113495bSYour Name  *
1241*5113495bSYour Name  * Supported Feature: Concurrency
1242*5113495bSYour Name  *
1243*5113495bSYour Name  * Usage: External
1244*5113495bSYour Name  *
1245*5113495bSYour Name  * </ini>
1246*5113495bSYour Name  */
1247*5113495bSYour Name #define CFG_GO_SCAN_BURST_DURATION CFG_INI_UINT( \
1248*5113495bSYour Name 			"go_scan_burst_duration", \
1249*5113495bSYour Name 			0, \
1250*5113495bSYour Name 			180, \
1251*5113495bSYour Name 			0, \
1252*5113495bSYour Name 			CFG_VALUE_OR_DEFAULT, \
1253*5113495bSYour Name 			"go scan burst duration")
1254*5113495bSYour Name 
1255*5113495bSYour Name /*
1256*5113495bSYour Name  * <ini>
1257*5113495bSYour Name  * ap_scan_burst_duration - Burst duration in case of split scan when ap
1258*5113495bSYour Name  * is active.
1259*5113495bSYour Name  * @Min: 0
1260*5113495bSYour Name  * @Max: 32
1261*5113495bSYour Name  * @Default: 0
1262*5113495bSYour Name  *
1263*5113495bSYour Name  * This ini is used to set burst duration of scan when SAP is active.
1264*5113495bSYour Name  *
1265*5113495bSYour Name  * Related: None.
1266*5113495bSYour Name  *
1267*5113495bSYour Name  * Supported Feature: Concurrency
1268*5113495bSYour Name  *
1269*5113495bSYour Name  * Usage: External
1270*5113495bSYour Name  *
1271*5113495bSYour Name  * </ini>
1272*5113495bSYour Name  */
1273*5113495bSYour Name #define CFG_AP_SCAN_BURST_DURATION CFG_INI_UINT( \
1274*5113495bSYour Name 			"ap_scan_burst_duration", \
1275*5113495bSYour Name 			0, \
1276*5113495bSYour Name 			32, \
1277*5113495bSYour Name 			0, \
1278*5113495bSYour Name 			CFG_VALUE_OR_DEFAULT, \
1279*5113495bSYour Name 			"ap scan burst duration")
1280*5113495bSYour Name 
1281*5113495bSYour Name /*
1282*5113495bSYour Name  * <ini>
1283*5113495bSYour Name  * gSkipDfsChannelInP2pSearch - Skip DFS Channel in case of P2P Search
1284*5113495bSYour Name  * @Min: 0
1285*5113495bSYour Name  * @Max: 1
1286*5113495bSYour Name  * @Default: 1
1287*5113495bSYour Name  *
1288*5113495bSYour Name  * This ini is used to disable(skip) dfs channel in p2p search.
1289*5113495bSYour Name  * Related: None.
1290*5113495bSYour Name  *
1291*5113495bSYour Name  * Supported Feature: DFS P2P
1292*5113495bSYour Name  *
1293*5113495bSYour Name  * Usage: External
1294*5113495bSYour Name  *
1295*5113495bSYour Name  * <ini>
1296*5113495bSYour Name  */
1297*5113495bSYour Name #define CFG_ENABLE_SKIP_DFS_IN_P2P_SEARCH CFG_INI_BOOL( \
1298*5113495bSYour Name 	"gSkipDfsChannelInP2pSearch", \
1299*5113495bSYour Name 	1, \
1300*5113495bSYour Name 	"skip dfs channel in p2p search")
1301*5113495bSYour Name 
1302*5113495bSYour Name /*
1303*5113495bSYour Name  * <ini>
1304*5113495bSYour Name  * gEnableConnectedScan - Will enable or disable scan in connected state
1305*5113495bSYour Name  * This ini is used to enable or disable the scanning in
1306*5113495bSYour Name  * Connected state
1307*5113495bSYour Name  * @Min: 0
1308*5113495bSYour Name  * @Max: 1
1309*5113495bSYour Name  * @Default: 1
1310*5113495bSYour Name  *
1311*5113495bSYour Name  * Related: None
1312*5113495bSYour Name  *
1313*5113495bSYour Name  * Supported Feature: STA
1314*5113495bSYour Name  *
1315*5113495bSYour Name  * Usage: External
1316*5113495bSYour Name  *
1317*5113495bSYour Name  * <ini>
1318*5113495bSYour Name  */
1319*5113495bSYour Name #define CFG_ENABLE_CONNECTED_SCAN CFG_INI_BOOL( \
1320*5113495bSYour Name 				"gEnableConnectedScan", \
1321*5113495bSYour Name 				true, \
1322*5113495bSYour Name 				"Enable/disable scan in connected state")
1323*5113495bSYour Name 
1324*5113495bSYour Name /*
1325*5113495bSYour Name  * <ini>
1326*5113495bSYour Name  * gEnableSNRMonitoring - Enables SNR Monitoring
1327*5113495bSYour Name  * @Min: 0
1328*5113495bSYour Name  * @Max: 1
1329*5113495bSYour Name  * @Default: 1
1330*5113495bSYour Name  *
1331*5113495bSYour Name  * This ini is used to set default snr monitor
1332*5113495bSYour Name  *
1333*5113495bSYour Name  * Related: None
1334*5113495bSYour Name  *
1335*5113495bSYour Name  * Supported Feature: STA
1336*5113495bSYour Name  *
1337*5113495bSYour Name  * Usage: Internal/External
1338*5113495bSYour Name  *
1339*5113495bSYour Name  * </ini>
1340*5113495bSYour Name  */
1341*5113495bSYour Name #define CFG_ENABLE_SNR_MONITORING CFG_INI_BOOL(\
1342*5113495bSYour Name 			"gEnableSNRMonitoring",\
1343*5113495bSYour Name 			true,\
1344*5113495bSYour Name 			"Enable/Disable SNR Monitoring")
1345*5113495bSYour Name 
1346*5113495bSYour Name /*
1347*5113495bSYour Name  * <ini>
1348*5113495bSYour Name  * scan_mode_6ghz - 6ghz Scan mode
1349*5113495bSYour Name  * @Min: 0
1350*5113495bSYour Name  * @Max: 2
1351*5113495bSYour Name  * @Default: 1
1352*5113495bSYour Name  *
1353*5113495bSYour Name  * Configure the 6Ghz scan mode
1354*5113495bSYour Name  * 0 - Remove 6GHz channels in the scan request
1355*5113495bSYour Name  * 1 - Allow/Add 6Ghz PSC channels to scan request
1356*5113495bSYour Name  * 2 - Allow all the 6Ghz channels
1357*5113495bSYour Name  * 3 - Scan the channels (both PSC and non-PSC) found in RNR-IEs while scanning
1358*5113495bSYour Name  *     2g and 5g bands. Host fills all PSC and non-PSC channels in the scan
1359*5113495bSYour Name  *     request and set the flag FLAG_SCAN_ONLY_IF_RNR_FOUND for each channel.
1360*5113495bSYour Name  * 4 - Scan the complete PSC channel list for every duty cycle. For every
1361*5113495bSYour Name  *     duty cycle scan, host fills all 6g channels and sets the flag
1362*5113495bSYour Name  *     FLAG_SCAN_ONLY_IF_RNR_FOUND only for non-PSC channels. Rest of the scans
1363*5113495bSYour Name  *     will be done only on RNR channels (PSC and non-PSC).
1364*5113495bSYour Name  * 5 - Scan the complete 6g(PSC and non-PSC) channel list for every duty cycle.
1365*5113495bSYour Name  *     For every duty cycle scan, host fills all 6g channels and doesn't set the
1366*5113495bSYour Name  *     flag FLAG_SCAN_ONLY_IF_RNR_FOUND for any 6g (PSC/non-PSC) channels. Rest
1367*5113495bSYour Name  *     of the scans will be done only on RNR (PSC and non-PSC channels).
1368*5113495bSYour Name  *
1369*5113495bSYour Name  * Related: SCAN
1370*5113495bSYour Name  *
1371*5113495bSYour Name  * Usage: Internal/External
1372*5113495bSYour Name  *
1373*5113495bSYour Name  * </ini>
1374*5113495bSYour Name  */
1375*5113495bSYour Name #define CFG_6GHZ_SCAN_MODE CFG_INI_UINT( \
1376*5113495bSYour Name 			"scan_mode_6ghz", \
1377*5113495bSYour Name 			SCAN_MODE_6G_NO_CHANNEL, \
1378*5113495bSYour Name 			SCAN_MODE_6G_MAX, \
1379*5113495bSYour Name 			PLATFORM_VALUE(SCAN_MODE_6G_PSC_DUTY_CYCLE, \
1380*5113495bSYour Name 				SCAN_MODE_6G_ALL_CHANNEL), \
1381*5113495bSYour Name 			CFG_VALUE_OR_DEFAULT, \
1382*5113495bSYour Name 			"6ghz scan mode")
1383*5113495bSYour Name 
1384*5113495bSYour Name /*
1385*5113495bSYour Name  * <ini>
1386*5113495bSYour Name  * scan_mode_6ghz_duty_cycle - 6ghz Scan mode duty cycle
1387*5113495bSYour Name  * @Min: 0
1388*5113495bSYour Name  * @Max: 0xFFFF
1389*5113495bSYour Name  * @Default: 4
1390*5113495bSYour Name  *
1391*5113495bSYour Name  * Configure the 6Ghz scan mode duty cycle
1392*5113495bSYour Name  * 0 - No full scan needed, all scans are optimized
1393*5113495bSYour Name  * 1 - No scan optimization, all full scans are considered as it is
1394*5113495bSYour Name  * 2 - Every alternate full scan req is considered as it is without optimization
1395*5113495bSYour Name  * 3 - Every third full scan req is considered as it is without optimization
1396*5113495bSYour Name  * 4 - Every fourth full scan req is considered as it is without optimization
1397*5113495bSYour Name  *
1398*5113495bSYour Name  * This INI is used to disable optimization on full scan requests after every
1399*5113495bSYour Name  * duty cycle and send it as it is to firmware. The optimization is to fill 6ghz
1400*5113495bSYour Name  * channels and scan for only RNR channels based on the ini scan_mode_6ghz.
1401*5113495bSYour Name  *
1402*5113495bSYour Name  * Related: scan_mode_6ghz
1403*5113495bSYour Name  *
1404*5113495bSYour Name  * Usage: External
1405*5113495bSYour Name  *
1406*5113495bSYour Name  * </ini>
1407*5113495bSYour Name  */
1408*5113495bSYour Name #define CFG_6GHZ_SCAN_MODE_DUTY_CYCLE CFG_INI_UINT( \
1409*5113495bSYour Name 			"scan_mode_6ghz_duty_cycle", \
1410*5113495bSYour Name 			0, \
1411*5113495bSYour Name 			0xFFFF, \
1412*5113495bSYour Name 			4, \
1413*5113495bSYour Name 			CFG_VALUE_OR_DEFAULT, \
1414*5113495bSYour Name 			"6ghz scan mode duty cycle")
1415*5113495bSYour Name 
1416*5113495bSYour Name /*
1417*5113495bSYour Name  * <ini>
1418*5113495bSYour Name  * scan_allow_bss_with_corrupted_ie - Continue scan even if corrupted IEs are
1419*5113495bSYour Name  * present.
1420*5113495bSYour Name  * @Min: 0
1421*5113495bSYour Name  * @Max: 1
1422*5113495bSYour Name  * @Default: 0
1423*5113495bSYour Name  *
1424*5113495bSYour Name  * This ini is used to continue scan even if corrupted IEs are present. If this
1425*5113495bSYour Name  * ini is enable, the scan module skips the IEs following corrupted IEs(IE's
1426*5113495bSYour Name  * with invalid len) and adds the scan entry without completely dropping the
1427*5113495bSYour Name  * frame.
1428*5113495bSYour Name  *
1429*5113495bSYour Name  * Related: scan
1430*5113495bSYour Name  *
1431*5113495bSYour Name  * Usage: External
1432*5113495bSYour Name  *
1433*5113495bSYour Name  * <ini>
1434*5113495bSYour Name  */
1435*5113495bSYour Name #define CFG_SCAN_ALLOW_BSS_WITH_CORRUPTED_IE CFG_INI_BOOL( \
1436*5113495bSYour Name 			"scan_allow_bss_with_corrupted_ie", \
1437*5113495bSYour Name 			false, \
1438*5113495bSYour Name 			"scan allow bss with corrupted ie")
1439*5113495bSYour Name 
1440*5113495bSYour Name /*
1441*5113495bSYour Name  * <ini>
1442*5113495bSYour Name  * skip_6g_and_indoor_freq_scan - Skip scan on 6Ghz and indoor channel
1443*5113495bSYour Name  * @Min: 0
1444*5113495bSYour Name  * @Max: 1
1445*5113495bSYour Name  * @Default: 0
1446*5113495bSYour Name  *
1447*5113495bSYour Name  * This ini is used to skip 6Ghz and 5Gh indoor freq for STA scan if hw is
1448*5113495bSYour Name  * non-DBS and SAP is present
1449*5113495bSYour Name  *
1450*5113495bSYour Name  * Related: scan
1451*5113495bSYour Name  *
1452*5113495bSYour Name  * Usage: External
1453*5113495bSYour Name  *
1454*5113495bSYour Name  * <ini>
1455*5113495bSYour Name  */
1456*5113495bSYour Name #define CFG_SKIP_6GHZ_AND_INDOOR_FREQ_SCAN CFG_INI_BOOL( \
1457*5113495bSYour Name 			"skip_6g_and_indoor_freq_scan", \
1458*5113495bSYour Name 			false, \
1459*5113495bSYour Name 			"skip sta scan on 6Ghz and 5Ghz indoor channel")
1460*5113495bSYour Name /*
1461*5113495bSYour Name  * <ini>
1462*5113495bSYour Name  * last_scan_ageout_time - To use cached scan results for provided time
1463*5113495bSYour Name  * duration.
1464*5113495bSYour Name  * @Min: 0
1465*5113495bSYour Name  * @Max: 30000 ms
1466*5113495bSYour Name  * @Default: 0
1467*5113495bSYour Name  *
1468*5113495bSYour Name  * This is used to use last cached scan results for provided time.
1469*5113495bSYour Name  * Instead of issuing new scan, cached scan results can be used to
1470*5113495bSYour Name  * select best SAP channel if channels are scanned with in the provided
1471*5113495bSYour Name  * value.
1472*5113495bSYour Name  *
1473*5113495bSYour Name  * Related: None.
1474*5113495bSYour Name  *
1475*5113495bSYour Name  * Supported Feature: ACS scan optimization
1476*5113495bSYour Name  *
1477*5113495bSYour Name  * Usage: Internal
1478*5113495bSYour Name  *
1479*5113495bSYour Name  * </ini>
1480*5113495bSYour Name  */
1481*5113495bSYour Name #define CFG_LAST_SCAN_AGEOUT_TIME CFG_INI_UINT( \
1482*5113495bSYour Name 			"last_scan_ageout_time", \
1483*5113495bSYour Name 			0, \
1484*5113495bSYour Name 			30000, \
1485*5113495bSYour Name 			30000, \
1486*5113495bSYour Name 			CFG_VALUE_OR_DEFAULT, \
1487*5113495bSYour Name 			"last scan ageout time")
1488*5113495bSYour Name #define CFG_SCAN_ALL \
1489*5113495bSYour Name 	CFG(CFG_DROP_BCN_ON_CHANNEL_MISMATCH) \
1490*5113495bSYour Name 	CFG(CFG_DROP_BCN_ON_INVALID_FREQ) \
1491*5113495bSYour Name 	CFG(CFG_ENABLE_WAKE_LOCK_IN_SCAN) \
1492*5113495bSYour Name 	CFG(CFG_ACTIVE_MAX_CHANNEL_TIME) \
1493*5113495bSYour Name 	CFG(CFG_ENABLE_DFS_SCAN) \
1494*5113495bSYour Name 	CFG(CFG_ENABLE_CONNECTED_SCAN) \
1495*5113495bSYour Name 	CFG(CFG_INITIAL_NO_DFS_SCAN) \
1496*5113495bSYour Name 	CFG(CFG_ACTIVE_MAX_2G_CHANNEL_TIME) \
1497*5113495bSYour Name 	CFG(CFG_PASSIVE_MAX_CHANNEL_TIME) \
1498*5113495bSYour Name 	CFG(CFG_MIN_6G_CHANNEL_TIME) \
1499*5113495bSYour Name 	CFG(CFG_ACTIVE_MAX_6G_CHANNEL_TIME) \
1500*5113495bSYour Name 	CFG(CFG_PASSIVE_MAX_6G_CHANNEL_TIME) \
1501*5113495bSYour Name 	CFG(CFG_ACTIVE_MAX_6G_CHANNEL_TIME_CONC) \
1502*5113495bSYour Name 	CFG(CFG_PASSIVE_MAX_6G_CHANNEL_TIME_CONC) \
1503*5113495bSYour Name 	CFG(CFG_SCAN_NUM_PROBES) \
1504*5113495bSYour Name 	CFG(CFG_SCAN_PROBE_REPEAT_TIME) \
1505*5113495bSYour Name 	CFG(CFG_ADAPTIVE_SCAN_DWELL_MODE) \
1506*5113495bSYour Name 	CFG(CFG_ADAPTIVE_SCAN_DWELL_MODE_NC) \
1507*5113495bSYour Name 	CFG(CFG_HONOUR_NL_SCAN_POLICY_FLAGS) \
1508*5113495bSYour Name 	CFG(CFG_PASSIVE_MAX_CHANNEL_TIME_CONC) \
1509*5113495bSYour Name 	CFG(CFG_ACTIVE_MAX_CHANNEL_TIME_CONC) \
1510*5113495bSYour Name 	CFG(CFG_MAX_REST_TIME_CONC) \
1511*5113495bSYour Name 	CFG(CFG_MIN_REST_TIME_CONC) \
1512*5113495bSYour Name 	CFG(CFG_IDLE_TIME_CONC) \
1513*5113495bSYour Name 	CFG(CFG_CHAN_LIST_TRIM_CONC) \
1514*5113495bSYour Name 	CFG(CFG_ENABLE_MAC_ADDR_SPOOFING) \
1515*5113495bSYour Name 	CFG(CFG_SCAN_AGING_TIME) \
1516*5113495bSYour Name 	CFG(CFG_ADAPTIVE_EXTSCAN_DWELL_MODE) \
1517*5113495bSYour Name 	CFG(CFG_STA_SCAN_BURST_DURATION) \
1518*5113495bSYour Name 	CFG(CFG_P2P_SCAN_BURST_DURATION) \
1519*5113495bSYour Name 	CFG(CFG_GO_SCAN_BURST_DURATION) \
1520*5113495bSYour Name 	CFG(CFG_ENABLE_SNR_MONITORING) \
1521*5113495bSYour Name 	CFG(CFG_AP_SCAN_BURST_DURATION) \
1522*5113495bSYour Name 	CFG(CFG_ENABLE_SKIP_DFS_IN_P2P_SEARCH) \
1523*5113495bSYour Name 	CFG(CFG_6GHZ_SCAN_MODE) \
1524*5113495bSYour Name 	CFG(CFG_6GHZ_SCAN_MODE_DUTY_CYCLE) \
1525*5113495bSYour Name 	CFG(CFG_SCAN_ALLOW_BSS_WITH_CORRUPTED_IE) \
1526*5113495bSYour Name 	CFG(CFG_SKIP_6GHZ_AND_INDOOR_FREQ_SCAN) \
1527*5113495bSYour Name 	CFG_SCAN_PNO \
1528*5113495bSYour Name 	CFG(CFG_LAST_SCAN_AGEOUT_TIME)
1529*5113495bSYour Name #endif /* __CONFIG_SCAN_H */
1530