xref: /wlan-driver/qcacld-3.0/components/mlme/dispatcher/inc/wlan_mlme_api.h (revision 5113495b16420b49004c444715d2daae2066e7dc)
1*5113495bSYour Name /*
2*5113495bSYour Name  * Copyright (c) 2018-2021 The Linux Foundation. All rights reserved.
3*5113495bSYour Name  * Copyright (c) 2021-2024 Qualcomm Innovation Center, Inc. All rights reserved.
4*5113495bSYour Name  *
5*5113495bSYour Name  * Permission to use, copy, modify, and/or distribute this software for
6*5113495bSYour Name  * any purpose with or without fee is hereby granted, provided that the
7*5113495bSYour Name  * above copyright notice and this permission notice appear in all
8*5113495bSYour Name  * copies.
9*5113495bSYour Name  *
10*5113495bSYour Name  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
11*5113495bSYour Name  * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
12*5113495bSYour Name  * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
13*5113495bSYour Name  * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
14*5113495bSYour Name  * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
15*5113495bSYour Name  * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
16*5113495bSYour Name  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
17*5113495bSYour Name  * PERFORMANCE OF THIS SOFTWARE.
18*5113495bSYour Name  */
19*5113495bSYour Name /**
20*5113495bSYour Name  * DOC: declare public APIs exposed by the mlme component
21*5113495bSYour Name  */
22*5113495bSYour Name 
23*5113495bSYour Name #ifndef _WLAN_MLME_API_H_
24*5113495bSYour Name #define _WLAN_MLME_API_H_
25*5113495bSYour Name 
26*5113495bSYour Name #include <wlan_mlme_public_struct.h>
27*5113495bSYour Name #include <wlan_objmgr_psoc_obj.h>
28*5113495bSYour Name #include <wlan_cmn.h>
29*5113495bSYour Name #include "sme_api.h"
30*5113495bSYour Name 
31*5113495bSYour Name #define DISABLE_MCS_12_13_2G_40M 1
32*5113495bSYour Name 
33*5113495bSYour Name #define ASSEMBLE_RATECODE_V1(_pream, _nss, _rate) \
34*5113495bSYour Name 		(((1) << 28) | ((_pream) << 8) | ((_nss) << 5) | (_rate))
35*5113495bSYour Name 
36*5113495bSYour Name /* This macro is used to extract the rate from the rate_code as first four bits
37*5113495bSYour Name  * in rate_code represents the rate, next 3 bits represents the nss and
38*5113495bSYour Name  * next 2 bits represents preamble.
39*5113495bSYour Name  */
40*5113495bSYour Name #define RATECODE_V1_RIX_MASK    0xf
41*5113495bSYour Name 
42*5113495bSYour Name /* This macro is used to extract preamble from the rate_code as first 4 bits
43*5113495bSYour Name  * in rate_code represents the rate, next 3 bits represents the nss and
44*5113495bSYour Name  * next 2 bits represents preamble.
45*5113495bSYour Name  */
46*5113495bSYour Name #define RATECODE_V1_PREAMBLE_OFFSET (4 + 3)
47*5113495bSYour Name 
48*5113495bSYour Name /* This macro is used to extract NSS from the rate_code as first 4 bits
49*5113495bSYour Name  * in rate_code represents the rate, next 3 bits represents the NSS and
50*5113495bSYour Name  * next 2 bits represents preamble.
51*5113495bSYour Name  */
52*5113495bSYour Name #define RATECODE_V1_NSS_OFFSET  0x4
53*5113495bSYour Name #define RATECODE_V1_NSS_MASK    0x7
54*5113495bSYour Name 
55*5113495bSYour Name #ifdef FEATURE_SET
56*5113495bSYour Name /**
57*5113495bSYour Name  * wlan_mlme_get_feature_info() - Get mlme features
58*5113495bSYour Name  * @psoc: psoc context
59*5113495bSYour Name  * @mlme_feature_set: MLME feature set info structure
60*5113495bSYour Name  *
61*5113495bSYour Name  * Return: None
62*5113495bSYour Name  */
63*5113495bSYour Name void wlan_mlme_get_feature_info(
64*5113495bSYour Name 				struct wlan_objmgr_psoc *psoc,
65*5113495bSYour Name 				struct wlan_mlme_features *mlme_feature_set);
66*5113495bSYour Name #endif
67*5113495bSYour Name 
68*5113495bSYour Name /**
69*5113495bSYour Name  * wlan_mlme_get_cfg_str() - Copy the uint8_t array for a particular CFG
70*5113495bSYour Name  * @dst:       pointer to the destination buffer.
71*5113495bSYour Name  * @cfg_str:   pointer to the cfg string structure
72*5113495bSYour Name  * @len:       length to be copied
73*5113495bSYour Name  *
74*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS or QDF_STATUS_E_FAILURE
75*5113495bSYour Name  */
76*5113495bSYour Name QDF_STATUS wlan_mlme_get_cfg_str(uint8_t *dst, struct mlme_cfg_str *cfg_str,
77*5113495bSYour Name 				 qdf_size_t *len);
78*5113495bSYour Name 
79*5113495bSYour Name /**
80*5113495bSYour Name  * wlan_mlme_set_cfg_str() - Set values for a particular CFG
81*5113495bSYour Name  * @src:            pointer to the source buffer.
82*5113495bSYour Name  * @dst_cfg_str:    pointer to the cfg string structure to be modified
83*5113495bSYour Name  * @len:            length to be written
84*5113495bSYour Name  *
85*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS or QDF_STATUS_E_FAILURE
86*5113495bSYour Name  */
87*5113495bSYour Name QDF_STATUS wlan_mlme_set_cfg_str(uint8_t *src, struct mlme_cfg_str *dst_cfg_str,
88*5113495bSYour Name 				 qdf_size_t len);
89*5113495bSYour Name 
90*5113495bSYour Name /**
91*5113495bSYour Name  * wlan_mlme_get_edca_params() - get the EDCA parameters corresponding to the
92*5113495bSYour Name  * edca profile access category
93*5113495bSYour Name  * @edca_params:   pointer to mlme edca parameters structure
94*5113495bSYour Name  * @data:          data to which the parameter is to be copied
95*5113495bSYour Name  * @edca_ac:       edca ac type enum passed to get the cfg value
96*5113495bSYour Name  *
97*5113495bSYour Name  * Return QDF_STATUS_SUCCESS or QDF_STATUS_E_FAILURE
98*5113495bSYour Name  *
99*5113495bSYour Name  */
100*5113495bSYour Name QDF_STATUS wlan_mlme_get_edca_params(struct wlan_mlme_edca_params *edca_params,
101*5113495bSYour Name 				     uint8_t *data, enum e_edca_type edca_ac);
102*5113495bSYour Name 
103*5113495bSYour Name /**
104*5113495bSYour Name  * wlan_mlme_update_cfg_with_tgt_caps() - Update mlme cfg with tgt caps
105*5113495bSYour Name  * @psoc: pointer to psoc object
106*5113495bSYour Name  * @tgt_caps:  Pointer to the mlme related capability structure
107*5113495bSYour Name  *
108*5113495bSYour Name  * Return: None
109*5113495bSYour Name  */
110*5113495bSYour Name void
111*5113495bSYour Name wlan_mlme_update_cfg_with_tgt_caps(struct wlan_objmgr_psoc *psoc,
112*5113495bSYour Name 				   struct mlme_tgt_caps *tgt_caps);
113*5113495bSYour Name 
114*5113495bSYour Name /**
115*5113495bSYour Name  * wlan_mlme_update_aux_dev_caps() - Update mlme aux capability
116*5113495bSYour Name  * @psoc: pointer to psoc object
117*5113495bSYour Name  * @wlan_mlme_aux_dev_caps:  array for aux dev capability
118*5113495bSYour Name  *
119*5113495bSYour Name  * Return: None
120*5113495bSYour Name  */
121*5113495bSYour Name 
122*5113495bSYour Name void
123*5113495bSYour Name wlan_mlme_update_aux_dev_caps(struct wlan_objmgr_psoc *psoc,
124*5113495bSYour Name 			      struct wlan_mlme_aux_dev_caps
125*5113495bSYour Name 			      wlan_mlme_aux_dev_caps[]);
126*5113495bSYour Name 
127*5113495bSYour Name /*
128*5113495bSYour Name  * mlme_get_wep_key() - get the wep key to process during auth frame
129*5113495bSYour Name  * @vdev: VDEV object for which the wep key is being requested
130*5113495bSYour Name  * @wep_params: cfg wep parameters structure
131*5113495bSYour Name  * @wep_key_id: default key number
132*5113495bSYour Name  * @default_key: default key to be copied
133*5113495bSYour Name  * @key_len: length of the key to copy
134*5113495bSYour Name  *
135*5113495bSYour Name  * Return QDF_STATUS
136*5113495bSYour Name  */
137*5113495bSYour Name QDF_STATUS mlme_get_wep_key(struct wlan_objmgr_vdev *vdev,
138*5113495bSYour Name 			    struct wlan_mlme_wep_cfg *wep_params,
139*5113495bSYour Name 			    enum wep_key_id wep_keyid, uint8_t *default_key,
140*5113495bSYour Name 			    qdf_size_t *key_len);
141*5113495bSYour Name 
142*5113495bSYour Name /**
143*5113495bSYour Name  * wlan_mlme_get_tx_power() - Get the max tx power in particular band
144*5113495bSYour Name  * @psoc: pointer to psoc object
145*5113495bSYour Name  * @band: 2ghz/5ghz band
146*5113495bSYour Name  *
147*5113495bSYour Name  * Return: value of tx power in the respective band
148*5113495bSYour Name  */
149*5113495bSYour Name uint8_t wlan_mlme_get_tx_power(struct wlan_objmgr_psoc *psoc,
150*5113495bSYour Name 			       enum band_info band);
151*5113495bSYour Name 
152*5113495bSYour Name /**
153*5113495bSYour Name  * wlan_mlme_get_power_usage() - Get the power usage info
154*5113495bSYour Name  * @psoc: pointer to psoc object
155*5113495bSYour Name  *
156*5113495bSYour Name  * Return: pointer to character array of power usage
157*5113495bSYour Name  */
158*5113495bSYour Name char *wlan_mlme_get_power_usage(struct wlan_objmgr_psoc *psoc);
159*5113495bSYour Name 
160*5113495bSYour Name /**
161*5113495bSYour Name  * wlan_mlme_get_enable_deauth_to_disassoc_map() - Get the deauth to disassoc
162*5113495bSYour Name  * map
163*5113495bSYour Name  * @psoc: pointer to psoc object
164*5113495bSYour Name  * @value: pointer to the value which will be filled for the caller
165*5113495bSYour Name  *
166*5113495bSYour Name  * Return: QDF Status
167*5113495bSYour Name  */
168*5113495bSYour Name QDF_STATUS
169*5113495bSYour Name wlan_mlme_get_enable_deauth_to_disassoc_map(struct wlan_objmgr_psoc *psoc,
170*5113495bSYour Name 					    bool *value);
171*5113495bSYour Name 
172*5113495bSYour Name /**
173*5113495bSYour Name  * wlan_mlme_get_ht_cap_info() - Get the HT cap info config
174*5113495bSYour Name  * @psoc: pointer to psoc object
175*5113495bSYour Name  * @ht_cap_info: pointer to the value which will be filled for the caller
176*5113495bSYour Name  *
177*5113495bSYour Name  * Return: QDF Status
178*5113495bSYour Name  */
179*5113495bSYour Name QDF_STATUS wlan_mlme_get_ht_cap_info(struct wlan_objmgr_psoc *psoc,
180*5113495bSYour Name 				     struct mlme_ht_capabilities_info
181*5113495bSYour Name 				     *ht_cap_info);
182*5113495bSYour Name 
183*5113495bSYour Name /**
184*5113495bSYour Name  * wlan_mlme_get_manufacturer_name() - get manufacturer name
185*5113495bSYour Name  * @psoc: pointer to psoc object
186*5113495bSYour Name  * @pbuf: pointer of the buff which will be filled for the caller
187*5113495bSYour Name  * @plen: pointer of max buffer length
188*5113495bSYour Name  *        actual length will be returned at this address
189*5113495bSYour Name  * This function gets manufacturer name
190*5113495bSYour Name  *
191*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS - in case of success
192*5113495bSYour Name  */
193*5113495bSYour Name QDF_STATUS
194*5113495bSYour Name wlan_mlme_get_manufacturer_name(struct wlan_objmgr_psoc *psoc,
195*5113495bSYour Name 				uint8_t *pbuf, uint32_t *plen);
196*5113495bSYour Name 
197*5113495bSYour Name /**
198*5113495bSYour Name  * wlan_mlme_get_model_number() - get model number
199*5113495bSYour Name  * @psoc: pointer to psoc object
200*5113495bSYour Name  * @pbuf: pointer of the buff which will be filled for the caller
201*5113495bSYour Name  * @plen: pointer of max buffer length
202*5113495bSYour Name  *        actual length will be returned at this address
203*5113495bSYour Name  * This function gets model number
204*5113495bSYour Name  *
205*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS - in case of success
206*5113495bSYour Name  */
207*5113495bSYour Name QDF_STATUS
208*5113495bSYour Name wlan_mlme_get_model_number(struct wlan_objmgr_psoc *psoc,
209*5113495bSYour Name 			   uint8_t *pbuf, uint32_t *plen);
210*5113495bSYour Name 
211*5113495bSYour Name /**
212*5113495bSYour Name  * wlan_mlme_get_model_name() - get model name
213*5113495bSYour Name  * @psoc: pointer to psoc object
214*5113495bSYour Name  * @pbuf: pointer of the buff which will be filled for the caller
215*5113495bSYour Name  * @plen: pointer of max buffer length
216*5113495bSYour Name  *        actual length will be returned at this address
217*5113495bSYour Name  * This function gets model name
218*5113495bSYour Name  *
219*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS - in case of success
220*5113495bSYour Name  */
221*5113495bSYour Name QDF_STATUS
222*5113495bSYour Name wlan_mlme_get_model_name(struct wlan_objmgr_psoc *psoc,
223*5113495bSYour Name 			 uint8_t *pbuf, uint32_t *plen);
224*5113495bSYour Name 
225*5113495bSYour Name /**
226*5113495bSYour Name  * wlan_mlme_get_manufacture_product_name() - get manufacture product name
227*5113495bSYour Name  * @psoc: pointer to psoc object
228*5113495bSYour Name  * @pbuf: pointer of the buff which will be filled for the caller
229*5113495bSYour Name  * @plen: pointer of max buffer length
230*5113495bSYour Name  *        actual length will be returned at this address
231*5113495bSYour Name  * This function gets manufacture product name
232*5113495bSYour Name  *
233*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS - in case of success
234*5113495bSYour Name  */
235*5113495bSYour Name QDF_STATUS
236*5113495bSYour Name wlan_mlme_get_manufacture_product_name(struct wlan_objmgr_psoc *psoc,
237*5113495bSYour Name 				       uint8_t *pbuf, uint32_t *plen);
238*5113495bSYour Name 
239*5113495bSYour Name /**
240*5113495bSYour Name  * wlan_mlme_get_manufacture_product_version() - get manufacture product version
241*5113495bSYour Name  * @psoc: pointer to psoc object
242*5113495bSYour Name  * @pbuf: pointer of the buff which will be filled for the caller
243*5113495bSYour Name  * @plen: pointer of max buffer length
244*5113495bSYour Name  *        actual length will be returned at this address
245*5113495bSYour Name  * This function gets manufacture product version
246*5113495bSYour Name  *
247*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS - in case of success
248*5113495bSYour Name  */
249*5113495bSYour Name QDF_STATUS
250*5113495bSYour Name wlan_mlme_get_manufacture_product_version(struct wlan_objmgr_psoc *psoc,
251*5113495bSYour Name 					  uint8_t *pbuf, uint32_t *plen);
252*5113495bSYour Name 
253*5113495bSYour Name /**
254*5113495bSYour Name  * wlan_mlme_set_ht_cap_info() - Set the HT cap info config
255*5113495bSYour Name  * @psoc: pointer to psoc object
256*5113495bSYour Name  * @ht_cap_info: Value that needs to be set from the caller
257*5113495bSYour Name  *
258*5113495bSYour Name  * Return: QDF Status
259*5113495bSYour Name  */
260*5113495bSYour Name QDF_STATUS wlan_mlme_set_ht_cap_info(struct wlan_objmgr_psoc *psoc,
261*5113495bSYour Name 				     struct mlme_ht_capabilities_info
262*5113495bSYour Name 				     ht_cap_info);
263*5113495bSYour Name 
264*5113495bSYour Name /**
265*5113495bSYour Name  * wlan_mlme_get_max_amsdu_num() - get the max amsdu num
266*5113495bSYour Name  * @psoc: pointer to psoc object
267*5113495bSYour Name  * @value: pointer to the value where the max_amsdu num is to be filled
268*5113495bSYour Name  *
269*5113495bSYour Name  * Return: QDF_STATUS
270*5113495bSYour Name  */
271*5113495bSYour Name QDF_STATUS wlan_mlme_get_max_amsdu_num(struct wlan_objmgr_psoc *psoc,
272*5113495bSYour Name 				       uint8_t *value);
273*5113495bSYour Name 
274*5113495bSYour Name /**
275*5113495bSYour Name  * wlan_mlme_set_max_amsdu_num() - set the max amsdu num
276*5113495bSYour Name  * @psoc: pointer to psoc object
277*5113495bSYour Name  * @value: value to be set for max_amsdu_num
278*5113495bSYour Name  *
279*5113495bSYour Name  * Return: QDF_STATUS
280*5113495bSYour Name  */
281*5113495bSYour Name QDF_STATUS wlan_mlme_set_max_amsdu_num(struct wlan_objmgr_psoc *psoc,
282*5113495bSYour Name 				       uint8_t value);
283*5113495bSYour Name 
284*5113495bSYour Name /**
285*5113495bSYour Name  * wlan_mlme_get_ht_mpdu_density() - get the ht mpdu density
286*5113495bSYour Name  * @psoc: pointer to psoc object
287*5113495bSYour Name  * @value: pointer to the value where the ht mpdu density is to be filled
288*5113495bSYour Name  *
289*5113495bSYour Name  * Return: QDF_STATUS
290*5113495bSYour Name  */
291*5113495bSYour Name QDF_STATUS wlan_mlme_get_ht_mpdu_density(struct wlan_objmgr_psoc *psoc,
292*5113495bSYour Name 					 uint8_t *value);
293*5113495bSYour Name 
294*5113495bSYour Name /**
295*5113495bSYour Name  * wlan_mlme_set_ht_mpdu_density() - set the ht mpdu density
296*5113495bSYour Name  * @psoc: pointer to psoc object
297*5113495bSYour Name  * @value: value to be set for ht mpdu density
298*5113495bSYour Name  *
299*5113495bSYour Name  * Return: QDF_STATUS
300*5113495bSYour Name  */
301*5113495bSYour Name QDF_STATUS wlan_mlme_set_ht_mpdu_density(struct wlan_objmgr_psoc *psoc,
302*5113495bSYour Name 					 uint8_t value);
303*5113495bSYour Name 
304*5113495bSYour Name /**
305*5113495bSYour Name  * wlan_mlme_get_band_capability() - Get the Band capability config
306*5113495bSYour Name  * @psoc: pointer to psoc object
307*5113495bSYour Name  * @band_capability: Pointer to the variable from caller
308*5113495bSYour Name  *
309*5113495bSYour Name  * Return: QDF Status
310*5113495bSYour Name  */
311*5113495bSYour Name QDF_STATUS wlan_mlme_get_band_capability(struct wlan_objmgr_psoc *psoc,
312*5113495bSYour Name 					 uint32_t *band_capability);
313*5113495bSYour Name 
314*5113495bSYour Name #ifdef QCA_MULTIPASS_SUPPORT
315*5113495bSYour Name /**
316*5113495bSYour Name  * wlan_mlme_peer_config_vlan() - send vlan id to FW for RX path
317*5113495bSYour Name  * @vdev: vdev pointer
318*5113495bSYour Name  * @mac_addr: mac address of the peer
319*5113495bSYour Name  *
320*5113495bSYour Name  * Return: QDF_STATUS
321*5113495bSYour Name  */
322*5113495bSYour Name QDF_STATUS
323*5113495bSYour Name wlan_mlme_peer_config_vlan(struct wlan_objmgr_vdev *vdev,
324*5113495bSYour Name 			   uint8_t *mac_addr);
325*5113495bSYour Name #else
326*5113495bSYour Name static inline QDF_STATUS
wlan_mlme_peer_config_vlan(struct wlan_objmgr_vdev * vdev,uint8_t * mac_addr)327*5113495bSYour Name wlan_mlme_peer_config_vlan(struct wlan_objmgr_vdev *vdev,
328*5113495bSYour Name 			   uint8_t *mac_addr)
329*5113495bSYour Name {
330*5113495bSYour Name 	return QDF_STATUS_SUCCESS;
331*5113495bSYour Name }
332*5113495bSYour Name #endif
333*5113495bSYour Name #ifdef MULTI_CLIENT_LL_SUPPORT
334*5113495bSYour Name /**
335*5113495bSYour Name  * wlan_mlme_get_wlm_multi_client_ll_caps() - Get the wlm multi client latency
336*5113495bSYour Name  * level capability flag
337*5113495bSYour Name  * @psoc: pointer to psoc object
338*5113495bSYour Name  *
339*5113495bSYour Name  * Return: True is multi client ll cap present
340*5113495bSYour Name  */
341*5113495bSYour Name bool wlan_mlme_get_wlm_multi_client_ll_caps(struct wlan_objmgr_psoc *psoc);
342*5113495bSYour Name #else
343*5113495bSYour Name static inline bool
wlan_mlme_get_wlm_multi_client_ll_caps(struct wlan_objmgr_psoc * psoc)344*5113495bSYour Name wlan_mlme_get_wlm_multi_client_ll_caps(struct wlan_objmgr_psoc *psoc)
345*5113495bSYour Name {
346*5113495bSYour Name 	return false;
347*5113495bSYour Name }
348*5113495bSYour Name #endif
349*5113495bSYour Name 
350*5113495bSYour Name #ifdef FEATURE_WLAN_CH_AVOID_EXT
351*5113495bSYour Name /**
352*5113495bSYour Name  * wlan_mlme_get_coex_unsafe_chan_nb_user_prefer() - get coex unsafe nb
353*5113495bSYour Name  * support
354*5113495bSYour Name  * @psoc:   pointer to psoc object
355*5113495bSYour Name  *
356*5113495bSYour Name  * Return: coex_unsafe_chan_nb_user_prefer
357*5113495bSYour Name  */
358*5113495bSYour Name uint32_t wlan_mlme_get_coex_unsafe_chan_nb_user_prefer(
359*5113495bSYour Name 		struct wlan_objmgr_psoc *psoc);
360*5113495bSYour Name bool wlan_mlme_get_coex_unsafe_chan_nb_user_prefer_for_p2p_go(
361*5113495bSYour Name 		struct wlan_objmgr_psoc *psoc);
362*5113495bSYour Name bool wlan_mlme_get_coex_unsafe_chan_nb_user_prefer_for_sap(
363*5113495bSYour Name 		struct wlan_objmgr_psoc *psoc);
364*5113495bSYour Name #else
365*5113495bSYour Name static inline
wlan_mlme_get_coex_unsafe_chan_nb_user_prefer(struct wlan_objmgr_psoc * psoc)366*5113495bSYour Name uint32_t wlan_mlme_get_coex_unsafe_chan_nb_user_prefer(
367*5113495bSYour Name 		struct wlan_objmgr_psoc *psoc)
368*5113495bSYour Name {
369*5113495bSYour Name 	return false;
370*5113495bSYour Name }
371*5113495bSYour Name 
372*5113495bSYour Name static inline
wlan_mlme_get_coex_unsafe_chan_nb_user_prefer_for_sap(struct wlan_objmgr_psoc * psoc)373*5113495bSYour Name bool wlan_mlme_get_coex_unsafe_chan_nb_user_prefer_for_sap(
374*5113495bSYour Name 		struct wlan_objmgr_psoc *psoc)
375*5113495bSYour Name {
376*5113495bSYour Name 	return false;
377*5113495bSYour Name }
378*5113495bSYour Name 
379*5113495bSYour Name static inline
wlan_mlme_get_coex_unsafe_chan_nb_user_prefer_for_p2p_go(struct wlan_objmgr_psoc * psoc)380*5113495bSYour Name bool wlan_mlme_get_coex_unsafe_chan_nb_user_prefer_for_p2p_go(
381*5113495bSYour Name 		struct wlan_objmgr_psoc *psoc)
382*5113495bSYour Name {
383*5113495bSYour Name 	return false;
384*5113495bSYour Name }
385*5113495bSYour Name #endif
386*5113495bSYour Name 
387*5113495bSYour Name /**
388*5113495bSYour Name  * wlan_mlme_set_band_capability() - Set the Band capability config
389*5113495bSYour Name  * @psoc: pointer to psoc object
390*5113495bSYour Name  * @band_capability: Value to be set from the caller
391*5113495bSYour Name  *
392*5113495bSYour Name  * Return: QDF Status
393*5113495bSYour Name  */
394*5113495bSYour Name QDF_STATUS wlan_mlme_set_band_capability(struct wlan_objmgr_psoc *psoc,
395*5113495bSYour Name 					 uint32_t band_capability);
396*5113495bSYour Name 
397*5113495bSYour Name #ifdef WLAN_VENDOR_HANDOFF_CONTROL
398*5113495bSYour Name /**
399*5113495bSYour Name  * wlan_mlme_get_vendor_handoff_control_caps() - Get the vendor handoff control
400*5113495bSYour Name  * capability flag
401*5113495bSYour Name  * @psoc: pointer to psoc object
402*5113495bSYour Name  *
403*5113495bSYour Name  * Return: True if vendor handoff control caps present
404*5113495bSYour Name  */
405*5113495bSYour Name bool wlan_mlme_get_vendor_handoff_control_caps(struct wlan_objmgr_psoc *psoc);
406*5113495bSYour Name #else
407*5113495bSYour Name static inline bool
wlan_mlme_get_vendor_handoff_control_caps(struct wlan_objmgr_psoc * psoc)408*5113495bSYour Name wlan_mlme_get_vendor_handoff_control_caps(struct wlan_objmgr_psoc *psoc)
409*5113495bSYour Name {
410*5113495bSYour Name 	return false;
411*5113495bSYour Name }
412*5113495bSYour Name #endif
413*5113495bSYour Name 
414*5113495bSYour Name /**
415*5113495bSYour Name  * wlan_mlme_set_dual_sta_policy() - Set the dual sta config
416*5113495bSYour Name  * @psoc: pointer to psoc object
417*5113495bSYour Name  * @dual_sta_config: Value to be set from the caller
418*5113495bSYour Name  *
419*5113495bSYour Name  * Return: QDF Status
420*5113495bSYour Name  */
421*5113495bSYour Name QDF_STATUS wlan_mlme_set_dual_sta_policy(struct wlan_objmgr_psoc *psoc,
422*5113495bSYour Name 					 uint8_t dual_sta_config);
423*5113495bSYour Name 
424*5113495bSYour Name /**
425*5113495bSYour Name  * wlan_mlme_get_dual_sta_policy() - Get the dual sta policy
426*5113495bSYour Name  * @psoc: pointer to psoc object
427*5113495bSYour Name  * @dual_sta_config: Value to be set from the caller
428*5113495bSYour Name  *
429*5113495bSYour Name  * Return: QDF Status
430*5113495bSYour Name  */
431*5113495bSYour Name QDF_STATUS wlan_mlme_get_dual_sta_policy(struct wlan_objmgr_psoc *psoc,
432*5113495bSYour Name 					 uint8_t *dual_sta_config);
433*5113495bSYour Name 
434*5113495bSYour Name /**
435*5113495bSYour Name  * wlan_mlme_convert_ap_policy_config() - Convert vendor attr ap policy
436*5113495bSYour Name  * config to host enum
437*5113495bSYour Name  * @ap_config: Value to convert
438*5113495bSYour Name  *
439*5113495bSYour Name  * Return: enum host_concurrent_ap_policy
440*5113495bSYour Name  */
441*5113495bSYour Name enum host_concurrent_ap_policy
442*5113495bSYour Name wlan_mlme_convert_ap_policy_config(
443*5113495bSYour Name 		enum qca_wlan_concurrent_ap_policy_config ap_config);
444*5113495bSYour Name 
445*5113495bSYour Name /**
446*5113495bSYour Name  * wlan_mlme_set_ap_policy() - Set ap config policy value
447*5113495bSYour Name  * @vdev: pointer to vdev object
448*5113495bSYour Name  * @ap_cfg_policy: Value to be set from the caller
449*5113495bSYour Name  *
450*5113495bSYour Name  * Return: QDF Status
451*5113495bSYour Name  */
452*5113495bSYour Name QDF_STATUS
453*5113495bSYour Name wlan_mlme_set_ap_policy(struct wlan_objmgr_vdev *vdev,
454*5113495bSYour Name 			enum host_concurrent_ap_policy ap_cfg_policy);
455*5113495bSYour Name 
456*5113495bSYour Name /**
457*5113495bSYour Name  * wlan_mlme_get_ap_policy() - Get ap config policy value
458*5113495bSYour Name  * @vdev: pointer to vdev object
459*5113495bSYour Name  *
460*5113495bSYour Name  * Return: enum host_concurrent_ap_policy
461*5113495bSYour Name  */
462*5113495bSYour Name enum host_concurrent_ap_policy
463*5113495bSYour Name wlan_mlme_get_ap_policy(struct wlan_objmgr_vdev *vdev);
464*5113495bSYour Name 
465*5113495bSYour Name /**
466*5113495bSYour Name  * wlan_mlme_ll_lt_sap_send_oce_flags_fw() - Send the oce flags to FW for
467*5113495bSYour Name  * ll_lt_sap
468*5113495bSYour Name  * @vdev: pointer to vdev object
469*5113495bSYour Name  *
470*5113495bSYour Name  * Return: void
471*5113495bSYour Name  */
472*5113495bSYour Name void wlan_mlme_ll_lt_sap_send_oce_flags_fw(struct wlan_objmgr_vdev *vdev);
473*5113495bSYour Name 
474*5113495bSYour Name /**
475*5113495bSYour Name  * wlan_mlme_get_prevent_link_down() - Get the prevent link down config
476*5113495bSYour Name  * @psoc: pointer to psoc object
477*5113495bSYour Name  * @prevent_link_down: Pointer to the variable from caller
478*5113495bSYour Name  *
479*5113495bSYour Name  * Return: QDF Status
480*5113495bSYour Name  */
481*5113495bSYour Name QDF_STATUS wlan_mlme_get_prevent_link_down(struct wlan_objmgr_psoc *psoc,
482*5113495bSYour Name 					   bool *prevent_link_down);
483*5113495bSYour Name 
484*5113495bSYour Name /**
485*5113495bSYour Name  * wlan_mlme_get_select_5ghz_margin() - Get the select 5Ghz margin config
486*5113495bSYour Name  * @psoc: pointer to psoc object
487*5113495bSYour Name  * @select_5ghz_margin: Pointer to the variable from caller
488*5113495bSYour Name  *
489*5113495bSYour Name  * Return: QDF Status
490*5113495bSYour Name  */
491*5113495bSYour Name QDF_STATUS wlan_mlme_get_select_5ghz_margin(struct wlan_objmgr_psoc *psoc,
492*5113495bSYour Name 					    uint8_t *select_5ghz_margin);
493*5113495bSYour Name 
494*5113495bSYour Name /**
495*5113495bSYour Name  * wlan_mlme_get_rtt_mac_randomization() - Get the RTT MAC randomization config
496*5113495bSYour Name  * @psoc: pointer to psoc object
497*5113495bSYour Name  * @rtt_mac_randomization: Pointer to the variable from caller
498*5113495bSYour Name  *
499*5113495bSYour Name  * Return: QDF Status
500*5113495bSYour Name  */
501*5113495bSYour Name QDF_STATUS wlan_mlme_get_rtt_mac_randomization(struct wlan_objmgr_psoc *psoc,
502*5113495bSYour Name 					       bool *rtt_mac_randomization);
503*5113495bSYour Name 
504*5113495bSYour Name /**
505*5113495bSYour Name  * wlan_mlme_get_crash_inject() - Get the crash inject config
506*5113495bSYour Name  * @psoc: pointer to psoc object
507*5113495bSYour Name  * @crash_inject: Pointer to the variable from caller
508*5113495bSYour Name  *
509*5113495bSYour Name  * Return: QDF Status
510*5113495bSYour Name  */
511*5113495bSYour Name QDF_STATUS wlan_mlme_get_crash_inject(struct wlan_objmgr_psoc *psoc,
512*5113495bSYour Name 				      bool *crash_inject);
513*5113495bSYour Name 
514*5113495bSYour Name /**
515*5113495bSYour Name  * wlan_mlme_get_lpass_support() - Get the LPASS Support config
516*5113495bSYour Name  * @psoc: pointer to psoc object
517*5113495bSYour Name  * @lpass_support: Pointer to the variable from caller
518*5113495bSYour Name  *
519*5113495bSYour Name  * Return: QDF Status
520*5113495bSYour Name  */
521*5113495bSYour Name QDF_STATUS wlan_mlme_get_lpass_support(struct wlan_objmgr_psoc *psoc,
522*5113495bSYour Name 				       bool *lpass_support);
523*5113495bSYour Name 
524*5113495bSYour Name /**
525*5113495bSYour Name  * wlan_mlme_get_wls_6ghz_cap() - Get the wifi location service(WLS)
526*5113495bSYour Name  * 6ghz capability
527*5113495bSYour Name  * @psoc: pointer to psoc object
528*5113495bSYour Name  * @wls_6ghz_capable: Pointer to the variable from caller
529*5113495bSYour Name  *
530*5113495bSYour Name  * Return: void
531*5113495bSYour Name  */
532*5113495bSYour Name void wlan_mlme_get_wls_6ghz_cap(struct wlan_objmgr_psoc *psoc,
533*5113495bSYour Name 				bool *wls_6ghz_capable);
534*5113495bSYour Name 
535*5113495bSYour Name /**
536*5113495bSYour Name  * wlan_mlme_get_self_recovery() - Get the self recovery config
537*5113495bSYour Name  * @psoc: pointer to psoc object
538*5113495bSYour Name  * @self_recovery: Pointer to the variable from caller
539*5113495bSYour Name  *
540*5113495bSYour Name  * Return: QDF Status
541*5113495bSYour Name  */
542*5113495bSYour Name QDF_STATUS wlan_mlme_get_self_recovery(struct wlan_objmgr_psoc *psoc,
543*5113495bSYour Name 				       bool *self_recovery);
544*5113495bSYour Name 
545*5113495bSYour Name /**
546*5113495bSYour Name  * wlan_mlme_get_sub_20_chan_width() - Get the sub 20 chan width config
547*5113495bSYour Name  * @psoc: pointer to psoc object
548*5113495bSYour Name  * @sub_20_chan_width: Pointer to the variable from caller
549*5113495bSYour Name  *
550*5113495bSYour Name  * Return: QDF Status
551*5113495bSYour Name  */
552*5113495bSYour Name QDF_STATUS wlan_mlme_get_sub_20_chan_width(struct wlan_objmgr_psoc *psoc,
553*5113495bSYour Name 					   uint8_t *sub_20_chan_width);
554*5113495bSYour Name 
555*5113495bSYour Name /**
556*5113495bSYour Name  * wlan_mlme_get_fw_timeout_crash() - Get the fw timeout crash config
557*5113495bSYour Name  * @psoc: pointer to psoc object
558*5113495bSYour Name  * @fw_timeout_crash: Pointer to the variable from caller
559*5113495bSYour Name  *
560*5113495bSYour Name  * Return: QDF Status
561*5113495bSYour Name  */
562*5113495bSYour Name QDF_STATUS wlan_mlme_get_fw_timeout_crash(struct wlan_objmgr_psoc *psoc,
563*5113495bSYour Name 					  bool *fw_timeout_crash);
564*5113495bSYour Name 
565*5113495bSYour Name /**
566*5113495bSYour Name  * wlan_mlme_get_ito_repeat_count() - Get the fw timeout crash config
567*5113495bSYour Name  * @psoc: pointer to psoc object
568*5113495bSYour Name  * @ito_repeat_count: Pointer to the variable from caller
569*5113495bSYour Name  *
570*5113495bSYour Name  * Return: QDF Status
571*5113495bSYour Name  */
572*5113495bSYour Name QDF_STATUS wlan_mlme_get_ito_repeat_count(struct wlan_objmgr_psoc *psoc,
573*5113495bSYour Name 					  uint8_t *ito_repeat_count);
574*5113495bSYour Name 
575*5113495bSYour Name /**
576*5113495bSYour Name  * wlan_mlme_get_acs_with_more_param() - Get the acs_with_more_param flag
577*5113495bSYour Name  * @psoc: pointer to psoc object
578*5113495bSYour Name  * @value: Value that needs to be set from the caller
579*5113495bSYour Name  *
580*5113495bSYour Name  * Return: QDF Status
581*5113495bSYour Name  */
582*5113495bSYour Name QDF_STATUS wlan_mlme_get_acs_with_more_param(struct wlan_objmgr_psoc *psoc,
583*5113495bSYour Name 					     bool *value);
584*5113495bSYour Name 
585*5113495bSYour Name /**
586*5113495bSYour Name  * wlan_mlme_get_auto_channel_weight() - Get the auto channel weight
587*5113495bSYour Name  * @psoc: pointer to psoc object
588*5113495bSYour Name  * @value: Value that needs to be set from the caller
589*5113495bSYour Name  *
590*5113495bSYour Name  * Return: QDF Status
591*5113495bSYour Name  */
592*5113495bSYour Name QDF_STATUS wlan_mlme_get_auto_channel_weight(struct wlan_objmgr_psoc *psoc,
593*5113495bSYour Name 					     uint32_t *value);
594*5113495bSYour Name 
595*5113495bSYour Name /**
596*5113495bSYour Name  * wlan_mlme_get_vendor_acs_support() - Get the vendor based channel selece
597*5113495bSYour Name  * @psoc: pointer to psoc object
598*5113495bSYour Name  * @value: Value that needs to be set from the caller
599*5113495bSYour Name  *
600*5113495bSYour Name  * Return: QDF Status
601*5113495bSYour Name  */
602*5113495bSYour Name 
603*5113495bSYour Name QDF_STATUS wlan_mlme_get_vendor_acs_support(struct wlan_objmgr_psoc *psoc,
604*5113495bSYour Name 					    bool *value);
605*5113495bSYour Name 
606*5113495bSYour Name /**
607*5113495bSYour Name  * wlan_mlme_get_acs_support_for_dfs_ltecoex() - Get the flag for
608*5113495bSYour Name  *						 acs support for dfs ltecoex
609*5113495bSYour Name  * @psoc: pointer to psoc object
610*5113495bSYour Name  * @value: Value that needs to be set from the caller
611*5113495bSYour Name  *
612*5113495bSYour Name  * Return: QDF Status
613*5113495bSYour Name  */
614*5113495bSYour Name QDF_STATUS
615*5113495bSYour Name wlan_mlme_get_acs_support_for_dfs_ltecoex(struct wlan_objmgr_psoc *psoc,
616*5113495bSYour Name 					  bool *value);
617*5113495bSYour Name 
618*5113495bSYour Name /**
619*5113495bSYour Name  * wlan_mlme_get_external_acs_policy() - Get the flag for external acs policy
620*5113495bSYour Name  * @psoc: pointer to psoc object
621*5113495bSYour Name  * @value: Value that needs to be set from the caller
622*5113495bSYour Name  *
623*5113495bSYour Name  * Return: QDF Status
624*5113495bSYour Name  */
625*5113495bSYour Name QDF_STATUS
626*5113495bSYour Name wlan_mlme_get_external_acs_policy(struct wlan_objmgr_psoc *psoc,
627*5113495bSYour Name 				  bool *value);
628*5113495bSYour Name 
629*5113495bSYour Name /**
630*5113495bSYour Name  * wlan_mlme_get_sap_inactivity_override() - Check if sap max inactivity
631*5113495bSYour Name  * override flag is set.
632*5113495bSYour Name  * @psoc: pointer to psoc object
633*5113495bSYour Name  * @value: Value that needs to be set from the caller
634*5113495bSYour Name  *
635*5113495bSYour Name  * Return: QDF Status
636*5113495bSYour Name  */
637*5113495bSYour Name void wlan_mlme_get_sap_inactivity_override(struct wlan_objmgr_psoc *psoc,
638*5113495bSYour Name 					   bool *value);
639*5113495bSYour Name 
640*5113495bSYour Name /**
641*5113495bSYour Name  * wlan_mlme_get_ignore_peer_ht_mode() - Get the ignore peer ht opmode flag
642*5113495bSYour Name  * @psoc: pointer to psoc object
643*5113495bSYour Name  * @value: Value that needs to be set from the caller
644*5113495bSYour Name  *
645*5113495bSYour Name  * Return: QDF Status
646*5113495bSYour Name  */
647*5113495bSYour Name QDF_STATUS wlan_mlme_get_ignore_peer_ht_mode(struct wlan_objmgr_psoc *psoc,
648*5113495bSYour Name 					bool *value);
649*5113495bSYour Name /**
650*5113495bSYour Name  * wlan_mlme_get_tx_chainmask_cck() - Get the tx_chainmask_cfg value
651*5113495bSYour Name  * @psoc: pointer to psoc object
652*5113495bSYour Name  * @value: Value that needs to be set from the caller
653*5113495bSYour Name  *
654*5113495bSYour Name  * Return: QDF_STATUS_FAILURE or QDF_STATUS_SUCCESS
655*5113495bSYour Name  */
656*5113495bSYour Name QDF_STATUS wlan_mlme_get_tx_chainmask_cck(struct wlan_objmgr_psoc *psoc,
657*5113495bSYour Name 					  bool *value);
658*5113495bSYour Name 
659*5113495bSYour Name /**
660*5113495bSYour Name  * wlan_mlme_get_tx_chainmask_1ss() - Get the tx_chainmask_1ss value
661*5113495bSYour Name  * @psoc: pointer to psoc object
662*5113495bSYour Name  * @value: Value that caller needs to get
663*5113495bSYour Name  *
664*5113495bSYour Name  * Return: QDF_STATUS_FAILURE or QDF_STATUS_SUCCESS
665*5113495bSYour Name  */
666*5113495bSYour Name QDF_STATUS wlan_mlme_get_tx_chainmask_1ss(struct wlan_objmgr_psoc *psoc,
667*5113495bSYour Name 					  uint8_t *value);
668*5113495bSYour Name 
669*5113495bSYour Name /**
670*5113495bSYour Name  * wlan_mlme_get_num_11b_tx_chains() -  Get the number of 11b only tx chains
671*5113495bSYour Name  * @psoc: pointer to psoc object
672*5113495bSYour Name  * @value: Value that needs to be set from the caller
673*5113495bSYour Name  *
674*5113495bSYour Name  * Return: QDF_STATUS_FAILURE or QDF_STATUS_SUCCESS
675*5113495bSYour Name  */
676*5113495bSYour Name QDF_STATUS wlan_mlme_get_num_11b_tx_chains(struct wlan_objmgr_psoc *psoc,
677*5113495bSYour Name 					   uint16_t *value);
678*5113495bSYour Name 
679*5113495bSYour Name /**
680*5113495bSYour Name  * wlan_mlme_get_num_11ag_tx_chains() - get the total number of 11a/g tx chains
681*5113495bSYour Name  * @psoc: pointer to psoc object
682*5113495bSYour Name  * @value: Value that caller needs to get
683*5113495bSYour Name  *
684*5113495bSYour Name  * Return: QDF_STATUS_FAILURE or QDF_STATUS_SUCCESS
685*5113495bSYour Name  */
686*5113495bSYour Name QDF_STATUS wlan_mlme_get_num_11ag_tx_chains(struct wlan_objmgr_psoc *psoc,
687*5113495bSYour Name 					    uint16_t *value);
688*5113495bSYour Name 
689*5113495bSYour Name /**
690*5113495bSYour Name  * wlan_mlme_get_bt_chain_separation_flag() - get the enable_bt_chain_separation
691*5113495bSYour Name  * flag
692*5113495bSYour Name  * @psoc: pointer to psoc object
693*5113495bSYour Name  * @value: Value that needs to be set from the caller
694*5113495bSYour Name  *
695*5113495bSYour Name  * Return: QDF_STATUS_FAILURE or QDF_STATUS_SUCCESS
696*5113495bSYour Name  */
697*5113495bSYour Name QDF_STATUS wlan_mlme_get_bt_chain_separation_flag(struct wlan_objmgr_psoc *psoc,
698*5113495bSYour Name 						  bool *value);
699*5113495bSYour Name /**
700*5113495bSYour Name  * wlan_mlme_configure_chain_mask() - configure chainmask parameters
701*5113495bSYour Name  * @psoc: pointer to psoc object
702*5113495bSYour Name  * @session_id: vdev_id
703*5113495bSYour Name  *
704*5113495bSYour Name  * Return: QDF_STATUS_FAILURE or QDF_STATUS_SUCCESS
705*5113495bSYour Name  */
706*5113495bSYour Name QDF_STATUS wlan_mlme_configure_chain_mask(struct wlan_objmgr_psoc *psoc,
707*5113495bSYour Name 					  uint8_t session_id);
708*5113495bSYour Name 
709*5113495bSYour Name /**
710*5113495bSYour Name  * wlan_mlme_is_chain_mask_supported() - check if configure chainmask can
711*5113495bSYour Name  * be supported
712*5113495bSYour Name  * @psoc: pointer to psoc object
713*5113495bSYour Name  *
714*5113495bSYour Name  * Return: true if supported else false
715*5113495bSYour Name  */
716*5113495bSYour Name bool wlan_mlme_is_chain_mask_supported(struct wlan_objmgr_psoc *psoc);
717*5113495bSYour Name 
718*5113495bSYour Name /**
719*5113495bSYour Name  * wlan_mlme_get_listen_interval() - Get listen interval
720*5113495bSYour Name  * @psoc: pointer to psoc object
721*5113495bSYour Name  * @value: Pointer to value that needs to be filled by MLME
722*5113495bSYour Name  *
723*5113495bSYour Name  * Return: QDF Status
724*5113495bSYour Name  */
725*5113495bSYour Name QDF_STATUS wlan_mlme_get_listen_interval(struct wlan_objmgr_psoc *psoc,
726*5113495bSYour Name 					     int *value);
727*5113495bSYour Name 
728*5113495bSYour Name /**
729*5113495bSYour Name  * wlan_mlme_set_sap_listen_interval() - Set the sap listen interval
730*5113495bSYour Name  * @psoc: pointer to psoc object
731*5113495bSYour Name  * @value: Value that needs to be set from the caller
732*5113495bSYour Name  *
733*5113495bSYour Name  * Return: QDF Status
734*5113495bSYour Name  */
735*5113495bSYour Name QDF_STATUS wlan_mlme_set_sap_listen_interval(struct wlan_objmgr_psoc *psoc,
736*5113495bSYour Name 					     int value);
737*5113495bSYour Name 
738*5113495bSYour Name /**
739*5113495bSYour Name  * wlan_mlme_set_assoc_sta_limit() - Set the assoc sta limit
740*5113495bSYour Name  * @psoc: pointer to psoc object
741*5113495bSYour Name  * @value: Value that needs to be set from the caller
742*5113495bSYour Name  *
743*5113495bSYour Name  * Return: QDF Status
744*5113495bSYour Name  */
745*5113495bSYour Name QDF_STATUS wlan_mlme_set_assoc_sta_limit(struct wlan_objmgr_psoc *psoc,
746*5113495bSYour Name 					 int value);
747*5113495bSYour Name 
748*5113495bSYour Name /**
749*5113495bSYour Name  * wlan_mlme_get_assoc_sta_limit() - Get the assoc sta limit
750*5113495bSYour Name  * @psoc: pointer to psoc object
751*5113495bSYour Name  * @value: Pointer to value that needs to be filled by MLME
752*5113495bSYour Name  *
753*5113495bSYour Name  * Return: QDF Status
754*5113495bSYour Name  */
755*5113495bSYour Name QDF_STATUS wlan_mlme_get_assoc_sta_limit(struct wlan_objmgr_psoc *psoc,
756*5113495bSYour Name 					 int *value);
757*5113495bSYour Name 
758*5113495bSYour Name /**
759*5113495bSYour Name  * wlan_mlme_get_sap_get_peer_info() - get the sap get peer info
760*5113495bSYour Name  * @psoc: pointer to psoc object
761*5113495bSYour Name  * @value: Value that needs to be set from the caller
762*5113495bSYour Name  *
763*5113495bSYour Name  * Return: QDF Status
764*5113495bSYour Name  */
765*5113495bSYour Name QDF_STATUS wlan_mlme_get_sap_get_peer_info(struct wlan_objmgr_psoc *psoc,
766*5113495bSYour Name 					   bool *value);
767*5113495bSYour Name 
768*5113495bSYour Name /**
769*5113495bSYour Name  * wlan_mlme_set_sap_get_peer_info() - set the sap get peer info
770*5113495bSYour Name  * @psoc: pointer to psoc object
771*5113495bSYour Name  * @value: value to overwrite the sap get peer info
772*5113495bSYour Name  *
773*5113495bSYour Name  * Return: QDF Status
774*5113495bSYour Name  */
775*5113495bSYour Name QDF_STATUS wlan_mlme_set_sap_get_peer_info(struct wlan_objmgr_psoc *psoc,
776*5113495bSYour Name 					   bool value);
777*5113495bSYour Name 
778*5113495bSYour Name /**
779*5113495bSYour Name  * wlan_mlme_get_sap_bcast_deauth_enabled() - get the enable/disable value
780*5113495bSYour Name  *                                           for broadcast deauth in sap
781*5113495bSYour Name  * @psoc: pointer to psoc object
782*5113495bSYour Name  * @value: Value that needs to get from the caller
783*5113495bSYour Name  *
784*5113495bSYour Name  * Return: QDF Status
785*5113495bSYour Name  */
786*5113495bSYour Name QDF_STATUS
787*5113495bSYour Name wlan_mlme_get_sap_bcast_deauth_enabled(struct wlan_objmgr_psoc *psoc,
788*5113495bSYour Name 				       bool *value);
789*5113495bSYour Name 
790*5113495bSYour Name /**
791*5113495bSYour Name  * wlan_mlme_get_sap_allow_all_channels() - get the value of sap allow all
792*5113495bSYour Name  * channels
793*5113495bSYour Name  * @psoc: pointer to psoc object
794*5113495bSYour Name  * @value: Value that needs to be set from the caller
795*5113495bSYour Name  *
796*5113495bSYour Name  * Return: QDF Status
797*5113495bSYour Name  */
798*5113495bSYour Name QDF_STATUS wlan_mlme_get_sap_allow_all_channels(struct wlan_objmgr_psoc *psoc,
799*5113495bSYour Name 						bool *value);
800*5113495bSYour Name 
801*5113495bSYour Name /**
802*5113495bSYour Name  * wlan_mlme_is_6g_sap_fd_enabled() - get the enable/disable value
803*5113495bSYour Name  *                                     for 6g sap fils discovery
804*5113495bSYour Name  * @psoc: pointer to psoc object
805*5113495bSYour Name  * @value: Value that needs to get from the caller
806*5113495bSYour Name  *
807*5113495bSYour Name  * Return: QDF Status
808*5113495bSYour Name  */
809*5113495bSYour Name QDF_STATUS
810*5113495bSYour Name wlan_mlme_is_6g_sap_fd_enabled(struct wlan_objmgr_psoc *psoc,
811*5113495bSYour Name 			       bool *value);
812*5113495bSYour Name 
813*5113495bSYour Name /**
814*5113495bSYour Name  * wlan_mlme_get_sap_max_peers() - get the value sap max peers
815*5113495bSYour Name  * @psoc: pointer to psoc object
816*5113495bSYour Name  * @value: Value that needs to be set from the caller
817*5113495bSYour Name  *
818*5113495bSYour Name  * Return: QDF Status
819*5113495bSYour Name  */
820*5113495bSYour Name QDF_STATUS wlan_mlme_get_sap_max_peers(struct wlan_objmgr_psoc *psoc,
821*5113495bSYour Name 				       int *value);
822*5113495bSYour Name 
823*5113495bSYour Name /**
824*5113495bSYour Name  * wlan_mlme_set_sap_max_peers() - set the value sap max peers
825*5113495bSYour Name  * @psoc: pointer to psoc object
826*5113495bSYour Name  * @value: Value that needs to be set from the caller
827*5113495bSYour Name  *
828*5113495bSYour Name  * Return: QDF Status
829*5113495bSYour Name  */
830*5113495bSYour Name QDF_STATUS wlan_mlme_set_sap_max_peers(struct wlan_objmgr_psoc *psoc,
831*5113495bSYour Name 				       int value);
832*5113495bSYour Name 
833*5113495bSYour Name /**
834*5113495bSYour Name  * wlan_mlme_get_sap_max_offload_peers() - get the value sap max offload peers
835*5113495bSYour Name  * @psoc: pointer to psoc object
836*5113495bSYour Name  * @value: Value that needs to be set from the caller
837*5113495bSYour Name  *
838*5113495bSYour Name  * Return: QDF Status
839*5113495bSYour Name  */
840*5113495bSYour Name QDF_STATUS wlan_mlme_get_sap_max_offload_peers(struct wlan_objmgr_psoc *psoc,
841*5113495bSYour Name 					       int *value);
842*5113495bSYour Name 
843*5113495bSYour Name /**
844*5113495bSYour Name  * wlan_mlme_get_sap_max_offload_reorder_buffs() - get the value sap max offload
845*5113495bSYour Name  * reorder buffs.
846*5113495bSYour Name  * @psoc: pointer to psoc object
847*5113495bSYour Name  * @value: Value that needs to be set from the caller
848*5113495bSYour Name  *
849*5113495bSYour Name  * Return: QDF Status
850*5113495bSYour Name  */
851*5113495bSYour Name QDF_STATUS wlan_mlme_get_sap_max_offload_reorder_buffs(struct wlan_objmgr_psoc
852*5113495bSYour Name 						       *psoc, int *value);
853*5113495bSYour Name 
854*5113495bSYour Name /**
855*5113495bSYour Name  * wlan_mlme_get_sap_chn_switch_bcn_count() - get the value sap max channel
856*5113495bSYour Name  * switch beacon count
857*5113495bSYour Name  * @psoc: pointer to psoc object
858*5113495bSYour Name  * @value: Value that needs to be set from the caller
859*5113495bSYour Name  *
860*5113495bSYour Name  * Return: QDF Status
861*5113495bSYour Name  */
862*5113495bSYour Name QDF_STATUS wlan_mlme_get_sap_chn_switch_bcn_count(struct wlan_objmgr_psoc *psoc,
863*5113495bSYour Name 						  int *value);
864*5113495bSYour Name 
865*5113495bSYour Name /**
866*5113495bSYour Name  * wlan_mlme_get_sap_chn_switch_mode() - get the sap channel
867*5113495bSYour Name  * switch mode
868*5113495bSYour Name  * @psoc: pointer to psoc object
869*5113495bSYour Name  * @value: Value that needs to be set from the caller
870*5113495bSYour Name  *
871*5113495bSYour Name  * Return: QDF Status
872*5113495bSYour Name  */
873*5113495bSYour Name QDF_STATUS wlan_mlme_get_sap_chn_switch_mode(struct wlan_objmgr_psoc *psoc,
874*5113495bSYour Name 					     bool *value);
875*5113495bSYour Name 
876*5113495bSYour Name /**
877*5113495bSYour Name  * wlan_mlme_get_sap_internal_restart() - get the sap internal
878*5113495bSYour Name  * restart
879*5113495bSYour Name  * @psoc: pointer to psoc object
880*5113495bSYour Name  * @value: Value that needs to be set from the caller
881*5113495bSYour Name  *
882*5113495bSYour Name  * Return: QDF Status
883*5113495bSYour Name  */
884*5113495bSYour Name QDF_STATUS wlan_mlme_get_sap_internal_restart(struct wlan_objmgr_psoc *psoc,
885*5113495bSYour Name 					      bool *value);
886*5113495bSYour Name /**
887*5113495bSYour Name  * wlan_mlme_get_sap_max_modulated_dtim() - get the max modulated dtim
888*5113495bSYour Name  * restart
889*5113495bSYour Name  * @psoc: pointer to psoc object
890*5113495bSYour Name  * @value: Value that needs to be set from the caller
891*5113495bSYour Name  *
892*5113495bSYour Name  * Return: QDF Status
893*5113495bSYour Name  */
894*5113495bSYour Name QDF_STATUS wlan_mlme_get_sap_max_modulated_dtim(struct wlan_objmgr_psoc *psoc,
895*5113495bSYour Name 						uint8_t *value);
896*5113495bSYour Name 
897*5113495bSYour Name /**
898*5113495bSYour Name  * wlan_mlme_get_sap_chan_pref_location() - get the sap chan pref location
899*5113495bSYour Name  * restart
900*5113495bSYour Name  * @psoc: pointer to psoc object
901*5113495bSYour Name  * @value: Value that needs to be set from the caller
902*5113495bSYour Name  *
903*5113495bSYour Name  * Return: QDF Status
904*5113495bSYour Name  */
905*5113495bSYour Name QDF_STATUS wlan_mlme_get_sap_chan_pref_location(struct wlan_objmgr_psoc *psoc,
906*5113495bSYour Name 						uint8_t *value);
907*5113495bSYour Name 
908*5113495bSYour Name /**
909*5113495bSYour Name  * wlan_mlme_get_sap_country_priority() - get the sap country code priority
910*5113495bSYour Name  * restart
911*5113495bSYour Name  * @psoc: pointer to psoc object
912*5113495bSYour Name  * @value: Value that needs to be set from the caller
913*5113495bSYour Name  *
914*5113495bSYour Name  * Return: QDF Status
915*5113495bSYour Name  */
916*5113495bSYour Name QDF_STATUS wlan_mlme_get_sap_country_priority(struct wlan_objmgr_psoc *psoc,
917*5113495bSYour Name 					      bool *value);
918*5113495bSYour Name 
919*5113495bSYour Name /**
920*5113495bSYour Name  * wlan_mlme_get_sap_reduced_beacon_interval() - get the sap reduced
921*5113495bSYour Name  * beacon interval
922*5113495bSYour Name  * @psoc: pointer to psoc object
923*5113495bSYour Name  * @value: Value that needs to be set from the caller
924*5113495bSYour Name  *
925*5113495bSYour Name  * Return: QDF Status
926*5113495bSYour Name  */
927*5113495bSYour Name QDF_STATUS wlan_mlme_get_sap_reduced_beacon_interval(struct wlan_objmgr_psoc
928*5113495bSYour Name 						     *psoc, int *value);
929*5113495bSYour Name 
930*5113495bSYour Name /**
931*5113495bSYour Name  * wlan_mlme_get_sap_chan_switch_rate_enabled() - get the sap rate hostapd
932*5113495bSYour Name  * enabled beacon interval
933*5113495bSYour Name  * @psoc: pointer to psoc object
934*5113495bSYour Name  * @value: Value that needs to be set from the caller
935*5113495bSYour Name  *
936*5113495bSYour Name  * Return: QDF Status
937*5113495bSYour Name  */
938*5113495bSYour Name QDF_STATUS wlan_mlme_get_sap_chan_switch_rate_enabled(struct wlan_objmgr_psoc
939*5113495bSYour Name 						      *psoc, bool *value);
940*5113495bSYour Name 
941*5113495bSYour Name /**
942*5113495bSYour Name  * wlan_mlme_get_sap_force_11n_for_11ac() - get the sap 11n for 11ac
943*5113495bSYour Name  * @psoc: pointer to psoc object
944*5113495bSYour Name  * @value: Value that needs to be set from the caller
945*5113495bSYour Name  *
946*5113495bSYour Name  * Return: QDF Status
947*5113495bSYour Name  */
948*5113495bSYour Name QDF_STATUS wlan_mlme_get_sap_force_11n_for_11ac(struct wlan_objmgr_psoc
949*5113495bSYour Name 						*psoc, bool *value);
950*5113495bSYour Name 
951*5113495bSYour Name /**
952*5113495bSYour Name  * wlan_mlme_get_go_force_11n_for_11ac() - get the go 11n for 11ac
953*5113495bSYour Name  * @psoc: pointer to psoc object
954*5113495bSYour Name  * @value: Value that needs to be set from the caller
955*5113495bSYour Name  *
956*5113495bSYour Name  * Return: QDF Status
957*5113495bSYour Name  */
958*5113495bSYour Name QDF_STATUS wlan_mlme_get_go_force_11n_for_11ac(struct wlan_objmgr_psoc
959*5113495bSYour Name 					       *psoc, bool *value);
960*5113495bSYour Name 
961*5113495bSYour Name /**
962*5113495bSYour Name  * wlan_mlme_is_go_11ac_override() - Override 11ac bandwdith for P2P GO
963*5113495bSYour Name  * @psoc: pointer to psoc object
964*5113495bSYour Name  * @value: pointer to the value which will be filled for the caller
965*5113495bSYour Name  *
966*5113495bSYour Name  * Return: QDF Status
967*5113495bSYour Name  */
968*5113495bSYour Name QDF_STATUS wlan_mlme_is_go_11ac_override(struct wlan_objmgr_psoc *psoc,
969*5113495bSYour Name 					 bool *value);
970*5113495bSYour Name 
971*5113495bSYour Name /**
972*5113495bSYour Name  * wlan_mlme_is_sap_11ac_override() - Override 11ac bandwdith for SAP
973*5113495bSYour Name  * @psoc: pointer to psoc object
974*5113495bSYour Name  * @value: pointer to the value which will be filled for the caller
975*5113495bSYour Name  *
976*5113495bSYour Name  * Return: QDF Status
977*5113495bSYour Name  */
978*5113495bSYour Name QDF_STATUS wlan_mlme_is_sap_11ac_override(struct wlan_objmgr_psoc *psoc,
979*5113495bSYour Name 					  bool *value);
980*5113495bSYour Name 
981*5113495bSYour Name /**
982*5113495bSYour Name  * wlan_mlme_set_go_11ac_override() - set override 11ac bandwdith for P2P GO
983*5113495bSYour Name  * @psoc: pointer to psoc object
984*5113495bSYour Name  * @value: pointer to the value which will be filled for the caller
985*5113495bSYour Name  *
986*5113495bSYour Name  * Return: QDF Status
987*5113495bSYour Name  */
988*5113495bSYour Name QDF_STATUS wlan_mlme_set_go_11ac_override(struct wlan_objmgr_psoc *psoc,
989*5113495bSYour Name 					  bool value);
990*5113495bSYour Name 
991*5113495bSYour Name /**
992*5113495bSYour Name  * wlan_mlme_set_sap_11ac_override() - set override 11ac bandwdith for SAP
993*5113495bSYour Name  * @psoc: pointer to psoc object
994*5113495bSYour Name  * @value: pointer to the value which will be filled for the caller
995*5113495bSYour Name  *
996*5113495bSYour Name  * Return: QDF Status
997*5113495bSYour Name  */
998*5113495bSYour Name QDF_STATUS wlan_mlme_set_sap_11ac_override(struct wlan_objmgr_psoc *psoc,
999*5113495bSYour Name 					   bool value);
1000*5113495bSYour Name 
1001*5113495bSYour Name /**
1002*5113495bSYour Name  * wlan_mlme_get_oce_sta_enabled_info() - Get the OCE feature enable
1003*5113495bSYour Name  * info for STA
1004*5113495bSYour Name  * @psoc: pointer to psoc object
1005*5113495bSYour Name  * @value: pointer to the value which will be filled for the caller
1006*5113495bSYour Name  *
1007*5113495bSYour Name  * Return: QDF Status
1008*5113495bSYour Name  */
1009*5113495bSYour Name QDF_STATUS wlan_mlme_get_oce_sta_enabled_info(struct wlan_objmgr_psoc *psoc,
1010*5113495bSYour Name 					      bool *value);
1011*5113495bSYour Name 
1012*5113495bSYour Name /**
1013*5113495bSYour Name  * wlan_mlme_get_bigtk_support() - Get the BIGTK support
1014*5113495bSYour Name  * @psoc: pointer to psoc object
1015*5113495bSYour Name  * @value: pointer to the value which will be filled for the caller
1016*5113495bSYour Name  *
1017*5113495bSYour Name  * Return: QDF Status
1018*5113495bSYour Name  */
1019*5113495bSYour Name QDF_STATUS wlan_mlme_get_bigtk_support(struct wlan_objmgr_psoc *psoc,
1020*5113495bSYour Name 				       bool *value);
1021*5113495bSYour Name 
1022*5113495bSYour Name /**
1023*5113495bSYour Name  * wlan_mlme_get_ocv_support() - Get the OCV support
1024*5113495bSYour Name  * @psoc: pointer to psoc object
1025*5113495bSYour Name  * @value: pointer to the value which will be filled for the caller
1026*5113495bSYour Name  *
1027*5113495bSYour Name  * Return: QDF Status
1028*5113495bSYour Name  */
1029*5113495bSYour Name QDF_STATUS wlan_mlme_get_ocv_support(struct wlan_objmgr_psoc *psoc,
1030*5113495bSYour Name 				     bool *value);
1031*5113495bSYour Name 
1032*5113495bSYour Name /**
1033*5113495bSYour Name  * wlan_mlme_get_host_scan_abort_support() - Get support for stop all host
1034*5113495bSYour Name  * scans service capability.
1035*5113495bSYour Name  * @psoc: PSOC object pointer
1036*5113495bSYour Name  *
1037*5113495bSYour Name  * Return: True if capability is supported, else False
1038*5113495bSYour Name  */
1039*5113495bSYour Name bool wlan_mlme_get_host_scan_abort_support(struct wlan_objmgr_psoc *psoc);
1040*5113495bSYour Name 
1041*5113495bSYour Name /**
1042*5113495bSYour Name  * wlan_mlme_get_dual_sta_roam_support  - Get support for dual sta roaming
1043*5113495bSYour Name  * feature
1044*5113495bSYour Name  * @psoc: PSOC object pointer
1045*5113495bSYour Name  *
1046*5113495bSYour Name  * Return: True if capability is supported, else False
1047*5113495bSYour Name  */
1048*5113495bSYour Name bool wlan_mlme_get_dual_sta_roam_support(struct wlan_objmgr_psoc *psoc);
1049*5113495bSYour Name 
1050*5113495bSYour Name /**
1051*5113495bSYour Name  * wlan_mlme_get_oce_sap_enabled_info() - Get the OCE feature enable
1052*5113495bSYour Name  * info for SAP
1053*5113495bSYour Name  * @psoc: pointer to psoc object
1054*5113495bSYour Name  * @value: pointer to the value which will be filled for the caller
1055*5113495bSYour Name  *
1056*5113495bSYour Name  * Return: QDF Status
1057*5113495bSYour Name  */
1058*5113495bSYour Name QDF_STATUS wlan_mlme_get_oce_sap_enabled_info(struct wlan_objmgr_psoc *psoc,
1059*5113495bSYour Name 					      bool *value);
1060*5113495bSYour Name 
1061*5113495bSYour Name /**
1062*5113495bSYour Name  * wlan_mlme_update_oce_flags() - Update the oce flags to FW
1063*5113495bSYour Name  * @pdev: pointer to pdev object
1064*5113495bSYour Name  *
1065*5113495bSYour Name  * Return: void
1066*5113495bSYour Name  */
1067*5113495bSYour Name void wlan_mlme_update_oce_flags(struct wlan_objmgr_pdev *pdev);
1068*5113495bSYour Name 
1069*5113495bSYour Name /**
1070*5113495bSYour Name  * wlan_mlme_cfg_get_aux_supported_modes() - get supported mode of aux.
1071*5113495bSYour Name  *             definition of bitmap refer WMI_AUX_DEV_CAPS_SUPPORTED_MODE.
1072*5113495bSYour Name  *
1073*5113495bSYour Name  * @psoc: pointer to psoc object
1074*5113495bSYour Name  * @aux_index: aux index, current only support aux0.
1075*5113495bSYour Name  * @hw_mode_id: hw mode id
1076*5113495bSYour Name  * @supported_modes_bitmap: output for value
1077*5113495bSYour Name  *
1078*5113495bSYour Name  * Return: true for getting value. false for failure check.
1079*5113495bSYour Name  */
1080*5113495bSYour Name bool wlan_mlme_cfg_get_aux_supported_modes(
1081*5113495bSYour Name 		struct wlan_objmgr_psoc *psoc,
1082*5113495bSYour Name 		uint32_t aux_index,
1083*5113495bSYour Name 		enum wlan_mlme_hw_mode_config_type hw_mode_id,
1084*5113495bSYour Name 		uint32_t *supported_modes_bitmap);
1085*5113495bSYour Name 
1086*5113495bSYour Name /**
1087*5113495bSYour Name  * wlan_mlme_is_aux_scan_support() - check whether aux scan is supported.
1088*5113495bSYour Name  * @psoc: pointer to psoc object
1089*5113495bSYour Name  * @hw_mode_id: hw mode id
1090*5113495bSYour Name  *
1091*5113495bSYour Name  * Return: true if supporting, else false
1092*5113495bSYour Name  */
1093*5113495bSYour Name bool
1094*5113495bSYour Name wlan_mlme_is_aux_scan_support(struct wlan_objmgr_psoc *psoc,
1095*5113495bSYour Name 			      enum wlan_mlme_hw_mode_config_type hw_mode_id);
1096*5113495bSYour Name 
1097*5113495bSYour Name /**
1098*5113495bSYour Name  * wlan_mlme_is_aux_listen_support() - check whether aux listen is supported.
1099*5113495bSYour Name  * @psoc: pointer to psoc object
1100*5113495bSYour Name  * @hw_mode_id: hw mode id
1101*5113495bSYour Name  *
1102*5113495bSYour Name  * Return: true if supporting, else false
1103*5113495bSYour Name  */
1104*5113495bSYour Name bool
1105*5113495bSYour Name wlan_mlme_is_aux_listen_support(struct wlan_objmgr_psoc *psoc,
1106*5113495bSYour Name 				enum wlan_mlme_hw_mode_config_type hw_mode_id);
1107*5113495bSYour Name 
1108*5113495bSYour Name /**
1109*5113495bSYour Name  * wlan_mlme_is_aux_emlsr_support() - check whether aux emlsr is supported.
1110*5113495bSYour Name  * @psoc: pointer to psoc object
1111*5113495bSYour Name  * @hw_mode_id: hw mode id
1112*5113495bSYour Name  *
1113*5113495bSYour Name  * Return: true if supporting, else false
1114*5113495bSYour Name  */
1115*5113495bSYour Name bool
1116*5113495bSYour Name wlan_mlme_is_aux_emlsr_support(struct wlan_objmgr_psoc *psoc,
1117*5113495bSYour Name 			       enum wlan_mlme_hw_mode_config_type hw_mode_id);
1118*5113495bSYour Name 
1119*5113495bSYour Name #ifdef WLAN_FEATURE_11AX
1120*5113495bSYour Name /**
1121*5113495bSYour Name  * wlan_mlme_cfg_get_he_ul_mumimo() - Get the HE Ul Mumio
1122*5113495bSYour Name  * @psoc: pointer to psoc object
1123*5113495bSYour Name  * @value: Value that needs to be set from the caller
1124*5113495bSYour Name  *
1125*5113495bSYour Name  * Return: QDF Status
1126*5113495bSYour Name  */
1127*5113495bSYour Name QDF_STATUS wlan_mlme_cfg_get_he_ul_mumimo(struct wlan_objmgr_psoc *psoc,
1128*5113495bSYour Name 					  uint32_t *value);
1129*5113495bSYour Name 
1130*5113495bSYour Name /**
1131*5113495bSYour Name  * wlan_mlme_cfg_set_he_ul_mumimo() - Set the HE Ul Mumio
1132*5113495bSYour Name  * @psoc: pointer to psoc object
1133*5113495bSYour Name  * @value: Value that needs to be set from the caller
1134*5113495bSYour Name  *
1135*5113495bSYour Name  * Return: QDF Status
1136*5113495bSYour Name  */
1137*5113495bSYour Name QDF_STATUS wlan_mlme_cfg_set_he_ul_mumimo(struct wlan_objmgr_psoc *psoc,
1138*5113495bSYour Name 					  uint32_t value);
1139*5113495bSYour Name 
1140*5113495bSYour Name /**
1141*5113495bSYour Name  * mlme_cfg_get_he_caps() - Get the HE capability info
1142*5113495bSYour Name  * @psoc: pointer to psoc object
1143*5113495bSYour Name  * @he_cap: Caps that needs to be filled.
1144*5113495bSYour Name  *
1145*5113495bSYour Name  * Return: QDF Status
1146*5113495bSYour Name  */
1147*5113495bSYour Name QDF_STATUS mlme_cfg_get_he_caps(struct wlan_objmgr_psoc *psoc,
1148*5113495bSYour Name 				tDot11fIEhe_cap *he_cap);
1149*5113495bSYour Name 
1150*5113495bSYour Name /**
1151*5113495bSYour Name  * wlan_mlme_cfg_get_enable_ul_mimo() - Get the HE Ul mimo
1152*5113495bSYour Name  * @psoc: pointer to psoc object
1153*5113495bSYour Name  * @value: Value that needs to be set from the caller
1154*5113495bSYour Name  *
1155*5113495bSYour Name  * Return: QDF Status
1156*5113495bSYour Name  */
1157*5113495bSYour Name QDF_STATUS wlan_mlme_cfg_get_enable_ul_mimo(struct wlan_objmgr_psoc *psoc,
1158*5113495bSYour Name 					    uint8_t *value);
1159*5113495bSYour Name 
1160*5113495bSYour Name /**
1161*5113495bSYour Name  * wlan_mlme_cfg_get_enable_ul_ofdm() - Get enable ul ofdm
1162*5113495bSYour Name  * @psoc: pointer to psoc object
1163*5113495bSYour Name  * @value: Value that needs to be set from the caller
1164*5113495bSYour Name  *
1165*5113495bSYour Name  * Return: QDF Status
1166*5113495bSYour Name  */
1167*5113495bSYour Name QDF_STATUS wlan_mlme_cfg_get_enable_ul_ofdm(struct wlan_objmgr_psoc *psoc,
1168*5113495bSYour Name 					    uint8_t *value);
1169*5113495bSYour Name 
1170*5113495bSYour Name /**
1171*5113495bSYour Name  * mlme_update_tgt_he_caps_in_cfg() - Update tgt he cap in mlme component
1172*5113495bSYour Name  * @psoc: pointer to psoc object
1173*5113495bSYour Name  * @cfg: pointer to config params from target
1174*5113495bSYour Name  *
1175*5113495bSYour Name  * This api to be used by callers to update
1176*5113495bSYour Name  * he caps in mlme.
1177*5113495bSYour Name  *
1178*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS or QDF_STATUS_FAILURE
1179*5113495bSYour Name  */
1180*5113495bSYour Name QDF_STATUS mlme_update_tgt_he_caps_in_cfg(struct wlan_objmgr_psoc *psoc,
1181*5113495bSYour Name 					  struct wma_tgt_cfg *cfg);
1182*5113495bSYour Name #endif
1183*5113495bSYour Name 
1184*5113495bSYour Name /**
1185*5113495bSYour Name  * wlan_mlme_convert_vht_op_bw_to_phy_ch_width() - convert channel width in VHT
1186*5113495bSYour Name  *                                                 operation IE to phy_ch_width
1187*5113495bSYour Name  * @channel_width: channel width in VHT operation IE.
1188*5113495bSYour Name  * @chan_id: channel id
1189*5113495bSYour Name  * @ccfs0: channel center frequency segment 0
1190*5113495bSYour Name  * @ccfs1: channel center frequency segment 1
1191*5113495bSYour Name  *
1192*5113495bSYour Name  * Return: phy_ch_width
1193*5113495bSYour Name  */
1194*5113495bSYour Name enum phy_ch_width
1195*5113495bSYour Name wlan_mlme_convert_vht_op_bw_to_phy_ch_width(uint8_t channel_width,
1196*5113495bSYour Name 					    uint8_t chan_id,
1197*5113495bSYour Name 					    uint8_t ccfs0,
1198*5113495bSYour Name 					    uint8_t ccfs1);
1199*5113495bSYour Name 
1200*5113495bSYour Name /**
1201*5113495bSYour Name  * wlan_mlme_convert_he_6ghz_op_bw_to_phy_ch_width() - convert channel width in
1202*5113495bSYour Name  *                                          he 6ghz peration IE to phy_ch_width
1203*5113495bSYour Name  * @channel_width: channel width in HE operation IE.
1204*5113495bSYour Name  * @chan_id: channel id
1205*5113495bSYour Name  * @ccfs0: channel center frequency segment 0
1206*5113495bSYour Name  * @ccfs1: channel center frequency segment 1
1207*5113495bSYour Name  *
1208*5113495bSYour Name  * Return: phy_ch_width
1209*5113495bSYour Name  */
1210*5113495bSYour Name enum phy_ch_width
1211*5113495bSYour Name wlan_mlme_convert_he_6ghz_op_bw_to_phy_ch_width(uint8_t channel_width,
1212*5113495bSYour Name 						uint8_t chan_id,
1213*5113495bSYour Name 						uint8_t ccfs0,
1214*5113495bSYour Name 						uint8_t ccfs1);
1215*5113495bSYour Name 
1216*5113495bSYour Name /**
1217*5113495bSYour Name  * wlan_mlme_chan_stats_scan_event_cb() - process connected channel stats
1218*5113495bSYour Name  * scan event
1219*5113495bSYour Name  * @vdev: pointer to vdev object
1220*5113495bSYour Name  * @event: scan event definition
1221*5113495bSYour Name  * @arg: scan argument
1222*5113495bSYour Name  *
1223*5113495bSYour Name  * Return: none
1224*5113495bSYour Name  */
1225*5113495bSYour Name void wlan_mlme_chan_stats_scan_event_cb(struct wlan_objmgr_vdev *vdev,
1226*5113495bSYour Name 					struct scan_event *event, void *arg);
1227*5113495bSYour Name 
1228*5113495bSYour Name /**
1229*5113495bSYour Name  * wlan_mlme_send_ch_width_update_with_notify() - update connected VDEV
1230*5113495bSYour Name  * channel bandwidth
1231*5113495bSYour Name  * @psoc: pointer to psoc object
1232*5113495bSYour Name  * @vdev: pointer to vdev object
1233*5113495bSYour Name  * @link_id: mlo link id
1234*5113495bSYour Name  * @ch_width: channel width to update
1235*5113495bSYour Name  *
1236*5113495bSYour Name  * Return: none
1237*5113495bSYour Name  */
1238*5113495bSYour Name QDF_STATUS
1239*5113495bSYour Name wlan_mlme_send_ch_width_update_with_notify(struct wlan_objmgr_psoc *psoc,
1240*5113495bSYour Name 					   struct wlan_objmgr_vdev *vdev,
1241*5113495bSYour Name 					   uint8_t link_id,
1242*5113495bSYour Name 					   enum phy_ch_width ch_width);
1243*5113495bSYour Name 
1244*5113495bSYour Name /**
1245*5113495bSYour Name  * wlan_mlme_update_bss_rate_flags() - update bss rate flag as per new channel
1246*5113495bSYour Name  * width
1247*5113495bSYour Name  * @psoc: pointer to psoc object
1248*5113495bSYour Name  * @vdev_id: Vdev id
1249*5113495bSYour Name  * @cw: channel width to update
1250*5113495bSYour Name  * @eht_present: connected bss is eht capable or not
1251*5113495bSYour Name  * @he_present: connected bss is he capable or not
1252*5113495bSYour Name  * @vht_present: connected bss is vht capable or not
1253*5113495bSYour Name  * @ht_present: connected bss is ht capable or not
1254*5113495bSYour Name  *
1255*5113495bSYour Name  * Return: QDF_STATUS
1256*5113495bSYour Name  */
1257*5113495bSYour Name QDF_STATUS wlan_mlme_update_bss_rate_flags(struct wlan_objmgr_psoc *psoc,
1258*5113495bSYour Name 					   uint8_t vdev_id,
1259*5113495bSYour Name 					   enum phy_ch_width cw,
1260*5113495bSYour Name 					   uint8_t eht_present,
1261*5113495bSYour Name 					   uint8_t he_present,
1262*5113495bSYour Name 					   uint8_t vht_present,
1263*5113495bSYour Name 					   uint8_t ht_present);
1264*5113495bSYour Name 
1265*5113495bSYour Name #ifdef WLAN_FEATURE_11BE
1266*5113495bSYour Name /**
1267*5113495bSYour Name  * mlme_update_tgt_eht_caps_in_cfg() - Update tgt eht cap in mlme component
1268*5113495bSYour Name  * @psoc: pointer to psoc object
1269*5113495bSYour Name  * @cfg: pointer to config params from target
1270*5113495bSYour Name  *
1271*5113495bSYour Name  * This api to be used by callers to update EHT caps in mlme.
1272*5113495bSYour Name  *
1273*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS or QDF_STATUS_FAILURE
1274*5113495bSYour Name  */
1275*5113495bSYour Name QDF_STATUS mlme_update_tgt_eht_caps_in_cfg(struct wlan_objmgr_psoc *psoc,
1276*5113495bSYour Name 					  struct wma_tgt_cfg *cfg);
1277*5113495bSYour Name 
1278*5113495bSYour Name /**
1279*5113495bSYour Name  * mlme_update_tgt_mlo_caps_in_cfg() - Update tgt MLO cap in mlme component
1280*5113495bSYour Name  * @psoc: pointer to psoc object
1281*5113495bSYour Name  *
1282*5113495bSYour Name  * This api to be used by callers to update MLO caps in mlme.
1283*5113495bSYour Name  *
1284*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS or QDF_STATUS_FAILURE
1285*5113495bSYour Name  */
1286*5113495bSYour Name QDF_STATUS mlme_update_tgt_mlo_caps_in_cfg(struct wlan_objmgr_psoc *psoc);
1287*5113495bSYour Name 
1288*5113495bSYour Name /**
1289*5113495bSYour Name  * wlan_mlme_convert_eht_op_bw_to_phy_ch_width() - convert channel width in eht
1290*5113495bSYour Name  *                                                 operation IE to phy_ch_width
1291*5113495bSYour Name  * @channel_width: channel width in eht operation IE
1292*5113495bSYour Name  *
1293*5113495bSYour Name  * Return: phy_ch_width
1294*5113495bSYour Name  */
1295*5113495bSYour Name enum phy_ch_width wlan_mlme_convert_eht_op_bw_to_phy_ch_width(
1296*5113495bSYour Name 						uint8_t channel_width);
1297*5113495bSYour Name 
1298*5113495bSYour Name /**
1299*5113495bSYour Name  * wlan_mlme_convert_phy_ch_width_to_eht_op_bw() - convert channel width to eht
1300*5113495bSYour Name  *                                                 operation IE format
1301*5113495bSYour Name  * @ch_width: phy_ch_width
1302*5113495bSYour Name  *
1303*5113495bSYour Name  * Return: channel width in eht operation IE
1304*5113495bSYour Name  */
1305*5113495bSYour Name uint8_t wlan_mlme_convert_phy_ch_width_to_eht_op_bw(enum phy_ch_width ch_width);
1306*5113495bSYour Name 
1307*5113495bSYour Name /**
1308*5113495bSYour Name  * wlan_mlme_get_epcs_capability() - Get mlme epcs capability flag
1309*5113495bSYour Name  * @psoc: psoc object
1310*5113495bSYour Name  *
1311*5113495bSYour Name  * Return: true if epcs capability enabled
1312*5113495bSYour Name  */
1313*5113495bSYour Name bool wlan_mlme_get_epcs_capability(struct wlan_objmgr_psoc *psoc);
1314*5113495bSYour Name 
1315*5113495bSYour Name /**
1316*5113495bSYour Name  * wlan_mlme_set_epcs_capability() - Set mlme epcs capability flag
1317*5113495bSYour Name  * @psoc: psoc object
1318*5113495bSYour Name  * @flag: epcs capability flag
1319*5113495bSYour Name  *
1320*5113495bSYour Name  * Return: void
1321*5113495bSYour Name  */
1322*5113495bSYour Name void wlan_mlme_set_epcs_capability(struct wlan_objmgr_psoc *psoc, bool flag);
1323*5113495bSYour Name 
1324*5113495bSYour Name /**
1325*5113495bSYour Name  * wlan_mlme_get_usr_disable_sta_eht() - Get user disable sta eht flag
1326*5113495bSYour Name  * @psoc: psoc object
1327*5113495bSYour Name  *
1328*5113495bSYour Name  * Return: true if user has disabled eht in connect request
1329*5113495bSYour Name  */
1330*5113495bSYour Name bool wlan_mlme_get_usr_disable_sta_eht(struct wlan_objmgr_psoc *psoc);
1331*5113495bSYour Name 
1332*5113495bSYour Name /**
1333*5113495bSYour Name  * wlan_mlme_set_usr_disable_sta_eht() - Set user disable sta eht flag
1334*5113495bSYour Name  * @psoc: psoc object
1335*5113495bSYour Name  * @disable: eht disable flag
1336*5113495bSYour Name  *
1337*5113495bSYour Name  * Return: void
1338*5113495bSYour Name  */
1339*5113495bSYour Name void wlan_mlme_set_usr_disable_sta_eht(struct wlan_objmgr_psoc *psoc,
1340*5113495bSYour Name 				       bool disable);
1341*5113495bSYour Name 
1342*5113495bSYour Name /**
1343*5113495bSYour Name  * wlan_mlme_get_eht_disable_punct_in_us_lpi() - Get disable eht punct in us
1344*5113495bSYour Name  * lpi mode flag.
1345*5113495bSYour Name  * @psoc: psoc object
1346*5113495bSYour Name  *
1347*5113495bSYour Name  * Return: true if eht punct disabled in us lpi mode
1348*5113495bSYour Name  */
1349*5113495bSYour Name bool wlan_mlme_get_eht_disable_punct_in_us_lpi(struct wlan_objmgr_psoc *psoc);
1350*5113495bSYour Name 
1351*5113495bSYour Name /**
1352*5113495bSYour Name  * wlan_mlme_set_eht_disable_punct_in_us_lpi() - Set disable eht punct in us
1353*5113495bSYour Name  * lpi mode flag.
1354*5113495bSYour Name  * @psoc: psoc object
1355*5113495bSYour Name  * @flag: true if eht punct disabled in us lpi mode
1356*5113495bSYour Name  *
1357*5113495bSYour Name  * Return: void
1358*5113495bSYour Name  */
1359*5113495bSYour Name void wlan_mlme_set_eht_disable_punct_in_us_lpi(struct wlan_objmgr_psoc *psoc,
1360*5113495bSYour Name 					       bool flag);
1361*5113495bSYour Name /**
1362*5113495bSYour Name  * wlan_mlme_update_bw_no_punct() - update connected VDEV
1363*5113495bSYour Name  * channel bandwidth without puncture bitmap for FCC requirement
1364*5113495bSYour Name  * @psoc: pointer to SOC object
1365*5113495bSYour Name  * @vdev_id: vdev id
1366*5113495bSYour Name  *
1367*5113495bSYour Name  * Return: none
1368*5113495bSYour Name  */
1369*5113495bSYour Name QDF_STATUS
1370*5113495bSYour Name wlan_mlme_update_bw_no_punct(struct wlan_objmgr_psoc *psoc,
1371*5113495bSYour Name 			     uint8_t vdev_id);
1372*5113495bSYour Name 
1373*5113495bSYour Name /**
1374*5113495bSYour Name  * wlan_mlme_get_bw_no_punct() - Get connected VDEV
1375*5113495bSYour Name  * channel bandwidth without puncture bitmap for FCC requirement
1376*5113495bSYour Name  * @psoc: pointer to SOC object
1377*5113495bSYour Name  * @vdev: pointer to vdev
1378*5113495bSYour Name  * @bss_chan: bss chan with puncture
1379*5113495bSYour Name  * @new_ch_width: pointer to new channel bandwidth without puncture
1380*5113495bSYour Name  * Return: none
1381*5113495bSYour Name  */
1382*5113495bSYour Name QDF_STATUS
1383*5113495bSYour Name wlan_mlme_get_bw_no_punct(struct wlan_objmgr_psoc *psoc,
1384*5113495bSYour Name 			  struct wlan_objmgr_vdev *vdev,
1385*5113495bSYour Name 			  struct wlan_channel *bss_chan,
1386*5113495bSYour Name 			  enum phy_ch_width *new_ch_width);
1387*5113495bSYour Name #else
1388*5113495bSYour Name static inline
wlan_mlme_get_epcs_capability(struct wlan_objmgr_psoc * psoc)1389*5113495bSYour Name bool wlan_mlme_get_epcs_capability(struct wlan_objmgr_psoc *psoc)
1390*5113495bSYour Name {
1391*5113495bSYour Name 	return false;
1392*5113495bSYour Name }
1393*5113495bSYour Name 
1394*5113495bSYour Name static inline
wlan_mlme_set_epcs_capability(struct wlan_objmgr_psoc * psoc,bool flag)1395*5113495bSYour Name void wlan_mlme_set_epcs_capability(struct wlan_objmgr_psoc *psoc, bool flag)
1396*5113495bSYour Name {
1397*5113495bSYour Name }
1398*5113495bSYour Name 
1399*5113495bSYour Name static inline
wlan_mlme_get_usr_disable_sta_eht(struct wlan_objmgr_psoc * psoc)1400*5113495bSYour Name bool wlan_mlme_get_usr_disable_sta_eht(struct wlan_objmgr_psoc *psoc)
1401*5113495bSYour Name {
1402*5113495bSYour Name 	return true;
1403*5113495bSYour Name }
1404*5113495bSYour Name 
1405*5113495bSYour Name static inline
wlan_mlme_set_usr_disable_sta_eht(struct wlan_objmgr_psoc * psoc,bool disable)1406*5113495bSYour Name void wlan_mlme_set_usr_disable_sta_eht(struct wlan_objmgr_psoc *psoc,
1407*5113495bSYour Name 				       bool disable)
1408*5113495bSYour Name {
1409*5113495bSYour Name }
1410*5113495bSYour Name 
1411*5113495bSYour Name static inline
wlan_mlme_get_eht_disable_punct_in_us_lpi(struct wlan_objmgr_psoc * psoc)1412*5113495bSYour Name bool wlan_mlme_get_eht_disable_punct_in_us_lpi(struct wlan_objmgr_psoc *psoc)
1413*5113495bSYour Name {
1414*5113495bSYour Name 	return false;
1415*5113495bSYour Name }
1416*5113495bSYour Name 
1417*5113495bSYour Name static inline
wlan_mlme_set_eht_disable_punct_in_us_lpi(struct wlan_objmgr_psoc * psoc,bool flag)1418*5113495bSYour Name void wlan_mlme_set_eht_disable_punct_in_us_lpi(struct wlan_objmgr_psoc *psoc,
1419*5113495bSYour Name 					       bool flag)
1420*5113495bSYour Name {
1421*5113495bSYour Name }
1422*5113495bSYour Name 
1423*5113495bSYour Name static inline QDF_STATUS
wlan_mlme_update_bw_no_punct(struct wlan_objmgr_psoc * psoc,uint8_t vdev_id)1424*5113495bSYour Name wlan_mlme_update_bw_no_punct(struct wlan_objmgr_psoc *psoc,
1425*5113495bSYour Name 			     uint8_t vdev_id)
1426*5113495bSYour Name {
1427*5113495bSYour Name 	return QDF_STATUS_E_INVAL;
1428*5113495bSYour Name }
1429*5113495bSYour Name 
1430*5113495bSYour Name static inline QDF_STATUS
wlan_mlme_get_bw_no_punct(struct wlan_objmgr_psoc * psoc,struct wlan_objmgr_vdev * vdev,struct wlan_channel * bss_chan,enum phy_ch_width * new_ch_width)1431*5113495bSYour Name wlan_mlme_get_bw_no_punct(struct wlan_objmgr_psoc *psoc,
1432*5113495bSYour Name 			  struct wlan_objmgr_vdev *vdev,
1433*5113495bSYour Name 			  struct wlan_channel *bss_chan,
1434*5113495bSYour Name 			  enum phy_ch_width *new_ch_width)
1435*5113495bSYour Name {
1436*5113495bSYour Name 	return QDF_STATUS_E_INVAL;
1437*5113495bSYour Name }
1438*5113495bSYour Name #endif
1439*5113495bSYour Name 
1440*5113495bSYour Name /**
1441*5113495bSYour Name  * wlan_mlme_is_ap_prot_enabled() - check if sap protection is enabled
1442*5113495bSYour Name  * @psoc: pointer to psoc object
1443*5113495bSYour Name  *
1444*5113495bSYour Name  * Return: is_ap_prot_enabled flag
1445*5113495bSYour Name  */
1446*5113495bSYour Name bool wlan_mlme_is_ap_prot_enabled(struct wlan_objmgr_psoc *psoc);
1447*5113495bSYour Name 
1448*5113495bSYour Name /**
1449*5113495bSYour Name  * wlan_mlme_get_ap_protection_mode() - Get ap_protection_mode value
1450*5113495bSYour Name  * @psoc: pointer to psoc object
1451*5113495bSYour Name  * @value: pointer to the value which needs to be filled for the caller
1452*5113495bSYour Name  *
1453*5113495bSYour Name  * Return: QDF Status
1454*5113495bSYour Name  */
1455*5113495bSYour Name QDF_STATUS wlan_mlme_get_ap_protection_mode(struct wlan_objmgr_psoc *psoc,
1456*5113495bSYour Name 					    uint16_t *value);
1457*5113495bSYour Name 
1458*5113495bSYour Name /**
1459*5113495bSYour Name  * wlan_mlme_is_ap_obss_prot_enabled() - Get ap_obss_protection is
1460*5113495bSYour Name  * enabled/disabled
1461*5113495bSYour Name  * @psoc: pointer to psoc object
1462*5113495bSYour Name  * @value: pointer to the value which needs to be filled for the caller
1463*5113495bSYour Name  *
1464*5113495bSYour Name  * Return: QDF Status
1465*5113495bSYour Name  */
1466*5113495bSYour Name QDF_STATUS wlan_mlme_is_ap_obss_prot_enabled(struct wlan_objmgr_psoc *psoc,
1467*5113495bSYour Name 					     bool *value);
1468*5113495bSYour Name 
1469*5113495bSYour Name /**
1470*5113495bSYour Name  * wlan_mlme_get_rts_threshold() - Get the RTS threshold config
1471*5113495bSYour Name  * @psoc: pointer to psoc object
1472*5113495bSYour Name  * @value: pointer to the value which will be filled for the caller
1473*5113495bSYour Name  *
1474*5113495bSYour Name  * Return: QDF Status
1475*5113495bSYour Name  */
1476*5113495bSYour Name QDF_STATUS wlan_mlme_get_rts_threshold(struct wlan_objmgr_psoc *psoc,
1477*5113495bSYour Name 				       uint32_t *value);
1478*5113495bSYour Name 
1479*5113495bSYour Name /**
1480*5113495bSYour Name  * wlan_mlme_set_rts_threshold() - Set the RTS threshold config
1481*5113495bSYour Name  * @psoc: pointer to psoc object
1482*5113495bSYour Name  * @value: Value that needs to be set from the caller
1483*5113495bSYour Name  *
1484*5113495bSYour Name  * Return: QDF Status
1485*5113495bSYour Name  */
1486*5113495bSYour Name QDF_STATUS wlan_mlme_set_rts_threshold(struct wlan_objmgr_psoc *psoc,
1487*5113495bSYour Name 				       uint32_t value);
1488*5113495bSYour Name 
1489*5113495bSYour Name /**
1490*5113495bSYour Name  * wlan_mlme_get_frag_threshold() - Get the Fragmentation threshold
1491*5113495bSYour Name  *                                  config
1492*5113495bSYour Name  * @psoc: pointer to psoc object
1493*5113495bSYour Name  * @value: pointer to the value which will be filled for the caller
1494*5113495bSYour Name  *
1495*5113495bSYour Name  * Return: QDF Status
1496*5113495bSYour Name  */
1497*5113495bSYour Name QDF_STATUS wlan_mlme_get_frag_threshold(struct wlan_objmgr_psoc *psoc,
1498*5113495bSYour Name 					uint32_t *value);
1499*5113495bSYour Name 
1500*5113495bSYour Name /**
1501*5113495bSYour Name  * wlan_mlme_set_frag_threshold() - Set the Fragmentation threshold
1502*5113495bSYour Name  *                                  config
1503*5113495bSYour Name  * @psoc: pointer to psoc object
1504*5113495bSYour Name  * @value: Value that needs to be set from the caller
1505*5113495bSYour Name  *
1506*5113495bSYour Name  * Return: QDF Status
1507*5113495bSYour Name  */
1508*5113495bSYour Name QDF_STATUS wlan_mlme_set_frag_threshold(struct wlan_objmgr_psoc *psoc,
1509*5113495bSYour Name 					uint32_t value);
1510*5113495bSYour Name 
1511*5113495bSYour Name /**
1512*5113495bSYour Name  * wlan_mlme_get_fils_enabled_info() - Get the fils enable info for driver
1513*5113495bSYour Name  * @psoc: pointer to psoc object
1514*5113495bSYour Name  * @value: pointer to the value which will be filled for the caller
1515*5113495bSYour Name  *
1516*5113495bSYour Name  * Return: QDF Status
1517*5113495bSYour Name  */
1518*5113495bSYour Name QDF_STATUS wlan_mlme_get_fils_enabled_info(struct wlan_objmgr_psoc *psoc,
1519*5113495bSYour Name 					   bool *value);
1520*5113495bSYour Name /**
1521*5113495bSYour Name  * wlan_mlme_set_fils_enabled_info() - Set the fils enable info for driver
1522*5113495bSYour Name  * @psoc: pointer to psoc object
1523*5113495bSYour Name  * @value: value that needs to be set from the caller
1524*5113495bSYour Name  *
1525*5113495bSYour Name  * Return: QDF Status
1526*5113495bSYour Name  */
1527*5113495bSYour Name QDF_STATUS wlan_mlme_set_fils_enabled_info(struct wlan_objmgr_psoc *psoc,
1528*5113495bSYour Name 					   bool value);
1529*5113495bSYour Name 
1530*5113495bSYour Name /**
1531*5113495bSYour Name  * wlan_mlme_set_primary_interface() - Set the primary iface id for driver
1532*5113495bSYour Name  * @psoc: pointer to psoc object
1533*5113495bSYour Name  * @value: value that needs to be set from the caller
1534*5113495bSYour Name  *
1535*5113495bSYour Name  * When a vdev is set as primary then based on the dual sta policy
1536*5113495bSYour Name  * "qca_wlan_concurrent_sta_policy_config" mcc preference and roaming has
1537*5113495bSYour Name  * to be enabled on the primary vdev
1538*5113495bSYour Name  *
1539*5113495bSYour Name  * Return: QDF Status
1540*5113495bSYour Name  */
1541*5113495bSYour Name QDF_STATUS wlan_mlme_set_primary_interface(struct wlan_objmgr_psoc *psoc,
1542*5113495bSYour Name 					   uint8_t value);
1543*5113495bSYour Name 
1544*5113495bSYour Name /**
1545*5113495bSYour Name  * wlan_mlme_set_default_primary_iface() - Set the default primary iface id
1546*5113495bSYour Name  * for driver
1547*5113495bSYour Name  * @psoc: pointer to psoc object
1548*5113495bSYour Name  *
1549*5113495bSYour Name  * Return: QDF Status
1550*5113495bSYour Name  */
1551*5113495bSYour Name QDF_STATUS wlan_mlme_set_default_primary_iface(struct wlan_objmgr_psoc *psoc);
1552*5113495bSYour Name 
1553*5113495bSYour Name /**
1554*5113495bSYour Name  * wlan_mlme_is_primary_interface_configured() - Check if primary iface is set
1555*5113495bSYour Name  * @psoc: pointer to psoc object
1556*5113495bSYour Name  *
1557*5113495bSYour Name  * Check if primary iface is configured from userspace through vendor command.
1558*5113495bSYour Name  * Return true if it's configured. If it's not configured, default value would
1559*5113495bSYour Name  * be 0xFF and return false then.
1560*5113495bSYour Name  *
1561*5113495bSYour Name  * Return: True or False
1562*5113495bSYour Name  */
1563*5113495bSYour Name bool wlan_mlme_is_primary_interface_configured(struct wlan_objmgr_psoc *psoc);
1564*5113495bSYour Name 
1565*5113495bSYour Name /**
1566*5113495bSYour Name  * wlan_mlme_peer_get_assoc_rsp_ies() - Get the assoc response IEs of peer
1567*5113495bSYour Name  * @peer: WLAN peer objmgr
1568*5113495bSYour Name  * @ie_buf: Pointer to IE buffer
1569*5113495bSYour Name  * @ie_len: Length of the IE buffer
1570*5113495bSYour Name  *
1571*5113495bSYour Name  * Get the pointer to assoc response IEs of the peer from MLME
1572*5113495bSYour Name  * and length of the IE buffer.
1573*5113495bSYour Name  *
1574*5113495bSYour Name  * Return: QDF_STATUS
1575*5113495bSYour Name  */
1576*5113495bSYour Name QDF_STATUS wlan_mlme_peer_get_assoc_rsp_ies(struct wlan_objmgr_peer *peer,
1577*5113495bSYour Name 					    const uint8_t **ie_buf,
1578*5113495bSYour Name 					    size_t *ie_len);
1579*5113495bSYour Name 
1580*5113495bSYour Name /**
1581*5113495bSYour Name  * wlan_mlme_get_mcc_duty_cycle_percentage() - Get primary STA iface duty
1582*5113495bSYour Name  * cycle percentage
1583*5113495bSYour Name  * @pdev: pointer to pdev object
1584*5113495bSYour Name  *
1585*5113495bSYour Name  * API to get the MCC duty cycle for primary and secondary STA's
1586*5113495bSYour Name  *
1587*5113495bSYour Name  * Return: primary iface quota on success
1588*5113495bSYour Name  */
1589*5113495bSYour Name int wlan_mlme_get_mcc_duty_cycle_percentage(struct wlan_objmgr_pdev *pdev);
1590*5113495bSYour Name 
1591*5113495bSYour Name /**
1592*5113495bSYour Name  * wlan_mlme_get_tl_delayed_trgr_frm_int() - Get delay interval(in ms)
1593*5113495bSYour Name  * of UAPSD auto trigger
1594*5113495bSYour Name  * @psoc: pointer to psoc object
1595*5113495bSYour Name  * @value: Value that needs to be set from the caller
1596*5113495bSYour Name  *
1597*5113495bSYour Name  * Return: None
1598*5113495bSYour Name  */
1599*5113495bSYour Name void wlan_mlme_get_tl_delayed_trgr_frm_int(struct wlan_objmgr_psoc *psoc,
1600*5113495bSYour Name 					   uint32_t *value);
1601*5113495bSYour Name 
1602*5113495bSYour Name /**
1603*5113495bSYour Name  * wlan_mlme_get_wmm_dir_ac_vi() - Get TSPEC direction
1604*5113495bSYour Name  * for VI
1605*5113495bSYour Name  * @psoc: pointer to psoc object
1606*5113495bSYour Name  * @value: Value that needs to be set from the caller
1607*5113495bSYour Name  *
1608*5113495bSYour Name  * Return: QDF Status
1609*5113495bSYour Name  */
1610*5113495bSYour Name QDF_STATUS
1611*5113495bSYour Name wlan_mlme_get_wmm_dir_ac_vi(struct wlan_objmgr_psoc *psoc, uint8_t *value);
1612*5113495bSYour Name 
1613*5113495bSYour Name /**
1614*5113495bSYour Name  * wlan_mlme_get_wmm_nom_msdu_size_ac_vi() - Get normal
1615*5113495bSYour Name  * MSDU size for VI
1616*5113495bSYour Name  * @psoc: pointer to psoc object
1617*5113495bSYour Name  * @value: Value that needs to be set from the caller
1618*5113495bSYour Name  *
1619*5113495bSYour Name  * Return: QDF Status
1620*5113495bSYour Name  */
1621*5113495bSYour Name QDF_STATUS wlan_mlme_get_wmm_nom_msdu_size_ac_vi(struct wlan_objmgr_psoc *psoc,
1622*5113495bSYour Name 						 uint16_t *value);
1623*5113495bSYour Name 
1624*5113495bSYour Name /**
1625*5113495bSYour Name  * wlan_mlme_get_wmm_mean_data_rate_ac_vi() - mean data
1626*5113495bSYour Name  * rate for VI
1627*5113495bSYour Name  * @psoc: pointer to psoc object
1628*5113495bSYour Name  * @value: Value that needs to be set from the caller
1629*5113495bSYour Name  *
1630*5113495bSYour Name  * Return: QDF Status
1631*5113495bSYour Name  */
1632*5113495bSYour Name QDF_STATUS
1633*5113495bSYour Name wlan_mlme_get_wmm_mean_data_rate_ac_vi(struct wlan_objmgr_psoc *psoc,
1634*5113495bSYour Name 					uint32_t *value);
1635*5113495bSYour Name 
1636*5113495bSYour Name /**
1637*5113495bSYour Name  * wlan_mlme_get_wmm_min_phy_rate_ac_vi() - min PHY
1638*5113495bSYour Name  * rate for VI
1639*5113495bSYour Name  * @psoc: pointer to psoc object
1640*5113495bSYour Name  * @value: Value that needs to be set from the caller
1641*5113495bSYour Name  *
1642*5113495bSYour Name  * Return: QDF Status
1643*5113495bSYour Name  */
1644*5113495bSYour Name QDF_STATUS wlan_mlme_get_wmm_min_phy_rate_ac_vi(struct wlan_objmgr_psoc *psoc,
1645*5113495bSYour Name 						uint32_t *value);
1646*5113495bSYour Name 
1647*5113495bSYour Name /**
1648*5113495bSYour Name  * wlan_mlme_get_wmm_sba_ac_vi() - surplus bandwidth
1649*5113495bSYour Name  * allowance for VI
1650*5113495bSYour Name  * @psoc: pointer to psoc object
1651*5113495bSYour Name  * @value: Value that needs to be set from the caller
1652*5113495bSYour Name  *
1653*5113495bSYour Name  * Return: QDF Status
1654*5113495bSYour Name  */
1655*5113495bSYour Name QDF_STATUS
1656*5113495bSYour Name wlan_mlme_get_wmm_sba_ac_vi(struct wlan_objmgr_psoc *psoc, uint16_t *value);
1657*5113495bSYour Name 
1658*5113495bSYour Name /**
1659*5113495bSYour Name  * wlan_mlme_get_wmm_uapsd_vi_srv_intv() - Get Uapsd service
1660*5113495bSYour Name  * interval for video
1661*5113495bSYour Name  * @psoc: pointer to psoc object
1662*5113495bSYour Name  * @value: pointer to the value which will be filled for the caller
1663*5113495bSYour Name  *
1664*5113495bSYour Name  * Return: QDF Status
1665*5113495bSYour Name  */
1666*5113495bSYour Name QDF_STATUS
1667*5113495bSYour Name wlan_mlme_get_wmm_uapsd_vi_srv_intv(struct wlan_objmgr_psoc *psoc,
1668*5113495bSYour Name 				    uint32_t *value);
1669*5113495bSYour Name 
1670*5113495bSYour Name /**
1671*5113495bSYour Name  * wlan_mlme_get_wmm_uapsd_vi_sus_intv() - Get Uapsd suspension
1672*5113495bSYour Name  * interval for video
1673*5113495bSYour Name  * @psoc: pointer to psoc object
1674*5113495bSYour Name  * @value: pointer to the value which will be filled for the caller
1675*5113495bSYour Name  *
1676*5113495bSYour Name  * Return: QDF Status
1677*5113495bSYour Name  */
1678*5113495bSYour Name QDF_STATUS
1679*5113495bSYour Name wlan_mlme_get_wmm_uapsd_vi_sus_intv(struct wlan_objmgr_psoc *psoc,
1680*5113495bSYour Name 				    uint32_t *value);
1681*5113495bSYour Name 
1682*5113495bSYour Name /**
1683*5113495bSYour Name  * wlan_mlme_get_wmm_dir_ac_be() - Get TSPEC direction
1684*5113495bSYour Name  * for BE
1685*5113495bSYour Name  * @psoc: pointer to psoc object
1686*5113495bSYour Name  * @value: Value that needs to be set from the caller
1687*5113495bSYour Name  *
1688*5113495bSYour Name  * Return: QDF Status
1689*5113495bSYour Name  */
1690*5113495bSYour Name QDF_STATUS
1691*5113495bSYour Name wlan_mlme_get_wmm_dir_ac_be(struct wlan_objmgr_psoc *psoc,
1692*5113495bSYour Name 			    uint8_t *value);
1693*5113495bSYour Name 
1694*5113495bSYour Name /**
1695*5113495bSYour Name  * wlan_mlme_get_wmm_nom_msdu_size_ac_be() - Get normal
1696*5113495bSYour Name  * MSDU size for BE
1697*5113495bSYour Name  * @psoc: pointer to psoc object
1698*5113495bSYour Name  * @value: Value that needs to be set from the caller
1699*5113495bSYour Name  *
1700*5113495bSYour Name  * Return: QDF Status
1701*5113495bSYour Name  */
1702*5113495bSYour Name QDF_STATUS wlan_mlme_get_wmm_nom_msdu_size_ac_be(struct wlan_objmgr_psoc *psoc,
1703*5113495bSYour Name 						 uint16_t *value);
1704*5113495bSYour Name 
1705*5113495bSYour Name /**
1706*5113495bSYour Name  * wlan_mlme_get_wmm_mean_data_rate_ac_be() - mean data
1707*5113495bSYour Name  * rate for BE
1708*5113495bSYour Name  * @psoc: pointer to psoc object
1709*5113495bSYour Name  * @value: Value that needs to be set from the caller
1710*5113495bSYour Name  *
1711*5113495bSYour Name  * Return: QDF Status
1712*5113495bSYour Name  */
1713*5113495bSYour Name QDF_STATUS wlan_mlme_get_wmm_mean_data_rate_ac_be(struct wlan_objmgr_psoc *psoc,
1714*5113495bSYour Name 						  uint32_t *value);
1715*5113495bSYour Name 
1716*5113495bSYour Name /**
1717*5113495bSYour Name  * wlan_mlme_get_wmm_min_phy_rate_ac_be() - min PHY
1718*5113495bSYour Name  * rate for BE
1719*5113495bSYour Name  * @psoc: pointer to psoc object
1720*5113495bSYour Name  * @value: Value that needs to be set from the caller
1721*5113495bSYour Name  *
1722*5113495bSYour Name  * Return: QDF Status
1723*5113495bSYour Name  */
1724*5113495bSYour Name QDF_STATUS wlan_mlme_get_wmm_min_phy_rate_ac_be(struct wlan_objmgr_psoc *psoc,
1725*5113495bSYour Name 						uint32_t *value);
1726*5113495bSYour Name 
1727*5113495bSYour Name /**
1728*5113495bSYour Name  * wlan_mlme_get_wmm_sba_ac_be() - surplus bandwidth
1729*5113495bSYour Name  * allowance for BE
1730*5113495bSYour Name  * @psoc: pointer to psoc object
1731*5113495bSYour Name  * @value: Value that needs to be set from the caller
1732*5113495bSYour Name  *
1733*5113495bSYour Name  * Return: QDF Status
1734*5113495bSYour Name  */
1735*5113495bSYour Name QDF_STATUS
1736*5113495bSYour Name wlan_mlme_get_wmm_sba_ac_be(struct wlan_objmgr_psoc *psoc, uint16_t *value);
1737*5113495bSYour Name 
1738*5113495bSYour Name /**
1739*5113495bSYour Name  * wlan_mlme_get_wmm_uapsd_be_srv_intv() - Get Uapsd service
1740*5113495bSYour Name  * interval for BE
1741*5113495bSYour Name  * @psoc: pointer to psoc object
1742*5113495bSYour Name  * @value: pointer to the value which will be filled for the caller
1743*5113495bSYour Name  *
1744*5113495bSYour Name  * Return: QDF Status
1745*5113495bSYour Name  */
1746*5113495bSYour Name QDF_STATUS
1747*5113495bSYour Name wlan_mlme_get_wmm_uapsd_be_srv_intv(struct wlan_objmgr_psoc *psoc,
1748*5113495bSYour Name 				    uint32_t *value);
1749*5113495bSYour Name 
1750*5113495bSYour Name /**
1751*5113495bSYour Name  * wlan_mlme_get_wmm_uapsd_be_sus_intv() - Get Uapsd suspension
1752*5113495bSYour Name  * interval for BE
1753*5113495bSYour Name  * @psoc: pointer to psoc object
1754*5113495bSYour Name  * @value: pointer to the value which will be filled for the caller
1755*5113495bSYour Name  *
1756*5113495bSYour Name  * Return: QDF Status
1757*5113495bSYour Name  */
1758*5113495bSYour Name QDF_STATUS
1759*5113495bSYour Name wlan_mlme_get_wmm_uapsd_be_sus_intv(struct wlan_objmgr_psoc *psoc,
1760*5113495bSYour Name 				    uint32_t *value);
1761*5113495bSYour Name 
1762*5113495bSYour Name /**
1763*5113495bSYour Name  * wlan_mlme_get_wmm_dir_ac_bk() - Get TSPEC direction
1764*5113495bSYour Name  * for BK
1765*5113495bSYour Name  * @psoc: pointer to psoc object
1766*5113495bSYour Name  * @value: Value that needs to be set from the caller
1767*5113495bSYour Name  *
1768*5113495bSYour Name  * Return: QDF Status
1769*5113495bSYour Name  */
1770*5113495bSYour Name QDF_STATUS
1771*5113495bSYour Name wlan_mlme_get_wmm_dir_ac_bk(struct wlan_objmgr_psoc *psoc, uint8_t *value);
1772*5113495bSYour Name 
1773*5113495bSYour Name /**
1774*5113495bSYour Name  * wlan_mlme_get_wmm_nom_msdu_size_ac_bk() - Get normal
1775*5113495bSYour Name  * MSDU size for BK
1776*5113495bSYour Name  * @psoc: pointer to psoc object
1777*5113495bSYour Name  * @value: Value that needs to be set from the caller
1778*5113495bSYour Name  *
1779*5113495bSYour Name  * Return: QDF Status
1780*5113495bSYour Name  */
1781*5113495bSYour Name QDF_STATUS wlan_mlme_get_wmm_nom_msdu_size_ac_bk(struct wlan_objmgr_psoc *psoc,
1782*5113495bSYour Name 						 uint16_t *value);
1783*5113495bSYour Name 
1784*5113495bSYour Name /**
1785*5113495bSYour Name  * wlan_mlme_get_wmm_mean_data_rate_ac_bk() - mean data
1786*5113495bSYour Name  * rate for BK
1787*5113495bSYour Name  * @psoc: pointer to psoc object
1788*5113495bSYour Name  * @value: Value that needs to be set from the caller
1789*5113495bSYour Name  *
1790*5113495bSYour Name  * Return: QDF Status
1791*5113495bSYour Name  */
1792*5113495bSYour Name QDF_STATUS wlan_mlme_get_wmm_mean_data_rate_ac_bk(struct wlan_objmgr_psoc *psoc,
1793*5113495bSYour Name 						  uint32_t *value);
1794*5113495bSYour Name 
1795*5113495bSYour Name /**
1796*5113495bSYour Name  * wlan_mlme_get_wmm_min_phy_rate_ac_bk() - min PHY
1797*5113495bSYour Name  * rate for BK
1798*5113495bSYour Name  * @psoc: pointer to psoc object
1799*5113495bSYour Name  * @value: Value that needs to be set from the caller
1800*5113495bSYour Name  *
1801*5113495bSYour Name  * Return: QDF Status
1802*5113495bSYour Name  */
1803*5113495bSYour Name QDF_STATUS wlan_mlme_get_wmm_min_phy_rate_ac_bk(struct wlan_objmgr_psoc *psoc,
1804*5113495bSYour Name 						uint32_t *value);
1805*5113495bSYour Name 
1806*5113495bSYour Name /**
1807*5113495bSYour Name  * wlan_mlme_get_wmm_sba_ac_bk() - surplus bandwidth
1808*5113495bSYour Name  * allowance for BE
1809*5113495bSYour Name  * @psoc: pointer to psoc object
1810*5113495bSYour Name  * @value: Value that needs to be set from the caller
1811*5113495bSYour Name  *
1812*5113495bSYour Name  * Return: QDF Status
1813*5113495bSYour Name  */
1814*5113495bSYour Name QDF_STATUS
1815*5113495bSYour Name wlan_mlme_get_wmm_sba_ac_bk(struct wlan_objmgr_psoc *psoc, uint16_t *value);
1816*5113495bSYour Name 
1817*5113495bSYour Name /**
1818*5113495bSYour Name  * wlan_mlme_get_wmm_uapsd_bk_srv_intv() - Get Uapsd service
1819*5113495bSYour Name  * interval for BK
1820*5113495bSYour Name  * @psoc: pointer to psoc object
1821*5113495bSYour Name  * @value: pointer to the value which will be filled for the caller
1822*5113495bSYour Name  *
1823*5113495bSYour Name  * Return: QDF Status
1824*5113495bSYour Name  */
1825*5113495bSYour Name QDF_STATUS
1826*5113495bSYour Name wlan_mlme_get_wmm_uapsd_bk_srv_intv(struct wlan_objmgr_psoc *psoc,
1827*5113495bSYour Name 				    uint32_t *value);
1828*5113495bSYour Name 
1829*5113495bSYour Name /**
1830*5113495bSYour Name  * wlan_mlme_get_wmm_uapsd_bk_sus_intv() - Get Uapsd suspension
1831*5113495bSYour Name  * interval for BK
1832*5113495bSYour Name  * @psoc: pointer to psoc object
1833*5113495bSYour Name  * @value: pointer to the value which will be filled for the caller
1834*5113495bSYour Name  *
1835*5113495bSYour Name  * Return: QDF Status
1836*5113495bSYour Name  */
1837*5113495bSYour Name QDF_STATUS
1838*5113495bSYour Name wlan_mlme_get_wmm_uapsd_bk_sus_intv(struct wlan_objmgr_psoc *psoc,
1839*5113495bSYour Name 				    uint32_t *value);
1840*5113495bSYour Name 
1841*5113495bSYour Name /**
1842*5113495bSYour Name  * wlan_mlme_get_wmm_mode() - Enable WMM feature
1843*5113495bSYour Name  * @psoc: pointer to psoc object
1844*5113495bSYour Name  * @value: pointer to the value which will be filled for the caller
1845*5113495bSYour Name  *
1846*5113495bSYour Name  * Return: QDF Status
1847*5113495bSYour Name  */
1848*5113495bSYour Name QDF_STATUS
1849*5113495bSYour Name wlan_mlme_get_wmm_mode(struct wlan_objmgr_psoc *psoc, uint8_t *value);
1850*5113495bSYour Name 
1851*5113495bSYour Name /**
1852*5113495bSYour Name  * wlan_mlme_get_80211e_is_enabled() - Enable 802.11e feature
1853*5113495bSYour Name  * @psoc: pointer to psoc object
1854*5113495bSYour Name  * @value: pointer to the value which will be filled for the caller
1855*5113495bSYour Name  *
1856*5113495bSYour Name  * Return: QDF Status
1857*5113495bSYour Name  */
1858*5113495bSYour Name QDF_STATUS
1859*5113495bSYour Name wlan_mlme_get_80211e_is_enabled(struct wlan_objmgr_psoc *psoc, bool *value);
1860*5113495bSYour Name 
1861*5113495bSYour Name /**
1862*5113495bSYour Name  * wlan_mlme_get_wmm_uapsd_mask() - setup U-APSD mask for ACs
1863*5113495bSYour Name  * @psoc: pointer to psoc object
1864*5113495bSYour Name  * @value: pointer to the value which will be filled for the caller
1865*5113495bSYour Name  *
1866*5113495bSYour Name  * Return: QDF Status
1867*5113495bSYour Name  */
1868*5113495bSYour Name QDF_STATUS
1869*5113495bSYour Name wlan_mlme_get_wmm_uapsd_mask(struct wlan_objmgr_psoc *psoc, uint8_t *value);
1870*5113495bSYour Name 
1871*5113495bSYour Name #ifdef FEATURE_WLAN_ESE
1872*5113495bSYour Name /**
1873*5113495bSYour Name  * wlan_mlme_get_inactivity_interval() - Infra Inactivity Interval
1874*5113495bSYour Name  * @psoc: pointer to psoc object
1875*5113495bSYour Name  * @value: pointer to the value which will be filled for the caller
1876*5113495bSYour Name  *
1877*5113495bSYour Name  * Return: None
1878*5113495bSYour Name  */
1879*5113495bSYour Name void
1880*5113495bSYour Name wlan_mlme_get_inactivity_interval(struct wlan_objmgr_psoc *psoc,
1881*5113495bSYour Name 				  uint32_t *value);
1882*5113495bSYour Name #endif
1883*5113495bSYour Name 
1884*5113495bSYour Name /**
1885*5113495bSYour Name  * wlan_mlme_get_is_ts_burst_size_enable() - Get TS burst size flag
1886*5113495bSYour Name  * @psoc: pointer to psoc object
1887*5113495bSYour Name  * @value: pointer to the value which will be filled for the caller
1888*5113495bSYour Name  *
1889*5113495bSYour Name  * Return: None
1890*5113495bSYour Name  */
1891*5113495bSYour Name void wlan_mlme_get_is_ts_burst_size_enable(struct wlan_objmgr_psoc *psoc,
1892*5113495bSYour Name 					   bool *value);
1893*5113495bSYour Name 
1894*5113495bSYour Name /**
1895*5113495bSYour Name  * wlan_mlme_get_ts_info_ack_policy() - Get TS ack policy
1896*5113495bSYour Name  * @psoc: pointer to psoc object
1897*5113495bSYour Name  * @value: pointer to the value which will be filled for the caller
1898*5113495bSYour Name  *
1899*5113495bSYour Name  * Return: None
1900*5113495bSYour Name  */
1901*5113495bSYour Name void wlan_mlme_get_ts_info_ack_policy(struct wlan_objmgr_psoc *psoc,
1902*5113495bSYour Name 				      enum mlme_ts_info_ack_policy *value);
1903*5113495bSYour Name 
1904*5113495bSYour Name /**
1905*5113495bSYour Name  * wlan_mlme_get_ts_acm_value_for_ac() - Get ACM value for AC
1906*5113495bSYour Name  * @psoc: pointer to psoc object
1907*5113495bSYour Name  * @value: pointer to the value which will be filled for the caller
1908*5113495bSYour Name  *
1909*5113495bSYour Name  * Return: QDF Status
1910*5113495bSYour Name  */
1911*5113495bSYour Name QDF_STATUS
1912*5113495bSYour Name wlan_mlme_get_ts_acm_value_for_ac(struct wlan_objmgr_psoc *psoc, bool *value);
1913*5113495bSYour Name 
1914*5113495bSYour Name /**
1915*5113495bSYour Name  * wlan_mlme_get_wmm_dir_ac_vo() - Get TSPEC direction
1916*5113495bSYour Name  * for VO
1917*5113495bSYour Name  * @psoc: pointer to psoc object
1918*5113495bSYour Name  * @value: Value that needs to be set from the caller
1919*5113495bSYour Name  *
1920*5113495bSYour Name  * Return: QDF Status
1921*5113495bSYour Name  */
1922*5113495bSYour Name QDF_STATUS
1923*5113495bSYour Name wlan_mlme_get_wmm_dir_ac_vo(struct wlan_objmgr_psoc *psoc, uint8_t *value);
1924*5113495bSYour Name 
1925*5113495bSYour Name /**
1926*5113495bSYour Name  * wlan_mlme_get_wmm_nom_msdu_size_ac_vo() - Get normal
1927*5113495bSYour Name  * MSDU size for VO
1928*5113495bSYour Name  * @psoc: pointer to psoc object
1929*5113495bSYour Name  * @value: Value that needs to be set from the caller
1930*5113495bSYour Name  *
1931*5113495bSYour Name  * Return: QDF Status
1932*5113495bSYour Name  */
1933*5113495bSYour Name QDF_STATUS wlan_mlme_get_wmm_nom_msdu_size_ac_vo(struct wlan_objmgr_psoc *psoc,
1934*5113495bSYour Name 						 uint16_t *value);
1935*5113495bSYour Name 
1936*5113495bSYour Name /**
1937*5113495bSYour Name  * wlan_mlme_get_wmm_mean_data_rate_ac_vo() - mean data rate for VO
1938*5113495bSYour Name  * @psoc: pointer to psoc object
1939*5113495bSYour Name  * @value: Value that needs to be set from the caller
1940*5113495bSYour Name  *
1941*5113495bSYour Name  * Return: QDF Status
1942*5113495bSYour Name  */
1943*5113495bSYour Name QDF_STATUS wlan_mlme_get_wmm_mean_data_rate_ac_vo(struct wlan_objmgr_psoc *psoc,
1944*5113495bSYour Name 						  uint32_t *value);
1945*5113495bSYour Name /**
1946*5113495bSYour Name  * wlan_mlme_get_wmm_min_phy_rate_ac_vo() - min PHY
1947*5113495bSYour Name  * rate for VO
1948*5113495bSYour Name  * @psoc: pointer to psoc object
1949*5113495bSYour Name  * @value: Value that needs to be set from the caller
1950*5113495bSYour Name  *
1951*5113495bSYour Name  * Return: QDF Status
1952*5113495bSYour Name  */
1953*5113495bSYour Name QDF_STATUS wlan_mlme_get_wmm_min_phy_rate_ac_vo(struct wlan_objmgr_psoc *psoc,
1954*5113495bSYour Name 						uint32_t *value);
1955*5113495bSYour Name /**
1956*5113495bSYour Name  * wlan_mlme_get_wmm_sba_ac_vo() - surplus bandwidth allowance for VO
1957*5113495bSYour Name  * @psoc: pointer to psoc object
1958*5113495bSYour Name  * @value: Value that needs to be set from the caller
1959*5113495bSYour Name  *
1960*5113495bSYour Name  *  Return: QDF Status
1961*5113495bSYour Name  */
1962*5113495bSYour Name QDF_STATUS
1963*5113495bSYour Name wlan_mlme_get_wmm_sba_ac_vo(struct wlan_objmgr_psoc *psoc, uint16_t *value);
1964*5113495bSYour Name 
1965*5113495bSYour Name /**
1966*5113495bSYour Name  * wlan_mlme_set_enable_bcast_probe_rsp() - Set enable bcast probe resp info
1967*5113495bSYour Name  * @psoc: pointer to psoc object
1968*5113495bSYour Name  * @value: value that needs to be set from the caller
1969*5113495bSYour Name  *
1970*5113495bSYour Name  * Return: QDF Status
1971*5113495bSYour Name  */
1972*5113495bSYour Name QDF_STATUS wlan_mlme_set_enable_bcast_probe_rsp(struct wlan_objmgr_psoc *psoc,
1973*5113495bSYour Name 						bool value);
1974*5113495bSYour Name 
1975*5113495bSYour Name /**
1976*5113495bSYour Name  * wlan_mlme_get_wmm_uapsd_vo_srv_intv() - Get Uapsd service
1977*5113495bSYour Name  * interval for voice
1978*5113495bSYour Name  * @psoc: pointer to psoc object
1979*5113495bSYour Name  * @value: pointer to the value which will be filled for the caller
1980*5113495bSYour Name  *
1981*5113495bSYour Name  * Return: QDF Status
1982*5113495bSYour Name  */
1983*5113495bSYour Name QDF_STATUS
1984*5113495bSYour Name wlan_mlme_get_wmm_uapsd_vo_srv_intv(struct wlan_objmgr_psoc *psoc,
1985*5113495bSYour Name 				    uint32_t *value);
1986*5113495bSYour Name 
1987*5113495bSYour Name /**
1988*5113495bSYour Name  * wlan_mlme_get_wmm_uapsd_vo_sus_intv() - Get Uapsd suspension
1989*5113495bSYour Name  * interval for voice
1990*5113495bSYour Name  * @psoc: pointer to psoc object
1991*5113495bSYour Name  * @value: pointer to the value which will be filled for the caller
1992*5113495bSYour Name  *
1993*5113495bSYour Name  * Return: QDF Status
1994*5113495bSYour Name  */
1995*5113495bSYour Name QDF_STATUS
1996*5113495bSYour Name wlan_mlme_get_wmm_uapsd_vo_sus_intv(struct wlan_objmgr_psoc *psoc,
1997*5113495bSYour Name 				    uint32_t *value);
1998*5113495bSYour Name 
1999*5113495bSYour Name /**
2000*5113495bSYour Name  * wlan_mlme_cfg_get_vht_max_mpdu_len() - gets vht max mpdu length from cfg item
2001*5113495bSYour Name  * @psoc: psoc context
2002*5113495bSYour Name  * @value: pointer to get required data
2003*5113495bSYour Name  *
2004*5113495bSYour Name  * Return: QDF_STATUS
2005*5113495bSYour Name  */
2006*5113495bSYour Name QDF_STATUS
2007*5113495bSYour Name wlan_mlme_cfg_get_vht_max_mpdu_len(struct wlan_objmgr_psoc *psoc,
2008*5113495bSYour Name 				   uint8_t *value);
2009*5113495bSYour Name 
2010*5113495bSYour Name /**
2011*5113495bSYour Name  * wlan_mlme_cfg_set_vht_max_mpdu_len() - sets vht max mpdu length into cfg item
2012*5113495bSYour Name  * @psoc: psoc context
2013*5113495bSYour Name  * @value: data to be set
2014*5113495bSYour Name  *
2015*5113495bSYour Name  * Return: QDF_STATUS
2016*5113495bSYour Name  */
2017*5113495bSYour Name QDF_STATUS
2018*5113495bSYour Name wlan_mlme_cfg_set_vht_max_mpdu_len(struct wlan_objmgr_psoc *psoc,
2019*5113495bSYour Name 				   uint8_t value);
2020*5113495bSYour Name 
2021*5113495bSYour Name /**
2022*5113495bSYour Name  * wlan_mlme_cfg_get_ht_smps() - gets HT SM Power Save mode from cfg item
2023*5113495bSYour Name  * @psoc: psoc context
2024*5113495bSYour Name  * @value: data to be set
2025*5113495bSYour Name  *
2026*5113495bSYour Name  * Return: QDF_STATUS
2027*5113495bSYour Name  */
2028*5113495bSYour Name QDF_STATUS wlan_mlme_cfg_get_ht_smps(struct wlan_objmgr_psoc *psoc,
2029*5113495bSYour Name 				     uint8_t *value);
2030*5113495bSYour Name 
2031*5113495bSYour Name /**
2032*5113495bSYour Name  * wlan_mlme_cfg_get_vht_chan_width() - gets vht supported channel width from
2033*5113495bSYour Name  * cfg item
2034*5113495bSYour Name  * @psoc: psoc context
2035*5113495bSYour Name  * @value: pointer to get required data
2036*5113495bSYour Name  *
2037*5113495bSYour Name  * Return: QDF_STATUS
2038*5113495bSYour Name  */
2039*5113495bSYour Name QDF_STATUS wlan_mlme_cfg_get_vht_chan_width(struct wlan_objmgr_psoc *psoc,
2040*5113495bSYour Name 					    uint8_t *value);
2041*5113495bSYour Name 
2042*5113495bSYour Name /**
2043*5113495bSYour Name  * wlan_mlme_cfg_set_vht_chan_width() - sets vht supported channel width into
2044*5113495bSYour Name  * cfg item
2045*5113495bSYour Name  * @psoc: psoc context
2046*5113495bSYour Name  * @value: data to be set
2047*5113495bSYour Name  *
2048*5113495bSYour Name  * Return: QDF_STATUS
2049*5113495bSYour Name  */
2050*5113495bSYour Name QDF_STATUS wlan_mlme_cfg_set_vht_chan_width(struct wlan_objmgr_psoc *psoc,
2051*5113495bSYour Name 					    uint8_t value);
2052*5113495bSYour Name 
2053*5113495bSYour Name /**
2054*5113495bSYour Name  * wlan_mlme_cfg_get_vht_chan_width() - sets vht supported channel width into
2055*5113495bSYour Name  * cfg item
2056*5113495bSYour Name  * @psoc: psoc context
2057*5113495bSYour Name  * @value: data to be set
2058*5113495bSYour Name  *
2059*5113495bSYour Name  * Return: QDF_STATUS
2060*5113495bSYour Name  */
2061*5113495bSYour Name QDF_STATUS wlan_mlme_cfg_get_vht_chan_width(struct wlan_objmgr_psoc *psoc,
2062*5113495bSYour Name 					    uint8_t *value);
2063*5113495bSYour Name 
2064*5113495bSYour Name /**
2065*5113495bSYour Name  * wlan_mlme_cfg_get_vht_ldpc_coding_cap() - gets vht ldpc coding cap from
2066*5113495bSYour Name  * cfg item
2067*5113495bSYour Name  * @psoc: psoc context
2068*5113495bSYour Name  * @value: pointer to get required data
2069*5113495bSYour Name  *
2070*5113495bSYour Name  * Return: QDF_STATUS
2071*5113495bSYour Name  */
2072*5113495bSYour Name QDF_STATUS wlan_mlme_cfg_get_vht_ldpc_coding_cap(struct wlan_objmgr_psoc *psoc,
2073*5113495bSYour Name 						 bool *value);
2074*5113495bSYour Name 
2075*5113495bSYour Name /**
2076*5113495bSYour Name  * wlan_mlme_cfg_set_vht_ldpc_coding_cap() - sets vht ldpc coding cap into
2077*5113495bSYour Name  * cfg item
2078*5113495bSYour Name  * @psoc: psoc context
2079*5113495bSYour Name  * @value: data to be set
2080*5113495bSYour Name  *
2081*5113495bSYour Name  * Return: QDF_STATUS
2082*5113495bSYour Name  */
2083*5113495bSYour Name QDF_STATUS wlan_mlme_cfg_set_vht_ldpc_coding_cap(struct wlan_objmgr_psoc *psoc,
2084*5113495bSYour Name 						 bool value);
2085*5113495bSYour Name 
2086*5113495bSYour Name /**
2087*5113495bSYour Name  * wlan_mlme_cfg_get_vht_short_gi_80mhz() - gets vht short gi 80MHz from
2088*5113495bSYour Name  * cfg item
2089*5113495bSYour Name  * @psoc: psoc context
2090*5113495bSYour Name  * @value: pointer to get required data
2091*5113495bSYour Name  *
2092*5113495bSYour Name  * Return: QDF_STATUS
2093*5113495bSYour Name  */
2094*5113495bSYour Name QDF_STATUS wlan_mlme_cfg_get_vht_short_gi_80mhz(struct wlan_objmgr_psoc *psoc,
2095*5113495bSYour Name 						bool *value);
2096*5113495bSYour Name 
2097*5113495bSYour Name /**
2098*5113495bSYour Name  * wlan_mlme_cfg_set_vht_short_gi_80mhz() - sets vht short gi 80MHz into
2099*5113495bSYour Name  * cfg item
2100*5113495bSYour Name  * @psoc: psoc context
2101*5113495bSYour Name  * @value: data to be set
2102*5113495bSYour Name  *
2103*5113495bSYour Name  * Return: QDF_STATUS
2104*5113495bSYour Name  */
2105*5113495bSYour Name QDF_STATUS wlan_mlme_cfg_set_vht_short_gi_80mhz(struct wlan_objmgr_psoc *psoc,
2106*5113495bSYour Name 						bool value);
2107*5113495bSYour Name 
2108*5113495bSYour Name /**
2109*5113495bSYour Name  * wlan_mlme_cfg_get_short_gi_160_mhz() - gets vht short gi 160MHz from
2110*5113495bSYour Name  * cfg item
2111*5113495bSYour Name  * @psoc: psoc context
2112*5113495bSYour Name  * @value: pointer to get required data
2113*5113495bSYour Name  *
2114*5113495bSYour Name  * Return: QDF_STATUS
2115*5113495bSYour Name  */
2116*5113495bSYour Name QDF_STATUS
2117*5113495bSYour Name wlan_mlme_cfg_get_short_gi_160_mhz(struct wlan_objmgr_psoc *psoc, bool *value);
2118*5113495bSYour Name 
2119*5113495bSYour Name /**
2120*5113495bSYour Name  * wlan_mlme_cfg_set_short_gi_160_mhz() - sets vht short gi 160MHz into
2121*5113495bSYour Name  * cfg item
2122*5113495bSYour Name  * @psoc: psoc context
2123*5113495bSYour Name  * @value: data to be set
2124*5113495bSYour Name  *
2125*5113495bSYour Name  * Return: QDF_STATUS
2126*5113495bSYour Name  */
2127*5113495bSYour Name QDF_STATUS
2128*5113495bSYour Name wlan_mlme_cfg_set_short_gi_160_mhz(struct wlan_objmgr_psoc *psoc, bool value);
2129*5113495bSYour Name 
2130*5113495bSYour Name /**
2131*5113495bSYour Name  * wlan_mlme_cfg_get_vht_tx_stbc() - gets vht tx stbc from
2132*5113495bSYour Name  * cfg item
2133*5113495bSYour Name  * @psoc: psoc context
2134*5113495bSYour Name  * @value: pointer to get required data
2135*5113495bSYour Name  *
2136*5113495bSYour Name  * Return: QDF_STATUS
2137*5113495bSYour Name  */
2138*5113495bSYour Name QDF_STATUS
2139*5113495bSYour Name wlan_mlme_cfg_get_vht_tx_stbc(struct wlan_objmgr_psoc *psoc, bool *value);
2140*5113495bSYour Name 
2141*5113495bSYour Name /**
2142*5113495bSYour Name  * wlan_mlme_cfg_get_vht_rx_stbc() - gets vht rx stbc from
2143*5113495bSYour Name  * cfg item
2144*5113495bSYour Name  * @psoc: psoc context
2145*5113495bSYour Name  * @value: pointer to get required data
2146*5113495bSYour Name  *
2147*5113495bSYour Name  * Return: QDF_STATUS
2148*5113495bSYour Name  */
2149*5113495bSYour Name QDF_STATUS
2150*5113495bSYour Name wlan_mlme_cfg_get_vht_rx_stbc(struct wlan_objmgr_psoc *psoc, bool *value);
2151*5113495bSYour Name 
2152*5113495bSYour Name /**
2153*5113495bSYour Name  * wlan_mlme_cfg_set_vht_tx_stbc() - sets vht tx stbc into
2154*5113495bSYour Name  * cfg item
2155*5113495bSYour Name  * @psoc: psoc context
2156*5113495bSYour Name  * @value: data to be set
2157*5113495bSYour Name  *
2158*5113495bSYour Name  * Return: QDF_STATUS
2159*5113495bSYour Name  */
2160*5113495bSYour Name QDF_STATUS
2161*5113495bSYour Name wlan_mlme_cfg_set_vht_tx_stbc(struct wlan_objmgr_psoc *psoc, bool value);
2162*5113495bSYour Name 
2163*5113495bSYour Name /**
2164*5113495bSYour Name  * wlan_mlme_cfg_get_vht_rx_stbc() - gets vht rx stbc from
2165*5113495bSYour Name  * cfg item
2166*5113495bSYour Name  * @psoc: psoc context
2167*5113495bSYour Name  * @value: pointer to get required data
2168*5113495bSYour Name  *
2169*5113495bSYour Name  * Return: QDF_STATUS
2170*5113495bSYour Name  */
2171*5113495bSYour Name QDF_STATUS
2172*5113495bSYour Name wlan_mlme_cfg_get_vht_rx_stbc(struct wlan_objmgr_psoc *psoc, bool *value);
2173*5113495bSYour Name 
2174*5113495bSYour Name /**
2175*5113495bSYour Name  * wlan_mlme_cfg_set_vht_rx_stbc() - sets vht rx stbc into
2176*5113495bSYour Name  * cfg item
2177*5113495bSYour Name  * @psoc: psoc context
2178*5113495bSYour Name  * @value: data to be set
2179*5113495bSYour Name  *
2180*5113495bSYour Name  * Return: QDF_STATUS
2181*5113495bSYour Name  */
2182*5113495bSYour Name QDF_STATUS
2183*5113495bSYour Name wlan_mlme_cfg_set_vht_rx_stbc(struct wlan_objmgr_psoc *psoc, bool value);
2184*5113495bSYour Name 
2185*5113495bSYour Name /**
2186*5113495bSYour Name  * wlan_mlme_cfg_get_vht_su_bformer() - gets vht su beam former cap from
2187*5113495bSYour Name  * cfg item
2188*5113495bSYour Name  * @psoc: psoc context
2189*5113495bSYour Name  * @value: pointer to get required data
2190*5113495bSYour Name  *
2191*5113495bSYour Name  * Return: QDF_STATUS
2192*5113495bSYour Name  */
2193*5113495bSYour Name QDF_STATUS
2194*5113495bSYour Name wlan_mlme_cfg_get_vht_su_bformer(struct wlan_objmgr_psoc *psoc, bool *value);
2195*5113495bSYour Name 
2196*5113495bSYour Name /**
2197*5113495bSYour Name  * wlan_mlme_cfg_set_vht_su_bformer() - sets vht su beam former cap into
2198*5113495bSYour Name  * cfg item
2199*5113495bSYour Name  * @psoc: psoc context
2200*5113495bSYour Name  * @value: data to be set
2201*5113495bSYour Name  *
2202*5113495bSYour Name  * Return: QDF_STATUS
2203*5113495bSYour Name  */
2204*5113495bSYour Name QDF_STATUS
2205*5113495bSYour Name wlan_mlme_cfg_set_vht_su_bformer(struct wlan_objmgr_psoc *psoc, bool value);
2206*5113495bSYour Name 
2207*5113495bSYour Name /**
2208*5113495bSYour Name  * wlan_mlme_cfg_set_vht_su_bformee() - sets vht su beam formee cap into
2209*5113495bSYour Name  * cfg item
2210*5113495bSYour Name  * @psoc: psoc context
2211*5113495bSYour Name  * @value: data to be set
2212*5113495bSYour Name  *
2213*5113495bSYour Name  * Return: QDF_STATUS
2214*5113495bSYour Name  */
2215*5113495bSYour Name QDF_STATUS
2216*5113495bSYour Name wlan_mlme_cfg_set_vht_su_bformee(struct wlan_objmgr_psoc *psoc, bool value);
2217*5113495bSYour Name 
2218*5113495bSYour Name /**
2219*5113495bSYour Name  * wlan_mlme_cfg_set_vht_tx_bfee_ant_supp() - sets vht Beamformee antenna
2220*5113495bSYour Name  * support cap
2221*5113495bSYour Name  * into cfg item
2222*5113495bSYour Name  * @psoc: psoc context
2223*5113495bSYour Name  * @value: data to be set
2224*5113495bSYour Name  *
2225*5113495bSYour Name  * Return: QDF_STATUS
2226*5113495bSYour Name  */
2227*5113495bSYour Name QDF_STATUS wlan_mlme_cfg_set_vht_tx_bfee_ant_supp(struct wlan_objmgr_psoc *psoc,
2228*5113495bSYour Name 						  uint8_t value);
2229*5113495bSYour Name 
2230*5113495bSYour Name /**
2231*5113495bSYour Name  * wlan_mlme_cfg_get_vht_tx_bfee_ant_supp() - Gets vht Beamformee antenna
2232*5113495bSYour Name  * support cap into cfg item
2233*5113495bSYour Name  *
2234*5113495bSYour Name  * @psoc: psoc context
2235*5113495bSYour Name  * @value: data to be set
2236*5113495bSYour Name  *
2237*5113495bSYour Name  * Return: QDF_STATUS
2238*5113495bSYour Name  */
2239*5113495bSYour Name QDF_STATUS wlan_mlme_cfg_get_vht_tx_bfee_ant_supp(struct wlan_objmgr_psoc *psoc,
2240*5113495bSYour Name 						  uint8_t *value);
2241*5113495bSYour Name 
2242*5113495bSYour Name /**
2243*5113495bSYour Name  * wlan_mlme_cfg_set_vht_num_sounding_dim() - sets vht no of sounding dimensions
2244*5113495bSYour Name  * into cfg item
2245*5113495bSYour Name  * @psoc: psoc context
2246*5113495bSYour Name  * @value: data to be set
2247*5113495bSYour Name  *
2248*5113495bSYour Name  * Return: QDF_STATUS
2249*5113495bSYour Name  */
2250*5113495bSYour Name QDF_STATUS wlan_mlme_cfg_set_vht_num_sounding_dim(struct wlan_objmgr_psoc *psoc,
2251*5113495bSYour Name 						  uint8_t value);
2252*5113495bSYour Name 
2253*5113495bSYour Name /**
2254*5113495bSYour Name  * wlan_mlme_cfg_get_vht_mu_bformer() - gets vht mu beam former cap from
2255*5113495bSYour Name  * cfg item
2256*5113495bSYour Name  * @psoc: psoc context
2257*5113495bSYour Name  * @value: pointer to get required data
2258*5113495bSYour Name  *
2259*5113495bSYour Name  * Return: QDF_STATUS
2260*5113495bSYour Name  */
2261*5113495bSYour Name QDF_STATUS
2262*5113495bSYour Name wlan_mlme_cfg_get_vht_mu_bformer(struct wlan_objmgr_psoc *psoc, bool *value);
2263*5113495bSYour Name 
2264*5113495bSYour Name /**
2265*5113495bSYour Name  * wlan_mlme_cfg_set_vht_mu_bformer() - sets vht mu beam former cap into
2266*5113495bSYour Name  * cfg item
2267*5113495bSYour Name  * @psoc: psoc context
2268*5113495bSYour Name  * @value: data to be set
2269*5113495bSYour Name  *
2270*5113495bSYour Name  * Return: QDF_STATUS
2271*5113495bSYour Name  */
2272*5113495bSYour Name QDF_STATUS
2273*5113495bSYour Name wlan_mlme_cfg_set_vht_mu_bformer(struct wlan_objmgr_psoc *psoc, bool value);
2274*5113495bSYour Name 
2275*5113495bSYour Name /**
2276*5113495bSYour Name  * wlan_mlme_cfg_get_vht_mu_bformee() - gets vht mu beam formee cap from
2277*5113495bSYour Name  * cfg item
2278*5113495bSYour Name  * @psoc: psoc context
2279*5113495bSYour Name  * @value: pointer to get required data
2280*5113495bSYour Name  *
2281*5113495bSYour Name  * Return: QDF_STATUS
2282*5113495bSYour Name  */
2283*5113495bSYour Name QDF_STATUS
2284*5113495bSYour Name wlan_mlme_cfg_get_vht_mu_bformee(struct wlan_objmgr_psoc *psoc, bool *value);
2285*5113495bSYour Name 
2286*5113495bSYour Name /**
2287*5113495bSYour Name  * wlan_mlme_cfg_set_vht_mu_bformee() - sets vht mu beam formee cap into
2288*5113495bSYour Name  * cfg item
2289*5113495bSYour Name  * @psoc: psoc context
2290*5113495bSYour Name  * @value: data to be set
2291*5113495bSYour Name  *
2292*5113495bSYour Name  * Return: QDF_STATUS
2293*5113495bSYour Name  */
2294*5113495bSYour Name QDF_STATUS
2295*5113495bSYour Name wlan_mlme_cfg_set_vht_mu_bformee(struct wlan_objmgr_psoc *psoc, bool value);
2296*5113495bSYour Name 
2297*5113495bSYour Name /**
2298*5113495bSYour Name  * wlan_mlme_cfg_get_vht_txop_ps() - gets vht tx ops ps cap from
2299*5113495bSYour Name  * cfg item
2300*5113495bSYour Name  * @psoc: psoc context
2301*5113495bSYour Name  * @value: pointer to get required data
2302*5113495bSYour Name  *
2303*5113495bSYour Name  * Return: QDF_STATUS
2304*5113495bSYour Name  */
2305*5113495bSYour Name QDF_STATUS
2306*5113495bSYour Name wlan_mlme_cfg_get_vht_txop_ps(struct wlan_objmgr_psoc *psoc, bool *value);
2307*5113495bSYour Name 
2308*5113495bSYour Name /**
2309*5113495bSYour Name  * wlan_mlme_cfg_set_vht_txop_ps() - sets vht tx ops ps cap into
2310*5113495bSYour Name  * cfg item
2311*5113495bSYour Name  * @psoc: psoc context
2312*5113495bSYour Name  * @value: data to be set
2313*5113495bSYour Name  *
2314*5113495bSYour Name  * Return: QDF_STATUS
2315*5113495bSYour Name  */
2316*5113495bSYour Name QDF_STATUS
2317*5113495bSYour Name wlan_mlme_cfg_set_vht_txop_ps(struct wlan_objmgr_psoc *psoc, bool value);
2318*5113495bSYour Name 
2319*5113495bSYour Name /**
2320*5113495bSYour Name  * wlan_mlme_cfg_get_vht_ampdu_len_exp() - gets vht max AMPDU length exponent from
2321*5113495bSYour Name  * cfg item
2322*5113495bSYour Name  * @psoc: psoc context
2323*5113495bSYour Name  * @value: pointer to get required data
2324*5113495bSYour Name  *
2325*5113495bSYour Name  * Return: QDF_STATUS
2326*5113495bSYour Name  */
2327*5113495bSYour Name QDF_STATUS
2328*5113495bSYour Name wlan_mlme_cfg_get_vht_ampdu_len_exp(struct wlan_objmgr_psoc *psoc,
2329*5113495bSYour Name 				    uint8_t *value);
2330*5113495bSYour Name 
2331*5113495bSYour Name /**
2332*5113495bSYour Name  * wlan_mlme_cfg_set_vht_ampdu_len_exp() - sets vht max AMPDU length exponent into
2333*5113495bSYour Name  * cfg item
2334*5113495bSYour Name  * @psoc: psoc context
2335*5113495bSYour Name  * @value: data to be set
2336*5113495bSYour Name  *
2337*5113495bSYour Name  * Return: QDF_STATUS
2338*5113495bSYour Name  */
2339*5113495bSYour Name QDF_STATUS
2340*5113495bSYour Name wlan_mlme_cfg_set_vht_ampdu_len_exp(struct wlan_objmgr_psoc *psoc,
2341*5113495bSYour Name 				    uint8_t value);
2342*5113495bSYour Name 
2343*5113495bSYour Name /**
2344*5113495bSYour Name  * wlan_mlme_cfg_get_vht_rx_mcs_map() - gets vht rx mcs map from
2345*5113495bSYour Name  * cfg item
2346*5113495bSYour Name  * @psoc: psoc context
2347*5113495bSYour Name  * @value: pointer to get required data
2348*5113495bSYour Name  *
2349*5113495bSYour Name  * Return: QDF_STATUS
2350*5113495bSYour Name  */
2351*5113495bSYour Name QDF_STATUS wlan_mlme_cfg_get_vht_rx_mcs_map(struct wlan_objmgr_psoc *psoc,
2352*5113495bSYour Name 					    uint32_t *value);
2353*5113495bSYour Name 
2354*5113495bSYour Name /**
2355*5113495bSYour Name  * wlan_mlme_cfg_set_vht_rx_mcs_map() - sets rx mcs map into
2356*5113495bSYour Name  * cfg item
2357*5113495bSYour Name  * @psoc: psoc context
2358*5113495bSYour Name  * @value: data to be set
2359*5113495bSYour Name  *
2360*5113495bSYour Name  * Return: QDF_STATUS
2361*5113495bSYour Name  */
2362*5113495bSYour Name QDF_STATUS
2363*5113495bSYour Name wlan_mlme_cfg_set_vht_rx_mcs_map(struct wlan_objmgr_psoc *psoc, uint32_t value);
2364*5113495bSYour Name 
2365*5113495bSYour Name /**
2366*5113495bSYour Name  * wlan_mlme_cfg_get_vht_tx_mcs_map() - gets vht tx mcs map from
2367*5113495bSYour Name  * cfg item
2368*5113495bSYour Name  * @psoc: psoc context
2369*5113495bSYour Name  * @value: pointer to get required data
2370*5113495bSYour Name  *
2371*5113495bSYour Name  * Return: QDF_STATUS
2372*5113495bSYour Name  */
2373*5113495bSYour Name QDF_STATUS wlan_mlme_cfg_get_vht_tx_mcs_map(struct wlan_objmgr_psoc *psoc,
2374*5113495bSYour Name 					    uint32_t *value);
2375*5113495bSYour Name 
2376*5113495bSYour Name /**
2377*5113495bSYour Name  * wlan_mlme_cfg_set_vht_tx_mcs_map() - sets tx mcs map into
2378*5113495bSYour Name  * cfg item
2379*5113495bSYour Name  * @psoc: psoc context
2380*5113495bSYour Name  * @value: data to be set
2381*5113495bSYour Name  *
2382*5113495bSYour Name  * Return: QDF_STATUS
2383*5113495bSYour Name  */
2384*5113495bSYour Name QDF_STATUS wlan_mlme_cfg_set_vht_tx_mcs_map(struct wlan_objmgr_psoc *psoc,
2385*5113495bSYour Name 					    uint32_t value);
2386*5113495bSYour Name 
2387*5113495bSYour Name /**
2388*5113495bSYour Name  * wlan_mlme_cfg_set_vht_rx_supp_data_rate() - sets rx supported data rate into
2389*5113495bSYour Name  * cfg item
2390*5113495bSYour Name  * @psoc: psoc context
2391*5113495bSYour Name  * @value: data to be set
2392*5113495bSYour Name  *
2393*5113495bSYour Name  * Return: QDF_STATUS
2394*5113495bSYour Name  */
2395*5113495bSYour Name QDF_STATUS
2396*5113495bSYour Name wlan_mlme_cfg_set_vht_rx_supp_data_rate(struct wlan_objmgr_psoc *psoc,
2397*5113495bSYour Name 					uint32_t value);
2398*5113495bSYour Name 
2399*5113495bSYour Name /**
2400*5113495bSYour Name  * wlan_mlme_cfg_set_vht_tx_supp_data_rate() - sets tx supported data rate into
2401*5113495bSYour Name  * cfg item
2402*5113495bSYour Name  * @psoc: psoc context
2403*5113495bSYour Name  * @value: data to be set
2404*5113495bSYour Name  *
2405*5113495bSYour Name  * Return: QDF_STATUS
2406*5113495bSYour Name  */
2407*5113495bSYour Name QDF_STATUS
2408*5113495bSYour Name wlan_mlme_cfg_set_vht_tx_supp_data_rate(struct wlan_objmgr_psoc *psoc,
2409*5113495bSYour Name 					uint32_t value);
2410*5113495bSYour Name 
2411*5113495bSYour Name /**
2412*5113495bSYour Name  * wlan_mlme_cfg_get_vht_basic_mcs_set() - gets basic mcs set from
2413*5113495bSYour Name  * cfg item
2414*5113495bSYour Name  * @psoc: psoc context
2415*5113495bSYour Name  * @value: data to be set
2416*5113495bSYour Name  *
2417*5113495bSYour Name  * Return: QDF_STATUS
2418*5113495bSYour Name  */
2419*5113495bSYour Name QDF_STATUS
2420*5113495bSYour Name wlan_mlme_cfg_get_vht_basic_mcs_set(struct wlan_objmgr_psoc *psoc,
2421*5113495bSYour Name 				    uint32_t *value);
2422*5113495bSYour Name 
2423*5113495bSYour Name /**
2424*5113495bSYour Name  * wlan_mlme_cfg_set_vht_basic_mcs_set() - sets basic mcs set into
2425*5113495bSYour Name  * cfg item
2426*5113495bSYour Name  * @psoc: psoc context
2427*5113495bSYour Name  * @value: data to be set
2428*5113495bSYour Name  *
2429*5113495bSYour Name  * Return: QDF_STATUS
2430*5113495bSYour Name  */
2431*5113495bSYour Name QDF_STATUS
2432*5113495bSYour Name wlan_mlme_cfg_set_vht_basic_mcs_set(struct wlan_objmgr_psoc *psoc,
2433*5113495bSYour Name 				    uint32_t value);
2434*5113495bSYour Name 
2435*5113495bSYour Name /**
2436*5113495bSYour Name  * wlan_mlme_get_vht_enable_tx_bf() - Get vht enable tx bf
2437*5113495bSYour Name  * @psoc: psoc context
2438*5113495bSYour Name  * @value: data to be set
2439*5113495bSYour Name  *
2440*5113495bSYour Name  * Return: QDF_STATUS
2441*5113495bSYour Name  */
2442*5113495bSYour Name QDF_STATUS
2443*5113495bSYour Name wlan_mlme_get_vht_enable_tx_bf(struct wlan_objmgr_psoc *psoc, bool *value);
2444*5113495bSYour Name 
2445*5113495bSYour Name /**
2446*5113495bSYour Name  * wlan_mlme_get_vht_tx_su_beamformer() - VHT enable tx su beamformer
2447*5113495bSYour Name  * @psoc: psoc context
2448*5113495bSYour Name  * @value: data to be set
2449*5113495bSYour Name  *
2450*5113495bSYour Name  * Return: QDF_STATUS
2451*5113495bSYour Name  */
2452*5113495bSYour Name QDF_STATUS
2453*5113495bSYour Name wlan_mlme_get_vht_tx_su_beamformer(struct wlan_objmgr_psoc *psoc, bool *value);
2454*5113495bSYour Name 
2455*5113495bSYour Name /**
2456*5113495bSYour Name  * wlan_mlme_get_vht_channel_width() - gets Channel width capability
2457*5113495bSYour Name  * for 11ac
2458*5113495bSYour Name  * @psoc: psoc context
2459*5113495bSYour Name  * @value: data to be set
2460*5113495bSYour Name  *
2461*5113495bSYour Name  * Return: QDF_STATUS
2462*5113495bSYour Name  */
2463*5113495bSYour Name QDF_STATUS wlan_mlme_get_vht_channel_width(struct wlan_objmgr_psoc *psoc,
2464*5113495bSYour Name 					   uint8_t *value);
2465*5113495bSYour Name 
2466*5113495bSYour Name /**
2467*5113495bSYour Name  * wlan_mlme_get_vht_rx_mcs_8_9() - VHT Rx MCS capability for 1x1 mode
2468*5113495bSYour Name  * @psoc: psoc context
2469*5113495bSYour Name  * @value: data to be set
2470*5113495bSYour Name  *
2471*5113495bSYour Name  * Return: QDF_STATUS
2472*5113495bSYour Name  */
2473*5113495bSYour Name QDF_STATUS wlan_mlme_get_vht_rx_mcs_8_9(struct wlan_objmgr_psoc *psoc,
2474*5113495bSYour Name 					uint8_t *value);
2475*5113495bSYour Name 
2476*5113495bSYour Name /**
2477*5113495bSYour Name  * wlan_mlme_get_vht_tx_mcs_8_9() - VHT Tx MCS capability for 1x1 mode
2478*5113495bSYour Name  * @psoc: psoc context
2479*5113495bSYour Name  * @value: data to be set
2480*5113495bSYour Name  *
2481*5113495bSYour Name  * Return: QDF_STATUS
2482*5113495bSYour Name  */
2483*5113495bSYour Name QDF_STATUS
2484*5113495bSYour Name wlan_mlme_get_vht_tx_mcs_8_9(struct wlan_objmgr_psoc *psoc, uint8_t *value);
2485*5113495bSYour Name 
2486*5113495bSYour Name /**
2487*5113495bSYour Name  * wlan_mlme_get_vht_rx_mcs_2x2() - VHT Rx MCS capability for 2x2 mode
2488*5113495bSYour Name  * @psoc: psoc context
2489*5113495bSYour Name  * @value: data to be set
2490*5113495bSYour Name  *
2491*5113495bSYour Name  * Return: QDF_STATUS
2492*5113495bSYour Name  */
2493*5113495bSYour Name QDF_STATUS wlan_mlme_get_vht_rx_mcs_2x2(struct wlan_objmgr_psoc *psoc,
2494*5113495bSYour Name 					uint8_t *value);
2495*5113495bSYour Name 
2496*5113495bSYour Name /**
2497*5113495bSYour Name  * wlan_mlme_get_vht_tx_mcs_2x2() - VHT Tx MCS capability for 2x2 mode
2498*5113495bSYour Name  * @psoc: psoc context
2499*5113495bSYour Name  * @value: data to be set
2500*5113495bSYour Name  *
2501*5113495bSYour Name  * Return: QDF_STATUS
2502*5113495bSYour Name  */
2503*5113495bSYour Name QDF_STATUS wlan_mlme_get_vht_tx_mcs_2x2(struct wlan_objmgr_psoc *psoc,
2504*5113495bSYour Name 					uint8_t *value);
2505*5113495bSYour Name 
2506*5113495bSYour Name /**
2507*5113495bSYour Name  * wlan_mlme_get_vht20_mcs9() - Enables VHT MCS9 in 20M BW operation
2508*5113495bSYour Name  * @psoc: psoc context
2509*5113495bSYour Name  * @value: data to be set
2510*5113495bSYour Name  *
2511*5113495bSYour Name  * Return: QDF_STATUS
2512*5113495bSYour Name  */
2513*5113495bSYour Name QDF_STATUS
2514*5113495bSYour Name wlan_mlme_get_vht20_mcs9(struct wlan_objmgr_psoc *psoc, bool *value);
2515*5113495bSYour Name 
2516*5113495bSYour Name /**
2517*5113495bSYour Name  * wlan_mlme_get_srd_master_mode_for_vdev  - Get SRD master mode for vdev
2518*5113495bSYour Name  * @psoc:          pointer to psoc object
2519*5113495bSYour Name  * @vdev_opmode:   vdev operating mode
2520*5113495bSYour Name  * @value:  pointer to the value which will be filled for the caller
2521*5113495bSYour Name  *
2522*5113495bSYour Name  * Return: QDF Status
2523*5113495bSYour Name  */
2524*5113495bSYour Name QDF_STATUS
2525*5113495bSYour Name wlan_mlme_get_srd_master_mode_for_vdev(struct wlan_objmgr_psoc *psoc,
2526*5113495bSYour Name 				       enum QDF_OPMODE vdev_opmode,
2527*5113495bSYour Name 				       bool *value);
2528*5113495bSYour Name 
2529*5113495bSYour Name /**
2530*5113495bSYour Name  * wlan_mlme_get_indoor_support_for_nan  - Get indoor channel support for NAN
2531*5113495bSYour Name  * @psoc: pointer to psoc object
2532*5113495bSYour Name  * @value: pointer to the value which will be filled for the caller
2533*5113495bSYour Name  *
2534*5113495bSYour Name  * Return: QDF Status
2535*5113495bSYour Name  */
2536*5113495bSYour Name QDF_STATUS
2537*5113495bSYour Name wlan_mlme_get_indoor_support_for_nan(struct wlan_objmgr_psoc *psoc,
2538*5113495bSYour Name 				     bool *value);
2539*5113495bSYour Name 
2540*5113495bSYour Name /**
2541*5113495bSYour Name  * wlan_mlme_get_force_sap_enabled() - Get the value of force SAP enabled
2542*5113495bSYour Name  * @psoc: psoc context
2543*5113495bSYour Name  * @value: data to get
2544*5113495bSYour Name  *
2545*5113495bSYour Name  * Get the value of force SAP enabled
2546*5113495bSYour Name  *
2547*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS or QDF_STATUS_FAILURE
2548*5113495bSYour Name  */
2549*5113495bSYour Name QDF_STATUS
2550*5113495bSYour Name wlan_mlme_get_force_sap_enabled(struct wlan_objmgr_psoc *psoc, bool *value);
2551*5113495bSYour Name 
2552*5113495bSYour Name /**
2553*5113495bSYour Name  * wlan_mlme_get_enable_dynamic_nss_chains_cfg() - API to get whether dynamic
2554*5113495bSYour Name  * nss and chain config is enabled or not
2555*5113495bSYour Name  * @psoc: psoc context
2556*5113495bSYour Name  * @value: data to be set
2557*5113495bSYour Name  *
2558*5113495bSYour Name  * API to get whether dynamic nss and chain config is enabled or not
2559*5113495bSYour Name  *
2560*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS or QDF_STATUS_FAILURE
2561*5113495bSYour Name  */
2562*5113495bSYour Name QDF_STATUS
2563*5113495bSYour Name wlan_mlme_get_enable_dynamic_nss_chains_cfg(struct wlan_objmgr_psoc *psoc,
2564*5113495bSYour Name 					    bool *value);
2565*5113495bSYour Name 
2566*5113495bSYour Name /**
2567*5113495bSYour Name  * wlan_mlme_get_restart_sap_on_dynamic_nss_chains_cfg() - API to get whether
2568*5113495bSYour Name  * SAP needs to be restarted or not on dynamic nss chain config
2569*5113495bSYour Name  * @psoc: psoc context
2570*5113495bSYour Name  * @value: data to be set
2571*5113495bSYour Name  *
2572*5113495bSYour Name  * API to get whether SAP needs to be restarted or not on dynamic nss chain
2573*5113495bSYour Name  * config
2574*5113495bSYour Name  *
2575*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS or QDF_STATUS_FAILURE
2576*5113495bSYour Name  */
2577*5113495bSYour Name QDF_STATUS
2578*5113495bSYour Name wlan_mlme_get_restart_sap_on_dynamic_nss_chains_cfg(
2579*5113495bSYour Name 						struct wlan_objmgr_psoc *psoc,
2580*5113495bSYour Name 						bool *value);
2581*5113495bSYour Name 
2582*5113495bSYour Name /**
2583*5113495bSYour Name  * wlan_mlme_cfg_set_dynamic_nss_chains_support() - API to update
2584*5113495bSYour Name  * dynamic_nss_chains_support
2585*5113495bSYour Name  *
2586*5113495bSYour Name  * @psoc: psoc context
2587*5113495bSYour Name  * @value: data to be set
2588*5113495bSYour Name  *
2589*5113495bSYour Name  * API to update dynamic_nss_chains_support in wlan_mlme_cfg object to
2590*5113495bSYour Name  * maintain this value in mlme context
2591*5113495bSYour Name  *
2592*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS or QDF_STATUS_FAILURE
2593*5113495bSYour Name  */
2594*5113495bSYour Name QDF_STATUS
2595*5113495bSYour Name wlan_mlme_cfg_set_dynamic_nss_chains_support(struct wlan_objmgr_psoc *psoc,
2596*5113495bSYour Name 					     bool value);
2597*5113495bSYour Name 
2598*5113495bSYour Name /**
2599*5113495bSYour Name  * wlan_mlme_cfg_get_dynamic_nss_chains_support() - API to get current value of
2600*5113495bSYour Name  * dynamic_nss_chains_support
2601*5113495bSYour Name  *
2602*5113495bSYour Name  * @psoc: psoc context
2603*5113495bSYour Name  * @value: data to be set
2604*5113495bSYour Name  *
2605*5113495bSYour Name  * API to get current value of dynamic_nss_chains_support
2606*5113495bSYour Name  *
2607*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS or QDF_STATUS_FAILURE
2608*5113495bSYour Name  */
2609*5113495bSYour Name QDF_STATUS
2610*5113495bSYour Name wlan_mlme_cfg_get_dynamic_nss_chains_support(struct wlan_objmgr_psoc *psoc,
2611*5113495bSYour Name 					     bool *value);
2612*5113495bSYour Name 
2613*5113495bSYour Name /**
2614*5113495bSYour Name  * wlan_mlme_get_vht_enable2x2() - Enables/disables VHT Tx/Rx MCS values for 2x2
2615*5113495bSYour Name  * @psoc: psoc context
2616*5113495bSYour Name  * @value: data to be set
2617*5113495bSYour Name  *
2618*5113495bSYour Name  * Return: QDF_STATUS
2619*5113495bSYour Name  */
2620*5113495bSYour Name QDF_STATUS
2621*5113495bSYour Name wlan_mlme_get_vht_enable2x2(struct wlan_objmgr_psoc *psoc, bool *value);
2622*5113495bSYour Name 
2623*5113495bSYour Name /**
2624*5113495bSYour Name  * wlan_mlme_set_vht_enable2x2() - Enables/disables VHT Tx/Rx MCS values for 2x2
2625*5113495bSYour Name  * @psoc: psoc context
2626*5113495bSYour Name  * @value: data to be set
2627*5113495bSYour Name  *
2628*5113495bSYour Name  * Return: QDF_STATUS
2629*5113495bSYour Name  */
2630*5113495bSYour Name QDF_STATUS
2631*5113495bSYour Name wlan_mlme_set_vht_enable2x2(struct wlan_objmgr_psoc *psoc, bool value);
2632*5113495bSYour Name 
2633*5113495bSYour Name /**
2634*5113495bSYour Name  * wlan_mlme_get_vht_enable_paid() - Enables/disables paid feature
2635*5113495bSYour Name  * @psoc: psoc context
2636*5113495bSYour Name  * @value: data to be set
2637*5113495bSYour Name  *
2638*5113495bSYour Name  * Return: QDF_STATUS
2639*5113495bSYour Name  */
2640*5113495bSYour Name QDF_STATUS
2641*5113495bSYour Name wlan_mlme_get_vht_enable_paid(struct wlan_objmgr_psoc *psoc, bool *value);
2642*5113495bSYour Name 
2643*5113495bSYour Name /**
2644*5113495bSYour Name  * wlan_mlme_get_vht_enable_gid() - Enables/disables VHT GID feature
2645*5113495bSYour Name  * @psoc: psoc context
2646*5113495bSYour Name  * @value: data to be set
2647*5113495bSYour Name  *
2648*5113495bSYour Name  * Return: QDF_STATUS
2649*5113495bSYour Name  */
2650*5113495bSYour Name QDF_STATUS
2651*5113495bSYour Name wlan_mlme_get_vht_enable_gid(struct wlan_objmgr_psoc *psoc, bool *value);
2652*5113495bSYour Name 
2653*5113495bSYour Name /**
2654*5113495bSYour Name  * wlan_mlme_get_vht_for_24ghz() - Enables/disables VHT for 24 ghz
2655*5113495bSYour Name  * @psoc: psoc context
2656*5113495bSYour Name  * @value: data to be set
2657*5113495bSYour Name  *
2658*5113495bSYour Name  * Return: QDF_STATUS
2659*5113495bSYour Name  */
2660*5113495bSYour Name QDF_STATUS
2661*5113495bSYour Name wlan_mlme_get_vht_for_24ghz(struct wlan_objmgr_psoc *psoc, bool *value);
2662*5113495bSYour Name 
2663*5113495bSYour Name /**
2664*5113495bSYour Name  * wlan_mlme_set_vht_for_24ghz() - Enables/disables VHT for 24 ghz
2665*5113495bSYour Name  * @psoc: psoc context
2666*5113495bSYour Name  * @value: data to be set
2667*5113495bSYour Name  *
2668*5113495bSYour Name  * Return: QDF_STATUS
2669*5113495bSYour Name  */
2670*5113495bSYour Name QDF_STATUS
2671*5113495bSYour Name wlan_mlme_set_vht_for_24ghz(struct wlan_objmgr_psoc *psoc, bool value);
2672*5113495bSYour Name 
2673*5113495bSYour Name /**
2674*5113495bSYour Name  * wlan_mlme_get_vendor_vht_for_24ghz() - nables/disables vendor VHT for 24 ghz
2675*5113495bSYour Name  * @psoc: psoc context
2676*5113495bSYour Name  * @value: data to be set
2677*5113495bSYour Name  *
2678*5113495bSYour Name  * Return: QDF_STATUS
2679*5113495bSYour Name  */
2680*5113495bSYour Name QDF_STATUS
2681*5113495bSYour Name wlan_mlme_get_vendor_vht_for_24ghz(struct wlan_objmgr_psoc *psoc, bool *value);
2682*5113495bSYour Name 
2683*5113495bSYour Name /**
2684*5113495bSYour Name  * mlme_update_vht_cap() - update vht capabilities
2685*5113495bSYour Name  * @psoc: psoc context
2686*5113495bSYour Name  * @cfg: data to be set
2687*5113495bSYour Name  *
2688*5113495bSYour Name  * Return: QDF_STATUS
2689*5113495bSYour Name  */
2690*5113495bSYour Name QDF_STATUS
2691*5113495bSYour Name mlme_update_vht_cap(struct wlan_objmgr_psoc *psoc, struct wma_tgt_vht_cap *cfg);
2692*5113495bSYour Name 
2693*5113495bSYour Name /**
2694*5113495bSYour Name  * mlme_update_nss_vht_cap() - Update the number of spatial
2695*5113495bSYour Name  * streams supported for vht
2696*5113495bSYour Name  * @psoc: psoc context
2697*5113495bSYour Name  *
2698*5113495bSYour Name  * Return: QDF_STATUS
2699*5113495bSYour Name  */
2700*5113495bSYour Name QDF_STATUS mlme_update_nss_vht_cap(struct wlan_objmgr_psoc *psoc);
2701*5113495bSYour Name 
2702*5113495bSYour Name #ifdef WLAN_FEATURE_11BE
2703*5113495bSYour Name /**
2704*5113495bSYour Name  * mlme_get_bss_11be_allowed() - Check BSS allowed in 11be mode
2705*5113495bSYour Name  * @psoc: psoc context
2706*5113495bSYour Name  * @bssid: bssid
2707*5113495bSYour Name  * @ie_data: ie data
2708*5113495bSYour Name  * @ie_length: ie data length
2709*5113495bSYour Name  *
2710*5113495bSYour Name  * Return: true if AP in 11be oui allow list
2711*5113495bSYour Name  */
2712*5113495bSYour Name bool mlme_get_bss_11be_allowed(struct wlan_objmgr_psoc *psoc,
2713*5113495bSYour Name 			       struct qdf_mac_addr *bssid,
2714*5113495bSYour Name 			       uint8_t *ie_data,
2715*5113495bSYour Name 			       uint32_t ie_length);
2716*5113495bSYour Name 
2717*5113495bSYour Name /**
2718*5113495bSYour Name  * wlan_mlme_get_oem_eht_mlo_config() - Get the OEM EHT configuration.
2719*5113495bSYour Name  * @psoc: PSOC object manager.
2720*5113495bSYour Name  * @oem_eht_cfg: Pointer to fill OEM cfg
2721*5113495bSYour Name  *
2722*5113495bSYour Name  * Returns success of retrieving OEM cfg else failure.
2723*5113495bSYour Name  *
2724*5113495bSYour Name  * Return: QDF_STATUS.
2725*5113495bSYour Name  */
2726*5113495bSYour Name QDF_STATUS wlan_mlme_get_oem_eht_mlo_config(struct wlan_objmgr_psoc *psoc,
2727*5113495bSYour Name 					    uint32_t *oem_eht_cfg);
2728*5113495bSYour Name #else
2729*5113495bSYour Name static inline
mlme_get_bss_11be_allowed(struct wlan_objmgr_psoc * psoc,struct qdf_mac_addr * bssid,uint8_t * ie_data,uint32_t ie_length)2730*5113495bSYour Name bool mlme_get_bss_11be_allowed(struct wlan_objmgr_psoc *psoc,
2731*5113495bSYour Name 			       struct qdf_mac_addr *bssid,
2732*5113495bSYour Name 			       uint8_t *ie_data,
2733*5113495bSYour Name 			       uint32_t ie_length)
2734*5113495bSYour Name {
2735*5113495bSYour Name 	return false;
2736*5113495bSYour Name }
2737*5113495bSYour Name 
2738*5113495bSYour Name static inline QDF_STATUS
wlan_mlme_get_oem_eht_mlo_config(struct wlan_objmgr_psoc * psoc,uint32_t * oem_eht_cfg)2739*5113495bSYour Name wlan_mlme_get_oem_eht_mlo_config(struct wlan_objmgr_psoc *psoc,
2740*5113495bSYour Name 				 uint32_t *oem_eht_cfg)
2741*5113495bSYour Name {
2742*5113495bSYour Name 	*oem_eht_cfg = 0x0;
2743*5113495bSYour Name 	return QDF_STATUS_SUCCESS;
2744*5113495bSYour Name }
2745*5113495bSYour Name #endif
2746*5113495bSYour Name 
2747*5113495bSYour Name /**
2748*5113495bSYour Name  * wlan_mlme_is_sap_uapsd_enabled() - Get if SAP UAPSD is enabled/disabled
2749*5113495bSYour Name  * @psoc: psoc context
2750*5113495bSYour Name  * @value: value to be filled for caller
2751*5113495bSYour Name  *
2752*5113495bSYour Name  * Return: QDF_STATUS
2753*5113495bSYour Name  */
2754*5113495bSYour Name QDF_STATUS wlan_mlme_is_sap_uapsd_enabled(struct wlan_objmgr_psoc *psoc,
2755*5113495bSYour Name 					  bool *value);
2756*5113495bSYour Name 
2757*5113495bSYour Name /**
2758*5113495bSYour Name  * wlan_mlme_set_sap_uapsd_flag() - Enable/Disable SAP UAPSD
2759*5113495bSYour Name  * @psoc:  psoc context
2760*5113495bSYour Name  * @value: Enable/Disable control value for sap_uapsd_enabled field
2761*5113495bSYour Name  *
2762*5113495bSYour Name  * Return: QDF_STATUS
2763*5113495bSYour Name  */
2764*5113495bSYour Name QDF_STATUS wlan_mlme_set_sap_uapsd_flag(struct wlan_objmgr_psoc *psoc,
2765*5113495bSYour Name 					bool value);
2766*5113495bSYour Name /**
2767*5113495bSYour Name  * wlan_mlme_is_11h_enabled() - Get the 11h flag
2768*5113495bSYour Name  * @psoc: psoc context
2769*5113495bSYour Name  * @value: Enable/Disable value ptr.
2770*5113495bSYour Name  *
2771*5113495bSYour Name  * Return: QDF_STATUS
2772*5113495bSYour Name  */
2773*5113495bSYour Name QDF_STATUS
2774*5113495bSYour Name wlan_mlme_is_11h_enabled(struct wlan_objmgr_psoc *psoc, bool *value);
2775*5113495bSYour Name 
2776*5113495bSYour Name /**
2777*5113495bSYour Name  * wlan_mlme_set_11h_enabled() - Set the 11h flag
2778*5113495bSYour Name  * @psoc: psoc context
2779*5113495bSYour Name  * @value: Enable/Disable value
2780*5113495bSYour Name  *
2781*5113495bSYour Name  * Return: QDF_STATUS
2782*5113495bSYour Name  */
2783*5113495bSYour Name QDF_STATUS
2784*5113495bSYour Name wlan_mlme_set_11h_enabled(struct wlan_objmgr_psoc *psoc, bool value);
2785*5113495bSYour Name 
2786*5113495bSYour Name /**
2787*5113495bSYour Name  * wlan_mlme_is_11d_enabled() - Get the 11d flag
2788*5113495bSYour Name  * @psoc: psoc context
2789*5113495bSYour Name  * @value: Enable/Disable value ptr.
2790*5113495bSYour Name  *
2791*5113495bSYour Name  * Return: QDF_STATUS
2792*5113495bSYour Name  */
2793*5113495bSYour Name QDF_STATUS
2794*5113495bSYour Name wlan_mlme_is_11d_enabled(struct wlan_objmgr_psoc *psoc, bool *value);
2795*5113495bSYour Name 
2796*5113495bSYour Name /**
2797*5113495bSYour Name  * wlan_mlme_set_11d_enabled() - Set the 11h flag
2798*5113495bSYour Name  * @psoc: psoc context
2799*5113495bSYour Name  * @value: Enable/Disable value
2800*5113495bSYour Name  *
2801*5113495bSYour Name  * Return: QDF_STATUS
2802*5113495bSYour Name  */
2803*5113495bSYour Name QDF_STATUS
2804*5113495bSYour Name wlan_mlme_set_11d_enabled(struct wlan_objmgr_psoc *psoc, bool value);
2805*5113495bSYour Name 
2806*5113495bSYour Name /**
2807*5113495bSYour Name  * wlan_mlme_is_rf_test_mode_enabled() - Get the rf test mode flag
2808*5113495bSYour Name  * @psoc: psoc context
2809*5113495bSYour Name  * @value: Enable/Disable value ptr.
2810*5113495bSYour Name  *
2811*5113495bSYour Name  * Return: QDF_STATUS
2812*5113495bSYour Name  */
2813*5113495bSYour Name QDF_STATUS
2814*5113495bSYour Name wlan_mlme_is_rf_test_mode_enabled(struct wlan_objmgr_psoc *psoc, bool *value);
2815*5113495bSYour Name 
2816*5113495bSYour Name /**
2817*5113495bSYour Name  * wlan_mlme_set_rf_test_mode_enabled() - Set the rf test mode flag
2818*5113495bSYour Name  * @psoc: psoc context
2819*5113495bSYour Name  * @value: Enable/Disable value.
2820*5113495bSYour Name  *
2821*5113495bSYour Name  * Return: QDF_STATUS
2822*5113495bSYour Name  */
2823*5113495bSYour Name QDF_STATUS
2824*5113495bSYour Name wlan_mlme_set_rf_test_mode_enabled(struct wlan_objmgr_psoc *psoc, bool value);
2825*5113495bSYour Name 
2826*5113495bSYour Name #ifdef CONFIG_BAND_6GHZ
2827*5113495bSYour Name /**
2828*5113495bSYour Name  * wlan_mlme_is_disable_vlp_sta_conn_to_sp_ap_enabled() - Get the disable vlp
2829*5113495bSYour Name  *                                                       STA conn to SP AP flag
2830*5113495bSYour Name  * @psoc: psoc context
2831*5113495bSYour Name  * @value: Enable/Disable value ptr.
2832*5113495bSYour Name  *
2833*5113495bSYour Name  * Return: QDF_STATUS
2834*5113495bSYour Name  */
2835*5113495bSYour Name QDF_STATUS
2836*5113495bSYour Name wlan_mlme_is_disable_vlp_sta_conn_to_sp_ap_enabled(
2837*5113495bSYour Name 						struct wlan_objmgr_psoc *psoc,
2838*5113495bSYour Name 						bool *value);
2839*5113495bSYour Name 
2840*5113495bSYour Name /**
2841*5113495bSYour Name  * wlan_mlme_is_standard_6ghz_conn_policy_enabled() - Get the 6 GHz standard
2842*5113495bSYour Name  *                                                    connection policy flag
2843*5113495bSYour Name  * @psoc: psoc context
2844*5113495bSYour Name  * @value: Enable/Disable value ptr.
2845*5113495bSYour Name  *
2846*5113495bSYour Name  * Return: QDF_STATUS
2847*5113495bSYour Name  */
2848*5113495bSYour Name QDF_STATUS
2849*5113495bSYour Name wlan_mlme_is_standard_6ghz_conn_policy_enabled(struct wlan_objmgr_psoc *psoc,
2850*5113495bSYour Name 					       bool *value);
2851*5113495bSYour Name 
2852*5113495bSYour Name #else
2853*5113495bSYour Name static inline QDF_STATUS
wlan_mlme_is_disable_vlp_sta_conn_to_sp_ap_enabled(struct wlan_objmgr_psoc * psoc,bool * value)2854*5113495bSYour Name wlan_mlme_is_disable_vlp_sta_conn_to_sp_ap_enabled(
2855*5113495bSYour Name 						struct wlan_objmgr_psoc *psoc,
2856*5113495bSYour Name 						bool *value)
2857*5113495bSYour Name {
2858*5113495bSYour Name 	*value = false;
2859*5113495bSYour Name 	return QDF_STATUS_SUCCESS;
2860*5113495bSYour Name }
2861*5113495bSYour Name 
2862*5113495bSYour Name static inline QDF_STATUS
wlan_mlme_is_standard_6ghz_conn_policy_enabled(struct wlan_objmgr_psoc * psoc,bool * value)2863*5113495bSYour Name wlan_mlme_is_standard_6ghz_conn_policy_enabled(struct wlan_objmgr_psoc *psoc,
2864*5113495bSYour Name 					       bool *value)
2865*5113495bSYour Name {
2866*5113495bSYour Name 	*value = false;
2867*5113495bSYour Name 	return QDF_STATUS_SUCCESS;
2868*5113495bSYour Name }
2869*5113495bSYour Name #endif
2870*5113495bSYour Name 
2871*5113495bSYour Name #ifdef WLAN_FEATURE_11BE_MLO
2872*5113495bSYour Name /**
2873*5113495bSYour Name  * wlan_mlme_get_eht_mode() - Get the EHT mode of operations
2874*5113495bSYour Name  * @psoc: psoc context
2875*5113495bSYour Name  * @value: EHT mode value ptr
2876*5113495bSYour Name  *
2877*5113495bSYour Name  * Return: QDF_STATUS
2878*5113495bSYour Name  */
2879*5113495bSYour Name QDF_STATUS
2880*5113495bSYour Name wlan_mlme_get_eht_mode(struct wlan_objmgr_psoc *psoc,
2881*5113495bSYour Name 		       enum wlan_eht_mode *value);
2882*5113495bSYour Name 
2883*5113495bSYour Name /**
2884*5113495bSYour Name  * wlan_mlme_set_eht_mode() - Set the EHT mode of operation
2885*5113495bSYour Name  * @psoc: psoc context
2886*5113495bSYour Name  * @value: EHT mode value
2887*5113495bSYour Name  *
2888*5113495bSYour Name  * Return: QDF_STATUS
2889*5113495bSYour Name  */
2890*5113495bSYour Name QDF_STATUS
2891*5113495bSYour Name wlan_mlme_set_eht_mode(struct wlan_objmgr_psoc *psoc, enum wlan_eht_mode value);
2892*5113495bSYour Name 
2893*5113495bSYour Name /**
2894*5113495bSYour Name  * wlan_mlme_get_emlsr_mode_enabled() - Get the eMLSR mode flag
2895*5113495bSYour Name  * @psoc: psoc context
2896*5113495bSYour Name  * @value: Enable/Disable value ptr.
2897*5113495bSYour Name  *
2898*5113495bSYour Name  * Return: QDF_STATUS
2899*5113495bSYour Name  */
2900*5113495bSYour Name QDF_STATUS
2901*5113495bSYour Name wlan_mlme_get_emlsr_mode_enabled(struct wlan_objmgr_psoc *psoc, bool *value);
2902*5113495bSYour Name 
2903*5113495bSYour Name /**
2904*5113495bSYour Name  * wlan_mlme_set_emlsr_mode_enabled() - Set the eMLSR mode flag
2905*5113495bSYour Name  * @psoc: psoc context
2906*5113495bSYour Name  * @value: Enable/Disable value.
2907*5113495bSYour Name  *
2908*5113495bSYour Name  * Return: QDF_STATUS
2909*5113495bSYour Name  */
2910*5113495bSYour Name QDF_STATUS
2911*5113495bSYour Name wlan_mlme_set_emlsr_mode_enabled(struct wlan_objmgr_psoc *psoc, bool value);
2912*5113495bSYour Name 
2913*5113495bSYour Name /**
2914*5113495bSYour Name  * wlan_mlme_set_eml_params() - Set EML subfields in psoc mlme obj that
2915*5113495bSYour Name  * are received from FW
2916*5113495bSYour Name  * @psoc: psoc context
2917*5113495bSYour Name  * @cap: psoc mac/phy capability ptr
2918*5113495bSYour Name  *
2919*5113495bSYour Name  * Return: none
2920*5113495bSYour Name  */
2921*5113495bSYour Name void
2922*5113495bSYour Name wlan_mlme_set_eml_params(struct wlan_objmgr_psoc *psoc,
2923*5113495bSYour Name 			 struct wlan_psoc_host_mac_phy_caps_ext2 *cap);
2924*5113495bSYour Name 
2925*5113495bSYour Name /**
2926*5113495bSYour Name  * wlan_mlme_get_eml_params() - Get EML subfields from psoc mlme obj
2927*5113495bSYour Name  * @psoc: psoc context
2928*5113495bSYour Name  * @cap: EML capability subfield ptr
2929*5113495bSYour Name  *
2930*5113495bSYour Name  * Return: none
2931*5113495bSYour Name  */
2932*5113495bSYour Name void
2933*5113495bSYour Name wlan_mlme_get_eml_params(struct wlan_objmgr_psoc *psoc,
2934*5113495bSYour Name 			 struct wlan_mlo_eml_cap *cap);
2935*5113495bSYour Name 
2936*5113495bSYour Name /**
2937*5113495bSYour Name  * wlan_mlme_cfg_set_emlsr_pad_delay() - Configure EMLSR padding delay subfield
2938*5113495bSYour Name  * @psoc: psoc context
2939*5113495bSYour Name  * @val: EMLSR padding delay subfield value
2940*5113495bSYour Name  *
2941*5113495bSYour Name  * API to configure EMLSR padding delay subfield in psoc mlme obj with user
2942*5113495bSYour Name  * requested value if it greater than the value configured by FW during boot-up.
2943*5113495bSYour Name  *
2944*5113495bSYour Name  * Return: none
2945*5113495bSYour Name  */
2946*5113495bSYour Name void
2947*5113495bSYour Name wlan_mlme_cfg_set_emlsr_pad_delay(struct wlan_objmgr_psoc *psoc, uint8_t val);
2948*5113495bSYour Name 
2949*5113495bSYour Name /**
2950*5113495bSYour Name  * wlan_mlme_get_t2lm_negotiation_supported() - Get the T2LM
2951*5113495bSYour Name  * negotiation supported value
2952*5113495bSYour Name  * @psoc: psoc context
2953*5113495bSYour Name  *
2954*5113495bSYour Name  * Return: t2lm negotiation supported value
2955*5113495bSYour Name  */
2956*5113495bSYour Name enum t2lm_negotiation_support
2957*5113495bSYour Name wlan_mlme_get_t2lm_negotiation_supported(struct wlan_objmgr_psoc *psoc);
2958*5113495bSYour Name 
2959*5113495bSYour Name /**
2960*5113495bSYour Name  * wlan_mlme_set_t2lm_negotiation_supported() - Set the T2LM
2961*5113495bSYour Name  * negotiation supported value
2962*5113495bSYour Name  * @psoc: psoc context
2963*5113495bSYour Name  * @value: t2lm negotiation supported value
2964*5113495bSYour Name  *
2965*5113495bSYour Name  * Return: qdf status
2966*5113495bSYour Name  */
2967*5113495bSYour Name QDF_STATUS
2968*5113495bSYour Name wlan_mlme_set_t2lm_negotiation_supported(struct wlan_objmgr_psoc *psoc,
2969*5113495bSYour Name 					 uint8_t value);
2970*5113495bSYour Name 
2971*5113495bSYour Name /**
2972*5113495bSYour Name  * wlan_mlme_get_eht_mld_id() - Get the MLD ID of the requested BSS
2973*5113495bSYour Name  * @psoc: psoc context
2974*5113495bSYour Name  *
2975*5113495bSYour Name  * Return: MLD ID of the requested BSS
2976*5113495bSYour Name  */
2977*5113495bSYour Name uint8_t
2978*5113495bSYour Name wlan_mlme_get_eht_mld_id(struct wlan_objmgr_psoc *psoc);
2979*5113495bSYour Name 
2980*5113495bSYour Name /**
2981*5113495bSYour Name  * wlan_mlme_set_eht_mld_id() - Set MLD ID of the requested BSS information
2982*5113495bSYour Name  * within the ML probe request.
2983*5113495bSYour Name  * @psoc: psoc context
2984*5113495bSYour Name  * @value: MLD ID
2985*5113495bSYour Name  *
2986*5113495bSYour Name  * Return: qdf status
2987*5113495bSYour Name  */
2988*5113495bSYour Name QDF_STATUS
2989*5113495bSYour Name wlan_mlme_set_eht_mld_id(struct wlan_objmgr_psoc *psoc, uint8_t value);
2990*5113495bSYour Name 
2991*5113495bSYour Name /*
2992*5113495bSYour Name  * wlan_mlme_get_mlo_prefer_percentage() - get MLO preference percentage
2993*5113495bSYour Name  * @psoc: pointer to psoc object
2994*5113495bSYour Name  *
2995*5113495bSYour Name  * Return: void
2996*5113495bSYour Name  */
2997*5113495bSYour Name void
2998*5113495bSYour Name wlan_mlme_get_mlo_prefer_percentage(
2999*5113495bSYour Name 				struct wlan_objmgr_psoc *psoc,
3000*5113495bSYour Name 				int8_t *mlo_prefer_percentage);
3001*5113495bSYour Name #else
3002*5113495bSYour Name static inline QDF_STATUS
wlan_mlme_get_eht_mode(struct wlan_objmgr_psoc * psoc,enum wlan_eht_mode * value)3003*5113495bSYour Name wlan_mlme_get_eht_mode(struct wlan_objmgr_psoc *psoc, enum wlan_eht_mode *value)
3004*5113495bSYour Name {
3005*5113495bSYour Name 	*value = WLAN_EHT_MODE_DISABLED;
3006*5113495bSYour Name 	return QDF_STATUS_SUCCESS;
3007*5113495bSYour Name }
3008*5113495bSYour Name 
3009*5113495bSYour Name static inline QDF_STATUS
wlan_mlme_set_eht_mode(struct wlan_objmgr_psoc * psoc,enum wlan_eht_mode value)3010*5113495bSYour Name wlan_mlme_set_eht_mode(struct wlan_objmgr_psoc *psoc, enum wlan_eht_mode value)
3011*5113495bSYour Name {
3012*5113495bSYour Name 	return QDF_STATUS_SUCCESS;
3013*5113495bSYour Name }
3014*5113495bSYour Name 
3015*5113495bSYour Name static inline QDF_STATUS
wlan_mlme_get_emlsr_mode_enabled(struct wlan_objmgr_psoc * psoc,bool * value)3016*5113495bSYour Name wlan_mlme_get_emlsr_mode_enabled(struct wlan_objmgr_psoc *psoc, bool *value)
3017*5113495bSYour Name {
3018*5113495bSYour Name 	*value = false;
3019*5113495bSYour Name 	return QDF_STATUS_SUCCESS;
3020*5113495bSYour Name }
3021*5113495bSYour Name 
3022*5113495bSYour Name static inline QDF_STATUS
wlan_mlme_set_emlsr_mode_enabled(struct wlan_objmgr_psoc * psoc,bool value)3023*5113495bSYour Name wlan_mlme_set_emlsr_mode_enabled(struct wlan_objmgr_psoc *psoc, bool value)
3024*5113495bSYour Name {
3025*5113495bSYour Name 	return QDF_STATUS_SUCCESS;
3026*5113495bSYour Name }
3027*5113495bSYour Name 
3028*5113495bSYour Name static inline void
wlan_mlme_set_eml_params(struct wlan_objmgr_psoc * psoc,struct wlan_psoc_host_mac_phy_caps_ext2 * cap)3029*5113495bSYour Name wlan_mlme_set_eml_params(struct wlan_objmgr_psoc *psoc,
3030*5113495bSYour Name 			 struct wlan_psoc_host_mac_phy_caps_ext2 *cap)
3031*5113495bSYour Name {
3032*5113495bSYour Name }
3033*5113495bSYour Name 
3034*5113495bSYour Name static inline void
wlan_mlme_get_eml_params(struct wlan_objmgr_psoc * psoc,struct wlan_mlo_eml_cap * cap)3035*5113495bSYour Name wlan_mlme_get_eml_params(struct wlan_objmgr_psoc *psoc,
3036*5113495bSYour Name 			 struct wlan_mlo_eml_cap *cap)
3037*5113495bSYour Name {
3038*5113495bSYour Name }
3039*5113495bSYour Name 
3040*5113495bSYour Name static inline void
wlan_mlme_cfg_set_emlsr_pad_delay(struct wlan_objmgr_psoc * psoc,uint8_t val)3041*5113495bSYour Name wlan_mlme_cfg_set_emlsr_pad_delay(struct wlan_objmgr_psoc *psoc, uint8_t val)
3042*5113495bSYour Name {
3043*5113495bSYour Name }
3044*5113495bSYour Name 
3045*5113495bSYour Name static inline enum t2lm_negotiation_support
wlan_mlme_get_t2lm_negotiation_supported(struct wlan_objmgr_psoc * psoc)3046*5113495bSYour Name wlan_mlme_get_t2lm_negotiation_supported(struct wlan_objmgr_psoc *psoc)
3047*5113495bSYour Name {
3048*5113495bSYour Name 	return T2LM_NEGOTIATION_DISABLED;
3049*5113495bSYour Name }
3050*5113495bSYour Name 
3051*5113495bSYour Name static inline QDF_STATUS
wlan_mlme_set_t2lm_negotiation_supported(struct wlan_objmgr_psoc * psoc,uint8_t value)3052*5113495bSYour Name wlan_mlme_set_t2lm_negotiation_supported(struct wlan_objmgr_psoc *psoc,
3053*5113495bSYour Name 					 uint8_t value)
3054*5113495bSYour Name {
3055*5113495bSYour Name 	return QDF_STATUS_E_NOSUPPORT;
3056*5113495bSYour Name }
3057*5113495bSYour Name 
3058*5113495bSYour Name static inline void
wlan_mlme_get_mlo_prefer_percentage(struct wlan_objmgr_psoc * psoc,int8_t * mlo_prefer_percentage)3059*5113495bSYour Name wlan_mlme_get_mlo_prefer_percentage(
3060*5113495bSYour Name 				struct wlan_objmgr_psoc *psoc,
3061*5113495bSYour Name 				int8_t *mlo_prefer_percentage)
3062*5113495bSYour Name {}
3063*5113495bSYour Name #endif
3064*5113495bSYour Name 
3065*5113495bSYour Name /**
3066*5113495bSYour Name  * wlan_mlme_set_btm_abridge_flag() - Set BTM abridge flag
3067*5113495bSYour Name  * @psoc: psoc context
3068*5113495bSYour Name  * @value: abridge flag
3069*5113495bSYour Name  *
3070*5113495bSYour Name  * Return: qdf status
3071*5113495bSYour Name  *
3072*5113495bSYour Name  * BTM abridge flag indicates whether to select candidates
3073*5113495bSYour Name  * for BTM roam based on score.
3074*5113495bSYour Name  */
3075*5113495bSYour Name QDF_STATUS
3076*5113495bSYour Name wlan_mlme_set_btm_abridge_flag(struct wlan_objmgr_psoc *psoc, bool value);
3077*5113495bSYour Name 
3078*5113495bSYour Name /**
3079*5113495bSYour Name  * wlan_mlme_get_btm_abridge_flag() - Get BTM abridge flag
3080*5113495bSYour Name  * @psoc: psoc context
3081*5113495bSYour Name  *
3082*5113495bSYour Name  * Return: abridge flag
3083*5113495bSYour Name  *
3084*5113495bSYour Name  * BTM abridge flag indicates whether to select candidates
3085*5113495bSYour Name  * for BTM roam based on score.
3086*5113495bSYour Name  */
3087*5113495bSYour Name bool
3088*5113495bSYour Name wlan_mlme_get_btm_abridge_flag(struct wlan_objmgr_psoc *psoc);
3089*5113495bSYour Name 
3090*5113495bSYour Name /**
3091*5113495bSYour Name  * wlan_mlme_get_sta_miracast_mcc_rest_time() - Get STA/MIRACAST MCC rest time
3092*5113495bSYour Name  * @psoc: pointer to psoc object
3093*5113495bSYour Name  * @value: value which needs to filled by API
3094*5113495bSYour Name  *
3095*5113495bSYour Name  * This API gives rest time to be used when STA and MIRACAST MCC conc happens
3096*5113495bSYour Name  *
3097*5113495bSYour Name  * Return: QDF_STATUS
3098*5113495bSYour Name  */
3099*5113495bSYour Name QDF_STATUS
3100*5113495bSYour Name wlan_mlme_get_sta_miracast_mcc_rest_time(struct wlan_objmgr_psoc *psoc,
3101*5113495bSYour Name 					 uint32_t *value);
3102*5113495bSYour Name 
3103*5113495bSYour Name /**
3104*5113495bSYour Name  * wlan_mlme_get_max_modulated_dtim_ms() - get the max modulated dtim in ms
3105*5113495bSYour Name  * restart
3106*5113495bSYour Name  * @psoc: pointer to psoc object
3107*5113495bSYour Name  * @value: Value that needs to be set from the caller
3108*5113495bSYour Name  *
3109*5113495bSYour Name  * Return: QDF Status
3110*5113495bSYour Name  */
3111*5113495bSYour Name QDF_STATUS
3112*5113495bSYour Name wlan_mlme_get_max_modulated_dtim_ms(struct wlan_objmgr_psoc *psoc,
3113*5113495bSYour Name 				    uint16_t *value);
3114*5113495bSYour Name 
3115*5113495bSYour Name /**
3116*5113495bSYour Name  * wlan_mlme_get_scan_probe_unicast_ra() - Get scan probe unicast RA cfg
3117*5113495bSYour Name  * @psoc: pointer to psoc object
3118*5113495bSYour Name  * @value: value which needs to filled by API
3119*5113495bSYour Name  *
3120*5113495bSYour Name  * This API gives scan probe request with unicast RA user config
3121*5113495bSYour Name  *
3122*5113495bSYour Name  * Return: QDF_STATUS
3123*5113495bSYour Name  */
3124*5113495bSYour Name QDF_STATUS
3125*5113495bSYour Name wlan_mlme_get_scan_probe_unicast_ra(struct wlan_objmgr_psoc *psoc,
3126*5113495bSYour Name 				    bool *value);
3127*5113495bSYour Name 
3128*5113495bSYour Name /**
3129*5113495bSYour Name  * wlan_mlme_set_scan_probe_unicast_ra() - Set scan probe unicast RA cfg
3130*5113495bSYour Name  * @psoc: pointer to psoc object
3131*5113495bSYour Name  * @value: set value
3132*5113495bSYour Name  *
3133*5113495bSYour Name  * This API sets scan probe request with unicast RA user config
3134*5113495bSYour Name  *
3135*5113495bSYour Name  * Return: QDF_STATUS
3136*5113495bSYour Name  */
3137*5113495bSYour Name QDF_STATUS
3138*5113495bSYour Name wlan_mlme_set_scan_probe_unicast_ra(struct wlan_objmgr_psoc *psoc,
3139*5113495bSYour Name 				    bool value);
3140*5113495bSYour Name 
3141*5113495bSYour Name /**
3142*5113495bSYour Name  * wlan_mlme_get_sap_mcc_chnl_avoid() - Check if SAP MCC needs to be avoided
3143*5113495bSYour Name  * @psoc: pointer to psoc object
3144*5113495bSYour Name  * @value: value which needs to filled by API
3145*5113495bSYour Name  *
3146*5113495bSYour Name  * This API fetches the user setting to determine if SAP MCC with other persona
3147*5113495bSYour Name  * to be avoided.
3148*5113495bSYour Name  *
3149*5113495bSYour Name  * Return: QDF_STATUS
3150*5113495bSYour Name  */
3151*5113495bSYour Name QDF_STATUS
3152*5113495bSYour Name wlan_mlme_get_sap_mcc_chnl_avoid(struct wlan_objmgr_psoc *psoc,
3153*5113495bSYour Name 				 uint8_t *value);
3154*5113495bSYour Name /**
3155*5113495bSYour Name  * wlan_mlme_get_mcc_bcast_prob_resp() - Get broadcast probe rsp in MCC
3156*5113495bSYour Name  * @psoc: pointer to psoc object
3157*5113495bSYour Name  * @value: value which needs to filled by API
3158*5113495bSYour Name  *
3159*5113495bSYour Name  * To get INI value which helps to determe whether to enable/disable use of
3160*5113495bSYour Name  * broadcast probe response to increase the detectability of SAP in MCC mode.
3161*5113495bSYour Name  *
3162*5113495bSYour Name  *
3163*5113495bSYour Name  * Return: QDF_STATUS
3164*5113495bSYour Name  */
3165*5113495bSYour Name QDF_STATUS
3166*5113495bSYour Name wlan_mlme_get_mcc_bcast_prob_resp(struct wlan_objmgr_psoc *psoc,
3167*5113495bSYour Name 				  uint8_t *value);
3168*5113495bSYour Name /**
3169*5113495bSYour Name  * wlan_mlme_get_mcc_rts_cts_prot() - To get RTS-CTS protection in MCC.
3170*5113495bSYour Name  * @psoc: pointer to psoc object
3171*5113495bSYour Name  * @value: value which needs to filled by API
3172*5113495bSYour Name  *
3173*5113495bSYour Name  * To get INI value which helps to determine whether to enable/disable
3174*5113495bSYour Name  * use of long duration RTS-CTS protection when SAP goes off
3175*5113495bSYour Name  * channel in MCC mode.
3176*5113495bSYour Name  *
3177*5113495bSYour Name  * Return: QDF_STATUS
3178*5113495bSYour Name  */
3179*5113495bSYour Name QDF_STATUS
3180*5113495bSYour Name wlan_mlme_get_mcc_rts_cts_prot(struct wlan_objmgr_psoc *psoc,
3181*5113495bSYour Name 			       uint8_t *value);
3182*5113495bSYour Name /**
3183*5113495bSYour Name  * wlan_mlme_get_mcc_feature() - To find out to enable/disable MCC feature
3184*5113495bSYour Name  * @psoc: pointer to psoc object
3185*5113495bSYour Name  * @value: value which needs to filled by API
3186*5113495bSYour Name  *
3187*5113495bSYour Name  * To get INI value which helps to determine whether to enable MCC feature
3188*5113495bSYour Name  *
3189*5113495bSYour Name  * Return: QDF_STATUS
3190*5113495bSYour Name  */
3191*5113495bSYour Name QDF_STATUS
3192*5113495bSYour Name wlan_mlme_get_mcc_feature(struct wlan_objmgr_psoc *psoc,
3193*5113495bSYour Name 			  uint8_t *value);
3194*5113495bSYour Name 
3195*5113495bSYour Name /**
3196*5113495bSYour Name  * wlan_mlme_get_rrm_enabled() - Get the RRM enabled ini
3197*5113495bSYour Name  * @psoc: pointer to psoc object
3198*5113495bSYour Name  * @value: pointer to the value which will be filled for the caller
3199*5113495bSYour Name  *
3200*5113495bSYour Name  * Return: QDF Status
3201*5113495bSYour Name  */
3202*5113495bSYour Name QDF_STATUS wlan_mlme_get_rrm_enabled(struct wlan_objmgr_psoc *psoc,
3203*5113495bSYour Name 				     bool *value);
3204*5113495bSYour Name 
3205*5113495bSYour Name /**
3206*5113495bSYour Name  * wlan_mlme_get_dtim_selection_diversity() - get dtim selection diversity
3207*5113495bSYour Name  * bitmap
3208*5113495bSYour Name  * @psoc: pointer to psoc object
3209*5113495bSYour Name  * @dtim_selection_div: value that is requested by the caller
3210*5113495bSYour Name  * This function gets the dtim selection diversity bitmap to be
3211*5113495bSYour Name  * sent to the firmware
3212*5113495bSYour Name  *
3213*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS - in case of success
3214*5113495bSYour Name  */
3215*5113495bSYour Name QDF_STATUS wlan_mlme_get_dtim_selection_diversity(struct wlan_objmgr_psoc *psoc,
3216*5113495bSYour Name 						  uint32_t *dtim_selection_div);
3217*5113495bSYour Name 
3218*5113495bSYour Name /**
3219*5113495bSYour Name  * wlan_mlme_get_bmps_min_listen_interval() - get beacon mode powersave
3220*5113495bSYour Name  * minimum listen interval value
3221*5113495bSYour Name  * @psoc: pointer to psoc object
3222*5113495bSYour Name  * @value: value that is requested by the caller
3223*5113495bSYour Name  *
3224*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS - in case of success
3225*5113495bSYour Name  */
3226*5113495bSYour Name QDF_STATUS wlan_mlme_get_bmps_min_listen_interval(struct wlan_objmgr_psoc *psoc,
3227*5113495bSYour Name 						  uint32_t *value);
3228*5113495bSYour Name 
3229*5113495bSYour Name /**
3230*5113495bSYour Name  * wlan_mlme_get_bmps_max_listen_interval() - get beacon mode powersave
3231*5113495bSYour Name  * maximum listen interval value
3232*5113495bSYour Name  * @psoc: pointer to psoc object
3233*5113495bSYour Name  * @value: value that is requested by the caller
3234*5113495bSYour Name  *
3235*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS - in case of success
3236*5113495bSYour Name  */
3237*5113495bSYour Name QDF_STATUS wlan_mlme_get_bmps_max_listen_interval(struct wlan_objmgr_psoc *psoc,
3238*5113495bSYour Name 						  uint32_t *value);
3239*5113495bSYour Name 
3240*5113495bSYour Name /**
3241*5113495bSYour Name  * wlan_mlme_get_auto_bmps_timer_value() - get bmps timer value
3242*5113495bSYour Name  * @psoc: pointer to psoc object
3243*5113495bSYour Name  * @value: value that is requested by the caller
3244*5113495bSYour Name  *
3245*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS - in case of success
3246*5113495bSYour Name  */
3247*5113495bSYour Name QDF_STATUS wlan_mlme_get_auto_bmps_timer_value(struct wlan_objmgr_psoc *psoc,
3248*5113495bSYour Name 					       uint32_t *value);
3249*5113495bSYour Name 
3250*5113495bSYour Name /**
3251*5113495bSYour Name  * wlan_mlme_is_bmps_enabled() - check if beacon mode powersave is
3252*5113495bSYour Name  * enabled/disabled
3253*5113495bSYour Name  * @psoc: pointer to psoc object
3254*5113495bSYour Name  * @value: value that is requested by the caller
3255*5113495bSYour Name  *
3256*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS - in case of success
3257*5113495bSYour Name  */
3258*5113495bSYour Name QDF_STATUS wlan_mlme_is_bmps_enabled(struct wlan_objmgr_psoc *psoc,
3259*5113495bSYour Name 				     bool *value);
3260*5113495bSYour Name 
3261*5113495bSYour Name /**
3262*5113495bSYour Name  * wlan_mlme_override_bmps_imps() - disable imps/bmps
3263*5113495bSYour Name  * @psoc: pointer to psoc object
3264*5113495bSYour Name  *
3265*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS - in case of success
3266*5113495bSYour Name  */
3267*5113495bSYour Name QDF_STATUS wlan_mlme_override_bmps_imps(struct wlan_objmgr_psoc *psoc);
3268*5113495bSYour Name 
3269*5113495bSYour Name /**
3270*5113495bSYour Name  * wlan_mlme_is_imps_enabled() - check if idle mode powersave is
3271*5113495bSYour Name  * enabled/disabled
3272*5113495bSYour Name  * @psoc: pointer to psoc object
3273*5113495bSYour Name  * @value: value that is requested by the caller
3274*5113495bSYour Name  *
3275*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS - in case of success
3276*5113495bSYour Name  */
3277*5113495bSYour Name QDF_STATUS wlan_mlme_is_imps_enabled(struct wlan_objmgr_psoc *psoc,
3278*5113495bSYour Name 				     bool *value);
3279*5113495bSYour Name 
3280*5113495bSYour Name /**
3281*5113495bSYour Name  * wlan_mlme_get_wps_uuid() - get the wps uuid string
3282*5113495bSYour Name  * @wps_params:   pointer to mlme wps parameters structure
3283*5113495bSYour Name  * @data:          data to which the parameter is to be copied
3284*5113495bSYour Name  *
3285*5113495bSYour Name  * Return None
3286*5113495bSYour Name  *
3287*5113495bSYour Name  */
3288*5113495bSYour Name void
3289*5113495bSYour Name wlan_mlme_get_wps_uuid(struct wlan_mlme_wps_params *wps_params, uint8_t *data);
3290*5113495bSYour Name 
3291*5113495bSYour Name /**
3292*5113495bSYour Name  * wlan_mlme_get_self_gen_frm_pwr() - get self gen frm pwr
3293*5113495bSYour Name  * @psoc: pointer to psoc object
3294*5113495bSYour Name  * @value:  Pointer to the value which will be filled for the caller
3295*5113495bSYour Name  *
3296*5113495bSYour Name  * Return: QDF Status
3297*5113495bSYour Name  */
3298*5113495bSYour Name QDF_STATUS
3299*5113495bSYour Name wlan_mlme_get_self_gen_frm_pwr(struct wlan_objmgr_psoc *psoc,
3300*5113495bSYour Name 			       uint32_t *value);
3301*5113495bSYour Name 
3302*5113495bSYour Name /**
3303*5113495bSYour Name  * wlan_mlme_get_4way_hs_offload() - get 4-way hs offload to fw cfg
3304*5113495bSYour Name  * @psoc: pointer to psoc object
3305*5113495bSYour Name  * @value:  Pointer to the value which will be filled for the caller
3306*5113495bSYour Name  *
3307*5113495bSYour Name  * Return: QDF Status
3308*5113495bSYour Name  */
3309*5113495bSYour Name QDF_STATUS
3310*5113495bSYour Name wlan_mlme_get_4way_hs_offload(struct wlan_objmgr_psoc *psoc, uint32_t *value);
3311*5113495bSYour Name 
3312*5113495bSYour Name /**
3313*5113495bSYour Name  * wlan_mlme_get_bmiss_skip_full_scan_value() - To get value of
3314*5113495bSYour Name  * bmiss_skip_full_scan ini
3315*5113495bSYour Name  * @psoc: pointer to psoc object
3316*5113495bSYour Name  * @value:  Pointer to the value which will be filled for the caller
3317*5113495bSYour Name  *
3318*5113495bSYour Name  * Return: QDF Status
3319*5113495bSYour Name  */
3320*5113495bSYour Name QDF_STATUS
3321*5113495bSYour Name wlan_mlme_get_bmiss_skip_full_scan_value(struct wlan_objmgr_psoc *psoc,
3322*5113495bSYour Name 					 bool *value);
3323*5113495bSYour Name 
3324*5113495bSYour Name /**
3325*5113495bSYour Name  * mlme_get_peer_phymode() - get phymode of peer
3326*5113495bSYour Name  * @psoc: pointer to psoc object
3327*5113495bSYour Name  * @mac:  Pointer to the mac addr of the peer
3328*5113495bSYour Name  * @peer_phymode: phymode
3329*5113495bSYour Name  *
3330*5113495bSYour Name  * Return: QDF Status
3331*5113495bSYour Name  */
3332*5113495bSYour Name QDF_STATUS
3333*5113495bSYour Name mlme_get_peer_phymode(struct wlan_objmgr_psoc *psoc, uint8_t *mac,
3334*5113495bSYour Name 		      enum wlan_phymode *peer_phymode);
3335*5113495bSYour Name 
3336*5113495bSYour Name /**
3337*5113495bSYour Name  * mlme_set_tgt_wpa3_roam_cap() - Set the target WPA3 roam support
3338*5113495bSYour Name  * to mlme
3339*5113495bSYour Name  * @psoc: pointer to PSOC object
3340*5113495bSYour Name  * @akm_bitmap: Bitmap of akm suites supported for roaming by the firmware
3341*5113495bSYour Name  *
3342*5113495bSYour Name  * Return: QDF Status
3343*5113495bSYour Name  */
3344*5113495bSYour Name QDF_STATUS mlme_set_tgt_wpa3_roam_cap(struct wlan_objmgr_psoc *psoc,
3345*5113495bSYour Name 				      uint32_t akm_bitmap);
3346*5113495bSYour Name /**
3347*5113495bSYour Name  * wlan_mlme_get_ignore_fw_reg_offload_ind() - Get the
3348*5113495bSYour Name  * ignore_fw_reg_offload_ind ini
3349*5113495bSYour Name  * @psoc: pointer to psoc object
3350*5113495bSYour Name  * @disabled: output pointer to hold user config
3351*5113495bSYour Name  *
3352*5113495bSYour Name  * Return: QDF Status
3353*5113495bSYour Name  */
3354*5113495bSYour Name QDF_STATUS
3355*5113495bSYour Name wlan_mlme_get_ignore_fw_reg_offload_ind(struct wlan_objmgr_psoc *psoc,
3356*5113495bSYour Name 					bool *disabled);
3357*5113495bSYour Name 
3358*5113495bSYour Name /**
3359*5113495bSYour Name  * mlme_get_roam_trigger_str() - Get the string for enum
3360*5113495bSYour Name  * WMI_ROAM_TRIGGER_REASON_ID reason.
3361*5113495bSYour Name  * @roam_scan_trigger: roam scan trigger ID
3362*5113495bSYour Name  *
3363*5113495bSYour Name  *  Return: Meaningful string from enum WMI_ROAM_TRIGGER_REASON_ID
3364*5113495bSYour Name  */
3365*5113495bSYour Name char *mlme_get_roam_trigger_str(uint32_t roam_scan_trigger);
3366*5113495bSYour Name 
3367*5113495bSYour Name /**
3368*5113495bSYour Name  * mlme_get_roam_status_str() - Get the string for roam status
3369*5113495bSYour Name  * @roam_status: roam status coming from fw via
3370*5113495bSYour Name  * wmi_roam_scan_info tlv
3371*5113495bSYour Name  *
3372*5113495bSYour Name  *  Return: Meaningful string for roam status
3373*5113495bSYour Name  */
3374*5113495bSYour Name char *mlme_get_roam_status_str(uint32_t roam_status);
3375*5113495bSYour Name 
3376*5113495bSYour Name /**
3377*5113495bSYour Name  * mlme_get_converted_timestamp() - Return time of the day
3378*5113495bSYour Name  * from timestamp
3379*5113495bSYour Name  * @timestamp:    Timestamp value in milliseconds
3380*5113495bSYour Name  * @time:         Output buffer to fill time into
3381*5113495bSYour Name  *
3382*5113495bSYour Name  * Return: Time of the day in [HH:MM:SS.uS]
3383*5113495bSYour Name  */
3384*5113495bSYour Name void mlme_get_converted_timestamp(uint32_t timestamp, char *time);
3385*5113495bSYour Name 
3386*5113495bSYour Name #if defined(WLAN_SAE_SINGLE_PMK) && defined(WLAN_FEATURE_ROAM_OFFLOAD)
3387*5113495bSYour Name /**
3388*5113495bSYour Name  * wlan_mlme_set_sae_single_pmk_bss_cap - API to set WPA3 single pmk AP IE
3389*5113495bSYour Name  * @psoc: Pointer to psoc object
3390*5113495bSYour Name  * @vdev_id: vdev id
3391*5113495bSYour Name  * @val: value to be set
3392*5113495bSYour Name  *
3393*5113495bSYour Name  * Return : None
3394*5113495bSYour Name  */
3395*5113495bSYour Name void wlan_mlme_set_sae_single_pmk_bss_cap(struct wlan_objmgr_psoc *psoc,
3396*5113495bSYour Name 					  uint8_t vdev_id, bool val);
3397*5113495bSYour Name 
3398*5113495bSYour Name /**
3399*5113495bSYour Name  * wlan_mlme_update_sae_single_pmk - API to update mlme_pmkid_info
3400*5113495bSYour Name  * @vdev: vdev object
3401*5113495bSYour Name  * @sae_single_pmk: pointer to sae_single_pmk_info struct
3402*5113495bSYour Name  *
3403*5113495bSYour Name  * Return : None
3404*5113495bSYour Name  */
3405*5113495bSYour Name void
3406*5113495bSYour Name wlan_mlme_update_sae_single_pmk(struct wlan_objmgr_vdev *vdev,
3407*5113495bSYour Name 				struct mlme_pmk_info *sae_single_pmk);
3408*5113495bSYour Name 
3409*5113495bSYour Name /**
3410*5113495bSYour Name  * wlan_mlme_get_sae_single_pmk_info - API to get mlme_pmkid_info
3411*5113495bSYour Name  * @vdev: vdev object
3412*5113495bSYour Name  * @pmksa: pointer to PMKSA struct
3413*5113495bSYour Name  *
3414*5113495bSYour Name  * Return : None
3415*5113495bSYour Name  */
3416*5113495bSYour Name void
3417*5113495bSYour Name wlan_mlme_get_sae_single_pmk_info(struct wlan_objmgr_vdev *vdev,
3418*5113495bSYour Name 				  struct wlan_mlme_sae_single_pmk *pmksa);
3419*5113495bSYour Name 
3420*5113495bSYour Name /**
3421*5113495bSYour Name  * wlan_mlme_is_sae_single_pmk_enabled() - Get is SAE single pmk feature enabled
3422*5113495bSYour Name  * @psoc: Pointer to Global psoc
3423*5113495bSYour Name  *
3424*5113495bSYour Name  * Return: True if SAE single PMK is enabled
3425*5113495bSYour Name  */
3426*5113495bSYour Name bool wlan_mlme_is_sae_single_pmk_enabled(struct wlan_objmgr_psoc *psoc);
3427*5113495bSYour Name 
3428*5113495bSYour Name /**
3429*5113495bSYour Name  * wlan_mlme_clear_sae_single_pmk_info - API to clear mlme_pmkid_info ap caps
3430*5113495bSYour Name  * @vdev: vdev object
3431*5113495bSYour Name  * @pmk : pmk info to clear
3432*5113495bSYour Name  *
3433*5113495bSYour Name  * Return : None
3434*5113495bSYour Name  */
3435*5113495bSYour Name void wlan_mlme_clear_sae_single_pmk_info(struct wlan_objmgr_vdev *vdev,
3436*5113495bSYour Name 					 struct mlme_pmk_info *pmk);
3437*5113495bSYour Name #else
3438*5113495bSYour Name static inline void
wlan_mlme_set_sae_single_pmk_bss_cap(struct wlan_objmgr_psoc * psoc,uint8_t vdev_id,bool val)3439*5113495bSYour Name wlan_mlme_set_sae_single_pmk_bss_cap(struct wlan_objmgr_psoc *psoc,
3440*5113495bSYour Name 				     uint8_t vdev_id, bool val)
3441*5113495bSYour Name {
3442*5113495bSYour Name }
3443*5113495bSYour Name 
3444*5113495bSYour Name static inline
wlan_mlme_is_sae_single_pmk_enabled(struct wlan_objmgr_psoc * psoc)3445*5113495bSYour Name bool wlan_mlme_is_sae_single_pmk_enabled(struct wlan_objmgr_psoc *psoc)
3446*5113495bSYour Name {
3447*5113495bSYour Name 	return false;
3448*5113495bSYour Name }
3449*5113495bSYour Name 
3450*5113495bSYour Name static inline void
wlan_mlme_update_sae_single_pmk(struct wlan_objmgr_vdev * vdev,struct mlme_pmk_info * sae_single_pmk)3451*5113495bSYour Name wlan_mlme_update_sae_single_pmk(struct wlan_objmgr_vdev *vdev,
3452*5113495bSYour Name 				struct mlme_pmk_info *sae_single_pmk)
3453*5113495bSYour Name {
3454*5113495bSYour Name }
3455*5113495bSYour Name 
3456*5113495bSYour Name static inline void
wlan_mlme_get_sae_single_pmk_info(struct wlan_objmgr_vdev * vdev,struct wlan_mlme_sae_single_pmk * pmksa)3457*5113495bSYour Name wlan_mlme_get_sae_single_pmk_info(struct wlan_objmgr_vdev *vdev,
3458*5113495bSYour Name 				  struct wlan_mlme_sae_single_pmk *pmksa)
3459*5113495bSYour Name {
3460*5113495bSYour Name }
3461*5113495bSYour Name 
3462*5113495bSYour Name static inline
wlan_mlme_clear_sae_single_pmk_info(struct wlan_objmgr_vdev * vdev,struct mlme_pmk_info * pmk)3463*5113495bSYour Name void wlan_mlme_clear_sae_single_pmk_info(struct wlan_objmgr_vdev *vdev,
3464*5113495bSYour Name 					 struct mlme_pmk_info *pmk)
3465*5113495bSYour Name {
3466*5113495bSYour Name }
3467*5113495bSYour Name #endif
3468*5113495bSYour Name 
3469*5113495bSYour Name /**
3470*5113495bSYour Name  * mlme_get_roam_fail_reason_str() - Get fail string from enum
3471*5113495bSYour Name  * WMI_ROAM_FAIL_REASON_ID
3472*5113495bSYour Name  * @result:   Roam fail reason
3473*5113495bSYour Name  *
3474*5113495bSYour Name  * Return: Meaningful string from enum
3475*5113495bSYour Name  */
3476*5113495bSYour Name char *mlme_get_roam_fail_reason_str(uint32_t result);
3477*5113495bSYour Name 
3478*5113495bSYour Name /**
3479*5113495bSYour Name  * mlme_get_sub_reason_str() - Get roam trigger sub reason from enum
3480*5113495bSYour Name  * WMI_ROAM_TRIGGER_SUB_REASON_ID
3481*5113495bSYour Name  * @sub_reason: Sub reason value
3482*5113495bSYour Name  *
3483*5113495bSYour Name  * Return: Meaningful string from enum WMI_ROAM_TRIGGER_SUB_REASON_ID
3484*5113495bSYour Name  */
3485*5113495bSYour Name char *mlme_get_sub_reason_str(uint32_t sub_reason);
3486*5113495bSYour Name 
3487*5113495bSYour Name /**
3488*5113495bSYour Name  * wlan_mlme_get_mgmt_max_retry() - Get the
3489*5113495bSYour Name  * max mgmt retry
3490*5113495bSYour Name  * @psoc: pointer to psoc object
3491*5113495bSYour Name  * @max_retry: output pointer to hold user config
3492*5113495bSYour Name  *
3493*5113495bSYour Name  * Return: QDF Status
3494*5113495bSYour Name  */
3495*5113495bSYour Name QDF_STATUS
3496*5113495bSYour Name wlan_mlme_get_mgmt_max_retry(struct wlan_objmgr_psoc *psoc,
3497*5113495bSYour Name 			     uint8_t *max_retry);
3498*5113495bSYour Name 
3499*5113495bSYour Name /**
3500*5113495bSYour Name  * wlan_mlme_get_mgmt_6ghz_rate_support() - Get status of HE rates for
3501*5113495bSYour Name  * 6GHz mgmt frames
3502*5113495bSYour Name  * @psoc: pointer to psoc object
3503*5113495bSYour Name  * @enable_he_mcs0_for_6ghz_mgmt: pointer to check for HE rates support
3504*5113495bSYour Name  *
3505*5113495bSYour Name  * Return: QDF Status
3506*5113495bSYour Name  */
3507*5113495bSYour Name QDF_STATUS
3508*5113495bSYour Name wlan_mlme_get_mgmt_6ghz_rate_support(struct wlan_objmgr_psoc *psoc,
3509*5113495bSYour Name 				     bool *enable_he_mcs0_for_6ghz_mgmt);
3510*5113495bSYour Name 
3511*5113495bSYour Name /**
3512*5113495bSYour Name  * wlan_mlme_get_status_ring_buffer() - Get the
3513*5113495bSYour Name  * status of ring buffer
3514*5113495bSYour Name  * @psoc: pointer to psoc object
3515*5113495bSYour Name  * @enable_ring_buffer: output pointer to point the configured value of
3516*5113495bSYour Name  * ring buffer
3517*5113495bSYour Name  *
3518*5113495bSYour Name  * Return: QDF_STATUS
3519*5113495bSYour Name  */
3520*5113495bSYour Name QDF_STATUS
3521*5113495bSYour Name wlan_mlme_get_status_ring_buffer(struct wlan_objmgr_psoc *psoc,
3522*5113495bSYour Name 				 bool *enable_ring_buffer);
3523*5113495bSYour Name 
3524*5113495bSYour Name /**
3525*5113495bSYour Name  * wlan_mlme_get_peer_unmap_conf() - Indicate if peer unmap confirmation
3526*5113495bSYour Name  * support is enabled or disabled
3527*5113495bSYour Name  * @psoc: pointer to psoc object
3528*5113495bSYour Name  *
3529*5113495bSYour Name  * Return: true if peer unmap confirmation support is enabled, else false
3530*5113495bSYour Name  */
3531*5113495bSYour Name bool wlan_mlme_get_peer_unmap_conf(struct wlan_objmgr_psoc *psoc);
3532*5113495bSYour Name 
3533*5113495bSYour Name #ifdef WLAN_FEATURE_ROAM_OFFLOAD
3534*5113495bSYour Name /**
3535*5113495bSYour Name  * wlan_mlme_get_roam_reason_vsie_status() - Indicate if roam reason
3536*5113495bSYour Name  * vsie is enabled or disabled
3537*5113495bSYour Name  * @psoc: pointer to psoc object
3538*5113495bSYour Name  * @roam_reason_vsie_enabled: pointer to hold value of roam reason
3539*5113495bSYour Name  * vsie
3540*5113495bSYour Name  *
3541*5113495bSYour Name  * Return: QDF_STATUS
3542*5113495bSYour Name  */
3543*5113495bSYour Name QDF_STATUS
3544*5113495bSYour Name wlan_mlme_get_roam_reason_vsie_status(struct wlan_objmgr_psoc *psoc,
3545*5113495bSYour Name 				      uint8_t *roam_reason_vsie_enabled);
3546*5113495bSYour Name 
3547*5113495bSYour Name /**
3548*5113495bSYour Name  * wlan_mlme_set_roam_reason_vsie_status() - Update roam reason vsie status
3549*5113495bSYour Name  * @psoc: pointer to psoc object
3550*5113495bSYour Name  * @roam_reason_vsie_enabled: value of roam reason vsie
3551*5113495bSYour Name  *
3552*5113495bSYour Name  * Return: QDF_STATUS
3553*5113495bSYour Name  */
3554*5113495bSYour Name QDF_STATUS
3555*5113495bSYour Name wlan_mlme_set_roam_reason_vsie_status(struct wlan_objmgr_psoc *psoc,
3556*5113495bSYour Name 				      uint8_t roam_reason_vsie_enabled);
3557*5113495bSYour Name 
3558*5113495bSYour Name /**
3559*5113495bSYour Name  * wlan_mlme_get_roaming_triggers  - Get the roaming triggers bitmap
3560*5113495bSYour Name  * @psoc: Pointer to PSOC object
3561*5113495bSYour Name  *
3562*5113495bSYour Name  * Return: Roaming triggers value
3563*5113495bSYour Name  */
3564*5113495bSYour Name uint32_t wlan_mlme_get_roaming_triggers(struct wlan_objmgr_psoc *psoc);
3565*5113495bSYour Name 
3566*5113495bSYour Name /**
3567*5113495bSYour Name  * wlan_mlme_set_roaming_triggers() - Set the roaming triggers bitmap
3568*5113495bSYour Name  * @psoc: Pointer to PSOC object
3569*5113495bSYour Name  * @trigger_bitmap: Roaming triggers bitmap to set
3570*5113495bSYour Name  *
3571*5113495bSYour Name  * Return: void
3572*5113495bSYour Name  */
3573*5113495bSYour Name void wlan_mlme_set_roaming_triggers(struct wlan_objmgr_psoc *psoc,
3574*5113495bSYour Name 				    uint32_t trigger_bitmap);
3575*5113495bSYour Name 
3576*5113495bSYour Name /**
3577*5113495bSYour Name  * wlan_mlme_get_roaming_offload() - Get roaming offload setting
3578*5113495bSYour Name  * @psoc: pointer to psoc object
3579*5113495bSYour Name  * @val:  Pointer to enable/disable roaming offload
3580*5113495bSYour Name  *
3581*5113495bSYour Name  * Return: QDF Status
3582*5113495bSYour Name  */
3583*5113495bSYour Name QDF_STATUS
3584*5113495bSYour Name wlan_mlme_get_roaming_offload(struct wlan_objmgr_psoc *psoc,
3585*5113495bSYour Name 			      bool *val);
3586*5113495bSYour Name 
3587*5113495bSYour Name /**
3588*5113495bSYour Name  * wlan_mlme_get_enable_disconnect_roam_offload() - Get emergency roaming
3589*5113495bSYour Name  * Enable/Disable status during deauth/disassoc
3590*5113495bSYour Name  * @psoc: pointer to psoc object
3591*5113495bSYour Name  * @val:  Pointer to emergency roaming Enable/Disable status
3592*5113495bSYour Name  *        during deauth/disassoc
3593*5113495bSYour Name  *
3594*5113495bSYour Name  * Return: QDF Status
3595*5113495bSYour Name  */
3596*5113495bSYour Name QDF_STATUS
3597*5113495bSYour Name wlan_mlme_get_enable_disconnect_roam_offload(struct wlan_objmgr_psoc *psoc,
3598*5113495bSYour Name 					     bool *val);
3599*5113495bSYour Name 
3600*5113495bSYour Name /**
3601*5113495bSYour Name  * wlan_mlme_get_enable_idle_roam() - Get Enable/Disable idle roaming status
3602*5113495bSYour Name  * @psoc: pointer to psoc object
3603*5113495bSYour Name  * @val:  Pointer to Enable/Disable idle roaming status
3604*5113495bSYour Name  *
3605*5113495bSYour Name  * Return: QDF Status
3606*5113495bSYour Name  */
3607*5113495bSYour Name QDF_STATUS
3608*5113495bSYour Name wlan_mlme_get_enable_idle_roam(struct wlan_objmgr_psoc *psoc, bool *val);
3609*5113495bSYour Name 
3610*5113495bSYour Name /**
3611*5113495bSYour Name  * wlan_mlme_get_idle_roam_rssi_delta() - Get idle roam rssi delta
3612*5113495bSYour Name  * @psoc: pointer to psoc object
3613*5113495bSYour Name  * @val:  Pointer to idle roam rssi delta
3614*5113495bSYour Name  *
3615*5113495bSYour Name  * Return: QDF Status
3616*5113495bSYour Name  */
3617*5113495bSYour Name QDF_STATUS
3618*5113495bSYour Name wlan_mlme_get_idle_roam_rssi_delta(struct wlan_objmgr_psoc *psoc,
3619*5113495bSYour Name 				   uint32_t *val);
3620*5113495bSYour Name 
3621*5113495bSYour Name /**
3622*5113495bSYour Name  * wlan_mlme_get_roam_info_stats_num() - Get roam information statistics number
3623*5113495bSYour Name  * @psoc: pointer to psoc object
3624*5113495bSYour Name  * @val:  Pointer to roam_info_stats_num
3625*5113495bSYour Name  *
3626*5113495bSYour Name  * Return: QDF Status
3627*5113495bSYour Name  */
3628*5113495bSYour Name QDF_STATUS
3629*5113495bSYour Name wlan_mlme_get_roam_info_stats_num(struct wlan_objmgr_psoc *psoc, uint32_t *val);
3630*5113495bSYour Name 
3631*5113495bSYour Name /**
3632*5113495bSYour Name  * wlan_mlme_get_idle_roam_inactive_time() - Get idle roam inactive time
3633*5113495bSYour Name  * @psoc: pointer to psoc object
3634*5113495bSYour Name  * @val:  Pointer to idle roam inactive time
3635*5113495bSYour Name  *
3636*5113495bSYour Name  * Return: QDF Status
3637*5113495bSYour Name  */
3638*5113495bSYour Name QDF_STATUS
3639*5113495bSYour Name wlan_mlme_get_idle_roam_inactive_time(struct wlan_objmgr_psoc *psoc,
3640*5113495bSYour Name 				      uint32_t *val);
3641*5113495bSYour Name /**
3642*5113495bSYour Name  * wlan_mlme_get_idle_data_packet_count() - Get idle data packet count
3643*5113495bSYour Name  * @psoc: pointer to psoc object
3644*5113495bSYour Name  * @val:  Pointer to idle data packet count
3645*5113495bSYour Name  *
3646*5113495bSYour Name  * Return: QDF Status
3647*5113495bSYour Name  */
3648*5113495bSYour Name QDF_STATUS
3649*5113495bSYour Name wlan_mlme_get_idle_data_packet_count(struct wlan_objmgr_psoc *psoc,
3650*5113495bSYour Name 				     uint32_t *val);
3651*5113495bSYour Name 
3652*5113495bSYour Name /**
3653*5113495bSYour Name  * wlan_mlme_get_idle_roam_min_rssi() - Get idle roam min rssi
3654*5113495bSYour Name  * @psoc: pointer to psoc object
3655*5113495bSYour Name  * @val:  Pointer to idle roam min rssi
3656*5113495bSYour Name  *
3657*5113495bSYour Name  * Return: QDF Status
3658*5113495bSYour Name  */
3659*5113495bSYour Name QDF_STATUS
3660*5113495bSYour Name wlan_mlme_get_idle_roam_min_rssi(struct wlan_objmgr_psoc *psoc, uint32_t *val);
3661*5113495bSYour Name 
3662*5113495bSYour Name /**
3663*5113495bSYour Name  * wlan_mlme_get_idle_roam_band() - Get idle roam band
3664*5113495bSYour Name  * @psoc: pointer to psoc object
3665*5113495bSYour Name  * @val:  Pointer to idle roam band
3666*5113495bSYour Name  *
3667*5113495bSYour Name  * Return: QDF Status
3668*5113495bSYour Name  */
3669*5113495bSYour Name QDF_STATUS
3670*5113495bSYour Name wlan_mlme_get_idle_roam_band(struct wlan_objmgr_psoc *psoc, uint32_t *val);
3671*5113495bSYour Name 
3672*5113495bSYour Name /**
3673*5113495bSYour Name  * wlan_mlme_get_self_bss_roam() - Get self bss roam enable status
3674*5113495bSYour Name  * @psoc: pointer to psoc object
3675*5113495bSYour Name  * @enable_self_bss_roam:  Pointer to self bss roam enable status
3676*5113495bSYour Name  *
3677*5113495bSYour Name  * Return: QDF Status
3678*5113495bSYour Name  */
3679*5113495bSYour Name QDF_STATUS
3680*5113495bSYour Name wlan_mlme_get_self_bss_roam(struct wlan_objmgr_psoc *psoc,
3681*5113495bSYour Name 			    uint8_t *enable_self_bss_roam);
3682*5113495bSYour Name #else
3683*5113495bSYour Name static inline QDF_STATUS
wlan_mlme_get_roam_reason_vsie_status(struct wlan_objmgr_psoc * psoc,uint8_t * roam_reason_vsie_enable)3684*5113495bSYour Name wlan_mlme_get_roam_reason_vsie_status(struct wlan_objmgr_psoc *psoc,
3685*5113495bSYour Name 				      uint8_t *roam_reason_vsie_enable)
3686*5113495bSYour Name {
3687*5113495bSYour Name 	return QDF_STATUS_E_FAILURE;
3688*5113495bSYour Name }
3689*5113495bSYour Name 
3690*5113495bSYour Name static inline QDF_STATUS
wlan_mlme_set_roam_reason_vsie_status(struct wlan_objmgr_psoc * psoc,uint8_t roam_reason_vsie_enable)3691*5113495bSYour Name wlan_mlme_set_roam_reason_vsie_status(struct wlan_objmgr_psoc *psoc,
3692*5113495bSYour Name 				      uint8_t roam_reason_vsie_enable)
3693*5113495bSYour Name {
3694*5113495bSYour Name 	return QDF_STATUS_E_FAILURE;
3695*5113495bSYour Name }
3696*5113495bSYour Name 
3697*5113495bSYour Name static inline
wlan_mlme_get_roaming_triggers(struct wlan_objmgr_psoc * psoc)3698*5113495bSYour Name uint32_t wlan_mlme_get_roaming_triggers(struct wlan_objmgr_psoc *psoc)
3699*5113495bSYour Name {
3700*5113495bSYour Name 	return 0xFFFF;
3701*5113495bSYour Name }
3702*5113495bSYour Name 
3703*5113495bSYour Name static inline
wlan_mlme_set_roaming_triggers(struct wlan_objmgr_psoc * psoc,uint32_t trigger_bitmap)3704*5113495bSYour Name void wlan_mlme_set_roaming_triggers(struct wlan_objmgr_psoc *psoc,
3705*5113495bSYour Name 				    uint32_t trigger_bitmap)
3706*5113495bSYour Name {
3707*5113495bSYour Name }
3708*5113495bSYour Name 
3709*5113495bSYour Name static inline QDF_STATUS
wlan_mlme_get_roaming_offload(struct wlan_objmgr_psoc * psoc,bool * val)3710*5113495bSYour Name wlan_mlme_get_roaming_offload(struct wlan_objmgr_psoc *psoc,
3711*5113495bSYour Name 			      bool *val)
3712*5113495bSYour Name {
3713*5113495bSYour Name 	*val = false;
3714*5113495bSYour Name 
3715*5113495bSYour Name 	return QDF_STATUS_SUCCESS;
3716*5113495bSYour Name }
3717*5113495bSYour Name #endif
3718*5113495bSYour Name 
3719*5113495bSYour Name /**
3720*5113495bSYour Name  * wlan_mlme_set_peer_indicated_ch_width() - Set peer indicated channel width
3721*5113495bSYour Name  * @psoc: pointer to psoc object
3722*5113495bSYour Name  * @data: Pointer to peer operating mode change event status
3723*5113495bSYour Name  *
3724*5113495bSYour Name  * Return: QDF Status
3725*5113495bSYour Name  */
3726*5113495bSYour Name QDF_STATUS
3727*5113495bSYour Name wlan_mlme_set_peer_indicated_ch_width(struct wlan_objmgr_psoc *psoc,
3728*5113495bSYour Name 				      struct peer_oper_mode_event *data);
3729*5113495bSYour Name 
3730*5113495bSYour Name /**
3731*5113495bSYour Name  * wlan_mlme_get_peer_indicated_ch_width() - Get peer indicated channel width
3732*5113495bSYour Name  * @psoc: pointer to psoc object
3733*5113495bSYour Name  * @data: Pointer to peer operating mode change event status
3734*5113495bSYour Name  *
3735*5113495bSYour Name  * Return: QDF Status
3736*5113495bSYour Name  */
3737*5113495bSYour Name QDF_STATUS
3738*5113495bSYour Name wlan_mlme_get_peer_indicated_ch_width(struct wlan_objmgr_psoc *psoc,
3739*5113495bSYour Name 				      struct peer_oper_mode_event *data);
3740*5113495bSYour Name 
3741*5113495bSYour Name /**
3742*5113495bSYour Name  * wlan_mlme_set_ft_over_ds() - Update ft_over_ds
3743*5113495bSYour Name  * @psoc: pointer to psoc object
3744*5113495bSYour Name  * @ft_over_ds_enable: value of ft_over_ds
3745*5113495bSYour Name  *
3746*5113495bSYour Name  * Return: QDF_STATUS
3747*5113495bSYour Name  */
3748*5113495bSYour Name QDF_STATUS wlan_mlme_set_ft_over_ds(struct wlan_objmgr_psoc *psoc,
3749*5113495bSYour Name 				    uint8_t ft_over_ds_enable);
3750*5113495bSYour Name /**
3751*5113495bSYour Name  * wlan_mlme_get_dfs_chan_ageout_time() - Get the DFS Channel ageout time
3752*5113495bSYour Name  * @psoc: pointer to psoc object
3753*5113495bSYour Name  * @dfs_chan_ageout_time: output pointer to hold configured value of DFS
3754*5113495bSYour Name  * Channel ageout time
3755*5113495bSYour Name  *
3756*5113495bSYour Name  * Return: QDF Status
3757*5113495bSYour Name  */
3758*5113495bSYour Name QDF_STATUS
3759*5113495bSYour Name wlan_mlme_get_dfs_chan_ageout_time(struct wlan_objmgr_psoc *psoc,
3760*5113495bSYour Name 				   uint8_t *dfs_chan_ageout_time);
3761*5113495bSYour Name 
3762*5113495bSYour Name #ifdef WLAN_FEATURE_SAE
3763*5113495bSYour Name /**
3764*5113495bSYour Name  * wlan_mlme_get_sae_assoc_retry_count() - Get the sae assoc retry count
3765*5113495bSYour Name  * @psoc: pointer to psoc object
3766*5113495bSYour Name  * @retry_count: assoc retry count
3767*5113495bSYour Name  *
3768*5113495bSYour Name  * Return: QDF Status
3769*5113495bSYour Name  */
3770*5113495bSYour Name QDF_STATUS
3771*5113495bSYour Name wlan_mlme_get_sae_assoc_retry_count(struct wlan_objmgr_psoc *psoc,
3772*5113495bSYour Name 				    uint8_t *retry_count);
3773*5113495bSYour Name /**
3774*5113495bSYour Name  * wlan_mlme_get_sae_auth_retry_count() - Get the sae auth retry count
3775*5113495bSYour Name  * @psoc: pointer to psoc object
3776*5113495bSYour Name  * @retry_count: auth retry count
3777*5113495bSYour Name  *
3778*5113495bSYour Name  * Return: QDF Status
3779*5113495bSYour Name  */
3780*5113495bSYour Name QDF_STATUS
3781*5113495bSYour Name wlan_mlme_get_sae_auth_retry_count(struct wlan_objmgr_psoc *psoc,
3782*5113495bSYour Name 				   uint8_t *retry_count);
3783*5113495bSYour Name 
3784*5113495bSYour Name /**
3785*5113495bSYour Name  * wlan_mlme_get_sae_roam_auth_retry_count() - Get the sae roam auth retry count
3786*5113495bSYour Name  * @psoc: pointer to psoc object
3787*5113495bSYour Name  * @retry_count: auth retry count
3788*5113495bSYour Name  *
3789*5113495bSYour Name  * Return: QDF Status
3790*5113495bSYour Name  */
3791*5113495bSYour Name QDF_STATUS
3792*5113495bSYour Name wlan_mlme_get_sae_roam_auth_retry_count(struct wlan_objmgr_psoc *psoc,
3793*5113495bSYour Name 					uint8_t *retry_count);
3794*5113495bSYour Name 
3795*5113495bSYour Name #else
3796*5113495bSYour Name static inline QDF_STATUS
wlan_mlme_get_sae_assoc_retry_count(struct wlan_objmgr_psoc * psoc,uint8_t * retry_count)3797*5113495bSYour Name wlan_mlme_get_sae_assoc_retry_count(struct wlan_objmgr_psoc *psoc,
3798*5113495bSYour Name 				    uint8_t *retry_count)
3799*5113495bSYour Name {
3800*5113495bSYour Name 	*retry_count = 0;
3801*5113495bSYour Name 	return QDF_STATUS_SUCCESS;
3802*5113495bSYour Name }
3803*5113495bSYour Name 
3804*5113495bSYour Name static inline QDF_STATUS
wlan_mlme_get_sae_auth_retry_count(struct wlan_objmgr_psoc * psoc,uint8_t * retry_count)3805*5113495bSYour Name wlan_mlme_get_sae_auth_retry_count(struct wlan_objmgr_psoc *psoc,
3806*5113495bSYour Name 				    uint8_t *retry_count)
3807*5113495bSYour Name {
3808*5113495bSYour Name 	*retry_count = 0;
3809*5113495bSYour Name 	return QDF_STATUS_SUCCESS;
3810*5113495bSYour Name }
3811*5113495bSYour Name 
3812*5113495bSYour Name static inline QDF_STATUS
wlan_mlme_get_sae_roam_auth_retry_count(struct wlan_objmgr_psoc * psoc,uint8_t * retry_count)3813*5113495bSYour Name wlan_mlme_get_sae_roam_auth_retry_count(struct wlan_objmgr_psoc *psoc,
3814*5113495bSYour Name 					uint8_t *retry_count)
3815*5113495bSYour Name {
3816*5113495bSYour Name 	*retry_count = 0;
3817*5113495bSYour Name 	return QDF_STATUS_SUCCESS;
3818*5113495bSYour Name }
3819*5113495bSYour Name #endif
3820*5113495bSYour Name 
3821*5113495bSYour Name #ifdef WLAN_FEATURE_ROAM_OFFLOAD
3822*5113495bSYour Name /**
3823*5113495bSYour Name  * wlan_mlme_get_dual_sta_roaming_enabled  - API to get if the dual sta
3824*5113495bSYour Name  * roaming support is enabled.
3825*5113495bSYour Name  * @psoc: Pointer to global psoc object
3826*5113495bSYour Name  *
3827*5113495bSYour Name  * Return: True if dual sta roaming feature is enabled else return false
3828*5113495bSYour Name  */
3829*5113495bSYour Name bool
3830*5113495bSYour Name wlan_mlme_get_dual_sta_roaming_enabled(struct wlan_objmgr_psoc *psoc);
3831*5113495bSYour Name #else
3832*5113495bSYour Name static inline bool
wlan_mlme_get_dual_sta_roaming_enabled(struct wlan_objmgr_psoc * psoc)3833*5113495bSYour Name wlan_mlme_get_dual_sta_roaming_enabled(struct wlan_objmgr_psoc *psoc)
3834*5113495bSYour Name {
3835*5113495bSYour Name 	return false;
3836*5113495bSYour Name }
3837*5113495bSYour Name #endif
3838*5113495bSYour Name 
3839*5113495bSYour Name /**
3840*5113495bSYour Name  * mlme_store_fw_scan_channels - Update the valid channel list to mlme.
3841*5113495bSYour Name  * @psoc: Pointer to global psoc object
3842*5113495bSYour Name  * @chan_list: Source channel list pointer
3843*5113495bSYour Name  *
3844*5113495bSYour Name  * Currently the channel list is saved to wma_handle to be updated in the
3845*5113495bSYour Name  * PCL command. This cannot be accessed at target_if while sending vdev
3846*5113495bSYour Name  * set pcl command. So save the channel list to mlme.
3847*5113495bSYour Name  *
3848*5113495bSYour Name  * Return: QDF_STATUS
3849*5113495bSYour Name  */
3850*5113495bSYour Name QDF_STATUS
3851*5113495bSYour Name mlme_store_fw_scan_channels(struct wlan_objmgr_psoc *psoc,
3852*5113495bSYour Name 			    tSirUpdateChanList *chan_list);
3853*5113495bSYour Name 
3854*5113495bSYour Name /**
3855*5113495bSYour Name  * mlme_get_fw_scan_channels  - Copy the saved valid channel
3856*5113495bSYour Name  * list to the provided buffer
3857*5113495bSYour Name  * @psoc: Pointer to global psoc object
3858*5113495bSYour Name  * @freq_list: Pointer to the frequency list buffer to be filled
3859*5113495bSYour Name  * @saved_num_chan: Number of channels filled
3860*5113495bSYour Name  *
3861*5113495bSYour Name  * Return: QDF_STATUS
3862*5113495bSYour Name  */
3863*5113495bSYour Name QDF_STATUS mlme_get_fw_scan_channels(struct wlan_objmgr_psoc *psoc,
3864*5113495bSYour Name 				     uint32_t *freq_list,
3865*5113495bSYour Name 				     uint8_t *saved_num_chan);
3866*5113495bSYour Name /**
3867*5113495bSYour Name  * wlan_mlme_get_roam_scan_offload_enabled() - Roam scan offload enable or not
3868*5113495bSYour Name  * @psoc: pointer to psoc object
3869*5113495bSYour Name  * @val:  Pointer to the value which will be filled for the caller
3870*5113495bSYour Name  *
3871*5113495bSYour Name  * Return: QDF Status
3872*5113495bSYour Name  */
3873*5113495bSYour Name QDF_STATUS
3874*5113495bSYour Name wlan_mlme_get_roam_scan_offload_enabled(struct wlan_objmgr_psoc *psoc,
3875*5113495bSYour Name 					bool *val);
3876*5113495bSYour Name 
3877*5113495bSYour Name /**
3878*5113495bSYour Name  * wlan_mlme_get_roam_bmiss_final_bcnt() - Get roam bmiss final count
3879*5113495bSYour Name  * @psoc: pointer to psoc object
3880*5113495bSYour Name  * @val:  Pointer to the value which will be filled for the caller
3881*5113495bSYour Name  *
3882*5113495bSYour Name  * Return: QDF Status
3883*5113495bSYour Name  */
3884*5113495bSYour Name QDF_STATUS
3885*5113495bSYour Name wlan_mlme_get_roam_bmiss_final_bcnt(struct wlan_objmgr_psoc *psoc,
3886*5113495bSYour Name 				    uint8_t *val);
3887*5113495bSYour Name 
3888*5113495bSYour Name /**
3889*5113495bSYour Name  * wlan_mlme_get_roam_bmiss_first_bcnt() - Get roam bmiss first count
3890*5113495bSYour Name  * @psoc: pointer to psoc object
3891*5113495bSYour Name  * @val:  Pointer to the value which will be filled for the caller
3892*5113495bSYour Name  *
3893*5113495bSYour Name  * Return: QDF Status
3894*5113495bSYour Name  */
3895*5113495bSYour Name QDF_STATUS
3896*5113495bSYour Name wlan_mlme_get_roam_bmiss_first_bcnt(struct wlan_objmgr_psoc *psoc,
3897*5113495bSYour Name 				    uint8_t *val);
3898*5113495bSYour Name 
3899*5113495bSYour Name /**
3900*5113495bSYour Name  * wlan_mlme_get_bmiss_timeout_on_wakeup() - Get bmiss timeout
3901*5113495bSYour Name  * @psoc: pointer to psoc object
3902*5113495bSYour Name  * @val:  Pointer to the value which will be filled for the caller
3903*5113495bSYour Name  *
3904*5113495bSYour Name  * Return: QDF Status
3905*5113495bSYour Name  */
3906*5113495bSYour Name QDF_STATUS
3907*5113495bSYour Name wlan_mlme_get_bmiss_timeout_on_wakeup(struct wlan_objmgr_psoc *psoc,
3908*5113495bSYour Name 				      uint8_t *val);
3909*5113495bSYour Name 
3910*5113495bSYour Name /**
3911*5113495bSYour Name  * wlan_mlme_get_bmiss_timeout_on_sleep() - Get roam conbmiss timeout
3912*5113495bSYour Name  * @psoc: pointer to psoc object
3913*5113495bSYour Name  * @val:  Pointer to the value which will be filled for the caller
3914*5113495bSYour Name  *
3915*5113495bSYour Name  * Return: QDF Status
3916*5113495bSYour Name  */
3917*5113495bSYour Name QDF_STATUS
3918*5113495bSYour Name wlan_mlme_get_bmiss_timeout_on_sleep(struct wlan_objmgr_psoc *psoc,
3919*5113495bSYour Name 				     uint8_t *val);
3920*5113495bSYour Name 
3921*5113495bSYour Name /**
3922*5113495bSYour Name  * wlan_mlme_adaptive_11r_enabled() - check if adaptive 11r feature is enaled
3923*5113495bSYour Name  * or not
3924*5113495bSYour Name  * @psoc: pointer to psoc object
3925*5113495bSYour Name  *
3926*5113495bSYour Name  * Return: bool
3927*5113495bSYour Name  */
3928*5113495bSYour Name #ifdef WLAN_ADAPTIVE_11R
3929*5113495bSYour Name bool wlan_mlme_adaptive_11r_enabled(struct wlan_objmgr_psoc *psoc);
3930*5113495bSYour Name #else
wlan_mlme_adaptive_11r_enabled(struct wlan_objmgr_psoc * psoc)3931*5113495bSYour Name static inline bool wlan_mlme_adaptive_11r_enabled(struct wlan_objmgr_psoc *psoc)
3932*5113495bSYour Name {
3933*5113495bSYour Name 	return false;
3934*5113495bSYour Name }
3935*5113495bSYour Name #endif
3936*5113495bSYour Name 
3937*5113495bSYour Name /**
3938*5113495bSYour Name  * wlan_mlme_get_mawc_enabled() - Get mawc enabled status
3939*5113495bSYour Name  * @psoc: pointer to psoc object
3940*5113495bSYour Name  * @val:  Pointer to the value which will be filled for the caller
3941*5113495bSYour Name  *
3942*5113495bSYour Name  * Return: QDF Status
3943*5113495bSYour Name  */
3944*5113495bSYour Name QDF_STATUS
3945*5113495bSYour Name wlan_mlme_get_mawc_enabled(struct wlan_objmgr_psoc *psoc, bool *val);
3946*5113495bSYour Name 
3947*5113495bSYour Name /**
3948*5113495bSYour Name  * wlan_mlme_get_mawc_roam_enabled() - Get mawc roam enabled status
3949*5113495bSYour Name  * @psoc: pointer to psoc object
3950*5113495bSYour Name  * @val:  Pointer to the value which will be filled for the caller
3951*5113495bSYour Name  *
3952*5113495bSYour Name  * Return: QDF Status
3953*5113495bSYour Name  */
3954*5113495bSYour Name QDF_STATUS
3955*5113495bSYour Name wlan_mlme_get_mawc_roam_enabled(struct wlan_objmgr_psoc *psoc, bool *val);
3956*5113495bSYour Name 
3957*5113495bSYour Name /**
3958*5113495bSYour Name  * wlan_mlme_get_mawc_roam_traffic_threshold() - Get mawc traffic threshold
3959*5113495bSYour Name  * @psoc: pointer to psoc object
3960*5113495bSYour Name  * @val:  Pointer to the value which will be filled for the caller
3961*5113495bSYour Name  *
3962*5113495bSYour Name  * Return: QDF Status
3963*5113495bSYour Name  */
3964*5113495bSYour Name QDF_STATUS
3965*5113495bSYour Name wlan_mlme_get_mawc_roam_traffic_threshold(struct wlan_objmgr_psoc *psoc,
3966*5113495bSYour Name 					  uint32_t *val);
3967*5113495bSYour Name 
3968*5113495bSYour Name /**
3969*5113495bSYour Name  * wlan_mlme_get_mawc_roam_ap_rssi_threshold() - Get AP RSSI threshold for
3970*5113495bSYour Name  * MAWC roaming
3971*5113495bSYour Name  * @psoc: pointer to psoc object
3972*5113495bSYour Name  * @val:  Pointer to the value which will be filled for the caller
3973*5113495bSYour Name  *
3974*5113495bSYour Name  * Return: QDF Status
3975*5113495bSYour Name  */
3976*5113495bSYour Name QDF_STATUS
3977*5113495bSYour Name wlan_mlme_get_mawc_roam_ap_rssi_threshold(struct wlan_objmgr_psoc *psoc,
3978*5113495bSYour Name 					  uint32_t *val);
3979*5113495bSYour Name 
3980*5113495bSYour Name /**
3981*5113495bSYour Name  * wlan_mlme_get_mawc_roam_rssi_high_adjust() - Get high adjustment value
3982*5113495bSYour Name  * for suppressing scan
3983*5113495bSYour Name  * @psoc: pointer to psoc object
3984*5113495bSYour Name  * @val:  Pointer to the value which will be filled for the caller
3985*5113495bSYour Name  *
3986*5113495bSYour Name  * Return: QDF Status
3987*5113495bSYour Name  */
3988*5113495bSYour Name QDF_STATUS
3989*5113495bSYour Name wlan_mlme_get_mawc_roam_rssi_high_adjust(struct wlan_objmgr_psoc *psoc,
3990*5113495bSYour Name 					 uint8_t *val);
3991*5113495bSYour Name 
3992*5113495bSYour Name /**
3993*5113495bSYour Name  * wlan_mlme_get_mawc_roam_rssi_low_adjust() - Get low adjustment value
3994*5113495bSYour Name  * for suppressing scan
3995*5113495bSYour Name  * @psoc: pointer to psoc object
3996*5113495bSYour Name  * @val:  Pointer to the value which will be filled for the caller
3997*5113495bSYour Name  *
3998*5113495bSYour Name  * Return: QDF Status
3999*5113495bSYour Name  */
4000*5113495bSYour Name QDF_STATUS
4001*5113495bSYour Name wlan_mlme_get_mawc_roam_rssi_low_adjust(struct wlan_objmgr_psoc *psoc,
4002*5113495bSYour Name 					uint8_t *val);
4003*5113495bSYour Name 
4004*5113495bSYour Name /**
4005*5113495bSYour Name  * wlan_mlme_get_bss_load_enabled() - Get bss load based roam trigger
4006*5113495bSYour Name  * enabled status
4007*5113495bSYour Name  * @psoc: pointer to psoc object
4008*5113495bSYour Name  * @val:  Pointer to the value which will be filled for the caller
4009*5113495bSYour Name  *
4010*5113495bSYour Name  * Return: QDF Status
4011*5113495bSYour Name  */
4012*5113495bSYour Name QDF_STATUS
4013*5113495bSYour Name wlan_mlme_get_bss_load_enabled(struct wlan_objmgr_psoc *psoc, bool *val);
4014*5113495bSYour Name 
4015*5113495bSYour Name /**
4016*5113495bSYour Name  * wlan_mlme_get_bss_load_threshold() - Get bss load threshold
4017*5113495bSYour Name  * @psoc: pointer to psoc object
4018*5113495bSYour Name  * @val:  Pointer to the value which will be filled for the caller
4019*5113495bSYour Name  *
4020*5113495bSYour Name  * Return: QDF Status
4021*5113495bSYour Name  */
4022*5113495bSYour Name QDF_STATUS
4023*5113495bSYour Name wlan_mlme_get_bss_load_threshold(struct wlan_objmgr_psoc *psoc, uint32_t *val);
4024*5113495bSYour Name 
4025*5113495bSYour Name /**
4026*5113495bSYour Name  * wlan_mlme_get_bss_load_sample_time() - Get bss load sample time
4027*5113495bSYour Name  * @psoc: pointer to psoc object
4028*5113495bSYour Name  * @val:  Pointer to the value which will be filled for the caller
4029*5113495bSYour Name  *
4030*5113495bSYour Name  * Return: QDF Status
4031*5113495bSYour Name  */
4032*5113495bSYour Name QDF_STATUS
4033*5113495bSYour Name wlan_mlme_get_bss_load_sample_time(struct wlan_objmgr_psoc *psoc,
4034*5113495bSYour Name 				   uint32_t *val);
4035*5113495bSYour Name 
4036*5113495bSYour Name /**
4037*5113495bSYour Name  * wlan_mlme_get_bss_load_rssi_threshold_6ghz() - Get bss load RSSI
4038*5113495bSYour Name  * threshold on 6G
4039*5113495bSYour Name  * @psoc: pointer to psoc object
4040*5113495bSYour Name  * @val:  Pointer to the value which will be filled for the caller
4041*5113495bSYour Name  *
4042*5113495bSYour Name  * Return: QDF Status
4043*5113495bSYour Name  */
4044*5113495bSYour Name QDF_STATUS
4045*5113495bSYour Name wlan_mlme_get_bss_load_rssi_threshold_6ghz(struct wlan_objmgr_psoc *psoc,
4046*5113495bSYour Name 					   int32_t *val);
4047*5113495bSYour Name 
4048*5113495bSYour Name /**
4049*5113495bSYour Name  * wlan_mlme_get_bss_load_rssi_threshold_5ghz() - Get bss load RSSI
4050*5113495bSYour Name  * threshold on 5G
4051*5113495bSYour Name  * @psoc: pointer to psoc object
4052*5113495bSYour Name  * @val:  Pointer to the value which will be filled for the caller
4053*5113495bSYour Name  *
4054*5113495bSYour Name  * Return: QDF Status
4055*5113495bSYour Name  */
4056*5113495bSYour Name QDF_STATUS
4057*5113495bSYour Name wlan_mlme_get_bss_load_rssi_threshold_5ghz(struct wlan_objmgr_psoc *psoc,
4058*5113495bSYour Name 					   int32_t *val);
4059*5113495bSYour Name 
4060*5113495bSYour Name /**
4061*5113495bSYour Name  * wlan_mlme_get_bss_load_rssi_threshold_24ghz() - Get bss load RSSI
4062*5113495bSYour Name  * threshold on 2.4G
4063*5113495bSYour Name  * @psoc: pointer to psoc object
4064*5113495bSYour Name  * @val:  Pointer to the value which will be filled for the caller
4065*5113495bSYour Name  *
4066*5113495bSYour Name  * Return: QDF Status
4067*5113495bSYour Name  */
4068*5113495bSYour Name QDF_STATUS
4069*5113495bSYour Name wlan_mlme_get_bss_load_rssi_threshold_24ghz(struct wlan_objmgr_psoc *psoc,
4070*5113495bSYour Name 					    int32_t *val);
4071*5113495bSYour Name /**
4072*5113495bSYour Name  * wlan_mlme_check_chan_param_has_dfs() - Get dfs flag based on
4073*5113495bSYour Name  * channel & channel parameters
4074*5113495bSYour Name  * @pdev: pdev object
4075*5113495bSYour Name  * @ch_params: channel parameters
4076*5113495bSYour Name  * @chan_freq: channel frequency in MHz
4077*5113495bSYour Name  *
4078*5113495bSYour Name  * Return: True for dfs
4079*5113495bSYour Name  */
4080*5113495bSYour Name bool
4081*5113495bSYour Name wlan_mlme_check_chan_param_has_dfs(struct wlan_objmgr_pdev *pdev,
4082*5113495bSYour Name 				   struct ch_params *ch_params,
4083*5113495bSYour Name 				   uint32_t chan_freq);
4084*5113495bSYour Name 
4085*5113495bSYour Name /**
4086*5113495bSYour Name  * wlan_mlme_set_usr_disabled_roaming() - Set user config for roaming disable
4087*5113495bSYour Name  * @psoc: pointer to psoc object
4088*5113495bSYour Name  * @val: user config for roaming disable
4089*5113495bSYour Name  *
4090*5113495bSYour Name  * Return: QDF_STATUS
4091*5113495bSYour Name  */
4092*5113495bSYour Name QDF_STATUS
4093*5113495bSYour Name wlan_mlme_set_usr_disabled_roaming(struct wlan_objmgr_psoc *psoc, bool val);
4094*5113495bSYour Name 
4095*5113495bSYour Name /**
4096*5113495bSYour Name  * wlan_mlme_get_usr_disabled_roaming() - Get user config for roaming disable
4097*5113495bSYour Name  * @psoc: pointer to psoc object
4098*5113495bSYour Name  * @val: user config for roaming disable
4099*5113495bSYour Name  *
4100*5113495bSYour Name  * Return: QDF_STATUS
4101*5113495bSYour Name  */
4102*5113495bSYour Name QDF_STATUS
4103*5113495bSYour Name wlan_mlme_get_usr_disabled_roaming(struct wlan_objmgr_psoc *psoc, bool *val);
4104*5113495bSYour Name 
4105*5113495bSYour Name /**
4106*5113495bSYour Name  * mlme_get_opr_rate() - get operational rate
4107*5113495bSYour Name  * @vdev: vdev pointer
4108*5113495bSYour Name  * @dst: buffer to get rates set
4109*5113495bSYour Name  * @len: length of the buffer
4110*5113495bSYour Name  *
4111*5113495bSYour Name  * Return: length of the rates set
4112*5113495bSYour Name  */
4113*5113495bSYour Name qdf_size_t mlme_get_opr_rate(struct wlan_objmgr_vdev *vdev, uint8_t *dst,
4114*5113495bSYour Name 			     qdf_size_t len);
4115*5113495bSYour Name 
4116*5113495bSYour Name /**
4117*5113495bSYour Name  * mlme_set_opr_rate() - set operational rate
4118*5113495bSYour Name  * @vdev: vdev pointer
4119*5113495bSYour Name  * @src: pointer to set operational rate
4120*5113495bSYour Name  * @len: length of operational rate
4121*5113495bSYour Name  *
4122*5113495bSYour Name  * Return: QDF_SUCCESS if success
4123*5113495bSYour Name  */
4124*5113495bSYour Name QDF_STATUS mlme_set_opr_rate(struct wlan_objmgr_vdev *vdev, uint8_t *src,
4125*5113495bSYour Name 			     qdf_size_t len);
4126*5113495bSYour Name 
4127*5113495bSYour Name /**
4128*5113495bSYour Name  * mlme_get_ext_opr_rate() - get extended operational rate
4129*5113495bSYour Name  * @vdev: vdev pointer
4130*5113495bSYour Name  * @dst: buffer to get rates set
4131*5113495bSYour Name  * @len: length of the buffer
4132*5113495bSYour Name  *
4133*5113495bSYour Name  * Return: length of the rates set
4134*5113495bSYour Name  */
4135*5113495bSYour Name qdf_size_t mlme_get_ext_opr_rate(struct wlan_objmgr_vdev *vdev, uint8_t *dst,
4136*5113495bSYour Name 				 qdf_size_t len);
4137*5113495bSYour Name 
4138*5113495bSYour Name /**
4139*5113495bSYour Name  * mlme_set_ext_opr_rate() - set extended operational rate
4140*5113495bSYour Name  * @vdev: vdev pointer
4141*5113495bSYour Name  * @src: pointer to set extended operational rate
4142*5113495bSYour Name  * @len: length of extended operational rate
4143*5113495bSYour Name  *
4144*5113495bSYour Name  * Return: QDF_SUCCESS if success
4145*5113495bSYour Name  */
4146*5113495bSYour Name QDF_STATUS mlme_set_ext_opr_rate(struct wlan_objmgr_vdev *vdev, uint8_t *src,
4147*5113495bSYour Name 				 qdf_size_t len);
4148*5113495bSYour Name 
4149*5113495bSYour Name /**
4150*5113495bSYour Name  * mlme_clear_ext_opr_rate() - clear extended operational rate
4151*5113495bSYour Name  * @vdev: vdev pointer
4152*5113495bSYour Name  *
4153*5113495bSYour Name  * Return: QDF_SUCCESS if success
4154*5113495bSYour Name  */
4155*5113495bSYour Name QDF_STATUS mlme_clear_ext_opr_rate(struct wlan_objmgr_vdev *vdev);
4156*5113495bSYour Name 
4157*5113495bSYour Name /**
4158*5113495bSYour Name  * mlme_get_mcs_rate() - get MCS based rate
4159*5113495bSYour Name  * @vdev: vdev pointer
4160*5113495bSYour Name  * @dst: buffer to get rates set
4161*5113495bSYour Name  * @len: length of the buffer
4162*5113495bSYour Name  *
4163*5113495bSYour Name  * Return: length of the rates set
4164*5113495bSYour Name  */
4165*5113495bSYour Name qdf_size_t mlme_get_mcs_rate(struct wlan_objmgr_vdev *vdev, uint8_t *dst,
4166*5113495bSYour Name 			     qdf_size_t len);
4167*5113495bSYour Name 
4168*5113495bSYour Name /**
4169*5113495bSYour Name  * mlme_set_mcs_rate() - set MCS based rate
4170*5113495bSYour Name  * @vdev: vdev pointer
4171*5113495bSYour Name  * @src: pointer to set MCS based rate
4172*5113495bSYour Name  * @len: length of MCS based rate
4173*5113495bSYour Name  *
4174*5113495bSYour Name  * Return: QDF_SUCCESS if success
4175*5113495bSYour Name  */
4176*5113495bSYour Name QDF_STATUS mlme_set_mcs_rate(struct wlan_objmgr_vdev *vdev, uint8_t *src,
4177*5113495bSYour Name 			     qdf_size_t len);
4178*5113495bSYour Name 
4179*5113495bSYour Name /**
4180*5113495bSYour Name  * mlme_clear_mcs_rate() - clear MCS based rate
4181*5113495bSYour Name  * @vdev: vdev pointer
4182*5113495bSYour Name  *
4183*5113495bSYour Name  * Return: QDF_SUCCESS if success
4184*5113495bSYour Name  */
4185*5113495bSYour Name QDF_STATUS mlme_clear_mcs_rate(struct wlan_objmgr_vdev *vdev);
4186*5113495bSYour Name 
4187*5113495bSYour Name /**
4188*5113495bSYour Name  * wlan_mlme_is_sta_mon_conc_supported() - Check if STA + Monitor mode
4189*5113495bSYour Name  * concurrency is supported
4190*5113495bSYour Name  * @psoc: pointer to psoc object
4191*5113495bSYour Name  *
4192*5113495bSYour Name  * Return: True if supported
4193*5113495bSYour Name  */
4194*5113495bSYour Name bool wlan_mlme_is_sta_mon_conc_supported(struct wlan_objmgr_psoc *psoc);
4195*5113495bSYour Name 
4196*5113495bSYour Name /**
4197*5113495bSYour Name  * wlan_mlme_get_phy_max_freq_range() - Get phy supported max channel
4198*5113495bSYour Name  * frequency range
4199*5113495bSYour Name  * @psoc: psoc for country information
4200*5113495bSYour Name  * @low_2ghz_chan: 2.4 GHz low channel frequency
4201*5113495bSYour Name  * @high_2ghz_chan: 2.4 GHz high channel frequency
4202*5113495bSYour Name  * @low_5ghz_chan: 5 GHz low channel frequency
4203*5113495bSYour Name  * @high_5ghz_chan: 5 GHz high channel frequency
4204*5113495bSYour Name  *
4205*5113495bSYour Name  * Return: QDF status
4206*5113495bSYour Name  */
4207*5113495bSYour Name QDF_STATUS wlan_mlme_get_phy_max_freq_range(struct wlan_objmgr_psoc *psoc,
4208*5113495bSYour Name 					    uint32_t *low_2ghz_chan,
4209*5113495bSYour Name 					    uint32_t *high_2ghz_chan,
4210*5113495bSYour Name 					    uint32_t *low_5ghz_chan,
4211*5113495bSYour Name 					    uint32_t *high_5ghz_chan);
4212*5113495bSYour Name 
4213*5113495bSYour Name /**
4214*5113495bSYour Name  * wlan_mlme_is_multipass_sap() -Get multipass sap support
4215*5113495bSYour Name  * @psoc: psoc pointer
4216*5113495bSYour Name  *
4217*5113495bSYour Name  * Return: True, if FW support multipass support.
4218*5113495bSYour Name  */
4219*5113495bSYour Name bool wlan_mlme_is_multipass_sap(struct wlan_objmgr_psoc *psoc);
4220*5113495bSYour Name 
4221*5113495bSYour Name #ifdef FEATURE_WDS
4222*5113495bSYour Name /**
4223*5113495bSYour Name  * wlan_mlme_get_wds_mode() - Check wds mode supported
4224*5113495bSYour Name  * @psoc: pointer to psoc object
4225*5113495bSYour Name  *
4226*5113495bSYour Name  * Return: supported wds mode
4227*5113495bSYour Name  */
4228*5113495bSYour Name enum wlan_wds_mode
4229*5113495bSYour Name wlan_mlme_get_wds_mode(struct wlan_objmgr_psoc *psoc);
4230*5113495bSYour Name 
4231*5113495bSYour Name /**
4232*5113495bSYour Name  * wlan_mlme_set_wds_mode() - Set wds mode
4233*5113495bSYour Name  * @psoc: pointer to psoc object
4234*5113495bSYour Name  * @mode: wds mode to set
4235*5113495bSYour Name  *
4236*5113495bSYour Name  * Return: void
4237*5113495bSYour Name  */
4238*5113495bSYour Name void wlan_mlme_set_wds_mode(struct wlan_objmgr_psoc *psoc,
4239*5113495bSYour Name 			    enum wlan_wds_mode mode);
4240*5113495bSYour Name #else
4241*5113495bSYour Name static inline enum wlan_wds_mode
wlan_mlme_get_wds_mode(struct wlan_objmgr_psoc * psoc)4242*5113495bSYour Name wlan_mlme_get_wds_mode(struct wlan_objmgr_psoc *psoc)
4243*5113495bSYour Name {
4244*5113495bSYour Name 	return WLAN_WDS_MODE_DISABLED;
4245*5113495bSYour Name }
4246*5113495bSYour Name 
wlan_mlme_set_wds_mode(struct wlan_objmgr_psoc * psoc,enum wlan_wds_mode mode)4247*5113495bSYour Name static inline void wlan_mlme_set_wds_mode(struct wlan_objmgr_psoc *psoc,
4248*5113495bSYour Name 					  enum wlan_wds_mode mode)
4249*5113495bSYour Name {
4250*5113495bSYour Name }
4251*5113495bSYour Name #endif
4252*5113495bSYour Name 
4253*5113495bSYour Name #ifdef WLAN_SUPPORT_TWT
4254*5113495bSYour Name /**
4255*5113495bSYour Name  * mlme_is_twt_enabled() - Get if TWT is enabled via ini.
4256*5113495bSYour Name  * @psoc: pointer to psoc object
4257*5113495bSYour Name  *
4258*5113495bSYour Name  * Return: True if TWT is enabled else false.
4259*5113495bSYour Name  */
4260*5113495bSYour Name bool
4261*5113495bSYour Name mlme_is_twt_enabled(struct wlan_objmgr_psoc *psoc);
4262*5113495bSYour Name #else
4263*5113495bSYour Name static inline bool
mlme_is_twt_enabled(struct wlan_objmgr_psoc * psoc)4264*5113495bSYour Name mlme_is_twt_enabled(struct wlan_objmgr_psoc *psoc)
4265*5113495bSYour Name {
4266*5113495bSYour Name 	return false;
4267*5113495bSYour Name }
4268*5113495bSYour Name #endif /* WLAN_SUPPORT_TWT */
4269*5113495bSYour Name 
4270*5113495bSYour Name /**
4271*5113495bSYour Name  * wlan_mlme_skip_tpe() - Get preference to not consider TPE in 2G/5G case
4272*5113495bSYour Name  *
4273*5113495bSYour Name  * @psoc: pointer to psoc object
4274*5113495bSYour Name  *
4275*5113495bSYour Name  * Return: True if host should not consider TPE IE in TX power calculation when
4276*5113495bSYour Name  * operating in 2G/5G bands, false if host should always consider TPE IE values
4277*5113495bSYour Name  */
4278*5113495bSYour Name bool wlan_mlme_skip_tpe(struct wlan_objmgr_psoc *psoc);
4279*5113495bSYour Name 
4280*5113495bSYour Name /**
4281*5113495bSYour Name  * wlan_mlme_is_data_stall_recovery_fw_supported() - Check if data stall
4282*5113495bSYour Name  * recovery is supported by fw
4283*5113495bSYour Name  * @psoc: pointer to psoc object
4284*5113495bSYour Name  *
4285*5113495bSYour Name  * Return: True if supported
4286*5113495bSYour Name  */
4287*5113495bSYour Name bool
4288*5113495bSYour Name wlan_mlme_is_data_stall_recovery_fw_supported(struct wlan_objmgr_psoc *psoc);
4289*5113495bSYour Name 
4290*5113495bSYour Name /**
4291*5113495bSYour Name  * mlme_cfg_get_orig_eht_caps() - Get the original EHT capability info
4292*5113495bSYour Name  * @psoc: pointer to psoc object
4293*5113495bSYour Name  * @eht_cap: Caps that needs to be filled.
4294*5113495bSYour Name  *
4295*5113495bSYour Name  * Return: QDF Status
4296*5113495bSYour Name  */
4297*5113495bSYour Name QDF_STATUS mlme_cfg_get_orig_eht_caps(struct wlan_objmgr_psoc *psoc,
4298*5113495bSYour Name 				      tDot11fIEeht_cap *eht_cap);
4299*5113495bSYour Name 
4300*5113495bSYour Name /**
4301*5113495bSYour Name  * mlme_cfg_get_eht_caps() - Get the EHT capability info
4302*5113495bSYour Name  * @psoc: pointer to psoc object
4303*5113495bSYour Name  * @eht_cap: Caps that needs to be filled.
4304*5113495bSYour Name  *
4305*5113495bSYour Name  * Return: QDF Status
4306*5113495bSYour Name  */
4307*5113495bSYour Name QDF_STATUS mlme_cfg_get_eht_caps(struct wlan_objmgr_psoc *psoc,
4308*5113495bSYour Name 				 tDot11fIEeht_cap *eht_cap);
4309*5113495bSYour Name 
4310*5113495bSYour Name /**
4311*5113495bSYour Name  * wlan_mlme_set_bt_profile_con() - Set bluetooth connection profile
4312*5113495bSYour Name  * @psoc: pointer to psoc object
4313*5113495bSYour Name  * @bt_profile_con: Bluetooth connection profile bit
4314*5113495bSYour Name  *
4315*5113495bSYour Name  * Return: None
4316*5113495bSYour Name  */
4317*5113495bSYour Name void
4318*5113495bSYour Name wlan_mlme_set_bt_profile_con(struct wlan_objmgr_psoc *psoc,
4319*5113495bSYour Name 			     bool bt_profile_con);
4320*5113495bSYour Name 
4321*5113495bSYour Name /**
4322*5113495bSYour Name  * wlan_mlme_get_bt_profile_con() - Get Bluetooth connection profile
4323*5113495bSYour Name  * @psoc: pointer to psoc object
4324*5113495bSYour Name  *
4325*5113495bSYour Name  * Return: Bluetooth connection profile
4326*5113495bSYour Name  */
4327*5113495bSYour Name bool
4328*5113495bSYour Name wlan_mlme_get_bt_profile_con(struct wlan_objmgr_psoc *psoc);
4329*5113495bSYour Name 
4330*5113495bSYour Name #ifdef WLAN_FEATURE_11BE_MLO
4331*5113495bSYour Name /**
4332*5113495bSYour Name  * wlan_mlme_get_sta_mlo_conn_max_num() - get max number of links that sta mlo
4333*5113495bSYour Name  *                                        connection can support
4334*5113495bSYour Name  * @psoc: pointer to psoc object
4335*5113495bSYour Name  *
4336*5113495bSYour Name  * Return: max number of links that sta mlo connection can support
4337*5113495bSYour Name  */
4338*5113495bSYour Name uint8_t wlan_mlme_get_sta_mlo_conn_max_num(struct wlan_objmgr_psoc *psoc);
4339*5113495bSYour Name 
4340*5113495bSYour Name /**
4341*5113495bSYour Name  * wlan_mlme_is_5gl_5gh_mlsr_supported() - check 5GH_5GL MLSR supported
4342*5113495bSYour Name  * @psoc: pointer to psoc object
4343*5113495bSYour Name  *
4344*5113495bSYour Name  * Return: true if 5GH_5GL MLSR supported otherwise false
4345*5113495bSYour Name  */
4346*5113495bSYour Name bool wlan_mlme_is_5gl_5gh_mlsr_supported(struct wlan_objmgr_psoc *psoc);
4347*5113495bSYour Name 
4348*5113495bSYour Name /**
4349*5113495bSYour Name  * wlan_mlme_set_sta_mlo_conn_max_num() - set max number of links that sta mlo
4350*5113495bSYour Name  *                                        connection can support
4351*5113495bSYour Name  * @psoc: pointer to psoc object
4352*5113495bSYour Name  * @value: value to set
4353*5113495bSYour Name  *
4354*5113495bSYour Name  * Return: QDF Status
4355*5113495bSYour Name  */
4356*5113495bSYour Name QDF_STATUS wlan_mlme_set_sta_mlo_conn_max_num(struct wlan_objmgr_psoc *psoc,
4357*5113495bSYour Name 					      uint8_t value);
4358*5113495bSYour Name 
4359*5113495bSYour Name /**
4360*5113495bSYour Name  * wlan_mlme_set_user_set_link_num() - set number of links that config by user
4361*5113495bSYour Name  * @psoc: pointer to psoc object
4362*5113495bSYour Name  * @value: value to set
4363*5113495bSYour Name  *
4364*5113495bSYour Name  * Return: QDF Status
4365*5113495bSYour Name  */
4366*5113495bSYour Name QDF_STATUS wlan_mlme_set_user_set_link_num(struct wlan_objmgr_psoc *psoc,
4367*5113495bSYour Name 					   uint8_t value);
4368*5113495bSYour Name 
4369*5113495bSYour Name /**
4370*5113495bSYour Name  * wlan_mlme_set_ml_link_control_mode() - set ml_link_control_mode
4371*5113495bSYour Name  * @psoc: pointer to psoc object
4372*5113495bSYour Name  * @vdev_id: vdev id
4373*5113495bSYour Name  * @value: value to set
4374*5113495bSYour Name  *
4375*5113495bSYour Name  * API get call when host receives vendor command
4376*5113495bSYour Name  * QCA_NL80211_VENDOR_SUBCMD_MLO_LINK_STATE to configure link control mode.
4377*5113495bSYour Name  *
4378*5113495bSYour Name  * Return: none
4379*5113495bSYour Name  */
4380*5113495bSYour Name void wlan_mlme_set_ml_link_control_mode(struct wlan_objmgr_psoc *psoc,
4381*5113495bSYour Name 					uint8_t vdev_id, uint8_t value);
4382*5113495bSYour Name 
4383*5113495bSYour Name /**
4384*5113495bSYour Name  * wlan_mlme_get_ml_link_control_mode() - get ml_link_control_mode
4385*5113495bSYour Name  * @psoc: pointer to psoc object
4386*5113495bSYour Name  * @vdev_id: vdev id
4387*5113495bSYour Name  *
4388*5113495bSYour Name  * Return: value of ml_link_control_mode in success
4389*5113495bSYour Name  */
4390*5113495bSYour Name uint8_t wlan_mlme_get_ml_link_control_mode(struct wlan_objmgr_psoc *psoc,
4391*5113495bSYour Name 					   uint8_t vdev_id);
4392*5113495bSYour Name 
4393*5113495bSYour Name /**
4394*5113495bSYour Name  * wlan_mlme_restore_user_set_link_num() - restore link num when SSR happens
4395*5113495bSYour Name  * @psoc: pointer to psoc object
4396*5113495bSYour Name  *
4397*5113495bSYour Name  * Return: void
4398*5113495bSYour Name  */
4399*5113495bSYour Name void wlan_mlme_restore_user_set_link_num(struct wlan_objmgr_psoc *psoc);
4400*5113495bSYour Name 
4401*5113495bSYour Name /**
4402*5113495bSYour Name  * wlan_mlme_clear_user_set_link_num() - clear user set link num
4403*5113495bSYour Name  * @psoc: pointer to psoc object
4404*5113495bSYour Name  *
4405*5113495bSYour Name  * Return: void
4406*5113495bSYour Name  */
4407*5113495bSYour Name void wlan_mlme_clear_user_set_link_num(struct wlan_objmgr_psoc *psoc);
4408*5113495bSYour Name 
4409*5113495bSYour Name /**
4410*5113495bSYour Name  * wlan_mlme_get_sta_mlo_conn_band_bmp() - get band bitmap that sta mlo
4411*5113495bSYour Name  *                                         connection can support
4412*5113495bSYour Name  * @psoc: pointer to psoc object
4413*5113495bSYour Name  *
4414*5113495bSYour Name  * Return: band bitmap that sta mlo connection can support
4415*5113495bSYour Name  */
4416*5113495bSYour Name uint8_t wlan_mlme_get_sta_mlo_conn_band_bmp(struct wlan_objmgr_psoc *psoc);
4417*5113495bSYour Name 
4418*5113495bSYour Name /**
4419*5113495bSYour Name  * wlan_mlme_set_sta_mlo_simultaneous_links() - set mlo simultaneous links
4420*5113495bSYour Name  * @psoc: pointer to psoc object
4421*5113495bSYour Name  * @value: value to set
4422*5113495bSYour Name  *
4423*5113495bSYour Name  * Return: QDF Status
4424*5113495bSYour Name  */
4425*5113495bSYour Name QDF_STATUS
4426*5113495bSYour Name wlan_mlme_set_sta_mlo_simultaneous_links(struct wlan_objmgr_psoc *psoc,
4427*5113495bSYour Name 					 uint8_t value);
4428*5113495bSYour Name 
4429*5113495bSYour Name /**
4430*5113495bSYour Name  * wlan_mlme_get_sta_mlo_simultaneous_links() - get mlo simultaneous links
4431*5113495bSYour Name  * @psoc: pointer to psoc object
4432*5113495bSYour Name  *
4433*5113495bSYour Name  * Return: number of links
4434*5113495bSYour Name  */
4435*5113495bSYour Name uint8_t wlan_mlme_get_sta_mlo_simultaneous_links(struct wlan_objmgr_psoc *psoc);
4436*5113495bSYour Name 
4437*5113495bSYour Name /**
4438*5113495bSYour Name  * wlan_mlme_set_sta_mlo_conn_band_bmp() - set band bitmap that sta mlo
4439*5113495bSYour Name  *                                         connection can support
4440*5113495bSYour Name  * @psoc: pointer to psoc object
4441*5113495bSYour Name  * @value: value to set
4442*5113495bSYour Name  *
4443*5113495bSYour Name  * Return: QDF Status
4444*5113495bSYour Name  */
4445*5113495bSYour Name QDF_STATUS wlan_mlme_set_sta_mlo_conn_band_bmp(struct wlan_objmgr_psoc *psoc,
4446*5113495bSYour Name 					       uint8_t value);
4447*5113495bSYour Name 
4448*5113495bSYour Name /**
4449*5113495bSYour Name  * wlan_mlme_get_sta_same_link_mld_addr() - check if mld/link use same address
4450*5113495bSYour Name  * @psoc: pointer to psoc object
4451*5113495bSYour Name  *
4452*5113495bSYour Name  * Return: bool to check if the mld/link use same mac address
4453*5113495bSYour Name  */
4454*5113495bSYour Name bool wlan_mlme_get_sta_same_link_mld_addr(struct wlan_objmgr_psoc *psoc);
4455*5113495bSYour Name #else
4456*5113495bSYour Name static inline
wlan_mlme_set_ml_link_control_mode(struct wlan_objmgr_psoc * psoc,uint8_t vdev_id,uint8_t value)4457*5113495bSYour Name void wlan_mlme_set_ml_link_control_mode(struct wlan_objmgr_psoc *psoc,
4458*5113495bSYour Name 					uint8_t vdev_id, uint8_t value)
4459*5113495bSYour Name {
4460*5113495bSYour Name }
4461*5113495bSYour Name 
4462*5113495bSYour Name static inline
wlan_mlme_get_ml_link_control_mode(struct wlan_objmgr_psoc * psoc,uint8_t vdev_id)4463*5113495bSYour Name uint8_t wlan_mlme_get_ml_link_control_mode(struct wlan_objmgr_psoc *psoc,
4464*5113495bSYour Name 					   uint8_t vdev_id)
4465*5113495bSYour Name {
4466*5113495bSYour Name 	return 0;
4467*5113495bSYour Name }
4468*5113495bSYour Name 
4469*5113495bSYour Name static inline QDF_STATUS
wlan_mlme_set_user_set_link_num(struct wlan_objmgr_psoc * psoc,uint8_t value)4470*5113495bSYour Name wlan_mlme_set_user_set_link_num(struct wlan_objmgr_psoc *psoc,
4471*5113495bSYour Name 				uint8_t value)
4472*5113495bSYour Name {
4473*5113495bSYour Name 	return QDF_STATUS_SUCCESS;
4474*5113495bSYour Name }
4475*5113495bSYour Name 
4476*5113495bSYour Name static inline
wlan_mlme_restore_user_set_link_num(struct wlan_objmgr_psoc * psoc)4477*5113495bSYour Name void wlan_mlme_restore_user_set_link_num(struct wlan_objmgr_psoc *psoc)
4478*5113495bSYour Name {
4479*5113495bSYour Name }
4480*5113495bSYour Name 
4481*5113495bSYour Name static inline
wlan_mlme_clear_user_set_link_num(struct wlan_objmgr_psoc * psoc)4482*5113495bSYour Name void wlan_mlme_clear_user_set_link_num(struct wlan_objmgr_psoc *psoc)
4483*5113495bSYour Name {
4484*5113495bSYour Name }
4485*5113495bSYour Name 
4486*5113495bSYour Name static inline QDF_STATUS
wlan_mlme_set_sta_mlo_conn_max_num(struct wlan_objmgr_psoc * psoc,uint8_t value)4487*5113495bSYour Name wlan_mlme_set_sta_mlo_conn_max_num(struct wlan_objmgr_psoc *psoc,
4488*5113495bSYour Name 				   uint8_t value)
4489*5113495bSYour Name {
4490*5113495bSYour Name 	return QDF_STATUS_SUCCESS;
4491*5113495bSYour Name }
4492*5113495bSYour Name 
4493*5113495bSYour Name static inline uint8_t
wlan_mlme_get_sta_mlo_conn_max_num(struct wlan_objmgr_psoc * psoc)4494*5113495bSYour Name wlan_mlme_get_sta_mlo_conn_max_num(struct wlan_objmgr_psoc *psoc)
4495*5113495bSYour Name {
4496*5113495bSYour Name 	return 0;
4497*5113495bSYour Name }
4498*5113495bSYour Name 
4499*5113495bSYour Name static inline bool
wlan_mlme_is_5gl_5gh_mlsr_supported(struct wlan_objmgr_psoc * psoc)4500*5113495bSYour Name wlan_mlme_is_5gl_5gh_mlsr_supported(struct wlan_objmgr_psoc *psoc)
4501*5113495bSYour Name {
4502*5113495bSYour Name 	return 0;
4503*5113495bSYour Name }
4504*5113495bSYour Name 
4505*5113495bSYour Name static inline QDF_STATUS
wlan_mlme_set_sta_mlo_simultaneous_links(struct wlan_objmgr_psoc * psoc,uint8_t value)4506*5113495bSYour Name wlan_mlme_set_sta_mlo_simultaneous_links(struct wlan_objmgr_psoc *psoc,
4507*5113495bSYour Name 					 uint8_t value)
4508*5113495bSYour Name {
4509*5113495bSYour Name 	return QDF_STATUS_SUCCESS;
4510*5113495bSYour Name }
4511*5113495bSYour Name 
4512*5113495bSYour Name static inline QDF_STATUS
wlan_mlme_set_sta_mlo_conn_band_bmp(struct wlan_objmgr_psoc * psoc,uint8_t value)4513*5113495bSYour Name wlan_mlme_set_sta_mlo_conn_band_bmp(struct wlan_objmgr_psoc *psoc,
4514*5113495bSYour Name 				    uint8_t value)
4515*5113495bSYour Name {
4516*5113495bSYour Name 	return QDF_STATUS_SUCCESS;
4517*5113495bSYour Name }
4518*5113495bSYour Name #endif
4519*5113495bSYour Name 
4520*5113495bSYour Name /**
4521*5113495bSYour Name  * wlan_mlme_set_ba_2k_jump_iot_ap() - Set a flag if ba 2k jump IOT AP is found
4522*5113495bSYour Name  * @vdev: vdev pointer
4523*5113495bSYour Name  * @found: Carries the value true if ba 2k jump IOT AP is found
4524*5113495bSYour Name  *
4525*5113495bSYour Name  * Return: QDF Status
4526*5113495bSYour Name  */
4527*5113495bSYour Name QDF_STATUS
4528*5113495bSYour Name wlan_mlme_set_ba_2k_jump_iot_ap(struct wlan_objmgr_vdev *vdev, bool found);
4529*5113495bSYour Name 
4530*5113495bSYour Name /**
4531*5113495bSYour Name  * wlan_mlme_is_ba_2k_jump_iot_ap() - Check if ba 2k jump IOT AP is found
4532*5113495bSYour Name  * @vdev: vdev pointer
4533*5113495bSYour Name  *
4534*5113495bSYour Name  * Return: true if ba 2k jump IOT AP is found
4535*5113495bSYour Name  */
4536*5113495bSYour Name bool
4537*5113495bSYour Name wlan_mlme_is_ba_2k_jump_iot_ap(struct wlan_objmgr_vdev *vdev);
4538*5113495bSYour Name 
4539*5113495bSYour Name /**
4540*5113495bSYour Name  * wlan_mlme_set_last_delba_sent_time() - Cache the last delba sent ts
4541*5113495bSYour Name  * @vdev: vdev pointer
4542*5113495bSYour Name  * @delba_sent_time: Last delba sent timestamp
4543*5113495bSYour Name  *
4544*5113495bSYour Name  * Return: QDF Status
4545*5113495bSYour Name  */
4546*5113495bSYour Name QDF_STATUS
4547*5113495bSYour Name wlan_mlme_set_last_delba_sent_time(struct wlan_objmgr_vdev *vdev,
4548*5113495bSYour Name 				   qdf_time_t delba_sent_time);
4549*5113495bSYour Name 
4550*5113495bSYour Name /**
4551*5113495bSYour Name  * wlan_mlme_get_last_delba_sent_time() - Get the last delba sent ts
4552*5113495bSYour Name  * @vdev: vdev pointer
4553*5113495bSYour Name  *
4554*5113495bSYour Name  * Return: Last delba timestamp if cached, 0 otherwise
4555*5113495bSYour Name  */
4556*5113495bSYour Name qdf_time_t
4557*5113495bSYour Name wlan_mlme_get_last_delba_sent_time(struct wlan_objmgr_vdev *vdev);
4558*5113495bSYour Name 
4559*5113495bSYour Name /**
4560*5113495bSYour Name  * mlme_set_user_ps() - Set the PS user config
4561*5113495bSYour Name  * @psoc: Pointer to psoc object
4562*5113495bSYour Name  * @vdev_id: vdev id
4563*5113495bSYour Name  * @ps_enable: User PS enable
4564*5113495bSYour Name  *
4565*5113495bSYour Name  * Return: QDF_STATUS
4566*5113495bSYour Name  */
4567*5113495bSYour Name QDF_STATUS mlme_set_user_ps(struct wlan_objmgr_psoc *psoc, uint8_t vdev_id,
4568*5113495bSYour Name 			    bool ps_enable);
4569*5113495bSYour Name 
4570*5113495bSYour Name /**
4571*5113495bSYour Name  * mlme_get_user_ps() - Set the user ps flag
4572*5113495bSYour Name  * @psoc: Pointer to psoc object
4573*5113495bSYour Name  * @vdev_id: vdev id
4574*5113495bSYour Name  *
4575*5113495bSYour Name  * Return: True if user_ps flag is set
4576*5113495bSYour Name  */
4577*5113495bSYour Name bool mlme_get_user_ps(struct wlan_objmgr_psoc *psoc, uint8_t vdev_id);
4578*5113495bSYour Name 
4579*5113495bSYour Name #ifdef WLAN_FEATURE_P2P_P2P_STA
4580*5113495bSYour Name /**
4581*5113495bSYour Name  * wlan_mlme_get_p2p_p2p_conc_support() - Get p2p+p2p conc support
4582*5113495bSYour Name  * @psoc: pointer to psoc object
4583*5113495bSYour Name  *
4584*5113495bSYour Name  * Return: Success/failure
4585*5113495bSYour Name  */
4586*5113495bSYour Name bool
4587*5113495bSYour Name wlan_mlme_get_p2p_p2p_conc_support(struct wlan_objmgr_psoc *psoc);
4588*5113495bSYour Name #else
4589*5113495bSYour Name static inline bool
wlan_mlme_get_p2p_p2p_conc_support(struct wlan_objmgr_psoc * psoc)4590*5113495bSYour Name wlan_mlme_get_p2p_p2p_conc_support(struct wlan_objmgr_psoc *psoc)
4591*5113495bSYour Name {
4592*5113495bSYour Name 	return false;
4593*5113495bSYour Name }
4594*5113495bSYour Name #endif
4595*5113495bSYour Name 
4596*5113495bSYour Name /**
4597*5113495bSYour Name  * mlme_get_vht_ch_width() - get vht channel width of fw capability
4598*5113495bSYour Name  *
4599*5113495bSYour Name  * Return: vht channel width
4600*5113495bSYour Name  */
4601*5113495bSYour Name enum phy_ch_width mlme_get_vht_ch_width(void);
4602*5113495bSYour Name 
4603*5113495bSYour Name /**
4604*5113495bSYour Name  * wlan_mlme_get_mgmt_hw_tx_retry_count() - Get mgmt frame hw tx retry count
4605*5113495bSYour Name  * @psoc: pointer to psoc object
4606*5113495bSYour Name  * @frm_type: frame type of the query
4607*5113495bSYour Name  *
4608*5113495bSYour Name  * Return: hw tx retry count
4609*5113495bSYour Name  */
4610*5113495bSYour Name uint8_t
4611*5113495bSYour Name wlan_mlme_get_mgmt_hw_tx_retry_count(struct wlan_objmgr_psoc *psoc,
4612*5113495bSYour Name 				     enum mlme_cfg_frame_type frm_type);
4613*5113495bSYour Name 
4614*5113495bSYour Name /**
4615*5113495bSYour Name  * wlan_mlme_get_tx_retry_multiplier() - Get the tx retry multiplier percentage
4616*5113495bSYour Name  * @psoc: pointer to psoc object
4617*5113495bSYour Name  * @tx_retry_multiplier: pointer to hold user config value of
4618*5113495bSYour Name  * tx_retry_multiplier
4619*5113495bSYour Name  *
4620*5113495bSYour Name  * Return: QDF Status
4621*5113495bSYour Name  */
4622*5113495bSYour Name QDF_STATUS
4623*5113495bSYour Name wlan_mlme_get_tx_retry_multiplier(struct wlan_objmgr_psoc *psoc,
4624*5113495bSYour Name 				  uint32_t *tx_retry_multiplier);
4625*5113495bSYour Name 
4626*5113495bSYour Name /**
4627*5113495bSYour Name  * wlan_mlme_get_update_chan_width_allowed  - Get value of INI
4628*5113495bSYour Name  * is_update_chan_width_allowed
4629*5113495bSYour Name  * @psoc: pointer to psoc object
4630*5113495bSYour Name  * @value: pointer to the value which will be filled for the caller
4631*5113495bSYour Name  *
4632*5113495bSYour Name  * Return: QDF Status
4633*5113495bSYour Name  */
4634*5113495bSYour Name QDF_STATUS
4635*5113495bSYour Name wlan_mlme_get_update_chan_width_allowed(struct wlan_objmgr_psoc *psoc,
4636*5113495bSYour Name 					bool *value);
4637*5113495bSYour Name 
4638*5113495bSYour Name /**
4639*5113495bSYour Name  * wlan_mlme_get_channel_bonding_5ghz  - Get the channel bonding
4640*5113495bSYour Name  * val for 5ghz freq
4641*5113495bSYour Name  * @psoc: pointer to psoc object
4642*5113495bSYour Name  * @value: pointer to the value which will be filled for the caller
4643*5113495bSYour Name  *
4644*5113495bSYour Name  * Return: QDF Status
4645*5113495bSYour Name  */
4646*5113495bSYour Name QDF_STATUS
4647*5113495bSYour Name wlan_mlme_get_channel_bonding_5ghz(struct wlan_objmgr_psoc *psoc,
4648*5113495bSYour Name 				   uint32_t *value);
4649*5113495bSYour Name 
4650*5113495bSYour Name /**
4651*5113495bSYour Name  * wlan_mlme_update_ratemask_params() - Update ratemask params
4652*5113495bSYour Name  *
4653*5113495bSYour Name  * @vdev: pointer to vdev object
4654*5113495bSYour Name  * @num_ratemask: number of rate masks
4655*5113495bSYour Name  * @rate_params: pointer to ratemask structure
4656*5113495bSYour Name  *
4657*5113495bSYour Name  * Return: QDF Status
4658*5113495bSYour Name  */
4659*5113495bSYour Name QDF_STATUS
4660*5113495bSYour Name wlan_mlme_update_ratemask_params(struct wlan_objmgr_vdev *vdev,
4661*5113495bSYour Name 				 uint8_t num_ratemask,
4662*5113495bSYour Name 				 struct config_ratemask_params *rate_params);
4663*5113495bSYour Name 
4664*5113495bSYour Name /**
4665*5113495bSYour Name  * wlan_mlme_is_channel_valid() - validate channel frequency
4666*5113495bSYour Name  * @psoc: psoc object manager
4667*5113495bSYour Name  * @chan_freq: channel frequency
4668*5113495bSYour Name  *
4669*5113495bSYour Name  * This function validates channel frequency present in valid channel
4670*5113495bSYour Name  * list or not.
4671*5113495bSYour Name  *
4672*5113495bSYour Name  * Return: true or false
4673*5113495bSYour Name  */
4674*5113495bSYour Name bool wlan_mlme_is_channel_valid(struct wlan_objmgr_psoc *psoc,
4675*5113495bSYour Name 				uint32_t chan_freq);
4676*5113495bSYour Name #ifdef WLAN_FEATURE_MCC_QUOTA
4677*5113495bSYour Name /**
4678*5113495bSYour Name  * wlan_mlme_set_user_mcc_quota() - set the user mcc quota in mlme
4679*5113495bSYour Name  * @psoc: pointer to psoc object
4680*5113495bSYour Name  * @quota: pointer to user set mcc quota object
4681*5113495bSYour Name  *
4682*5113495bSYour Name  * Return: QDF Status
4683*5113495bSYour Name  */
4684*5113495bSYour Name QDF_STATUS wlan_mlme_set_user_mcc_quota(struct wlan_objmgr_psoc *psoc,
4685*5113495bSYour Name 					struct wlan_user_mcc_quota *quota);
4686*5113495bSYour Name 
4687*5113495bSYour Name /**
4688*5113495bSYour Name  * wlan_mlme_get_user_mcc_quota() - Get the user mcc quota from mlme
4689*5113495bSYour Name  * @psoc: pointer to psoc object
4690*5113495bSYour Name  * @quota: pointer to user set mcc quota object
4691*5113495bSYour Name  *
4692*5113495bSYour Name  * Return: QDF Status
4693*5113495bSYour Name  */
4694*5113495bSYour Name QDF_STATUS wlan_mlme_get_user_mcc_quota(struct wlan_objmgr_psoc *psoc,
4695*5113495bSYour Name 					struct wlan_user_mcc_quota *quota);
4696*5113495bSYour Name 
4697*5113495bSYour Name /**
4698*5113495bSYour Name  * wlan_mlme_get_user_mcc_duty_cycle_percentage() - Get user mcc duty cycle
4699*5113495bSYour Name  * @psoc: pointer to psoc object
4700*5113495bSYour Name  *
4701*5113495bSYour Name  * Return: MCC duty cycle if MCC exists for the user MCC quota, else 0
4702*5113495bSYour Name  */
4703*5113495bSYour Name uint32_t
4704*5113495bSYour Name wlan_mlme_get_user_mcc_duty_cycle_percentage(struct wlan_objmgr_psoc *psoc);
4705*5113495bSYour Name #else
4706*5113495bSYour Name static inline QDF_STATUS
wlan_mlme_set_user_mcc_quota(struct wlan_objmgr_psoc * psoc,struct wlan_user_mcc_quota * quota)4707*5113495bSYour Name wlan_mlme_set_user_mcc_quota(struct wlan_objmgr_psoc *psoc,
4708*5113495bSYour Name 			     struct wlan_user_mcc_quota *quota)
4709*5113495bSYour Name {
4710*5113495bSYour Name 	return QDF_STATUS_SUCCESS;
4711*5113495bSYour Name }
4712*5113495bSYour Name 
4713*5113495bSYour Name static inline QDF_STATUS
wlan_mlme_get_user_mcc_quota(struct wlan_objmgr_psoc * psoc,struct wlan_user_mcc_quota * quota)4714*5113495bSYour Name wlan_mlme_get_user_mcc_quota(struct wlan_objmgr_psoc *psoc,
4715*5113495bSYour Name 			     struct wlan_user_mcc_quota *quota)
4716*5113495bSYour Name {
4717*5113495bSYour Name 	return QDF_STATUS_E_NOSUPPORT;
4718*5113495bSYour Name }
4719*5113495bSYour Name 
4720*5113495bSYour Name static inline uint32_t
wlan_mlme_get_user_mcc_duty_cycle_percentage(struct wlan_objmgr_psoc * psoc)4721*5113495bSYour Name wlan_mlme_get_user_mcc_duty_cycle_percentage(struct wlan_objmgr_psoc *psoc)
4722*5113495bSYour Name {
4723*5113495bSYour Name 	return 0;
4724*5113495bSYour Name }
4725*5113495bSYour Name #endif /* WLAN_FEATURE_MCC_QUOTA */
4726*5113495bSYour Name 
4727*5113495bSYour Name /**
4728*5113495bSYour Name  * mlme_get_max_he_mcs_idx() -  get max mcs index from he cap information
4729*5113495bSYour Name  * @mcs_ch_width: channel width
4730*5113495bSYour Name  * @hecap_rxmcsnssmap: rx mcs map from he cap
4731*5113495bSYour Name  * @hecap_txmcsnssmap: tx mcs map from he cap
4732*5113495bSYour Name  *
4733*5113495bSYour Name  * Return: the maximum MCS supported
4734*5113495bSYour Name  */
4735*5113495bSYour Name uint8_t mlme_get_max_he_mcs_idx(enum phy_ch_width mcs_ch_width,
4736*5113495bSYour Name 				u_int16_t *hecap_rxmcsnssmap,
4737*5113495bSYour Name 				u_int16_t *hecap_txmcsnssmap);
4738*5113495bSYour Name 
4739*5113495bSYour Name /**
4740*5113495bSYour Name  * mlme_get_max_vht_mcs_idx() -  get max mcs index from vht cap information
4741*5113495bSYour Name  * @rx_vht_mcs_map: rx mcs map from vht cap
4742*5113495bSYour Name  * @tx_vht_mcs_map: tx mcs map from vht cap
4743*5113495bSYour Name  *
4744*5113495bSYour Name  * Return: the maximum MCS supported
4745*5113495bSYour Name  */
4746*5113495bSYour Name uint8_t mlme_get_max_vht_mcs_idx(u_int16_t rx_vht_mcs_map,
4747*5113495bSYour Name 				 u_int16_t tx_vht_mcs_map);
4748*5113495bSYour Name 
4749*5113495bSYour Name #ifdef WLAN_FEATURE_SON
4750*5113495bSYour Name /**
4751*5113495bSYour Name  * mlme_save_vdev_max_mcs_idx() - Save max mcs index of vdev
4752*5113495bSYour Name  * @vdev: pointer to vdev object
4753*5113495bSYour Name  * @max_mcs_idx: max_mcs_idx to save
4754*5113495bSYour Name  *
4755*5113495bSYour Name  * Return: QDF Status
4756*5113495bSYour Name  */
4757*5113495bSYour Name QDF_STATUS mlme_save_vdev_max_mcs_idx(struct wlan_objmgr_vdev *vdev,
4758*5113495bSYour Name 				      uint8_t max_mcs_idx);
4759*5113495bSYour Name 
4760*5113495bSYour Name /**
4761*5113495bSYour Name  * mlme_get_vdev_max_mcs_idx() - Get max mcs index of vdev
4762*5113495bSYour Name  * @vdev: pointer to vdev object
4763*5113495bSYour Name  *
4764*5113495bSYour Name  * Return max mcs index of vdev
4765*5113495bSYour Name  */
4766*5113495bSYour Name uint8_t mlme_get_vdev_max_mcs_idx(struct wlan_objmgr_vdev *vdev);
4767*5113495bSYour Name #endif /* WLAN_FEATURE_SON */
4768*5113495bSYour Name /**
4769*5113495bSYour Name  * wlan_mlme_set_safe_mode_enable() - set safe_mode_enable flag
4770*5113495bSYour Name  * based on value set by user space.
4771*5113495bSYour Name  *
4772*5113495bSYour Name  * @psoc: psoc context
4773*5113495bSYour Name  * @safe_mode_enable: safe mode enabled or not
4774*5113495bSYour Name  *
4775*5113495bSYour Name  * Return: none
4776*5113495bSYour Name  */
4777*5113495bSYour Name void wlan_mlme_set_safe_mode_enable(struct wlan_objmgr_psoc *psoc,
4778*5113495bSYour Name 				    bool safe_mode_enable);
4779*5113495bSYour Name 
4780*5113495bSYour Name /**
4781*5113495bSYour Name  * wlan_mlme_get_safe_mode_enable() - get safe_mode_enable set by user
4782*5113495bSYour Name  * space
4783*5113495bSYour Name  *
4784*5113495bSYour Name  * @psoc: psoc context
4785*5113495bSYour Name  * @safe_mode_enable: safe mode enabled or not
4786*5113495bSYour Name  *
4787*5113495bSYour Name  * Return: none
4788*5113495bSYour Name  */
4789*5113495bSYour Name void wlan_mlme_get_safe_mode_enable(struct wlan_objmgr_psoc *psoc,
4790*5113495bSYour Name 				    bool *safe_mode_enable);
4791*5113495bSYour Name 
4792*5113495bSYour Name /**
4793*5113495bSYour Name  * wlan_mlme_get_6g_ap_power_type() - get the power type of the
4794*5113495bSYour Name  * vdev operating on 6GHz.
4795*5113495bSYour Name  *
4796*5113495bSYour Name  * @vdev: vdev context
4797*5113495bSYour Name  *
4798*5113495bSYour Name  * Return: 6g_power_type
4799*5113495bSYour Name  */
4800*5113495bSYour Name uint32_t wlan_mlme_get_6g_ap_power_type(struct wlan_objmgr_vdev *vdev);
4801*5113495bSYour Name 
4802*5113495bSYour Name QDF_STATUS wlan_connect_hw_mode_change_resp(struct wlan_objmgr_pdev *pdev,
4803*5113495bSYour Name 					    uint8_t vdev_id,
4804*5113495bSYour Name 					    wlan_cm_id cm_id,
4805*5113495bSYour Name 					    QDF_STATUS status);
4806*5113495bSYour Name 
4807*5113495bSYour Name /**
4808*5113495bSYour Name  * wlan_mlme_get_ch_width_from_phymode() - Convert phymode to ch_width
4809*5113495bSYour Name  * @phy_mode: Phy mode
4810*5113495bSYour Name  *
4811*5113495bSYour Name  * Return: enum phy_ch_width
4812*5113495bSYour Name  */
4813*5113495bSYour Name enum phy_ch_width
4814*5113495bSYour Name wlan_mlme_get_ch_width_from_phymode(enum wlan_phymode phy_mode);
4815*5113495bSYour Name 
4816*5113495bSYour Name /**
4817*5113495bSYour Name  * wlan_mlme_get_peer_ch_width() - get ch_width of the given peer
4818*5113495bSYour Name  * @psoc: psoc context
4819*5113495bSYour Name  * @mac: peer mac
4820*5113495bSYour Name  *
4821*5113495bSYour Name  * Return: enum phy_ch_width
4822*5113495bSYour Name  */
4823*5113495bSYour Name enum phy_ch_width
4824*5113495bSYour Name wlan_mlme_get_peer_ch_width(struct wlan_objmgr_psoc *psoc, uint8_t *mac);
4825*5113495bSYour Name 
4826*5113495bSYour Name #if defined(WLAN_FEATURE_SR)
4827*5113495bSYour Name /**
4828*5113495bSYour Name  * wlan_mlme_get_sr_enable_modes() - get mode for which SR is enabled
4829*5113495bSYour Name  *
4830*5113495bSYour Name  * @psoc: psoc context
4831*5113495bSYour Name  * @val: pointer to hold the value of SR(Spatial Reuse) enable modes
4832*5113495bSYour Name  *
4833*5113495bSYour Name  * Return: void
4834*5113495bSYour Name  */
4835*5113495bSYour Name void
4836*5113495bSYour Name wlan_mlme_get_sr_enable_modes(struct wlan_objmgr_psoc *psoc, uint8_t *val);
4837*5113495bSYour Name #endif
4838*5113495bSYour Name 
4839*5113495bSYour Name /**
4840*5113495bSYour Name  * wlan_mlme_set_edca_pifs_param() - set edca/pifs param for ll sap
4841*5113495bSYour Name  * @ep: pointer to wlan_edca_pifs_param_ie
4842*5113495bSYour Name  * @type: edca_param_type
4843*5113495bSYour Name  *
4844*5113495bSYour Name  * Return: None
4845*5113495bSYour Name  */
4846*5113495bSYour Name void
4847*5113495bSYour Name wlan_mlme_set_edca_pifs_param(struct wlan_edca_pifs_param_ie *ep,
4848*5113495bSYour Name 			      enum host_edca_param_type type);
4849*5113495bSYour Name /**
4850*5113495bSYour Name  * wlan_mlme_stats_get_periodic_display_time() - get display time
4851*5113495bSYour Name  * @psoc: pointer to psoc object
4852*5113495bSYour Name  * @periodic_display_time: buffer to hold value
4853*5113495bSYour Name  *
4854*5113495bSYour Name  * Return: QDF Status
4855*5113495bSYour Name  */
4856*5113495bSYour Name QDF_STATUS
4857*5113495bSYour Name wlan_mlme_stats_get_periodic_display_time(struct wlan_objmgr_psoc *psoc,
4858*5113495bSYour Name 					  uint32_t *periodic_display_time);
4859*5113495bSYour Name 
4860*5113495bSYour Name /**
4861*5113495bSYour Name  * wlan_mlme_is_bcn_prot_disabled_for_sap() - Is beacon protection config
4862*5113495bSYour Name  * disabled for SAP interface
4863*5113495bSYour Name  *
4864*5113495bSYour Name  * @psoc: pointer to psoc object
4865*5113495bSYour Name  *
4866*5113495bSYour Name  * Return: is beacon protection disabled
4867*5113495bSYour Name  */
4868*5113495bSYour Name bool
4869*5113495bSYour Name wlan_mlme_is_bcn_prot_disabled_for_sap(struct wlan_objmgr_psoc *psoc);
4870*5113495bSYour Name 
4871*5113495bSYour Name /**
4872*5113495bSYour Name  * wlan_mlme_get_src_addr_from_frame() - Get source address of the frame
4873*5113495bSYour Name  * @frame: frame ptr
4874*5113495bSYour Name  *
4875*5113495bSYour Name  * Extract source mac address of the frame
4876*5113495bSYour Name  *
4877*5113495bSYour Name  * Return: Ptr for extracted src mac address
4878*5113495bSYour Name  *
4879*5113495bSYour Name  */
4880*5113495bSYour Name uint8_t *
4881*5113495bSYour Name wlan_mlme_get_src_addr_from_frame(struct element_info *frame);
4882*5113495bSYour Name 
4883*5113495bSYour Name /*
4884*5113495bSYour Name  * wlan_mlme_get_sap_ps_with_twt() - power save with twt config enabled/disabled
4885*5113495bSYour Name  * for SAP interface
4886*5113495bSYour Name  *
4887*5113495bSYour Name  * @psoc: pointer to psoc object
4888*5113495bSYour Name  *
4889*5113495bSYour Name  * Return: power save enabled/disabled
4890*5113495bSYour Name  */
4891*5113495bSYour Name bool
4892*5113495bSYour Name wlan_mlme_get_sap_ps_with_twt(struct wlan_objmgr_psoc *psoc);
4893*5113495bSYour Name 
4894*5113495bSYour Name /**
4895*5113495bSYour Name  * wlan_mlme_get_max_bw() - Get max supported bandwidth
4896*5113495bSYour Name  *
4897*5113495bSYour Name  * Extract max supported bandwidth
4898*5113495bSYour Name  *
4899*5113495bSYour Name  * Return: enum phy_ch_width
4900*5113495bSYour Name  *
4901*5113495bSYour Name  */
4902*5113495bSYour Name enum phy_ch_width wlan_mlme_get_max_bw(void);
4903*5113495bSYour Name 
4904*5113495bSYour Name /**
4905*5113495bSYour Name  * wlan_mlme_get_sta_ch_width() - Get current operating
4906*5113495bSYour Name  * channel width for STA / P2P-CLI mode
4907*5113495bSYour Name  *
4908*5113495bSYour Name  * @vdev: STA / P2P-CLI vdev
4909*5113495bSYour Name  * @ch_width: Returned channel width
4910*5113495bSYour Name  *
4911*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS for success otherwise QDF_STATUS_E_INVAL
4912*5113495bSYour Name  *
4913*5113495bSYour Name  */
4914*5113495bSYour Name QDF_STATUS wlan_mlme_get_sta_ch_width(struct wlan_objmgr_vdev *vdev,
4915*5113495bSYour Name 				      enum phy_ch_width *ch_width);
4916*5113495bSYour Name 
4917*5113495bSYour Name /**
4918*5113495bSYour Name  * wlan_mlme_set_ul_mu_config() - set ul mu config
4919*5113495bSYour Name  *
4920*5113495bSYour Name  * @psoc: pointer to psoc object
4921*5113495bSYour Name  * @vdev_id : vdev_id
4922*5113495bSYour Name  * @ulmu_disable : ulmu_disable value
4923*5113495bSYour Name  *
4924*5113495bSYour Name  * Return: QDF Status
4925*5113495bSYour Name  */
4926*5113495bSYour Name QDF_STATUS
4927*5113495bSYour Name wlan_mlme_set_ul_mu_config(struct wlan_objmgr_psoc *psoc, uint8_t vdev_id,
4928*5113495bSYour Name 			   uint8_t ulmu_disable);
4929*5113495bSYour Name 
4930*5113495bSYour Name /**
4931*5113495bSYour Name  * wlan_mlme_assemble_rate_code() - assemble rate code to be sent to FW
4932*5113495bSYour Name  *
4933*5113495bSYour Name  * @preamble: rate preamble
4934*5113495bSYour Name  * @nss: number of spatial streams
4935*5113495bSYour Name  * @rate: rate index
4936*5113495bSYour Name  *
4937*5113495bSYour Name  * Rate code assembling is different for targets which are 11ax capable.
4938*5113495bSYour Name  * Check for the target support and assemble the rate code accordingly.
4939*5113495bSYour Name  *
4940*5113495bSYour Name  * Return: assembled rate code
4941*5113495bSYour Name  */
4942*5113495bSYour Name uint32_t
4943*5113495bSYour Name wlan_mlme_assemble_rate_code(uint8_t preamble, uint8_t nss, uint8_t rate);
4944*5113495bSYour Name 
4945*5113495bSYour Name /**
4946*5113495bSYour Name  * wlan_mlme_set_ap_oper_ch_width() - set SAP current operating ch_width
4947*5113495bSYour Name  *
4948*5113495bSYour Name  * @vdev: SAP VDEV object
4949*5113495bSYour Name  * @ch_width: ch_width to be cached
4950*5113495bSYour Name  *
4951*5113495bSYour Name  * Return: QDF Status
4952*5113495bSYour Name  */
4953*5113495bSYour Name QDF_STATUS
4954*5113495bSYour Name wlan_mlme_set_ap_oper_ch_width(struct wlan_objmgr_vdev *vdev,
4955*5113495bSYour Name 			       enum phy_ch_width ch_width);
4956*5113495bSYour Name 
4957*5113495bSYour Name /**
4958*5113495bSYour Name  * wlan_mlme_get_ap_oper_ch_width() - get SAP current operating ch_width
4959*5113495bSYour Name  *
4960*5113495bSYour Name  * @vdev: SAP VDEV object
4961*5113495bSYour Name  *
4962*5113495bSYour Name  * Return: Current SAP operating ch_width
4963*5113495bSYour Name  */
4964*5113495bSYour Name enum phy_ch_width
4965*5113495bSYour Name wlan_mlme_get_ap_oper_ch_width(struct wlan_objmgr_vdev *vdev);
4966*5113495bSYour Name 
4967*5113495bSYour Name /**
4968*5113495bSYour Name  * wlan_mlme_send_csa_event_status_ind() - send csa event status ind
4969*5113495bSYour Name  * @vdev: vdev obj
4970*5113495bSYour Name  * @csa_status: csa status
4971*5113495bSYour Name  *
4972*5113495bSYour Name  * Return: QDF_STATUS
4973*5113495bSYour Name  */
4974*5113495bSYour Name QDF_STATUS
4975*5113495bSYour Name wlan_mlme_send_csa_event_status_ind(struct wlan_objmgr_vdev *vdev,
4976*5113495bSYour Name 				    uint8_t csa_status);
4977*5113495bSYour Name 
4978*5113495bSYour Name /**
4979*5113495bSYour Name  * wlan_mlme_is_hs_20_btm_offload_disabled() - Get BTM offload is enable/disable
4980*5113495bSYour Name  * @psoc: pointer to psoc object
4981*5113495bSYour Name  * @val:  Pointer to the value which will be filled for the caller
4982*5113495bSYour Name  *
4983*5113495bSYour Name  * Return: QDF Status
4984*5113495bSYour Name  */
4985*5113495bSYour Name QDF_STATUS
4986*5113495bSYour Name wlan_mlme_is_hs_20_btm_offload_disabled(struct wlan_objmgr_psoc *psoc,
4987*5113495bSYour Name 					bool *val);
4988*5113495bSYour Name /**
4989*5113495bSYour Name  * wlan_mlme_set_keepalive_period() - Save keep alive period
4990*5113495bSYour Name  * @vdev: VDEV object
4991*5113495bSYour Name  * @keep_alive_period: Keep alive period
4992*5113495bSYour Name  *
4993*5113495bSYour Name  * Return: None
4994*5113495bSYour Name  */
4995*5113495bSYour Name void wlan_mlme_set_keepalive_period(struct wlan_objmgr_vdev *vdev,
4996*5113495bSYour Name 				    uint16_t keep_alive_period);
4997*5113495bSYour Name 
4998*5113495bSYour Name /**
4999*5113495bSYour Name  * wlan_mlme_get_keepalive_period() - Get keep alive period
5000*5113495bSYour Name  * @vdev: VDEV object
5001*5113495bSYour Name  *
5002*5113495bSYour Name  * Return: Keep alive period.
5003*5113495bSYour Name  */
5004*5113495bSYour Name uint16_t wlan_mlme_get_keepalive_period(struct wlan_objmgr_vdev *vdev);
5005*5113495bSYour Name #endif /* _WLAN_MLME_API_H_ */
5006