diff --git a/fw/enet.h b/fw/enet.h index 54a561eb1db8..d8f84c595287 100644 --- a/fw/enet.h +++ b/fw/enet.h @@ -92,8 +92,8 @@ typedef PREPACK struct { } POSTPACK vlan_hdr_t; #define ETHERTYPE_IS_EAPOL_WAPI(typeorlen) \ - ((typeorlen) == ETHERTYPE_PAE || \ - (typeorlen) == ETHERTYPE_WAI) + ((typeorlen) == ETHERTYPE_PAE || \ + (typeorlen) == ETHERTYPE_WAI) #define IS_ETHERTYPE(_typeOrLen) ((_typeOrLen) >= 0x0600) @@ -102,11 +102,11 @@ typedef PREPACK struct { #endif #ifndef ETHERTYPE_AARP -#define ETHERTYPE_AARP 0x80f3 /* Internal QCA AARP protocol */ +#define ETHERTYPE_AARP 0x80f3 /* Internal QCA AARP protocol */ #endif #ifndef ETHERTYPE_IPX -#define ETHERTYPE_IPX 0x8137 /* IPX over DIX protocol */ +#define ETHERTYPE_IPX 0x8137 /* IPX over DIX protocol */ #endif #ifndef ETHERTYPE_ARP @@ -133,6 +133,18 @@ typedef PREPACK struct { #define ETHERTYPE_PAE 0x888E /* EAP over LAN (EAPOL) */ #endif + #ifndef EAPOL_KEY_TYPE + #define EAPOL_KEY_TYPE 0x3 /* EAP over LAN (EAPOL) */ + #endif + + #ifndef EAPOL_PAIRKEY + #define EAPOL_PAIRKEY 0x008 + #endif + + #ifndef EAPOL_GRPKEY + #define EAPOL_GRPKEY 0x00 + #endif + #ifndef ETHERTYPE_WAI #define ETHERTYPE_WAI 0x88B4 /* WAPI */ #endif diff --git a/fw/htt.h b/fw/htt.h index 1242e91980aa..58459e69d820 100644 --- a/fw/htt.h +++ b/fw/htt.h @@ -272,9 +272,10 @@ * 3.142 Add T2H GLOBAL_PEER_ID_UNMAP def, update H2T MPDUQ_OR_MSDUQ_INFO def. * 3.143 Add T2H HAPS msg def. * 3.144 Add svc_inst_req_type in htt_h2t_mpduq_or_msduq_info. + * 3.145 Add 3rd bit for rx_hdr_len in RX_RING_SELECTION_CFG */ #define HTT_CURRENT_VERSION_MAJOR 3 -#define HTT_CURRENT_VERSION_MINOR 144 +#define HTT_CURRENT_VERSION_MINOR 145 #define HTT_NUM_TX_FRAG_DESC 1024 @@ -5867,7 +5868,7 @@ enum htt_srng_ring_id { * |-----+--+--+--+--+--+-----------------+----+---+---+---+---------------| * |rsvd1|ED|DT|OV|PS|SS| ring_id | pdev_id | msg_type | * |--------------------------+-----+-----+--------------------------------| - * | rsvd2 |RX|RXHDL| CLD | CLC | CLM | ring_buffer_size | + * |rsvd2|HE|RX|RXHDL| CLD | CLC | CLM | ring_buffer_size | * |-----------------------------------------------------------------------| * | packet_type_enable_flags_0 | * |-----------------------------------------------------------------------| @@ -5901,6 +5902,7 @@ enum htt_srng_ring_id { * CLD = config_length_data * RXHDL = rx_hdr_len * RX = rxpcu_filter_enable_flag + * HE = rx_hdr_len extension * The message is interpreted as follows: * dword0 - b'0:7 - msg_type: This will be set to * 0xc (HTT_H2T_MSG_TYPE_RX_RING_SELECTION_CFG) @@ -5966,7 +5968,18 @@ enum htt_srng_ring_id { * be zero which means allow all frames for MD at RxOLE * host wil fiter out frames. * RxPCU (Filter IN) -> RxOLE (Filter In/Filter Out) - * b'28:31 - rsvd2: Reserved for future use + * b'28 - rx_hdr_len_ext: + * Extend rx_hdr_len to 3 bits with b'28 as MSb. + * Valid combined values: + * 001 - 64bytes + * 010 - 128bytes + * 011 - 256bytes + * 100 - 512bytes + * 101 - 1024bytes + * 110 - 2048bytes + * 111 - max bytes supported by HW + * default - 128 bytes + * b'29:31 - rsvd2: Reserved for future use * dword2 - b'0:31 - packet_type_enable_flags_0: * Enable MGMT packet from 0b0000 to 0b1001 * bits from low to high: FP, MD, MO - 3 bits @@ -6133,7 +6146,8 @@ PREPACK struct htt_rx_ring_selection_cfg_t { config_length_data:3, rx_hdr_len: 2, rxpcu_filter_enable_flag:1, - rsvd2: 4; + rx_hdr_len_ext: 1, + rsvd2: 3; A_UINT32 packet_type_enable_flags_0; A_UINT32 packet_type_enable_flags_1; A_UINT32 packet_type_enable_flags_2; @@ -6335,14 +6349,25 @@ PREPACK struct htt_rx_ring_selection_cfg_t { #define HTT_RX_RING_SELECTION_CFG_RX_HDR_LEN_M 0x06000000 #define HTT_RX_RING_SELECTION_CFG_RX_HDR_LEN_S 25 +#define HTT_RX_RING_SELECTION_CFG_RX_HDR_LEN_EXT_M 0x10000000 +#define HTT_RX_RING_SELECTION_CFG_RX_HDR_LEN_EXT_S 28 +#define HTT_RX_RING_SELECTION_CFG_RX_HDR_LEN_CHK_M 0x7 +#define HTT_RX_RING_SELECTION_CFG_RX_HDR_LEN_CHK_S 0 #define HTT_RX_RING_SELECTION_CFG_RX_HDR_LEN_GET(_var) \ - (((_var) & HTT_RX_RING_SELECTION_CFG_RX_HDR_LEN_M) >> \ - HTT_RX_RING_SELECTION_CFG_RX_HDR_LEN_S) + ((((_var) & HTT_RX_RING_SELECTION_CFG_RX_HDR_LEN_EXT_M) >> \ + (HTT_RX_RING_SELECTION_CFG_RX_HDR_LEN_EXT_S-2)) | \ + (((_var) & HTT_RX_RING_SELECTION_CFG_RX_HDR_LEN_M) >> \ + HTT_RX_RING_SELECTION_CFG_RX_HDR_LEN_S)) #define HTT_RX_RING_SELECTION_CFG_RX_HDR_LEN_SET(_var, _val) \ - do { \ - HTT_CHECK_SET_VAL( HTT_RX_RING_SELECTION_CFG_RX_HDR_LEN, _val); \ - ((_var) |= ((_val) << HTT_RX_RING_SELECTION_CFG_RX_HDR_LEN_S));\ - } while(0) + do { \ + HTT_CHECK_SET_VAL(HTT_RX_RING_SELECTION_CFG_RX_HDR_LEN_CHK, _val); \ + ((_var) |= (((_val) << \ + HTT_RX_RING_SELECTION_CFG_RX_HDR_LEN_S) & \ + HTT_RX_RING_SELECTION_CFG_RX_HDR_LEN_M)); \ + ((_var) |= (((_val) << \ + (HTT_RX_RING_SELECTION_CFG_RX_HDR_LEN_EXT_S-2)) & \ + HTT_RX_RING_SELECTION_CFG_RX_HDR_LEN_EXT_M)); \ + } while(0) #define HTT_RX_RING_SELECTION_CFG_RXPCU_FILTER_M 0x08000000 #define HTT_RX_RING_SELECTION_CFG_RXPCU_FILTER_S 27 diff --git a/fw/htt_stats.h b/fw/htt_stats.h index 9a37c333fcb0..33cef71f72cd 100644 --- a/fw/htt_stats.h +++ b/fw/htt_stats.h @@ -6599,6 +6599,7 @@ typedef struct { #define HTT_TX_PDEV_STATS_NUM_MCS_COUNTERS 12 /* 0-11 */ #define HTT_TX_PDEV_STATS_NUM_EXTRA_MCS_COUNTERS 2 /* 12, 13 */ +#define HTT_TX_PDEV_STATS_NUM_MCS_COUNTERS_EXT 14 /* 0-13 */ #define HTT_TX_PDEV_STATS_NUM_EXTRA2_MCS_COUNTERS 2 /* 14, 15 */ #define HTT_TX_PDEV_STATS_NUM_EXTRA3_MCS_COUNTERS 4 /* 1.1, 3.1, 4.1, 7.1 */ #define HTT_TX_PDEV_STATS_NUM_GI_COUNTERS 4 diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index 8024d8896a58..8400b6e72d96 100644 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -1514,7 +1514,7 @@ typedef enum { WMITLV_TAG_STRUC_wmi_vdev_tpc_ie_power_event_fixed_param, WMITLV_TAG_STRUC_wmi_pdev_coex_stats, WMITLV_TAG_STRUC_wmi_vdev_traffic_monitoring_cmd_fixed_param, - WMITLV_TAG_STRUC_wmi_energy_mgmt_dps_assisting_role_config_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_vdev_energy_mgmt_dps_assisting_role_config_cmd_fixed_param, WMITLV_TAG_STRUC_WMI_MAC_PHY_CAPABILITIES_EXT2, WMITLV_TAG_STRUC_wmi_peer_assoc_cfp_params, WMITLV_TAG_STRUC_wmi_pdev_set_tx_chainmask_comp_event_fixed_param, @@ -2096,7 +2096,7 @@ typedef enum { OP(WMI_VDEV_GET_TPC_IE_POWER_CMDID) \ OP(WMI_PEER_ASSOC_V2_CMDID) \ OP(WMI_VDEV_TRAFFIC_MONITORING_CMDID) \ - OP(WMI_ENERGY_MGMT_DPS_ASSISTING_ROLE_CONFIG_CMDID) \ + OP(WMI_VDEV_ENERGY_MGMT_DPS_ASSISTING_ROLE_CONFIG_CMDID) \ /* add new CMD_LIST elements above this line */ @@ -5931,9 +5931,9 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_MULTI_VDEV_GET_AC_QUEUE_DEPTH_CMDID); WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_TRAFFIC_MONITORING_CMDID); /* WMI command to control Dynamic Power Save - AP Assisting role config */ -#define WMITLV_TABLE_WMI_ENERGY_MGMT_DPS_ASSISTING_ROLE_CONFIG_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_energy_mgmt_dps_assisting_role_config_cmd_fixed_param, wmi_energy_mgmt_dps_assisting_role_config_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) -WMITLV_CREATE_PARAM_STRUC(WMI_ENERGY_MGMT_DPS_ASSISTING_ROLE_CONFIG_CMDID); +#define WMITLV_TABLE_WMI_VDEV_ENERGY_MGMT_DPS_ASSISTING_ROLE_CONFIG_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_energy_mgmt_dps_assisting_role_config_cmd_fixed_param, wmi_vdev_energy_mgmt_dps_assisting_role_config_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_ENERGY_MGMT_DPS_ASSISTING_ROLE_CONFIG_CMDID); diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index fc5cf6f504bb..cec5f724d7cf 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -741,6 +741,9 @@ typedef enum { /** data traffic monitoring */ WMI_VDEV_TRAFFIC_MONITORING_CMDID, + /** WMI cmd used to control DPS Assisting AP role config */ + WMI_VDEV_ENERGY_MGMT_DPS_ASSISTING_ROLE_CONFIG_CMDID, + /* peer specific commands */ /** create a peer */ @@ -1769,8 +1772,6 @@ typedef enum { WMI_ENERGY_MGMT_PUO_CONFIG_CMDID, /** WMI cmd used to control ECO mode config */ WMI_ENERGY_MGMT_ECO_MODE_CONFIG_CMDID, - /** WMI cmd used to control DPS Assisting AP role config */ - WMI_ENERGY_MGMT_DPS_ASSISTING_ROLE_CONFIG_CMDID, } WMI_CMD_ID; typedef enum { @@ -19819,10 +19820,15 @@ typedef enum { WMI_VDEV_PARAM_CCK_SUPPORT, /* 0xCB */ /* - * value 0 | disable dynamic D-SMPS base on RSSI feature - * value 1 | enable dynamic D-SMPS base on RSSI feature + * BIT 0: + * value 0 | disable D-SMPS + * value 1 | enable D-SMPS + * BIT 1: + * value 0 | disable dynamic D-SMPS base on RSSI feature + * value 1 | enable dynamic D-SMPS base on RSSI feature */ - WMI_VDEV_PARAM_ENABLE_DYN_DSMPS_BASE_ON_RSSI, /* 0xCC */ + WMI_VDEV_PARAM_DSMPS_CONTROL, /* 0xCC */ + /*=== ADD NEW VDEV PARAM TYPES ABOVE THIS LINE === @@ -19995,7 +20001,10 @@ typedef enum { * 0 - Disable RTT Bandwidth downgrade * 1 - Enable RTT Bandwidth downgrade */ - WMI_VDEV_PARAM_ENABLE_DISABLE_RTT_BW_DOWNGRADE, /* 0x8014 */ + WMI_VDEV_PARAM_ENABLE_DISABLE_RTT_BW_DOWNGRADE,/* 0x8014 */ + + /* customized txop for vendor configuration in unit of us */ + WMI_VDEV_PARAM_SU_TXOP_BURST_LIMIT_US, /* 0x8015 */ /*=== END VDEV_PARAM_PROTOTYPE SECTION ===*/ } WMI_VDEV_PARAM; @@ -21969,6 +21978,8 @@ typedef struct { */ #define WMI_PEER_PARAM_UNSOL_PROBE_RESP_INTVL 0x2C +#define WMI_PEER_PARAM_SET_MESH_NODE 0x2D +#define WMI_PEER_PARAM_SET_QUALCOMM_NODE 0x2E typedef struct { A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_set_param_cmd_fixed_param */ @@ -40225,7 +40236,7 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command) WMI_RETURN_STRING(WMI_PEER_TID_RATE_CUSTOM_CMDID); WMI_RETURN_STRING(WMI_VDEV_GET_TPC_IE_POWER_CMDID); WMI_RETURN_STRING(WMI_VDEV_TRAFFIC_MONITORING_CMDID); - WMI_RETURN_STRING(WMI_ENERGY_MGMT_DPS_ASSISTING_ROLE_CONFIG_CMDID); + WMI_RETURN_STRING(WMI_VDEV_ENERGY_MGMT_DPS_ASSISTING_ROLE_CONFIG_CMDID); } return (A_UINT8 *) "Invalid WMI cmd"; @@ -52341,11 +52352,13 @@ typedef enum { typedef struct { /** TLV tag and len; tag equals - * WMITLV_TAG_STRUC_wmi_energy_mgmt_dps_assisting_role_config_cmd_fixed_param */ + * WMITLV_TAG_STRUC_wmi_vdev_energy_mgmt_dps_assisting_role_config_cmd_fixed_param */ A_UINT32 tlv_header; + /* VDEV identifier */ + A_UINT32 vdev_id; /** holds a wmi_dps_assisting_role_e value */ A_UINT32 config; -} wmi_energy_mgmt_dps_assisting_role_config_cmd_fixed_param; +} wmi_vdev_energy_mgmt_dps_assisting_role_config_cmd_fixed_param; diff --git a/fw/wmi_version.h b/fw/wmi_version.h index e1156570d2a4..813ee2fa93d7 100644 --- a/fw/wmi_version.h +++ b/fw/wmi_version.h @@ -37,7 +37,7 @@ #define __WMI_VER_MINOR_ 0 /** WMI revision number has to be incremented when there is a * change that may or may not break compatibility. */ -#define __WMI_REVISION_ 1664 +#define __WMI_REVISION_ 1668 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work