1 #if CONFIG_11AX
2 /** @file mlan_11ax.h
3  *
4  *  @brief This file defines the private and adapter data
5  *  structures and declares global function prototypes used
6  *  in MLAN module.
7  *
8  *  Copyright 2021-2024 NXP
9  *
10  *  SPDX-License-Identifier: BSD-3-Clause
11  *
12  */
13 
14 #ifndef _MLAN_11AX_H_
15 #define _MLAN_11AX_H_
16 
17 /** device support 2.4G 40MHZ */
18 #define AX_2G_40MHZ_SUPPORT MBIT(1)
19 /** device support 2.4G 242 tone RUs */
20 #define AX_2G_20MHZ_SUPPORT MBIT(5)
21 
22 #ifdef RW610
23 /**
24  *  firmware 11ax tlv sequence number, for judging 2.4G or 5G tlv
25  *  firmware add 11ax tlv as 0-5G 1-2.4G to stack
26  *  so driver need to parse 11ax tlv as 0-2.4G 1-5G in converse
27  */
28 #define AX_2G_TLV_INDEX 0
29 #define AX_5G_TLV_INDEX 1
30 #endif
31 
32 t_u8 wlan_check_ap_11ax_twt_supported(BSSDescriptor_t *pbss_desc);
33 t_u8 wlan_check_11ax_twt_supported(mlan_private *pmpriv, BSSDescriptor_t *pbss_desc);
34 t_u16 wlan_fill_he_cap_tlv(mlan_private *pmpriv, t_u16 band, MrvlIEtypes_Extension_t *phe_cap, t_u8 flag);
35 int wlan_cmd_append_11ax_tlv(mlan_private *pmpriv, BSSDescriptor_t *pbss_desc, t_u8 **ppbuffer);
36 void wlan_update_11ax_cap(mlan_adapter *pmadapter,
37                           MrvlIEtypes_Extension_t *hw_he_cap
38 #ifdef RW610
39                           ,
40                           int tlv_idx
41 #endif
42 );
43 t_u16 wlan_11ax_bandconfig_allowed(mlan_private *pmpriv, t_u16 bss_band);
44 mlan_status wlan_11ax_cfg_ioctl(pmlan_adapter pmadapter, pmlan_ioctl_req pioctl_req);
45 mlan_status wlan_11ax_ioctl_cmd(pmlan_adapter pmadapter, pmlan_ioctl_req pioctl_req);
46 int wlan_cmd_11ax_cfg(mlan_private *pmpriv, t_u16 action, mlan_ds_11ax_he_cfg *he_cfg);
47 mlan_status wlan_ret_11ax_cfg(pmlan_private pmpriv, HostCmd_DS_COMMAND *resp, mlan_ds_11ax_he_cfg *hecfg);
48 mlan_status wlan_cmd_11ax_cmd(pmlan_private pmpriv, HostCmd_DS_COMMAND *cmd, t_u16 cmd_action, t_void *pdata_buf);
49 mlan_status wlan_ret_11ax_cmd(pmlan_private pmpriv, HostCmd_DS_COMMAND *resp, mlan_ioctl_req *pioctl_buf);
50 #if CONFIG_11AX_TWT
51 mlan_status wlan_cmd_twt_cfg(pmlan_private pmpriv, HostCmd_DS_COMMAND *cmd, t_u16 cmd_action, t_void *pdata_buf);
52 #endif /* CONFIG_11AX_TWT */
53 #endif /* _MLAN_11AX_H_ */
54 #endif /* CONFIG_11AX */
55