1 /* 2 * Copyright (c) 2021, The Linux Foundation. All rights reserved. 3 * Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved. 4 * 5 * Permission to use, copy, modify, and/or distribute this software for any 6 * purpose with or without fee is hereby granted, provided that the above 7 * copyright notice and this permission notice appear in all copies. 8 * 9 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 10 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 12 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 15 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16 */ 17 /* 18 * This file contains the API definitions for the Unified Wireless Module 19 * Interface (WMI) specific to 11be. 20 */ 21 22 #ifndef _WMI_UNIFIED_11BE_API_H_ 23 #define _WMI_UNIFIED_11BE_API_H_ 24 25 #include <wmi_unified_api.h> 26 #include <wmi_unified_priv.h> 27 28 #ifdef WLAN_FEATURE_11BE_MLO 29 /** 30 * wmi_extract_mlo_link_set_active_resp() - extract mlo link set active 31 * response event 32 * @wmi: wmi handle 33 * @evt_buf: pointer to event buffer 34 * @evt: Pointer to hold mlo link set active response event 35 * 36 * This function gets called to extract mlo link set active response event 37 * 38 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 39 */ 40 QDF_STATUS 41 wmi_extract_mlo_link_set_active_resp(wmi_unified_t wmi, 42 void *evt_buf, 43 struct mlo_link_set_active_resp *evt); 44 45 /** 46 * wmi_send_mlo_link_set_active_cmd() - send mlo link set active command 47 * @wmi_handle: WMI handle for this pdev 48 * @param: Pointer to mlo link set active param 49 * 50 * Return: QDF_STATUS code 51 */ 52 QDF_STATUS 53 wmi_send_mlo_link_set_active_cmd(wmi_unified_t wmi_handle, 54 struct mlo_link_set_active_param *param); 55 56 /** 57 * wmi_extract_mgmt_rx_ml_cu_params() - extract mlo cu params from event 58 * @wmi_handle: wmi handle 59 * @evt_buf: pointer to event buffer 60 * @cu_params: Pointer to mlo CU params 61 * 62 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 63 */ 64 QDF_STATUS 65 wmi_extract_mgmt_rx_ml_cu_params(wmi_unified_t wmi_handle, void *evt_buf, 66 struct mlo_mgmt_ml_info *cu_params); 67 68 /** 69 * wmi_send_mlo_link_removal_cmd() - Send WMI command for MLO link removal 70 * @wmi: wmi handle 71 * @param: MLO link removal command parameters 72 * 73 * Return: QDF_STATUS_SUCCESS of operation 74 */ 75 QDF_STATUS wmi_send_mlo_link_removal_cmd( 76 wmi_unified_t wmi, 77 const struct mlo_link_removal_cmd_params *param); 78 79 /** 80 * wmi_extract_mlo_link_removal_evt_fixed_param() - Extract fixed parameters TLV 81 * from the MLO link removal WMI event 82 * @wmi_handle: wmi handle 83 * @buf: pointer to event buffer 84 * @params: MLO link removal event parameters 85 * 86 * Return: QDF_STATUS_SUCCESS of operation 87 */ 88 QDF_STATUS wmi_extract_mlo_link_removal_evt_fixed_param( 89 struct wmi_unified *wmi_handle, 90 void *buf, 91 struct mlo_link_removal_evt_params *params); 92 93 /** 94 * wmi_extract_mlo_link_removal_tbtt_update() - Extract TBTT update TLV 95 * from the MLO link removal WMI event 96 * @wmi_handle: wmi handle 97 * @buf: pointer to event buffer 98 * @tbtt_info: TBTT information 99 * 100 * Return: QDF_STATUS of operation 101 */ 102 QDF_STATUS wmi_extract_mlo_link_removal_tbtt_update( 103 struct wmi_unified *wmi_handle, 104 void *buf, 105 struct mlo_link_removal_tbtt_info *tbtt_info); 106 107 /** 108 * wmi_extract_mgmt_rx_mlo_link_removal_info() - Extract MLO link removal info 109 * from MGMT Rx event 110 * @wmi: wmi handle 111 * @buf: event buffer 112 * @link_removal_info: link removal information array to be populated 113 * @num_link_removal_info: Number of elements in @link_removal_info 114 * 115 * Return: QDF_STATUS of operation 116 */ 117 QDF_STATUS wmi_extract_mgmt_rx_mlo_link_removal_info( 118 struct wmi_unified *wmi, 119 void *buf, 120 struct mgmt_rx_mlo_link_removal_info *link_removal_info, 121 int num_link_removal_info); 122 #endif /*WLAN_FEATURE_11BE_MLO*/ 123 124 #ifdef WLAN_FEATURE_11BE 125 /** 126 * wmi_send_mlo_peer_tid_to_link_map_cmd() - send TID-to-link mapping command 127 * @wmi: WMI handle for this pdev 128 * @params: Pointer to TID-to-link mapping params 129 */ 130 QDF_STATUS wmi_send_mlo_peer_tid_to_link_map_cmd( 131 wmi_unified_t wmi, 132 struct wmi_host_tid_to_link_map_params *params); 133 134 /** 135 * wmi_send_mlo_vdev_tid_to_link_map_cmd() - send TID-to-link mapping command 136 * per vdev 137 * @wmi: WMI handle for this pdev 138 * @params: Pointer to TID-to-link mapping params 139 */ 140 QDF_STATUS wmi_send_mlo_vdev_tid_to_link_map_cmd( 141 wmi_unified_t wmi, 142 struct wmi_host_tid_to_link_map_ap_params *params); 143 144 /** 145 * wmi_extract_mlo_vdev_tid_to_link_map_event() - extract mlo t2lm info for vdev 146 * @wmi: wmi handle 147 * @evt_buf: pointer to event buffer 148 * @resp: Pointer to host structure to get the t2lm info 149 * 150 * This function gets called to extract mlo t2lm info for particular pdev 151 * 152 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 153 */ 154 QDF_STATUS 155 wmi_extract_mlo_vdev_tid_to_link_map_event( 156 wmi_unified_t wmi, void *evt_buf, 157 struct mlo_vdev_host_tid_to_link_map_resp *resp); 158 159 /** 160 * wmi_extract_mlo_vdev_bcast_tid_to_link_map_event() - extract bcast mlo t2lm 161 * info for vdev 162 * @wmi: wmi handle 163 * @evt_buf: pointer to event buffer 164 * @bcast: Pointer to host structure to get the t2lm bcast info 165 * 166 * This function gets called to extract bcast mlo t2lm info for particular pdev 167 * 168 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 169 */ 170 QDF_STATUS 171 wmi_extract_mlo_vdev_bcast_tid_to_link_map_event( 172 wmi_unified_t wmi, 173 void *evt_buf, 174 struct mlo_bcast_t2lm_info *bcast); 175 #endif /* WLAN_FEATURE_11BE */ 176 177 #endif /*_WMI_UNIFIED_11BE_API_H_*/ 178