1 /* 2 * Copyright (c) 2019, 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 * DOC: vdev_mgr_iface_api.h 21 * 22 * API declarations required for following 23 * - get/set common mlme data structure fields 24 * - send WMI command using Tx Ops 25 */ 26 27 #ifndef __WLAN_VDEV_MGR_TX_OPS_API_H__ 28 #define __WLAN_VDEV_MGR_TX_OPS_API_H__ 29 30 #include <wlan_objmgr_vdev_obj.h> 31 #include <wlan_vdev_mgr_tgt_if_tx_defs.h> 32 #include <include/wlan_vdev_mlme.h> 33 34 /** 35 * tgt_vdev_mgr_create_send() – API to send create command 36 * @mlme_obj: pointer to vdev_mlme_obj 37 * @param: pointer to vdev_create_params 38 * 39 * Return: QDF_STATUS - Success or Failure 40 */ 41 QDF_STATUS tgt_vdev_mgr_create_send( 42 struct vdev_mlme_obj *mlme_obj, 43 struct vdev_create_params *param); 44 45 /** 46 * tgt_vdev_mgr_create_complete() – API to send wmi cfg corresponding 47 * to create command 48 * @mlme_obj: pointer to vdev_mlme_obj 49 * 50 * Return: QDF_STATUS - Success or Failure 51 */ 52 QDF_STATUS tgt_vdev_mgr_create_complete(struct vdev_mlme_obj *mlme_obj); 53 54 /** 55 * tgt_vdev_mgr_start_send() – API to send start command 56 * @mlme_obj: pointer to vdev_mlme_obj 57 * @param: pointer to vdev_start_params 58 * 59 * Return: QDF_STATUS - Success or Failure 60 */ 61 QDF_STATUS tgt_vdev_mgr_start_send( 62 struct vdev_mlme_obj *mlme_obj, 63 struct vdev_start_params *param); 64 65 /** 66 * tgt_vdev_mgr_delete_send() – API to send delete 67 * @mlme_obj: pointer to vdev_mlme_obj 68 * @param: pointer to vdev_delete_params 69 * 70 * Return: QDF_STATUS - Success or Failure 71 */ 72 QDF_STATUS tgt_vdev_mgr_delete_send( 73 struct vdev_mlme_obj *mlme_obj, 74 struct vdev_delete_params *param); 75 76 /** 77 * tgt_vdev_mgr_peer_flush_tids_send() – API to send peer flush tids in FW 78 * @mlme_obj: pointer to vdev_mlme_obj 79 * @param: pointer to peer_flush_params 80 * 81 * Return: QDF_STATUS - Success or Failure 82 */ 83 QDF_STATUS tgt_vdev_mgr_peer_flush_tids_send( 84 struct vdev_mlme_obj *mlme_obj, 85 struct peer_flush_params *param); 86 87 /** 88 * tgt_vdev_mgr_stop_send() – API to send stop command 89 * @mlme_obj: pointer to vdev_mlme_obj 90 * @param: pointer to vdev_stop_params 91 * 92 * Return: QDF_STATUS - Success or Failure 93 */ 94 QDF_STATUS tgt_vdev_mgr_stop_send( 95 struct vdev_mlme_obj *mlme_obj, 96 struct vdev_stop_params *param); 97 98 /** 99 * tgt_vdev_mgr_beacon_stop() – API to handle beacon buffer 100 * @mlme_obj: pointer to vdev_mlme_obj 101 * 102 * Return: QDF_STATUS - Success or Failure 103 */ 104 QDF_STATUS tgt_vdev_mgr_beacon_stop(struct vdev_mlme_obj *mlme_obj); 105 106 /** 107 * tgt_vdev_mgr_beacon_free() – API to free beacon buffer 108 * @mlme_obj: pointer to vdev_mlme_obj 109 * 110 * Return: QDF_STATUS - Success or Failure 111 */ 112 QDF_STATUS tgt_vdev_mgr_beacon_free(struct vdev_mlme_obj *mlme_obj); 113 114 /** 115 * tgt_vdev_mgr_up_send() – API to send up 116 * @mlme_obj: pointer to vdev_mlme_obj 117 * @param: pointer to vdev_up_params 118 * 119 * Return: QDF_STATUS - Success or Failure 120 */ 121 QDF_STATUS tgt_vdev_mgr_up_send( 122 struct vdev_mlme_obj *mlme_obj, 123 struct vdev_up_params *param); 124 125 /** 126 * tgt_vdev_mgr_down_send() – API to send down 127 * @mlme_obj: pointer to vdev_mlme_obj 128 * @param: pointer to vdev_down_params 129 * 130 * Return: QDF_STATUS - Success or Failure 131 */ 132 QDF_STATUS tgt_vdev_mgr_down_send( 133 struct vdev_mlme_obj *mlme_obj, 134 struct vdev_down_params *param); 135 136 /** 137 * tgt_vdev_mgr_set_neighbour_rx_cmd_send() – API to send neighbour rx 138 * @mlme_obj: pointer to vdev_mlme_obj 139 * @param: pointer to set_neighbour_rx_params 140 * 141 * Return: QDF_STATUS - Success or Failure 142 */ 143 QDF_STATUS tgt_vdev_mgr_set_neighbour_rx_cmd_send( 144 struct vdev_mlme_obj *mlme_obj, 145 struct set_neighbour_rx_params *param); 146 147 /** 148 * tgt_vdev_mgr_nac_rssi_send() – API to send NAC RSSI 149 * @mlme_obj: pointer to vdev_mlme_obj 150 * @param: pointer to vdev_scan_nac_rssi_params 151 * 152 * Return: QDF_STATUS - Success or Failure 153 */ 154 QDF_STATUS tgt_vdev_mgr_nac_rssi_send( 155 struct vdev_mlme_obj *mlme_obj, 156 struct vdev_scan_nac_rssi_params *param); 157 158 /** 159 * tgt_vdev_mgr_sifs_trigger_send() – API to send SIFS trigger 160 * @mlme_obj: pointer to vdev_mlme_obj 161 * @param: pointer to sifs_trigger_param 162 * 163 * Return: QDF_STATUS - Success or Failure 164 */ 165 QDF_STATUS tgt_vdev_mgr_sifs_trigger_send( 166 struct vdev_mlme_obj *mlme_obj, 167 struct sifs_trigger_param *param); 168 169 /** 170 * tgt_vdev_mgr_set_custom_aggr_size_send() – API to send custom aggr size 171 * @mlme_obj: pointer to vdev_mlme_obj 172 * @param: pointer to set_custom_aggr_size_params 173 * 174 * Return: QDF_STATUS - Success or Failure 175 */ 176 QDF_STATUS tgt_vdev_mgr_set_custom_aggr_size_send( 177 struct vdev_mlme_obj *mlme_obj, 178 struct set_custom_aggr_size_params *param); 179 180 /** 181 * tgt_vdev_mgr_config_ratemask_cmd_send() – API to configure ratemask 182 * @mlme_obj: pointer to vdev_mlme_obj 183 * @param: pointer to config_ratemask_params 184 * 185 * Return: QDF_STATUS - Success or Failure 186 */ 187 QDF_STATUS tgt_vdev_mgr_config_ratemask_cmd_send( 188 struct vdev_mlme_obj *mlme_obj, 189 struct config_ratemask_params *param); 190 191 /** 192 * tgt_vdev_mgr_sta_ps_param_send() – API to send sta power save configuration 193 * @mlme_obj: pointer to vdev_mlme_obj 194 * @param: pointer to sta_ps_params 195 * 196 * Return: QDF_STATUS - Success or Failure 197 */ 198 QDF_STATUS tgt_vdev_mgr_sta_ps_param_send( 199 struct vdev_mlme_obj *mlme_obj, 200 struct sta_ps_params *param); 201 202 /** 203 * tgt_vdev_mgr_beacon_cmd_send() – API to send beacon 204 * @mlme_obj: pointer to vdev_mlme_obj 205 * @param: pointer to beacon_params 206 * 207 * Return: QDF_STATUS - Success or Failure 208 */ 209 QDF_STATUS tgt_vdev_mgr_beacon_cmd_send( 210 struct vdev_mlme_obj *mlme_obj, 211 struct beacon_params *param); 212 213 /** 214 * tgt_vdev_mgr_beacon_tmpl_send() – API to send beacon template 215 * @mlme_obj: pointer to vdev_mlme_obj 216 * @param: pointer to beacon_tmpl_params 217 * 218 * Return: QDF_STATUS - Success or Failure 219 */ 220 QDF_STATUS tgt_vdev_mgr_beacon_tmpl_send( 221 struct vdev_mlme_obj *mlme_obj, 222 struct beacon_tmpl_params *param); 223 224 #if defined(WLAN_SUPPORT_FILS) || defined(CONFIG_BAND_6GHZ) 225 /** 226 * tgt_vdev_mgr_fils_enable_send()- API to send fils enable command 227 * @mlme_obj: pointer to vdev_mlme_obj 228 * @param: pointer to config_fils_params struct 229 * 230 * Return: QDF_STATUS - Success or Failure 231 */ 232 QDF_STATUS tgt_vdev_mgr_fils_enable_send( 233 struct vdev_mlme_obj *mlme_obj, 234 struct config_fils_params *param); 235 #else 236 /** 237 * tgt_vdev_mgr_fils_enable_send()- API to send fils enable command 238 * @mlme_obj: pointer to vdev_mlme_obj 239 * @param: pointer to config_fils_params struct 240 * 241 * Return: QDF_STATUS - Success or Failure 242 */ 243 static inline QDF_STATUS tgt_vdev_mgr_fils_enable_send( 244 struct vdev_mlme_obj *mlme_obj, 245 struct config_fils_params *param) 246 { 247 return QDF_STATUS_SUCCESS; 248 } 249 #endif 250 251 /** 252 * tgt_vdev_mgr_multiple_vdev_restart_send() – API to send multiple vdev 253 * restart 254 * @pdev: pointer to pdev 255 * @param: pointer to multiple_vdev_restart_params 256 * 257 * Return: QDF_STATUS - Success or Failure 258 */ 259 QDF_STATUS tgt_vdev_mgr_multiple_vdev_restart_send( 260 struct wlan_objmgr_pdev *pdev, 261 struct multiple_vdev_restart_params *param); 262 263 /** 264 * tgt_vdev_mgr_multiple_vdev_set_param() – API to send multiple vdev 265 * param 266 * @pdev: pointer to pdev 267 * @param: pointer to multiple_vdev_set_param 268 * 269 * Return: QDF_STATUS - Success or Failure 270 */ 271 QDF_STATUS tgt_vdev_mgr_multiple_vdev_set_param( 272 struct wlan_objmgr_pdev *pdev, 273 struct multiple_vdev_set_param *param); 274 275 /** 276 * tgt_vdev_mgr_set_tx_rx_decap_type() – API to send tx rx decap type 277 * @mlme_obj: pointer to vdev mlme obj 278 * @param_id: param id 279 * value: value to set for param id 280 * 281 * Return: QDF_STATUS - Success or Failure 282 */ 283 QDF_STATUS tgt_vdev_mgr_set_tx_rx_decap_type(struct vdev_mlme_obj *mlme_obj, 284 enum wlan_mlme_cfg_id param_id, 285 uint32_t value); 286 287 /** 288 * tgt_vdev_mgr_set_param_send() – API to send parameter cfg 289 * @mlme_obj: pointer to vdev_mlme_obj 290 * @param: pointer to vdev_set_params 291 * 292 * Return: QDF_STATUS - Success or Failure 293 */ 294 QDF_STATUS tgt_vdev_mgr_set_param_send( 295 struct vdev_mlme_obj *mlme_obj, 296 struct vdev_set_params *param); 297 298 /** 299 * tgt_vdev_mgr_bcn_miss_offload_send() – API to send beacon miss offload 300 * @mlme_obj: pointer to vdev_mlme_obj 301 * 302 * Return: QDF_STATUS - Success or Failure 303 */ 304 QDF_STATUS tgt_vdev_mgr_bcn_miss_offload_send(struct vdev_mlme_obj *mlme_obj); 305 306 /** 307 * tgt_vdev_mgr_peer_delete_all_send() – API to send peer delete all request 308 * @mlme_obj: pointer to vdev_mlme_obj 309 * @param: pointer to peer_delete_all_params 310 * 311 * Return: QDF_STATUS - Success or Failure 312 */ 313 QDF_STATUS tgt_vdev_mgr_peer_delete_all_send( 314 struct vdev_mlme_obj *mlme_obj, 315 struct peer_delete_all_params *param); 316 317 #endif /* __WLAN_VDEV_MGR_TX_OPS_API_H__ */ 318