xref: /wlan-driver/qca-wifi-host-cmn/wmi/src/wmi_unified_pmo_api.c (revision 5113495b16420b49004c444715d2daae2066e7dc) !
1*5113495bSYour Name /*
2*5113495bSYour Name  * Copyright (c) 2017-2019, 2021 The Linux Foundation. All rights reserved.
3*5113495bSYour Name  *
4*5113495bSYour Name  * Permission to use, copy, modify, and/or distribute this software for
5*5113495bSYour Name  * any purpose with or without fee is hereby granted, provided that the
6*5113495bSYour Name  * above copyright notice and this permission notice appear in all
7*5113495bSYour Name  * copies.
8*5113495bSYour Name  *
9*5113495bSYour Name  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
10*5113495bSYour Name  * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
11*5113495bSYour Name  * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
12*5113495bSYour Name  * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
13*5113495bSYour Name  * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
14*5113495bSYour Name  * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
15*5113495bSYour Name  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
16*5113495bSYour Name  * PERFORMANCE OF THIS SOFTWARE.
17*5113495bSYour Name  */
18*5113495bSYour Name /**
19*5113495bSYour Name  * DOC: Implement API's specific to PMO component.
20*5113495bSYour Name  */
21*5113495bSYour Name 
22*5113495bSYour Name #include "ol_if_athvar.h"
23*5113495bSYour Name #include "ol_defines.h"
24*5113495bSYour Name #include "wmi_unified_priv.h"
25*5113495bSYour Name #include "wmi_unified_pmo_api.h"
26*5113495bSYour Name #include "wlan_pmo_hw_filter_public_struct.h"
27*5113495bSYour Name 
28*5113495bSYour Name #ifdef FEATURE_WLAN_D0WOW
wmi_unified_d0wow_enable_send(wmi_unified_t wmi_handle,uint8_t mac_id)29*5113495bSYour Name QDF_STATUS wmi_unified_d0wow_enable_send(wmi_unified_t wmi_handle,
30*5113495bSYour Name 					 uint8_t mac_id)
31*5113495bSYour Name {
32*5113495bSYour Name 	if (wmi_handle->ops->send_d0wow_enable_cmd)
33*5113495bSYour Name 		return wmi_handle->ops->send_d0wow_enable_cmd(wmi_handle,
34*5113495bSYour Name 							      mac_id);
35*5113495bSYour Name 
36*5113495bSYour Name 	return QDF_STATUS_E_FAILURE;
37*5113495bSYour Name }
38*5113495bSYour Name 
wmi_unified_d0wow_disable_send(wmi_unified_t wmi_handle,uint8_t mac_id)39*5113495bSYour Name QDF_STATUS wmi_unified_d0wow_disable_send(wmi_unified_t wmi_handle,
40*5113495bSYour Name 					  uint8_t mac_id)
41*5113495bSYour Name {
42*5113495bSYour Name 	if (wmi_handle->ops->send_d0wow_disable_cmd)
43*5113495bSYour Name 		return wmi_handle->ops->send_d0wow_disable_cmd(wmi_handle,
44*5113495bSYour Name 							       mac_id);
45*5113495bSYour Name 
46*5113495bSYour Name 	return QDF_STATUS_E_FAILURE;
47*5113495bSYour Name }
48*5113495bSYour Name #endif /* FEATURE_WLAN_D0WOW */
49*5113495bSYour Name 
wmi_unified_add_wow_wakeup_event_cmd(wmi_unified_t wmi_handle,uint32_t vdev_id,uint32_t * bitmap,bool enable)50*5113495bSYour Name QDF_STATUS wmi_unified_add_wow_wakeup_event_cmd(wmi_unified_t wmi_handle,
51*5113495bSYour Name 						uint32_t vdev_id,
52*5113495bSYour Name 						uint32_t *bitmap,
53*5113495bSYour Name 						bool enable)
54*5113495bSYour Name {
55*5113495bSYour Name 	if (wmi_handle->ops->send_add_wow_wakeup_event_cmd)
56*5113495bSYour Name 		return wmi_handle->ops->send_add_wow_wakeup_event_cmd(
57*5113495bSYour Name 				wmi_handle, vdev_id, bitmap, enable);
58*5113495bSYour Name 
59*5113495bSYour Name 	return QDF_STATUS_E_FAILURE;
60*5113495bSYour Name }
61*5113495bSYour Name 
wmi_unified_wow_patterns_to_fw_cmd(wmi_unified_t wmi_handle,uint8_t vdev_id,uint8_t ptrn_id,const uint8_t * ptrn,uint8_t ptrn_len,uint8_t ptrn_offset,const uint8_t * mask,uint8_t mask_len,bool user,uint8_t default_patterns)62*5113495bSYour Name QDF_STATUS wmi_unified_wow_patterns_to_fw_cmd(
63*5113495bSYour Name 				wmi_unified_t wmi_handle,
64*5113495bSYour Name 				uint8_t vdev_id, uint8_t ptrn_id,
65*5113495bSYour Name 				const uint8_t *ptrn, uint8_t ptrn_len,
66*5113495bSYour Name 				uint8_t ptrn_offset, const uint8_t *mask,
67*5113495bSYour Name 				uint8_t mask_len, bool user,
68*5113495bSYour Name 				uint8_t default_patterns)
69*5113495bSYour Name {
70*5113495bSYour Name 	if (wmi_handle->ops->send_wow_patterns_to_fw_cmd)
71*5113495bSYour Name 		return wmi_handle->ops->send_wow_patterns_to_fw_cmd(wmi_handle,
72*5113495bSYour Name 				vdev_id, ptrn_id, ptrn,
73*5113495bSYour Name 				ptrn_len, ptrn_offset, mask,
74*5113495bSYour Name 				mask_len, user, default_patterns);
75*5113495bSYour Name 
76*5113495bSYour Name 	return QDF_STATUS_E_FAILURE;
77*5113495bSYour Name }
78*5113495bSYour Name 
wmi_unified_enable_arp_ns_offload_cmd(wmi_unified_t wmi_handle,struct pmo_arp_offload_params * arp_offload_req,struct pmo_ns_offload_params * ns_offload_req,uint8_t vdev_id)79*5113495bSYour Name QDF_STATUS wmi_unified_enable_arp_ns_offload_cmd(
80*5113495bSYour Name 			wmi_unified_t wmi_handle,
81*5113495bSYour Name 			struct pmo_arp_offload_params *arp_offload_req,
82*5113495bSYour Name 			struct pmo_ns_offload_params *ns_offload_req,
83*5113495bSYour Name 			uint8_t vdev_id)
84*5113495bSYour Name {
85*5113495bSYour Name 	if (wmi_handle->ops->send_enable_arp_ns_offload_cmd)
86*5113495bSYour Name 		return wmi_handle->ops->send_enable_arp_ns_offload_cmd(
87*5113495bSYour Name 				wmi_handle,
88*5113495bSYour Name 				arp_offload_req, ns_offload_req, vdev_id);
89*5113495bSYour Name 
90*5113495bSYour Name 	return QDF_STATUS_E_FAILURE;
91*5113495bSYour Name }
92*5113495bSYour Name 
wmi_unified_add_clear_mcbc_filter_cmd(wmi_unified_t wmi_handle,uint8_t vdev_id,struct qdf_mac_addr multicast_addr,bool clear_list)93*5113495bSYour Name QDF_STATUS wmi_unified_add_clear_mcbc_filter_cmd(
94*5113495bSYour Name 				wmi_unified_t wmi_handle,
95*5113495bSYour Name 				uint8_t vdev_id,
96*5113495bSYour Name 				struct qdf_mac_addr multicast_addr,
97*5113495bSYour Name 				bool clear_list)
98*5113495bSYour Name {
99*5113495bSYour Name 	if (wmi_handle->ops->send_add_clear_mcbc_filter_cmd)
100*5113495bSYour Name 		return wmi_handle->ops->send_add_clear_mcbc_filter_cmd(
101*5113495bSYour Name 			wmi_handle, vdev_id, multicast_addr, clear_list);
102*5113495bSYour Name 
103*5113495bSYour Name 	return QDF_STATUS_E_FAILURE;
104*5113495bSYour Name }
105*5113495bSYour Name 
wmi_unified_multiple_add_clear_mcbc_filter_cmd(wmi_unified_t wmi_handle,uint8_t vdev_id,struct pmo_mcast_filter_params * filter_param)106*5113495bSYour Name QDF_STATUS wmi_unified_multiple_add_clear_mcbc_filter_cmd(
107*5113495bSYour Name 				wmi_unified_t wmi_handle,
108*5113495bSYour Name 				uint8_t vdev_id,
109*5113495bSYour Name 				struct pmo_mcast_filter_params *filter_param)
110*5113495bSYour Name {
111*5113495bSYour Name 	if (wmi_handle->ops->send_multiple_add_clear_mcbc_filter_cmd)
112*5113495bSYour Name 		return wmi_handle->ops->send_multiple_add_clear_mcbc_filter_cmd(
113*5113495bSYour Name 				wmi_handle, vdev_id, filter_param);
114*5113495bSYour Name 
115*5113495bSYour Name 	return QDF_STATUS_E_FAILURE;
116*5113495bSYour Name }
117*5113495bSYour Name 
wmi_unified_conf_hw_filter_cmd(wmi_unified_t wmi_handle,struct pmo_hw_filter_params * req)118*5113495bSYour Name QDF_STATUS wmi_unified_conf_hw_filter_cmd(wmi_unified_t wmi_handle,
119*5113495bSYour Name 					  struct pmo_hw_filter_params *req)
120*5113495bSYour Name {
121*5113495bSYour Name 	if (!wmi_handle->ops->send_conf_hw_filter_cmd)
122*5113495bSYour Name 		return QDF_STATUS_E_NOSUPPORT;
123*5113495bSYour Name 
124*5113495bSYour Name 	return wmi_handle->ops->send_conf_hw_filter_cmd(wmi_handle, req);
125*5113495bSYour Name }
126*5113495bSYour Name 
wmi_unified_send_gtk_offload_cmd(wmi_unified_t wmi_handle,uint8_t vdev_id,struct pmo_gtk_req * params,bool enable_offload,uint32_t gtk_offload_opcode)127*5113495bSYour Name QDF_STATUS wmi_unified_send_gtk_offload_cmd(wmi_unified_t wmi_handle,
128*5113495bSYour Name 					    uint8_t vdev_id,
129*5113495bSYour Name 					    struct pmo_gtk_req  *params,
130*5113495bSYour Name 					    bool enable_offload,
131*5113495bSYour Name 					    uint32_t gtk_offload_opcode)
132*5113495bSYour Name {
133*5113495bSYour Name 	if (wmi_handle->ops->send_gtk_offload_cmd)
134*5113495bSYour Name 		return wmi_handle->ops->send_gtk_offload_cmd(wmi_handle,
135*5113495bSYour Name 				vdev_id, params, enable_offload,
136*5113495bSYour Name 				gtk_offload_opcode);
137*5113495bSYour Name 
138*5113495bSYour Name 	return QDF_STATUS_E_FAILURE;
139*5113495bSYour Name }
140*5113495bSYour Name 
141*5113495bSYour Name #ifdef WLAN_FEATURE_IGMP_OFFLOAD
142*5113495bSYour Name QDF_STATUS
wmi_unified_send_igmp_offload_cmd(wmi_unified_t wmi_handle,struct pmo_igmp_offload_req * pmo_igmp_req)143*5113495bSYour Name wmi_unified_send_igmp_offload_cmd(wmi_unified_t wmi_handle,
144*5113495bSYour Name 				  struct pmo_igmp_offload_req *pmo_igmp_req)
145*5113495bSYour Name {
146*5113495bSYour Name 	if (wmi_handle->ops->send_igmp_offload_cmd)
147*5113495bSYour Name 		return wmi_handle->ops->send_igmp_offload_cmd(wmi_handle,
148*5113495bSYour Name 				pmo_igmp_req);
149*5113495bSYour Name 
150*5113495bSYour Name 	return QDF_STATUS_E_FAILURE;
151*5113495bSYour Name }
152*5113495bSYour Name #endif
153*5113495bSYour Name 
wmi_unified_process_gtk_offload_getinfo_cmd(wmi_unified_t wmi_handle,uint8_t vdev_id,uint64_t offload_req_opcode)154*5113495bSYour Name QDF_STATUS wmi_unified_process_gtk_offload_getinfo_cmd(
155*5113495bSYour Name 				wmi_unified_t wmi_handle,
156*5113495bSYour Name 				uint8_t vdev_id,
157*5113495bSYour Name 				uint64_t offload_req_opcode)
158*5113495bSYour Name {
159*5113495bSYour Name 	if (wmi_handle->ops->send_process_gtk_offload_getinfo_cmd)
160*5113495bSYour Name 		return wmi_handle->ops->send_process_gtk_offload_getinfo_cmd(
161*5113495bSYour Name 				wmi_handle, vdev_id, offload_req_opcode);
162*5113495bSYour Name 
163*5113495bSYour Name 	return QDF_STATUS_E_FAILURE;
164*5113495bSYour Name }
165*5113495bSYour Name 
wmi_unified_enable_enhance_multicast_offload_cmd(wmi_unified_t wmi_handle,uint8_t vdev_id,bool action)166*5113495bSYour Name QDF_STATUS wmi_unified_enable_enhance_multicast_offload_cmd(
167*5113495bSYour Name 		wmi_unified_t wmi_handle, uint8_t vdev_id, bool action)
168*5113495bSYour Name {
169*5113495bSYour Name 	struct wmi_ops *ops;
170*5113495bSYour Name 
171*5113495bSYour Name 	ops = wmi_handle->ops;
172*5113495bSYour Name 	if (ops && ops->send_enable_enhance_multicast_offload_cmd)
173*5113495bSYour Name 		return ops->send_enable_enhance_multicast_offload_cmd(
174*5113495bSYour Name 			wmi_handle, vdev_id, action);
175*5113495bSYour Name 
176*5113495bSYour Name 	return QDF_STATUS_E_FAILURE;
177*5113495bSYour Name }
178*5113495bSYour Name 
wmi_extract_gtk_rsp_event(wmi_unified_t wmi_handle,void * evt_buf,struct pmo_gtk_rsp_params * gtk_rsp_param,uint32_t len)179*5113495bSYour Name QDF_STATUS wmi_extract_gtk_rsp_event(
180*5113495bSYour Name 	wmi_unified_t wmi_handle, void *evt_buf,
181*5113495bSYour Name 	struct pmo_gtk_rsp_params *gtk_rsp_param, uint32_t len)
182*5113495bSYour Name {
183*5113495bSYour Name 	if (wmi_handle->ops->extract_gtk_rsp_event)
184*5113495bSYour Name 		return wmi_handle->ops->extract_gtk_rsp_event(wmi_handle,
185*5113495bSYour Name 				evt_buf, gtk_rsp_param, len);
186*5113495bSYour Name 
187*5113495bSYour Name 	return QDF_STATUS_E_FAILURE;
188*5113495bSYour Name }
189*5113495bSYour Name 
190*5113495bSYour Name #ifdef FEATURE_WLAN_RA_FILTERING
wmi_unified_wow_sta_ra_filter_cmd(wmi_unified_t wmi_handle,uint8_t vdev_id,uint8_t default_pattern,uint16_t rate_limit_interval)191*5113495bSYour Name QDF_STATUS wmi_unified_wow_sta_ra_filter_cmd(wmi_unified_t wmi_handle,
192*5113495bSYour Name 					     uint8_t vdev_id,
193*5113495bSYour Name 					     uint8_t default_pattern,
194*5113495bSYour Name 					     uint16_t rate_limit_interval)
195*5113495bSYour Name {
196*5113495bSYour Name 
197*5113495bSYour Name 	if (wmi_handle->ops->send_wow_sta_ra_filter_cmd)
198*5113495bSYour Name 		return wmi_handle->ops->send_wow_sta_ra_filter_cmd(wmi_handle,
199*5113495bSYour Name 			    vdev_id, default_pattern, rate_limit_interval);
200*5113495bSYour Name 
201*5113495bSYour Name 	return QDF_STATUS_E_FAILURE;
202*5113495bSYour Name 
203*5113495bSYour Name }
204*5113495bSYour Name #endif /* FEATURE_WLAN_RA_FILTERING */
205*5113495bSYour Name 
wmi_unified_action_frame_patterns_cmd(wmi_unified_t wmi_handle,struct pmo_action_wakeup_set_params * action_params)206*5113495bSYour Name QDF_STATUS wmi_unified_action_frame_patterns_cmd(
207*5113495bSYour Name 		wmi_unified_t wmi_handle,
208*5113495bSYour Name 		struct pmo_action_wakeup_set_params *action_params)
209*5113495bSYour Name {
210*5113495bSYour Name 	if (wmi_handle->ops->send_action_frame_patterns_cmd)
211*5113495bSYour Name 		return wmi_handle->ops->send_action_frame_patterns_cmd(
212*5113495bSYour Name 				wmi_handle, action_params);
213*5113495bSYour Name 
214*5113495bSYour Name 	return QDF_STATUS_E_FAILURE;
215*5113495bSYour Name }
216*5113495bSYour Name 
217*5113495bSYour Name #ifdef FEATURE_WLAN_LPHB
wmi_unified_lphb_config_hbenable_cmd(wmi_unified_t wmi_handle,wmi_hb_set_enable_cmd_fixed_param * params)218*5113495bSYour Name QDF_STATUS wmi_unified_lphb_config_hbenable_cmd(
219*5113495bSYour Name 		wmi_unified_t wmi_handle,
220*5113495bSYour Name 		wmi_hb_set_enable_cmd_fixed_param *params)
221*5113495bSYour Name {
222*5113495bSYour Name 	if (wmi_handle->ops->send_lphb_config_hbenable_cmd)
223*5113495bSYour Name 		return wmi_handle->ops->send_lphb_config_hbenable_cmd(
224*5113495bSYour Name 				wmi_handle, params);
225*5113495bSYour Name 
226*5113495bSYour Name 	return QDF_STATUS_E_FAILURE;
227*5113495bSYour Name }
228*5113495bSYour Name 
wmi_unified_lphb_config_tcp_params_cmd(wmi_unified_t wmi_handle,wmi_hb_set_tcp_params_cmd_fixed_param * lphb_conf_req)229*5113495bSYour Name QDF_STATUS wmi_unified_lphb_config_tcp_params_cmd(
230*5113495bSYour Name 		wmi_unified_t wmi_handle,
231*5113495bSYour Name 		wmi_hb_set_tcp_params_cmd_fixed_param *lphb_conf_req)
232*5113495bSYour Name {
233*5113495bSYour Name 	if (wmi_handle->ops->send_lphb_config_tcp_params_cmd)
234*5113495bSYour Name 		return wmi_handle->ops->send_lphb_config_tcp_params_cmd(
235*5113495bSYour Name 				wmi_handle, lphb_conf_req);
236*5113495bSYour Name 
237*5113495bSYour Name 	return QDF_STATUS_E_FAILURE;
238*5113495bSYour Name }
239*5113495bSYour Name 
wmi_unified_lphb_config_tcp_pkt_filter_cmd(wmi_unified_t wmi_handle,wmi_hb_set_tcp_pkt_filter_cmd_fixed_param * g_hb_tcp_filter_fp)240*5113495bSYour Name QDF_STATUS wmi_unified_lphb_config_tcp_pkt_filter_cmd(
241*5113495bSYour Name 		wmi_unified_t wmi_handle,
242*5113495bSYour Name 		wmi_hb_set_tcp_pkt_filter_cmd_fixed_param *g_hb_tcp_filter_fp)
243*5113495bSYour Name {
244*5113495bSYour Name 	if (wmi_handle->ops->send_lphb_config_tcp_pkt_filter_cmd)
245*5113495bSYour Name 		return wmi_handle->ops->send_lphb_config_tcp_pkt_filter_cmd(
246*5113495bSYour Name 				wmi_handle, g_hb_tcp_filter_fp);
247*5113495bSYour Name 
248*5113495bSYour Name 	return QDF_STATUS_E_FAILURE;
249*5113495bSYour Name }
250*5113495bSYour Name 
wmi_unified_lphb_config_udp_params_cmd(wmi_unified_t wmi_handle,wmi_hb_set_udp_params_cmd_fixed_param * lphb_conf_req)251*5113495bSYour Name QDF_STATUS wmi_unified_lphb_config_udp_params_cmd(
252*5113495bSYour Name 			wmi_unified_t wmi_handle,
253*5113495bSYour Name 			wmi_hb_set_udp_params_cmd_fixed_param *lphb_conf_req)
254*5113495bSYour Name {
255*5113495bSYour Name 	if (wmi_handle->ops->send_lphb_config_udp_params_cmd)
256*5113495bSYour Name 		return wmi_handle->ops->send_lphb_config_udp_params_cmd(
257*5113495bSYour Name 				wmi_handle, lphb_conf_req);
258*5113495bSYour Name 
259*5113495bSYour Name 	return QDF_STATUS_E_FAILURE;
260*5113495bSYour Name }
261*5113495bSYour Name 
wmi_unified_lphb_config_udp_pkt_filter_cmd(wmi_unified_t wmi_handle,wmi_hb_set_udp_pkt_filter_cmd_fixed_param * lphb_conf_req)262*5113495bSYour Name QDF_STATUS wmi_unified_lphb_config_udp_pkt_filter_cmd(
263*5113495bSYour Name 		wmi_unified_t wmi_handle,
264*5113495bSYour Name 		wmi_hb_set_udp_pkt_filter_cmd_fixed_param *lphb_conf_req)
265*5113495bSYour Name {
266*5113495bSYour Name 	if (wmi_handle->ops->send_lphb_config_udp_pkt_filter_cmd)
267*5113495bSYour Name 		return wmi_handle->ops->send_lphb_config_udp_pkt_filter_cmd(
268*5113495bSYour Name 				wmi_handle, lphb_conf_req);
269*5113495bSYour Name 
270*5113495bSYour Name 	return QDF_STATUS_E_FAILURE;
271*5113495bSYour Name }
272*5113495bSYour Name #endif /* FEATURE_WLAN_LPHB */
273*5113495bSYour Name 
274*5113495bSYour Name #ifdef WLAN_FEATURE_PACKET_FILTERING
275*5113495bSYour Name QDF_STATUS
wmi_unified_enable_disable_packet_filter_cmd(wmi_unified_t wmi_handle,uint8_t vdev_id,bool enable)276*5113495bSYour Name wmi_unified_enable_disable_packet_filter_cmd(wmi_unified_t wmi_handle,
277*5113495bSYour Name 					     uint8_t vdev_id, bool enable)
278*5113495bSYour Name {
279*5113495bSYour Name 	if (wmi_handle->ops->send_enable_disable_packet_filter_cmd)
280*5113495bSYour Name 		return wmi_handle->ops->send_enable_disable_packet_filter_cmd(
281*5113495bSYour Name 				wmi_handle, vdev_id, enable);
282*5113495bSYour Name 
283*5113495bSYour Name 	return QDF_STATUS_E_FAILURE;
284*5113495bSYour Name }
285*5113495bSYour Name 
wmi_unified_config_packet_filter_cmd(wmi_unified_t wmi_handle,uint8_t vdev_id,struct pmo_rcv_pkt_fltr_cfg * rcv_filter_param,uint8_t filter_id,bool enable)286*5113495bSYour Name QDF_STATUS wmi_unified_config_packet_filter_cmd(
287*5113495bSYour Name 		wmi_unified_t wmi_handle,
288*5113495bSYour Name 		uint8_t vdev_id, struct pmo_rcv_pkt_fltr_cfg *rcv_filter_param,
289*5113495bSYour Name 		uint8_t filter_id, bool enable)
290*5113495bSYour Name {
291*5113495bSYour Name 	if (wmi_handle->ops->send_config_packet_filter_cmd)
292*5113495bSYour Name 		return wmi_handle->ops->send_config_packet_filter_cmd(
293*5113495bSYour Name 		wmi_handle, vdev_id, rcv_filter_param, filter_id, enable);
294*5113495bSYour Name 
295*5113495bSYour Name 	return QDF_STATUS_E_FAILURE;
296*5113495bSYour Name }
297*5113495bSYour Name #endif /* WLAN_FEATURE_PACKET_FILTERING */
298*5113495bSYour Name 
wmi_unified_wow_delete_pattern_cmd(wmi_unified_t wmi_handle,uint8_t ptrn_id,uint8_t vdev_id)299*5113495bSYour Name QDF_STATUS wmi_unified_wow_delete_pattern_cmd(wmi_unified_t wmi_handle,
300*5113495bSYour Name 					      uint8_t ptrn_id,
301*5113495bSYour Name 					      uint8_t vdev_id)
302*5113495bSYour Name {
303*5113495bSYour Name 	if (wmi_handle->ops->send_wow_delete_pattern_cmd)
304*5113495bSYour Name 		return wmi_handle->ops->send_wow_delete_pattern_cmd(wmi_handle,
305*5113495bSYour Name 								    ptrn_id,
306*5113495bSYour Name 								    vdev_id);
307*5113495bSYour Name 
308*5113495bSYour Name 	return QDF_STATUS_E_FAILURE;
309*5113495bSYour Name }
310*5113495bSYour Name 
wmi_unified_host_wakeup_ind_to_fw_cmd(wmi_unified_t wmi_handle,bool tx_pending_ind)311*5113495bSYour Name QDF_STATUS wmi_unified_host_wakeup_ind_to_fw_cmd(wmi_unified_t wmi_handle,
312*5113495bSYour Name 						 bool tx_pending_ind)
313*5113495bSYour Name {
314*5113495bSYour Name 	if (wmi_handle->ops->send_host_wakeup_ind_to_fw_cmd)
315*5113495bSYour Name 		return wmi_handle->ops->send_host_wakeup_ind_to_fw_cmd
316*5113495bSYour Name 						(wmi_handle,
317*5113495bSYour Name 						 tx_pending_ind);
318*5113495bSYour Name 
319*5113495bSYour Name 	return QDF_STATUS_E_FAILURE;
320*5113495bSYour Name }
321*5113495bSYour Name 
wmi_unified_wow_timer_pattern_cmd(wmi_unified_t wmi_handle,uint8_t vdev_id,uint32_t cookie,uint32_t time)322*5113495bSYour Name QDF_STATUS wmi_unified_wow_timer_pattern_cmd(wmi_unified_t wmi_handle,
323*5113495bSYour Name 					     uint8_t vdev_id,
324*5113495bSYour Name 					     uint32_t cookie, uint32_t time)
325*5113495bSYour Name {
326*5113495bSYour Name 	if (wmi_handle->ops->send_wow_timer_pattern_cmd)
327*5113495bSYour Name 		return wmi_handle->ops->send_wow_timer_pattern_cmd(wmi_handle,
328*5113495bSYour Name 							vdev_id, cookie, time);
329*5113495bSYour Name 
330*5113495bSYour Name 	return QDF_STATUS_E_FAILURE;
331*5113495bSYour Name }
332*5113495bSYour Name 
333*5113495bSYour Name #ifdef WLAN_FEATURE_EXTWOW_SUPPORT
wmi_unified_enable_ext_wow_cmd(wmi_unified_t wmi_handle,struct ext_wow_params * params)334*5113495bSYour Name QDF_STATUS wmi_unified_enable_ext_wow_cmd(wmi_unified_t wmi_handle,
335*5113495bSYour Name 					  struct ext_wow_params *params)
336*5113495bSYour Name {
337*5113495bSYour Name 	if (wmi_handle->ops->send_enable_ext_wow_cmd)
338*5113495bSYour Name 		return wmi_handle->ops->send_enable_ext_wow_cmd(wmi_handle,
339*5113495bSYour Name 								params);
340*5113495bSYour Name 
341*5113495bSYour Name 	return QDF_STATUS_E_FAILURE;
342*5113495bSYour Name }
343*5113495bSYour Name 
wmi_unified_set_app_type2_params_in_fw_cmd(wmi_unified_t wmi_handle,struct app_type2_params * appType2Params)344*5113495bSYour Name QDF_STATUS wmi_unified_set_app_type2_params_in_fw_cmd(
345*5113495bSYour Name 				wmi_unified_t wmi_handle,
346*5113495bSYour Name 				struct app_type2_params *appType2Params)
347*5113495bSYour Name {
348*5113495bSYour Name 	if (wmi_handle->ops->send_set_app_type2_params_in_fw_cmd)
349*5113495bSYour Name 		return wmi_handle->ops->send_set_app_type2_params_in_fw_cmd(
350*5113495bSYour Name 				wmi_handle, appType2Params);
351*5113495bSYour Name 
352*5113495bSYour Name 	return QDF_STATUS_E_FAILURE;
353*5113495bSYour Name }
354*5113495bSYour Name 
wmi_unified_app_type1_params_in_fw_cmd(wmi_unified_t wmi_handle,struct app_type1_params * app_type1_params)355*5113495bSYour Name QDF_STATUS wmi_unified_app_type1_params_in_fw_cmd(
356*5113495bSYour Name 				wmi_unified_t wmi_handle,
357*5113495bSYour Name 				struct app_type1_params *app_type1_params)
358*5113495bSYour Name {
359*5113495bSYour Name 	if (wmi_handle->ops->send_app_type1_params_in_fw_cmd)
360*5113495bSYour Name 		return wmi_handle->ops->send_app_type1_params_in_fw_cmd(
361*5113495bSYour Name 				wmi_handle, app_type1_params);
362*5113495bSYour Name 
363*5113495bSYour Name 	return QDF_STATUS_E_FAILURE;
364*5113495bSYour Name }
365*5113495bSYour Name #endif /* WLAN_FEATURE_EXTWOW_SUPPORT */
366*5113495bSYour Name 
367*5113495bSYour Name #ifdef WLAN_FEATURE_ICMP_OFFLOAD
wmi_unified_config_icmp_offload_cmd(wmi_unified_t wmi_handle,struct pmo_icmp_offload * pmo_icmp_req)368*5113495bSYour Name QDF_STATUS wmi_unified_config_icmp_offload_cmd(wmi_unified_t wmi_handle,
369*5113495bSYour Name 			struct pmo_icmp_offload *pmo_icmp_req)
370*5113495bSYour Name {
371*5113495bSYour Name 	if (wmi_handle->ops->send_icmp_offload_config_cmd)
372*5113495bSYour Name 		return wmi_handle->ops->send_icmp_offload_config_cmd(
373*5113495bSYour Name 				wmi_handle, pmo_icmp_req);
374*5113495bSYour Name 
375*5113495bSYour Name 	return QDF_STATUS_E_FAILURE;
376*5113495bSYour Name }
377*5113495bSYour Name #endif
378