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 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 #ifndef _WLAN_TWT_CFG_H 20 #define _WLAN_TWT_CFG_H 21 22 #include <wlan_objmgr_psoc_obj.h> 23 24 #if defined(WLAN_SUPPORT_TWT) && defined(WLAN_TWT_CONV_SUPPORTED) 25 /** 26 * wlan_twt_cfg_init() - Initialize twt config params 27 * @psoc: Pointer to global psoc 28 * 29 * This function initializes the twt private cfg params 30 * 31 * Return: QDF_STATUS 32 */ 33 QDF_STATUS wlan_twt_cfg_init(struct wlan_objmgr_psoc *psoc); 34 35 /** 36 * wlan_twt_cfg_deinit() - De-initialize twt config params 37 * @psoc: Pointer to global psoc 38 * 39 * This function de-initializes the twt private cfg params 40 * 41 * Return: QDF_STATUS 42 */ 43 QDF_STATUS wlan_twt_cfg_deinit(struct wlan_objmgr_psoc *psoc); 44 45 /** 46 * wlan_twt_cfg_update() - Update twt config params 47 * @psoc: Pointer to global psoc 48 * 49 * This function updates the cfg param structure based on the 50 * intersection of target capabilities and other cfg params 51 * 52 * Return: QDF_STATUS 53 */ 54 QDF_STATUS wlan_twt_cfg_update(struct wlan_objmgr_psoc *psoc); 55 56 /** 57 * wlan_twt_cfg_get_requestor() - get cfg requestor 58 * @psoc: Pointer to global psoc 59 * @val: pointer to output variable 60 * 61 * Return: QDF_STATUS 62 */ 63 QDF_STATUS 64 wlan_twt_cfg_get_requestor(struct wlan_objmgr_psoc *psoc, bool *val); 65 66 /** 67 * wlan_twt_cfg_get_responder() - get cfg responder 68 * @psoc: Pointer to global psoc 69 * @val: pointer to output variable 70 * 71 * Return: QDF_STATUS 72 */ 73 QDF_STATUS 74 wlan_twt_cfg_get_responder(struct wlan_objmgr_psoc *psoc, bool *val); 75 76 /** 77 * wlan_twt_cfg_set_responder() - set cfg responder 78 * @psoc: Pointer to global psoc 79 * @val: value to be set 80 * 81 * Return: QDF_STATUS 82 */ 83 QDF_STATUS 84 wlan_twt_cfg_set_responder(struct wlan_objmgr_psoc *psoc, bool val); 85 86 /** 87 * wlan_twt_cfg_is_twt_enabled() - API to check if TWT is enabled 88 * @psoc: Pointer to PSOC object 89 * 90 * Return: True if TWT is enabled else false 91 */ 92 bool wlan_twt_cfg_is_twt_enabled(struct wlan_objmgr_psoc *psoc); 93 94 /** 95 * wlan_twt_cfg_get_congestion_timeout() - get congestion timeout 96 * @psoc: Pointer to global psoc 97 * @val: pointer to output variable 98 * 99 * Return: QDF_STATUS 100 */ 101 QDF_STATUS 102 wlan_twt_cfg_get_congestion_timeout(struct wlan_objmgr_psoc *psoc, 103 uint32_t *val); 104 105 /** 106 * wlan_twt_cfg_set_congestion_timeout() - set congestion timeout 107 * @psoc: Pointer to global psoc 108 * @val: value to be set 109 * 110 * Return: QDF_STATUS 111 */ 112 QDF_STATUS 113 wlan_twt_cfg_set_congestion_timeout(struct wlan_objmgr_psoc *psoc, 114 uint32_t val); 115 116 /** 117 * wlan_twt_cfg_get_requestor_flag() - get requestor flag 118 * @psoc: Pointer to global psoc 119 * @val: pointer to output variable 120 * 121 * Return: QDF_STATUS 122 */ 123 QDF_STATUS 124 wlan_twt_cfg_get_requestor_flag(struct wlan_objmgr_psoc *psoc, bool *val); 125 126 /** 127 * wlan_twt_cfg_set_requestor_flag() - set requestor flag 128 * @psoc: Pointer to global psoc 129 * @val: value to be set 130 * 131 * Return: QDF_STATUS 132 */ 133 QDF_STATUS 134 wlan_twt_cfg_set_requestor_flag(struct wlan_objmgr_psoc *psoc, bool val); 135 136 /** 137 * wlan_twt_cfg_get_responder_flag() - get responder flag 138 * @psoc: Pointer to global psoc 139 * @val: pointer to output variable 140 * 141 * Return: QDF_STATUS 142 */ 143 QDF_STATUS 144 wlan_twt_cfg_get_responder_flag(struct wlan_objmgr_psoc *psoc, bool *val); 145 146 /** 147 * wlan_twt_cfg_set_responder_flag() - set responder flag 148 * @psoc: Pointer to global psoc 149 * @val: value to be set 150 * 151 * Return: QDF_STATUS 152 */ 153 QDF_STATUS 154 wlan_twt_cfg_set_responder_flag(struct wlan_objmgr_psoc *psoc, bool val); 155 156 /** 157 * wlan_twt_cfg_get_flex_sched() - get flex scheduling 158 * @psoc: Pointer to global psoc 159 * @val: pointer to output variable 160 * 161 * Return: QDF_STATUS 162 */ 163 QDF_STATUS 164 wlan_twt_cfg_get_flex_sched(struct wlan_objmgr_psoc *psoc, bool *val); 165 166 /** 167 * wlan_twt_cfg_get_24ghz_enabled() - get 24ghz enable 168 * @psoc: Pointer to global psoc 169 * @val: pointer to output variable 170 * 171 * Return: QDF_STATUS 172 */ 173 QDF_STATUS 174 wlan_twt_cfg_get_24ghz_enabled(struct wlan_objmgr_psoc *psoc, bool *val); 175 176 /** 177 * wlan_twt_cfg_get_bcast_requestor() - get bcast requestor 178 * @psoc: Pointer to global psoc 179 * @val: pointer to output variable 180 * 181 * Return: QDF_STATUS 182 */ 183 QDF_STATUS 184 wlan_twt_cfg_get_bcast_requestor(struct wlan_objmgr_psoc *psoc, bool *val); 185 186 /** 187 * wlan_twt_cfg_get_bcast_responder() - get bcast responder 188 * @psoc: Pointer to global psoc 189 * @val: pointer to output variable 190 * 191 * Return: QDF_STATUS 192 */ 193 QDF_STATUS 194 wlan_twt_cfg_get_bcast_responder(struct wlan_objmgr_psoc *psoc, bool *val); 195 196 /** 197 * wlan_twt_cfg_get_rtwt_requestor() - get rtwt requestor 198 * @psoc: Pointer to global psoc 199 * @val: pointer to output variable 200 * 201 * Return: QDF_STATUS 202 */ 203 QDF_STATUS 204 wlan_twt_cfg_get_rtwt_requestor(struct wlan_objmgr_psoc *psoc, bool *val); 205 206 /** 207 * wlan_twt_cfg_get_rtwt_responder() - get rtwt responder 208 * @psoc: Pointer to global psoc 209 * @val: pointer to output variable 210 * 211 * Return: QDF_STATUS 212 */ 213 QDF_STATUS 214 wlan_twt_cfg_get_rtwt_responder(struct wlan_objmgr_psoc *psoc, bool *val); 215 216 /** 217 * wlan_twt_cfg_get_support_in_11n_mode() - Get TWT support in 11n mode 218 * @psoc: Pointer to global psoc 219 * @val: pointer to output variable 220 * 221 * Return: QDF_STATUS 222 */ 223 QDF_STATUS 224 wlan_twt_cfg_get_support_in_11n_mode(struct wlan_objmgr_psoc *psoc, 225 bool *val); 226 /** 227 * wlan_twt_get_restricted_support() - Get rTWT support 228 * @psoc: Pointer to global psoc 229 * @val: pointer to output variable 230 * 231 * Return: QDF_STATUS 232 */ 233 QDF_STATUS 234 wlan_twt_get_restricted_support(struct wlan_objmgr_psoc *psoc, bool *val); 235 236 /** 237 * wlan_twt_get_pmo_allowed() - Get pmo allowed 238 * @psoc: psoc handler 239 * 240 * Return: True if twt pmo is allowed otherwise false 241 */ 242 bool 243 wlan_twt_get_pmo_allowed(struct wlan_objmgr_psoc *psoc); 244 #else 245 wlan_twt_cfg_init(struct wlan_objmgr_psoc * psoc)246 static inline QDF_STATUS wlan_twt_cfg_init(struct wlan_objmgr_psoc *psoc) 247 { 248 return QDF_STATUS_SUCCESS; 249 } 250 wlan_twt_cfg_deinit(struct wlan_objmgr_psoc * psoc)251 static inline QDF_STATUS wlan_twt_cfg_deinit(struct wlan_objmgr_psoc *psoc) 252 { 253 return QDF_STATUS_SUCCESS; 254 } 255 wlan_twt_cfg_update(struct wlan_objmgr_psoc * psoc)256 static inline QDF_STATUS wlan_twt_cfg_update(struct wlan_objmgr_psoc *psoc) 257 { 258 return QDF_STATUS_SUCCESS; 259 } 260 261 static inline QDF_STATUS wlan_twt_cfg_get_requestor(struct wlan_objmgr_psoc * psoc,bool * val)262 wlan_twt_cfg_get_requestor(struct wlan_objmgr_psoc *psoc, bool *val) 263 { 264 return QDF_STATUS_SUCCESS; 265 } 266 267 static inline QDF_STATUS wlan_twt_cfg_get_responder(struct wlan_objmgr_psoc * psoc,bool * val)268 wlan_twt_cfg_get_responder(struct wlan_objmgr_psoc *psoc, bool *val) 269 { 270 return QDF_STATUS_SUCCESS; 271 } 272 273 static inline QDF_STATUS wlan_twt_cfg_set_responder(struct wlan_objmgr_psoc * psoc,bool val)274 wlan_twt_cfg_set_responder(struct wlan_objmgr_psoc *psoc, bool val) 275 { 276 return QDF_STATUS_SUCCESS; 277 } 278 279 static inline bool wlan_twt_cfg_is_twt_enabled(struct wlan_objmgr_psoc * psoc)280 wlan_twt_cfg_is_twt_enabled(struct wlan_objmgr_psoc *psoc) 281 { 282 return QDF_STATUS_SUCCESS; 283 } 284 285 static inline QDF_STATUS wlan_twt_cfg_get_congestion_timeout(struct wlan_objmgr_psoc * psoc,uint32_t * val)286 wlan_twt_cfg_get_congestion_timeout(struct wlan_objmgr_psoc *psoc, 287 uint32_t *val) 288 { 289 return QDF_STATUS_SUCCESS; 290 } 291 292 static inline QDF_STATUS wlan_twt_cfg_set_congestion_timeout(struct wlan_objmgr_psoc * psoc,uint32_t val)293 wlan_twt_cfg_set_congestion_timeout(struct wlan_objmgr_psoc *psoc, 294 uint32_t val) 295 { 296 return QDF_STATUS_SUCCESS; 297 } 298 299 static inline QDF_STATUS wlan_twt_cfg_get_requestor_flag(struct wlan_objmgr_psoc * psoc,bool * val)300 wlan_twt_cfg_get_requestor_flag(struct wlan_objmgr_psoc *psoc, bool *val) 301 { 302 return QDF_STATUS_SUCCESS; 303 } 304 305 static inline QDF_STATUS wlan_twt_cfg_set_requestor_flag(struct wlan_objmgr_psoc * psoc,bool val)306 wlan_twt_cfg_set_requestor_flag(struct wlan_objmgr_psoc *psoc, bool val) 307 { 308 return QDF_STATUS_SUCCESS; 309 } 310 311 static inline QDF_STATUS wlan_twt_cfg_get_responder_flag(struct wlan_objmgr_psoc * psoc,bool * val)312 wlan_twt_cfg_get_responder_flag(struct wlan_objmgr_psoc *psoc, bool *val) 313 { 314 return QDF_STATUS_SUCCESS; 315 } 316 317 static inline QDF_STATUS wlan_twt_cfg_set_responder_flag(struct wlan_objmgr_psoc * psoc,bool val)318 wlan_twt_cfg_set_responder_flag(struct wlan_objmgr_psoc *psoc, bool val) 319 { 320 return QDF_STATUS_SUCCESS; 321 } 322 323 static inline QDF_STATUS wlan_twt_cfg_get_flex_sched(struct wlan_objmgr_psoc * psoc,bool * val)324 wlan_twt_cfg_get_flex_sched(struct wlan_objmgr_psoc *psoc, bool *val) 325 { 326 return QDF_STATUS_SUCCESS; 327 } 328 329 static inline QDF_STATUS wlan_twt_cfg_get_24ghz_enabled(struct wlan_objmgr_psoc * psoc,bool * val)330 wlan_twt_cfg_get_24ghz_enabled(struct wlan_objmgr_psoc *psoc, bool *val) 331 { 332 return QDF_STATUS_SUCCESS; 333 } 334 335 static inline QDF_STATUS wlan_twt_cfg_get_bcast_requestor(struct wlan_objmgr_psoc * psoc,bool * val)336 wlan_twt_cfg_get_bcast_requestor(struct wlan_objmgr_psoc *psoc, bool *val) 337 { 338 return QDF_STATUS_SUCCESS; 339 } 340 341 static inline QDF_STATUS wlan_twt_cfg_get_bcast_responder(struct wlan_objmgr_psoc * psoc,bool * val)342 wlan_twt_cfg_get_bcast_responder(struct wlan_objmgr_psoc *psoc, bool *val) 343 { 344 return QDF_STATUS_SUCCESS; 345 } 346 347 static inline QDF_STATUS wlan_twt_cfg_get_support_in_11n_mode(struct wlan_objmgr_psoc * psoc,bool * val)348 wlan_twt_cfg_get_support_in_11n_mode(struct wlan_objmgr_psoc *psoc, 349 bool *val) 350 { 351 return QDF_STATUS_SUCCESS; 352 } 353 354 static inline QDF_STATUS wlan_twt_get_restricted_support(struct wlan_objmgr_psoc * psoc,bool * val)355 wlan_twt_get_restricted_support(struct wlan_objmgr_psoc *psoc, bool *val) 356 { 357 return QDF_STATUS_SUCCESS; 358 } 359 360 static inline bool wlan_twt_get_pmo_allowed(struct wlan_objmgr_psoc * psoc)361 wlan_twt_get_pmo_allowed(struct wlan_objmgr_psoc *psoc) 362 { 363 return true; 364 } 365 #endif 366 367 #endif /* End of _WLAN_TWT_CFG_H */ 368