xref: /wlan-dirver/qca-wifi-host-cmn/wmi/inc/wmi_unified_11be_api.h (revision 70a19e16789e308182f63b15c75decec7bf0b342)
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