wmi_unified_vdev_api.h 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233
  1. /*
  2. * Copyright (c) 2016-2021 The Linux Foundation. All rights reserved.
  3. * Copyright (c) 2022-2023 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. * This file contains the API declarations for the Unified Wireless Module
  21. * Interface (WMI).
  22. */
  23. #ifndef _WMI_UNIFIED_VDEV_API_H_
  24. #define _WMI_UNIFIED_VDEV_API_H_
  25. #include <wmi_unified_api.h>
  26. /**
  27. * wmi_unified_peer_filter_set_tx_cmd_send() - WMI set tx peer filter function
  28. * @wmi_handle: handle to WMI.
  29. * @macaddr: MAC address
  30. * @param: pointer to hold peer filter parameter
  31. *
  32. * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
  33. */
  34. QDF_STATUS
  35. wmi_unified_peer_filter_set_tx_cmd_send(struct wmi_unified *wmi_handle,
  36. uint8_t macaddr[],
  37. struct set_tx_peer_filter *param);
  38. /**
  39. * wmi_unified_vdev_set_neighbour_rx_cmd_send() - WMI set neighbour rx function
  40. * @wmi_handle: handle to WMI.
  41. * @macaddr: MAC address
  42. * @param: pointer to hold neighbour rx parameter
  43. *
  44. * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
  45. */
  46. QDF_STATUS wmi_unified_vdev_set_neighbour_rx_cmd_send(
  47. struct wmi_unified *wmi_handle,
  48. uint8_t macaddr[QDF_MAC_ADDR_SIZE],
  49. struct set_neighbour_rx_params *param);
  50. /**
  51. * wmi_unified_vdev_config_ratemask_cmd_send() - WMI config ratemask function
  52. * @wmi_handle: handle to WMI.
  53. * @param: pointer to hold config ratemask param
  54. *
  55. * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
  56. */
  57. QDF_STATUS
  58. wmi_unified_vdev_config_ratemask_cmd_send(struct wmi_unified *wmi_handle,
  59. struct config_ratemask_params *param);
  60. /**
  61. * wmi_unified_send_multiple_vdev_restart_req_cmd() - send multiple vdev restart
  62. * @wmi_handle: wmi handle
  63. * @param: multiple vdev restart parameter
  64. *
  65. * Send WMI_PDEV_MULTIPLE_VDEV_RESTART_REQUEST_CMDID parameters to fw.
  66. *
  67. * Return: QDF_STATUS_SUCCESS on success, QDF_STATUS_E_** on error
  68. */
  69. QDF_STATUS wmi_unified_send_multiple_vdev_restart_req_cmd(
  70. struct wmi_unified *wmi_handle,
  71. struct multiple_vdev_restart_params *param);
  72. /**
  73. * wmi_unified_send_multiple_vdev_set_param_cmd() - Send multiple vdev set param
  74. * command
  75. * @wmi_handle: wmi handle
  76. * @param: multiple vdev restart parameter
  77. *
  78. * Send WMI_PDEV_MULTIPLE_VDEV_SET_PARAM_CMDID parameters to fw.
  79. *
  80. * Return: QDF_STATUS_SUCCESS on success, QDF_STATUS_E_** on error
  81. */
  82. QDF_STATUS wmi_unified_send_multiple_vdev_set_param_cmd(
  83. struct wmi_unified *wmi_handle,
  84. struct multiple_vdev_set_param *param);
  85. /**
  86. * wmi_unified_beacon_send_cmd() - WMI beacon send function
  87. * @wmi_handle: handle to WMI.
  88. * @param: pointer to hold beacon send cmd parameter
  89. *
  90. * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
  91. */
  92. QDF_STATUS wmi_unified_beacon_send_cmd(struct wmi_unified *wmi_handle,
  93. struct beacon_params *param);
  94. /**
  95. * wmi_extract_vdev_start_resp() - extract vdev start response
  96. * @wmi_handle: wmi handle
  97. * @evt_buf: pointer to event buffer
  98. * @vdev_rsp: Pointer to hold vdev response
  99. *
  100. * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
  101. */
  102. QDF_STATUS
  103. wmi_extract_vdev_start_resp(struct wmi_unified *wmi_handle, void *evt_buf,
  104. struct vdev_start_response *vdev_rsp);
  105. /**
  106. * wmi_extract_vdev_stopped_param() - extract vdev stop param from event
  107. * @wmi_handle: wmi handle
  108. * @evt_buf: pointer to event buffer
  109. * @vdev_id: Pointer to hold vdev identifier
  110. *
  111. * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
  112. */
  113. QDF_STATUS
  114. wmi_extract_vdev_stopped_param(struct wmi_unified *wmi_handle, void *evt_buf,
  115. uint32_t *vdev_id);
  116. /**
  117. * wmi_send_peer_vlan_config() - send peer vlan configuration
  118. * @wmi_handle: wmi handle
  119. * @mac_addr: mac address of the peer
  120. * @param: vlan parameter
  121. */
  122. QDF_STATUS
  123. wmi_send_peer_vlan_config(struct wmi_unified *wmi_handle,
  124. uint8_t *mac_addr,
  125. struct peer_vlan_config_param param);
  126. /**
  127. * wmi_extract_vdev_delete_resp() - extract vdev delete response
  128. * @wmi_handle: wmi handle
  129. * @evt_buf: pointer to event buffer
  130. * @vdev_del_resp: Pointer to hold vdev delete response
  131. *
  132. * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
  133. */
  134. QDF_STATUS
  135. wmi_extract_vdev_delete_resp(struct wmi_unified *wmi_handle, void *evt_buf,
  136. struct vdev_delete_response *vdev_del_resp);
  137. /**
  138. * wmi_extract_vdev_peer_delete_all_response_event() - extract peer delete all
  139. * response
  140. * @wmi_handle: wmi handle
  141. * @evt_buf: pointer to event buffer
  142. * @delete_rsp: Pointer to hold peer delete all response
  143. *
  144. * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
  145. */
  146. QDF_STATUS wmi_extract_vdev_peer_delete_all_response_event(
  147. struct wmi_unified *wmi_handle,
  148. void *evt_buf,
  149. struct peer_delete_all_response *delete_rsp);
  150. /**
  151. * wmi_extract_ext_tbttoffset_num_vdevs() - extract ext tbtt offset num vdev
  152. * @wmi_handle: wmi handle
  153. * @evt_buf: pointer to event buffer
  154. * @num_vdevs: Pointer to hold num vdev
  155. *
  156. * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
  157. */
  158. QDF_STATUS
  159. wmi_extract_ext_tbttoffset_num_vdevs(struct wmi_unified *wmi_handle,
  160. void *evt_buf, uint32_t *num_vdevs);
  161. /**
  162. * wmi_extract_tbttoffset_num_vdevs() - extract tbtt offset num vdev
  163. * @wmi_handle: wmi handle
  164. * @evt_buf: pointer to event buffer
  165. * @num_vdevs: Pointer to hold num vdev
  166. *
  167. * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
  168. */
  169. QDF_STATUS
  170. wmi_extract_tbttoffset_num_vdevs(struct wmi_unified *wmi_handle, void *evt_buf,
  171. uint32_t *num_vdevs);
  172. /**
  173. * wmi_extract_multi_vdev_restart_resp_event() - extract multi vdev restart
  174. * response
  175. * @wmi_handle: wmi handle
  176. * @evt_buf: pointer to event buffer
  177. * @restart_rsp: Pointer to hold multi vdev restart response
  178. *
  179. * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
  180. */
  181. QDF_STATUS wmi_extract_multi_vdev_restart_resp_event(
  182. struct wmi_unified *wmi_handle,
  183. void *evt_buf,
  184. struct multi_vdev_restart_resp *restart_rsp);
  185. /**
  186. * wmi_unified_multisoc_tbtt_sync_cmd() - Send cmd to sync tbtt in multisoc case
  187. * @wmi_handle: wmi handle
  188. * @param: params received in rnr_tbtt_multisoc_sync_param
  189. *
  190. * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
  191. */
  192. QDF_STATUS
  193. wmi_unified_multisoc_tbtt_sync_cmd(wmi_unified_t wmi_handle,
  194. struct rnr_tbtt_multisoc_sync_param *param);
  195. #ifdef WLAN_FEATURE_SR
  196. /**
  197. * wmi_unified_vdev_param_sr_prohibit_send() - send vdev SR prohibit command
  198. * @wmi_hdl: wmi handle
  199. * @srp_param: SR Prohibit parameters
  200. *
  201. * Return: QDF_STATUS_SUCCESS for success or error code
  202. */
  203. QDF_STATUS
  204. wmi_unified_vdev_param_sr_prohibit_send(wmi_unified_t wmi_hdl,
  205. struct sr_prohibit_param *srp_param);
  206. #else
  207. static inline QDF_STATUS
  208. wmi_unified_vdev_param_sr_prohibit_send(wmi_unified_t wmi_hdl,
  209. struct sr_prohibit_param *srp_param)
  210. {
  211. return QDF_STATUS_SUCCESS;
  212. }
  213. #endif
  214. #endif