xref: /wlan-dirver/qca-wifi-host-cmn/wmi/src/wmi_unified_vdev_api.c (revision 11f5a63a6cbdda84849a730de22f0a71e635d58c)
1 /*
2  * Copyright (c) 2016-2019 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_beacon_send_cmd(struct wmi_unified *wmi_handle,
63 				       struct beacon_params *param)
64 {
65 	if (wmi_handle->ops->send_beacon_send_cmd)
66 		return wmi_handle->ops->send_beacon_send_cmd(wmi_handle,
67 							     param);
68 
69 	return QDF_STATUS_E_FAILURE;
70 }
71 
72 QDF_STATUS
73 wmi_extract_vdev_start_resp(struct wmi_unified *wmi_handle, void *evt_buf,
74 			    wmi_host_vdev_start_resp *vdev_rsp)
75 {
76 	if (wmi_handle->ops->extract_vdev_start_resp)
77 		return wmi_handle->ops->extract_vdev_start_resp(wmi_handle,
78 								evt_buf,
79 								vdev_rsp);
80 
81 	return QDF_STATUS_E_FAILURE;
82 }
83 
84 QDF_STATUS
85 wmi_extract_vdev_delete_resp(struct wmi_unified *wmi_handle, void *evt_buf,
86 			     struct wmi_host_vdev_delete_resp *delete_rsp)
87 {
88 	if (wmi_handle->ops->extract_vdev_delete_resp)
89 		return wmi_handle->ops->extract_vdev_delete_resp(wmi_handle,
90 								 evt_buf,
91 								 delete_rsp);
92 
93 	return QDF_STATUS_E_FAILURE;
94 }
95 
96 QDF_STATUS wmi_extract_vdev_peer_delete_all_response_event(
97 	struct wmi_unified *wmi_handle,
98 	void *evt_buf,
99 	struct wmi_host_vdev_peer_delete_all_response_event *delete_rsp)
100 {
101 	if (wmi_handle->ops->extract_vdev_peer_delete_all_response_event)
102 		return
103 			wmi_handle->ops->extract_vdev_peer_delete_all_response_event(
104 								wmi_handle,
105 								 evt_buf,
106 								 delete_rsp);
107 
108 	return QDF_STATUS_E_FAILURE;
109 }
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 	if (wmi_handle->ops->extract_vdev_stopped_param)
116 		return wmi_handle->ops->extract_vdev_stopped_param(wmi_handle,
117 								   evt_buf,
118 								   vdev_id);
119 
120 	return QDF_STATUS_E_FAILURE;
121 }
122 
123 QDF_STATUS
124 wmi_extract_ext_tbttoffset_num_vdevs(struct wmi_unified *wmi_handle,
125 				     void *evt_buf, uint32_t *num_vdevs)
126 {
127 	if (wmi_handle->ops->extract_ext_tbttoffset_num_vdevs)
128 		return wmi_handle->ops->extract_ext_tbttoffset_num_vdevs(
129 							wmi_handle,
130 							evt_buf, num_vdevs);
131 
132 	return QDF_STATUS_E_FAILURE;
133 }
134 
135 QDF_STATUS
136 wmi_unified_vdev_config_ratemask_cmd_send(struct wmi_unified *wmi_handle,
137 					  struct config_ratemask_params *param)
138 {
139 	if (wmi_handle->ops->send_vdev_config_ratemask_cmd)
140 		return wmi_handle->ops->send_vdev_config_ratemask_cmd(
141 							wmi_handle, param);
142 
143 	return QDF_STATUS_E_FAILURE;
144 }
145 
146 QDF_STATUS wmi_unified_vdev_set_neighbour_rx_cmd_send(
147 				struct wmi_unified *wmi_handle,
148 				uint8_t macaddr[QDF_MAC_ADDR_SIZE],
149 				struct set_neighbour_rx_params *param)
150 {
151 	if (wmi_handle->ops->send_vdev_set_neighbour_rx_cmd)
152 		return wmi_handle->ops->send_vdev_set_neighbour_rx_cmd(
153 							wmi_handle,
154 							macaddr, param);
155 
156 	return QDF_STATUS_E_FAILURE;
157 }
158