xref: /wlan-dirver/qca-wifi-host-cmn/target_if/twt/inc/target_if_twt.h (revision 901120c066e139c7f8a2c8e4820561fdd83c67ef)
1 /*
2  * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
3  *
4  * Permission to use, copy, modify, and/or distribute this software for
5  * any purpose with or without fee is hereby granted, provided that the
6  * above copyright notice and this permission notice appear in all
7  * copies.
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
10  * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
11  * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
12  * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
13  * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
14  * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
15  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
16  * PERFORMANCE OF THIS SOFTWARE.
17  */
18 
19 /**
20  * DOC: target_if_twt.h
21  */
22 
23 #ifndef _TARGET_IF_TWT_H_
24 #define _TARGET_IF_TWT_H_
25 
26 #include <wmi_unified_param.h>
27 #include <wlan_lmac_if_def.h>
28 #include <target_if.h>
29 #include <wlan_twt_public_structs.h>
30 
31 #if defined(WLAN_SUPPORT_TWT) && defined(WLAN_TWT_CONV_SUPPORTED)
32 /**
33  * target_if_twt_set_twt_ack_support() - set ack support
34  * @psoc: psoc handle
35  * @val: value
36  *
37  * return: QDF_STATUS
38  */
39 QDF_STATUS
40 target_if_twt_set_twt_ack_support(struct wlan_objmgr_psoc *psoc,
41 				  bool val);
42 
43 /**
44  * target_if_twt_fill_tgt_caps() - fill twt target caps
45  * @psoc: psoc handle
46  * @wmi_handle: wmi handle
47  *
48  * This function populates twt target capability info in twt private psoc object
49  *
50  * return: QDF_STATUS
51  */
52 QDF_STATUS
53 target_if_twt_fill_tgt_caps(struct wlan_objmgr_psoc *psoc,
54 			    wmi_unified_t wmi_handle);
55 
56 /**
57  * target_if_twt_register_tx_ops() - Register twt tx ops
58  * @tx_ops: tx_ops structure
59  *
60  * return: QDF_STATUS
61  */
62 QDF_STATUS
63 target_if_twt_register_tx_ops(struct wlan_lmac_if_tx_ops *tx_ops);
64 
65 /**
66  * target_if_twt_register_events() - Register twt wmi events
67  * @psoc: psoc handle
68  *
69  * Register TWT WMI events
70  *
71  * return: QDF_STATUS
72  */
73 QDF_STATUS
74 target_if_twt_register_events(struct wlan_objmgr_psoc *psoc);
75 
76 /**
77  * target_if_twt_deregister_events() - De-register twt wmi events
78  * @psoc: psoc handle
79  *
80  * De-register TWT WMI events
81  *
82  * return: QDF_STATUS
83  */
84 QDF_STATUS
85 target_if_twt_deregister_events(struct wlan_objmgr_psoc *psoc);
86 
87 #else
88 static inline
89 QDF_STATUS target_if_twt_set_twt_ack_support(struct wlan_objmgr_psoc *psoc,
90 					     bool val)
91 {
92 	return QDF_STATUS_SUCCESS;
93 }
94 
95 static inline
96 QDF_STATUS target_if_twt_fill_tgt_caps(struct wlan_objmgr_psoc *psoc,
97 				       wmi_unified_t wmi_handle)
98 {
99 	return QDF_STATUS_SUCCESS;
100 }
101 
102 static inline
103 QDF_STATUS target_if_twt_register_tx_ops(struct wlan_lmac_if_tx_ops *tx_ops)
104 {
105 	return QDF_STATUS_SUCCESS;
106 }
107 
108 static inline
109 QDF_STATUS target_if_twt_register_events(struct wlan_objmgr_psoc *psoc)
110 {
111 	return QDF_STATUS_SUCCESS;
112 }
113 
114 static inline
115 QDF_STATUS target_if_twt_deregister_events(struct wlan_objmgr_psoc *psoc)
116 {
117 	return QDF_STATUS_SUCCESS;
118 }
119 
120 #endif
121 #endif /* _TARGET_IF_TWT_H_ */
122