1*5113495bSYour Name /*
2*5113495bSYour Name * Copyright (c) 2017-2021 The Linux Foundation. All rights reserved.
3*5113495bSYour Name * Copyright (c) 2021-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 * DOC: Declare public API related to the pmo called by north bound HDD/OSIF
21*5113495bSYour Name */
22*5113495bSYour Name
23*5113495bSYour Name #ifndef _WLAN_PMO_UCFG_API_H_
24*5113495bSYour Name #define _WLAN_PMO_UCFG_API_H_
25*5113495bSYour Name
26*5113495bSYour Name #include "wlan_pmo_arp_public_struct.h"
27*5113495bSYour Name #include "wlan_pmo_ns_public_struct.h"
28*5113495bSYour Name #include "wlan_pmo_gtk_public_struct.h"
29*5113495bSYour Name #include "wlan_pmo_mc_addr_filtering.h"
30*5113495bSYour Name #include "wlan_pmo_mc_addr_filtering_public_struct.h"
31*5113495bSYour Name #include "wlan_pmo_wow_public_struct.h"
32*5113495bSYour Name #include "wlan_pmo_common_public_struct.h"
33*5113495bSYour Name #include "wlan_pmo_obj_mgmt_api.h"
34*5113495bSYour Name #include "wlan_pmo_pkt_filter_public_struct.h"
35*5113495bSYour Name #include "wlan_pmo_hw_filter_public_struct.h"
36*5113495bSYour Name
37*5113495bSYour Name #ifdef WLAN_POWER_MANAGEMENT_OFFLOAD
38*5113495bSYour Name
39*5113495bSYour Name /**
40*5113495bSYour Name * ucfg_pmo_psoc_open() - pmo psoc object open
41*5113495bSYour Name * @psoc: objmgr vdev
42*5113495bSYour Name *.
43*5113495bSYour Name * This function used to open pmo psoc object by user space
44*5113495bSYour Name *
45*5113495bSYour Name * Return: true in case success else false
46*5113495bSYour Name */
47*5113495bSYour Name QDF_STATUS ucfg_pmo_psoc_open(struct wlan_objmgr_psoc *psoc);
48*5113495bSYour Name
49*5113495bSYour Name /**
50*5113495bSYour Name * ucfg_pmo_psoc_close() - pmo psoc object close
51*5113495bSYour Name * @psoc: objmgr vdev
52*5113495bSYour Name *.
53*5113495bSYour Name * This function used to close pmo psoc object by user space
54*5113495bSYour Name *
55*5113495bSYour Name * Return: true in case success else false
56*5113495bSYour Name */
57*5113495bSYour Name QDF_STATUS ucfg_pmo_psoc_close(struct wlan_objmgr_psoc *psoc);
58*5113495bSYour Name
59*5113495bSYour Name /**
60*5113495bSYour Name * ucfg_pmo_get_apf_instruction_size() - get the current APF instruction size
61*5113495bSYour Name * @psoc: the psoc to query
62*5113495bSYour Name *
63*5113495bSYour Name * Return: APF instruction size
64*5113495bSYour Name */
65*5113495bSYour Name uint32_t ucfg_pmo_get_apf_instruction_size(struct wlan_objmgr_psoc *psoc);
66*5113495bSYour Name
67*5113495bSYour Name /**
68*5113495bSYour Name * ucfg_pmo_get_num_wow_filters() - get the supported number of WoW filters
69*5113495bSYour Name * @psoc: the psoc to query
70*5113495bSYour Name *
71*5113495bSYour Name * Return: number of WoW filters supported
72*5113495bSYour Name */
73*5113495bSYour Name uint8_t ucfg_pmo_get_num_wow_filters(struct wlan_objmgr_psoc *psoc);
74*5113495bSYour Name
75*5113495bSYour Name /**
76*5113495bSYour Name * ucfg_pmo_is_ap_mode_supports_arp_ns() - Check ap mode support arp&ns offload
77*5113495bSYour Name * @psoc: objmgr psoc
78*5113495bSYour Name * @vdev_opmode: vdev opmode
79*5113495bSYour Name *
80*5113495bSYour Name * Return: true in case support else false
81*5113495bSYour Name */
82*5113495bSYour Name bool ucfg_pmo_is_ap_mode_supports_arp_ns(struct wlan_objmgr_psoc *psoc,
83*5113495bSYour Name enum QDF_OPMODE vdev_opmode);
84*5113495bSYour Name
85*5113495bSYour Name /**
86*5113495bSYour Name * ucfg_pmo_is_vdev_connected() - to check whether peer is associated or not
87*5113495bSYour Name * @vdev: objmgr vdev
88*5113495bSYour Name *
89*5113495bSYour Name * Return: true in case success else false
90*5113495bSYour Name */
91*5113495bSYour Name bool ucfg_pmo_is_vdev_connected(struct wlan_objmgr_vdev *vdev);
92*5113495bSYour Name
93*5113495bSYour Name /**
94*5113495bSYour Name * ucfg_pmo_is_vdev_supports_offload() - check offload is supported on vdev
95*5113495bSYour Name * @vdev: objmgr vdev
96*5113495bSYour Name *
97*5113495bSYour Name * Return: true in case success else false
98*5113495bSYour Name */
99*5113495bSYour Name bool ucfg_pmo_is_vdev_supports_offload(struct wlan_objmgr_vdev *vdev);
100*5113495bSYour Name
101*5113495bSYour Name /**
102*5113495bSYour Name * ucfg_pmo_get_psoc_config(): API to get the psoc user configurations of pmo
103*5113495bSYour Name * @psoc: objmgr psoc handle
104*5113495bSYour Name * @psoc_cfg: fill the current psoc user configurations.
105*5113495bSYour Name *
106*5113495bSYour Name * Return: pmo psoc configurations
107*5113495bSYour Name */
108*5113495bSYour Name QDF_STATUS ucfg_pmo_get_psoc_config(struct wlan_objmgr_psoc *psoc,
109*5113495bSYour Name struct pmo_psoc_cfg *psoc_cfg);
110*5113495bSYour Name
111*5113495bSYour Name /**
112*5113495bSYour Name * ucfg_pmo_update_psoc_config(): API to update the psoc user configurations
113*5113495bSYour Name * @psoc: objmgr psoc handle
114*5113495bSYour Name * @psoc_cfg: pmo psoc configurations
115*5113495bSYour Name *
116*5113495bSYour Name * This api shall be used for soc config initialization as well update.
117*5113495bSYour Name * In case of update caller must first call pmo_get_psoc_cfg to get
118*5113495bSYour Name * current config and then apply changes on top of current config.
119*5113495bSYour Name *
120*5113495bSYour Name * Return: QDF_STATUS -in case of success else return error
121*5113495bSYour Name */
122*5113495bSYour Name QDF_STATUS ucfg_pmo_update_psoc_config(struct wlan_objmgr_psoc *psoc,
123*5113495bSYour Name struct pmo_psoc_cfg *psoc_cfg);
124*5113495bSYour Name
125*5113495bSYour Name /**
126*5113495bSYour Name * ucfg_pmo_psoc_set_caps() - overwrite configured device capability flags
127*5113495bSYour Name * @psoc: the psoc for which the capabilities apply
128*5113495bSYour Name * @caps: the cabability information to configure
129*5113495bSYour Name *
130*5113495bSYour Name * Return: QDF_STATUS
131*5113495bSYour Name */
132*5113495bSYour Name QDF_STATUS ucfg_pmo_psoc_set_caps(struct wlan_objmgr_psoc *psoc,
133*5113495bSYour Name struct pmo_device_caps *caps);
134*5113495bSYour Name
135*5113495bSYour Name /**
136*5113495bSYour Name * ucfg_pmo_is_arp_offload_enabled() - Get arp offload enable or not
137*5113495bSYour Name * @psoc: pointer to psoc object
138*5113495bSYour Name *
139*5113495bSYour Name * Return: arp offload enable or not
140*5113495bSYour Name */
141*5113495bSYour Name bool
142*5113495bSYour Name ucfg_pmo_is_arp_offload_enabled(struct wlan_objmgr_psoc *psoc);
143*5113495bSYour Name
144*5113495bSYour Name #ifdef WLAN_FEATURE_IGMP_OFFLOAD
145*5113495bSYour Name /**
146*5113495bSYour Name * ucfg_pmo_is_igmp_offload_enabled() - Get igmp offload enable or not
147*5113495bSYour Name * @psoc: pointer to psoc object
148*5113495bSYour Name *
149*5113495bSYour Name * Return: igmp offload enable or not
150*5113495bSYour Name */
151*5113495bSYour Name bool
152*5113495bSYour Name ucfg_pmo_is_igmp_offload_enabled(struct wlan_objmgr_psoc *psoc);
153*5113495bSYour Name
154*5113495bSYour Name /**
155*5113495bSYour Name * ucfg_pmo_set_igmp_offload_enabled() - Set igmp offload enable or not
156*5113495bSYour Name * @psoc: pointer to psoc object
157*5113495bSYour Name * @val: enable/disable igmp offload
158*5113495bSYour Name *
159*5113495bSYour Name * Return: None
160*5113495bSYour Name */
161*5113495bSYour Name void
162*5113495bSYour Name ucfg_pmo_set_igmp_offload_enabled(struct wlan_objmgr_psoc *psoc,
163*5113495bSYour Name bool val);
164*5113495bSYour Name #endif
165*5113495bSYour Name
166*5113495bSYour Name /**
167*5113495bSYour Name * ucfg_pmo_set_arp_offload_enabled() - Set arp offload enable or not
168*5113495bSYour Name * @psoc: pointer to psoc object
169*5113495bSYour Name * @val: enable/disable arp offload
170*5113495bSYour Name *
171*5113495bSYour Name * Return: None
172*5113495bSYour Name */
173*5113495bSYour Name void
174*5113495bSYour Name ucfg_pmo_set_arp_offload_enabled(struct wlan_objmgr_psoc *psoc,
175*5113495bSYour Name bool val);
176*5113495bSYour Name
177*5113495bSYour Name /**
178*5113495bSYour Name * ucfg_pmo_is_ssdp_enabled() - Get ssdp enable or not
179*5113495bSYour Name * @psoc: pointer to psoc object
180*5113495bSYour Name *
181*5113495bSYour Name * Return: enable/disable ssdp
182*5113495bSYour Name */
183*5113495bSYour Name bool
184*5113495bSYour Name ucfg_pmo_is_ssdp_enabled(struct wlan_objmgr_psoc *psoc);
185*5113495bSYour Name
186*5113495bSYour Name /**
187*5113495bSYour Name * ucfg_pmo_is_ns_offloaded() - Get ns offload support or not
188*5113495bSYour Name * @psoc: pointer to psoc object
189*5113495bSYour Name *
190*5113495bSYour Name * Return: ns offload or not
191*5113495bSYour Name */
192*5113495bSYour Name bool
193*5113495bSYour Name ucfg_pmo_is_ns_offloaded(struct wlan_objmgr_psoc *psoc);
194*5113495bSYour Name
195*5113495bSYour Name /**
196*5113495bSYour Name * ucfg_pmo_get_sta_dynamic_dtim() - Get dynamic dtim
197*5113495bSYour Name * @psoc: pointer to psoc object
198*5113495bSYour Name *
199*5113495bSYour Name * Return: dynamic dtim
200*5113495bSYour Name */
201*5113495bSYour Name uint8_t
202*5113495bSYour Name ucfg_pmo_get_sta_dynamic_dtim(struct wlan_objmgr_psoc *psoc);
203*5113495bSYour Name
204*5113495bSYour Name /**
205*5113495bSYour Name * ucfg_pmo_get_sta_mod_dtim() - Get modulated dtim
206*5113495bSYour Name * @psoc: pointer to psoc object
207*5113495bSYour Name *
208*5113495bSYour Name * Return: modulated dtim
209*5113495bSYour Name */
210*5113495bSYour Name uint8_t
211*5113495bSYour Name ucfg_pmo_get_sta_mod_dtim(struct wlan_objmgr_psoc *psoc);
212*5113495bSYour Name
213*5113495bSYour Name /**
214*5113495bSYour Name * ucfg_pmo_set_sta_mod_dtim() - Set modulated dtim
215*5113495bSYour Name * @psoc: pointer to psoc object
216*5113495bSYour Name * @val: modulated dtim
217*5113495bSYour Name *
218*5113495bSYour Name * Return: None
219*5113495bSYour Name */
220*5113495bSYour Name void
221*5113495bSYour Name ucfg_pmo_set_sta_mod_dtim(struct wlan_objmgr_psoc *psoc,
222*5113495bSYour Name uint8_t val);
223*5113495bSYour Name
224*5113495bSYour Name /**
225*5113495bSYour Name * ucfg_pmo_is_mc_addr_list_enabled() - Get multicast address list enable or not
226*5113495bSYour Name * @psoc: pointer to psoc object
227*5113495bSYour Name *
228*5113495bSYour Name * Return: multicast address list enable or not
229*5113495bSYour Name */
230*5113495bSYour Name bool
231*5113495bSYour Name ucfg_pmo_is_mc_addr_list_enabled(struct wlan_objmgr_psoc *psoc);
232*5113495bSYour Name
233*5113495bSYour Name /**
234*5113495bSYour Name * ucfg_pmo_get_power_save_mode() - Get power save mode
235*5113495bSYour Name * @psoc: pointer to psoc object
236*5113495bSYour Name *
237*5113495bSYour Name * Return: power save mode
238*5113495bSYour Name */
239*5113495bSYour Name enum powersave_mode
240*5113495bSYour Name ucfg_pmo_get_power_save_mode(struct wlan_objmgr_psoc *psoc);
241*5113495bSYour Name
242*5113495bSYour Name /**
243*5113495bSYour Name * ucfg_pmo_get_default_power_save_mode() - Get default power save mode
244*5113495bSYour Name * from ini config
245*5113495bSYour Name * @psoc: pointer to psoc object
246*5113495bSYour Name *
247*5113495bSYour Name * Return: power save mode
248*5113495bSYour Name */
249*5113495bSYour Name enum powersave_mode
250*5113495bSYour Name ucfg_pmo_get_default_power_save_mode(struct wlan_objmgr_psoc *psoc);
251*5113495bSYour Name
252*5113495bSYour Name /**
253*5113495bSYour Name * ucfg_pmo_set_power_save_mode() - Set power save mode
254*5113495bSYour Name * @psoc: pointer to psoc object
255*5113495bSYour Name * @val: power save mode
256*5113495bSYour Name *
257*5113495bSYour Name * Return: None
258*5113495bSYour Name */
259*5113495bSYour Name void
260*5113495bSYour Name ucfg_pmo_set_power_save_mode(struct wlan_objmgr_psoc *psoc,
261*5113495bSYour Name enum powersave_mode val);
262*5113495bSYour Name
263*5113495bSYour Name /**
264*5113495bSYour Name * ucfg_pmo_get_max_ps_poll() - Get max power save poll
265*5113495bSYour Name * @psoc: pointer to psoc object
266*5113495bSYour Name *
267*5113495bSYour Name * Return: power save poll
268*5113495bSYour Name */
269*5113495bSYour Name uint8_t
270*5113495bSYour Name ucfg_pmo_get_max_ps_poll(struct wlan_objmgr_psoc *psoc);
271*5113495bSYour Name
272*5113495bSYour Name /**
273*5113495bSYour Name * ucfg_pmo_power_save_offload_enabled() - Get power save offload enabled type
274*5113495bSYour Name * @psoc: pointer to psoc object
275*5113495bSYour Name *
276*5113495bSYour Name * Return: power save offload enabled type
277*5113495bSYour Name */
278*5113495bSYour Name uint8_t
279*5113495bSYour Name ucfg_pmo_power_save_offload_enabled(struct wlan_objmgr_psoc *psoc);
280*5113495bSYour Name
281*5113495bSYour Name /**
282*5113495bSYour Name * ucfg_pmo_tgt_psoc_send_idle_roam_suspend_mode() - Send suspend mode to
283*5113495bSYour Name * firmware
284*5113495bSYour Name * @psoc: pointer to psoc object
285*5113495bSYour Name * @val: Set suspend mode on/off sent from userspace
286*5113495bSYour Name *
287*5113495bSYour Name * Return: QDF_STATUS_SUCCESS if suspend mode is sent to fw else return
288*5113495bSYour Name * corresponding QDF_STATUS failure code.
289*5113495bSYour Name */
290*5113495bSYour Name QDF_STATUS
291*5113495bSYour Name ucfg_pmo_tgt_psoc_send_idle_roam_suspend_mode(struct wlan_objmgr_psoc *psoc,
292*5113495bSYour Name uint8_t val);
293*5113495bSYour Name
294*5113495bSYour Name /**
295*5113495bSYour Name * ucfg_pmo_enable_wakeup_event() - enable wow wakeup events
296*5113495bSYour Name * @psoc: objmgr psoc
297*5113495bSYour Name * @vdev_id: vdev id
298*5113495bSYour Name * @wow_event: wow event to enable
299*5113495bSYour Name *
300*5113495bSYour Name * Return: none
301*5113495bSYour Name */
302*5113495bSYour Name void ucfg_pmo_enable_wakeup_event(struct wlan_objmgr_psoc *psoc,
303*5113495bSYour Name uint32_t vdev_id,
304*5113495bSYour Name WOW_WAKE_EVENT_TYPE wow_event);
305*5113495bSYour Name
306*5113495bSYour Name /**
307*5113495bSYour Name * ucfg_pmo_disable_wakeup_event() - disable wow wakeup events
308*5113495bSYour Name * @psoc: objmgr psoc
309*5113495bSYour Name * @vdev_id: vdev id
310*5113495bSYour Name * @wow_event: wow event to disable
311*5113495bSYour Name *
312*5113495bSYour Name * Return: none
313*5113495bSYour Name */
314*5113495bSYour Name void ucfg_pmo_disable_wakeup_event(struct wlan_objmgr_psoc *psoc,
315*5113495bSYour Name uint32_t vdev_id,
316*5113495bSYour Name WOW_WAKE_EVENT_TYPE wow_event);
317*5113495bSYour Name
318*5113495bSYour Name /**
319*5113495bSYour Name * ucfg_pmo_cache_arp_offload_req(): API to cache arp req in pmo vdev priv ctx
320*5113495bSYour Name * @arp_req: pmo arp req param
321*5113495bSYour Name *
322*5113495bSYour Name * Return: QDF_STATUS -in case of success else return error
323*5113495bSYour Name */
324*5113495bSYour Name QDF_STATUS ucfg_pmo_cache_arp_offload_req(struct pmo_arp_req *arp_req);
325*5113495bSYour Name
326*5113495bSYour Name /**
327*5113495bSYour Name * ucfg_pmo_check_arp_offload(): API to check if arp offload cache/send is req
328*5113495bSYour Name * @psoc: objmgr psoc handle
329*5113495bSYour Name * @trigger: trigger reason
330*5113495bSYour Name * @vdev_id: vdev_id
331*5113495bSYour Name *
332*5113495bSYour Name * Return: QDF_STATUS -in case of success else return error
333*5113495bSYour Name */
334*5113495bSYour Name QDF_STATUS ucfg_pmo_check_arp_offload(struct wlan_objmgr_psoc *psoc,
335*5113495bSYour Name enum pmo_offload_trigger trigger,
336*5113495bSYour Name uint8_t vdev_id);
337*5113495bSYour Name
338*5113495bSYour Name /**
339*5113495bSYour Name * ucfg_pmo_flush_arp_offload_req(): API to flush arp req from pmo vdev priv ctx
340*5113495bSYour Name * @vdev: objmgr vdev param
341*5113495bSYour Name *
342*5113495bSYour Name * Return: QDF_STATUS -in case of success else return error
343*5113495bSYour Name */
344*5113495bSYour Name QDF_STATUS ucfg_pmo_flush_arp_offload_req(struct wlan_objmgr_vdev *vdev);
345*5113495bSYour Name
346*5113495bSYour Name /**
347*5113495bSYour Name * ucfg_pmo_enable_arp_offload_in_fwr(): API to enable arp req in fwr
348*5113495bSYour Name * @vdev: objmgr vdev param
349*5113495bSYour Name * @trigger: trigger reason for enable arp offload
350*5113495bSYour Name *
351*5113495bSYour Name * API to enable cache arp req in fwr from pmo vdev priv ctx
352*5113495bSYour Name *
353*5113495bSYour Name * Return: QDF_STATUS -in case of success else return error
354*5113495bSYour Name */
355*5113495bSYour Name QDF_STATUS
356*5113495bSYour Name ucfg_pmo_enable_arp_offload_in_fwr(struct wlan_objmgr_vdev *vdev,
357*5113495bSYour Name enum pmo_offload_trigger trigger);
358*5113495bSYour Name
359*5113495bSYour Name /**
360*5113495bSYour Name * ucfg_pmo_disable_arp_offload_in_fwr(): API to disable arp req in fwr
361*5113495bSYour Name * @vdev: objmgr vdev param
362*5113495bSYour Name * @trigger: trigger reason for disable arp offload
363*5113495bSYour Name * API to disable cache arp req in fwr
364*5113495bSYour Name *
365*5113495bSYour Name * Return: QDF_STATUS -in case of success else return error
366*5113495bSYour Name */
367*5113495bSYour Name QDF_STATUS
368*5113495bSYour Name ucfg_pmo_disable_arp_offload_in_fwr(struct wlan_objmgr_vdev *vdev,
369*5113495bSYour Name enum pmo_offload_trigger trigger);
370*5113495bSYour Name
371*5113495bSYour Name /**
372*5113495bSYour Name * ucfg_pmo_get_arp_offload_params() - API to get arp offload params
373*5113495bSYour Name * @vdev: objmgr vdev
374*5113495bSYour Name * @params: output pointer to hold offload params
375*5113495bSYour Name *
376*5113495bSYour Name * Return: QDF_STATUS_SUCCESS in case of success else return error
377*5113495bSYour Name */
378*5113495bSYour Name QDF_STATUS
379*5113495bSYour Name ucfg_pmo_get_arp_offload_params(struct wlan_objmgr_vdev *vdev,
380*5113495bSYour Name struct pmo_arp_offload_params *params);
381*5113495bSYour Name
382*5113495bSYour Name /**
383*5113495bSYour Name * ucfg_pmo_cache_ns_offload_req(): API to cache ns req in pmo vdev priv ctx
384*5113495bSYour Name * @ns_req: pmo ns req param
385*5113495bSYour Name *
386*5113495bSYour Name * Return: QDF_STATUS -in case of success else return error
387*5113495bSYour Name */
388*5113495bSYour Name QDF_STATUS ucfg_pmo_cache_ns_offload_req(struct pmo_ns_req *ns_req);
389*5113495bSYour Name
390*5113495bSYour Name /**
391*5113495bSYour Name * ucfg_pmo_ns_offload_check(): API to check if offload cache/send is required
392*5113495bSYour Name * @psoc: pbjmgr psoc handle
393*5113495bSYour Name * @trigger: trigger reason to enable ns offload
394*5113495bSYour Name * @vdev_id: vdev id
395*5113495bSYour Name *
396*5113495bSYour Name * Return: QDF_STATUS -in case of success else return error
397*5113495bSYour Name */
398*5113495bSYour Name QDF_STATUS ucfg_pmo_ns_offload_check(struct wlan_objmgr_psoc *psoc,
399*5113495bSYour Name enum pmo_offload_trigger trigger,
400*5113495bSYour Name uint8_t vdev_id);
401*5113495bSYour Name
402*5113495bSYour Name /**
403*5113495bSYour Name * ucfg_pmo_flush_ns_offload_req(): API to flush ns req from pmo vdev priv ctx
404*5113495bSYour Name * @vdev: vdev ojbmgr handle
405*5113495bSYour Name *
406*5113495bSYour Name * Return: QDF_STATUS -in case of success else return error
407*5113495bSYour Name */
408*5113495bSYour Name QDF_STATUS ucfg_pmo_flush_ns_offload_req(struct wlan_objmgr_vdev *vdev);
409*5113495bSYour Name
410*5113495bSYour Name /**
411*5113495bSYour Name * ucfg_pmo_enable_ns_offload_in_fwr(): API to enable ns req in fwr
412*5113495bSYour Name * @vdev: objmgr vdev
413*5113495bSYour Name * @trigger: trigger reason to enable ns offload
414*5113495bSYour Name *
415*5113495bSYour Name * API to enable cache ns req in fwr from pmo vdev priv ctx
416*5113495bSYour Name *
417*5113495bSYour Name * Return: QDF_STATUS -in case of success else return error
418*5113495bSYour Name */
419*5113495bSYour Name QDF_STATUS
420*5113495bSYour Name ucfg_pmo_enable_ns_offload_in_fwr(struct wlan_objmgr_vdev *vdev,
421*5113495bSYour Name enum pmo_offload_trigger trigger);
422*5113495bSYour Name
423*5113495bSYour Name /**
424*5113495bSYour Name * ucfg_pmo_disable_ns_offload_in_fwr(): API to disable ns req in fwr
425*5113495bSYour Name * @vdev: objmgr vdev
426*5113495bSYour Name * @trigger: trigger reason to disable ns offload
427*5113495bSYour Name *
428*5113495bSYour Name * API to disable ns req in fwr
429*5113495bSYour Name *
430*5113495bSYour Name * Return: QDF_STATUS -in case of success else return error
431*5113495bSYour Name */
432*5113495bSYour Name QDF_STATUS
433*5113495bSYour Name ucfg_pmo_disable_ns_offload_in_fwr(struct wlan_objmgr_vdev *vdev,
434*5113495bSYour Name enum pmo_offload_trigger trigger);
435*5113495bSYour Name
436*5113495bSYour Name /**
437*5113495bSYour Name * ucfg_pmo_get_ns_offload_params() - API to get ns offload params
438*5113495bSYour Name * @vdev: objmgr vdev
439*5113495bSYour Name * @params: output pointer to hold offload params
440*5113495bSYour Name *
441*5113495bSYour Name * Return: QDF_STATUS_SUCCESS in case of success else return error
442*5113495bSYour Name */
443*5113495bSYour Name QDF_STATUS
444*5113495bSYour Name ucfg_pmo_get_ns_offload_params(struct wlan_objmgr_vdev *vdev,
445*5113495bSYour Name struct pmo_ns_offload_params *params);
446*5113495bSYour Name
447*5113495bSYour Name /**
448*5113495bSYour Name * ucfg_pmo_ns_addr_scope() - Convert linux specific IPv6 addr scope to
449*5113495bSYour Name * WLAN driver specific value
450*5113495bSYour Name * @ipv6_scope: linux specific IPv6 addr scope
451*5113495bSYour Name *
452*5113495bSYour Name * Return: PMO identifier of linux IPv6 addr scope
453*5113495bSYour Name */
454*5113495bSYour Name enum pmo_ns_addr_scope
455*5113495bSYour Name ucfg_pmo_ns_addr_scope(uint32_t ipv6_scope);
456*5113495bSYour Name
457*5113495bSYour Name /**
458*5113495bSYour Name * ucfg_pmo_enable_hw_filter_in_fwr() - enable previously configured hw filter
459*5113495bSYour Name * @vdev: objmgr vdev to configure
460*5113495bSYour Name *
461*5113495bSYour Name * Return: QDF_STATUS
462*5113495bSYour Name */
463*5113495bSYour Name QDF_STATUS ucfg_pmo_enable_hw_filter_in_fwr(struct wlan_objmgr_vdev *vdev);
464*5113495bSYour Name
465*5113495bSYour Name /**
466*5113495bSYour Name * ucfg_pmo_enable_action_frame_patterns() - enable the action frame wake up
467*5113495bSYour Name * patterns as part of the enable host offloads.
468*5113495bSYour Name * @vdev: objmgr vdev to configure
469*5113495bSYour Name * @suspend_type: Suspend type. Runtime PM or System Suspend mode
470*5113495bSYour Name *
471*5113495bSYour Name * Return: QDF_STATUS
472*5113495bSYour Name */
473*5113495bSYour Name QDF_STATUS
474*5113495bSYour Name ucfg_pmo_enable_action_frame_patterns(struct wlan_objmgr_vdev *vdev,
475*5113495bSYour Name enum qdf_suspend_type suspend_type);
476*5113495bSYour Name
477*5113495bSYour Name /**
478*5113495bSYour Name * ucfg_pmo_disable_action_frame_patterns() - Reset the action frame wake up
479*5113495bSYour Name * patterns as a part of suspend resume.
480*5113495bSYour Name * @vdev: objmgr vdev to configure
481*5113495bSYour Name *
482*5113495bSYour Name * Return: QDF_STATUS
483*5113495bSYour Name */
484*5113495bSYour Name QDF_STATUS
485*5113495bSYour Name ucfg_pmo_disable_action_frame_patterns(struct wlan_objmgr_vdev *vdev);
486*5113495bSYour Name
487*5113495bSYour Name /**
488*5113495bSYour Name * ucfg_pmo_disable_hw_filter_in_fwr() - disable previously configured hw filter
489*5113495bSYour Name * @vdev: objmgr vdev to configure
490*5113495bSYour Name *
491*5113495bSYour Name * Return: QDF_STATUS
492*5113495bSYour Name */
493*5113495bSYour Name QDF_STATUS ucfg_pmo_disable_hw_filter_in_fwr(struct wlan_objmgr_vdev *vdev);
494*5113495bSYour Name
495*5113495bSYour Name /**
496*5113495bSYour Name * ucfg_pmo_max_mc_addr_supported() - to get max support mc address
497*5113495bSYour Name * @psoc: objmgr psoc
498*5113495bSYour Name *
499*5113495bSYour Name * Return: max mc addr supported count for all vdev in corresponding psoc
500*5113495bSYour Name */
501*5113495bSYour Name uint8_t ucfg_pmo_max_mc_addr_supported(struct wlan_objmgr_psoc *psoc);
502*5113495bSYour Name
503*5113495bSYour Name /**
504*5113495bSYour Name * ucfg_pmo_cache_mc_addr_list(): API to cache mc addr list in pmo vdev priv obj
505*5113495bSYour Name * @mc_list_config: list configuration
506*5113495bSYour Name *
507*5113495bSYour Name * Return: QDF_STATUS_SUCCESS -in case of success else return error
508*5113495bSYour Name */
509*5113495bSYour Name QDF_STATUS ucfg_pmo_cache_mc_addr_list(
510*5113495bSYour Name struct pmo_mc_addr_list_params *mc_list_config);
511*5113495bSYour Name
512*5113495bSYour Name /**
513*5113495bSYour Name * ucfg_pmo_flush_mc_addr_list(): API to flush mc addr list in pmo vdev priv obj
514*5113495bSYour Name * @psoc: objmgr psoc handle
515*5113495bSYour Name * @vdev_id: vdev id
516*5113495bSYour Name *
517*5113495bSYour Name * Return: QDF_STATUS_SUCCESS -in case of success else return error
518*5113495bSYour Name */
519*5113495bSYour Name QDF_STATUS ucfg_pmo_flush_mc_addr_list(struct wlan_objmgr_psoc *psoc,
520*5113495bSYour Name uint8_t vdev_id);
521*5113495bSYour Name
522*5113495bSYour Name /**
523*5113495bSYour Name * ucfg_pmo_enhanced_mc_filter_enable() - enable enhanced multicast filtering
524*5113495bSYour Name * @vdev: the vdev to enable enhanced multicast filtering for
525*5113495bSYour Name *
526*5113495bSYour Name * Return: QDF_STATUS
527*5113495bSYour Name */
528*5113495bSYour Name static inline QDF_STATUS
ucfg_pmo_enhanced_mc_filter_enable(struct wlan_objmgr_vdev * vdev)529*5113495bSYour Name ucfg_pmo_enhanced_mc_filter_enable(struct wlan_objmgr_vdev *vdev)
530*5113495bSYour Name {
531*5113495bSYour Name return pmo_core_enhanced_mc_filter_enable(vdev);
532*5113495bSYour Name }
533*5113495bSYour Name
534*5113495bSYour Name /**
535*5113495bSYour Name * ucfg_pmo_enhanced_mc_filter_disable() - disable enhanced multicast filtering
536*5113495bSYour Name * @vdev: the vdev to disable enhanced multicast filtering for
537*5113495bSYour Name *
538*5113495bSYour Name * Return: QDF_STATUS
539*5113495bSYour Name */
540*5113495bSYour Name static inline QDF_STATUS
ucfg_pmo_enhanced_mc_filter_disable(struct wlan_objmgr_vdev * vdev)541*5113495bSYour Name ucfg_pmo_enhanced_mc_filter_disable(struct wlan_objmgr_vdev *vdev)
542*5113495bSYour Name {
543*5113495bSYour Name return pmo_core_enhanced_mc_filter_disable(vdev);
544*5113495bSYour Name }
545*5113495bSYour Name
546*5113495bSYour Name #ifdef FEATURE_WLAN_DYNAMIC_ARP_NS_OFFLOAD
547*5113495bSYour Name /**
548*5113495bSYour Name * ucfg_pmo_dynamic_arp_ns_offload_enable() - enable arp/ns offload
549*5113495bSYour Name * @vdev: vdev objmgr handle
550*5113495bSYour Name *
551*5113495bSYour Name * Return: QDF_STATUS
552*5113495bSYour Name */
553*5113495bSYour Name QDF_STATUS
554*5113495bSYour Name ucfg_pmo_dynamic_arp_ns_offload_enable(struct wlan_objmgr_vdev *vdev);
555*5113495bSYour Name
556*5113495bSYour Name /**
557*5113495bSYour Name * ucfg_pmo_dynamic_arp_ns_offload_disable() - disable arp/ns offload
558*5113495bSYour Name * @vdev: vdev objmgr handle
559*5113495bSYour Name *
560*5113495bSYour Name * Return: QDF_STATUS
561*5113495bSYour Name */
562*5113495bSYour Name QDF_STATUS
563*5113495bSYour Name ucfg_pmo_dynamic_arp_ns_offload_disable(struct wlan_objmgr_vdev *vdev);
564*5113495bSYour Name
565*5113495bSYour Name /**
566*5113495bSYour Name * ucfg_pmo_get_arp_ns_offload_dynamic_disable() - get arp/ns offload state
567*5113495bSYour Name * @vdev: vdev objmgr handle
568*5113495bSYour Name *
569*5113495bSYour Name * Return: QDF_STATUS
570*5113495bSYour Name */
571*5113495bSYour Name bool
572*5113495bSYour Name ucfg_pmo_get_arp_ns_offload_dynamic_disable(struct wlan_objmgr_vdev *vdev);
573*5113495bSYour Name
574*5113495bSYour Name /**
575*5113495bSYour Name * ucfg_pmo_dynamic_arp_ns_offload_runtime_prevent() - prevent runtime suspend
576*5113495bSYour Name * @vdev: vdev objmgr handle
577*5113495bSYour Name *
578*5113495bSYour Name * Return: none
579*5113495bSYour Name */
580*5113495bSYour Name void
581*5113495bSYour Name ucfg_pmo_dynamic_arp_ns_offload_runtime_prevent(struct wlan_objmgr_vdev *vdev);
582*5113495bSYour Name
583*5113495bSYour Name /**
584*5113495bSYour Name * ucfg_pmo_dynamic_arp_ns_offload_runtime_allow() - allow runtime suspend
585*5113495bSYour Name * @vdev: vdev objmgr handle
586*5113495bSYour Name *
587*5113495bSYour Name * Return: none
588*5113495bSYour Name */
589*5113495bSYour Name void
590*5113495bSYour Name ucfg_pmo_dynamic_arp_ns_offload_runtime_allow(struct wlan_objmgr_vdev *vdev);
591*5113495bSYour Name #else
592*5113495bSYour Name static inline QDF_STATUS
ucfg_pmo_dynamic_arp_ns_offload_enable(struct wlan_objmgr_vdev * vdev)593*5113495bSYour Name ucfg_pmo_dynamic_arp_ns_offload_enable(struct wlan_objmgr_vdev *vdev)
594*5113495bSYour Name {
595*5113495bSYour Name return QDF_STATUS_SUCCESS;
596*5113495bSYour Name }
597*5113495bSYour Name
598*5113495bSYour Name static inline QDF_STATUS
ucfg_pmo_dynamic_arp_ns_offload_disable(struct wlan_objmgr_vdev * vdev)599*5113495bSYour Name ucfg_pmo_dynamic_arp_ns_offload_disable(struct wlan_objmgr_vdev *vdev)
600*5113495bSYour Name {
601*5113495bSYour Name return QDF_STATUS_SUCCESS;
602*5113495bSYour Name }
603*5113495bSYour Name
604*5113495bSYour Name static inline bool
ucfg_pmo_get_arp_ns_offload_dynamic_disable(struct wlan_objmgr_vdev * vdev)605*5113495bSYour Name ucfg_pmo_get_arp_ns_offload_dynamic_disable(struct wlan_objmgr_vdev *vdev)
606*5113495bSYour Name {
607*5113495bSYour Name return false;
608*5113495bSYour Name }
609*5113495bSYour Name
610*5113495bSYour Name static inline void
ucfg_pmo_dynamic_arp_ns_offload_runtime_prevent(struct wlan_objmgr_vdev * vdev)611*5113495bSYour Name ucfg_pmo_dynamic_arp_ns_offload_runtime_prevent(struct wlan_objmgr_vdev *vdev)
612*5113495bSYour Name {
613*5113495bSYour Name }
614*5113495bSYour Name
615*5113495bSYour Name static inline void
ucfg_pmo_dynamic_arp_ns_offload_runtime_allow(struct wlan_objmgr_vdev * vdev)616*5113495bSYour Name ucfg_pmo_dynamic_arp_ns_offload_runtime_allow(struct wlan_objmgr_vdev *vdev) {}
617*5113495bSYour Name #endif
618*5113495bSYour Name
619*5113495bSYour Name /**
620*5113495bSYour Name * ucfg_pmo_enable_mc_addr_filtering_in_fwr(): Enable cached mc add list in fwr
621*5113495bSYour Name * @psoc: objmgr psoc handle
622*5113495bSYour Name * @vdev_id: vdev id
623*5113495bSYour Name * @trigger: reason for trigger
624*5113495bSYour Name *
625*5113495bSYour Name * API to enable cached mc add list in fwr
626*5113495bSYour Name *
627*5113495bSYour Name * Return: QDF_STATUS_SUCCESS -in case of success else return error
628*5113495bSYour Name */
629*5113495bSYour Name QDF_STATUS ucfg_pmo_enable_mc_addr_filtering_in_fwr(
630*5113495bSYour Name struct wlan_objmgr_psoc *psoc,
631*5113495bSYour Name uint8_t vdev_id,
632*5113495bSYour Name enum pmo_offload_trigger trigger);
633*5113495bSYour Name
634*5113495bSYour Name /**
635*5113495bSYour Name * ucfg_pmo_disable_mc_addr_filtering_in_fwr(): Disable cached mc addr list
636*5113495bSYour Name * @psoc: objmgr psoc handle
637*5113495bSYour Name * @vdev_id: vdev id
638*5113495bSYour Name * @trigger: reason for trigger
639*5113495bSYour Name *
640*5113495bSYour Name * API to disable cached mc add list in fwr
641*5113495bSYour Name *
642*5113495bSYour Name * Return: QDF_STATUS_SUCCESS -in case of success else return error
643*5113495bSYour Name */
644*5113495bSYour Name QDF_STATUS ucfg_pmo_disable_mc_addr_filtering_in_fwr(
645*5113495bSYour Name struct wlan_objmgr_psoc *psoc,
646*5113495bSYour Name uint8_t vdev_id,
647*5113495bSYour Name enum pmo_offload_trigger trigger);
648*5113495bSYour Name
649*5113495bSYour Name /**
650*5113495bSYour Name * ucfg_pmo_get_mc_addr_list() - API to get mc addr list configured
651*5113495bSYour Name * @psoc: objmgr psoc
652*5113495bSYour Name * @vdev_id: vdev identifier
653*5113495bSYour Name * @mc_list_req: output pointer to hold mc addr list params
654*5113495bSYour Name *
655*5113495bSYour Name * Return: QDF_STATUS_SUCCESS in case of success else return error
656*5113495bSYour Name */
657*5113495bSYour Name QDF_STATUS
658*5113495bSYour Name ucfg_pmo_get_mc_addr_list(struct wlan_objmgr_psoc *psoc,
659*5113495bSYour Name uint8_t vdev_id,
660*5113495bSYour Name struct pmo_mc_addr_list *mc_list_req);
661*5113495bSYour Name
662*5113495bSYour Name /**
663*5113495bSYour Name * ucfg_pmo_cache_gtk_offload_req(): API to cache gtk req in pmo vdev priv obj
664*5113495bSYour Name * @vdev: objmgr vdev handle
665*5113495bSYour Name * @gtk_req: pmo gtk req param
666*5113495bSYour Name *
667*5113495bSYour Name * Return: QDF_STATUS_SUCCESS -in case of success else return error
668*5113495bSYour Name */
669*5113495bSYour Name QDF_STATUS ucfg_pmo_cache_gtk_offload_req(struct wlan_objmgr_vdev *vdev,
670*5113495bSYour Name struct pmo_gtk_req *gtk_req);
671*5113495bSYour Name
672*5113495bSYour Name /**
673*5113495bSYour Name * ucfg_pmo_flush_gtk_offload_req(): Flush saved gtk req from pmo vdev priv obj
674*5113495bSYour Name * @vdev: objmgr vdev handle
675*5113495bSYour Name *
676*5113495bSYour Name * Return: QDF_STATUS_SUCCESS -in case of success else return error
677*5113495bSYour Name */
678*5113495bSYour Name QDF_STATUS ucfg_pmo_flush_gtk_offload_req(struct wlan_objmgr_vdev *vdev);
679*5113495bSYour Name
680*5113495bSYour Name /**
681*5113495bSYour Name * ucfg_pmo_enable_gtk_offload_in_fwr(): enable cached gtk request in fwr
682*5113495bSYour Name * @vdev: objmgr vdev handle
683*5113495bSYour Name *
684*5113495bSYour Name * Return: QDF_STATUS_SUCCESS -in case of success else return error
685*5113495bSYour Name */
686*5113495bSYour Name QDF_STATUS ucfg_pmo_enable_gtk_offload_in_fwr(struct wlan_objmgr_vdev *vdev);
687*5113495bSYour Name
688*5113495bSYour Name #ifdef WLAN_FEATURE_IGMP_OFFLOAD
689*5113495bSYour Name /**
690*5113495bSYour Name * ucfg_pmo_enable_igmp_offload(): enable igmp request in fwr
691*5113495bSYour Name * @vdev: objmgr vdev handle
692*5113495bSYour Name * @pmo_igmp_req: struct pmo_igmp_offload_req
693*5113495bSYour Name *
694*5113495bSYour Name * Return: QDF_STATUS_SUCCESS -in case of success else return error
695*5113495bSYour Name */
696*5113495bSYour Name QDF_STATUS ucfg_pmo_enable_igmp_offload(
697*5113495bSYour Name struct wlan_objmgr_vdev *vdev,
698*5113495bSYour Name struct pmo_igmp_offload_req *pmo_igmp_req);
699*5113495bSYour Name #else
700*5113495bSYour Name static inline
ucfg_pmo_enable_igmp_offload(struct wlan_objmgr_vdev * vdev,struct pmo_igmp_offload_req * pmo_igmp_req)701*5113495bSYour Name QDF_STATUS ucfg_pmo_enable_igmp_offload(
702*5113495bSYour Name struct wlan_objmgr_vdev *vdev,
703*5113495bSYour Name struct pmo_igmp_offload_req *pmo_igmp_req)
704*5113495bSYour Name {
705*5113495bSYour Name return QDF_STATUS_SUCCESS;
706*5113495bSYour Name }
707*5113495bSYour Name #endif
708*5113495bSYour Name
709*5113495bSYour Name /**
710*5113495bSYour Name * ucfg_pmo_disable_gtk_offload_in_fwr(): disable cached gtk request in fwr
711*5113495bSYour Name * @vdev: objmgr vdev handle
712*5113495bSYour Name *
713*5113495bSYour Name * Return: QDF_STATUS_SUCCESS -in case of success else return error
714*5113495bSYour Name */
715*5113495bSYour Name QDF_STATUS ucfg_pmo_disable_gtk_offload_in_fwr(struct wlan_objmgr_vdev *vdev);
716*5113495bSYour Name
717*5113495bSYour Name #ifdef WLAN_FEATURE_PACKET_FILTERING
718*5113495bSYour Name /**
719*5113495bSYour Name * ucfg_pmo_get_pkt_filter_bitmap() - get default packet filters bitmap
720*5113495bSYour Name * @psoc: the psoc to query
721*5113495bSYour Name *
722*5113495bSYour Name * Return: retrieve packet filter bitmap configuration
723*5113495bSYour Name */
724*5113495bSYour Name uint8_t ucfg_pmo_get_pkt_filter_bitmap(struct wlan_objmgr_psoc *psoc);
725*5113495bSYour Name
726*5113495bSYour Name /**
727*5113495bSYour Name * ucfg_pmo_get_num_packet_filters() - get the number of packet filters
728*5113495bSYour Name * @psoc: the psoc to query
729*5113495bSYour Name *
730*5113495bSYour Name * Return: number of packet filters
731*5113495bSYour Name */
732*5113495bSYour Name uint32_t ucfg_pmo_get_num_packet_filters(struct wlan_objmgr_psoc *psoc);
733*5113495bSYour Name
734*5113495bSYour Name /**
735*5113495bSYour Name * ucfg_pmo_set_pkt_filter() - Set packet filter
736*5113495bSYour Name * @psoc: objmgr psoc handle
737*5113495bSYour Name * @pmo_set_pkt_fltr_req: packet filter set param
738*5113495bSYour Name * @vdev_id: vdev id
739*5113495bSYour Name *
740*5113495bSYour Name * Return: QDF_STATUS_SUCCESS -in case of success else return error
741*5113495bSYour Name */
742*5113495bSYour Name QDF_STATUS
743*5113495bSYour Name ucfg_pmo_set_pkt_filter(struct wlan_objmgr_psoc *psoc,
744*5113495bSYour Name struct pmo_rcv_pkt_fltr_cfg *pmo_set_pkt_fltr_req,
745*5113495bSYour Name uint8_t vdev_id);
746*5113495bSYour Name
747*5113495bSYour Name /**
748*5113495bSYour Name * ucfg_pmo_clear_pkt_filter() - Clear packet filter
749*5113495bSYour Name * @psoc: objmgr psoc handle
750*5113495bSYour Name * @pmo_clr_pkt_fltr_param: packet filter clear param
751*5113495bSYour Name * @vdev_id: vdev id
752*5113495bSYour Name *
753*5113495bSYour Name * Return: QDF_STATUS_SUCCESS -in case of success else return error
754*5113495bSYour Name */
755*5113495bSYour Name QDF_STATUS ucfg_pmo_clear_pkt_filter(
756*5113495bSYour Name struct wlan_objmgr_psoc *psoc,
757*5113495bSYour Name struct pmo_rcv_pkt_fltr_clear_param *pmo_clr_pkt_fltr_param,
758*5113495bSYour Name uint8_t vdev_id);
759*5113495bSYour Name #else
760*5113495bSYour Name static inline uint8_t
ucfg_pmo_get_pkt_filter_bitmap(struct wlan_objmgr_psoc * psoc)761*5113495bSYour Name ucfg_pmo_get_pkt_filter_bitmap(struct wlan_objmgr_psoc *psoc)
762*5113495bSYour Name {
763*5113495bSYour Name return 0;
764*5113495bSYour Name }
765*5113495bSYour Name
766*5113495bSYour Name static inline uint32_t
ucfg_pmo_get_num_packet_filters(struct wlan_objmgr_psoc * psoc)767*5113495bSYour Name ucfg_pmo_get_num_packet_filters(struct wlan_objmgr_psoc *psoc)
768*5113495bSYour Name {
769*5113495bSYour Name return 0;
770*5113495bSYour Name }
771*5113495bSYour Name
772*5113495bSYour Name static inline QDF_STATUS
ucfg_pmo_set_pkt_filter(struct wlan_objmgr_psoc * psoc,struct pmo_rcv_pkt_fltr_cfg * pmo_set_pkt_fltr_req,uint8_t vdev_id)773*5113495bSYour Name ucfg_pmo_set_pkt_filter(
774*5113495bSYour Name struct wlan_objmgr_psoc *psoc,
775*5113495bSYour Name struct pmo_rcv_pkt_fltr_cfg *pmo_set_pkt_fltr_req,
776*5113495bSYour Name uint8_t vdev_id)
777*5113495bSYour Name {
778*5113495bSYour Name return QDF_STATUS_SUCCESS;
779*5113495bSYour Name }
780*5113495bSYour Name
781*5113495bSYour Name static inline QDF_STATUS
ucfg_pmo_clear_pkt_filter(struct wlan_objmgr_psoc * psoc,struct pmo_rcv_pkt_fltr_clear_param * pmo_clr_pkt_fltr_param,uint8_t vdev_id)782*5113495bSYour Name ucfg_pmo_clear_pkt_filter(
783*5113495bSYour Name struct wlan_objmgr_psoc *psoc,
784*5113495bSYour Name struct pmo_rcv_pkt_fltr_clear_param *pmo_clr_pkt_fltr_param,
785*5113495bSYour Name uint8_t vdev_id)
786*5113495bSYour Name {
787*5113495bSYour Name return QDF_STATUS_SUCCESS;
788*5113495bSYour Name }
789*5113495bSYour Name #endif
790*5113495bSYour Name
791*5113495bSYour Name /**
792*5113495bSYour Name * ucfg_pmo_get_wow_enable() - Get wow enable type
793*5113495bSYour Name * @psoc: pointer to psoc object
794*5113495bSYour Name *
795*5113495bSYour Name * Return: wow enable type
796*5113495bSYour Name */
797*5113495bSYour Name enum pmo_wow_enable_type
798*5113495bSYour Name ucfg_pmo_get_wow_enable(struct wlan_objmgr_psoc *psoc);
799*5113495bSYour Name
800*5113495bSYour Name /**
801*5113495bSYour Name * ucfg_pmo_set_wow_enable() - Set wow enable type
802*5113495bSYour Name * @psoc: pointer to psoc object
803*5113495bSYour Name * @val: wow enable value
804*5113495bSYour Name *
805*5113495bSYour Name * Return: None
806*5113495bSYour Name */
807*5113495bSYour Name void
808*5113495bSYour Name ucfg_pmo_set_wow_enable(struct wlan_objmgr_psoc *psoc,
809*5113495bSYour Name enum pmo_wow_enable_type val);
810*5113495bSYour Name
811*5113495bSYour Name /**
812*5113495bSYour Name * ucfg_pmo_set_ps_params() - Set vdev OPM params
813*5113495bSYour Name * @vdev: pointer to vdev object
814*5113495bSYour Name * @ps_params: pointer to OPM params
815*5113495bSYour Name *
816*5113495bSYour Name * Return: None
817*5113495bSYour Name */
818*5113495bSYour Name void
819*5113495bSYour Name ucfg_pmo_set_ps_params(struct wlan_objmgr_vdev *vdev,
820*5113495bSYour Name struct pmo_ps_params *ps_params);
821*5113495bSYour Name
822*5113495bSYour Name /**
823*5113495bSYour Name * ucfg_pmo_get_ps_params() - Get vdev OPM params
824*5113495bSYour Name * @vdev: pointer to vdev object
825*5113495bSYour Name * @ps_params: Pointer to get OPM params
826*5113495bSYour Name *
827*5113495bSYour Name * Return: QDF Status
828*5113495bSYour Name */
829*5113495bSYour Name QDF_STATUS ucfg_pmo_get_ps_params(struct wlan_objmgr_vdev *vdev,
830*5113495bSYour Name struct pmo_ps_params *ps_params);
831*5113495bSYour Name
832*5113495bSYour Name /**
833*5113495bSYour Name * ucfg_pmo_core_vdev_set_ps_opm_mode() - Set OPM mode
834*5113495bSYour Name * @vdev: pointer to vdev object
835*5113495bSYour Name * @opm_mode: OPM mode
836*5113495bSYour Name *
837*5113495bSYour Name * Return: QDF Status
838*5113495bSYour Name */
839*5113495bSYour Name QDF_STATUS ucfg_pmo_core_vdev_set_ps_opm_mode(struct wlan_objmgr_vdev *vdev,
840*5113495bSYour Name enum powersave_mode opm_mode);
841*5113495bSYour Name
842*5113495bSYour Name /**
843*5113495bSYour Name * ucfg_pmo_core_vdev_get_ps_opm_mode() - Get OPM mode
844*5113495bSYour Name * @vdev: pointer to vdev object
845*5113495bSYour Name * @opm_mode: OPM mode
846*5113495bSYour Name *
847*5113495bSYour Name * Return: QDF Status
848*5113495bSYour Name */
849*5113495bSYour Name QDF_STATUS ucfg_pmo_core_vdev_get_ps_opm_mode(struct wlan_objmgr_vdev *vdev,
850*5113495bSYour Name enum powersave_mode *opm_mode);
851*5113495bSYour Name
852*5113495bSYour Name /**
853*5113495bSYour Name * ucfg_pmo_get_gtk_rsp(): API to send gtk response request to fwr
854*5113495bSYour Name * @vdev: objmgr vdev handle
855*5113495bSYour Name * @gtk_rsp_req: pmo gtk response request
856*5113495bSYour Name *
857*5113495bSYour Name * This api will send gtk response request to fwr
858*5113495bSYour Name *
859*5113495bSYour Name * Return: QDF_STATUS_SUCCESS -in case of success else return error
860*5113495bSYour Name */
861*5113495bSYour Name QDF_STATUS
862*5113495bSYour Name ucfg_pmo_get_gtk_rsp(struct wlan_objmgr_vdev *vdev,
863*5113495bSYour Name struct pmo_gtk_rsp_req *gtk_rsp_req);
864*5113495bSYour Name
865*5113495bSYour Name /**
866*5113495bSYour Name * ucfg_pmo_update_extscan_in_progress(): update extscan is in progress flags
867*5113495bSYour Name * @vdev: objmgr vdev handle
868*5113495bSYour Name * @value:true if extscan is in progress else false
869*5113495bSYour Name *
870*5113495bSYour Name * Return: TRUE/FALSE
871*5113495bSYour Name */
872*5113495bSYour Name void ucfg_pmo_update_extscan_in_progress(struct wlan_objmgr_vdev *vdev,
873*5113495bSYour Name bool value);
874*5113495bSYour Name
875*5113495bSYour Name /**
876*5113495bSYour Name * ucfg_pmo_update_p2plo_in_progress(): update p2plo is in progress flags
877*5113495bSYour Name * @vdev: objmgr vdev handle
878*5113495bSYour Name * @value:true if p2plo is in progress else false
879*5113495bSYour Name *
880*5113495bSYour Name * Return: TRUE/FALSE
881*5113495bSYour Name */
882*5113495bSYour Name void ucfg_pmo_update_p2plo_in_progress(struct wlan_objmgr_vdev *vdev,
883*5113495bSYour Name bool value);
884*5113495bSYour Name
885*5113495bSYour Name /**
886*5113495bSYour Name * ucfg_pmo_lphb_config_req() - Handles lphb config request for psoc
887*5113495bSYour Name * @psoc: objmgr psoc handle
888*5113495bSYour Name * @lphb_req: low power heart beat request
889*5113495bSYour Name * @lphb_cb_ctx: Context which needs to pass to soif when lphb callback called
890*5113495bSYour Name * @callback: upon receiving of lphb indication from fwr call lphb callback
891*5113495bSYour Name *
892*5113495bSYour Name * Return: QDF status
893*5113495bSYour Name */
894*5113495bSYour Name QDF_STATUS ucfg_pmo_lphb_config_req(struct wlan_objmgr_psoc *psoc,
895*5113495bSYour Name struct pmo_lphb_req *lphb_req,
896*5113495bSYour Name void *lphb_cb_ctx,
897*5113495bSYour Name pmo_lphb_callback callback);
898*5113495bSYour Name
899*5113495bSYour Name /**
900*5113495bSYour Name * ucfg_pmo_psoc_update_power_save_mode() - update power save mode
901*5113495bSYour Name * @psoc: objmgr psoc handle
902*5113495bSYour Name * @value: power save mode
903*5113495bSYour Name *
904*5113495bSYour Name * Return: None
905*5113495bSYour Name */
906*5113495bSYour Name void ucfg_pmo_psoc_update_power_save_mode(struct wlan_objmgr_psoc *psoc,
907*5113495bSYour Name uint8_t value);
908*5113495bSYour Name
909*5113495bSYour Name /**
910*5113495bSYour Name * ucfg_pmo_psoc_update_dp_handle() - update psoc data path handle
911*5113495bSYour Name * @psoc: objmgr psoc handle
912*5113495bSYour Name * @dp_hdl: psoc data path handle
913*5113495bSYour Name *
914*5113495bSYour Name * Return: None
915*5113495bSYour Name */
916*5113495bSYour Name void ucfg_pmo_psoc_update_dp_handle(struct wlan_objmgr_psoc *psoc,
917*5113495bSYour Name void *dp_hdl);
918*5113495bSYour Name
919*5113495bSYour Name /**
920*5113495bSYour Name * ucfg_pmo_psoc_update_htc_handle() - update psoc htc layer handle
921*5113495bSYour Name * @psoc: objmgr psoc handle
922*5113495bSYour Name * @htc_handle: psoc host-to-tagret layer (htc) handle
923*5113495bSYour Name *
924*5113495bSYour Name * Return: None
925*5113495bSYour Name */
926*5113495bSYour Name void ucfg_pmo_psoc_update_htc_handle(struct wlan_objmgr_psoc *psoc,
927*5113495bSYour Name void *htc_handle);
928*5113495bSYour Name
929*5113495bSYour Name /**
930*5113495bSYour Name * ucfg_pmo_psoc_set_hif_handle() - Set psoc hif layer handle
931*5113495bSYour Name * @psoc: objmgr psoc handle
932*5113495bSYour Name * @hif_handle: hif context handle
933*5113495bSYour Name *
934*5113495bSYour Name * Return: None
935*5113495bSYour Name */
936*5113495bSYour Name void ucfg_pmo_psoc_set_hif_handle(struct wlan_objmgr_psoc *psoc,
937*5113495bSYour Name void *hif_handle);
938*5113495bSYour Name
939*5113495bSYour Name /**
940*5113495bSYour Name * ucfg_pmo_psoc_set_txrx_pdev_id() - Set psoc pdev txrx layer handle
941*5113495bSYour Name * @psoc: objmgr psoc handle
942*5113495bSYour Name * @txrx_pdev_id: txrx pdev identifier
943*5113495bSYour Name *
944*5113495bSYour Name * Return: None
945*5113495bSYour Name */
946*5113495bSYour Name void ucfg_pmo_psoc_set_txrx_pdev_id(struct wlan_objmgr_psoc *psoc,
947*5113495bSYour Name uint8_t txrx_pdev_id);
948*5113495bSYour Name
949*5113495bSYour Name /**
950*5113495bSYour Name * ucfg_pmo_psoc_user_space_suspend_req() - Handles user space suspend req
951*5113495bSYour Name * @psoc: objmgr psoc handle
952*5113495bSYour Name * @type: type of suspend
953*5113495bSYour Name *
954*5113495bSYour Name * Handles user space suspend indication for psoc
955*5113495bSYour Name *
956*5113495bSYour Name * Return: QDF status
957*5113495bSYour Name */
958*5113495bSYour Name QDF_STATUS ucfg_pmo_psoc_user_space_suspend_req(struct wlan_objmgr_psoc *psoc,
959*5113495bSYour Name enum qdf_suspend_type type);
960*5113495bSYour Name
961*5113495bSYour Name /**
962*5113495bSYour Name * ucfg_pmo_psoc_user_space_resume_req() - Handles user space resume req
963*5113495bSYour Name * @psoc: objmgr psoc handle
964*5113495bSYour Name * @type: type of suspend from which resume needed
965*5113495bSYour Name *
966*5113495bSYour Name * Handles user space resume indication for psoc
967*5113495bSYour Name *
968*5113495bSYour Name * Return: QDF status
969*5113495bSYour Name */
970*5113495bSYour Name QDF_STATUS ucfg_pmo_psoc_user_space_resume_req(struct wlan_objmgr_psoc *psoc,
971*5113495bSYour Name enum qdf_suspend_type type);
972*5113495bSYour Name
973*5113495bSYour Name /**
974*5113495bSYour Name * ucfg_pmo_suspend_all_components() - Suspend all components
975*5113495bSYour Name * @psoc: objmgr psoc handle
976*5113495bSYour Name * @type: type of suspend
977*5113495bSYour Name *
978*5113495bSYour Name * Suspend all components registered to pmo
979*5113495bSYour Name *
980*5113495bSYour Name * Return: QDF status
981*5113495bSYour Name */
982*5113495bSYour Name QDF_STATUS ucfg_pmo_suspend_all_components(struct wlan_objmgr_psoc *psoc,
983*5113495bSYour Name enum qdf_suspend_type type);
984*5113495bSYour Name
985*5113495bSYour Name /**
986*5113495bSYour Name * ucfg_pmo_resume_all_components() - Resume all components
987*5113495bSYour Name * @psoc: objmgr psoc handle
988*5113495bSYour Name * @type: type of suspend from which resume needed
989*5113495bSYour Name *
990*5113495bSYour Name * Resume all components registered to pmo
991*5113495bSYour Name *
992*5113495bSYour Name * Return: QDF status
993*5113495bSYour Name */
994*5113495bSYour Name QDF_STATUS ucfg_pmo_resume_all_components(struct wlan_objmgr_psoc *psoc,
995*5113495bSYour Name enum qdf_suspend_type type);
996*5113495bSYour Name
997*5113495bSYour Name /**
998*5113495bSYour Name * ucfg_pmo_psoc_bus_suspend_req(): handles bus suspend for psoc
999*5113495bSYour Name * @psoc: objmgr psoc
1000*5113495bSYour Name * @type: is this suspend part of runtime suspend or system suspend?
1001*5113495bSYour Name * @wow_params: collection of wow enable override parameters
1002*5113495bSYour Name *
1003*5113495bSYour Name * Bails if a scan is in progress.
1004*5113495bSYour Name * Calls the appropriate handlers based on configuration and event.
1005*5113495bSYour Name *
1006*5113495bSYour Name * Return: QDF_STATUS_SUCCESS for success or error code
1007*5113495bSYour Name */
1008*5113495bSYour Name QDF_STATUS ucfg_pmo_psoc_bus_suspend_req(
1009*5113495bSYour Name struct wlan_objmgr_psoc *psoc,
1010*5113495bSYour Name enum qdf_suspend_type type,
1011*5113495bSYour Name struct pmo_wow_enable_params *wow_params);
1012*5113495bSYour Name
1013*5113495bSYour Name #ifdef FEATURE_RUNTIME_PM
1014*5113495bSYour Name /**
1015*5113495bSYour Name * ucfg_pmo_psoc_bus_runtime_suspend(): handles bus runtime suspend for psoc
1016*5113495bSYour Name * @psoc: objmgr psoc
1017*5113495bSYour Name * @pld_cb: callback to call link auto suspend
1018*5113495bSYour Name *
1019*5113495bSYour Name * Return: QDF_STATUS_SUCCESS for success or error code
1020*5113495bSYour Name */
1021*5113495bSYour Name QDF_STATUS ucfg_pmo_psoc_bus_runtime_suspend(struct wlan_objmgr_psoc *psoc,
1022*5113495bSYour Name pmo_pld_auto_suspend_cb pld_cb);
1023*5113495bSYour Name
1024*5113495bSYour Name /**
1025*5113495bSYour Name * ucfg_pmo_psoc_bus_runtime_resume(): handles bus runtime resume for psoc
1026*5113495bSYour Name * @psoc: objmgr psoc
1027*5113495bSYour Name * @pld_cb: callback to call link auto resume
1028*5113495bSYour Name *
1029*5113495bSYour Name * Return: QDF_STATUS_SUCCESS for success or error code
1030*5113495bSYour Name */
1031*5113495bSYour Name QDF_STATUS ucfg_pmo_psoc_bus_runtime_resume(struct wlan_objmgr_psoc *psoc,
1032*5113495bSYour Name pmo_pld_auto_resume_cb pld_cb);
1033*5113495bSYour Name #endif
1034*5113495bSYour Name
1035*5113495bSYour Name /**
1036*5113495bSYour Name * ucfg_pmo_psoc_suspend_target() -Send suspend target command
1037*5113495bSYour Name * @psoc: objmgr psoc handle
1038*5113495bSYour Name * @disable_target_intr: disable target interrupt
1039*5113495bSYour Name *
1040*5113495bSYour Name * Return: QDF_STATUS_SUCCESS for success or error code
1041*5113495bSYour Name */
1042*5113495bSYour Name QDF_STATUS
1043*5113495bSYour Name ucfg_pmo_psoc_suspend_target(struct wlan_objmgr_psoc *psoc,
1044*5113495bSYour Name int disable_target_intr);
1045*5113495bSYour Name
1046*5113495bSYour Name QDF_STATUS
1047*5113495bSYour Name ucfg_pmo_add_wow_user_pattern(struct wlan_objmgr_vdev *vdev,
1048*5113495bSYour Name struct pmo_wow_add_pattern *ptrn);
1049*5113495bSYour Name
1050*5113495bSYour Name /**
1051*5113495bSYour Name * ucfg_pmo_register_wow_default_patterns() - register default wow patterns
1052*5113495bSYour Name * with fw
1053*5113495bSYour Name * @vdev: Pointer to object manager vdev
1054*5113495bSYour Name *
1055*5113495bSYour Name * Return: none
1056*5113495bSYour Name */
1057*5113495bSYour Name void ucfg_pmo_register_wow_default_patterns(struct wlan_objmgr_vdev *vdev);
1058*5113495bSYour Name
1059*5113495bSYour Name /**
1060*5113495bSYour Name * ucfg_pmo_del_wow_pattern() - Delete WoWl patterns
1061*5113495bSYour Name * @vdev: objmgr vdev
1062*5113495bSYour Name *
1063*5113495bSYour Name * Return:QDF_STATUS_SUCCESS on success else error code
1064*5113495bSYour Name */
1065*5113495bSYour Name QDF_STATUS
1066*5113495bSYour Name ucfg_pmo_del_wow_pattern(struct wlan_objmgr_vdev *vdev);
1067*5113495bSYour Name
1068*5113495bSYour Name QDF_STATUS
1069*5113495bSYour Name ucfg_pmo_del_wow_user_pattern(struct wlan_objmgr_vdev *vdev,
1070*5113495bSYour Name uint8_t pattern_id);
1071*5113495bSYour Name
1072*5113495bSYour Name /**
1073*5113495bSYour Name * ucfg_pmo_psoc_bus_resume_req() - handle bus resume request for psoc
1074*5113495bSYour Name * @psoc: objmgr psoc handle
1075*5113495bSYour Name * @type: is this suspend part of runtime suspend or system suspend?
1076*5113495bSYour Name *
1077*5113495bSYour Name * Return:QDF_STATUS_SUCCESS on success else error code
1078*5113495bSYour Name */
1079*5113495bSYour Name QDF_STATUS ucfg_pmo_psoc_bus_resume_req(struct wlan_objmgr_psoc *psoc,
1080*5113495bSYour Name enum qdf_suspend_type type);
1081*5113495bSYour Name
1082*5113495bSYour Name /**
1083*5113495bSYour Name * ucfg_pmo_get_wow_bus_suspend(): API to check if wow bus is suspended or not
1084*5113495bSYour Name * @psoc: objmgr psoc handle
1085*5113495bSYour Name *
1086*5113495bSYour Name * Return: True if bus suspende else false
1087*5113495bSYour Name */
1088*5113495bSYour Name bool ucfg_pmo_get_wow_bus_suspend(struct wlan_objmgr_psoc *psoc);
1089*5113495bSYour Name
1090*5113495bSYour Name /**
1091*5113495bSYour Name * ucfg_pmo_psoc_handle_initial_wake_up() - update initial wake up
1092*5113495bSYour Name * @cb_ctx: objmgr psoc handle as void * due to htc layer is not aware psoc
1093*5113495bSYour Name *
1094*5113495bSYour Name * Return: None
1095*5113495bSYour Name */
1096*5113495bSYour Name void ucfg_pmo_psoc_handle_initial_wake_up(void *cb_ctx);
1097*5113495bSYour Name
1098*5113495bSYour Name /**
1099*5113495bSYour Name * ucfg_pmo_psoc_is_target_wake_up_received() - Get initial wake up status
1100*5113495bSYour Name * @psoc: objmgr psoc handle
1101*5113495bSYour Name *
1102*5113495bSYour Name * Return: 0 on success else error code
1103*5113495bSYour Name */
1104*5113495bSYour Name int ucfg_pmo_psoc_is_target_wake_up_received(struct wlan_objmgr_psoc *psoc);
1105*5113495bSYour Name
1106*5113495bSYour Name /**
1107*5113495bSYour Name * ucfg_pmo_psoc_clear_target_wake_up() - Clear initial wake up status
1108*5113495bSYour Name * @psoc: objmgr psoc handle
1109*5113495bSYour Name *
1110*5113495bSYour Name * Return: 0 on success else error code
1111*5113495bSYour Name */
1112*5113495bSYour Name int ucfg_pmo_psoc_clear_target_wake_up(struct wlan_objmgr_psoc *psoc);
1113*5113495bSYour Name
1114*5113495bSYour Name /**
1115*5113495bSYour Name * ucfg_pmo_psoc_target_suspend_acknowledge() - Clear initial wake up status
1116*5113495bSYour Name * @context: caller-provided context
1117*5113495bSYour Name * @wow_nack: Was WoW NACK'ed
1118*5113495bSYour Name * @reason_code: WoW status reason code
1119*5113495bSYour Name *
1120*5113495bSYour Name * Return: None
1121*5113495bSYour Name */
1122*5113495bSYour Name void ucfg_pmo_psoc_target_suspend_acknowledge(void *context, bool wow_nack,
1123*5113495bSYour Name uint16_t reason_code);
1124*5113495bSYour Name
1125*5113495bSYour Name /**
1126*5113495bSYour Name * ucfg_pmo_psoc_wakeup_host_event_received() - got host wake up evennt from fwr
1127*5113495bSYour Name * @psoc: objmgr psoc handle
1128*5113495bSYour Name *
1129*5113495bSYour Name * Return: None
1130*5113495bSYour Name */
1131*5113495bSYour Name void ucfg_pmo_psoc_wakeup_host_event_received(struct wlan_objmgr_psoc *psoc);
1132*5113495bSYour Name
1133*5113495bSYour Name /**
1134*5113495bSYour Name * ucfg_pmo_config_listen_interval() - function to configure listen interval
1135*5113495bSYour Name * @vdev: objmgr vdev
1136*5113495bSYour Name * @listen_interval: new listen interval passed by user
1137*5113495bSYour Name *
1138*5113495bSYour Name * This function allows user to configure listen interval dynamically
1139*5113495bSYour Name *
1140*5113495bSYour Name * Return: QDF_STATUS
1141*5113495bSYour Name */
1142*5113495bSYour Name QDF_STATUS ucfg_pmo_config_listen_interval(struct wlan_objmgr_vdev *vdev,
1143*5113495bSYour Name uint32_t listen_interval);
1144*5113495bSYour Name
1145*5113495bSYour Name /**
1146*5113495bSYour Name * ucfg_pmo_get_listen_interval() - function to get listen interval
1147*5113495bSYour Name * @vdev: objmgr vdev
1148*5113495bSYour Name * @listen_interval: pointer to store listen interval
1149*5113495bSYour Name *
1150*5113495bSYour Name * This function allows user to get listen interval dynamically
1151*5113495bSYour Name *
1152*5113495bSYour Name * Return: QDF_STATUS
1153*5113495bSYour Name */
1154*5113495bSYour Name QDF_STATUS ucfg_pmo_get_listen_interval(struct wlan_objmgr_vdev *vdev,
1155*5113495bSYour Name uint32_t *listen_interval);
1156*5113495bSYour Name
1157*5113495bSYour Name /**
1158*5113495bSYour Name * ucfg_pmo_config_modulated_dtim() - function to configure modulated dtim
1159*5113495bSYour Name * @vdev: objmgr vdev handle
1160*5113495bSYour Name * @mod_dtim: New modulated dtim value passed by user
1161*5113495bSYour Name *
1162*5113495bSYour Name * This function configures the modulated dtim in firmware
1163*5113495bSYour Name *
1164*5113495bSYour Name * Return: QDF_STATUS
1165*5113495bSYour Name */
1166*5113495bSYour Name QDF_STATUS ucfg_pmo_config_modulated_dtim(struct wlan_objmgr_vdev *vdev,
1167*5113495bSYour Name uint32_t mod_dtim);
1168*5113495bSYour Name
1169*5113495bSYour Name #ifdef WLAN_FEATURE_WOW_PULSE
1170*5113495bSYour Name /**
1171*5113495bSYour Name * ucfg_pmo_is_wow_pulse_enabled() - to get wow pulse enable configuration
1172*5113495bSYour Name * @psoc: objmgr psoc handle
1173*5113495bSYour Name *
1174*5113495bSYour Name * Return: wow pulse enable configuration
1175*5113495bSYour Name */
1176*5113495bSYour Name bool ucfg_pmo_is_wow_pulse_enabled(struct wlan_objmgr_psoc *psoc);
1177*5113495bSYour Name
1178*5113495bSYour Name /**
1179*5113495bSYour Name * ucfg_pmo_get_wow_pulse_pin() - to get wow pulse pin configuration
1180*5113495bSYour Name * @psoc: objmgr psoc handle
1181*5113495bSYour Name *
1182*5113495bSYour Name * Return: wow pulse pin configuration
1183*5113495bSYour Name */
1184*5113495bSYour Name uint8_t ucfg_pmo_get_wow_pulse_pin(struct wlan_objmgr_psoc *psoc);
1185*5113495bSYour Name
1186*5113495bSYour Name /**
1187*5113495bSYour Name * ucfg_pmo_get_wow_pulse_interval_high() - to get wow pulse interval high
1188*5113495bSYour Name * @psoc: objmgr psoc handle
1189*5113495bSYour Name *
1190*5113495bSYour Name * Return: wow pulse interval high configuration
1191*5113495bSYour Name */
1192*5113495bSYour Name uint16_t ucfg_pmo_get_wow_pulse_interval_high(struct wlan_objmgr_psoc *psoc);
1193*5113495bSYour Name
1194*5113495bSYour Name /**
1195*5113495bSYour Name * ucfg_pmo_get_wow_pulse_interval_low() - to get wow pulse interval low
1196*5113495bSYour Name * @psoc: objmgr psoc handle
1197*5113495bSYour Name *
1198*5113495bSYour Name * Return: wow pulse interval high configuration
1199*5113495bSYour Name */
1200*5113495bSYour Name uint16_t ucfg_pmo_get_wow_pulse_interval_low(struct wlan_objmgr_psoc *psoc);
1201*5113495bSYour Name
1202*5113495bSYour Name /**
1203*5113495bSYour Name * ucfg_pmo_get_wow_pulse_repeat_count() - to get wow pulse repeat count
1204*5113495bSYour Name * @psoc: objmgr psoc handle
1205*5113495bSYour Name *
1206*5113495bSYour Name * Return: wow pulse repeat count configuration
1207*5113495bSYour Name */
1208*5113495bSYour Name uint32_t ucfg_pmo_get_wow_pulse_repeat_count(struct wlan_objmgr_psoc *psoc);
1209*5113495bSYour Name
1210*5113495bSYour Name /**
1211*5113495bSYour Name * ucfg_pmo_get_wow_pulse_init_state() - to get wow pulse init state
1212*5113495bSYour Name * @psoc: objmgr psoc handle
1213*5113495bSYour Name *
1214*5113495bSYour Name * Return: wow pulse init state configuration
1215*5113495bSYour Name */
1216*5113495bSYour Name uint32_t ucfg_pmo_get_wow_pulse_init_state(struct wlan_objmgr_psoc *psoc);
1217*5113495bSYour Name #else
1218*5113495bSYour Name static inline bool
ucfg_pmo_is_wow_pulse_enabled(struct wlan_objmgr_psoc * psoc)1219*5113495bSYour Name ucfg_pmo_is_wow_pulse_enabled(struct wlan_objmgr_psoc *psoc)
1220*5113495bSYour Name {
1221*5113495bSYour Name return false;
1222*5113495bSYour Name }
1223*5113495bSYour Name
1224*5113495bSYour Name static inline uint8_t
ucfg_pmo_get_wow_pulse_pin(struct wlan_objmgr_psoc * psoc)1225*5113495bSYour Name ucfg_pmo_get_wow_pulse_pin(struct wlan_objmgr_psoc *psoc)
1226*5113495bSYour Name {
1227*5113495bSYour Name return 0;
1228*5113495bSYour Name }
1229*5113495bSYour Name
1230*5113495bSYour Name static inline uint16_t
ucfg_pmo_get_wow_pulse_interval_high(struct wlan_objmgr_psoc * psoc)1231*5113495bSYour Name ucfg_pmo_get_wow_pulse_interval_high(struct wlan_objmgr_psoc *psoc)
1232*5113495bSYour Name {
1233*5113495bSYour Name return 0;
1234*5113495bSYour Name }
1235*5113495bSYour Name
1236*5113495bSYour Name static inline uint32_t
ucfg_pmo_get_wow_pulse_repeat_count(struct wlan_objmgr_psoc * psoc)1237*5113495bSYour Name ucfg_pmo_get_wow_pulse_repeat_count(struct wlan_objmgr_psoc *psoc)
1238*5113495bSYour Name {
1239*5113495bSYour Name return 0;
1240*5113495bSYour Name }
1241*5113495bSYour Name
1242*5113495bSYour Name static inline uint32_t
ucfg_pmo_get_wow_pulse_init_state(struct wlan_objmgr_psoc * psoc)1243*5113495bSYour Name ucfg_pmo_get_wow_pulse_init_state(struct wlan_objmgr_psoc *psoc)
1244*5113495bSYour Name {
1245*5113495bSYour Name return 0;
1246*5113495bSYour Name }
1247*5113495bSYour Name #endif
1248*5113495bSYour Name
1249*5113495bSYour Name /**
1250*5113495bSYour Name * ucfg_pmo_is_active_mode_offloaded() - get active mode offload configuration
1251*5113495bSYour Name * @psoc: objmgr psoc handle
1252*5113495bSYour Name *
1253*5113495bSYour Name * Return: retrieve active mode offload configuration
1254*5113495bSYour Name */
1255*5113495bSYour Name bool ucfg_pmo_is_active_mode_offloaded(struct wlan_objmgr_psoc *psoc);
1256*5113495bSYour Name
1257*5113495bSYour Name /**
1258*5113495bSYour Name * ucfg_pmo_get_auto_power_fail_mode() - to get auto power save failure mode
1259*5113495bSYour Name * @psoc: objmgr psoc handle
1260*5113495bSYour Name *
1261*5113495bSYour Name * Return: auto power save failure mode configuration
1262*5113495bSYour Name */
1263*5113495bSYour Name enum pmo_auto_pwr_detect_failure_mode
1264*5113495bSYour Name ucfg_pmo_get_auto_power_fail_mode(struct wlan_objmgr_psoc *psoc);
1265*5113495bSYour Name
1266*5113495bSYour Name /**
1267*5113495bSYour Name * ucfg_pmo_set_wow_data_inactivity_timeout() - Set wow data inactivity timeout
1268*5113495bSYour Name * @psoc: pointer to psoc object
1269*5113495bSYour Name * @val: wow data inactivity timeout value
1270*5113495bSYour Name *
1271*5113495bSYour Name * Return: None
1272*5113495bSYour Name */
1273*5113495bSYour Name void
1274*5113495bSYour Name ucfg_pmo_set_wow_data_inactivity_timeout(struct wlan_objmgr_psoc *psoc,
1275*5113495bSYour Name uint8_t val);
1276*5113495bSYour Name
1277*5113495bSYour Name /**
1278*5113495bSYour Name * ucfg_pmo_is_pkt_filter_enabled() - pmo packet filter feature enable or not
1279*5113495bSYour Name * @psoc: objmgr psoc handle
1280*5113495bSYour Name *
1281*5113495bSYour Name * Return: pmo packet filter feature enable/disable
1282*5113495bSYour Name */
1283*5113495bSYour Name bool ucfg_pmo_is_pkt_filter_enabled(struct wlan_objmgr_psoc *psoc);
1284*5113495bSYour Name
1285*5113495bSYour Name /**
1286*5113495bSYour Name * ucfg_pmo_get_active_uc_apf_mode() - to get the modes active APF
1287*5113495bSYour Name * for MC/BC packets
1288*5113495bSYour Name * @psoc: objmgr psoc handle
1289*5113495bSYour Name *
1290*5113495bSYour Name * Return: the modes active APF
1291*5113495bSYour Name */
1292*5113495bSYour Name enum active_apf_mode
1293*5113495bSYour Name ucfg_pmo_get_active_uc_apf_mode(struct wlan_objmgr_psoc *psoc);
1294*5113495bSYour Name
1295*5113495bSYour Name /**
1296*5113495bSYour Name * ucfg_pmo_get_active_mc_bc_apf_mode() - to get the modes active APF
1297*5113495bSYour Name * for uc packets
1298*5113495bSYour Name * @psoc: objmgr psoc handle
1299*5113495bSYour Name *
1300*5113495bSYour Name * Return: the modes active APF
1301*5113495bSYour Name */
1302*5113495bSYour Name enum active_apf_mode
1303*5113495bSYour Name ucfg_pmo_get_active_mc_bc_apf_mode(struct wlan_objmgr_psoc *psoc);
1304*5113495bSYour Name #ifdef FEATURE_WLAN_APF
1305*5113495bSYour Name /**
1306*5113495bSYour Name * ucfg_pmo_is_apf_enabled() - to get apf configuration
1307*5113495bSYour Name * @psoc: objmgr psoc handle
1308*5113495bSYour Name *
1309*5113495bSYour Name * Return: true if enabled, it is intersection of ini and target cap
1310*5113495bSYour Name */
1311*5113495bSYour Name bool ucfg_pmo_is_apf_enabled(struct wlan_objmgr_psoc *psoc);
1312*5113495bSYour Name #else
ucfg_pmo_is_apf_enabled(struct wlan_objmgr_psoc * psoc)1313*5113495bSYour Name static inline bool ucfg_pmo_is_apf_enabled(struct wlan_objmgr_psoc *psoc)
1314*5113495bSYour Name {
1315*5113495bSYour Name return false;
1316*5113495bSYour Name }
1317*5113495bSYour Name #endif
1318*5113495bSYour Name
1319*5113495bSYour Name #ifdef WLAN_ENABLE_GPIO_WAKEUP
1320*5113495bSYour Name /**
1321*5113495bSYour Name * ucfg_pmo_is_gpio_wakeup_enabled() - to get gpio wakeup enable configuration
1322*5113495bSYour Name * @psoc: objmgr psoc handle
1323*5113495bSYour Name *
1324*5113495bSYour Name * Return: gpio wakeup enable configuration
1325*5113495bSYour Name */
1326*5113495bSYour Name bool ucfg_pmo_is_gpio_wakeup_enabled(struct wlan_objmgr_psoc *psoc);
1327*5113495bSYour Name
1328*5113495bSYour Name /**
1329*5113495bSYour Name * ucfg_pmo_get_gpio_wakeup_pin() - to get gpio wakeup pin number
1330*5113495bSYour Name * @psoc: objmgr psoc handle
1331*5113495bSYour Name *
1332*5113495bSYour Name * Return: gpio wakeup pin number
1333*5113495bSYour Name */
1334*5113495bSYour Name uint32_t ucfg_pmo_get_gpio_wakeup_pin(struct wlan_objmgr_psoc *psoc);
1335*5113495bSYour Name
1336*5113495bSYour Name /**
1337*5113495bSYour Name * ucfg_pmo_get_gpio_wakeup_mode() - to get gpio wakeup interrupt mode
1338*5113495bSYour Name * @psoc: objmgr psoc handle
1339*5113495bSYour Name *
1340*5113495bSYour Name * Return: gpio wakeup mode
1341*5113495bSYour Name */
1342*5113495bSYour Name enum pmo_gpio_wakeup_mode
1343*5113495bSYour Name ucfg_pmo_get_gpio_wakeup_mode(struct wlan_objmgr_psoc *psoc);
1344*5113495bSYour Name #else
1345*5113495bSYour Name static inline bool
ucfg_pmo_is_gpio_wakeup_enabled(struct wlan_objmgr_psoc * psoc)1346*5113495bSYour Name ucfg_pmo_is_gpio_wakeup_enabled(struct wlan_objmgr_psoc *psoc)
1347*5113495bSYour Name {
1348*5113495bSYour Name return false;
1349*5113495bSYour Name }
1350*5113495bSYour Name
1351*5113495bSYour Name static inline uint32_t
ucfg_pmo_get_gpio_wakeup_pin(struct wlan_objmgr_psoc * psoc)1352*5113495bSYour Name ucfg_pmo_get_gpio_wakeup_pin(struct wlan_objmgr_psoc *psoc)
1353*5113495bSYour Name {
1354*5113495bSYour Name return 0;
1355*5113495bSYour Name }
1356*5113495bSYour Name
1357*5113495bSYour Name static inline enum pmo_gpio_wakeup_mode
ucfg_pmo_get_gpio_wakeup_mode(struct wlan_objmgr_psoc * psoc)1358*5113495bSYour Name ucfg_pmo_get_gpio_wakeup_mode(struct wlan_objmgr_psoc *psoc)
1359*5113495bSYour Name {
1360*5113495bSYour Name return PMO_GPIO_WAKEUP_MODE_INVALID;
1361*5113495bSYour Name }
1362*5113495bSYour Name #endif
1363*5113495bSYour Name
1364*5113495bSYour Name /**
1365*5113495bSYour Name * ucfg_pmo_core_txrx_suspend(): suspends TX/RX
1366*5113495bSYour Name * @psoc: objmgr psoc
1367*5113495bSYour Name *
1368*5113495bSYour Name * Return: QDF_STATUS_SUCCESS for success or error code
1369*5113495bSYour Name */
1370*5113495bSYour Name QDF_STATUS ucfg_pmo_core_txrx_suspend(struct wlan_objmgr_psoc *psoc);
1371*5113495bSYour Name
1372*5113495bSYour Name /**
1373*5113495bSYour Name * ucfg_pmo_core_txrx_resume(): resumes TX/RX
1374*5113495bSYour Name * @psoc: objmgr psoc
1375*5113495bSYour Name *
1376*5113495bSYour Name * Return: QDF_STATUS_SUCCESS for success or error code
1377*5113495bSYour Name */
1378*5113495bSYour Name QDF_STATUS ucfg_pmo_core_txrx_resume(struct wlan_objmgr_psoc *psoc);
1379*5113495bSYour Name
1380*5113495bSYour Name /**
1381*5113495bSYour Name * ucfg_pmo_get_moddtim_user_enable() - Get moddtim user enable
1382*5113495bSYour Name * @vdev: objmgr vdev handle
1383*5113495bSYour Name *
1384*5113495bSYour Name * Return: moddtim user enabled or not
1385*5113495bSYour Name */
1386*5113495bSYour Name bool ucfg_pmo_get_moddtim_user_enable(struct wlan_objmgr_vdev *vdev);
1387*5113495bSYour Name
1388*5113495bSYour Name /**
1389*5113495bSYour Name * ucfg_pmo_set_moddtim_user_enable() - Set moddtim user enable
1390*5113495bSYour Name * @vdev: objmgr vdev handle
1391*5113495bSYour Name * @value: moddtim user enable or not
1392*5113495bSYour Name *
1393*5113495bSYour Name * Return: none
1394*5113495bSYour Name */
1395*5113495bSYour Name void ucfg_pmo_set_moddtim_user_enable(struct wlan_objmgr_vdev *vdev,
1396*5113495bSYour Name bool value);
1397*5113495bSYour Name /**
1398*5113495bSYour Name * ucfg_pmo_get_moddtim_user_active() - Get moddtim user active
1399*5113495bSYour Name * @vdev: objmgr vdev handle
1400*5113495bSYour Name *
1401*5113495bSYour Name * Return: moddtim user active
1402*5113495bSYour Name */
1403*5113495bSYour Name bool ucfg_pmo_get_moddtim_user_active(struct wlan_objmgr_vdev *vdev);
1404*5113495bSYour Name
1405*5113495bSYour Name /**
1406*5113495bSYour Name * ucfg_pmo_get_moddtim_user() - Get moddtim user value
1407*5113495bSYour Name * @vdev: objmgr vdev handle
1408*5113495bSYour Name *
1409*5113495bSYour Name * Return: moddtim user value
1410*5113495bSYour Name */
1411*5113495bSYour Name uint32_t ucfg_pmo_get_moddtim_user(struct wlan_objmgr_vdev *vdev);
1412*5113495bSYour Name
1413*5113495bSYour Name /*
1414*5113495bSYour Name * ucfg_pmo_get_ssr_frequency_on_pagefault: get ssr frequency on pagefault
1415*5113495bSYour Name * @psoc: objmgr psoc
1416*5113495bSYour Name *
1417*5113495bSYour Name * Return: SSR frequency on pagefault
1418*5113495bSYour Name */
1419*5113495bSYour Name uint32_t ucfg_pmo_get_ssr_frequency_on_pagefault(struct wlan_objmgr_psoc *psoc);
1420*5113495bSYour Name
1421*5113495bSYour Name /*
1422*5113495bSYour Name * ucfg_pmo_get_disconnect_sap_tdls_in_wow: get if disconnect sap/p2p_go
1423*5113495bSYour Name * or tdls in wow
1424*5113495bSYour Name * @psoc: objmgr psoc
1425*5113495bSYour Name *
1426*5113495bSYour Name * Return: true in case support else false
1427*5113495bSYour Name */
1428*5113495bSYour Name bool
1429*5113495bSYour Name ucfg_pmo_get_disconnect_sap_tdls_in_wow(struct wlan_objmgr_psoc *psoc);
1430*5113495bSYour Name
1431*5113495bSYour Name #ifdef WLAN_FEATURE_ICMP_OFFLOAD
1432*5113495bSYour Name /**
1433*5113495bSYour Name * ucfg_pmo_check_icmp_offload() - API to check if icmp offload is enabled
1434*5113495bSYour Name * @psoc: objmgr psoc handle
1435*5113495bSYour Name * @vdev_id: vdev_id
1436*5113495bSYour Name *
1437*5113495bSYour Name * Return: QDF_STATUS_SUCCESS for success or error code
1438*5113495bSYour Name */
1439*5113495bSYour Name QDF_STATUS ucfg_pmo_check_icmp_offload(struct wlan_objmgr_psoc *psoc,
1440*5113495bSYour Name uint8_t vdev_id);
1441*5113495bSYour Name
1442*5113495bSYour Name /**
1443*5113495bSYour Name * ucfg_pmo_is_icmp_offload_enabled() - Get icmp offload enable or not
1444*5113495bSYour Name * @psoc: pointer to psoc object
1445*5113495bSYour Name *
1446*5113495bSYour Name * Return: icmp offload enable or not
1447*5113495bSYour Name */
1448*5113495bSYour Name bool
1449*5113495bSYour Name ucfg_pmo_is_icmp_offload_enabled(struct wlan_objmgr_psoc *psoc);
1450*5113495bSYour Name
1451*5113495bSYour Name /**
1452*5113495bSYour Name * ucfg_pmo_config_icmp_offload() - API to enable icmp offload request
1453*5113495bSYour Name * @psoc: pointer to psoc object
1454*5113495bSYour Name * @pmo_icmp_req: ICMP offload parameters
1455*5113495bSYour Name *
1456*5113495bSYour Name * Return: QDF_STATUS_SUCCESS for success or error code
1457*5113495bSYour Name */
1458*5113495bSYour Name QDF_STATUS
1459*5113495bSYour Name ucfg_pmo_config_icmp_offload(struct wlan_objmgr_psoc *psoc,
1460*5113495bSYour Name struct pmo_icmp_offload *pmo_icmp_req);
1461*5113495bSYour Name #endif
1462*5113495bSYour Name #else /* WLAN_POWER_MANAGEMENT_OFFLOAD */
1463*5113495bSYour Name static inline QDF_STATUS
ucfg_pmo_psoc_open(struct wlan_objmgr_psoc * psoc)1464*5113495bSYour Name ucfg_pmo_psoc_open(struct wlan_objmgr_psoc *psoc)
1465*5113495bSYour Name {
1466*5113495bSYour Name return QDF_STATUS_SUCCESS;
1467*5113495bSYour Name }
1468*5113495bSYour Name
1469*5113495bSYour Name static inline QDF_STATUS
ucfg_pmo_psoc_close(struct wlan_objmgr_psoc * psoc)1470*5113495bSYour Name ucfg_pmo_psoc_close(struct wlan_objmgr_psoc *psoc)
1471*5113495bSYour Name {
1472*5113495bSYour Name return QDF_STATUS_SUCCESS;
1473*5113495bSYour Name }
1474*5113495bSYour Name
1475*5113495bSYour Name static inline uint32_t
ucfg_pmo_get_apf_instruction_size(struct wlan_objmgr_psoc * psoc)1476*5113495bSYour Name ucfg_pmo_get_apf_instruction_size(struct wlan_objmgr_psoc *psoc)
1477*5113495bSYour Name {
1478*5113495bSYour Name return 0;
1479*5113495bSYour Name }
1480*5113495bSYour Name
1481*5113495bSYour Name static inline uint8_t
ucfg_pmo_get_pkt_filter_bitmap(struct wlan_objmgr_psoc * psoc)1482*5113495bSYour Name ucfg_pmo_get_pkt_filter_bitmap(struct wlan_objmgr_psoc *psoc)
1483*5113495bSYour Name {
1484*5113495bSYour Name return 0;
1485*5113495bSYour Name }
1486*5113495bSYour Name
1487*5113495bSYour Name static inline uint32_t
ucfg_pmo_get_num_packet_filters(struct wlan_objmgr_psoc * psoc)1488*5113495bSYour Name ucfg_pmo_get_num_packet_filters(struct wlan_objmgr_psoc *psoc)
1489*5113495bSYour Name {
1490*5113495bSYour Name return 0;
1491*5113495bSYour Name }
1492*5113495bSYour Name
1493*5113495bSYour Name static inline uint8_t
ucfg_pmo_get_num_wow_filters(struct wlan_objmgr_psoc * psoc)1494*5113495bSYour Name ucfg_pmo_get_num_wow_filters(struct wlan_objmgr_psoc *psoc)
1495*5113495bSYour Name {
1496*5113495bSYour Name return 0;
1497*5113495bSYour Name }
1498*5113495bSYour Name
1499*5113495bSYour Name static inline QDF_STATUS
ucfg_pmo_get_psoc_config(struct wlan_objmgr_psoc * psoc,struct pmo_psoc_cfg * psoc_cfg)1500*5113495bSYour Name ucfg_pmo_get_psoc_config(
1501*5113495bSYour Name struct wlan_objmgr_psoc *psoc,
1502*5113495bSYour Name struct pmo_psoc_cfg *psoc_cfg)
1503*5113495bSYour Name {
1504*5113495bSYour Name return QDF_STATUS_SUCCESS;
1505*5113495bSYour Name }
1506*5113495bSYour Name
1507*5113495bSYour Name static inline QDF_STATUS
ucfg_pmo_update_psoc_config(struct wlan_objmgr_psoc * psoc,struct pmo_psoc_cfg * psoc_cfg)1508*5113495bSYour Name ucfg_pmo_update_psoc_config(
1509*5113495bSYour Name struct wlan_objmgr_psoc *psoc,
1510*5113495bSYour Name struct pmo_psoc_cfg *psoc_cfg)
1511*5113495bSYour Name {
1512*5113495bSYour Name return QDF_STATUS_SUCCESS;
1513*5113495bSYour Name }
1514*5113495bSYour Name
1515*5113495bSYour Name static inline QDF_STATUS
ucfg_pmo_psoc_set_caps(struct wlan_objmgr_psoc * psoc,struct pmo_device_caps * caps)1516*5113495bSYour Name ucfg_pmo_psoc_set_caps(
1517*5113495bSYour Name struct wlan_objmgr_psoc *psoc,
1518*5113495bSYour Name struct pmo_device_caps *caps)
1519*5113495bSYour Name {
1520*5113495bSYour Name return QDF_STATUS_SUCCESS;
1521*5113495bSYour Name }
1522*5113495bSYour Name
1523*5113495bSYour Name static inline bool
ucfg_pmo_is_ap_mode_supports_arp_ns(struct wlan_objmgr_psoc * psoc,enum QDF_OPMODE vdev_opmode)1524*5113495bSYour Name ucfg_pmo_is_ap_mode_supports_arp_ns(
1525*5113495bSYour Name struct wlan_objmgr_psoc *psoc,
1526*5113495bSYour Name enum QDF_OPMODE vdev_opmode)
1527*5113495bSYour Name {
1528*5113495bSYour Name return true;
1529*5113495bSYour Name }
1530*5113495bSYour Name
1531*5113495bSYour Name static inline bool
ucfg_pmo_is_vdev_connected(struct wlan_objmgr_vdev * vdev)1532*5113495bSYour Name ucfg_pmo_is_vdev_connected(struct wlan_objmgr_vdev *vdev)
1533*5113495bSYour Name {
1534*5113495bSYour Name return true;
1535*5113495bSYour Name }
1536*5113495bSYour Name
1537*5113495bSYour Name static inline bool
ucfg_pmo_is_vdev_supports_offload(struct wlan_objmgr_vdev * vdev)1538*5113495bSYour Name ucfg_pmo_is_vdev_supports_offload(struct wlan_objmgr_vdev *vdev)
1539*5113495bSYour Name {
1540*5113495bSYour Name return true;
1541*5113495bSYour Name }
1542*5113495bSYour Name
1543*5113495bSYour Name static inline void
ucfg_pmo_enable_wakeup_event(struct wlan_objmgr_psoc * psoc,uint32_t vdev_id,uint32_t * bitmap)1544*5113495bSYour Name ucfg_pmo_enable_wakeup_event(
1545*5113495bSYour Name struct wlan_objmgr_psoc *psoc,
1546*5113495bSYour Name uint32_t vdev_id, uint32_t *bitmap)
1547*5113495bSYour Name {
1548*5113495bSYour Name }
1549*5113495bSYour Name
1550*5113495bSYour Name static inline void
ucfg_pmo_disable_wakeup_event(struct wlan_objmgr_psoc * psoc,uint32_t vdev_id,uint32_t bitmap)1551*5113495bSYour Name ucfg_pmo_disable_wakeup_event(
1552*5113495bSYour Name struct wlan_objmgr_psoc *psoc,
1553*5113495bSYour Name uint32_t vdev_id, uint32_t bitmap)
1554*5113495bSYour Name {
1555*5113495bSYour Name }
1556*5113495bSYour Name
1557*5113495bSYour Name static inline QDF_STATUS
ucfg_pmo_cache_arp_offload_req(struct pmo_arp_req * arp_req)1558*5113495bSYour Name ucfg_pmo_cache_arp_offload_req(struct pmo_arp_req *arp_req)
1559*5113495bSYour Name {
1560*5113495bSYour Name return QDF_STATUS_SUCCESS;
1561*5113495bSYour Name }
1562*5113495bSYour Name
1563*5113495bSYour Name static inline
ucfg_pmo_check_arp_offload(struct wlan_objmgr_psoc * psoc,enum pmo_offload_trigger trigger,uint8_t vdev_id)1564*5113495bSYour Name QDF_STATUS ucfg_pmo_check_arp_offload(struct wlan_objmgr_psoc *psoc,
1565*5113495bSYour Name enum pmo_offload_trigger trigger,
1566*5113495bSYour Name uint8_t vdev_id)
1567*5113495bSYour Name {
1568*5113495bSYour Name return QDF_STATUS_SUCCESS;
1569*5113495bSYour Name }
1570*5113495bSYour Name
1571*5113495bSYour Name static inline QDF_STATUS
ucfg_pmo_flush_arp_offload_req(struct wlan_objmgr_vdev * vdev)1572*5113495bSYour Name ucfg_pmo_flush_arp_offload_req(struct wlan_objmgr_vdev *vdev)
1573*5113495bSYour Name {
1574*5113495bSYour Name return QDF_STATUS_SUCCESS;
1575*5113495bSYour Name }
1576*5113495bSYour Name
1577*5113495bSYour Name static inline QDF_STATUS
ucfg_pmo_enable_arp_offload_in_fwr(struct wlan_objmgr_vdev * vdev,enum pmo_offload_trigger trigger)1578*5113495bSYour Name ucfg_pmo_enable_arp_offload_in_fwr(
1579*5113495bSYour Name struct wlan_objmgr_vdev *vdev,
1580*5113495bSYour Name enum pmo_offload_trigger trigger)
1581*5113495bSYour Name {
1582*5113495bSYour Name return QDF_STATUS_SUCCESS;
1583*5113495bSYour Name }
1584*5113495bSYour Name
1585*5113495bSYour Name static inline QDF_STATUS
ucfg_pmo_disable_arp_offload_in_fwr(struct wlan_objmgr_vdev * vdev,enum pmo_offload_trigger trigger)1586*5113495bSYour Name ucfg_pmo_disable_arp_offload_in_fwr(
1587*5113495bSYour Name struct wlan_objmgr_vdev *vdev,
1588*5113495bSYour Name enum pmo_offload_trigger trigger)
1589*5113495bSYour Name {
1590*5113495bSYour Name return QDF_STATUS_SUCCESS;
1591*5113495bSYour Name }
1592*5113495bSYour Name
1593*5113495bSYour Name static inline QDF_STATUS
ucfg_pmo_get_arp_offload_params(struct wlan_objmgr_vdev * vdev,struct pmo_arp_offload_params * params)1594*5113495bSYour Name ucfg_pmo_get_arp_offload_params(struct wlan_objmgr_vdev *vdev,
1595*5113495bSYour Name struct pmo_arp_offload_params *params)
1596*5113495bSYour Name {
1597*5113495bSYour Name return QDF_STATUS_SUCCESS;
1598*5113495bSYour Name }
1599*5113495bSYour Name
1600*5113495bSYour Name static inline QDF_STATUS
ucfg_pmo_cache_ns_offload_req(struct pmo_ns_req * ns_req)1601*5113495bSYour Name ucfg_pmo_cache_ns_offload_req(struct pmo_ns_req *ns_req)
1602*5113495bSYour Name {
1603*5113495bSYour Name return QDF_STATUS_SUCCESS;
1604*5113495bSYour Name }
1605*5113495bSYour Name
ucfg_pmo_ns_offload_check(struct wlan_objmgr_psoc * psoc,enum pmo_offload_trigger trigger,uint8_t vdev_id)1606*5113495bSYour Name QDF_STATUS ucfg_pmo_ns_offload_check(struct wlan_objmgr_psoc *psoc,
1607*5113495bSYour Name enum pmo_offload_trigger trigger,
1608*5113495bSYour Name uint8_t vdev_id)
1609*5113495bSYour Name {
1610*5113495bSYour Name return QDF_STATUS_SUCCESS;
1611*5113495bSYour Name }
1612*5113495bSYour Name
1613*5113495bSYour Name static inline QDF_STATUS
ucfg_pmo_flush_ns_offload_req(struct wlan_objmgr_vdev * vdev)1614*5113495bSYour Name ucfg_pmo_flush_ns_offload_req(struct wlan_objmgr_vdev *vdev)
1615*5113495bSYour Name {
1616*5113495bSYour Name return QDF_STATUS_SUCCESS;
1617*5113495bSYour Name }
1618*5113495bSYour Name
1619*5113495bSYour Name static inline QDF_STATUS
ucfg_pmo_enable_ns_offload_in_fwr(struct wlan_objmgr_vdev * vdev,enum pmo_offload_trigger trigger)1620*5113495bSYour Name ucfg_pmo_enable_ns_offload_in_fwr(
1621*5113495bSYour Name struct wlan_objmgr_vdev *vdev,
1622*5113495bSYour Name enum pmo_offload_trigger trigger)
1623*5113495bSYour Name {
1624*5113495bSYour Name return QDF_STATUS_SUCCESS;
1625*5113495bSYour Name }
1626*5113495bSYour Name
1627*5113495bSYour Name static inline QDF_STATUS
ucfg_pmo_disable_ns_offload_in_fwr(struct wlan_objmgr_vdev * vdev,enum pmo_offload_trigger trigger)1628*5113495bSYour Name ucfg_pmo_disable_ns_offload_in_fwr(
1629*5113495bSYour Name struct wlan_objmgr_vdev *vdev,
1630*5113495bSYour Name enum pmo_offload_trigger trigger)
1631*5113495bSYour Name {
1632*5113495bSYour Name return QDF_STATUS_SUCCESS;
1633*5113495bSYour Name }
1634*5113495bSYour Name
1635*5113495bSYour Name static inline QDF_STATUS
ucfg_pmo_get_ns_offload_params(struct wlan_objmgr_vdev * vdev,struct pmo_ns_offload_params * params)1636*5113495bSYour Name ucfg_pmo_get_ns_offload_params(struct wlan_objmgr_vdev *vdev,
1637*5113495bSYour Name struct pmo_ns_offload_params *params)
1638*5113495bSYour Name {
1639*5113495bSYour Name return QDF_STATUS_SUCCESS;
1640*5113495bSYour Name }
1641*5113495bSYour Name
1642*5113495bSYour Name static inline enum pmo_ns_addr_scope
ucfg_pmo_ns_addr_scope(uint32_t ipv6_scope)1643*5113495bSYour Name ucfg_pmo_ns_addr_scope(uint32_t ipv6_scope)
1644*5113495bSYour Name {
1645*5113495bSYour Name return PMO_NS_ADDR_SCOPE_INVALID;
1646*5113495bSYour Name }
1647*5113495bSYour Name
1648*5113495bSYour Name static inline QDF_STATUS
ucfg_pmo_cache_mc_addr_list(struct pmo_mc_addr_list_params * mc_list_config)1649*5113495bSYour Name ucfg_pmo_cache_mc_addr_list(
1650*5113495bSYour Name struct pmo_mc_addr_list_params *mc_list_config)
1651*5113495bSYour Name {
1652*5113495bSYour Name return QDF_STATUS_SUCCESS;
1653*5113495bSYour Name }
1654*5113495bSYour Name
1655*5113495bSYour Name static inline QDF_STATUS
ucfg_pmo_flush_mc_addr_list(struct wlan_objmgr_psoc * psoc,uint8_t vdev_id)1656*5113495bSYour Name ucfg_pmo_flush_mc_addr_list(
1657*5113495bSYour Name struct wlan_objmgr_psoc *psoc,
1658*5113495bSYour Name uint8_t vdev_id)
1659*5113495bSYour Name {
1660*5113495bSYour Name return QDF_STATUS_SUCCESS;
1661*5113495bSYour Name }
1662*5113495bSYour Name
1663*5113495bSYour Name static inline QDF_STATUS
ucfg_pmo_enable_mc_addr_filtering_in_fwr(struct wlan_objmgr_psoc * psoc,uint8_t vdev_id,enum pmo_offload_trigger trigger)1664*5113495bSYour Name ucfg_pmo_enable_mc_addr_filtering_in_fwr(
1665*5113495bSYour Name struct wlan_objmgr_psoc *psoc,
1666*5113495bSYour Name uint8_t vdev_id,
1667*5113495bSYour Name enum pmo_offload_trigger trigger)
1668*5113495bSYour Name {
1669*5113495bSYour Name return QDF_STATUS_SUCCESS;
1670*5113495bSYour Name }
1671*5113495bSYour Name
1672*5113495bSYour Name static inline QDF_STATUS
ucfg_pmo_disable_mc_addr_filtering_in_fwr(struct wlan_objmgr_psoc * psoc,uint8_t vdev_id,enum pmo_offload_trigger trigger)1673*5113495bSYour Name ucfg_pmo_disable_mc_addr_filtering_in_fwr(
1674*5113495bSYour Name struct wlan_objmgr_psoc *psoc,
1675*5113495bSYour Name uint8_t vdev_id,
1676*5113495bSYour Name enum pmo_offload_trigger trigger)
1677*5113495bSYour Name {
1678*5113495bSYour Name return QDF_STATUS_SUCCESS;
1679*5113495bSYour Name }
1680*5113495bSYour Name
1681*5113495bSYour Name static inline uint8_t
ucfg_pmo_max_mc_addr_supported(struct wlan_objmgr_psoc * psoc)1682*5113495bSYour Name ucfg_pmo_max_mc_addr_supported(struct wlan_objmgr_psoc *psoc)
1683*5113495bSYour Name {
1684*5113495bSYour Name return 0;
1685*5113495bSYour Name }
1686*5113495bSYour Name
1687*5113495bSYour Name static inline QDF_STATUS
ucfg_pmo_get_mc_addr_list(struct wlan_objmgr_psoc * psoc,uint8_t vdev_id,struct pmo_mc_addr_list * mc_list_req)1688*5113495bSYour Name ucfg_pmo_get_mc_addr_list(struct wlan_objmgr_psoc *psoc,
1689*5113495bSYour Name uint8_t vdev_id,
1690*5113495bSYour Name struct pmo_mc_addr_list *mc_list_req)
1691*5113495bSYour Name {
1692*5113495bSYour Name return QDF_STATUS_SUCCESS;
1693*5113495bSYour Name }
1694*5113495bSYour Name
1695*5113495bSYour Name static inline QDF_STATUS
ucfg_pmo_cache_gtk_offload_req(struct wlan_objmgr_vdev * vdev,struct pmo_gtk_req * gtk_req)1696*5113495bSYour Name ucfg_pmo_cache_gtk_offload_req(
1697*5113495bSYour Name struct wlan_objmgr_vdev *vdev,
1698*5113495bSYour Name struct pmo_gtk_req *gtk_req)
1699*5113495bSYour Name {
1700*5113495bSYour Name return QDF_STATUS_SUCCESS;
1701*5113495bSYour Name }
1702*5113495bSYour Name
1703*5113495bSYour Name static inline QDF_STATUS
ucfg_pmo_flush_gtk_offload_req(struct wlan_objmgr_vdev * vdev)1704*5113495bSYour Name ucfg_pmo_flush_gtk_offload_req(struct wlan_objmgr_vdev *vdev)
1705*5113495bSYour Name {
1706*5113495bSYour Name return QDF_STATUS_SUCCESS;
1707*5113495bSYour Name }
1708*5113495bSYour Name
1709*5113495bSYour Name static inline QDF_STATUS
ucfg_pmo_enable_gtk_offload_in_fwr(struct wlan_objmgr_vdev * vdev)1710*5113495bSYour Name ucfg_pmo_enable_gtk_offload_in_fwr(struct wlan_objmgr_vdev *vdev)
1711*5113495bSYour Name {
1712*5113495bSYour Name return QDF_STATUS_SUCCESS;
1713*5113495bSYour Name }
1714*5113495bSYour Name
1715*5113495bSYour Name static inline QDF_STATUS
ucfg_pmo_enable_igmp_offload(struct wlan_objmgr_vdev * vdev,struct pmo_igmp_offload_req * pmo_igmp_req)1716*5113495bSYour Name ucfg_pmo_enable_igmp_offload(struct wlan_objmgr_vdev *vdev,
1717*5113495bSYour Name struct pmo_igmp_offload_req *pmo_igmp_req)
1718*5113495bSYour Name {
1719*5113495bSYour Name return QDF_STATUS_E_NOSUPPORT;
1720*5113495bSYour Name }
1721*5113495bSYour Name
1722*5113495bSYour Name static inline QDF_STATUS
ucfg_pmo_disable_gtk_offload_in_fwr(struct wlan_objmgr_vdev * vdev)1723*5113495bSYour Name ucfg_pmo_disable_gtk_offload_in_fwr(struct wlan_objmgr_vdev *vdev)
1724*5113495bSYour Name {
1725*5113495bSYour Name return QDF_STATUS_SUCCESS;
1726*5113495bSYour Name }
1727*5113495bSYour Name
1728*5113495bSYour Name static inline QDF_STATUS
ucfg_pmo_set_pkt_filter(struct wlan_objmgr_psoc * psoc,struct pmo_rcv_pkt_fltr_cfg * pmo_set_pkt_fltr_req,uint8_t vdev_id)1729*5113495bSYour Name ucfg_pmo_set_pkt_filter(
1730*5113495bSYour Name struct wlan_objmgr_psoc *psoc,
1731*5113495bSYour Name struct pmo_rcv_pkt_fltr_cfg *pmo_set_pkt_fltr_req,
1732*5113495bSYour Name uint8_t vdev_id)
1733*5113495bSYour Name {
1734*5113495bSYour Name return QDF_STATUS_SUCCESS;
1735*5113495bSYour Name }
1736*5113495bSYour Name
1737*5113495bSYour Name static inline QDF_STATUS
ucfg_pmo_clear_pkt_filter(struct wlan_objmgr_psoc * psoc,struct pmo_rcv_pkt_fltr_clear_param * pmo_clr_pkt_fltr_param,uint8_t vdev_id)1738*5113495bSYour Name ucfg_pmo_clear_pkt_filter(
1739*5113495bSYour Name struct wlan_objmgr_psoc *psoc,
1740*5113495bSYour Name struct pmo_rcv_pkt_fltr_clear_param *pmo_clr_pkt_fltr_param,
1741*5113495bSYour Name uint8_t vdev_id)
1742*5113495bSYour Name {
1743*5113495bSYour Name return QDF_STATUS_SUCCESS;
1744*5113495bSYour Name }
1745*5113495bSYour Name
1746*5113495bSYour Name static inline QDF_STATUS
ucfg_pmo_get_gtk_rsp(struct wlan_objmgr_vdev * vdev,struct pmo_gtk_rsp_req * gtk_rsp_req)1747*5113495bSYour Name ucfg_pmo_get_gtk_rsp(
1748*5113495bSYour Name struct wlan_objmgr_vdev *vdev,
1749*5113495bSYour Name struct pmo_gtk_rsp_req *gtk_rsp_req)
1750*5113495bSYour Name {
1751*5113495bSYour Name return QDF_STATUS_SUCCESS;
1752*5113495bSYour Name }
1753*5113495bSYour Name
1754*5113495bSYour Name static inline void
ucfg_pmo_update_extscan_in_progress(struct wlan_objmgr_vdev * vdev,bool value)1755*5113495bSYour Name ucfg_pmo_update_extscan_in_progress(
1756*5113495bSYour Name struct wlan_objmgr_vdev *vdev,
1757*5113495bSYour Name bool value)
1758*5113495bSYour Name {
1759*5113495bSYour Name }
1760*5113495bSYour Name
1761*5113495bSYour Name static inline void
ucfg_pmo_update_p2plo_in_progress(struct wlan_objmgr_vdev * vdev,bool value)1762*5113495bSYour Name ucfg_pmo_update_p2plo_in_progress(
1763*5113495bSYour Name struct wlan_objmgr_vdev *vdev,
1764*5113495bSYour Name bool value)
1765*5113495bSYour Name {
1766*5113495bSYour Name }
1767*5113495bSYour Name
1768*5113495bSYour Name static inline QDF_STATUS
ucfg_pmo_lphb_config_req(struct wlan_objmgr_psoc * psoc,struct pmo_lphb_req * lphb_req,void * lphb_cb_ctx,pmo_lphb_callback callback)1769*5113495bSYour Name ucfg_pmo_lphb_config_req(
1770*5113495bSYour Name struct wlan_objmgr_psoc *psoc,
1771*5113495bSYour Name struct pmo_lphb_req *lphb_req, void *lphb_cb_ctx,
1772*5113495bSYour Name pmo_lphb_callback callback)
1773*5113495bSYour Name {
1774*5113495bSYour Name return QDF_STATUS_SUCCESS;
1775*5113495bSYour Name }
1776*5113495bSYour Name
1777*5113495bSYour Name static inline void
ucfg_pmo_psoc_update_power_save_mode(struct wlan_objmgr_psoc * psoc,uint8_t value)1778*5113495bSYour Name ucfg_pmo_psoc_update_power_save_mode(
1779*5113495bSYour Name struct wlan_objmgr_psoc *psoc,
1780*5113495bSYour Name uint8_t value)
1781*5113495bSYour Name {
1782*5113495bSYour Name }
1783*5113495bSYour Name
1784*5113495bSYour Name static inline void
ucfg_pmo_psoc_update_dp_handle(struct wlan_objmgr_psoc * psoc,void * dp_handle)1785*5113495bSYour Name ucfg_pmo_psoc_update_dp_handle(
1786*5113495bSYour Name struct wlan_objmgr_psoc *psoc,
1787*5113495bSYour Name void *dp_handle)
1788*5113495bSYour Name {
1789*5113495bSYour Name }
1790*5113495bSYour Name
1791*5113495bSYour Name static inline void
ucfg_pmo_psoc_update_htc_handle(struct wlan_objmgr_psoc * psoc,void * htc_handle)1792*5113495bSYour Name ucfg_pmo_psoc_update_htc_handle(
1793*5113495bSYour Name struct wlan_objmgr_psoc *psoc,
1794*5113495bSYour Name void *htc_handle)
1795*5113495bSYour Name {
1796*5113495bSYour Name }
1797*5113495bSYour Name
1798*5113495bSYour Name static inline void
ucfg_pmo_psoc_set_hif_handle(struct wlan_objmgr_psoc * psoc,void * hif_handle)1799*5113495bSYour Name ucfg_pmo_psoc_set_hif_handle(
1800*5113495bSYour Name struct wlan_objmgr_psoc *psoc,
1801*5113495bSYour Name void *hif_handle)
1802*5113495bSYour Name {
1803*5113495bSYour Name }
1804*5113495bSYour Name
1805*5113495bSYour Name static inline void
ucfg_pmo_psoc_set_txrx_pdev_id(struct wlan_objmgr_psoc * psoc,uint8_t txrx_pdev_id)1806*5113495bSYour Name ucfg_pmo_psoc_set_txrx_pdev_id(
1807*5113495bSYour Name struct wlan_objmgr_psoc *psoc,
1808*5113495bSYour Name uint8_t txrx_pdev_id)
1809*5113495bSYour Name {
1810*5113495bSYour Name }
1811*5113495bSYour Name
1812*5113495bSYour Name static inline void
ucfg_pmo_psoc_handle_initial_wake_up(void * cb_ctx)1813*5113495bSYour Name ucfg_pmo_psoc_handle_initial_wake_up(void *cb_ctx)
1814*5113495bSYour Name {
1815*5113495bSYour Name }
1816*5113495bSYour Name
1817*5113495bSYour Name static inline QDF_STATUS
ucfg_pmo_psoc_user_space_suspend_req(struct wlan_objmgr_psoc * psoc,enum qdf_suspend_type type)1818*5113495bSYour Name ucfg_pmo_psoc_user_space_suspend_req(
1819*5113495bSYour Name struct wlan_objmgr_psoc *psoc,
1820*5113495bSYour Name enum qdf_suspend_type type)
1821*5113495bSYour Name {
1822*5113495bSYour Name return QDF_STATUS_SUCCESS;
1823*5113495bSYour Name }
1824*5113495bSYour Name
1825*5113495bSYour Name static inline QDF_STATUS
ucfg_pmo_psoc_user_space_resume_req(struct wlan_objmgr_psoc * psoc,enum qdf_suspend_type type)1826*5113495bSYour Name ucfg_pmo_psoc_user_space_resume_req(
1827*5113495bSYour Name struct wlan_objmgr_psoc *psoc,
1828*5113495bSYour Name enum qdf_suspend_type type)
1829*5113495bSYour Name {
1830*5113495bSYour Name return QDF_STATUS_SUCCESS;
1831*5113495bSYour Name }
1832*5113495bSYour Name
1833*5113495bSYour Name static inline QDF_STATUS
ucfg_pmo_suspend_all_components(struct wlan_objmgr_psoc * psoc,enum qdf_suspend_type type)1834*5113495bSYour Name ucfg_pmo_suspend_all_components(struct wlan_objmgr_psoc *psoc,
1835*5113495bSYour Name enum qdf_suspend_type type)
1836*5113495bSYour Name {
1837*5113495bSYour Name return QDF_STATUS_SUCCESS;
1838*5113495bSYour Name }
1839*5113495bSYour Name
1840*5113495bSYour Name static inline QDF_STATUS
ucfg_pmo_resume_all_components(struct wlan_objmgr_psoc * psoc,enum qdf_suspend_type type)1841*5113495bSYour Name ucfg_pmo_resume_all_components(struct wlan_objmgr_psoc *psoc,
1842*5113495bSYour Name enum qdf_suspend_type type)
1843*5113495bSYour Name {
1844*5113495bSYour Name return QDF_STATUS_SUCCESS;
1845*5113495bSYour Name }
1846*5113495bSYour Name
1847*5113495bSYour Name static inline QDF_STATUS
ucfg_pmo_psoc_bus_suspend_req(struct wlan_objmgr_psoc * psoc,enum qdf_suspend_type type,struct pmo_wow_enable_params * wow_params)1848*5113495bSYour Name ucfg_pmo_psoc_bus_suspend_req(
1849*5113495bSYour Name struct wlan_objmgr_psoc *psoc,
1850*5113495bSYour Name enum qdf_suspend_type type,
1851*5113495bSYour Name struct pmo_wow_enable_params *wow_params)
1852*5113495bSYour Name {
1853*5113495bSYour Name return QDF_STATUS_SUCCESS;
1854*5113495bSYour Name }
1855*5113495bSYour Name
1856*5113495bSYour Name #ifdef FEATURE_RUNTIME_PM
1857*5113495bSYour Name static inline QDF_STATUS
ucfg_pmo_psoc_bus_runtime_suspend(struct wlan_objmgr_psoc * psoc,pmo_pld_auto_suspend_cb pld_cb)1858*5113495bSYour Name ucfg_pmo_psoc_bus_runtime_suspend(
1859*5113495bSYour Name struct wlan_objmgr_psoc *psoc,
1860*5113495bSYour Name pmo_pld_auto_suspend_cb pld_cb)
1861*5113495bSYour Name {
1862*5113495bSYour Name return QDF_STATUS_SUCCESS;
1863*5113495bSYour Name }
1864*5113495bSYour Name
1865*5113495bSYour Name static inline QDF_STATUS
ucfg_pmo_psoc_bus_runtime_resume(struct wlan_objmgr_psoc * psoc,pmo_pld_auto_suspend_cb pld_cb)1866*5113495bSYour Name ucfg_pmo_psoc_bus_runtime_resume(
1867*5113495bSYour Name struct wlan_objmgr_psoc *psoc,
1868*5113495bSYour Name pmo_pld_auto_suspend_cb pld_cb)
1869*5113495bSYour Name {
1870*5113495bSYour Name return QDF_STATUS_SUCCESS;
1871*5113495bSYour Name }
1872*5113495bSYour Name #endif
1873*5113495bSYour Name
1874*5113495bSYour Name static inline QDF_STATUS
ucfg_pmo_psoc_suspend_target(struct wlan_objmgr_psoc * psoc,int disable_target_intr)1875*5113495bSYour Name ucfg_pmo_psoc_suspend_target(
1876*5113495bSYour Name struct wlan_objmgr_psoc *psoc,
1877*5113495bSYour Name int disable_target_intr)
1878*5113495bSYour Name {
1879*5113495bSYour Name return QDF_STATUS_SUCCESS;
1880*5113495bSYour Name }
1881*5113495bSYour Name
1882*5113495bSYour Name static inline QDF_STATUS
ucfg_pmo_add_wow_user_pattern(struct wlan_objmgr_vdev * vdev,struct pmo_wow_add_pattern * ptrn)1883*5113495bSYour Name ucfg_pmo_add_wow_user_pattern(
1884*5113495bSYour Name struct wlan_objmgr_vdev *vdev,
1885*5113495bSYour Name struct pmo_wow_add_pattern *ptrn)
1886*5113495bSYour Name {
1887*5113495bSYour Name return QDF_STATUS_SUCCESS;
1888*5113495bSYour Name }
1889*5113495bSYour Name
1890*5113495bSYour Name static inline QDF_STATUS
ucfg_pmo_del_wow_user_pattern(struct wlan_objmgr_vdev * vdev,uint8_t pattern_id)1891*5113495bSYour Name ucfg_pmo_del_wow_user_pattern(
1892*5113495bSYour Name struct wlan_objmgr_vdev *vdev,
1893*5113495bSYour Name uint8_t pattern_id)
1894*5113495bSYour Name {
1895*5113495bSYour Name return QDF_STATUS_SUCCESS;
1896*5113495bSYour Name }
1897*5113495bSYour Name
1898*5113495bSYour Name static inline void
ucfg_pmo_register_wow_default_patterns(struct wlan_objmgr_vdev * vdev)1899*5113495bSYour Name ucfg_pmo_register_wow_default_patterns(struct wlan_objmgr_vdev *vdev)
1900*5113495bSYour Name {
1901*5113495bSYour Name }
1902*5113495bSYour Name
1903*5113495bSYour Name QDF_STATUS
ucfg_pmo_del_wow_pattern(struct wlan_objmgr_vdev * vdev)1904*5113495bSYour Name ucfg_pmo_del_wow_pattern(struct wlan_objmgr_vdev *vdev)
1905*5113495bSYour Name {
1906*5113495bSYour Name return QDF_STATUS_SUCCESS;
1907*5113495bSYour Name }
1908*5113495bSYour Name
1909*5113495bSYour Name static inline QDF_STATUS
ucfg_pmo_psoc_bus_resume_req(struct wlan_objmgr_psoc * psoc,enum qdf_suspend_type type)1910*5113495bSYour Name ucfg_pmo_psoc_bus_resume_req(
1911*5113495bSYour Name struct wlan_objmgr_psoc *psoc,
1912*5113495bSYour Name enum qdf_suspend_type type)
1913*5113495bSYour Name {
1914*5113495bSYour Name return QDF_STATUS_SUCCESS;
1915*5113495bSYour Name }
1916*5113495bSYour Name
1917*5113495bSYour Name static inline bool
ucfg_pmo_get_wow_bus_suspend(struct wlan_objmgr_psoc * psoc)1918*5113495bSYour Name ucfg_pmo_get_wow_bus_suspend(struct wlan_objmgr_psoc *psoc)
1919*5113495bSYour Name {
1920*5113495bSYour Name return true;
1921*5113495bSYour Name }
1922*5113495bSYour Name
1923*5113495bSYour Name static inline int
ucfg_pmo_psoc_is_target_wake_up_received(struct wlan_objmgr_psoc * psoc)1924*5113495bSYour Name ucfg_pmo_psoc_is_target_wake_up_received(struct wlan_objmgr_psoc *psoc)
1925*5113495bSYour Name {
1926*5113495bSYour Name return 0;
1927*5113495bSYour Name }
1928*5113495bSYour Name
1929*5113495bSYour Name static inline int
ucfg_pmo_psoc_clear_target_wake_up(struct wlan_objmgr_psoc * psoc)1930*5113495bSYour Name ucfg_pmo_psoc_clear_target_wake_up(struct wlan_objmgr_psoc *psoc)
1931*5113495bSYour Name {
1932*5113495bSYour Name return 0;
1933*5113495bSYour Name }
1934*5113495bSYour Name
1935*5113495bSYour Name static inline void
ucfg_pmo_psoc_target_suspend_acknowledge(void * context,bool wow_nack,uint16_t reason_code)1936*5113495bSYour Name ucfg_pmo_psoc_target_suspend_acknowledge(void *context, bool wow_nack,
1937*5113495bSYour Name uint16_t reason_code)
1938*5113495bSYour Name {
1939*5113495bSYour Name }
1940*5113495bSYour Name
1941*5113495bSYour Name static inline void
ucfg_pmo_psoc_wakeup_host_event_received(struct wlan_objmgr_psoc * psoc)1942*5113495bSYour Name ucfg_pmo_psoc_wakeup_host_event_received(struct wlan_objmgr_psoc *psoc)
1943*5113495bSYour Name {
1944*5113495bSYour Name }
1945*5113495bSYour Name
1946*5113495bSYour Name static inline QDF_STATUS
ucfg_pmo_enable_hw_filter_in_fwr(struct wlan_objmgr_vdev * vdev)1947*5113495bSYour Name ucfg_pmo_enable_hw_filter_in_fwr(struct wlan_objmgr_vdev *vdev)
1948*5113495bSYour Name {
1949*5113495bSYour Name return QDF_STATUS_SUCCESS;
1950*5113495bSYour Name }
1951*5113495bSYour Name
1952*5113495bSYour Name static inline QDF_STATUS
ucfg_pmo_disable_hw_filter_in_fwr(struct wlan_objmgr_vdev * vdev)1953*5113495bSYour Name ucfg_pmo_disable_hw_filter_in_fwr(struct wlan_objmgr_vdev *vdev)
1954*5113495bSYour Name {
1955*5113495bSYour Name return QDF_STATUS_SUCCESS;
1956*5113495bSYour Name }
1957*5113495bSYour Name
1958*5113495bSYour Name static inline QDF_STATUS
ucfg_pmo_enhanced_mc_filter_enable(struct wlan_objmgr_vdev * vdev)1959*5113495bSYour Name ucfg_pmo_enhanced_mc_filter_enable(struct wlan_objmgr_vdev *vdev)
1960*5113495bSYour Name {
1961*5113495bSYour Name return QDF_STATUS_SUCCESS;
1962*5113495bSYour Name }
1963*5113495bSYour Name
1964*5113495bSYour Name static inline QDF_STATUS
ucfg_pmo_enhanced_mc_filter_disable(struct wlan_objmgr_vdev * vdev)1965*5113495bSYour Name ucfg_pmo_enhanced_mc_filter_disable(struct wlan_objmgr_vdev *vdev)
1966*5113495bSYour Name {
1967*5113495bSYour Name return QDF_STATUS_SUCCESS;
1968*5113495bSYour Name }
1969*5113495bSYour Name
1970*5113495bSYour Name static inline QDF_STATUS
ucfg_pmo_config_listen_interval(struct wlan_objmgr_vdev * vdev,uint32_t listen_interval)1971*5113495bSYour Name ucfg_pmo_config_listen_interval(struct wlan_objmgr_vdev *vdev,
1972*5113495bSYour Name uint32_t listen_interval)
1973*5113495bSYour Name {
1974*5113495bSYour Name return QDF_STATUS_SUCCESS;
1975*5113495bSYour Name }
1976*5113495bSYour Name
1977*5113495bSYour Name static inline QDF_STATUS
ucfg_pmo_config_modulated_dtim(struct wlan_objmgr_vdev * vdev,uint32_t mod_dtim)1978*5113495bSYour Name ucfg_pmo_config_modulated_dtim(struct wlan_objmgr_vdev *vdev,
1979*5113495bSYour Name uint32_t mod_dtim)
1980*5113495bSYour Name {
1981*5113495bSYour Name return QDF_STATUS_SUCCESS;
1982*5113495bSYour Name }
1983*5113495bSYour Name
1984*5113495bSYour Name static inline bool
ucfg_pmo_is_arp_offload_enabled(struct wlan_objmgr_psoc * psoc)1985*5113495bSYour Name ucfg_pmo_is_arp_offload_enabled(struct wlan_objmgr_psoc *psoc)
1986*5113495bSYour Name {
1987*5113495bSYour Name return false;
1988*5113495bSYour Name }
1989*5113495bSYour Name
1990*5113495bSYour Name static inline bool
ucfg_pmo_is_igmp_offload_enabled(struct wlan_objmgr_psoc * psoc)1991*5113495bSYour Name ucfg_pmo_is_igmp_offload_enabled(struct wlan_objmgr_psoc *psoc)
1992*5113495bSYour Name {
1993*5113495bSYour Name return false;
1994*5113495bSYour Name }
1995*5113495bSYour Name
1996*5113495bSYour Name static inline void
ucfg_pmo_set_arp_offload_enabled(struct wlan_objmgr_psoc * psoc,bool val)1997*5113495bSYour Name ucfg_pmo_set_arp_offload_enabled(struct wlan_objmgr_psoc *psoc,
1998*5113495bSYour Name bool val)
1999*5113495bSYour Name {
2000*5113495bSYour Name }
2001*5113495bSYour Name
2002*5113495bSYour Name static inline void
ucfg_pmo_set_igmp_offload_enabled(struct wlan_objmgr_psoc * psoc,bool val)2003*5113495bSYour Name ucfg_pmo_set_igmp_offload_enabled(struct wlan_objmgr_psoc *psoc,
2004*5113495bSYour Name bool val)
2005*5113495bSYour Name {
2006*5113495bSYour Name }
2007*5113495bSYour Name
2008*5113495bSYour Name static inline bool
ucfg_pmo_is_wow_pulse_enabled(struct wlan_objmgr_psoc * psoc)2009*5113495bSYour Name ucfg_pmo_is_wow_pulse_enabled(struct wlan_objmgr_psoc *psoc)
2010*5113495bSYour Name {
2011*5113495bSYour Name return false;
2012*5113495bSYour Name }
2013*5113495bSYour Name
2014*5113495bSYour Name static inline uint8_t
ucfg_pmo_get_wow_pulse_pin(struct wlan_objmgr_psoc * psoc)2015*5113495bSYour Name ucfg_pmo_get_wow_pulse_pin(struct wlan_objmgr_psoc *psoc)
2016*5113495bSYour Name {
2017*5113495bSYour Name return 0;
2018*5113495bSYour Name }
2019*5113495bSYour Name
2020*5113495bSYour Name static inline uint16_t
ucfg_pmo_get_wow_pulse_interval_high(struct wlan_objmgr_psoc * psoc)2021*5113495bSYour Name ucfg_pmo_get_wow_pulse_interval_high(struct wlan_objmgr_psoc *psoc)
2022*5113495bSYour Name {
2023*5113495bSYour Name return 0;
2024*5113495bSYour Name }
2025*5113495bSYour Name
2026*5113495bSYour Name static inline uint16_t
ucfg_pmo_get_wow_pulse_interval_low(struct wlan_objmgr_psoc * psoc)2027*5113495bSYour Name ucfg_pmo_get_wow_pulse_interval_low(struct wlan_objmgr_psoc *psoc)
2028*5113495bSYour Name {
2029*5113495bSYour Name return 0;
2030*5113495bSYour Name }
2031*5113495bSYour Name
2032*5113495bSYour Name static inline bool
ucfg_pmo_is_active_mode_offloaded(struct wlan_objmgr_psoc * psoc)2033*5113495bSYour Name ucfg_pmo_is_active_mode_offloaded(struct wlan_objmgr_psoc *psoc)
2034*5113495bSYour Name {
2035*5113495bSYour Name return true;
2036*5113495bSYour Name }
2037*5113495bSYour Name
2038*5113495bSYour Name static inline enum pmo_auto_pwr_detect_failure_mode
ucfg_pmo_get_auto_power_fail_mode(struct wlan_objmgr_psoc * psoc)2039*5113495bSYour Name ucfg_pmo_get_auto_power_fail_mode(struct wlan_objmgr_psoc *psoc)
2040*5113495bSYour Name {
2041*5113495bSYour Name return PMO_FW_TO_CRASH_ON_PWR_FAILURE;
2042*5113495bSYour Name }
2043*5113495bSYour Name
ucfg_pmo_is_apf_enabled(struct wlan_objmgr_psoc * psoc)2044*5113495bSYour Name static inline bool ucfg_pmo_is_apf_enabled(struct wlan_objmgr_psoc *psoc)
2045*5113495bSYour Name {
2046*5113495bSYour Name return false;
2047*5113495bSYour Name }
2048*5113495bSYour Name
ucfg_pmo_is_ssdp_enabled(struct wlan_objmgr_psoc * psoc)2049*5113495bSYour Name static inline bool ucfg_pmo_is_ssdp_enabled(struct wlan_objmgr_psoc *psoc)
2050*5113495bSYour Name {
2051*5113495bSYour Name return false;
2052*5113495bSYour Name }
2053*5113495bSYour Name
ucfg_pmo_is_ns_offloaded(struct wlan_objmgr_psoc * psoc)2054*5113495bSYour Name static inline bool ucfg_pmo_is_ns_offloaded(struct wlan_objmgr_psoc *psoc)
2055*5113495bSYour Name {
2056*5113495bSYour Name return false;
2057*5113495bSYour Name }
2058*5113495bSYour Name
2059*5113495bSYour Name static inline uint8_t
ucfg_pmo_get_sta_dynamic_dtim(struct wlan_objmgr_psoc * psoc)2060*5113495bSYour Name ucfg_pmo_get_sta_dynamic_dtim(struct wlan_objmgr_psoc *psoc)
2061*5113495bSYour Name {
2062*5113495bSYour Name return 0;
2063*5113495bSYour Name }
2064*5113495bSYour Name
2065*5113495bSYour Name static inline uint8_t
ucfg_pmo_get_sta_mod_dtim(struct wlan_objmgr_psoc * psoc)2066*5113495bSYour Name ucfg_pmo_get_sta_mod_dtim(struct wlan_objmgr_psoc *psoc)
2067*5113495bSYour Name {
2068*5113495bSYour Name return 0;
2069*5113495bSYour Name }
2070*5113495bSYour Name
2071*5113495bSYour Name static inline void
ucfg_pmo_set_sta_mod_dtim(struct wlan_objmgr_psoc * psoc,uint8_t val)2072*5113495bSYour Name ucfg_pmo_set_sta_mod_dtim(struct wlan_objmgr_psoc *psoc,
2073*5113495bSYour Name uint8_t val)
2074*5113495bSYour Name {
2075*5113495bSYour Name }
2076*5113495bSYour Name
2077*5113495bSYour Name static inline bool
ucfg_pmo_is_mc_addr_list_enabled(struct wlan_objmgr_psoc * psoc)2078*5113495bSYour Name ucfg_pmo_is_mc_addr_list_enabled(struct wlan_objmgr_psoc *psoc)
2079*5113495bSYour Name {
2080*5113495bSYour Name return false;
2081*5113495bSYour Name }
2082*5113495bSYour Name
2083*5113495bSYour Name static inline enum powersave_mode
ucfg_pmo_get_power_save_mode(struct wlan_objmgr_psoc * psoc)2084*5113495bSYour Name ucfg_pmo_get_power_save_mode(struct wlan_objmgr_psoc *psoc)
2085*5113495bSYour Name {
2086*5113495bSYour Name return 0;
2087*5113495bSYour Name }
2088*5113495bSYour Name
2089*5113495bSYour Name static inline enum powersave_mode
ucfg_pmo_get_default_power_save_mode(struct wlan_objmgr_psoc * psoc)2090*5113495bSYour Name ucfg_pmo_get_default_power_save_mode(struct wlan_objmgr_psoc *psoc)
2091*5113495bSYour Name {
2092*5113495bSYour Name return PMO_PS_ADVANCED_POWER_SAVE_DISABLE;
2093*5113495bSYour Name }
2094*5113495bSYour Name
2095*5113495bSYour Name static inline void
ucfg_pmo_set_power_save_mode(struct wlan_objmgr_psoc * psoc,enum powersave_mode val)2096*5113495bSYour Name ucfg_pmo_set_power_save_mode(struct wlan_objmgr_psoc *psoc,
2097*5113495bSYour Name enum powersave_mode val)
2098*5113495bSYour Name {
2099*5113495bSYour Name }
2100*5113495bSYour Name
2101*5113495bSYour Name static inline uint8_t
ucfg_pmo_get_max_ps_poll(struct wlan_objmgr_psoc * psoc)2102*5113495bSYour Name ucfg_pmo_get_max_ps_poll(struct wlan_objmgr_psoc *psoc)
2103*5113495bSYour Name {
2104*5113495bSYour Name return 0;
2105*5113495bSYour Name }
2106*5113495bSYour Name
2107*5113495bSYour Name static inline uint8_t
ucfg_pmo_power_save_offload_enabled(struct wlan_objmgr_psoc * psoc)2108*5113495bSYour Name ucfg_pmo_power_save_offload_enabled(struct wlan_objmgr_psoc *psoc)
2109*5113495bSYour Name {
2110*5113495bSYour Name return 0;
2111*5113495bSYour Name }
2112*5113495bSYour Name
2113*5113495bSYour Name static inline void
ucfg_pmo_set_wow_data_inactivity_timeout(struct wlan_objmgr_psoc * psoc,uint8_t val)2114*5113495bSYour Name ucfg_pmo_set_wow_data_inactivity_timeout(struct wlan_objmgr_psoc *psoc,
2115*5113495bSYour Name uint8_t val)
2116*5113495bSYour Name {
2117*5113495bSYour Name }
2118*5113495bSYour Name
2119*5113495bSYour Name static inline bool
ucfg_pmo_is_pkt_filter_enabled(struct wlan_objmgr_psoc * psoc)2120*5113495bSYour Name ucfg_pmo_is_pkt_filter_enabled(struct wlan_objmgr_psoc *psoc)
2121*5113495bSYour Name {
2122*5113495bSYour Name return false;
2123*5113495bSYour Name }
2124*5113495bSYour Name
2125*5113495bSYour Name enum active_apf_mode
2126*5113495bSYour Name ucfg_pmo_get_active_uc_apf_mode(struct wlan_objmgr_psoc *psoc);
2127*5113495bSYour Name {
2128*5113495bSYour Name return 0;
2129*5113495bSYour Name }
2130*5113495bSYour Name
2131*5113495bSYour Name enum active_apf_mode
ucfg_pmo_get_active_mc_bc_apf_mode(struct wlan_objmgr_psoc * psoc)2132*5113495bSYour Name ucfg_pmo_get_active_mc_bc_apf_mode(struct wlan_objmgr_psoc *psoc)
2133*5113495bSYour Name {
2134*5113495bSYour Name return 0;
2135*5113495bSYour Name }
2136*5113495bSYour Name
ucfg_pmo_core_txrx_suspend(struct wlan_objmgr_psoc * psoc)2137*5113495bSYour Name QDF_STATUS ucfg_pmo_core_txrx_suspend(struct wlan_objmgr_psoc *psoc)
2138*5113495bSYour Name {
2139*5113495bSYour Name return QDF_STATUS_SUCCESS;
2140*5113495bSYour Name }
2141*5113495bSYour Name
ucfg_pmo_core_txrx_resume(struct wlan_objmgr_psoc * psoc)2142*5113495bSYour Name QDF_STATUS ucfg_pmo_core_txrx_resume(struct wlan_objmgr_psoc *psoc)
2143*5113495bSYour Name {
2144*5113495bSYour Name return QDF_STATUS_SUCCESS;
2145*5113495bSYour Name }
2146*5113495bSYour Name
2147*5113495bSYour Name static inline bool
ucfg_pmo_get_moddtim_user_enable(struct wlan_objmgr_vdev * vdev)2148*5113495bSYour Name ucfg_pmo_get_moddtim_user_enable(struct wlan_objmgr_vdev *vdev)
2149*5113495bSYour Name {
2150*5113495bSYour Name return false;
2151*5113495bSYour Name }
2152*5113495bSYour Name
2153*5113495bSYour Name static inline void
ucfg_pmo_set_moddtim_user_enable(struct wlan_objmgr_vdev * vdev,bool value)2154*5113495bSYour Name ucfg_pmo_set_moddtim_user_enable(struct wlan_objmgr_vdev *vdev,
2155*5113495bSYour Name bool value)
2156*5113495bSYour Name {
2157*5113495bSYour Name }
2158*5113495bSYour Name
2159*5113495bSYour Name static inline bool
ucfg_pmo_get_moddtim_user_active(struct wlan_objmgr_vdev * vdev)2160*5113495bSYour Name ucfg_pmo_get_moddtim_user_active(struct wlan_objmgr_vdev *vdev)
2161*5113495bSYour Name {
2162*5113495bSYour Name return false;
2163*5113495bSYour Name }
2164*5113495bSYour Name
2165*5113495bSYour Name static inline uint32_t
ucfg_pmo_get_moddtim_user(struct wlan_objmgr_vdev * vdev)2166*5113495bSYour Name ucfg_pmo_get_moddtim_user(struct wlan_objmgr_vdev *vdev)
2167*5113495bSYour Name {
2168*5113495bSYour Name return 0;
2169*5113495bSYour Name }
2170*5113495bSYour Name
2171*5113495bSYour Name static inline uint32_t
ucfg_pmo_get_ssr_frequency_on_pagefault(struct wlan_objmgr_psoc * psoc)2172*5113495bSYour Name ucfg_pmo_get_ssr_frequency_on_pagefault(struct wlan_objmgr_psoc *psoc)
2173*5113495bSYour Name {
2174*5113495bSYour Name return 0;
2175*5113495bSYour Name }
2176*5113495bSYour Name
2177*5113495bSYour Name static inline bool
ucfg_pmo_get_disconnect_sap_tdls_in_wow(struct wlan_objmgr_psoc * psoc)2178*5113495bSYour Name ucfg_pmo_get_disconnect_sap_tdls_in_wow(struct wlan_objmgr_psoc *psoc)
2179*5113495bSYour Name {
2180*5113495bSYour Name return false;
2181*5113495bSYour Name }
2182*5113495bSYour Name
2183*5113495bSYour Name static inline
ucfg_pmo_check_icmp_offload(struct wlan_objmgr_psoc * psoc,uint8_t vdev_id)2184*5113495bSYour Name QDF_STATUS ucfg_pmo_check_icmp_offload(struct wlan_objmgr_psoc *psoc,
2185*5113495bSYour Name uint8_t vdev_id)
2186*5113495bSYour Name {
2187*5113495bSYour Name return QDF_STATUS_SUCCESS;
2188*5113495bSYour Name }
2189*5113495bSYour Name
2190*5113495bSYour Name static inline bool
ucfg_pmo_is_icmp_offload_enabled(struct wlan_objmgr_psoc * psoc)2191*5113495bSYour Name ucfg_pmo_is_icmp_offload_enabled(struct wlan_objmgr_psoc *psoc)
2192*5113495bSYour Name {
2193*5113495bSYour Name return false;
2194*5113495bSYour Name }
2195*5113495bSYour Name
2196*5113495bSYour Name QDF_STATUS
ucfg_pmo_config_icmp_offload(struct wlan_objmgr_psoc * psoc,struct pmo_icmp_offload * pmo_icmp_req)2197*5113495bSYour Name ucfg_pmo_config_icmp_offload(struct wlan_objmgr_psoc *psoc,
2198*5113495bSYour Name struct pmo_icmp_offload *pmo_icmp_req)
2199*5113495bSYour Name {
2200*5113495bSYour Name return QDF_STATUS_SUCCESS;
2201*5113495bSYour Name }
2202*5113495bSYour Name #endif /* WLAN_POWER_MANAGEMENT_OFFLOAD */
2203*5113495bSYour Name
2204*5113495bSYour Name #ifdef WLAN_FEATURE_EXTWOW_SUPPORT
2205*5113495bSYour Name /**
2206*5113495bSYour Name * ucfg_pmo_extwow_is_goto_suspend_enabled() - Get extwow goto suspend enable
2207*5113495bSYour Name * @psoc: pointer to psoc object
2208*5113495bSYour Name *
2209*5113495bSYour Name * Return: extend wow goto suspend enable or not
2210*5113495bSYour Name */
2211*5113495bSYour Name bool
2212*5113495bSYour Name ucfg_pmo_extwow_is_goto_suspend_enabled(struct wlan_objmgr_psoc *psoc);
2213*5113495bSYour Name
2214*5113495bSYour Name /**
2215*5113495bSYour Name * ucfg_pmo_extwow_app1_wakeup_pin_num() - Get wakeup1 PIN number
2216*5113495bSYour Name * @psoc: pointer to psoc object
2217*5113495bSYour Name *
2218*5113495bSYour Name * Return: wakeup1 PIN number
2219*5113495bSYour Name */
2220*5113495bSYour Name uint8_t
2221*5113495bSYour Name ucfg_pmo_extwow_app1_wakeup_pin_num(struct wlan_objmgr_psoc *psoc);
2222*5113495bSYour Name
2223*5113495bSYour Name /**
2224*5113495bSYour Name * ucfg_pmo_extwow_app2_wakeup_pin_num() - Get wakeup2 PIN number
2225*5113495bSYour Name * @psoc: pointer to psoc object
2226*5113495bSYour Name *
2227*5113495bSYour Name * Return: wakeup2 PIN number
2228*5113495bSYour Name */
2229*5113495bSYour Name uint8_t
2230*5113495bSYour Name ucfg_pmo_extwow_app2_wakeup_pin_num(struct wlan_objmgr_psoc *psoc);
2231*5113495bSYour Name
2232*5113495bSYour Name /**
2233*5113495bSYour Name * ucfg_pmo_extwow_app2_init_ping_interval() - Get keep alive init ping interval
2234*5113495bSYour Name * @psoc: pointer to psoc object
2235*5113495bSYour Name *
2236*5113495bSYour Name * Return: keep alive init ping interval
2237*5113495bSYour Name */
2238*5113495bSYour Name uint32_t
2239*5113495bSYour Name ucfg_pmo_extwow_app2_init_ping_interval(struct wlan_objmgr_psoc *psoc);
2240*5113495bSYour Name
2241*5113495bSYour Name /**
2242*5113495bSYour Name * ucfg_pmo_extwow_app2_min_ping_interval() - Get keep alive min ping interval
2243*5113495bSYour Name * @psoc: pointer to psoc object
2244*5113495bSYour Name *
2245*5113495bSYour Name * Return: keep alive min ping interval
2246*5113495bSYour Name */
2247*5113495bSYour Name uint32_t
2248*5113495bSYour Name ucfg_pmo_extwow_app2_min_ping_interval(struct wlan_objmgr_psoc *psoc);
2249*5113495bSYour Name
2250*5113495bSYour Name /**
2251*5113495bSYour Name * ucfg_pmo_extwow_app2_max_ping_interval() - Get keep alive max ping interval
2252*5113495bSYour Name * @psoc: pointer to psoc object
2253*5113495bSYour Name *
2254*5113495bSYour Name * Return: keep alive max ping interval
2255*5113495bSYour Name */
2256*5113495bSYour Name uint32_t
2257*5113495bSYour Name ucfg_pmo_extwow_app2_max_ping_interval(struct wlan_objmgr_psoc *psoc);
2258*5113495bSYour Name
2259*5113495bSYour Name /**
2260*5113495bSYour Name * ucfg_pmo_extwow_app2_inc_ping_interval() - Get keep alive inc ping interval
2261*5113495bSYour Name * @psoc: pointer to psoc object
2262*5113495bSYour Name *
2263*5113495bSYour Name * Return: keep alive inc ping interval
2264*5113495bSYour Name */
2265*5113495bSYour Name uint32_t
2266*5113495bSYour Name ucfg_pmo_extwow_app2_inc_ping_interval(struct wlan_objmgr_psoc *psoc);
2267*5113495bSYour Name
2268*5113495bSYour Name /**
2269*5113495bSYour Name * ucfg_pmo_extwow_app2_tcp_src_port() - Get TCP source port
2270*5113495bSYour Name * @psoc: pointer to psoc object
2271*5113495bSYour Name *
2272*5113495bSYour Name * Return: TCP source port
2273*5113495bSYour Name */
2274*5113495bSYour Name uint16_t
2275*5113495bSYour Name ucfg_pmo_extwow_app2_tcp_src_port(struct wlan_objmgr_psoc *psoc);
2276*5113495bSYour Name
2277*5113495bSYour Name /**
2278*5113495bSYour Name * ucfg_pmo_extwow_app2_tcp_dst_port() - Get TCP Destination port
2279*5113495bSYour Name * @psoc: pointer to psoc object
2280*5113495bSYour Name *
2281*5113495bSYour Name * Return: TCP Destination port
2282*5113495bSYour Name */
2283*5113495bSYour Name uint16_t
2284*5113495bSYour Name ucfg_pmo_extwow_app2_tcp_dst_port(struct wlan_objmgr_psoc *psoc);
2285*5113495bSYour Name
2286*5113495bSYour Name /**
2287*5113495bSYour Name * ucfg_pmo_extwow_app2_tcp_tx_timeout() - Get TCP Tx timeout
2288*5113495bSYour Name * @psoc: pointer to psoc object
2289*5113495bSYour Name *
2290*5113495bSYour Name * Return: TCP Tx timeout
2291*5113495bSYour Name */
2292*5113495bSYour Name uint32_t
2293*5113495bSYour Name ucfg_pmo_extwow_app2_tcp_tx_timeout(struct wlan_objmgr_psoc *psoc);
2294*5113495bSYour Name
2295*5113495bSYour Name /**
2296*5113495bSYour Name * ucfg_pmo_extwow_app2_tcp_rx_timeout() - to get extwow tcp rx timeout
2297*5113495bSYour Name * @psoc: objmgr psoc handle
2298*5113495bSYour Name *
2299*5113495bSYour Name * Return: retrieve extwow app2 tcp rx timeout configuration
2300*5113495bSYour Name */
2301*5113495bSYour Name uint32_t
2302*5113495bSYour Name ucfg_pmo_extwow_app2_tcp_rx_timeout(struct wlan_objmgr_psoc *psoc);
2303*5113495bSYour Name
2304*5113495bSYour Name #else
2305*5113495bSYour Name static inline bool
ucfg_pmo_extwow_is_goto_suspend_enabled(struct wlan_objmgr_psoc * psoc)2306*5113495bSYour Name ucfg_pmo_extwow_is_goto_suspend_enabled(struct wlan_objmgr_psoc *psoc)
2307*5113495bSYour Name {
2308*5113495bSYour Name return false;
2309*5113495bSYour Name }
2310*5113495bSYour Name
2311*5113495bSYour Name static inline uint32_t
ucfg_pmo_extwow_app1_wakeup_pin_num(struct wlan_objmgr_psoc * psoc)2312*5113495bSYour Name ucfg_pmo_extwow_app1_wakeup_pin_num(struct wlan_objmgr_psoc *psoc)
2313*5113495bSYour Name {
2314*5113495bSYour Name return 0;
2315*5113495bSYour Name }
2316*5113495bSYour Name
2317*5113495bSYour Name static inline uint32_t
ucfg_pmo_extwow_app2_wakeup_pin_num(struct wlan_objmgr_psoc * psoc)2318*5113495bSYour Name ucfg_pmo_extwow_app2_wakeup_pin_num(struct wlan_objmgr_psoc *psoc)
2319*5113495bSYour Name {
2320*5113495bSYour Name return 0;
2321*5113495bSYour Name }
2322*5113495bSYour Name
2323*5113495bSYour Name static inline uint32_t
ucfg_pmo_extwow_app2_init_ping_interval(struct wlan_objmgr_psoc * psoc)2324*5113495bSYour Name ucfg_pmo_extwow_app2_init_ping_interval(struct wlan_objmgr_psoc *psoc)
2325*5113495bSYour Name {
2326*5113495bSYour Name return 0;
2327*5113495bSYour Name }
2328*5113495bSYour Name
2329*5113495bSYour Name static inline uint32_t
ucfg_pmo_extwow_app2_min_ping_interval(struct wlan_objmgr_psoc * psoc)2330*5113495bSYour Name ucfg_pmo_extwow_app2_min_ping_interval(struct wlan_objmgr_psoc *psoc)
2331*5113495bSYour Name {
2332*5113495bSYour Name return 0;
2333*5113495bSYour Name }
2334*5113495bSYour Name
2335*5113495bSYour Name static inline uint32_t
ucfg_pmo_extwow_app2_max_ping_interval(struct wlan_objmgr_psoc * psoc)2336*5113495bSYour Name ucfg_pmo_extwow_app2_max_ping_interval(struct wlan_objmgr_psoc *psoc)
2337*5113495bSYour Name {
2338*5113495bSYour Name return 0;
2339*5113495bSYour Name }
2340*5113495bSYour Name
2341*5113495bSYour Name static inline uint32_t
ucfg_pmo_extwow_app2_inc_ping_interval(struct wlan_objmgr_psoc * psoc)2342*5113495bSYour Name ucfg_pmo_extwow_app2_inc_ping_interval(struct wlan_objmgr_psoc *psoc)
2343*5113495bSYour Name {
2344*5113495bSYour Name return 0;
2345*5113495bSYour Name }
2346*5113495bSYour Name
2347*5113495bSYour Name static inline uint16_t
ucfg_pmo_extwow_app2_tcp_src_port(struct wlan_objmgr_psoc * psoc)2348*5113495bSYour Name ucfg_pmo_extwow_app2_tcp_src_port(struct wlan_objmgr_psoc *psoc)
2349*5113495bSYour Name {
2350*5113495bSYour Name return 0;
2351*5113495bSYour Name }
2352*5113495bSYour Name
2353*5113495bSYour Name static inline uint16_t
ucfg_pmo_extwow_app2_tcp_dst_port(struct wlan_objmgr_psoc * psoc)2354*5113495bSYour Name ucfg_pmo_extwow_app2_tcp_dst_port(struct wlan_objmgr_psoc *psoc)
2355*5113495bSYour Name {
2356*5113495bSYour Name return 0;
2357*5113495bSYour Name }
2358*5113495bSYour Name
2359*5113495bSYour Name static inline uint32_t
ucfg_pmo_extwow_app2_tcp_tx_timeout(struct wlan_objmgr_psoc * psoc)2360*5113495bSYour Name ucfg_pmo_extwow_app2_tcp_tx_timeout(struct wlan_objmgr_psoc *psoc)
2361*5113495bSYour Name {
2362*5113495bSYour Name return 0;
2363*5113495bSYour Name }
2364*5113495bSYour Name
2365*5113495bSYour Name static inline uint32_t
ucfg_pmo_extwow_app2_tcp_rx_timeout(struct wlan_objmgr_psoc * psoc)2366*5113495bSYour Name ucfg_pmo_extwow_app2_tcp_rx_timeout(struct wlan_objmgr_psoc *psoc)
2367*5113495bSYour Name {
2368*5113495bSYour Name return 0;
2369*5113495bSYour Name }
2370*5113495bSYour Name #endif
2371*5113495bSYour Name
2372*5113495bSYour Name #ifdef FEATURE_RUNTIME_PM
2373*5113495bSYour Name /**
2374*5113495bSYour Name * ucfg_pmo_get_runtime_pm_delay() - Get runtime pm's inactivity timer
2375*5113495bSYour Name * @psoc: pointer to psoc object
2376*5113495bSYour Name *
2377*5113495bSYour Name * Return: runtime pm's inactivity timer
2378*5113495bSYour Name */
2379*5113495bSYour Name uint32_t
2380*5113495bSYour Name ucfg_pmo_get_runtime_pm_delay(struct wlan_objmgr_psoc *psoc);
2381*5113495bSYour Name #else
2382*5113495bSYour Name static inline uint32_t
ucfg_pmo_get_runtime_pm_delay(struct wlan_objmgr_psoc * psoc)2383*5113495bSYour Name ucfg_pmo_get_runtime_pm_delay(struct wlan_objmgr_psoc *psoc)
2384*5113495bSYour Name {
2385*5113495bSYour Name return 0;
2386*5113495bSYour Name }
2387*5113495bSYour Name #endif /* FEATURE_RUNTIME_PM */
2388*5113495bSYour Name
2389*5113495bSYour Name /**
2390*5113495bSYour Name * ucfg_pmo_get_enable_sap_suspend - Return enable_sap_suspend value to caller
2391*5113495bSYour Name * @psoc: Pointer to psoc object
2392*5113495bSYour Name *
2393*5113495bSYour Name * Return: The value of enable_sap_suspend as stored in CFG
2394*5113495bSYour Name */
2395*5113495bSYour Name bool
2396*5113495bSYour Name ucfg_pmo_get_enable_sap_suspend(struct wlan_objmgr_psoc *psoc);
2397*5113495bSYour Name
2398*5113495bSYour Name /**
2399*5113495bSYour Name * ucfg_pmo_get_sap_mode_bus_suspend() - get PMO config for PCIe bus
2400*5113495bSYour Name * suspend in SAP mode with one or more clients
2401*5113495bSYour Name * @psoc: pointer to psoc object
2402*5113495bSYour Name *
2403*5113495bSYour Name * Return: bool
2404*5113495bSYour Name */
2405*5113495bSYour Name bool
2406*5113495bSYour Name ucfg_pmo_get_sap_mode_bus_suspend(struct wlan_objmgr_psoc *psoc);
2407*5113495bSYour Name
2408*5113495bSYour Name /**
2409*5113495bSYour Name * ucfg_pmo_get_go_mode_bus_suspend() - get PMO config for PCIe bus
2410*5113495bSYour Name * suspend in P2PGO mode with one or more clients
2411*5113495bSYour Name * @psoc: pointer to psoc object
2412*5113495bSYour Name *
2413*5113495bSYour Name * Return: bool
2414*5113495bSYour Name */
2415*5113495bSYour Name bool
2416*5113495bSYour Name ucfg_pmo_get_go_mode_bus_suspend(struct wlan_objmgr_psoc *psoc);
2417*5113495bSYour Name
2418*5113495bSYour Name /**
2419*5113495bSYour Name * ucfg_pmo_get_suspend_mode - Return pmo_suspend_mode value to caller
2420*5113495bSYour Name * @psoc: Pointer to psoc object
2421*5113495bSYour Name *
2422*5113495bSYour Name * Return: The value of suspend_mode as stored in CFG
2423*5113495bSYour Name */
2424*5113495bSYour Name enum pmo_suspend_mode
2425*5113495bSYour Name ucfg_pmo_get_suspend_mode(struct wlan_objmgr_psoc *psoc);
2426*5113495bSYour Name
2427*5113495bSYour Name #ifdef SYSTEM_PM_CHECK
2428*5113495bSYour Name /**
2429*5113495bSYour Name * ucfg_pmo_notify_system_resume() - system resume notification to pmo
2430*5113495bSYour Name * @psoc: pointer to psoc object
2431*5113495bSYour Name *
2432*5113495bSYour Name * Return: None
2433*5113495bSYour Name */
2434*5113495bSYour Name void
2435*5113495bSYour Name ucfg_pmo_notify_system_resume(struct wlan_objmgr_psoc *psoc);
2436*5113495bSYour Name #else
2437*5113495bSYour Name static inline
ucfg_pmo_notify_system_resume(struct wlan_objmgr_psoc * psoc)2438*5113495bSYour Name void ucfg_pmo_notify_system_resume(struct wlan_objmgr_psoc *psoc)
2439*5113495bSYour Name {
2440*5113495bSYour Name }
2441*5113495bSYour Name #endif
2442*5113495bSYour Name
2443*5113495bSYour Name /**
2444*5113495bSYour Name * ucfg_pmo_set_vdev_bridge_addr() - API to set Bridge mac address
2445*5113495bSYour Name * @vdev: objmgr vdev
2446*5113495bSYour Name * @bridgeaddr: Bridge mac address
2447*5113495bSYour Name *
2448*5113495bSYour Name * Return: if success pmo vdev ctx else NULL
2449*5113495bSYour Name */
2450*5113495bSYour Name QDF_STATUS ucfg_pmo_set_vdev_bridge_addr(struct wlan_objmgr_vdev *vdev,
2451*5113495bSYour Name struct qdf_mac_addr *bridgeaddr);
2452*5113495bSYour Name
2453*5113495bSYour Name /**
2454*5113495bSYour Name * ucfg_pmo_get_vdev_bridge_addr() - API to get Bridge mac address
2455*5113495bSYour Name * @vdev: objmgr vdev
2456*5113495bSYour Name * @bridgeaddr: Bridge mac address
2457*5113495bSYour Name *
2458*5113495bSYour Name * Return: if success pmo vdev ctx else NULL
2459*5113495bSYour Name */
2460*5113495bSYour Name QDF_STATUS ucfg_pmo_get_vdev_bridge_addr(struct wlan_objmgr_vdev *vdev,
2461*5113495bSYour Name struct qdf_mac_addr *bridgeaddr);
2462*5113495bSYour Name #endif /* end of _WLAN_PMO_UCFG_API_H_ */
2463