xref: /wlan-dirver/qca-wifi-host-cmn/wmi/src/wmi_unified_vdev_api.c (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 definitions for the Unified Wireless Module
21  * Interface (WMI).
22  */
23 #include <htc_api.h>
24 #include <htc_api.h>
25 #include <wmi_unified_priv.h>
26 #include <wmi_unified_api.h>
27 #include <qdf_module.h>
28 #include <qdf_list.h>
29 #include <qdf_platform.h>
30 #ifdef WMI_EXT_DBG
31 #include <qdf_list.h>
32 #endif
33 
34 #include <linux/debugfs.h>
35 #include <wmi_unified_param.h>
36 #include <cdp_txrx_cmn_struct.h>
37 #include <wmi_unified_vdev_api.h>
38 
39 QDF_STATUS
40 wmi_extract_tbttoffset_num_vdevs(struct wmi_unified *wmi_handle, void *evt_buf,
41 				 uint32_t *num_vdevs)
42 {
43 	if (wmi_handle->ops->extract_tbttoffset_num_vdevs)
44 		return wmi_handle->ops->extract_tbttoffset_num_vdevs(wmi_handle,
45 								     evt_buf,
46 								     num_vdevs);
47 
48 	return QDF_STATUS_E_FAILURE;
49 }
50 
51 QDF_STATUS wmi_unified_send_multiple_vdev_restart_req_cmd(
52 				struct wmi_unified *wmi_handle,
53 				struct multiple_vdev_restart_params *param)
54 {
55 	if (wmi_handle->ops->send_multiple_vdev_restart_req_cmd)
56 		return wmi_handle->ops->send_multiple_vdev_restart_req_cmd(
57 							wmi_handle, param);
58 
59 	return QDF_STATUS_E_FAILURE;
60 }
61 
62 QDF_STATUS wmi_unified_send_multiple_vdev_set_param_cmd(
63 				struct wmi_unified *wmi_handle,
64 				struct multiple_vdev_set_param *param)
65 {
66 	if (wmi_handle->ops->send_multiple_vdev_set_param_cmd)
67 		return wmi_handle->ops->send_multiple_vdev_set_param_cmd(
68 							wmi_handle, param);
69 
70 	return QDF_STATUS_E_FAILURE;
71 }
72 
73 QDF_STATUS wmi_unified_beacon_send_cmd(struct wmi_unified *wmi_handle,
74 				       struct beacon_params *param)
75 {
76 	if (wmi_handle->ops->send_beacon_send_cmd)
77 		return wmi_handle->ops->send_beacon_send_cmd(wmi_handle,
78 							     param);
79 
80 	return QDF_STATUS_E_FAILURE;
81 }
82 
83 QDF_STATUS
84 wmi_extract_vdev_start_resp(struct wmi_unified *wmi_handle, void *evt_buf,
85 			    struct vdev_start_response *vdev_rsp)
86 {
87 	if (wmi_handle->ops->extract_vdev_start_resp)
88 		return wmi_handle->ops->extract_vdev_start_resp(wmi_handle,
89 								evt_buf,
90 								vdev_rsp);
91 
92 	return QDF_STATUS_E_FAILURE;
93 }
94 
95 QDF_STATUS
96 wmi_extract_vdev_delete_resp(struct wmi_unified *wmi_handle, void *evt_buf,
97 			     struct vdev_delete_response *delete_rsp)
98 {
99 	if (wmi_handle->ops->extract_vdev_delete_resp)
100 		return wmi_handle->ops->extract_vdev_delete_resp(wmi_handle,
101 								 evt_buf,
102 								 delete_rsp);
103 
104 	return QDF_STATUS_E_FAILURE;
105 }
106 
107 QDF_STATUS wmi_extract_vdev_peer_delete_all_response_event(
108 	struct wmi_unified *wmi_handle,
109 	void *evt_buf,
110 	struct peer_delete_all_response *delete_rsp)
111 {
112 	if (wmi_handle->ops->extract_vdev_peer_delete_all_response_event)
113 		return
114 			wmi_handle->ops->extract_vdev_peer_delete_all_response_event(
115 								wmi_handle,
116 								 evt_buf,
117 								 delete_rsp);
118 
119 	return QDF_STATUS_E_FAILURE;
120 }
121 
122 QDF_STATUS
123 wmi_extract_vdev_stopped_param(struct wmi_unified *wmi_handle, void *evt_buf,
124 			       uint32_t *vdev_id)
125 {
126 	if (wmi_handle->ops->extract_vdev_stopped_param)
127 		return wmi_handle->ops->extract_vdev_stopped_param(wmi_handle,
128 								   evt_buf,
129 								   vdev_id);
130 
131 	return QDF_STATUS_E_FAILURE;
132 }
133 
134 QDF_STATUS
135 wmi_extract_ext_tbttoffset_num_vdevs(struct wmi_unified *wmi_handle,
136 				     void *evt_buf, uint32_t *num_vdevs)
137 {
138 	if (wmi_handle->ops->extract_ext_tbttoffset_num_vdevs)
139 		return wmi_handle->ops->extract_ext_tbttoffset_num_vdevs(
140 							wmi_handle,
141 							evt_buf, num_vdevs);
142 
143 	return QDF_STATUS_E_FAILURE;
144 }
145 
146 QDF_STATUS
147 wmi_unified_vdev_config_ratemask_cmd_send(struct wmi_unified *wmi_handle,
148 					  struct config_ratemask_params *param)
149 {
150 	if (wmi_handle->ops->send_vdev_config_ratemask_cmd)
151 		return wmi_handle->ops->send_vdev_config_ratemask_cmd(
152 							wmi_handle, param);
153 
154 	return QDF_STATUS_E_FAILURE;
155 }
156 
157 QDF_STATUS wmi_unified_vdev_set_neighbour_rx_cmd_send(
158 				struct wmi_unified *wmi_handle,
159 				uint8_t macaddr[QDF_MAC_ADDR_SIZE],
160 				struct set_neighbour_rx_params *param)
161 {
162 	if (wmi_handle->ops->send_vdev_set_neighbour_rx_cmd)
163 		return wmi_handle->ops->send_vdev_set_neighbour_rx_cmd(
164 							wmi_handle,
165 							macaddr, param);
166 
167 	return QDF_STATUS_E_FAILURE;
168 }
169 
170 QDF_STATUS wmi_extract_multi_vdev_restart_resp_event(
171 	struct wmi_unified *wmi_handle,
172 	void *evt_buf,
173 	struct multi_vdev_restart_resp *restart_rsp)
174 {
175 	if (wmi_handle->ops->extract_multi_vdev_restart_resp_event)
176 		return wmi_handle->ops->extract_multi_vdev_restart_resp_event(
177 				wmi_handle, evt_buf, restart_rsp);
178 
179 	return QDF_STATUS_E_FAILURE;
180 }
181 
182 QDF_STATUS wmi_unified_multisoc_tbtt_sync_cmd(wmi_unified_t wmi_handle,
183 			struct rnr_tbtt_multisoc_sync_param *param)
184 {
185 	if (wmi_handle->ops->multisoc_tbtt_sync_cmd)
186 		return wmi_handle->ops->multisoc_tbtt_sync_cmd(wmi_handle,
187 				param);
188 
189 	return QDF_STATUS_E_FAILURE;
190 }
191