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 #include <wlan_twt_cfg_ext_api.h>
19 #include "twt/core/src/wlan_twt_cfg.h"
20 #include "wlan_mlme_api.h"
21
22 QDF_STATUS
wlan_twt_cfg_get_req_flag(struct wlan_objmgr_psoc * psoc,bool * val)23 wlan_twt_cfg_get_req_flag(struct wlan_objmgr_psoc *psoc, bool *val)
24 {
25 return wlan_twt_cfg_get_requestor_flag(psoc, val);
26 }
27
28 QDF_STATUS
wlan_twt_cfg_get_res_flag(struct wlan_objmgr_psoc * psoc,bool * val)29 wlan_twt_cfg_get_res_flag(struct wlan_objmgr_psoc *psoc, bool *val)
30 {
31 return wlan_twt_cfg_get_responder_flag(psoc, val);
32 }
33
34 QDF_STATUS
wlan_twt_cfg_get_support_in_11n(struct wlan_objmgr_psoc * psoc,bool * val)35 wlan_twt_cfg_get_support_in_11n(struct wlan_objmgr_psoc *psoc, bool *val)
36 {
37 return wlan_twt_cfg_get_support_in_11n_mode(psoc, val);
38 }
39
40 QDF_STATUS
wlan_twt_get_requestor_cfg(struct wlan_objmgr_psoc * psoc,bool * val)41 wlan_twt_get_requestor_cfg(struct wlan_objmgr_psoc *psoc, bool *val)
42 {
43 return wlan_twt_cfg_get_requestor(psoc, val);
44 }
45
46 QDF_STATUS
wlan_twt_get_responder_cfg(struct wlan_objmgr_psoc * psoc,bool * val)47 wlan_twt_get_responder_cfg(struct wlan_objmgr_psoc *psoc, bool *val)
48 {
49 return wlan_twt_cfg_get_responder(psoc, val);
50 }
51
52 QDF_STATUS
wlan_twt_cfg_get_support_requestor(struct wlan_objmgr_psoc * psoc,bool * val)53 wlan_twt_cfg_get_support_requestor(struct wlan_objmgr_psoc *psoc, bool *val)
54 {
55 return wlan_twt_cfg_get_requestor(psoc, val);
56 }
57
58 QDF_STATUS
wlan_twt_get_rtwt_support(struct wlan_objmgr_psoc * psoc,bool * val)59 wlan_twt_get_rtwt_support(struct wlan_objmgr_psoc *psoc, bool *val)
60 {
61 return wlan_twt_get_restricted_support(psoc, val);
62 }
63
64 QDF_STATUS
wlan_twt_get_bcast_requestor_cfg(struct wlan_objmgr_psoc * psoc,bool * val)65 wlan_twt_get_bcast_requestor_cfg(struct wlan_objmgr_psoc *psoc, bool *val)
66 {
67 return wlan_twt_cfg_get_bcast_requestor(psoc, val);
68 }
69
70 QDF_STATUS
wlan_twt_get_bcast_responder_cfg(struct wlan_objmgr_psoc * psoc,bool * val)71 wlan_twt_get_bcast_responder_cfg(struct wlan_objmgr_psoc *psoc, bool *val)
72 {
73 return wlan_twt_cfg_get_bcast_responder(psoc, val);
74 }
75
76 #ifdef FEATURE_SET
wlan_twt_get_feature_info(struct wlan_objmgr_psoc * psoc,struct wlan_twt_features * twt_feature_set)77 void wlan_twt_get_feature_info(struct wlan_objmgr_psoc *psoc,
78 struct wlan_twt_features *twt_feature_set)
79 {
80 twt_feature_set->enable_twt = wlan_twt_cfg_is_twt_enabled(psoc);
81 if (twt_feature_set->enable_twt) {
82 wlan_twt_cfg_get_bcast_requestor(
83 psoc,
84 &twt_feature_set->enable_twt_broadcast);
85 wlan_twt_cfg_get_requestor(
86 psoc,
87 &twt_feature_set->enable_twt_requester);
88 twt_feature_set->enable_twt_flexible = true;
89 }
90 }
91 #endif
92