xref: /wlan-driver/qcacld-3.0/components/pmo/dispatcher/inc/wlan_pmo_tgt_api.h (revision 5113495b16420b49004c444715d2daae2066e7dc)
1*5113495bSYour Name /*
2*5113495bSYour Name  * Copyright (c) 2017-2021 The Linux Foundation. All rights reserved.
3*5113495bSYour Name  * Copyright (c) 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 for pmo to interact with target/WMI
21*5113495bSYour Name  */
22*5113495bSYour Name 
23*5113495bSYour Name #ifndef _WLAN_PMO_TGT_API_H_
24*5113495bSYour Name #define _WLAN_PMO_TGT_API_H_
25*5113495bSYour Name 
26*5113495bSYour Name #include "wlan_pmo_common_public_struct.h"
27*5113495bSYour Name #include "wlan_pmo_arp_public_struct.h"
28*5113495bSYour Name #include "wlan_pmo_ns_public_struct.h"
29*5113495bSYour Name #include "wlan_pmo_gtk_public_struct.h"
30*5113495bSYour Name #include "wlan_pmo_wow_public_struct.h"
31*5113495bSYour Name #include "wlan_pmo_mc_addr_filtering_public_struct.h"
32*5113495bSYour Name #include "wlan_pmo_hw_filter_public_struct.h"
33*5113495bSYour Name #include "wlan_pmo_pkt_filter_public_struct.h"
34*5113495bSYour Name 
35*5113495bSYour Name #define GET_PMO_TX_OPS_FROM_PSOC(psoc) \
36*5113495bSYour Name 	(pmo_psoc_get_priv(psoc)->pmo_tx_ops)
37*5113495bSYour Name 
38*5113495bSYour Name /**
39*5113495bSYour Name  * pmo_tgt_conf_hw_filter() - configure hardware filter mode in firmware
40*5113495bSYour Name  * @psoc: the psoc to use to communicate with firmware
41*5113495bSYour Name  * @req: the configuration request
42*5113495bSYour Name  *
43*5113495bSYour Name  * Return: QDF_STATUS
44*5113495bSYour Name  */
45*5113495bSYour Name QDF_STATUS pmo_tgt_conf_hw_filter(struct wlan_objmgr_psoc *psoc,
46*5113495bSYour Name 				  struct pmo_hw_filter_params *req);
47*5113495bSYour Name 
48*5113495bSYour Name /**
49*5113495bSYour Name  * pmo_tgt_set_pkt_filter() - Set packet filter
50*5113495bSYour Name  * @vdev: objmgr vdev
51*5113495bSYour Name  * @pmo_set_pkt_fltr_req:
52*5113495bSYour Name  * @vdev_id: vdev id
53*5113495bSYour Name  *
54*5113495bSYour Name  * API to set packet filter
55*5113495bSYour Name  *
56*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS in case of success else return error
57*5113495bSYour Name  */
58*5113495bSYour Name QDF_STATUS pmo_tgt_set_pkt_filter(struct wlan_objmgr_vdev *vdev,
59*5113495bSYour Name 		struct pmo_rcv_pkt_fltr_cfg *pmo_set_pkt_fltr_req,
60*5113495bSYour Name 		uint8_t vdev_id);
61*5113495bSYour Name 
62*5113495bSYour Name /**
63*5113495bSYour Name  * pmo_tgt_clear_pkt_filter() - Clear packet filter
64*5113495bSYour Name  * @vdev: objmgr vdev
65*5113495bSYour Name  * @pmo_clr_pkt_fltr_param:
66*5113495bSYour Name  * @vdev_id: vdev id
67*5113495bSYour Name  *
68*5113495bSYour Name  * API to clear packet filter
69*5113495bSYour Name  *
70*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS in case of success else return error
71*5113495bSYour Name  */
72*5113495bSYour Name QDF_STATUS pmo_tgt_clear_pkt_filter(struct wlan_objmgr_vdev *vdev,
73*5113495bSYour Name 		struct pmo_rcv_pkt_fltr_clear_param *pmo_clr_pkt_fltr_param,
74*5113495bSYour Name 		uint8_t vdev_id);
75*5113495bSYour Name 
76*5113495bSYour Name /**
77*5113495bSYour Name  * pmo_tgt_enable_arp_offload_req() - Enable arp offload req to target
78*5113495bSYour Name  * @vdev: objmgr vdev
79*5113495bSYour Name  * @vdev_id: vdev id
80*5113495bSYour Name  *
81*5113495bSYour Name  * Return: QDF status
82*5113495bSYour Name  */
83*5113495bSYour Name QDF_STATUS pmo_tgt_enable_arp_offload_req(struct wlan_objmgr_vdev *vdev,
84*5113495bSYour Name 		uint8_t vdev_id);
85*5113495bSYour Name 
86*5113495bSYour Name /**
87*5113495bSYour Name  * pmo_tgt_disable_arp_offload_req() - Disable arp offload req to target
88*5113495bSYour Name  * @vdev: objmgr vdev
89*5113495bSYour Name  * @vdev_id: vdev id
90*5113495bSYour Name  *
91*5113495bSYour Name  * Return: QDF status
92*5113495bSYour Name  */
93*5113495bSYour Name QDF_STATUS pmo_tgt_disable_arp_offload_req(struct wlan_objmgr_vdev *vdev,
94*5113495bSYour Name 		uint8_t vdev_id);
95*5113495bSYour Name 
96*5113495bSYour Name #ifdef WLAN_NS_OFFLOAD
97*5113495bSYour Name /**
98*5113495bSYour Name  * pmo_tgt_enable_ns_offload_req() -  Send ns offload req to targe
99*5113495bSYour Name  * @vdev: objmgr vdev
100*5113495bSYour Name  * @vdev_id: vdev id
101*5113495bSYour Name  *
102*5113495bSYour Name  * Return: QDF status
103*5113495bSYour Name  */
104*5113495bSYour Name QDF_STATUS pmo_tgt_enable_ns_offload_req(struct wlan_objmgr_vdev *vdev,
105*5113495bSYour Name 		uint8_t vdev_id);
106*5113495bSYour Name 
107*5113495bSYour Name /**
108*5113495bSYour Name  * pmo_tgt_disable_ns_offload_req() - Disable arp offload req to target
109*5113495bSYour Name  * @vdev: objmgr vdev
110*5113495bSYour Name  * @vdev_id: vdev id
111*5113495bSYour Name  *
112*5113495bSYour Name  * Return: QDF status
113*5113495bSYour Name  */
114*5113495bSYour Name QDF_STATUS pmo_tgt_disable_ns_offload_req(struct wlan_objmgr_vdev *vdev,
115*5113495bSYour Name 		uint8_t vdev_id);
116*5113495bSYour Name #endif /* WLAN_NS_OFFLOAD */
117*5113495bSYour Name 
118*5113495bSYour Name /**
119*5113495bSYour Name  * pmo_tgt_enable_wow_wakeup_event() - Send Enable wow wakeup events req to fwr
120*5113495bSYour Name  * @vdev: objmgr vdev handle
121*5113495bSYour Name  * @bitmap: Event bitmap
122*5113495bSYour Name  *
123*5113495bSYour Name  * Return: QDF status
124*5113495bSYour Name  */
125*5113495bSYour Name QDF_STATUS pmo_tgt_enable_wow_wakeup_event(struct wlan_objmgr_vdev *vdev,
126*5113495bSYour Name 		uint32_t *bitmap);
127*5113495bSYour Name 
128*5113495bSYour Name /**
129*5113495bSYour Name  * pmo_tgt_disable_wow_wakeup_event() - Send Disable wow wakeup events to fwr
130*5113495bSYour Name  * @vdev: objmgr vdev handle
131*5113495bSYour Name  * @bitmap: Event bitmap
132*5113495bSYour Name  *
133*5113495bSYour Name  * Return: QDF status
134*5113495bSYour Name  */
135*5113495bSYour Name QDF_STATUS pmo_tgt_disable_wow_wakeup_event(struct wlan_objmgr_vdev *vdev,
136*5113495bSYour Name 		uint32_t *bitmap);
137*5113495bSYour Name 
138*5113495bSYour Name /**
139*5113495bSYour Name  * pmo_tgt_send_wow_patterns_to_fw() - Sends WOW patterns to FW.
140*5113495bSYour Name  * @vdev: objmgr vdev
141*5113495bSYour Name  * @ptrn_id: pattern id
142*5113495bSYour Name  * @ptrn: pattern
143*5113495bSYour Name  * @ptrn_len: pattern length
144*5113495bSYour Name  * @ptrn_offset: pattern offset
145*5113495bSYour Name  * @mask: mask
146*5113495bSYour Name  * @mask_len: mask length
147*5113495bSYour Name  * @user: true for user configured pattern and false for default pattern
148*5113495bSYour Name  *
149*5113495bSYour Name  * Return: QDF status
150*5113495bSYour Name  */
151*5113495bSYour Name QDF_STATUS pmo_tgt_send_wow_patterns_to_fw(struct wlan_objmgr_vdev *vdev,
152*5113495bSYour Name 		uint8_t ptrn_id, const uint8_t *ptrn, uint8_t ptrn_len,
153*5113495bSYour Name 		uint8_t ptrn_offset, const uint8_t *mask,
154*5113495bSYour Name 		uint8_t mask_len, bool user);
155*5113495bSYour Name 
156*5113495bSYour Name QDF_STATUS pmo_tgt_del_wow_pattern(
157*5113495bSYour Name 		struct wlan_objmgr_vdev *vdev, uint8_t ptrn_id,
158*5113495bSYour Name 		bool user);
159*5113495bSYour Name 
160*5113495bSYour Name /**
161*5113495bSYour Name  * pmo_tgt_set_mc_filter_req() - Set mcast filter command to fw
162*5113495bSYour Name  * @vdev: objmgr vdev
163*5113495bSYour Name  * @multicast_addr: mcast address
164*5113495bSYour Name  *
165*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS for success or error code
166*5113495bSYour Name  */
167*5113495bSYour Name QDF_STATUS pmo_tgt_set_mc_filter_req(struct wlan_objmgr_vdev *vdev,
168*5113495bSYour Name 		struct qdf_mac_addr multicast_addr);
169*5113495bSYour Name 
170*5113495bSYour Name /**
171*5113495bSYour Name  * pmo_tgt_clear_mc_filter_req() - Clear mcast filter command to fw
172*5113495bSYour Name  * @vdev: objmgr vdev
173*5113495bSYour Name  * @multicast_addr: mcast address
174*5113495bSYour Name  *
175*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS for success or error code
176*5113495bSYour Name  */
177*5113495bSYour Name QDF_STATUS pmo_tgt_clear_mc_filter_req(struct wlan_objmgr_vdev *vdev,
178*5113495bSYour Name 		struct qdf_mac_addr multicast_addr);
179*5113495bSYour Name 
180*5113495bSYour Name /**
181*5113495bSYour Name  * pmo_tgt_get_multiple_mc_filter_support() - get multiple mcast filter support
182*5113495bSYour Name  * @vdev: objmgr vdev
183*5113495bSYour Name  *
184*5113495bSYour Name  * Return: true if FW supports else false
185*5113495bSYour Name  */
186*5113495bSYour Name bool pmo_tgt_get_multiple_mc_filter_support(struct wlan_objmgr_vdev *vdev);
187*5113495bSYour Name 
188*5113495bSYour Name /**
189*5113495bSYour Name  * pmo_tgt_set_multiple_mc_filter_req() - Set multiple mcast filter cmd to fw
190*5113495bSYour Name  * @vdev: objmgr vdev
191*5113495bSYour Name  * @mc_list: mcast address list
192*5113495bSYour Name  *
193*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS for success or error code
194*5113495bSYour Name  */
195*5113495bSYour Name QDF_STATUS pmo_tgt_set_multiple_mc_filter_req(struct wlan_objmgr_vdev *vdev,
196*5113495bSYour Name 		struct pmo_mc_addr_list *mc_list);
197*5113495bSYour Name 
198*5113495bSYour Name /**
199*5113495bSYour Name  * pmo_tgt_clear_multiple_mc_filter_req() - clear multiple mcast filter
200*5113495bSYour Name  *					    to fw
201*5113495bSYour Name  * @vdev: objmgr vdev
202*5113495bSYour Name  * @mc_list: mcast address list
203*5113495bSYour Name  *
204*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS for success or error code
205*5113495bSYour Name  */
206*5113495bSYour Name QDF_STATUS pmo_tgt_clear_multiple_mc_filter_req(struct wlan_objmgr_vdev *vdev,
207*5113495bSYour Name 		struct pmo_mc_addr_list *mc_list);
208*5113495bSYour Name 
209*5113495bSYour Name /**
210*5113495bSYour Name  * pmo_tgt_send_enhance_multicast_offload_req() - send enhance mc offload req
211*5113495bSYour Name  * @vdev: the vdev to configure
212*5113495bSYour Name  * @action: enable or disable enhance multicast offload
213*5113495bSYour Name  *
214*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success else error code
215*5113495bSYour Name  */
216*5113495bSYour Name QDF_STATUS pmo_tgt_send_enhance_multicast_offload_req(
217*5113495bSYour Name 		struct wlan_objmgr_vdev *vdev,
218*5113495bSYour Name 		uint8_t action);
219*5113495bSYour Name 
220*5113495bSYour Name /**
221*5113495bSYour Name  * pmo_tgt_send_ra_filter_req() - send ra filter request to target
222*5113495bSYour Name  * @vdev: objmgr vdev handle
223*5113495bSYour Name  *
224*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success else error code
225*5113495bSYour Name  */
226*5113495bSYour Name QDF_STATUS pmo_tgt_send_ra_filter_req(struct wlan_objmgr_vdev *vdev);
227*5113495bSYour Name 
228*5113495bSYour Name /**
229*5113495bSYour Name  * pmo_tgt_send_action_frame_pattern_req - send wow action frame patterns req
230*5113495bSYour Name  * @vdev: objmgr vdev handle
231*5113495bSYour Name  * @cmd: action frame pattern cmd
232*5113495bSYour Name  *
233*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success else error code
234*5113495bSYour Name  */
235*5113495bSYour Name QDF_STATUS pmo_tgt_send_action_frame_pattern_req(
236*5113495bSYour Name 		struct wlan_objmgr_vdev *vdev,
237*5113495bSYour Name 		struct pmo_action_wakeup_set_params *cmd);
238*5113495bSYour Name 
239*5113495bSYour Name /**
240*5113495bSYour Name  * pmo_tgt_send_gtk_offload_req() - send GTK offload command to fw
241*5113495bSYour Name  * @vdev: objmgr vdev
242*5113495bSYour Name  * @gtk_req: pmo gtk req
243*5113495bSYour Name  *
244*5113495bSYour Name  * Return: QDF status
245*5113495bSYour Name  */
246*5113495bSYour Name QDF_STATUS pmo_tgt_send_gtk_offload_req(struct wlan_objmgr_vdev *vdev,
247*5113495bSYour Name 		struct pmo_gtk_req *gtk_req);
248*5113495bSYour Name 
249*5113495bSYour Name /**
250*5113495bSYour Name  * pmo_tgt_get_gtk_rsp() - send get gtk rsp command to fw
251*5113495bSYour Name  * @vdev: objmgr vdev
252*5113495bSYour Name  *
253*5113495bSYour Name  * Return: QDF status
254*5113495bSYour Name  */
255*5113495bSYour Name QDF_STATUS pmo_tgt_get_gtk_rsp(struct wlan_objmgr_vdev *vdev);
256*5113495bSYour Name 
257*5113495bSYour Name /**
258*5113495bSYour Name  * pmo_tgt_gtk_rsp_evt() - receive gtk rsp event from fwr
259*5113495bSYour Name  * @psoc: objmgr psoc
260*5113495bSYour Name  * @rsp_param: gtk response parameters
261*5113495bSYour Name  *
262*5113495bSYour Name  * Return: QDF status
263*5113495bSYour Name  */
264*5113495bSYour Name QDF_STATUS pmo_tgt_gtk_rsp_evt(struct wlan_objmgr_psoc *psoc,
265*5113495bSYour Name 		struct pmo_gtk_rsp_params *rsp_param);
266*5113495bSYour Name 
267*5113495bSYour Name /**
268*5113495bSYour Name  * pmo_tgt_send_lphb_enable() - enable command of LPHB configuration requests
269*5113495bSYour Name  * @psoc: objmgr psoc handle
270*5113495bSYour Name  * @ts_lphb_enable: lphb enable request which needs to configure in fwr
271*5113495bSYour Name  *
272*5113495bSYour Name  * Return: QDF status
273*5113495bSYour Name  */
274*5113495bSYour Name QDF_STATUS pmo_tgt_send_lphb_enable(struct wlan_objmgr_psoc *psoc,
275*5113495bSYour Name 			struct pmo_lphb_enable_req *ts_lphb_enable);
276*5113495bSYour Name 
277*5113495bSYour Name /**
278*5113495bSYour Name  * pmo_tgt_send_lphb_tcp_params() - set tcp params of LPHB configuration req
279*5113495bSYour Name  * @psoc: objmgr psoc handle
280*5113495bSYour Name  * @ts_lphb_tcp_param: lphb tcp params which needs to configure in fwr
281*5113495bSYour Name  *
282*5113495bSYour Name  * Return: QDF status
283*5113495bSYour Name  */
284*5113495bSYour Name QDF_STATUS pmo_tgt_send_lphb_tcp_params(struct wlan_objmgr_psoc *psoc,
285*5113495bSYour Name 			struct pmo_lphb_tcp_params *ts_lphb_tcp_param);
286*5113495bSYour Name 
287*5113495bSYour Name /**
288*5113495bSYour Name  * pmo_tgt_send_lphb_tcp_pkt_filter() - send tcp packet filter command of LPHB
289*5113495bSYour Name  * @psoc: objmgr psoc handle
290*5113495bSYour Name  * @ts_lphb_tcp_filter: lphb tcp filter request which needs to configure in fwr
291*5113495bSYour Name  *
292*5113495bSYour Name  * Return: QDF status
293*5113495bSYour Name  */
294*5113495bSYour Name QDF_STATUS pmo_tgt_send_lphb_tcp_pkt_filter(struct wlan_objmgr_psoc *psoc,
295*5113495bSYour Name 			struct pmo_lphb_tcp_filter_req *ts_lphb_tcp_filter);
296*5113495bSYour Name 
297*5113495bSYour Name /**
298*5113495bSYour Name  * pmo_tgt_send_lphb_udp_params() - Send udp param command of LPHB
299*5113495bSYour Name  * @psoc: objmgr psoc handle
300*5113495bSYour Name  * @ts_lphb_udp_param: lphb udp params which needs to configure in fwr
301*5113495bSYour Name  *
302*5113495bSYour Name  * Return: QDF status
303*5113495bSYour Name  */
304*5113495bSYour Name QDF_STATUS pmo_tgt_send_lphb_udp_params(struct wlan_objmgr_psoc *psoc,
305*5113495bSYour Name 			struct pmo_lphb_udp_params *ts_lphb_udp_param);
306*5113495bSYour Name 
307*5113495bSYour Name /**
308*5113495bSYour Name  * pmo_tgt_send_lphb_udp_pkt_filter() - Send udp pkt filter command of LPHB
309*5113495bSYour Name  * @psoc: objmgr psoc handle
310*5113495bSYour Name  * @ts_lphb_udp_filter: lphb udp filter request which needs to configure in fwr
311*5113495bSYour Name  *
312*5113495bSYour Name  * Return: QDF status
313*5113495bSYour Name  */
314*5113495bSYour Name QDF_STATUS pmo_tgt_send_lphb_udp_pkt_filter(struct wlan_objmgr_psoc *psoc,
315*5113495bSYour Name 			struct pmo_lphb_udp_filter_req *ts_lphb_udp_filter);
316*5113495bSYour Name 
317*5113495bSYour Name 
318*5113495bSYour Name /**
319*5113495bSYour Name  * pmo_tgt_lphb_rsp_evt() - receive lphb rsp event from fwr
320*5113495bSYour Name  * @psoc: objmgr psoc
321*5113495bSYour Name  * @rsp_param: lphb response parameters
322*5113495bSYour Name  *
323*5113495bSYour Name  * Return: QDF_STATUS
324*5113495bSYour Name  */
325*5113495bSYour Name QDF_STATUS pmo_tgt_lphb_rsp_evt(struct wlan_objmgr_psoc *psoc,
326*5113495bSYour Name 			struct pmo_lphb_rsp *rsp_param);
327*5113495bSYour Name 
328*5113495bSYour Name /**
329*5113495bSYour Name  * pmo_tgt_vdev_update_param_req() - Update vdev param value to fwr
330*5113495bSYour Name  * @vdev: objmgr vdev
331*5113495bSYour Name  * @param_id: tell vdev param id which needs to be updated in fwr
332*5113495bSYour Name  * @param_value: vdev parameter value
333*5113495bSYour Name  *
334*5113495bSYour Name  * Return: QDF status
335*5113495bSYour Name  */
336*5113495bSYour Name QDF_STATUS pmo_tgt_vdev_update_param_req(struct wlan_objmgr_vdev *vdev,
337*5113495bSYour Name 		enum pmo_vdev_param_id param_id, uint32_t param_value);
338*5113495bSYour Name 
339*5113495bSYour Name /**
340*5113495bSYour Name  * pmo_tgt_send_vdev_sta_ps_param() - Send vdev sta power save param to fwr
341*5113495bSYour Name  * @vdev: objmgr vdev
342*5113495bSYour Name  * @ps_param: sta mode ps power save params type
343*5113495bSYour Name  * @param_value: power save parameter value
344*5113495bSYour Name  *
345*5113495bSYour Name  * Return: QDF status
346*5113495bSYour Name  */
347*5113495bSYour Name QDF_STATUS pmo_tgt_send_vdev_sta_ps_param(struct wlan_objmgr_vdev *vdev,
348*5113495bSYour Name 		enum pmo_sta_powersave_param ps_param, uint32_t param_value);
349*5113495bSYour Name 
350*5113495bSYour Name #ifdef WLAN_FEATURE_IGMP_OFFLOAD
351*5113495bSYour Name /**
352*5113495bSYour Name  * pmo_tgt_send_igmp_offload_req() - Send igmp offload request to fw
353*5113495bSYour Name  * @vdev: objmgr vdev
354*5113495bSYour Name  * @pmo_igmp_req: igmp offload params
355*5113495bSYour Name  *
356*5113495bSYour Name  * Return: QDF status
357*5113495bSYour Name  */
358*5113495bSYour Name QDF_STATUS
359*5113495bSYour Name pmo_tgt_send_igmp_offload_req(struct wlan_objmgr_vdev *vdev,
360*5113495bSYour Name 			      struct pmo_igmp_offload_req *pmo_igmp_req);
361*5113495bSYour Name #else
362*5113495bSYour Name static inline QDF_STATUS
pmo_tgt_send_igmp_offload_req(struct wlan_objmgr_vdev * vdev,struct pmo_igmp_offload_req * pmo_igmp_req)363*5113495bSYour Name pmo_tgt_send_igmp_offload_req(struct wlan_objmgr_vdev *vdev,
364*5113495bSYour Name 			      struct pmo_igmp_offload_req *pmo_igmp_req)
365*5113495bSYour Name {
366*5113495bSYour Name 	return QDF_STATUS_SUCCESS;
367*5113495bSYour Name }
368*5113495bSYour Name #endif
369*5113495bSYour Name 
370*5113495bSYour Name /**
371*5113495bSYour Name  * pmo_tgt_psoc_update_wow_bus_suspend_state() - update wow bus suspend state
372*5113495bSYour Name  *                                               flag
373*5113495bSYour Name  * @psoc: objmgr psoc
374*5113495bSYour Name  * @val: true for setting wow suspend flag to set else false
375*5113495bSYour Name  *
376*5113495bSYour Name  * Return: None
377*5113495bSYour Name  */
378*5113495bSYour Name void pmo_tgt_psoc_update_wow_bus_suspend_state(struct wlan_objmgr_psoc *psoc,
379*5113495bSYour Name 		uint8_t val);
380*5113495bSYour Name 
381*5113495bSYour Name /**
382*5113495bSYour Name  * pmo_tgt_psoc_get_host_credits() - Get host credits
383*5113495bSYour Name  * @psoc: objmgr psoc
384*5113495bSYour Name  *
385*5113495bSYour Name  * Return: Pending WMI commands on success else EAGAIN on error
386*5113495bSYour Name  */
387*5113495bSYour Name int pmo_tgt_psoc_get_host_credits(struct wlan_objmgr_psoc *psoc);
388*5113495bSYour Name 
389*5113495bSYour Name /**
390*5113495bSYour Name  * pmo_tgt_psoc_get_pending_cmnds() - Get pending commands
391*5113495bSYour Name  * @psoc: objmgr psoc
392*5113495bSYour Name  *
393*5113495bSYour Name  * Return: Pending WMI commands on success else EAGAIN on error
394*5113495bSYour Name  */
395*5113495bSYour Name int pmo_tgt_psoc_get_pending_cmnds(struct wlan_objmgr_psoc *psoc);
396*5113495bSYour Name 
397*5113495bSYour Name /**
398*5113495bSYour Name  * pmo_tgt_update_target_suspend_flag() - Set WMI target Suspend flag
399*5113495bSYour Name  * @psoc: objmgr psoc
400*5113495bSYour Name  * @val: true on suspend false for resume
401*5113495bSYour Name  *
402*5113495bSYour Name  * Return: None
403*5113495bSYour Name  */
404*5113495bSYour Name void pmo_tgt_update_target_suspend_flag(struct wlan_objmgr_psoc *psoc,
405*5113495bSYour Name 					uint8_t val);
406*5113495bSYour Name 
407*5113495bSYour Name /**
408*5113495bSYour Name  * pmo_tgt_update_target_suspend_acked_flag() - Set WMI target Suspend acked
409*5113495bSYour Name  *                                              flag
410*5113495bSYour Name  * @psoc: objmgr psoc
411*5113495bSYour Name  * @val: true on suspend false for resume
412*5113495bSYour Name  *
413*5113495bSYour Name  * Return: None
414*5113495bSYour Name  */
415*5113495bSYour Name void pmo_tgt_update_target_suspend_acked_flag(struct wlan_objmgr_psoc *psoc,
416*5113495bSYour Name 					      uint8_t val);
417*5113495bSYour Name 
418*5113495bSYour Name /**
419*5113495bSYour Name  * pmo_tgt_is_target_suspended() - Get WMI target Suspend flag
420*5113495bSYour Name  * @psoc: objmgr psoc
421*5113495bSYour Name  *
422*5113495bSYour Name  * Return: true if target suspended, false otherwise.
423*5113495bSYour Name  */
424*5113495bSYour Name bool pmo_tgt_is_target_suspended(struct wlan_objmgr_psoc *psoc);
425*5113495bSYour Name 
426*5113495bSYour Name /**
427*5113495bSYour Name  * pmo_tgt_psoc_send_wow_enable_req() -Send wow enable request
428*5113495bSYour Name  * @psoc: objmgr psoc
429*5113495bSYour Name  * @param: WOW enable request buffer
430*5113495bSYour Name  *
431*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success else error code
432*5113495bSYour Name  */
433*5113495bSYour Name QDF_STATUS pmo_tgt_psoc_send_wow_enable_req(struct wlan_objmgr_psoc *psoc,
434*5113495bSYour Name 	struct pmo_wow_cmd_params *param);
435*5113495bSYour Name 
436*5113495bSYour Name /**
437*5113495bSYour Name  * pmo_tgt_psoc_send_supend_req() -Send target suspend request to fwr
438*5113495bSYour Name  * @psoc: objmgr psoc
439*5113495bSYour Name  * @param: suspend request buffer
440*5113495bSYour Name  *
441*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success else error code
442*5113495bSYour Name  */
443*5113495bSYour Name QDF_STATUS pmo_tgt_psoc_send_supend_req(struct wlan_objmgr_psoc *psoc,
444*5113495bSYour Name 		struct pmo_suspend_params *param);
445*5113495bSYour Name 
446*5113495bSYour Name /**
447*5113495bSYour Name  * pmo_tgt_psoc_set_runtime_pm_inprogress() -set runtime status
448*5113495bSYour Name  * @psoc: objmgr psoc
449*5113495bSYour Name  * @value: set runtime pm in progress true or false
450*5113495bSYour Name  *
451*5113495bSYour Name  * Return: none
452*5113495bSYour Name  */
453*5113495bSYour Name QDF_STATUS pmo_tgt_psoc_set_runtime_pm_inprogress(struct wlan_objmgr_psoc *psoc,
454*5113495bSYour Name 						  bool value);
455*5113495bSYour Name 
456*5113495bSYour Name /**
457*5113495bSYour Name  * pmo_tgt_psoc_get_runtime_pm_in_progress() -get runtime status
458*5113495bSYour Name  * @psoc: objmgr psoc
459*5113495bSYour Name  *
460*5113495bSYour Name  * Return: true if runtime pm is in progress else false
461*5113495bSYour Name  */
462*5113495bSYour Name bool pmo_tgt_psoc_get_runtime_pm_in_progress(struct wlan_objmgr_psoc *psoc);
463*5113495bSYour Name 
464*5113495bSYour Name /**
465*5113495bSYour Name  * pmo_tgt_psoc_send_host_wakeup_ind() -Send host wake up indication to fwr
466*5113495bSYour Name  * @psoc: objmgr psoc
467*5113495bSYour Name  *
468*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success else error code
469*5113495bSYour Name  */
470*5113495bSYour Name QDF_STATUS pmo_tgt_psoc_send_host_wakeup_ind(struct wlan_objmgr_psoc *psoc);
471*5113495bSYour Name 
472*5113495bSYour Name /**
473*5113495bSYour Name  * pmo_tgt_psoc_send_target_resume_req() -Send target resume request
474*5113495bSYour Name  * @psoc: objmgr psoc
475*5113495bSYour Name  *
476*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success else error code
477*5113495bSYour Name  */
478*5113495bSYour Name QDF_STATUS pmo_tgt_psoc_send_target_resume_req(struct wlan_objmgr_psoc *psoc);
479*5113495bSYour Name 
480*5113495bSYour Name /**
481*5113495bSYour Name  * pmo_tgt_psoc_send_idle_roam_monitor() - Send idle roam set suspend mode
482*5113495bSYour Name  * command to firmware
483*5113495bSYour Name  * @psoc: objmgr psoc
484*5113495bSYour Name  * @val: Set suspend mode value
485*5113495bSYour Name  *
486*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS on success else error code
487*5113495bSYour Name  */
488*5113495bSYour Name QDF_STATUS pmo_tgt_psoc_send_idle_roam_monitor(struct wlan_objmgr_psoc *psoc,
489*5113495bSYour Name 					       uint8_t val);
490*5113495bSYour Name 
491*5113495bSYour Name #ifdef WLAN_FEATURE_ICMP_OFFLOAD
492*5113495bSYour Name /**
493*5113495bSYour Name  * pmo_tgt_config_icmp_offload_req() - Configure icmp offload req to target
494*5113495bSYour Name  * @psoc: objmgr psoc
495*5113495bSYour Name  * @pmo_icmp_req: ICMP offload parameters
496*5113495bSYour Name  *
497*5113495bSYour Name  * Return: QDF status
498*5113495bSYour Name  */
499*5113495bSYour Name QDF_STATUS
500*5113495bSYour Name pmo_tgt_config_icmp_offload_req(struct wlan_objmgr_psoc *psoc,
501*5113495bSYour Name 				struct pmo_icmp_offload *pmo_icmp_req);
502*5113495bSYour Name #endif
503*5113495bSYour Name 
504*5113495bSYour Name /**
505*5113495bSYour Name  * pmo_tgt_psoc_set_wow_enable_ack_failed() -set wow enable ack failure status
506*5113495bSYour Name  * @psoc: objmgr psoc
507*5113495bSYour Name  *
508*5113495bSYour Name  * Return: none
509*5113495bSYour Name  */
510*5113495bSYour Name QDF_STATUS
511*5113495bSYour Name pmo_tgt_psoc_set_wow_enable_ack_failed(struct wlan_objmgr_psoc *psoc);
512*5113495bSYour Name 
513*5113495bSYour Name #endif /* end  of _WLAN_PMO_TGT_API_H_ */
514