1 /* 2 * Copyright (c) 2016-2020 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 struct vdev_start_response *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 vdev_delete_response *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 peer_delete_all_response *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 159 QDF_STATUS wmi_extract_multi_vdev_restart_resp_event( 160 struct wmi_unified *wmi_handle, 161 void *evt_buf, 162 struct multi_vdev_restart_resp *restart_rsp) 163 { 164 if (wmi_handle->ops->extract_multi_vdev_restart_resp_event) 165 return wmi_handle->ops->extract_multi_vdev_restart_resp_event( 166 wmi_handle, evt_buf, restart_rsp); 167 168 return QDF_STATUS_E_FAILURE; 169 } 170 171 QDF_STATUS wmi_unified_multisoc_tbtt_sync_cmd(wmi_unified_t wmi_handle, 172 struct rnr_tbtt_multisoc_sync_param *param) 173 { 174 if (wmi_handle->ops->multisoc_tbtt_sync_cmd) 175 return wmi_handle->ops->multisoc_tbtt_sync_cmd(wmi_handle, 176 param); 177 178 return QDF_STATUS_E_FAILURE; 179 } 180