xref: /wlan-driver/qca-wifi-host-cmn/wmi/inc/wmi_unified_11be_param.h (revision 5113495b16420b49004c444715d2daae2066e7dc)
1*5113495bSYour Name 
2*5113495bSYour Name /*
3*5113495bSYour Name  * Copyright (c) 2021, The Linux Foundation. All rights reserved.
4*5113495bSYour Name  * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved.
5*5113495bSYour Name  *
6*5113495bSYour Name  * Permission to use, copy, modify, and/or distribute this software for any
7*5113495bSYour Name  * purpose with or without fee is hereby granted, provided that the above
8*5113495bSYour Name  * copyright notice and this permission notice appear in all copies.
9*5113495bSYour Name  *
10*5113495bSYour Name  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
11*5113495bSYour Name  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
12*5113495bSYour Name  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
13*5113495bSYour Name  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
14*5113495bSYour Name  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
15*5113495bSYour Name  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
16*5113495bSYour Name  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17*5113495bSYour Name  */
18*5113495bSYour Name 
19*5113495bSYour Name #ifndef _WMI_UNIFIED_11BE_PARAM_H_
20*5113495bSYour Name #define _WMI_UNIFIED_11BE_PARAM_H_
21*5113495bSYour Name 
22*5113495bSYour Name #include <wmi_unified_param.h>
23*5113495bSYour Name 
24*5113495bSYour Name #ifdef WLAN_FEATURE_11BE_MLO
25*5113495bSYour Name 
26*5113495bSYour Name #define MAX_LINK_IN_MLO 6
27*5113495bSYour Name /** struct wmi_mlo_setup_params - MLO setup command params
28*5113495bSYour Name  * @mld_grp_id: Unique ID to FW for MLD group
29*5113495bSYour Name  * @pdev_id: pdev id of radio on which this command is sent
30*5113495bSYour Name  * @num_valid_hw_links: Num of valid links in partner_links array
31*5113495bSYour Name  * @partner_links[MAX_LINK_IN_MLO]: Partner link IDs
32*5113495bSYour Name  */
33*5113495bSYour Name struct wmi_mlo_setup_params {
34*5113495bSYour Name 	uint32_t mld_grp_id;
35*5113495bSYour Name 	uint32_t pdev_id;
36*5113495bSYour Name 	uint8_t num_valid_hw_links;
37*5113495bSYour Name 	uint32_t partner_links[MAX_LINK_IN_MLO];
38*5113495bSYour Name };
39*5113495bSYour Name 
40*5113495bSYour Name /** struct wmi_mlo_ready_params - MLO ready command params
41*5113495bSYour Name  * @pdev_id: pdev id of radio on which this command is sent
42*5113495bSYour Name  */
43*5113495bSYour Name struct wmi_mlo_ready_params {
44*5113495bSYour Name 	uint32_t pdev_id;
45*5113495bSYour Name };
46*5113495bSYour Name 
47*5113495bSYour Name /** enum wmi_mlo_teardown_reason - Reason code in WMI MLO teardown command
48*5113495bSYour Name  * @WMI_HOST_MLO_TEARDOWN_REASON_DOWN: Wifi down
49*5113495bSYour Name  * @WMI_HOST_MLO_TEARDOWN_REASON_SSR: Wifi Recovery
50*5113495bSYour Name  * @WMI_HOST_MLO_TEARDOWN_REASON_MODE1_SSR: Recovery Mode1 SSR teardown
51*5113495bSYour Name  * @WMI_HOST_MLO_TEARDOWN_REASON_STANDBY: Network Standby mode teardown
52*5113495bSYour Name  */
53*5113495bSYour Name enum wmi_mlo_teardown_reason {
54*5113495bSYour Name 	WMI_HOST_MLO_TEARDOWN_REASON_DOWN,
55*5113495bSYour Name 	WMI_HOST_MLO_TEARDOWN_REASON_SSR,
56*5113495bSYour Name 	WMI_HOST_MLO_TEARDOWN_REASON_MODE1_SSR,
57*5113495bSYour Name 	WMI_HOST_MLO_TEARDOWN_REASON_STANDBY,
58*5113495bSYour Name };
59*5113495bSYour Name 
60*5113495bSYour Name /** struct wmi_mlo_teardown_params - MLO teardown command params
61*5113495bSYour Name  * @pdev_id: pdev id of radio on which this command is sent
62*5113495bSYour Name  * @reason: reason code from enum wmi_mlo_teardown_reason
63*5113495bSYour Name  * @umac_reset: trigger umac reset for mode1 or not
64*5113495bSYour Name  */
65*5113495bSYour Name struct wmi_mlo_teardown_params {
66*5113495bSYour Name 	uint32_t pdev_id;
67*5113495bSYour Name 	enum wmi_mlo_teardown_reason reason;
68*5113495bSYour Name 	bool umac_reset;
69*5113495bSYour Name 	bool standby_active;
70*5113495bSYour Name };
71*5113495bSYour Name 
72*5113495bSYour Name /** enum wmi_mlo_setup_status - Status code in WMI MLO setup completion event
73*5113495bSYour Name  * @WMI_HOST_MLO_SETUP_STATUS_SUCCESS: Success
74*5113495bSYour Name  * @WMI_HOST_MLO_SETUP_STATUS_FAILURE: Failure
75*5113495bSYour Name  */
76*5113495bSYour Name enum wmi_mlo_setup_status {
77*5113495bSYour Name 	WMI_HOST_MLO_SETUP_STATUS_SUCCESS,
78*5113495bSYour Name 	WMI_HOST_MLO_SETUP_STATUS_FAILURE,
79*5113495bSYour Name };
80*5113495bSYour Name 
81*5113495bSYour Name /** struct wmi_mlo_setup_complete_params - MLO setup complete event params
82*5113495bSYour Name  * @pdev_id: pdev id of radio on which this event is received
83*5113495bSYour Name  * @status: status code
84*5113495bSYour Name  * @max_ml_peer_ids: Maximum ML Peer ID's
85*5113495bSYour Name  */
86*5113495bSYour Name struct wmi_mlo_setup_complete_params {
87*5113495bSYour Name 	uint32_t pdev_id;
88*5113495bSYour Name 	enum wmi_mlo_setup_status status;
89*5113495bSYour Name 	uint32_t max_ml_peer_ids;
90*5113495bSYour Name };
91*5113495bSYour Name 
92*5113495bSYour Name /** enum wmi_mlo_teardown_status - Status code in WMI MLO teardown completion
93*5113495bSYour Name  *                                 event
94*5113495bSYour Name  * @WMI_HOST_MLO_TEARDOWN_STATUS_SUCCESS: Success
95*5113495bSYour Name  * @WMI_HOST_MLO_TEARDOWN_STATUS_FAILURE: Failure
96*5113495bSYour Name  * @WMI_HOST_MLO_TEARDOWN_STATUS_ONGOING: Ongoing
97*5113495bSYour Name  */
98*5113495bSYour Name enum wmi_mlo_teardown_status {
99*5113495bSYour Name 	WMI_HOST_MLO_TEARDOWN_STATUS_SUCCESS,
100*5113495bSYour Name 	WMI_HOST_MLO_TEARDOWN_STATUS_FAILURE,
101*5113495bSYour Name 	WMI_HOST_MLO_TEARDOWN_STATUS_ONGOING,
102*5113495bSYour Name };
103*5113495bSYour Name 
104*5113495bSYour Name /** struct wmi_mlo_teardown_cmpl_params - MLO setup teardown event params
105*5113495bSYour Name  * @pdev_id: pdev id of radio on which this event is received
106*5113495bSYour Name  * @status: Teardown status from enum wmi_mlo_teardown_status
107*5113495bSYour Name  */
108*5113495bSYour Name struct wmi_mlo_teardown_cmpl_params {
109*5113495bSYour Name 	uint32_t pdev_id;
110*5113495bSYour Name 	enum wmi_mlo_teardown_status status;
111*5113495bSYour Name };
112*5113495bSYour Name #endif
113*5113495bSYour Name #endif
114