blob: f47ed1842bff981bdd0b017004d7b0ba4d0551dc [file] [log] [blame]
Mukul Sharmacb5bf772017-02-25 01:50:47 +05301/*
2 * Copyright (c) 2017 The Linux Foundation. All rights reserved.
3 *
4 * Permission to use, copy, modify, and/or distribute this software for
5 * any purpose with or without fee is hereby granted, provided that the
6 * above copyright notice and this permission notice appear in all
7 * copies.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
10 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
11 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
12 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
13 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
14 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
15 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
16 * PERFORMANCE OF THIS SOFTWARE.
17 */
18/**
19 * DOC: This file contains the API definitions for the Unified Wireless Module
20 * Interface (WMI) which are specific to Power management offloads (PMO).
21 */
22
23#ifndef _WMI_UNIFIED_PMO_API_H_
24#define _WMI_UNIFIED_PMO_API_H_
25
26#include "wlan_pmo_tgt_api.h"
27#include "wlan_pmo_arp_public_struct.h"
28#include "wlan_pmo_ns_public_struct.h"
29#include "wlan_pmo_gtk_public_struct.h"
30#include "wlan_pmo_wow_public_struct.h"
Ravi Kumar Bokka91b61822017-04-20 17:14:33 +053031#include "wlan_pmo_pkt_filter_public_struct.h"
Mukul Sharmacb5bf772017-02-25 01:50:47 +053032
33/**
34 * wmi_unified_add_wow_wakeup_event_cmd() - Configures wow wakeup events.
35 * @wmi_handle: wmi handle
36 * @vdev_id: vdev id
37 * @bitmap: Event bitmap
38 * @enable: enable/disable
39 *
40 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
41 */
42QDF_STATUS wmi_unified_add_wow_wakeup_event_cmd(void *wmi_hdl,
43 uint32_t vdev_id,
Ravi Kumar Bokka4a517a22017-03-23 17:20:31 +053044 uint32_t *bitmap,
Mukul Sharmacb5bf772017-02-25 01:50:47 +053045 bool enable);
46
47/**
48 * wmi_unified_wow_patterns_to_fw_cmd() - Sends WOW patterns to FW.
49 * @wmi_handle: wmi handle
50 * @vdev_id: vdev id
51 * @ptrn_id: pattern id
52 * @ptrn: pattern
53 * @ptrn_len: pattern length
54 * @ptrn_offset: pattern offset
55 * @mask: mask
56 * @mask_len: mask length
57 * @user: true for user configured pattern and false for default pattern
58 * @default_patterns: default patterns
59 *
60 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
61 */
62QDF_STATUS wmi_unified_wow_patterns_to_fw_cmd(void *wmi_hdl,
63 uint8_t vdev_id, uint8_t ptrn_id,
64 const uint8_t *ptrn, uint8_t ptrn_len,
65 uint8_t ptrn_offset, const uint8_t *mask,
66 uint8_t mask_len, bool user,
67 uint8_t default_patterns);
68
69/**
70 * wmi_unified_add_clear_mcbc_filter_cmd() - set mcast filter command to fw
71 * @wmi_handle: wmi handle
72 * @vdev_id: vdev id
73 * @multicastAddr: mcast address
74 * @clearList: clear list flag
75 *
76 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
77 */
78QDF_STATUS wmi_unified_add_clear_mcbc_filter_cmd(void *wmi_hdl,
79 uint8_t vdev_id,
80 struct qdf_mac_addr multicast_addr,
81 bool clearList);
82
83/**
Poddar, Siddarth24fd1942017-09-28 17:14:01 +053084 * wmi_unified_multiple_add_clear_mcbc_filter_cmd() - send multiple mcast
85 * filter command to fw
86 * @wmi_handle: wmi handle
87 * @vdev_id: vdev id
88 * @mcast_filter_params: mcast filter params
89 *
90 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
91 */
92QDF_STATUS wmi_unified_multiple_add_clear_mcbc_filter_cmd(void *wmi_hdl,
93 uint8_t vdev_id,
94 struct pmo_mcast_filter_params *filter_param);
95
96/**
Mukul Sharmacb5bf772017-02-25 01:50:47 +053097 * wmi_unified_wow_sta_ra_filter_cmd() - set RA filter pattern in fw
98 * @wmi_handle: wmi handle
99 * @vdev_id: vdev id
100 *
101 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
102 */
103QDF_STATUS wmi_unified_wow_sta_ra_filter_cmd(void *wmi_hdl,
104 uint8_t vdev_id, uint8_t default_pattern,
105 uint16_t rate_limit_interval);
106
107/**
108 * wmi_unified_enable_enhance_multicast_offload() - enhance multicast offload
109 * @wmi_hdl: wmi handle
110 * @vdev_id: vdev id
111 * @action: true for enable else false
112 *
113 * To configure enhance multicast offload in to firmware
114 *
115 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
116 */
117QDF_STATUS wmi_unified_enable_enhance_multicast_offload_cmd(
118 void *wmi_hdl, uint8_t vdev_id, bool action);
119
120/**
121 * wmi_extract_gtk_rsp_event() - extract gtk rsp params from event
122 * @wmi_handle: wmi handle
123 * @evt_buf: pointer to event buffer
124 * @gtk_rsp_param: Pointer to gtk rsp parameters
125 * @ len: len of gtk rsp event
126 *
127 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
128 */
129QDF_STATUS wmi_extract_gtk_rsp_event(void *wmi_hdl, void *evt_buf,
130 struct pmo_gtk_rsp_params *gtk_rsp_param, uint32_t len);
131
132/**
133 * wmi_unified_process_gtk_offload_getinfo_cmd() - send GTK offload cmd to fw
134 * @wmi_handle: wmi handle
135 * @params: GTK offload params
136 *
137 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
138 */
139QDF_STATUS wmi_unified_process_gtk_offload_getinfo_cmd(void *wmi_hdl,
140 uint8_t vdev_id,
141 uint64_t offload_req_opcode);
142
143/**
144 * wmi_unified_action_frame_patterns_cmd() - send action filter wmi cmd
145 * @wmi_handle: wmi handler
146 * @action_params: pointer to action_params
147 *
148 * Return: 0 for success, otherwise appropriate error code
149 */
150QDF_STATUS wmi_unified_action_frame_patterns_cmd(void *wmi_hdl,
151 struct pmo_action_wakeup_set_params *action_params);
152
153/**
154 * wmi_unified_send_gtk_offload_cmd() - send GTK offload command to fw
155 * @wmi_handle: wmi handle
156 * @vdev_id: vdev id
157 * @params: GTK offload parameters
158 *
159 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
160 */
161QDF_STATUS wmi_unified_send_gtk_offload_cmd(void *wmi_hdl, uint8_t vdev_id,
162 struct pmo_gtk_req *params,
163 bool enable_offload,
164 uint32_t gtk_offload_opcode);
165
166/**
167 * wmi_unified_enable_arp_ns_offload_cmd() - enable ARP NS offload
168 * @wmi_hdl: wmi handle
169 * @param: offload request
170 *
171 * To configure ARP NS off load data to firmware
172 * when target goes to wow mode.
173 *
174 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
175 */
176QDF_STATUS wmi_unified_enable_arp_ns_offload_cmd(void *wmi_hdl,
177 struct pmo_arp_offload_params *arp_offload_req,
178 struct pmo_ns_offload_params *ns_offload_req,
179 uint8_t vdev_id);
180
181/**
Dustin Brown3c777ef2017-05-12 14:01:44 -0700182 * wmi_unified_conf_hw_filter_cmd() - Configure hardware filter in DTIM mode
183 * @opaque_wmi: wmi handle
184 * @req: request parameters to configure to firmware
Ravi Kumar Bokka99f07622017-03-23 15:22:51 +0530185 *
Dustin Brown3c777ef2017-05-12 14:01:44 -0700186 * Return: QDF_STATUS
Ravi Kumar Bokka99f07622017-03-23 15:22:51 +0530187 */
Dustin Brown3c777ef2017-05-12 14:01:44 -0700188QDF_STATUS wmi_unified_conf_hw_filter_cmd(void *opaque_wmi,
189 struct pmo_hw_filter_params *req);
Ravi Kumar Bokka99f07622017-03-23 15:22:51 +0530190
191/**
Mukul Sharmacb5bf772017-02-25 01:50:47 +0530192 * wmi_unified_lphb_config_hbenable_cmd() - enable command of LPHB configuration
193 * @wmi_handle: wmi handle
194 * @lphb_conf_req: configuration info
195 *
196 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
197 */
198QDF_STATUS wmi_unified_lphb_config_hbenable_cmd(void *wmi_hdl,
199 wmi_hb_set_enable_cmd_fixed_param *params);
200
201/**
202 * wmi_unified_lphb_config_tcp_params_cmd() - set tcp params of LPHB config req
203 * @wmi_handle: wmi handle
204 * @lphb_conf_req: lphb config request
205 *
206 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
207 */
208QDF_STATUS wmi_unified_lphb_config_tcp_params_cmd(void *wmi_hdl,
209 wmi_hb_set_tcp_params_cmd_fixed_param *lphb_conf_req);
210
211/**
212 * wmi_unified_lphb_config_tcp_pkt_filter_cmd() - config LPHB tcp packet filter
213 * @wmi_handle: wmi handle
214 * @lphb_conf_req: lphb config request
215 *
216 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
217 */
218QDF_STATUS wmi_unified_lphb_config_tcp_pkt_filter_cmd(void *wmi_hdl,
219 wmi_hb_set_tcp_pkt_filter_cmd_fixed_param *g_hb_tcp_filter_fp);
220
221/**
222 * wmi_unified_lphb_config_udp_params_cmd() - configure LPHB udp param command
223 * @wmi_handle: wmi handle
224 * @lphb_conf_req: lphb config request
225 *
226 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
227 */
228QDF_STATUS wmi_unified_lphb_config_udp_params_cmd(void *wmi_hdl,
229 wmi_hb_set_udp_params_cmd_fixed_param *lphb_conf_req);
230
231/**
232 * wmi_unified_lphb_config_udp_pkt_filter_cmd() - configure LPHB udp pkt filter
233 * @wmi_handle: wmi handle
234 * @lphb_conf_req: lphb config request
235 *
236 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
237 */
238QDF_STATUS wmi_unified_lphb_config_udp_pkt_filter_cmd(void *wmi_hdl,
239 wmi_hb_set_udp_pkt_filter_cmd_fixed_param *lphb_conf_req);
240
Ravi Kumar Bokka91b61822017-04-20 17:14:33 +0530241/**
242 * wmi_unified_enable_disable_packet_filter_cmd() - enable/disable packet filter
243 * @wmi_handle: wmi handle
244 * @vdev_id: vdev id
245 * @enable: Flag to enable/disable packet filter
246 *
247 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
248 */
249QDF_STATUS wmi_unified_enable_disable_packet_filter_cmd(void *wmi_hdl,
250 uint8_t vdev_id, bool enable);
251
252/**
253 * wmi_unified_config_packet_filter_cmd() - configure packet filter in target
254 * @wmi_handle: wmi handle
255 * @vdev_id: vdev id
256 * @rcv_filter_param: Packet filter parameters
257 * @filter_id: Filter id
258 * @enable: Flag to add/delete packet filter configuration
259 *
260 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
261 */
262QDF_STATUS wmi_unified_config_packet_filter_cmd(void *wmi_hdl,
263 uint8_t vdev_id, struct pmo_rcv_pkt_fltr_cfg *rcv_filter_param,
264 uint8_t filter_id, bool enable);
265
Mukul Sharmacb5bf772017-02-25 01:50:47 +0530266#endif /* _WMI_UNIFIED_PMO_API_H_ */