1 /* 2 * Copyright (c) 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 * 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 #ifdef CMN_VDEV_MGR_TGT_IF_ENABLE 31 #include <wlan_objmgr_vdev_obj.h> 32 #include <wlan_vdev_mgr_tgt_if_tx_defs.h> 33 #include <include/wlan_vdev_mlme.h> 34 35 /** 36 * tgt_vdev_mgr_create_send() – API to send create command 37 * @mlme_obj: pointer to vdev_mlme_obj 38 * @param: pointer to vdev_create_params 39 * 40 * Return: QDF_STATUS - Success or Failure 41 */ 42 QDF_STATUS tgt_vdev_mgr_create_send( 43 struct vdev_mlme_obj *mlme_obj, 44 struct vdev_create_params *param); 45 46 /** 47 * tgt_vdev_mgr_create_complete() – API to send wmi cfg corresponding 48 * to create command 49 * @mlme_obj: pointer to vdev_mlme_obj 50 * 51 * Return: QDF_STATUS - Success or Failure 52 */ 53 QDF_STATUS tgt_vdev_mgr_create_complete(struct vdev_mlme_obj *mlme_obj); 54 55 /** 56 * tgt_vdev_mgr_start_send() – API to send start command 57 * @mlme_obj: pointer to vdev_mlme_obj 58 * @param: pointer to vdev_start_params 59 * 60 * Return: QDF_STATUS - Success or Failure 61 */ 62 QDF_STATUS tgt_vdev_mgr_start_send( 63 struct vdev_mlme_obj *mlme_obj, 64 struct vdev_start_params *param); 65 66 /** 67 * tgt_vdev_mgr_delete_send() – API to send delete 68 * @mlme_obj: pointer to vdev_mlme_obj 69 * @param: pointer to vdev_delete_params 70 * 71 * Return: QDF_STATUS - Success or Failure 72 */ 73 QDF_STATUS tgt_vdev_mgr_delete_send( 74 struct vdev_mlme_obj *mlme_obj, 75 struct vdev_delete_params *param); 76 77 /** 78 * tgt_vdev_mgr_peer_flush_tids_send() – API to send peer flush tids in FW 79 * @mlme_obj: pointer to vdev_mlme_obj 80 * @param: pointer to peer_flush_params 81 * 82 * Return: QDF_STATUS - Success or Failure 83 */ 84 QDF_STATUS tgt_vdev_mgr_peer_flush_tids_send( 85 struct vdev_mlme_obj *mlme_obj, 86 struct peer_flush_params *param); 87 88 /** 89 * tgt_vdev_mgr_stop_send() – API to send stop command 90 * @mlme_obj: pointer to vdev_mlme_obj 91 * @param: pointer to vdev_stop_params 92 * 93 * Return: QDF_STATUS - Success or Failure 94 */ 95 QDF_STATUS tgt_vdev_mgr_stop_send( 96 struct vdev_mlme_obj *mlme_obj, 97 struct vdev_stop_params *param); 98 99 /** 100 * tgt_vdev_mgr_beacon_stop() – API to handle beacon buffer 101 * @mlme_obj: pointer to vdev_mlme_obj 102 * 103 * Return: QDF_STATUS - Success or Failure 104 */ 105 QDF_STATUS tgt_vdev_mgr_beacon_stop(struct vdev_mlme_obj *mlme_obj); 106 107 /** 108 * tgt_vdev_mgr_beacon_free() – API to free beacon buffer 109 * @mlme_obj: pointer to vdev_mlme_obj 110 * 111 * Return: QDF_STATUS - Success or Failure 112 */ 113 QDF_STATUS tgt_vdev_mgr_beacon_free(struct vdev_mlme_obj *mlme_obj); 114 115 /** 116 * tgt_vdev_mgr_up_send() – API to send up 117 * @mlme_obj: pointer to vdev_mlme_obj 118 * @param: pointer to vdev_up_params 119 * 120 * Return: QDF_STATUS - Success or Failure 121 */ 122 QDF_STATUS tgt_vdev_mgr_up_send( 123 struct vdev_mlme_obj *mlme_obj, 124 struct vdev_up_params *param); 125 126 /** 127 * tgt_vdev_mgr_down_send() – API to send down 128 * @mlme_obj: pointer to vdev_mlme_obj 129 * @param: pointer to vdev_down_params 130 * 131 * Return: QDF_STATUS - Success or Failure 132 */ 133 QDF_STATUS tgt_vdev_mgr_down_send( 134 struct vdev_mlme_obj *mlme_obj, 135 struct vdev_down_params *param); 136 137 /** 138 * tgt_vdev_mgr_set_neighbour_rx_cmd_send() – API to send neighbour rx 139 * @mlme_obj: pointer to vdev_mlme_obj 140 * @param: pointer to set_neighbour_rx_params 141 * 142 * Return: QDF_STATUS - Success or Failure 143 */ 144 QDF_STATUS tgt_vdev_mgr_set_neighbour_rx_cmd_send( 145 struct vdev_mlme_obj *mlme_obj, 146 struct set_neighbour_rx_params *param); 147 148 /** 149 * tgt_vdev_mgr_nac_rssi_send() – API to send NAC RSSI 150 * @mlme_obj: pointer to vdev_mlme_obj 151 * @param: pointer to vdev_scan_nac_rssi_params 152 * 153 * Return: QDF_STATUS - Success or Failure 154 */ 155 QDF_STATUS tgt_vdev_mgr_nac_rssi_send( 156 struct vdev_mlme_obj *mlme_obj, 157 struct vdev_scan_nac_rssi_params *param); 158 159 /** 160 * tgt_vdev_mgr_sifs_trigger_send() – API to send SIFS trigger 161 * @mlme_obj: pointer to vdev_mlme_obj 162 * @param: pointer to sifs_trigger_param 163 * 164 * Return: QDF_STATUS - Success or Failure 165 */ 166 QDF_STATUS tgt_vdev_mgr_sifs_trigger_send( 167 struct vdev_mlme_obj *mlme_obj, 168 struct sifs_trigger_param *param); 169 170 /** 171 * tgt_vdev_mgr_set_custom_aggr_size_send() – API to send custom aggr size 172 * @mlme_obj: pointer to vdev_mlme_obj 173 * @param: pointer to set_custom_aggr_size_params 174 * 175 * Return: QDF_STATUS - Success or Failure 176 */ 177 QDF_STATUS tgt_vdev_mgr_set_custom_aggr_size_send( 178 struct vdev_mlme_obj *mlme_obj, 179 struct set_custom_aggr_size_params *param); 180 181 /** 182 * tgt_vdev_mgr_config_ratemask_cmd_send() – API to configure ratemask 183 * @mlme_obj: pointer to vdev_mlme_obj 184 * @param: pointer to config_ratemask_params 185 * 186 * Return: QDF_STATUS - Success or Failure 187 */ 188 QDF_STATUS tgt_vdev_mgr_config_ratemask_cmd_send( 189 struct vdev_mlme_obj *mlme_obj, 190 struct config_ratemask_params *param); 191 192 /** 193 * tgt_vdev_mgr_sta_ps_param_send() – API to send sta power save configuration 194 * @mlme_obj: pointer to vdev_mlme_obj 195 * @param: pointer to sta_ps_params 196 * 197 * Return: QDF_STATUS - Success or Failure 198 */ 199 QDF_STATUS tgt_vdev_mgr_sta_ps_param_send( 200 struct vdev_mlme_obj *mlme_obj, 201 struct sta_ps_params *param); 202 203 /** 204 * tgt_vdev_mgr_beacon_cmd_send() – API to send beacon 205 * @mlme_obj: pointer to vdev_mlme_obj 206 * @param: pointer to beacon_params 207 * 208 * Return: QDF_STATUS - Success or Failure 209 */ 210 QDF_STATUS tgt_vdev_mgr_beacon_cmd_send( 211 struct vdev_mlme_obj *mlme_obj, 212 struct beacon_params *param); 213 214 /** 215 * tgt_vdev_mgr_beacon_tmpl_send() – API to send beacon template 216 * @mlme_obj: pointer to vdev_mlme_obj 217 * @param: pointer to beacon_tmpl_params 218 * 219 * Return: QDF_STATUS - Success or Failure 220 */ 221 QDF_STATUS tgt_vdev_mgr_beacon_tmpl_send( 222 struct vdev_mlme_obj *mlme_obj, 223 struct beacon_tmpl_params *param); 224 225 /** 226 * tgt_vdev_mgr_multiple_vdev_restart_send() – API to send multiple vdev 227 * restart 228 * @pdev: pointer to pdev 229 * @param: pointer to multiple_vdev_restart_params 230 * 231 * Return: QDF_STATUS - Success or Failure 232 */ 233 QDF_STATUS tgt_vdev_mgr_multiple_vdev_restart_send( 234 struct wlan_objmgr_pdev *pdev, 235 struct multiple_vdev_restart_params *param); 236 237 /** 238 * tgt_vdev_mgr_set_param_send() – API to send parameter cfg 239 * @mlme_obj: pointer to vdev_mlme_obj 240 * @param: pointer to vdev_set_params 241 * 242 * Return: QDF_STATUS - Success or Failure 243 */ 244 QDF_STATUS tgt_vdev_mgr_set_param_send( 245 struct vdev_mlme_obj *mlme_obj, 246 struct vdev_set_params *param); 247 248 /** 249 * tgt_vdev_mgr_bcn_miss_offload_send() – API to send beacon miss offload 250 * @mlme_obj: pointer to vdev_mlme_obj 251 * 252 * Return: QDF_STATUS - Success or Failure 253 */ 254 QDF_STATUS tgt_vdev_mgr_bcn_miss_offload_send(struct vdev_mlme_obj *mlme_obj); 255 256 #endif /* CMN_VDEV_MGR_TGT_IF_ENABLE */ 257 #endif /* __WLAN_VDEV_MGR_TX_OPS_API_H__ */ 258