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