xref: /wlan-driver/qca-wifi-host-cmn/umac/scan/dispatcher/inc/wlan_scan_ucfg_api.h (revision 5113495b16420b49004c444715d2daae2066e7dc)
1*5113495bSYour Name /*
2*5113495bSYour Name  * Copyright (c) 2017-2021 The Linux Foundation. All rights reserved.
3*5113495bSYour Name  * Copyright (c) 2022-2024 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: contains scan north bound interface api
22*5113495bSYour Name  */
23*5113495bSYour Name 
24*5113495bSYour Name #ifndef _WLAN_SCAN_UCFG_API_H_
25*5113495bSYour Name #define _WLAN_SCAN_UCFG_API_H_
26*5113495bSYour Name 
27*5113495bSYour Name #include <scheduler_api.h>
28*5113495bSYour Name #include <wlan_objmgr_psoc_obj.h>
29*5113495bSYour Name #include <wlan_objmgr_pdev_obj.h>
30*5113495bSYour Name #include <wlan_objmgr_vdev_obj.h>
31*5113495bSYour Name #include <wlan_scan_public_structs.h>
32*5113495bSYour Name #include "wlan_scan_api.h"
33*5113495bSYour Name 
34*5113495bSYour Name /**
35*5113495bSYour Name  * ucfg_scan_register_requester() - Public ucfg API, assigns requester ID
36*5113495bSYour Name  * to caller and registers scan event call back handler
37*5113495bSYour Name  * @psoc:       psoc object
38*5113495bSYour Name  * @module_name:name of requester module
39*5113495bSYour Name  * @event_cb:   event callback function pointer
40*5113495bSYour Name  * @arg:        argument to @event_cb
41*5113495bSYour Name  *
42*5113495bSYour Name  * API, allows other components to allocate requester id.
43*5113495bSYour Name  * Normally used by modules at init time to register their callback
44*5113495bSYour Name  * and get one requester id. @event_cb will be invoked for
45*5113495bSYour Name  * all scan events whose requester id matches with @requester.
46*5113495bSYour Name  *
47*5113495bSYour Name  * Return: assigned non zero requester id for success
48*5113495bSYour Name  *         zero (0) for failure
49*5113495bSYour Name  */
50*5113495bSYour Name static inline wlan_scan_requester
ucfg_scan_register_requester(struct wlan_objmgr_psoc * psoc,uint8_t * module_name,scan_event_handler event_cb,void * arg)51*5113495bSYour Name ucfg_scan_register_requester(struct wlan_objmgr_psoc *psoc,
52*5113495bSYour Name 	uint8_t *module_name, scan_event_handler event_cb, void *arg)
53*5113495bSYour Name {
54*5113495bSYour Name 	return wlan_scan_register_requester(psoc, module_name, event_cb, arg);
55*5113495bSYour Name }
56*5113495bSYour Name 
57*5113495bSYour Name /**
58*5113495bSYour Name  * ucfg_scan_unregister_requester() -Public ucfg API, reclaims previously
59*5113495bSYour Name  * allocated requester ID
60*5113495bSYour Name  * @psoc:       psoc object
61*5113495bSYour Name  * @requester:  requester ID to reclaim.
62*5113495bSYour Name  *
63*5113495bSYour Name  * API, reclaims previously allocated requester id.
64*5113495bSYour Name  *
65*5113495bSYour Name  * Return: void
66*5113495bSYour Name  */
67*5113495bSYour Name static inline
ucfg_scan_unregister_requester(struct wlan_objmgr_psoc * psoc,wlan_scan_requester requester)68*5113495bSYour Name void ucfg_scan_unregister_requester(struct wlan_objmgr_psoc *psoc,
69*5113495bSYour Name 	wlan_scan_requester requester)
70*5113495bSYour Name {
71*5113495bSYour Name 	return wlan_scan_unregister_requester(psoc, requester);
72*5113495bSYour Name }
73*5113495bSYour Name 
74*5113495bSYour Name /**
75*5113495bSYour Name  * ucfg_get_scan_requester_name()- returns module name of requester ID owner
76*5113495bSYour Name  * @psoc:       psoc object
77*5113495bSYour Name  * @requester:  requester ID
78*5113495bSYour Name  *
79*5113495bSYour Name  * API, returns module name of requester id owner
80*5113495bSYour Name  *
81*5113495bSYour Name  * Return: pointer to module name or "unknown" if requester id not found.
82*5113495bSYour Name  */
83*5113495bSYour Name uint8_t *ucfg_get_scan_requester_name(struct wlan_objmgr_psoc *psoc,
84*5113495bSYour Name 	wlan_scan_requester requester);
85*5113495bSYour Name 
86*5113495bSYour Name /**
87*5113495bSYour Name  * ucfg_scan_get_scan_id() - Public ucfg API to allocate scan ID
88*5113495bSYour Name  * @psoc: psoc object
89*5113495bSYour Name  *
90*5113495bSYour Name  * Public ucfg API, allocates a new scan id for caller
91*5113495bSYour Name  *
92*5113495bSYour Name  * Return: newly allocated scan ID
93*5113495bSYour Name  */
94*5113495bSYour Name static inline
ucfg_scan_get_scan_id(struct wlan_objmgr_psoc * psoc)95*5113495bSYour Name wlan_scan_id ucfg_scan_get_scan_id(struct wlan_objmgr_psoc *psoc)
96*5113495bSYour Name {
97*5113495bSYour Name 	return wlan_scan_get_scan_id(psoc);
98*5113495bSYour Name }
99*5113495bSYour Name 
100*5113495bSYour Name /**
101*5113495bSYour Name  * ucfg_scan_get_entry_frame_len() - API to get scan entry frame length
102*5113495bSYour Name  * @scan_entry: Scan entry
103*5113495bSYour Name  *
104*5113495bSYour Name  * Return: scan entry frame length
105*5113495bSYour Name  */
106*5113495bSYour Name uint32_t ucfg_scan_get_entry_frame_len(struct scan_cache_entry *scan_entry);
107*5113495bSYour Name 
108*5113495bSYour Name #ifdef FEATURE_WLAN_SCAN_PNO
109*5113495bSYour Name /**
110*5113495bSYour Name  * ucfg_scan_pno_start() - Public API to start PNO
111*5113495bSYour Name  * @vdev: vdev pointer
112*5113495bSYour Name  * @req: pno req params
113*5113495bSYour Name  *
114*5113495bSYour Name  * Return: 0 for success or error code.
115*5113495bSYour Name  */
116*5113495bSYour Name QDF_STATUS ucfg_scan_pno_start(struct wlan_objmgr_vdev *vdev,
117*5113495bSYour Name 			       struct pno_scan_req_params *req);
118*5113495bSYour Name 
119*5113495bSYour Name /**
120*5113495bSYour Name  * ucfg_scan_add_flags_to_pno_chan_list() - This API to update flags for all 6g
121*5113495bSYour Name  * channels in pno scan request
122*5113495bSYour Name  * @vdev: vdev pointer
123*5113495bSYour Name  * @req: pno req params
124*5113495bSYour Name  * @num_chan: number of channels
125*5113495bSYour Name  * @short_ssid: short ssid
126*5113495bSYour Name  * @list_idx: index of network_list in pno request
127*5113495bSYour Name  *
128*5113495bSYour Name  * Return: None
129*5113495bSYour Name  */
130*5113495bSYour Name void ucfg_scan_add_flags_to_pno_chan_list(struct wlan_objmgr_vdev *vdev,
131*5113495bSYour Name 					  struct pno_scan_req_params *req,
132*5113495bSYour Name 					  uint8_t *num_chan,
133*5113495bSYour Name 					  uint32_t short_ssid,
134*5113495bSYour Name 					  int list_idx);
135*5113495bSYour Name 
136*5113495bSYour Name /**
137*5113495bSYour Name  * ucfg_is_6ghz_pno_scan_optimization_supported() - Public API to check
138*5113495bSYour Name  * 6 GHz pno scan optimization supported in fw
139*5113495bSYour Name  * @psoc: psoc object
140*5113495bSYour Name  *
141*5113495bSYour Name  * Return: 0 for success.
142*5113495bSYour Name  */
143*5113495bSYour Name bool
144*5113495bSYour Name ucfg_is_6ghz_pno_scan_optimization_supported(struct wlan_objmgr_psoc *psoc);
145*5113495bSYour Name 
146*5113495bSYour Name /**
147*5113495bSYour Name  * ucfg_scan_pno_stop() - Public API to stop PNO
148*5113495bSYour Name  * @vdev: vdev pointer
149*5113495bSYour Name  *
150*5113495bSYour Name  * Return: 0 for success or error code.
151*5113495bSYour Name  */
152*5113495bSYour Name QDF_STATUS ucfg_scan_pno_stop(struct wlan_objmgr_vdev *vdev);
153*5113495bSYour Name 
154*5113495bSYour Name /**
155*5113495bSYour Name  * ucfg_scan_get_pno_in_progress() - Public API to check if pno is in progress
156*5113495bSYour Name  * @vdev: vdev pointer
157*5113495bSYour Name  *
158*5113495bSYour Name  * Return: true if pno in progress else false.
159*5113495bSYour Name  */
160*5113495bSYour Name bool ucfg_scan_get_pno_in_progress(struct wlan_objmgr_vdev *vdev);
161*5113495bSYour Name 
162*5113495bSYour Name /**
163*5113495bSYour Name  * ucfg_scan_get_pno_match() - Public API to check if pno matched
164*5113495bSYour Name  * @vdev: vdev pointer
165*5113495bSYour Name  *
166*5113495bSYour Name  * Return: true if pno matched else false.
167*5113495bSYour Name  */
168*5113495bSYour Name bool ucfg_scan_get_pno_match(struct wlan_objmgr_vdev *vdev);
169*5113495bSYour Name 
170*5113495bSYour Name /**
171*5113495bSYour Name  * ucfg_scan_register_pno_cb() - register pno cb
172*5113495bSYour Name  * @psoc: psoc object
173*5113495bSYour Name  * @event_cb: callback function pointer
174*5113495bSYour Name  * @arg: argument to @event_cb
175*5113495bSYour Name  *
176*5113495bSYour Name  * Return: QDF_STATUS
177*5113495bSYour Name  */
178*5113495bSYour Name QDF_STATUS
179*5113495bSYour Name ucfg_scan_register_pno_cb(struct wlan_objmgr_psoc *psoc,
180*5113495bSYour Name 	scan_event_handler event_cb, void *arg);
181*5113495bSYour Name 
182*5113495bSYour Name /**
183*5113495bSYour Name  * ucfg_scan_get_pno_def_params() - get the defaults pno params
184*5113495bSYour Name  * @vdev: vdev object
185*5113495bSYour Name  * @req: pno request object
186*5113495bSYour Name  *
187*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS or error code
188*5113495bSYour Name  */
189*5113495bSYour Name QDF_STATUS
190*5113495bSYour Name ucfg_scan_get_pno_def_params(struct wlan_objmgr_vdev *vdev,
191*5113495bSYour Name 	struct pno_scan_req_params *req);
192*5113495bSYour Name 
193*5113495bSYour Name #else
194*5113495bSYour Name 
195*5113495bSYour Name static inline bool
ucfg_scan_get_pno_in_progress(struct wlan_objmgr_vdev * vdev)196*5113495bSYour Name ucfg_scan_get_pno_in_progress(struct wlan_objmgr_vdev *vdev)
197*5113495bSYour Name {
198*5113495bSYour Name 	return false;
199*5113495bSYour Name }
200*5113495bSYour Name 
201*5113495bSYour Name static inline bool
ucfg_scan_get_pno_match(struct wlan_objmgr_vdev * vdev)202*5113495bSYour Name ucfg_scan_get_pno_match(struct wlan_objmgr_vdev *vdev)
203*5113495bSYour Name {
204*5113495bSYour Name 	return false;
205*5113495bSYour Name }
206*5113495bSYour Name #endif /* FEATURE_WLAN_SCAN_PNO */
207*5113495bSYour Name /**
208*5113495bSYour Name  * ucfg_scm_scan_free_scan_request_mem() - Free scan request memory
209*5113495bSYour Name  * @req: scan_start_request object
210*5113495bSYour Name  *
211*5113495bSYour Name  * Return: QDF_STATUS
212*5113495bSYour Name  */
213*5113495bSYour Name QDF_STATUS ucfg_scm_scan_free_scan_request_mem(struct scan_start_request *req);
214*5113495bSYour Name 
215*5113495bSYour Name /**
216*5113495bSYour Name  * ucfg_scan_start() - ucfg Public API to start a scan
217*5113495bSYour Name  * @req: start scan req params
218*5113495bSYour Name  *
219*5113495bSYour Name  * The ucfg public API to start a scan. Post a msg to target_if queue
220*5113495bSYour Name  *
221*5113495bSYour Name  * Return: QDF_STATUS
222*5113495bSYour Name  */
ucfg_scan_start(struct scan_start_request * req)223*5113495bSYour Name static inline QDF_STATUS ucfg_scan_start(struct scan_start_request *req)
224*5113495bSYour Name {
225*5113495bSYour Name 	return wlan_scan_start(req);
226*5113495bSYour Name }
227*5113495bSYour Name 
228*5113495bSYour Name /**
229*5113495bSYour Name  * ucfg_scan_psoc_set_enable() - Public API to enable scans for psoc
230*5113495bSYour Name  * @psoc: psoc on which scans need to be disabled
231*5113495bSYour Name  * @reason: reason for enable/disabled
232*5113495bSYour Name  *
233*5113495bSYour Name  * Return: QDF_STATUS.
234*5113495bSYour Name  */
235*5113495bSYour Name QDF_STATUS ucfg_scan_psoc_set_enable(struct wlan_objmgr_psoc *psoc,
236*5113495bSYour Name 				     enum scan_disable_reason reason);
237*5113495bSYour Name 
238*5113495bSYour Name /**
239*5113495bSYour Name  * ucfg_scan_psoc_set_disable() - Public API to disable scans for psoc
240*5113495bSYour Name  * @psoc: psoc on which scans need to be disabled
241*5113495bSYour Name  * @reason: reason for enable/disabled
242*5113495bSYour Name  *
243*5113495bSYour Name  * Return: QDF_STATUS.
244*5113495bSYour Name  */
245*5113495bSYour Name QDF_STATUS ucfg_scan_psoc_set_disable(struct wlan_objmgr_psoc *psoc,
246*5113495bSYour Name 				      enum scan_disable_reason reason);
247*5113495bSYour Name 
248*5113495bSYour Name /**
249*5113495bSYour Name  * ucfg_scan_vdev_set_enable() - Public API to enable scans for vdev
250*5113495bSYour Name  * @vdev: vdev on which scans need to be disabled
251*5113495bSYour Name  * @reason: reason for enable/disabled
252*5113495bSYour Name  *
253*5113495bSYour Name  * Return: QDF_STATUS.
254*5113495bSYour Name  */
255*5113495bSYour Name QDF_STATUS ucfg_scan_vdev_set_enable(struct wlan_objmgr_vdev *vdev,
256*5113495bSYour Name 				     enum scan_disable_reason reason);
257*5113495bSYour Name 
258*5113495bSYour Name /**
259*5113495bSYour Name  * ucfg_scan_vdev_set_disable() - Public API to disable scans for vdev
260*5113495bSYour Name  * @vdev: vdev on which scans need to be disabled
261*5113495bSYour Name  * @reason: reason for enable/disabled
262*5113495bSYour Name  *
263*5113495bSYour Name  * Return: QDF_STATUS.
264*5113495bSYour Name  */
265*5113495bSYour Name QDF_STATUS ucfg_scan_vdev_set_disable(struct wlan_objmgr_vdev *vdev,
266*5113495bSYour Name 				      enum scan_disable_reason reason);
267*5113495bSYour Name 
268*5113495bSYour Name /**
269*5113495bSYour Name  * ucfg_scan_set_miracast() - Public API to disable/enable miracast flag
270*5113495bSYour Name  * @psoc: psoc pointer
271*5113495bSYour Name  * @enable: enable miracast if true disable is false
272*5113495bSYour Name  *
273*5113495bSYour Name  * Return: QDF_STATUS.
274*5113495bSYour Name  */
275*5113495bSYour Name QDF_STATUS ucfg_scan_set_miracast(
276*5113495bSYour Name 		struct wlan_objmgr_psoc *psoc, bool enable);
277*5113495bSYour Name 
278*5113495bSYour Name /**
279*5113495bSYour Name  * ucfg_scan_set_global_config() - Public API to set global scan config
280*5113495bSYour Name  * @psoc: psoc context
281*5113495bSYour Name  * @config: config to set
282*5113495bSYour Name  * @val: new config value
283*5113495bSYour Name  *
284*5113495bSYour Name  * Return: QDF_STATUS.
285*5113495bSYour Name  */
286*5113495bSYour Name QDF_STATUS
287*5113495bSYour Name ucfg_scan_set_global_config(struct wlan_objmgr_psoc *psoc,
288*5113495bSYour Name 		enum scan_config config, uint32_t val);
289*5113495bSYour Name 
290*5113495bSYour Name /**
291*5113495bSYour Name  * ucfg_scan_get_global_config() - Public API to get global scan config
292*5113495bSYour Name  * @psoc: psoc context
293*5113495bSYour Name  * @config: config to set
294*5113495bSYour Name  * @val: uint32* to hold returned config value
295*5113495bSYour Name  *
296*5113495bSYour Name  * Return: QDF_STATUS.
297*5113495bSYour Name  */
298*5113495bSYour Name QDF_STATUS
299*5113495bSYour Name ucfg_scan_get_global_config(struct wlan_objmgr_psoc *psoc,
300*5113495bSYour Name 		enum scan_config config, uint32_t *val);
301*5113495bSYour Name 
302*5113495bSYour Name /**
303*5113495bSYour Name  * ucfg_scan_set_obss_scan_offload() - Public API to set obss scan flag
304*5113495bSYour Name  * @psoc: psoc context
305*5113495bSYour Name  * @value: the value to be set
306*5113495bSYour Name  *
307*5113495bSYour Name  * Return: void.
308*5113495bSYour Name  */
309*5113495bSYour Name void ucfg_scan_set_obss_scan_offload(struct wlan_objmgr_psoc *psoc, bool value);
310*5113495bSYour Name 
311*5113495bSYour Name /**
312*5113495bSYour Name  * ucfg_scan_set_wide_band_scan() - Public API to disable/enable wide band scan
313*5113495bSYour Name  * @pdev: psoc on which scans need to be disabled
314*5113495bSYour Name  * @enable: enable wide band scan if @enable is true, disable otherwise
315*5113495bSYour Name  *
316*5113495bSYour Name  * Return: QDF_STATUS.
317*5113495bSYour Name  */
318*5113495bSYour Name QDF_STATUS ucfg_scan_set_wide_band_scan(
319*5113495bSYour Name 		struct wlan_objmgr_pdev *pdev, bool enable);
320*5113495bSYour Name 
321*5113495bSYour Name /**
322*5113495bSYour Name  * ucfg_scan_get_wide_band_scan() - Public API to check if
323*5113495bSYour Name  * wide band scan is enabled or disabled
324*5113495bSYour Name  * @pdev: psoc on which scans status need to be checked
325*5113495bSYour Name  *
326*5113495bSYour Name  * Return: true if enabled else false.
327*5113495bSYour Name  */
328*5113495bSYour Name bool ucfg_scan_get_wide_band_scan(struct wlan_objmgr_pdev *pdev);
329*5113495bSYour Name 
330*5113495bSYour Name /**
331*5113495bSYour Name  * ucfg_scan_set_custom_scan_chan_list() - Public API to restrict scan
332*5113495bSYour Name  * to few pre configured channels
333*5113495bSYour Name  * @pdev: psoc on which scans need to be disabled
334*5113495bSYour Name  * @chan_list: list of channels to scan if set
335*5113495bSYour Name  *
336*5113495bSYour Name  * Return: QDF_STATUS.
337*5113495bSYour Name  */
338*5113495bSYour Name QDF_STATUS ucfg_scan_set_custom_scan_chan_list(
339*5113495bSYour Name 		struct wlan_objmgr_pdev *pdev, struct chan_list *chan_list);
340*5113495bSYour Name 
341*5113495bSYour Name /**
342*5113495bSYour Name  * ucfg_scan_config_hidden_ssid_for_bssid() - API to configure
343*5113495bSYour Name  * ssid, bssid of hidden beacon
344*5113495bSYour Name  * @pdev: psoc on which ssid bssid need to configure
345*5113495bSYour Name  * @bssid: bssid of the hidden AP
346*5113495bSYour Name  * @ssid: desired ssid
347*5113495bSYour Name  *
348*5113495bSYour Name  * Return: QDF_STATUS.
349*5113495bSYour Name  */
350*5113495bSYour Name #ifdef WLAN_DFS_CHAN_HIDDEN_SSID
351*5113495bSYour Name QDF_STATUS
352*5113495bSYour Name ucfg_scan_config_hidden_ssid_for_bssid(struct wlan_objmgr_pdev *pdev,
353*5113495bSYour Name 				       uint8_t *bssid,
354*5113495bSYour Name 				       struct wlan_ssid *ssid);
355*5113495bSYour Name #else
356*5113495bSYour Name static inline QDF_STATUS
ucfg_scan_config_hidden_ssid_for_bssid(struct wlan_objmgr_pdev * pdev,uint8_t * bssid,struct wlan_ssid * ssid)357*5113495bSYour Name ucfg_scan_config_hidden_ssid_for_bssid(struct wlan_objmgr_pdev *pdev,
358*5113495bSYour Name 				       uint8_t *bssid,
359*5113495bSYour Name 				       struct wlan_ssid *ssid)
360*5113495bSYour Name {
361*5113495bSYour Name 	return QDF_STATUS_SUCCESS;
362*5113495bSYour Name }
363*5113495bSYour Name #endif /* WLAN_DFS_CHAN_HIDDEN_SSID */
364*5113495bSYour Name 
365*5113495bSYour Name /**
366*5113495bSYour Name  * ucfg_scan_cancel() - ucfg Public API to cancel the scan
367*5113495bSYour Name  * @req: stop scan request params
368*5113495bSYour Name  *
369*5113495bSYour Name  * The ucfg public API to stop a scan. Post a msg to target_if queue
370*5113495bSYour Name  *
371*5113495bSYour Name  * Return: QDF_STATUS.
372*5113495bSYour Name  */
ucfg_scan_cancel(struct scan_cancel_request * req)373*5113495bSYour Name static inline QDF_STATUS ucfg_scan_cancel(struct scan_cancel_request *req)
374*5113495bSYour Name {
375*5113495bSYour Name 	return wlan_scan_cancel(req);
376*5113495bSYour Name }
377*5113495bSYour Name 
378*5113495bSYour Name /**
379*5113495bSYour Name  * ucfg_scan_cancel_sync() - Public API to stop a scan and wait
380*5113495bSYour Name  * till all scan are completed
381*5113495bSYour Name  * @req: stop scan request params
382*5113495bSYour Name  *
383*5113495bSYour Name  * The Public API to stop a scan and wait
384*5113495bSYour Name  * till all scan are completed
385*5113495bSYour Name  *
386*5113495bSYour Name  * Return: 0 for success or error code.
387*5113495bSYour Name  */
388*5113495bSYour Name QDF_STATUS
389*5113495bSYour Name ucfg_scan_cancel_sync(struct scan_cancel_request *req);
390*5113495bSYour Name 
391*5113495bSYour Name /**
392*5113495bSYour Name  * ucfg_scan_get_result() - The Public API to get scan results
393*5113495bSYour Name  * @pdev: pdev info
394*5113495bSYour Name  * @filter: Filters
395*5113495bSYour Name  *
396*5113495bSYour Name  * This function fetches scan result
397*5113495bSYour Name  *
398*5113495bSYour Name  * Return: scan list pointer
399*5113495bSYour Name  */
400*5113495bSYour Name qdf_list_t *ucfg_scan_get_result(struct wlan_objmgr_pdev *pdev,
401*5113495bSYour Name 	struct scan_filter *filter);
402*5113495bSYour Name 
403*5113495bSYour Name /**
404*5113495bSYour Name  * ucfg_scan_purge_results() - purge the scan list
405*5113495bSYour Name  * @scan_list: scan list to be purged
406*5113495bSYour Name  *
407*5113495bSYour Name  * This function purge the temp scan list
408*5113495bSYour Name  *
409*5113495bSYour Name  * Return: QDF_STATUS
410*5113495bSYour Name  */
411*5113495bSYour Name QDF_STATUS ucfg_scan_purge_results(qdf_list_t *scan_list);
412*5113495bSYour Name 
413*5113495bSYour Name /**
414*5113495bSYour Name  * ucfg_scan_flush_results() - The Public API to flush scan result
415*5113495bSYour Name  * @pdev: pdev object
416*5113495bSYour Name  * @filter: filter to flush the scan entries
417*5113495bSYour Name  *
418*5113495bSYour Name  * The Public API to flush scan result.
419*5113495bSYour Name  *
420*5113495bSYour Name  * Return: 0 for success or error code.
421*5113495bSYour Name  */
422*5113495bSYour Name QDF_STATUS ucfg_scan_flush_results(struct wlan_objmgr_pdev *pdev,
423*5113495bSYour Name 	struct scan_filter *filter);
424*5113495bSYour Name 
425*5113495bSYour Name /**
426*5113495bSYour Name  * ucfg_scan_filter_valid_channel() - The Public API to filter scan result
427*5113495bSYour Name  * based on valid channel list
428*5113495bSYour Name  * @pdev: pdev object
429*5113495bSYour Name  * @chan_freq_list: valid channel frequency (in MHz) list
430*5113495bSYour Name  * @num_chan: number of valid channels
431*5113495bSYour Name  *
432*5113495bSYour Name  * The Public API to to filter scan result
433*5113495bSYour Name  * based on valid channel list.
434*5113495bSYour Name  *
435*5113495bSYour Name  * Return: void.
436*5113495bSYour Name  */
437*5113495bSYour Name void ucfg_scan_filter_valid_channel(struct wlan_objmgr_pdev *pdev,
438*5113495bSYour Name 	uint32_t *chan_freq_list, uint32_t num_chan);
439*5113495bSYour Name 
440*5113495bSYour Name /**
441*5113495bSYour Name  * ucfg_scan_db_iterate() - function to iterate scan table
442*5113495bSYour Name  * @pdev: pdev object
443*5113495bSYour Name  * @func: iterator function pointer
444*5113495bSYour Name  * @arg: argument to be passed to func()
445*5113495bSYour Name  *
446*5113495bSYour Name  * API, this API iterates scan table and invokes func
447*5113495bSYour Name  * on each scan enetry by passing scan entry and arg.
448*5113495bSYour Name  *
449*5113495bSYour Name  * Return: QDF_STATUS
450*5113495bSYour Name  */
451*5113495bSYour Name QDF_STATUS
452*5113495bSYour Name ucfg_scan_db_iterate(struct wlan_objmgr_pdev *pdev,
453*5113495bSYour Name 	scan_iterator_func func, void *arg);
454*5113495bSYour Name 
455*5113495bSYour Name /**
456*5113495bSYour Name  * ucfg_scan_register_event_handler() - The Public API to register
457*5113495bSYour Name  * an event cb handler
458*5113495bSYour Name  * @pdev: pdev object
459*5113495bSYour Name  * @event_cb: callback function to register
460*5113495bSYour Name  * @arg: component specific priv argument to @event_cb callback function
461*5113495bSYour Name  *
462*5113495bSYour Name  * The Public API to register a event cb handler. This cb is called whenever
463*5113495bSYour Name  * any scan event is received on @pdev.
464*5113495bSYour Name  *
465*5113495bSYour Name  * Return: 0 for success or error code.
466*5113495bSYour Name  */
467*5113495bSYour Name 
468*5113495bSYour Name QDF_STATUS
469*5113495bSYour Name ucfg_scan_register_event_handler(struct wlan_objmgr_pdev *pdev,
470*5113495bSYour Name 	scan_event_handler event_cb, void *arg);
471*5113495bSYour Name 
472*5113495bSYour Name /**
473*5113495bSYour Name  * ucfg_scan_unregister_event_handler() - Public API to unregister
474*5113495bSYour Name  * event cb handler
475*5113495bSYour Name  * @pdev: pdev object
476*5113495bSYour Name  * @event_cb: callback function to unregister
477*5113495bSYour Name  * @arg: component specific priv argument to @event_cb callback function
478*5113495bSYour Name  *
479*5113495bSYour Name  * Unregister a event cb handler. cb and arg will be used to
480*5113495bSYour Name  * find the callback.
481*5113495bSYour Name  *
482*5113495bSYour Name  * Return: void
483*5113495bSYour Name  */
484*5113495bSYour Name 
485*5113495bSYour Name void
486*5113495bSYour Name ucfg_scan_unregister_event_handler(struct wlan_objmgr_pdev *pdev,
487*5113495bSYour Name 	scan_event_handler event_cb, void *arg);
488*5113495bSYour Name 
489*5113495bSYour Name /**
490*5113495bSYour Name  * ucfg_scan_init_default_params() - Public ucfg API to initialize scan params
491*5113495bSYour Name  * @vdev: vdev object
492*5113495bSYour Name  * @req: scan request object
493*5113495bSYour Name  *
494*5113495bSYour Name  * Public ucfg API to initialize scan start request with defaults scan params
495*5113495bSYour Name  *
496*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS or error code
497*5113495bSYour Name  */
498*5113495bSYour Name static inline QDF_STATUS
ucfg_scan_init_default_params(struct wlan_objmgr_vdev * vdev,struct scan_start_request * req)499*5113495bSYour Name ucfg_scan_init_default_params(struct wlan_objmgr_vdev *vdev,
500*5113495bSYour Name 	struct scan_start_request *req)
501*5113495bSYour Name {
502*5113495bSYour Name 	return wlan_scan_init_default_params(vdev, req);
503*5113495bSYour Name }
504*5113495bSYour Name 
505*5113495bSYour Name /**
506*5113495bSYour Name  * ucfg_scan_init_ssid_params() - initialize scan request ssid list
507*5113495bSYour Name  *
508*5113495bSYour Name  * @scan_req: scan request object
509*5113495bSYour Name  * @num_ssid: number of ssid's in ssid list
510*5113495bSYour Name  * @ssid_list: ssid list
511*5113495bSYour Name  *
512*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS for success or error code
513*5113495bSYour Name  */
514*5113495bSYour Name QDF_STATUS
515*5113495bSYour Name ucfg_scan_init_ssid_params(struct scan_start_request *scan_req,
516*5113495bSYour Name 	uint32_t num_ssid, struct wlan_ssid *ssid_list);
517*5113495bSYour Name 
518*5113495bSYour Name /**
519*5113495bSYour Name  * ucfg_scan_init_bssid_params() - initialize scan request bssid list
520*5113495bSYour Name  * @scan_req: scan request object
521*5113495bSYour Name  * @num_ssid: number of bssid's in bssid list
522*5113495bSYour Name  * @bssid_list: bssid list
523*5113495bSYour Name  *
524*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS for success or error code
525*5113495bSYour Name  */
526*5113495bSYour Name QDF_STATUS
527*5113495bSYour Name ucfg_scan_init_bssid_params(struct scan_start_request *scan_req,
528*5113495bSYour Name 	uint32_t num_ssid, struct qdf_mac_addr *bssid_list);
529*5113495bSYour Name 
530*5113495bSYour Name /**
531*5113495bSYour Name  * ucfg_scan_init_chanlist_params() - initialize scan request channel list
532*5113495bSYour Name  * @scan_req: scan request object
533*5113495bSYour Name  * @num_chans: number of channels in channel list
534*5113495bSYour Name  * @chan_list: channel list
535*5113495bSYour Name  * @phymode: phymode in which scan shall be done
536*5113495bSYour Name  *
537*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS for success or error code
538*5113495bSYour Name  */
539*5113495bSYour Name QDF_STATUS
540*5113495bSYour Name ucfg_scan_init_chanlist_params(struct scan_start_request *scan_req,
541*5113495bSYour Name 	uint32_t num_chans, uint32_t *chan_list, uint32_t *phymode);
542*5113495bSYour Name 
543*5113495bSYour Name /**
544*5113495bSYour Name  * ucfg_scan_get_vdev_status() - API to check vdev scan status
545*5113495bSYour Name  * @vdev: vdev object
546*5113495bSYour Name  *
547*5113495bSYour Name  * Return: enum scm_scan_status
548*5113495bSYour Name  */
549*5113495bSYour Name enum scm_scan_status
550*5113495bSYour Name ucfg_scan_get_vdev_status(struct wlan_objmgr_vdev *vdev);
551*5113495bSYour Name 
552*5113495bSYour Name /**
553*5113495bSYour Name  * ucfg_scan_get_pdev_status() - API to check pdev scan status
554*5113495bSYour Name  * @pdev: pdev object
555*5113495bSYour Name  *
556*5113495bSYour Name  * Return: enum scm_scan_status
557*5113495bSYour Name  */
558*5113495bSYour Name enum scm_scan_status
559*5113495bSYour Name ucfg_scan_get_pdev_status(struct wlan_objmgr_pdev *pdev);
560*5113495bSYour Name 
561*5113495bSYour Name /**
562*5113495bSYour Name  * ucfg_scan_register_bcn_cb() - API to register api
563*5113495bSYour Name  * to inform/update bcn/probe as soon as they are received
564*5113495bSYour Name  * @psoc: psoc
565*5113495bSYour Name  * @cb: callback to be registered
566*5113495bSYour Name  * @type: Type of callback to be registered
567*5113495bSYour Name  *
568*5113495bSYour Name  * Return: enum scm_scan_status
569*5113495bSYour Name  */
570*5113495bSYour Name QDF_STATUS ucfg_scan_register_bcn_cb(struct wlan_objmgr_psoc *psoc,
571*5113495bSYour Name 	update_beacon_cb cb, enum scan_cb_type type);
572*5113495bSYour Name 
573*5113495bSYour Name /**
574*5113495bSYour Name  * ucfg_scan_update_user_config() - Update scan cache user config
575*5113495bSYour Name  * @psoc: psoc
576*5113495bSYour Name  * @scan_cfg: scan user config
577*5113495bSYour Name  *
578*5113495bSYour Name  * Return: QDF_STATUS
579*5113495bSYour Name  */
580*5113495bSYour Name QDF_STATUS ucfg_scan_update_user_config(struct wlan_objmgr_psoc *psoc,
581*5113495bSYour Name 	struct scan_user_cfg *scan_cfg);
582*5113495bSYour Name 
583*5113495bSYour Name /**
584*5113495bSYour Name  * ucfg_scan_init() - Scan module initialization API
585*5113495bSYour Name  *
586*5113495bSYour Name  * Return: QDF_STATUS
587*5113495bSYour Name  */
588*5113495bSYour Name QDF_STATUS ucfg_scan_init(void);
589*5113495bSYour Name 
590*5113495bSYour Name /**
591*5113495bSYour Name  * ucfg_scan_deinit() - Scan module deinitialization API
592*5113495bSYour Name  *
593*5113495bSYour Name  * Return: QDF_STATUS
594*5113495bSYour Name  */
595*5113495bSYour Name QDF_STATUS ucfg_scan_deinit(void);
596*5113495bSYour Name 
597*5113495bSYour Name /**
598*5113495bSYour Name  * ucfg_scan_psoc_enable() - Scan module enable API
599*5113495bSYour Name  * @psoc: psoc object
600*5113495bSYour Name  *
601*5113495bSYour Name  * Return: QDF_STATUS
602*5113495bSYour Name  */
603*5113495bSYour Name QDF_STATUS ucfg_scan_psoc_enable(struct wlan_objmgr_psoc *psoc);
604*5113495bSYour Name 
605*5113495bSYour Name /**
606*5113495bSYour Name  * ucfg_scan_psoc_disable() - Scan module disable API
607*5113495bSYour Name  * @psoc: psoc object
608*5113495bSYour Name  *
609*5113495bSYour Name  * Return: QDF_STATUS
610*5113495bSYour Name  */
611*5113495bSYour Name QDF_STATUS ucfg_scan_psoc_disable(struct wlan_objmgr_psoc *psoc);
612*5113495bSYour Name 
613*5113495bSYour Name /**
614*5113495bSYour Name  * ucfg_scan_psoc_open() - Scan module psoc open API
615*5113495bSYour Name  * @psoc: psoc object
616*5113495bSYour Name  *
617*5113495bSYour Name  * Return: QDF_STATUS
618*5113495bSYour Name  */
619*5113495bSYour Name QDF_STATUS ucfg_scan_psoc_open(struct wlan_objmgr_psoc *psoc);
620*5113495bSYour Name 
621*5113495bSYour Name /**
622*5113495bSYour Name  * ucfg_scan_psoc_close() - Scan module psoc close API
623*5113495bSYour Name  * @psoc: psoc object
624*5113495bSYour Name  *
625*5113495bSYour Name  * Return: QDF_STATUS
626*5113495bSYour Name  */
627*5113495bSYour Name QDF_STATUS ucfg_scan_psoc_close(struct wlan_objmgr_psoc *psoc);
628*5113495bSYour Name 
629*5113495bSYour Name /**
630*5113495bSYour Name  * ucfg_scan_get_max_active_scans() - API to get max active scans
631*5113495bSYour Name  * supported on this psoc
632*5113495bSYour Name  * @psoc: psoc object
633*5113495bSYour Name  *
634*5113495bSYour Name  * Return: uint32_t
635*5113495bSYour Name  */
636*5113495bSYour Name uint32_t ucfg_scan_get_max_active_scans(struct wlan_objmgr_psoc *psoc);
637*5113495bSYour Name 
638*5113495bSYour Name /**
639*5113495bSYour Name  * ucfg_ie_allowlist_enabled() - Checks for IE allowlisting enable
640*5113495bSYour Name  * @psoc: pointer to psoc object
641*5113495bSYour Name  * @vdev: pointer to vdev
642*5113495bSYour Name  *
643*5113495bSYour Name  * This function is used to check whether IE allowlisting is enabled or not
644*5113495bSYour Name  *
645*5113495bSYour Name  * Return: If enabled returns true else returns false
646*5113495bSYour Name  */
647*5113495bSYour Name bool ucfg_ie_allowlist_enabled(struct wlan_objmgr_psoc *psoc,
648*5113495bSYour Name 			       struct wlan_objmgr_vdev *vdev);
649*5113495bSYour Name 
650*5113495bSYour Name /**
651*5113495bSYour Name  * ucfg_copy_ie_allowlist_attrs() - Populate probe req IE allowlist attrs
652*5113495bSYour Name  * @psoc: pointer to psoc object
653*5113495bSYour Name  * @ie_allowlist: output parameter to hold ie allowlist attrs
654*5113495bSYour Name  *
655*5113495bSYour Name  * If IE allowlisting is enabled then invoke this function to copy
656*5113495bSYour Name  * IE allowlisting attrs from wlan scan object
657*5113495bSYour Name  *
658*5113495bSYour Name  * Return: true - successful copy
659*5113495bSYour Name  *         false - copy failed
660*5113495bSYour Name  */
661*5113495bSYour Name bool
662*5113495bSYour Name ucfg_copy_ie_allowlist_attrs(struct wlan_objmgr_psoc *psoc,
663*5113495bSYour Name 			     struct probe_req_allowlist_attr *ie_allowlist);
664*5113495bSYour Name 
665*5113495bSYour Name /**
666*5113495bSYour Name  * ucfg_scan_set_bt_activity() - API to set bt activity
667*5113495bSYour Name  * @psoc: pointer to psoc object
668*5113495bSYour Name  * @bt_a2dp_active: bt activiy value
669*5113495bSYour Name  *
670*5113495bSYour Name  * Return: None
671*5113495bSYour Name  */
672*5113495bSYour Name void ucfg_scan_set_bt_activity(struct wlan_objmgr_psoc *psoc,
673*5113495bSYour Name 			       bool bt_a2dp_active);
674*5113495bSYour Name /**
675*5113495bSYour Name  * ucfg_scan_get_bt_activity() - API to get bt activity
676*5113495bSYour Name  * @psoc: pointer to psoc object
677*5113495bSYour Name  *
678*5113495bSYour Name  * Return: true if enabled else false.
679*5113495bSYour Name  */
680*5113495bSYour Name bool ucfg_scan_get_bt_activity(struct wlan_objmgr_psoc *psoc);
681*5113495bSYour Name 
682*5113495bSYour Name /**
683*5113495bSYour Name  * ucfg_scan_is_mac_spoofing_enabled() - API to check if mac spoofing is enabled
684*5113495bSYour Name  * @psoc: pointer to psoc object
685*5113495bSYour Name  *
686*5113495bSYour Name  * Return: true if enabled else false.
687*5113495bSYour Name  */
688*5113495bSYour Name bool ucfg_scan_is_mac_spoofing_enabled(struct wlan_objmgr_psoc *psoc);
689*5113495bSYour Name 
690*5113495bSYour Name /**
691*5113495bSYour Name  * ucfg_scan_get_extscan_adaptive_dwell_mode() - API to get the adaptive dwell
692*5113495bSYour Name  * mode during ext scan
693*5113495bSYour Name  * @psoc: pointer to psoc object
694*5113495bSYour Name  *
695*5113495bSYour Name  * Return: value of type enum scan_dwelltime_adaptive_mode
696*5113495bSYour Name  */
697*5113495bSYour Name enum scan_dwelltime_adaptive_mode
698*5113495bSYour Name ucfg_scan_get_extscan_adaptive_dwell_mode(struct wlan_objmgr_psoc *psoc);
699*5113495bSYour Name 
700*5113495bSYour Name /**
701*5113495bSYour Name  * ucfg_scan_cfg_set_active_dwelltime() - API to set scan active dwelltime
702*5113495bSYour Name  * @psoc: pointer to psoc object
703*5113495bSYour Name  * @dwell_time: scan active dwell time
704*5113495bSYour Name  *
705*5113495bSYour Name  * Return: none
706*5113495bSYour Name  */
707*5113495bSYour Name static inline
ucfg_scan_cfg_set_active_dwelltime(struct wlan_objmgr_psoc * psoc,uint32_t dwell_time)708*5113495bSYour Name void ucfg_scan_cfg_set_active_dwelltime(struct wlan_objmgr_psoc *psoc,
709*5113495bSYour Name 					uint32_t dwell_time)
710*5113495bSYour Name {
711*5113495bSYour Name 	return wlan_scan_cfg_set_active_dwelltime(psoc, dwell_time);
712*5113495bSYour Name }
713*5113495bSYour Name 
714*5113495bSYour Name /**
715*5113495bSYour Name  * ucfg_scan_cfg_set_active_2g_dwelltime() - API to set scan active 2g dwelltime
716*5113495bSYour Name  * @psoc: pointer to psoc object
717*5113495bSYour Name  * @dwell_time: scan active dwell time
718*5113495bSYour Name  *
719*5113495bSYour Name  * Return: none
720*5113495bSYour Name  */
721*5113495bSYour Name static inline
ucfg_scan_cfg_set_active_2g_dwelltime(struct wlan_objmgr_psoc * psoc,uint32_t dwell_time)722*5113495bSYour Name void ucfg_scan_cfg_set_active_2g_dwelltime(struct wlan_objmgr_psoc *psoc,
723*5113495bSYour Name 					   uint32_t dwell_time)
724*5113495bSYour Name {
725*5113495bSYour Name 	return wlan_scan_cfg_set_active_2g_dwelltime(psoc, dwell_time);
726*5113495bSYour Name }
727*5113495bSYour Name 
728*5113495bSYour Name /**
729*5113495bSYour Name  * ucfg_scan_cfg_get_active_dwelltime() - API to get active dwelltime
730*5113495bSYour Name  * @psoc: pointer to psoc object
731*5113495bSYour Name  * @dwell_time: scan active dwelltime
732*5113495bSYour Name  *
733*5113495bSYour Name  * Return: scan active dwell time
734*5113495bSYour Name  */
735*5113495bSYour Name static inline
ucfg_scan_cfg_get_active_dwelltime(struct wlan_objmgr_psoc * psoc,uint32_t * dwell_time)736*5113495bSYour Name void ucfg_scan_cfg_get_active_dwelltime(struct wlan_objmgr_psoc *psoc,
737*5113495bSYour Name 					uint32_t *dwell_time)
738*5113495bSYour Name {
739*5113495bSYour Name 	return wlan_scan_cfg_get_active_dwelltime(psoc, dwell_time);
740*5113495bSYour Name }
741*5113495bSYour Name 
742*5113495bSYour Name /**
743*5113495bSYour Name  * ucfg_scan_cfg_set_passive_dwelltime() - API to set scan passive dwelltime
744*5113495bSYour Name  * @psoc: pointer to psoc object
745*5113495bSYour Name  * @dwell_time: scan passive dwell time
746*5113495bSYour Name  *
747*5113495bSYour Name  * Return: none
748*5113495bSYour Name  */
749*5113495bSYour Name static inline
ucfg_scan_cfg_set_passive_dwelltime(struct wlan_objmgr_psoc * psoc,uint32_t dwell_time)750*5113495bSYour Name void ucfg_scan_cfg_set_passive_dwelltime(struct wlan_objmgr_psoc *psoc,
751*5113495bSYour Name 					 uint32_t dwell_time)
752*5113495bSYour Name {
753*5113495bSYour Name 	return wlan_scan_cfg_set_passive_dwelltime(psoc, dwell_time);
754*5113495bSYour Name }
755*5113495bSYour Name /**
756*5113495bSYour Name  * ucfg_scan_cfg_get_passive_dwelltime() - API to get passive dwelltime
757*5113495bSYour Name  * @psoc: pointer to psoc object
758*5113495bSYour Name  * @dwell_time: scan passive dwelltime
759*5113495bSYour Name  *
760*5113495bSYour Name  * Return: scan passive dwell time
761*5113495bSYour Name  */
762*5113495bSYour Name static inline
ucfg_scan_cfg_get_passive_dwelltime(struct wlan_objmgr_psoc * psoc,uint32_t * dwell_time)763*5113495bSYour Name void ucfg_scan_cfg_get_passive_dwelltime(struct wlan_objmgr_psoc *psoc,
764*5113495bSYour Name 					 uint32_t *dwell_time)
765*5113495bSYour Name {
766*5113495bSYour Name 	return wlan_scan_cfg_get_passive_dwelltime(psoc, dwell_time);
767*5113495bSYour Name }
768*5113495bSYour Name 
769*5113495bSYour Name /**
770*5113495bSYour Name  * ucfg_scan_cfg_get_active_2g_dwelltime() - API to get active 2g dwelltime
771*5113495bSYour Name  * @psoc: pointer to psoc object
772*5113495bSYour Name  * @dwell_time: scan active 2g dwelltime
773*5113495bSYour Name  *
774*5113495bSYour Name  * Return: scan active 2g dwelltime
775*5113495bSYour Name  */
776*5113495bSYour Name static inline
ucfg_scan_cfg_get_active_2g_dwelltime(struct wlan_objmgr_psoc * psoc,uint32_t * dwell_time)777*5113495bSYour Name void ucfg_scan_cfg_get_active_2g_dwelltime(struct wlan_objmgr_psoc *psoc,
778*5113495bSYour Name 					   uint32_t *dwell_time)
779*5113495bSYour Name {
780*5113495bSYour Name 	return wlan_scan_cfg_get_active_2g_dwelltime(psoc, dwell_time);
781*5113495bSYour Name }
782*5113495bSYour Name 
783*5113495bSYour Name #ifdef CONFIG_BAND_6GHZ
784*5113495bSYour Name /**
785*5113495bSYour Name  * ucfg_scan_cfg_set_active_6g_dwelltime() - API to set scan active 6g dwelltime
786*5113495bSYour Name  * @psoc: pointer to psoc object
787*5113495bSYour Name  * @dwell_time: scan active dwell time
788*5113495bSYour Name  *
789*5113495bSYour Name  * Return: QDF_STATUS
790*5113495bSYour Name  */
791*5113495bSYour Name static inline
ucfg_scan_cfg_set_active_6g_dwelltime(struct wlan_objmgr_psoc * psoc,uint32_t dwell_time)792*5113495bSYour Name QDF_STATUS ucfg_scan_cfg_set_active_6g_dwelltime(struct wlan_objmgr_psoc *psoc,
793*5113495bSYour Name 						 uint32_t dwell_time)
794*5113495bSYour Name {
795*5113495bSYour Name 	return wlan_scan_cfg_set_active_6g_dwelltime(psoc, dwell_time);
796*5113495bSYour Name }
797*5113495bSYour Name 
798*5113495bSYour Name /**
799*5113495bSYour Name  * ucfg_scan_cfg_get_passive_6g_dwelltime() - API to get passive 6g dwelltime
800*5113495bSYour Name  * @psoc: pointer to psoc object
801*5113495bSYour Name  * @dwell_time: scan passive 6g dwelltime
802*5113495bSYour Name  *
803*5113495bSYour Name  * Return: QDF_STATUS
804*5113495bSYour Name  */
805*5113495bSYour Name static inline
ucfg_scan_cfg_get_passive_6g_dwelltime(struct wlan_objmgr_psoc * psoc,uint32_t * dwell_time)806*5113495bSYour Name QDF_STATUS ucfg_scan_cfg_get_passive_6g_dwelltime(struct wlan_objmgr_psoc *psoc,
807*5113495bSYour Name 						  uint32_t *dwell_time)
808*5113495bSYour Name {
809*5113495bSYour Name 	return wlan_scan_cfg_get_passive_6g_dwelltime(psoc, dwell_time);
810*5113495bSYour Name }
811*5113495bSYour Name 
812*5113495bSYour Name /**
813*5113495bSYour Name  * ucfg_scan_cfg_set_passive_6g_dwelltime() - API to set scan passive 6g
814*5113495bSYour Name  *                                            dwelltime
815*5113495bSYour Name  * @psoc: pointer to psoc object
816*5113495bSYour Name  * @dwell_time: scan passive dwell time
817*5113495bSYour Name  *
818*5113495bSYour Name  * Return: QDF_STATUS
819*5113495bSYour Name  */
820*5113495bSYour Name static inline
ucfg_scan_cfg_set_passive_6g_dwelltime(struct wlan_objmgr_psoc * psoc,uint32_t dwell_time)821*5113495bSYour Name QDF_STATUS ucfg_scan_cfg_set_passive_6g_dwelltime(struct wlan_objmgr_psoc *psoc,
822*5113495bSYour Name 						  uint32_t dwell_time)
823*5113495bSYour Name {
824*5113495bSYour Name 	return wlan_scan_cfg_set_passive_6g_dwelltime(psoc, dwell_time);
825*5113495bSYour Name }
826*5113495bSYour Name 
827*5113495bSYour Name /**
828*5113495bSYour Name  * ucfg_scan_cfg_get_active_6g_dwelltime() - API to get active 6g dwelltime
829*5113495bSYour Name  * @psoc: pointer to psoc object
830*5113495bSYour Name  * @dwell_time: scan active 6g dwelltime
831*5113495bSYour Name  *
832*5113495bSYour Name  * Return: QDF_STATUS
833*5113495bSYour Name  */
834*5113495bSYour Name static inline
ucfg_scan_cfg_get_active_6g_dwelltime(struct wlan_objmgr_psoc * psoc,uint32_t * dwell_time)835*5113495bSYour Name QDF_STATUS ucfg_scan_cfg_get_active_6g_dwelltime(struct wlan_objmgr_psoc *psoc,
836*5113495bSYour Name 						 uint32_t *dwell_time)
837*5113495bSYour Name {
838*5113495bSYour Name 	return wlan_scan_cfg_get_active_6g_dwelltime(psoc, dwell_time);
839*5113495bSYour Name }
840*5113495bSYour Name #endif
841*5113495bSYour Name 
842*5113495bSYour Name /**
843*5113495bSYour Name  * ucfg_scan_cfg_get_conc_active_dwelltime() - Get concurrent active dwelltime
844*5113495bSYour Name  * @psoc: pointer to psoc object
845*5113495bSYour Name  * @dwell_time: scan active dwelltime
846*5113495bSYour Name  *
847*5113495bSYour Name  * Return: scan concurrent active dwell time
848*5113495bSYour Name  */
849*5113495bSYour Name static inline
ucfg_scan_cfg_get_conc_active_dwelltime(struct wlan_objmgr_psoc * psoc,uint32_t * dwell_time)850*5113495bSYour Name void ucfg_scan_cfg_get_conc_active_dwelltime(struct wlan_objmgr_psoc *psoc,
851*5113495bSYour Name 					     uint32_t *dwell_time)
852*5113495bSYour Name {
853*5113495bSYour Name 	return wlan_scan_cfg_get_conc_active_dwelltime(psoc, dwell_time);
854*5113495bSYour Name }
855*5113495bSYour Name 
856*5113495bSYour Name /**
857*5113495bSYour Name  * ucfg_scan_cfg_set_conc_active_dwelltime() - Set concurrent active dwelltime
858*5113495bSYour Name  * @psoc: pointer to psoc object
859*5113495bSYour Name  * @dwell_time: scan active dwelltime
860*5113495bSYour Name  *
861*5113495bSYour Name  * Return: scan concurrent active dwell time
862*5113495bSYour Name  */
863*5113495bSYour Name static inline
ucfg_scan_cfg_set_conc_active_dwelltime(struct wlan_objmgr_psoc * psoc,uint32_t dwell_time)864*5113495bSYour Name void ucfg_scan_cfg_set_conc_active_dwelltime(struct wlan_objmgr_psoc *psoc,
865*5113495bSYour Name 					     uint32_t dwell_time)
866*5113495bSYour Name {
867*5113495bSYour Name 	return wlan_scan_cfg_set_conc_active_dwelltime(psoc, dwell_time);
868*5113495bSYour Name }
869*5113495bSYour Name 
870*5113495bSYour Name /**
871*5113495bSYour Name  * ucfg_scan_cfg_get_conc_passive_dwelltime() - Get passive concurrent dwelltime
872*5113495bSYour Name  * @psoc: pointer to psoc object
873*5113495bSYour Name  * @dwell_time: scan passive dwelltime
874*5113495bSYour Name  *
875*5113495bSYour Name  * Return: scan concurrent passive dwell time
876*5113495bSYour Name  */
877*5113495bSYour Name static inline
ucfg_scan_cfg_get_conc_passive_dwelltime(struct wlan_objmgr_psoc * psoc,uint32_t * dwell_time)878*5113495bSYour Name void ucfg_scan_cfg_get_conc_passive_dwelltime(struct wlan_objmgr_psoc *psoc,
879*5113495bSYour Name 					      uint32_t *dwell_time)
880*5113495bSYour Name {
881*5113495bSYour Name 	return wlan_scan_cfg_get_conc_passive_dwelltime(psoc, dwell_time);
882*5113495bSYour Name }
883*5113495bSYour Name 
884*5113495bSYour Name /**
885*5113495bSYour Name  * ucfg_scan_cfg_set_conc_passive_dwelltime() - Set passive concurrent dwelltime
886*5113495bSYour Name  * @psoc: pointer to psoc object
887*5113495bSYour Name  * @dwell_time: scan passive dwelltime
888*5113495bSYour Name  *
889*5113495bSYour Name  * Return: scan concurrent passive dwell time
890*5113495bSYour Name  */
891*5113495bSYour Name static inline
ucfg_scan_cfg_set_conc_passive_dwelltime(struct wlan_objmgr_psoc * psoc,uint32_t dwell_time)892*5113495bSYour Name void ucfg_scan_cfg_set_conc_passive_dwelltime(struct wlan_objmgr_psoc *psoc,
893*5113495bSYour Name 					      uint32_t dwell_time)
894*5113495bSYour Name {
895*5113495bSYour Name 	return wlan_scan_cfg_set_conc_passive_dwelltime(psoc, dwell_time);
896*5113495bSYour Name }
897*5113495bSYour Name 
898*5113495bSYour Name /**
899*5113495bSYour Name  * ucfg_scan_cfg_get_dfs_chan_scan_allowed() - API to get dfs scan enabled
900*5113495bSYour Name  * @psoc: pointer to psoc object
901*5113495bSYour Name  * @dfs_scan_enable: Set DFS scan enabled or not.
902*5113495bSYour Name  *
903*5113495bSYour Name  * Return: None
904*5113495bSYour Name  */
905*5113495bSYour Name static inline
ucfg_scan_cfg_get_dfs_chan_scan_allowed(struct wlan_objmgr_psoc * psoc,bool * dfs_scan_enable)906*5113495bSYour Name void ucfg_scan_cfg_get_dfs_chan_scan_allowed(struct wlan_objmgr_psoc *psoc,
907*5113495bSYour Name 					     bool *dfs_scan_enable)
908*5113495bSYour Name {
909*5113495bSYour Name 	return wlan_scan_cfg_get_dfs_chan_scan_allowed(psoc, dfs_scan_enable);
910*5113495bSYour Name }
911*5113495bSYour Name 
912*5113495bSYour Name /**
913*5113495bSYour Name  * ucfg_scan_cfg_set_dfs_chan_scan_allowed() - API to set dfs scan enabled
914*5113495bSYour Name  * @psoc: pointer to psoc object
915*5113495bSYour Name  * @dfs_scan_enable: Set DFS scan enabled or not.
916*5113495bSYour Name  *
917*5113495bSYour Name  * Return: None
918*5113495bSYour Name  */
919*5113495bSYour Name static inline
ucfg_scan_cfg_set_dfs_chan_scan_allowed(struct wlan_objmgr_psoc * psoc,bool dfs_scan_enable)920*5113495bSYour Name void ucfg_scan_cfg_set_dfs_chan_scan_allowed(struct wlan_objmgr_psoc *psoc,
921*5113495bSYour Name 					     bool dfs_scan_enable)
922*5113495bSYour Name {
923*5113495bSYour Name 	return wlan_scan_cfg_set_dfs_chan_scan_allowed(psoc, dfs_scan_enable);
924*5113495bSYour Name }
925*5113495bSYour Name 
926*5113495bSYour Name /**
927*5113495bSYour Name  * ucfg_scan_wake_lock_in_user_scan() - API to determine if wake lock in user
928*5113495bSYour Name  * scan is used.
929*5113495bSYour Name  * @psoc: pointer to psoc object
930*5113495bSYour Name  *
931*5113495bSYour Name  * Return: true if wake lock in user scan is required
932*5113495bSYour Name  */
933*5113495bSYour Name bool ucfg_scan_wake_lock_in_user_scan(struct wlan_objmgr_psoc *psoc);
934*5113495bSYour Name 
935*5113495bSYour Name /**
936*5113495bSYour Name  * ucfg_scan_cfg_honour_nl_scan_policy_flags() - API to get nl scan policy
937*5113495bSYour Name  * flags honoured.
938*5113495bSYour Name  * @psoc: pointer to psoc object
939*5113495bSYour Name  *
940*5113495bSYour Name  * Return: nl scan flags is honoured or not
941*5113495bSYour Name  */
942*5113495bSYour Name static inline
ucfg_scan_cfg_honour_nl_scan_policy_flags(struct wlan_objmgr_psoc * psoc)943*5113495bSYour Name bool ucfg_scan_cfg_honour_nl_scan_policy_flags(struct wlan_objmgr_psoc *psoc)
944*5113495bSYour Name {
945*5113495bSYour Name 	return wlan_scan_cfg_honour_nl_scan_policy_flags(psoc);
946*5113495bSYour Name }
947*5113495bSYour Name 
948*5113495bSYour Name /**
949*5113495bSYour Name  * ucfg_scan_cfg_get_conc_max_resttime() - API to get max rest time
950*5113495bSYour Name  * @psoc: pointer to psoc object
951*5113495bSYour Name  * @rest_time: scan concurrent max resttime
952*5113495bSYour Name  *
953*5113495bSYour Name  * Return: scan concurrent max rest time
954*5113495bSYour Name  */
955*5113495bSYour Name static inline
ucfg_scan_cfg_get_conc_max_resttime(struct wlan_objmgr_psoc * psoc,uint32_t * rest_time)956*5113495bSYour Name void ucfg_scan_cfg_get_conc_max_resttime(struct wlan_objmgr_psoc *psoc,
957*5113495bSYour Name 					 uint32_t *rest_time)
958*5113495bSYour Name {
959*5113495bSYour Name 	return wlan_scan_cfg_get_conc_max_resttime(psoc, rest_time);
960*5113495bSYour Name }
961*5113495bSYour Name 
962*5113495bSYour Name /**
963*5113495bSYour Name  * ucfg_scan_cfg_get_conc_min_resttime() - API to get concurrent min rest time
964*5113495bSYour Name  * @psoc: pointer to psoc object
965*5113495bSYour Name  * @rest_time: scan concurrent min rest time
966*5113495bSYour Name  *
967*5113495bSYour Name  * Return: scan concurrent min rest time
968*5113495bSYour Name  */
969*5113495bSYour Name static inline
ucfg_scan_cfg_get_conc_min_resttime(struct wlan_objmgr_psoc * psoc,uint32_t * rest_time)970*5113495bSYour Name void ucfg_scan_cfg_get_conc_min_resttime(struct wlan_objmgr_psoc *psoc,
971*5113495bSYour Name 					 uint32_t *rest_time)
972*5113495bSYour Name {
973*5113495bSYour Name 	return wlan_scan_cfg_get_conc_min_resttime(psoc, rest_time);
974*5113495bSYour Name }
975*5113495bSYour Name 
976*5113495bSYour Name #ifdef FEATURE_WLAN_SCAN_PNO
977*5113495bSYour Name /**
978*5113495bSYour Name  * ucfg_scan_is_pno_offload_enabled() - Check if pno offload is enabled
979*5113495bSYour Name  * @psoc: pointer to psoc object
980*5113495bSYour Name  *
981*5113495bSYour Name  * Return: pno_offload_enabled flag
982*5113495bSYour Name  */
983*5113495bSYour Name bool ucfg_scan_is_pno_offload_enabled(struct wlan_objmgr_psoc *psoc);
984*5113495bSYour Name 
985*5113495bSYour Name /**
986*5113495bSYour Name  * ucfg_scan_set_pno_offload() - API to set pno offload flag based on the
987*5113495bSYour Name  * capability received from the firmware.
988*5113495bSYour Name  * @psoc: pointer to psoc object
989*5113495bSYour Name  * @value: pno offload flag value
990*5113495bSYour Name  *
991*5113495bSYour Name  * Return: scan concurrent min rest time
992*5113495bSYour Name  */
993*5113495bSYour Name void ucfg_scan_set_pno_offload(struct wlan_objmgr_psoc *psoc, bool value);
994*5113495bSYour Name 
995*5113495bSYour Name /**
996*5113495bSYour Name  * ucfg_scan_get_pno_scan_support() - Check if pno scan support is enabled
997*5113495bSYour Name  * @psoc: pointer to psoc object
998*5113495bSYour Name  *
999*5113495bSYour Name  * Return: scan_support_enabled flag
1000*5113495bSYour Name  */
1001*5113495bSYour Name bool ucfg_scan_get_pno_scan_support(struct wlan_objmgr_psoc *psoc);
1002*5113495bSYour Name 
1003*5113495bSYour Name /**
1004*5113495bSYour Name  * ucfg_get_scan_backoff_multiplier() - get scan backoff multiplier value
1005*5113495bSYour Name  * @psoc: pointer to psoc object
1006*5113495bSYour Name  *
1007*5113495bSYour Name  * Return: scan_support_enabled flag
1008*5113495bSYour Name  */
1009*5113495bSYour Name uint8_t ucfg_get_scan_backoff_multiplier(struct wlan_objmgr_psoc *psoc);
1010*5113495bSYour Name 
1011*5113495bSYour Name /**
1012*5113495bSYour Name  * ucfg_scan_is_dfs_chnl_scan_enabled() - Check if PNO dfs channel scan support
1013*5113495bSYour Name  * is enabled
1014*5113495bSYour Name  * @psoc: pointer to psoc object
1015*5113495bSYour Name  *
1016*5113495bSYour Name  * Return: dfs_chnl_scan_enabled flag
1017*5113495bSYour Name  */
1018*5113495bSYour Name bool ucfg_scan_is_dfs_chnl_scan_enabled(struct wlan_objmgr_psoc *psoc);
1019*5113495bSYour Name 
1020*5113495bSYour Name /**
1021*5113495bSYour Name  * ucfg_scan_get_scan_timer_repeat_value() - API to get PNO scan timer repeat
1022*5113495bSYour Name  * value
1023*5113495bSYour Name  * @psoc: pointer to psoc object
1024*5113495bSYour Name  *
1025*5113495bSYour Name  * Return: scan_timer_repeat_value
1026*5113495bSYour Name  */
1027*5113495bSYour Name uint32_t ucfg_scan_get_scan_timer_repeat_value(struct wlan_objmgr_psoc *psoc);
1028*5113495bSYour Name 
1029*5113495bSYour Name /**
1030*5113495bSYour Name  * ucfg_scan_get_slow_scan_multiplier() - API to get PNO slow scan multiplier
1031*5113495bSYour Name  * value
1032*5113495bSYour Name  * @psoc: pointer to psoc object
1033*5113495bSYour Name  *
1034*5113495bSYour Name  * Return: slow_scan_multiplier value
1035*5113495bSYour Name  */
1036*5113495bSYour Name uint32_t ucfg_scan_get_slow_scan_multiplier(struct wlan_objmgr_psoc *psoc);
1037*5113495bSYour Name 
1038*5113495bSYour Name /**
1039*5113495bSYour Name  * ucfg_scan_get_max_sched_scan_plan_interval() - API to get maximum scheduled
1040*5113495bSYour Name  * scan plan interval
1041*5113495bSYour Name  * @psoc: pointer to psoc object
1042*5113495bSYour Name  *
1043*5113495bSYour Name  * Return: max_sched_scan_plan_interval value.
1044*5113495bSYour Name  */
1045*5113495bSYour Name uint32_t
1046*5113495bSYour Name ucfg_scan_get_max_sched_scan_plan_interval(struct wlan_objmgr_psoc *psoc);
1047*5113495bSYour Name 
1048*5113495bSYour Name /**
1049*5113495bSYour Name  * ucfg_scan_get_max_sched_scan_plan_iterations() - API to get maximum scheduled
1050*5113495bSYour Name  * scan plan iterations
1051*5113495bSYour Name  * @psoc: pointer to psoc object
1052*5113495bSYour Name  *
1053*5113495bSYour Name  * Return: value.
1054*5113495bSYour Name  */
1055*5113495bSYour Name uint32_t
1056*5113495bSYour Name ucfg_scan_get_max_sched_scan_plan_iterations(struct wlan_objmgr_psoc *psoc);
1057*5113495bSYour Name 
1058*5113495bSYour Name /**
1059*5113495bSYour Name  * ucfg_scan_get_user_config_sched_scan_plan() - API to get user config sched
1060*5113495bSYour Name  * scan plan configuration value
1061*5113495bSYour Name  * @psoc: pointer to psoc object
1062*5113495bSYour Name  *
1063*5113495bSYour Name  * Return: value.
1064*5113495bSYour Name  */
1065*5113495bSYour Name bool
1066*5113495bSYour Name ucfg_scan_get_user_config_sched_scan_plan(struct wlan_objmgr_psoc *psoc);
1067*5113495bSYour Name 
1068*5113495bSYour Name #ifdef WLAN_POLICY_MGR_ENABLE
1069*5113495bSYour Name /**
1070*5113495bSYour Name  * ucfg_scan_update_pno_dwell_time() - update active and passive dwell time
1071*5113495bSYour Name  * depending on active concurrency modes
1072*5113495bSYour Name  * @vdev: vdev object pointer
1073*5113495bSYour Name  * @req: pno scan request parameters
1074*5113495bSYour Name  * @scan_def: scan default parameters
1075*5113495bSYour Name  *
1076*5113495bSYour Name  * Return: void
1077*5113495bSYour Name  */
1078*5113495bSYour Name static inline
ucfg_scan_update_pno_dwell_time(struct wlan_objmgr_vdev * vdev,struct pno_scan_req_params * req,struct scan_default_params * scan_def)1079*5113495bSYour Name void ucfg_scan_update_pno_dwell_time(struct wlan_objmgr_vdev *vdev,
1080*5113495bSYour Name 				     struct pno_scan_req_params *req,
1081*5113495bSYour Name 				     struct scan_default_params *scan_def)
1082*5113495bSYour Name {
1083*5113495bSYour Name 	wlan_scan_update_pno_dwell_time(vdev, req, scan_def);
1084*5113495bSYour Name }
1085*5113495bSYour Name 
1086*5113495bSYour Name #else
1087*5113495bSYour Name static inline
ucfg_scan_update_pno_dwell_time(struct wlan_objmgr_vdev * vdev,struct pno_scan_req_params * req,struct scan_default_params * scan_def)1088*5113495bSYour Name void ucfg_scan_update_pno_dwell_time(struct wlan_objmgr_vdev *vdev,
1089*5113495bSYour Name 				     struct pno_scan_req_params *req,
1090*5113495bSYour Name 				     struct scan_default_params *scan_def)
1091*5113495bSYour Name {}
1092*5113495bSYour Name 
1093*5113495bSYour Name #endif
1094*5113495bSYour Name 
1095*5113495bSYour Name #else
1096*5113495bSYour Name static inline
ucfg_scan_is_pno_offload_enabled(struct wlan_objmgr_psoc * psoc)1097*5113495bSYour Name bool ucfg_scan_is_pno_offload_enabled(struct wlan_objmgr_psoc *psoc)
1098*5113495bSYour Name {
1099*5113495bSYour Name 	return 0;
1100*5113495bSYour Name }
1101*5113495bSYour Name 
1102*5113495bSYour Name static inline
ucfg_scan_set_pno_offload(struct wlan_objmgr_psoc * psoc,bool value)1103*5113495bSYour Name void ucfg_scan_set_pno_offload(struct wlan_objmgr_psoc *psoc, bool value)
1104*5113495bSYour Name {
1105*5113495bSYour Name }
1106*5113495bSYour Name 
1107*5113495bSYour Name static inline
ucfg_scan_get_pno_scan_support(struct wlan_objmgr_psoc * psoc)1108*5113495bSYour Name bool ucfg_scan_get_pno_scan_support(struct wlan_objmgr_psoc *psoc)
1109*5113495bSYour Name {
1110*5113495bSYour Name 	return 0;
1111*5113495bSYour Name }
1112*5113495bSYour Name 
1113*5113495bSYour Name static inline
ucfg_get_scan_backoff_multiplier(struct wlan_objmgr_psoc * psoc)1114*5113495bSYour Name uint8_t ucfg_get_scan_backoff_multiplier(struct wlan_objmgr_psoc *psoc)
1115*5113495bSYour Name {
1116*5113495bSYour Name 	return 0;
1117*5113495bSYour Name }
1118*5113495bSYour Name 
1119*5113495bSYour Name static inline
ucfg_scan_is_dfs_chnl_scan_enabled(struct wlan_objmgr_psoc * psoc)1120*5113495bSYour Name bool ucfg_scan_is_dfs_chnl_scan_enabled(struct wlan_objmgr_psoc *psoc)
1121*5113495bSYour Name {
1122*5113495bSYour Name 	return 0;
1123*5113495bSYour Name }
1124*5113495bSYour Name 
1125*5113495bSYour Name static inline
ucfg_scan_get_scan_timer_repeat_value(struct wlan_objmgr_psoc * psoc)1126*5113495bSYour Name uint32_t ucfg_scan_get_scan_timer_repeat_value(struct wlan_objmgr_psoc *psoc)
1127*5113495bSYour Name {
1128*5113495bSYour Name 	return 0;
1129*5113495bSYour Name }
1130*5113495bSYour Name 
1131*5113495bSYour Name static inline
ucfg_scan_get_slow_scan_multiplier(struct wlan_objmgr_psoc * psoc)1132*5113495bSYour Name uint32_t ucfg_scan_get_slow_scan_multiplier(struct wlan_objmgr_psoc *psoc)
1133*5113495bSYour Name {
1134*5113495bSYour Name 	return 0;
1135*5113495bSYour Name }
1136*5113495bSYour Name 
1137*5113495bSYour Name static inline uint32_t
ucfg_scan_get_max_sched_scan_plan_interval(struct wlan_objmgr_psoc * psoc)1138*5113495bSYour Name ucfg_scan_get_max_sched_scan_plan_interval(struct wlan_objmgr_psoc *psoc)
1139*5113495bSYour Name {
1140*5113495bSYour Name 	return 0;
1141*5113495bSYour Name }
1142*5113495bSYour Name 
1143*5113495bSYour Name static inline uint32_t
ucfg_scan_get_max_sched_scan_plan_iterations(struct wlan_objmgr_psoc * psoc)1144*5113495bSYour Name ucfg_scan_get_max_sched_scan_plan_iterations(struct wlan_objmgr_psoc *psoc)
1145*5113495bSYour Name {
1146*5113495bSYour Name 	return 0;
1147*5113495bSYour Name }
1148*5113495bSYour Name 
1149*5113495bSYour Name static inline bool
ucfg_scan_get_user_config_sched_scan_plan(struct wlan_objmgr_psoc * psoc)1150*5113495bSYour Name ucfg_scan_get_user_config_sched_scan_plan(struct wlan_objmgr_psoc *psoc)
1151*5113495bSYour Name {
1152*5113495bSYour Name 	return true;
1153*5113495bSYour Name }
1154*5113495bSYour Name 
1155*5113495bSYour Name #endif /* FEATURE_WLAN_SCAN_PNO */
1156*5113495bSYour Name 
1157*5113495bSYour Name /**
1158*5113495bSYour Name  * ucfg_scan_is_connected_scan_enabled() - API to get scan enabled after connect
1159*5113495bSYour Name  * @psoc: pointer to psoc object
1160*5113495bSYour Name  *
1161*5113495bSYour Name  * Return: value.
1162*5113495bSYour Name  */
1163*5113495bSYour Name bool ucfg_scan_is_connected_scan_enabled(struct wlan_objmgr_psoc *psoc);
1164*5113495bSYour Name 
1165*5113495bSYour Name /**
1166*5113495bSYour Name  * ucfg_scan_is_snr_monitor_enabled() - API to get SNR monitoring enabled or not
1167*5113495bSYour Name  * @psoc: pointer to psoc object
1168*5113495bSYour Name  *
1169*5113495bSYour Name  * Return: value.
1170*5113495bSYour Name  */
1171*5113495bSYour Name static inline
ucfg_scan_is_snr_monitor_enabled(struct wlan_objmgr_psoc * psoc)1172*5113495bSYour Name bool ucfg_scan_is_snr_monitor_enabled(struct wlan_objmgr_psoc *psoc)
1173*5113495bSYour Name {
1174*5113495bSYour Name 	return wlan_scan_is_snr_monitor_enabled(psoc);
1175*5113495bSYour Name }
1176*5113495bSYour Name #endif
1177