xref: /wlan-dirver/qca-wifi-host-cmn/wmi/inc/wmi_unified_vdev_api.h (revision 2f4b444fb7e689b83a4ab0e7b3b38f0bf4def8e0)
1 /*
2  * Copyright (c) 2016-2021 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 /*
20  * This file contains the API declarations for the Unified Wireless Module
21  * Interface (WMI).
22  */
23 
24 #ifndef _WMI_UNIFIED_VDEV_API_H_
25 #define _WMI_UNIFIED_VDEV_API_H_
26 
27 #include <wmi_unified_api.h>
28 
29 /**
30  *  wmi_unified_vdev_set_neighbour_rx_cmd_send() - WMI set neighbour rx function
31  *  @param wmi_handle: handle to WMI.
32  *  @param macaddr: MAC address
33  *  @param param: pointer to hold neighbour rx parameter
34  *
35  *  @return QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
36  */
37 QDF_STATUS wmi_unified_vdev_set_neighbour_rx_cmd_send(
38 				struct wmi_unified *wmi_handle,
39 				uint8_t macaddr[QDF_MAC_ADDR_SIZE],
40 				struct set_neighbour_rx_params *param);
41 
42 /**
43  *  wmi_unified_vdev_config_ratemask_cmd_send() - WMI config ratemask function
44  *  @param wmi_handle: handle to WMI.
45  *  @param param: pointer to hold config ratemask param
46  *
47  *  @return QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
48  */
49 QDF_STATUS
50 wmi_unified_vdev_config_ratemask_cmd_send(struct wmi_unified *wmi_handle,
51 					  struct config_ratemask_params *param);
52 
53 /**
54  * wmi_unified_send_multiple_vdev_restart_req_cmd() - send multiple vdev restart
55  * @wmi_handle: wmi handle
56  * @param: multiple vdev restart parameter
57  *
58  * Send WMI_PDEV_MULTIPLE_VDEV_RESTART_REQUEST_CMDID parameters to fw.
59  *
60  * Return: QDF_STATUS_SUCCESS on success, QDF_STATUS_E_** on error
61  */
62 QDF_STATUS wmi_unified_send_multiple_vdev_restart_req_cmd(
63 				struct wmi_unified *wmi_handle,
64 				struct multiple_vdev_restart_params *param);
65 
66 /**
67  * wmi_unified_send_multiple_vdev_set_param_cmd() - Send multiple vdev set param
68  *                                                  command
69  * @wmi_handle: wmi handle
70  * @param: multiple vdev restart parameter
71  *
72  * Send WMI_PDEV_MULTIPLE_VDEV_SET_PARAM_CMDID parameters to fw.
73  *
74  * Return: QDF_STATUS_SUCCESS on success, QDF_STATUS_E_** on error
75  */
76 QDF_STATUS wmi_unified_send_multiple_vdev_set_param_cmd(
77 				struct wmi_unified *wmi_handle,
78 				struct multiple_vdev_set_param *param);
79 
80 /**
81  *  wmi_unified_beacon_send_cmd() - WMI beacon send function
82  *  @param wmi_handle: handle to WMI.
83  *  @param macaddr: MAC address
84  *  @param param: pointer to hold beacon send cmd parameter
85  *
86  *  Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
87  */
88 QDF_STATUS wmi_unified_beacon_send_cmd(struct wmi_unified *wmi_handle,
89 				       struct beacon_params *param);
90 
91 /**
92  * wmi_extract_vdev_start_resp() - extract vdev start response
93  * @wmi_handle: wmi handle
94  * @param evt_buf: pointer to event buffer
95  * @param vdev_rsp: Pointer to hold vdev response
96  *
97  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
98  */
99 QDF_STATUS
100 wmi_extract_vdev_start_resp(struct wmi_unified *wmi_handle, void *evt_buf,
101 			    struct vdev_start_response *vdev_rsp);
102 
103 /**
104  * wmi_extract_vdev_stopped_param() - extract vdev stop param from event
105  * @wmi_handle: wmi handle
106  * @param evt_buf: pointer to event buffer
107  * @param vdev_id: Pointer to hold vdev identifier
108  *
109  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
110  */
111 QDF_STATUS
112 wmi_extract_vdev_stopped_param(struct wmi_unified *wmi_handle, void *evt_buf,
113 			       uint32_t *vdev_id);
114 
115 /**
116  * wmi_extract_vdev_delete_resp() - extract vdev delete response
117  * @wmi_handle: wmi handle
118  * @param evt_buf: pointer to event buffer
119  * @param delete_rsp: Pointer to hold vdev delete response
120  *
121  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
122  */
123 QDF_STATUS
124 wmi_extract_vdev_delete_resp(struct wmi_unified *wmi_handle, void *evt_buf,
125 			     struct vdev_delete_response *vdev_del_resp);
126 
127 /**
128  * wmi_extract_vdev_peer_delete_all_response_event() - extract peer delete all
129  * response
130  * @wmi_handle: wmi handle
131  * @param evt_buf: pointer to event buffer
132  * @param delete_rsp: Pointer to hold peer delete all response
133  *
134  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
135  */
136 QDF_STATUS wmi_extract_vdev_peer_delete_all_response_event(
137 	struct wmi_unified *wmi_handle,
138 	void *evt_buf,
139 	struct peer_delete_all_response *delete_rsp);
140 
141 /**
142  * wmi_extract_ext_tbttoffset_num_vdevs() - extract ext tbtt offset num vdev
143  * @wmi_handle: wmi handle
144  * @param evt_buf: pointer to event buffer
145  * @param vdev_map: Pointer to hold num vdev
146  *
147  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
148  */
149 QDF_STATUS
150 wmi_extract_ext_tbttoffset_num_vdevs(struct wmi_unified *wmi_handle,
151 				     void *evt_buf, uint32_t *num_vdevs);
152 
153 /**
154  * wmi_extract_tbttoffset_num_vdevs() - extract tbtt offset num vdev
155  * @wmi_handle: wmi handle
156  * @param evt_buf: pointer to event buffer
157  * @param vdev_map: Pointer to hold num vdev
158  *
159  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
160  */
161 QDF_STATUS
162 wmi_extract_tbttoffset_num_vdevs(struct wmi_unified *wmi_handle, void *evt_buf,
163 				 uint32_t *num_vdevs);
164 
165 /**
166  * wmi_extract_multi_vdev_restart_resp_event() - extract multi vdev restart
167  * response
168  * @wmi_handle: wmi handle
169  * @evt_buf: pointer to event buffer
170  * @restart_rsp: Pointer to hold multi vdev restart response
171  *
172  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
173  */
174 QDF_STATUS wmi_extract_multi_vdev_restart_resp_event(
175 		struct wmi_unified *wmi_handle,
176 		void *evt_buf,
177 		struct multi_vdev_restart_resp *restart_rsp);
178 
179 /**
180  * wmi_unified_multisoc_tbtt_sync_cmd() - Send cmd to sync tbtt in multisoc case
181  * @wmi_handle: wmi handle
182  * @param: params received in rnr_tbtt_multisoc_sync_param
183  *
184  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
185  */
186 QDF_STATUS
187 wmi_unified_multisoc_tbtt_sync_cmd(wmi_unified_t wmi_handle,
188 				   struct rnr_tbtt_multisoc_sync_param *param);
189 #endif
190