xref: /wlan-dirver/qca-wifi-host-cmn/umac/mlo_mgr/inc/wlan_mlo_mgr_setup.h (revision 8c3c4172fbd442a68f7b879958acb6794236aee0)
1 /* Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved.
2  *
3  * Permission to use, copy, modify, and/or distribute this software for any
4  * purpose with or without fee is hereby granted, provided that the above
5  * copyright notice and this permission notice appear in all copies.
6  *
7  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
8  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
9  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
10  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
11  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
12  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
13  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
14  */
15 
16 /*
17  * DOC: contains MLO manager public file containing setup/teardown functionality
18  */
19 
20 #ifdef WLAN_MLO_MULTI_CHIP
21 /**
22  * mlo_setup_update_total_socs() - API to update total socs for mlo
23  * @tot_socs: Total socs
24  *
25  * Return: None.
26  */
27 void mlo_setup_update_total_socs(uint8_t tot_socs);
28 
29 /**
30  * mlo_setup_update_num_links() - API to update num links in soc for mlo
31  * @soc_id: soc object of SoC corresponding to num_link
32  * @num_links: Number of links in that soc
33  *
34  * Return: None.
35  */
36 void mlo_setup_update_num_links(struct wlan_objmgr_psoc *psoc,
37 				uint8_t num_links);
38 
39 /**
40  * mlo_setup_update_soc_ready() - API to notify when FW init done
41  * @psoc: soc object of SoC ready
42  *
43  * Return: None.
44  */
45 void mlo_setup_update_soc_ready(struct wlan_objmgr_psoc *psoc);
46 
47 /**
48  * mlo_setup_link_ready() - API to notify link ready
49  * @pdev: Pointer to pdev object
50  *
51  * Return: None.
52  */
53 void mlo_setup_link_ready(struct wlan_objmgr_pdev *pdev);
54 
55 /**
56  * mlo_link_setup_complete() - API to notify setup complete
57  * @pdev: Pointer to pdev object
58  *
59  * Return: None.
60  */
61 void mlo_link_setup_complete(struct wlan_objmgr_pdev *pdev);
62 
63 /**
64  * mlo_link_teardown_complete() - API to notify teardown complete
65  * @pdev: Pointer to pdev object
66  *
67  * Return: None.
68  */
69 void mlo_link_teardown_complete(struct wlan_objmgr_pdev *pdev);
70 
71 /**
72  * mlo_link_teardown_link() - API to trigger teardown
73  * @psoc: Pointer to psoc object
74  * @reason: Reason code for MLO tear down
75  *
76  * Return: QDF_STATUS - success / failure.
77  */
78 QDF_STATUS mlo_link_teardown_link(struct wlan_objmgr_psoc *psoc,
79 				  uint32_t reason);
80 #endif
81