1 /* 2 * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved. 3 * 4 * Permission to use, copy, modify, and/or distribute this software for any 5 * purpose with or without fee is hereby granted, provided that the above 6 * copyright notice and this permission notice appear in all copies. 7 * 8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 11 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 12 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 13 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 14 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15 */ 16 17 /** 18 * DOC: wlan_twt_common.h 19 */ 20 #include <wlan_twt_api.h> 21 #include <wlan_objmgr_psoc_obj.h> 22 #include <wlan_twt_public_structs.h> 23 24 /** 25 * wlan_twt_tgt_caps_get_responder() - twt get responder 26 * @psoc: psoc handle 27 * @val: pointer to the output variable 28 * 29 * return: QDF_STATUS 30 */ 31 QDF_STATUS 32 wlan_twt_tgt_caps_get_responder(struct wlan_objmgr_psoc *psoc, bool *val); 33 34 /** 35 * wlan_twt_tgt_caps_get_bcast_req_support() - get bcast requestor support 36 * @psoc: psoc handle 37 * @val: pointer to the output variable 38 * 39 * return: QDF_STATUS 40 */ 41 QDF_STATUS 42 wlan_twt_tgt_caps_get_bcast_req_support(struct wlan_objmgr_psoc *psoc, 43 bool *val); 44 45 /** 46 * wlan_twt_tgt_caps_get_nudge_enabled() - get nudge enabled 47 * @psoc: psoc handle 48 * @val: pointer to the output variable 49 * 50 * return: QDF_STATUS 51 */ 52 QDF_STATUS 53 wlan_twt_tgt_caps_get_nudge_enabled(struct wlan_objmgr_psoc *psoc, 54 bool *val); 55 56 /** 57 * wlan_twt_tgt_caps_get_all_twt_enabled() - get all twt enabled 58 * @psoc: psoc handle 59 * @val: pointer to the output variable 60 * 61 * return: QDF_STATUS 62 */ 63 QDF_STATUS 64 wlan_twt_tgt_caps_get_all_twt_enabled(struct wlan_objmgr_psoc *psoc, 65 bool *val); 66 67 /** 68 * wlan_twt_tgt_caps_get_stats_enabled() - get twt stats enabled 69 * @psoc: psoc handle 70 * @val: pointer to the output variable 71 * 72 * return: QDF_STATUS 73 */ 74 QDF_STATUS 75 wlan_twt_tgt_caps_get_stats_enabled(struct wlan_objmgr_psoc *psoc, 76 bool *val); 77 78 /** 79 * wlan_twt_tgt_caps_get_ack_supported() - get twt ack supported 80 * @psoc: psoc handle 81 * @val: pointer to the output variable 82 * 83 * return: QDF_STATUS 84 */ 85 QDF_STATUS 86 wlan_twt_tgt_caps_get_ack_supported(struct wlan_objmgr_psoc *psoc, 87 bool *val); 88 89 /** 90 * wlan_twt_check_all_twt_support() - Check if all TWT sessions capability is 91 * supported or not 92 * @psoc: Pointer to psoc object 93 * @dialog_id: dialod id 94 * 95 * Return: QDF Status 96 */ 97 QDF_STATUS wlan_twt_check_all_twt_support(struct wlan_objmgr_psoc *psoc, 98 uint32_t dialog_id); 99 100 /** 101 * wlan_twt_requestor_disable() - twt requestor disable 102 * @psoc: psoc handle 103 * @req: twt disable request structure 104 * @context: context 105 * 106 * return: QDF_STATUS 107 */ 108 QDF_STATUS 109 wlan_twt_requestor_disable(struct wlan_objmgr_psoc *psoc, 110 struct twt_disable_param *req, 111 void *context); 112 113 /** 114 * wlan_twt_responder_disable() - twt responder disable 115 * @psoc: psoc handle 116 * @req: twt disable request structure 117 * @context: context 118 * 119 * return: QDF_STATUS 120 */ 121 QDF_STATUS 122 wlan_twt_responder_disable(struct wlan_objmgr_psoc *psoc, 123 struct twt_disable_param *req, 124 void *context); 125 126 /** 127 * wlan_twt_requestor_enable() - twt requestor enable 128 * @psoc: psoc handle 129 * @req: twt enable request structure 130 * @context: context 131 * 132 * return: QDF_STATUS 133 */ 134 QDF_STATUS 135 wlan_twt_requestor_enable(struct wlan_objmgr_psoc *psoc, 136 struct twt_enable_param *req, 137 void *context); 138 139 /** 140 * wlan_twt_responder_enable() - twt responder enable 141 * @psoc: psoc handle 142 * @req: twt enable request structure 143 * @context: context 144 * 145 * return: QDF_STATUS 146 */ 147 QDF_STATUS 148 wlan_twt_responder_enable(struct wlan_objmgr_psoc *psoc, 149 struct twt_enable_param *req, 150 void *context); 151 152 /** 153 * wlan_twt_set_peer_capabilities() - set twt peer capabilities 154 * @psoc: psoc handle 155 * @peer_mac: peer mac address 156 * @peer_cap: TWT peer capability bitmap. Refer enum 157 * wlan_twt_capabilities for representation. 158 * 159 * return: QDF_STATUS 160 */ 161 QDF_STATUS 162 wlan_twt_set_peer_capabilities(struct wlan_objmgr_psoc *psoc, 163 struct qdf_mac_addr *peer_mac, 164 uint8_t peer_cap); 165 166 /** 167 * wlan_twt_get_peer_capabilities() - get twt peer capabilities 168 * @psoc: psoc handle 169 * @peer_mac: peer mac address 170 * @peer_cap: Pointer to output variable to hold TWT peer capability bitmap. 171 * Refer enum wlan_twt_capabilities for representation. 172 * 173 * return: QDF_STATUS 174 */ 175 QDF_STATUS 176 wlan_twt_get_peer_capabilities(struct wlan_objmgr_psoc *psoc, 177 struct qdf_mac_addr *peer_mac, 178 uint8_t *peer_cap); 179 180 /** 181 * wlan_twt_enable_event_handler() - twt enable handler 182 * @psoc: psoc handle 183 * @event: twt enable event structure 184 * 185 * return: QDF_STATUS 186 */ 187 QDF_STATUS 188 wlan_twt_enable_event_handler(struct wlan_objmgr_psoc *psoc, 189 struct twt_enable_complete_event_param *event); 190 191 /** 192 * wlan_twt_disable_event_handler() - twt disable handler 193 * @psoc: psoc handle 194 * @event: twt disable event structure 195 * 196 * return: QDF_STATUS 197 */ 198 QDF_STATUS 199 wlan_twt_disable_event_handler(struct wlan_objmgr_psoc *psoc, 200 struct twt_disable_complete_event_param *event); 201 202 /** 203 * wlan_twt_tgt_caps_get_restricted_support() - Get tgt restricted-twt 204 * support caps 205 * @psoc: psoc handle 206 * @val: pointer to get caps enabled/disabled 207 * 208 * return: QDF_STATUS 209 */ 210 QDF_STATUS 211 wlan_twt_tgt_caps_get_restricted_support(struct wlan_objmgr_psoc *psoc, 212 bool *val); 213