1 /* 2 * Copyright (c) 2016-2021 The Linux Foundation. All rights reserved. 3 * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved. 4 * 5 * Permission to use, copy, modify, and/or distribute this software for 6 * any purpose with or without fee is hereby granted, provided that the 7 * above copyright notice and this permission notice appear in all 8 * copies. 9 * 10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL 11 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED 12 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE 13 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL 14 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR 15 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER 16 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 17 * PERFORMANCE OF THIS SOFTWARE. 18 */ 19 20 /* 21 * This file contains the API declarations for the Unified Wireless Module 22 * Interface (WMI). 23 */ 24 25 #ifndef _WMI_UNIFIED_VDEV_API_H_ 26 #define _WMI_UNIFIED_VDEV_API_H_ 27 28 #include <wmi_unified_api.h> 29 30 /** 31 * wmi_unified_peer_filter_set_tx_cmd_send() - WMI set tx peer filter function 32 * @param wmi_handle: handle to WMI. 33 * @param macaddr: MAC address 34 * @param param: pointer to hold peer filter parameter 35 * 36 * @return QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 37 */ 38 QDF_STATUS 39 wmi_unified_peer_filter_set_tx_cmd_send(struct wmi_unified *wmi_handle, 40 uint8_t macaddr[], 41 struct set_tx_peer_filter *param); 42 43 /** 44 * wmi_unified_vdev_set_neighbour_rx_cmd_send() - WMI set neighbour rx function 45 * @param wmi_handle: handle to WMI. 46 * @param macaddr: MAC address 47 * @param param: pointer to hold neighbour rx parameter 48 * 49 * @return QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 50 */ 51 QDF_STATUS wmi_unified_vdev_set_neighbour_rx_cmd_send( 52 struct wmi_unified *wmi_handle, 53 uint8_t macaddr[QDF_MAC_ADDR_SIZE], 54 struct set_neighbour_rx_params *param); 55 56 /** 57 * wmi_unified_vdev_config_ratemask_cmd_send() - WMI config ratemask function 58 * @param wmi_handle: handle to WMI. 59 * @param param: pointer to hold config ratemask param 60 * 61 * @return QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 62 */ 63 QDF_STATUS 64 wmi_unified_vdev_config_ratemask_cmd_send(struct wmi_unified *wmi_handle, 65 struct config_ratemask_params *param); 66 67 /** 68 * wmi_unified_send_multiple_vdev_restart_req_cmd() - send multiple vdev restart 69 * @wmi_handle: wmi handle 70 * @param: multiple vdev restart parameter 71 * 72 * Send WMI_PDEV_MULTIPLE_VDEV_RESTART_REQUEST_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_restart_req_cmd( 77 struct wmi_unified *wmi_handle, 78 struct multiple_vdev_restart_params *param); 79 80 /** 81 * wmi_unified_send_multiple_vdev_set_param_cmd() - Send multiple vdev set param 82 * command 83 * @wmi_handle: wmi handle 84 * @param: multiple vdev restart parameter 85 * 86 * Send WMI_PDEV_MULTIPLE_VDEV_SET_PARAM_CMDID parameters to fw. 87 * 88 * Return: QDF_STATUS_SUCCESS on success, QDF_STATUS_E_** on error 89 */ 90 QDF_STATUS wmi_unified_send_multiple_vdev_set_param_cmd( 91 struct wmi_unified *wmi_handle, 92 struct multiple_vdev_set_param *param); 93 94 /** 95 * wmi_unified_beacon_send_cmd() - WMI beacon send function 96 * @param wmi_handle: handle to WMI. 97 * @param macaddr: MAC address 98 * @param param: pointer to hold beacon send cmd parameter 99 * 100 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 101 */ 102 QDF_STATUS wmi_unified_beacon_send_cmd(struct wmi_unified *wmi_handle, 103 struct beacon_params *param); 104 105 /** 106 * wmi_extract_vdev_start_resp() - extract vdev start response 107 * @wmi_handle: wmi handle 108 * @param evt_buf: pointer to event buffer 109 * @param vdev_rsp: Pointer to hold vdev response 110 * 111 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 112 */ 113 QDF_STATUS 114 wmi_extract_vdev_start_resp(struct wmi_unified *wmi_handle, void *evt_buf, 115 struct vdev_start_response *vdev_rsp); 116 117 /** 118 * wmi_extract_vdev_stopped_param() - extract vdev stop param from event 119 * @wmi_handle: wmi handle 120 * @param evt_buf: pointer to event buffer 121 * @param vdev_id: Pointer to hold vdev identifier 122 * 123 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 124 */ 125 QDF_STATUS 126 wmi_extract_vdev_stopped_param(struct wmi_unified *wmi_handle, void *evt_buf, 127 uint32_t *vdev_id); 128 129 /** 130 * wmi_extract_vdev_delete_resp() - extract vdev delete response 131 * @wmi_handle: wmi handle 132 * @param evt_buf: pointer to event buffer 133 * @param delete_rsp: Pointer to hold vdev delete response 134 * 135 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 136 */ 137 QDF_STATUS 138 wmi_extract_vdev_delete_resp(struct wmi_unified *wmi_handle, void *evt_buf, 139 struct vdev_delete_response *vdev_del_resp); 140 141 /** 142 * wmi_extract_vdev_peer_delete_all_response_event() - extract peer delete all 143 * response 144 * @wmi_handle: wmi handle 145 * @param evt_buf: pointer to event buffer 146 * @param delete_rsp: Pointer to hold peer delete all response 147 * 148 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 149 */ 150 QDF_STATUS wmi_extract_vdev_peer_delete_all_response_event( 151 struct wmi_unified *wmi_handle, 152 void *evt_buf, 153 struct peer_delete_all_response *delete_rsp); 154 155 /** 156 * wmi_extract_ext_tbttoffset_num_vdevs() - extract ext tbtt offset num vdev 157 * @wmi_handle: wmi handle 158 * @param evt_buf: pointer to event buffer 159 * @param vdev_map: Pointer to hold num vdev 160 * 161 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 162 */ 163 QDF_STATUS 164 wmi_extract_ext_tbttoffset_num_vdevs(struct wmi_unified *wmi_handle, 165 void *evt_buf, uint32_t *num_vdevs); 166 167 /** 168 * wmi_extract_tbttoffset_num_vdevs() - extract tbtt offset num vdev 169 * @wmi_handle: wmi handle 170 * @param evt_buf: pointer to event buffer 171 * @param vdev_map: Pointer to hold num vdev 172 * 173 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 174 */ 175 QDF_STATUS 176 wmi_extract_tbttoffset_num_vdevs(struct wmi_unified *wmi_handle, void *evt_buf, 177 uint32_t *num_vdevs); 178 179 /** 180 * wmi_extract_multi_vdev_restart_resp_event() - extract multi vdev restart 181 * response 182 * @wmi_handle: wmi handle 183 * @evt_buf: pointer to event buffer 184 * @restart_rsp: Pointer to hold multi vdev restart response 185 * 186 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 187 */ 188 QDF_STATUS wmi_extract_multi_vdev_restart_resp_event( 189 struct wmi_unified *wmi_handle, 190 void *evt_buf, 191 struct multi_vdev_restart_resp *restart_rsp); 192 193 /** 194 * wmi_unified_multisoc_tbtt_sync_cmd() - Send cmd to sync tbtt in multisoc case 195 * @wmi_handle: wmi handle 196 * @param: params received in rnr_tbtt_multisoc_sync_param 197 * 198 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 199 */ 200 QDF_STATUS 201 wmi_unified_multisoc_tbtt_sync_cmd(wmi_unified_t wmi_handle, 202 struct rnr_tbtt_multisoc_sync_param *param); 203 204 #ifdef WLAN_FEATURE_SR 205 /** 206 * wmi_unified_vdev_param_sr_prohibit_send() - send vdev SR prohibit command 207 * @wmi: wmi handle 208 * @srp_param: SR Prohibit parameters 209 * 210 * Return: QDF_STATUS_SUCCESS for success or error code 211 */ 212 QDF_STATUS 213 wmi_unified_vdev_param_sr_prohibit_send(wmi_unified_t wmi_hdl, 214 struct sr_prohibit_param *srp_param); 215 #else 216 static inline QDF_STATUS 217 wmi_unified_vdev_param_sr_prohibit_send(wmi_unified_t wmi_hdl, 218 struct sr_prohibit_param *srp_param) 219 { 220 return QDF_STATUS_SUCCESS; 221 } 222 #endif 223 #endif 224