xref: /OK3568_Linux_fs/kernel/drivers/net/wireless/nxp/mlan/mlan_11ac.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /** @file mlan_11ac.h
2*4882a593Smuzhiyun  *
3*4882a593Smuzhiyun  *  @brief This file contains the functions for station ioctl.
4*4882a593Smuzhiyun  *
5*4882a593Smuzhiyun  *
6*4882a593Smuzhiyun  *  Copyright 2011-2021 NXP
7*4882a593Smuzhiyun  *
8*4882a593Smuzhiyun  *  This software file (the File) is distributed by NXP
9*4882a593Smuzhiyun  *  under the terms of the GNU General Public License Version 2, June 1991
10*4882a593Smuzhiyun  *  (the License).  You may use, redistribute and/or modify the File in
11*4882a593Smuzhiyun  *  accordance with the terms and conditions of the License, a copy of which
12*4882a593Smuzhiyun  *  is available by writing to the Free Software Foundation, Inc.,
13*4882a593Smuzhiyun  *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA or on the
14*4882a593Smuzhiyun  *  worldwide web at http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
15*4882a593Smuzhiyun  *
16*4882a593Smuzhiyun  *  THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE
17*4882a593Smuzhiyun  *  IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE
18*4882a593Smuzhiyun  *  ARE EXPRESSLY DISCLAIMED.  The License provides additional details about
19*4882a593Smuzhiyun  *  this warranty disclaimer.
20*4882a593Smuzhiyun  *
21*4882a593Smuzhiyun  */
22*4882a593Smuzhiyun 
23*4882a593Smuzhiyun #ifndef _MLAN_11AC_H_
24*4882a593Smuzhiyun #define _MLAN_11AC_H_
25*4882a593Smuzhiyun 
26*4882a593Smuzhiyun #include "mlan_11n_aggr.h"
27*4882a593Smuzhiyun #include "mlan_11n_rxreorder.h"
28*4882a593Smuzhiyun #include "mlan_wmm.h"
29*4882a593Smuzhiyun 
30*4882a593Smuzhiyun void wlan_show_dot11acdevcap(pmlan_adapter pmadapter, t_u32 cap);
31*4882a593Smuzhiyun void wlan_show_dot11acmcssupport(pmlan_adapter pmadapter, t_u32 support);
32*4882a593Smuzhiyun t_u16 wlan_convert_mcsmap_to_maxrate(mlan_private *priv, t_u16 bands,
33*4882a593Smuzhiyun 				     t_u16 mcs_map);
34*4882a593Smuzhiyun void wlan_fill_vht_cap_tlv(mlan_private *priv, MrvlIETypes_VHTCap_t *pvht_cap,
35*4882a593Smuzhiyun 			   t_u16 bands, t_u8 flag, t_u8 bw_80p80);
36*4882a593Smuzhiyun void wlan_fill_vht_cap_ie(mlan_private *priv, IEEEtypes_VHTCap_t *pvht_cap,
37*4882a593Smuzhiyun 			  t_u16 bands);
38*4882a593Smuzhiyun void wlan_fill_tdls_vht_oprat_ie(mlan_private *priv,
39*4882a593Smuzhiyun 				 IEEEtypes_VHTOprat_t *vht_oprat,
40*4882a593Smuzhiyun 				 sta_node *sta_ptr);
41*4882a593Smuzhiyun t_u8 wlan_is_ap_in_11ac_mode(mlan_private *priv);
42*4882a593Smuzhiyun int wlan_cmd_append_11ac_tlv(mlan_private *pmpriv, BSSDescriptor_t *pbss_desc,
43*4882a593Smuzhiyun 			     t_u8 **ppbuffer);
44*4882a593Smuzhiyun mlan_status wlan_11ac_cfg_ioctl(pmlan_adapter pmadapter,
45*4882a593Smuzhiyun 				pmlan_ioctl_req pioctl_req);
46*4882a593Smuzhiyun void wlan_update_11ac_cap(mlan_private *pmpriv);
47*4882a593Smuzhiyun t_u8 wlan_11ac_bandconfig_allowed(mlan_private *pmpriv, t_u16 bss_band);
48*4882a593Smuzhiyun t_u8 wlan_is_80_80_support(mlan_private *pmpriv, BSSDescriptor_t *pbss_desc);
49*4882a593Smuzhiyun 
50*4882a593Smuzhiyun mlan_status wlan_cmd_11ac_cfg(pmlan_private pmpriv, HostCmd_DS_COMMAND *cmd,
51*4882a593Smuzhiyun 			      t_u16 cmd_action, t_void *pdata_buf);
52*4882a593Smuzhiyun 
53*4882a593Smuzhiyun mlan_status wlan_ret_11ac_cfg(pmlan_private pmpriv, HostCmd_DS_COMMAND *resp,
54*4882a593Smuzhiyun 			      mlan_ioctl_req *pioctl_buf);
55*4882a593Smuzhiyun 
56*4882a593Smuzhiyun #endif /* _MLAN_11AC_H_ */
57