diff --git a/fw/htt.h b/fw/htt.h index 4f3e66fa3b55..bb3c1bb2248a 100644 --- a/fw/htt.h +++ b/fw/htt.h @@ -803,6 +803,8 @@ typedef enum { HTT_STATS_MLO_UMAC_SSR_HANDSHAKE_TAG = 185, /* htt_mlo_umac_htt_handshake_stats_tlv */ HTT_STATS_MLO_UMAC_SSR_MLO_TAG = 186, /* htt_mlo_umac_ssr_mlo_stats_tlv */ HTT_STATS_PDEV_TDMA_TAG = 187, /* htt_pdev_tdma_stats_tlv */ + HTT_STATS_CODEL_SVC_CLASS_TAG = 188, /* htt_codel_svc_class_stats_tlv */ + HTT_STATS_CODEL_MSDUQ_TAG = 189, /* htt_codel_msduq_stats_tlv */ HTT_STATS_MAX_TAG, @@ -10774,7 +10776,7 @@ enum htt_t2h_msg_type { HTT_T2H_MSG_TYPE_RX_ADDBA_EXTN = 0x31, HTT_T2H_MSG_TYPE_RX_DELBA_EXTN = 0x32, HTT_T2H_MSG_TYPE_RX_CCE_SUPER_RULE_SETUP_DONE = 0x33, - HTT_T2H_CODEL_MSDUQ_LATENCIES_ARRAY_CFG_IND = 0x34, + HTT_T2H_CODEL_MSDUQ_LATENCIES_ARRAY_CFG_IND = 0x34, /* DEPRECATED */ HTT_T2H_MSG_TYPE_RX_DATA_IND = 0x35, HTT_T2H_MSG_TYPE_SOFT_UMAC_TX_COMPL_IND = 0x36, HTT_T2H_MSG_TYPE_PRIMARY_LINK_PEER_MIGRATE_IND = 0x37, @@ -21075,6 +21077,8 @@ PREPACK struct htt_rx_cce_super_rule_setup_done_t { } while (0) /** + * THE BELOW MESSAGE HAS BEEN DEPRECATED + *====================================== * @brief target -> host CoDel MSDU queue latencies array configuration * * MSG_TYPE => HTT_T2H_CODEL_MSDUQ_LATENCIES_ARRAY_CFG_IND @@ -21125,7 +21129,7 @@ typedef struct { num_elem: 16; /* bits 31:16 */ A_UINT32 paddr_low; A_UINT32 paddr_high; -} htt_t2h_codel_msduq_latencies_array_cfg_int_t; +} htt_t2h_codel_msduq_latencies_array_cfg_int_t; /* DEPRECATED */ #define HTT_T2H_CODEL_MSDUQ_LATENCIES_ARRAY_CFG_SIZE 12 /* bytes */ diff --git a/fw/htt_stats.h b/fw/htt_stats.h index 145d380981b2..11e67bc1ff6a 100644 --- a/fw/htt_stats.h +++ b/fw/htt_stats.h @@ -546,6 +546,15 @@ enum htt_dbg_ext_stats_type { */ HTT_DBG_PDEV_TDMA_STATS = 57, + /** HTT_DBG_CODEL_STATS + * PARAMS: + * - No Params + * RESP MSG: + * - htt_codel_svc_class_stats_tlv + * - htt_codel_msduq_stats_tlv + */ + HTT_DBG_CODEL_STATS = 58, + /* keep this last */ HTT_DBG_NUM_EXT_STATS = 256, @@ -9550,5 +9559,92 @@ typedef struct { htt_umac_ssr_stats_t stats; } htt_umac_ssr_stats_tlv; +typedef struct { + htt_tlv_hdr_t tlv_hdr; + A_UINT32 svc_class_id; + /* codel_drops: + * How many times have MSDU queues belonging to this service class + * dropped their head MSDU due to the queue's latency being above + * the CoDel latency limit specified for the service class throughout + * the full CoDel latency statistics collection window. + */ + A_UINT32 codel_drops; + /* codel_no_drops: + * How many times have MSDU queues belonging to this service class + * completed a CoDel latency statistics collection window and + * concluded that no head MSDU drop is needed, due to the MSDU queue's + * latency being under the limit specified for the service class at + * some point during the window. + */ + A_UINT32 codel_no_drops; +} htt_codel_svc_class_stats_tlv; + +#define HTT_CODEL_MSDUQ_STATS_TX_FLOW_NUM_M 0x0000FFFF +#define HTT_CODEL_MSDUQ_STATS_TX_FLOW_NUM_S 0 + +#define HTT_CODEL_MSDUQ_STATS_TX_FLOW_NUM_GET(_var) \ + (((_var) & HTT_CODEL_MSDUQ_STATS_TX_FLOW_NUM_M) >> \ + HTT_CODEL_MSDUQ_STATS_TX_FLOW_NUM_S) +#define HTT_CODEL_MSDUQ_STATS_TX_FLOW_NUM_SET(_var, _val) \ + do { \ + HTT_CHECK_SET_VAL(HTT_CODEL_MSDUQ_STATS_TX_FLOW_NUM, _val); \ + ((_var) |= ((_val) << HTT_CODEL_MSDUQ_STATS_TX_FLOW_NUM_S)); \ + } while (0) + +#define HTT_CODEL_MSDUQ_STATS_SVC_CLASS_ID_M 0x00FF0000 +#define HTT_CODEL_MSDUQ_STATS_SVC_CLASS_ID_S 16 + +#define HTT_CODEL_MSDUQ_STATS_SVC_CLASS_ID_GET(_var) \ + (((_var) & HTT_CODEL_MSDUQ_STATS_SVC_CLASS_ID_M) >> \ + HTT_CODEL_MSDUQ_STATS_SVC_CLASS_ID_S) +#define HTT_CODEL_MSDUQ_STATS_SVC_CLASS_ID_SET(_var, _val) \ + do { \ + HTT_CHECK_SET_VAL(HTT_CODEL_MSDUQ_STATS_SVC_CLASS_ID, _val); \ + ((_var) |= ((_val) << HTT_CODEL_MSDUQ_STATS_SVC_CLASS_ID_S)); \ + } while (0) + +#define HTT_CODEL_MSDUQ_STATS_DROPS_M 0x0000FFFF +#define HTT_CODEL_MSDUQ_STATS_DROPS_S 0 + +#define HTT_CODEL_MSDUQ_STATS_DROPS_GET(_var) \ + (((_var) & HTT_CODEL_MSDUQ_STATS_DROPS_M) >> \ + HTT_CODEL_MSDUQ_STATS_DROPS_S) +#define HTT_CODEL_MSDUQ_STATS_DROPS_SET(_var, _val) \ + do { \ + HTT_CHECK_SET_VAL(HTT_CODEL_MSDUQ_STATS_DROPS, _val); \ + ((_var) |= ((_val) << HTT_CODEL_MSDUQ_STATS_DROPS_S)); \ + } while (0) + +#define HTT_CODEL_MSDUQ_STATS_NO_DROPS_M 0xFFFF0000 +#define HTT_CODEL_MSDUQ_STATS_NO_DROPS_S 16 + +#define HTT_CODEL_MSDUQ_STATS_NO_DROPS_GET(_var) \ + (((_var) & HTT_CODEL_MSDUQ_STATS_NO_DROPS_M) >> \ + HTT_CODEL_MSDUQ_STATS_NO_DROPS_S) +#define HTT_CODEL_MSDUQ_STATS_NO_DROPS_SET(_var, _val) \ + do { \ + HTT_CHECK_SET_VAL(HTT_CODEL_MSDUQ_STATS_NO_DROPS, _val); \ + ((_var) |= ((_val) << HTT_CODEL_MSDUQ_STATS_NO_DROPS_S)); \ + } while (0) + +typedef struct { + htt_tlv_hdr_t tlv_hdr; + union { + A_UINT32 id__word; + struct { + A_UINT32 tx_flow_num: 16, /* FW's MSDU queue ID */ + svc_class_id: 8, + reserved: 8; + }; + }; + union { + A_UINT32 stats__word; + struct { + A_UINT32 + codel_drops: 16, + codel_no_drops: 16; + }; + }; +} htt_codel_msduq_stats_tlv; #endif /* __HTT_STATS_H__ */ diff --git a/fw/wlan_defs.h b/fw/wlan_defs.h index 0686917aced3..5024efe702ff 100755 --- a/fw/wlan_defs.h +++ b/fw/wlan_defs.h @@ -1849,5 +1849,12 @@ typedef struct { A_COMPILE_TIME_ASSERT(check_mlo_glb_h_shmem_8byte_size_quantum, (((sizeof(mlo_glb_h_shmem) % sizeof(A_UINT64) == 0x0)))); +/** 2 word representation of MAC addr */ +typedef struct _wmi_mac_addr { + /** upper 4 bytes of MAC address */ + A_UINT32 mac_addr31to0; + /** lower 2 bytes of MAC address */ + A_UINT32 mac_addr47to32; +} wmi_mac_addr; #endif /* __WLANDEFS_H__ */ diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index 409ac89f6d84..747eeed5ffa5 100644 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -2221,6 +2221,7 @@ typedef enum { OP(WMI_VENDOR_VDEV_EVENTID) \ OP(WMI_VENDOR_PEER_EVENTID) \ OP(WMI_PDEV_SET_RF_PATH_RESP_EVENTID) \ + OP(WMI_ROAM_SYNCH_KEY_EVENTID) \ /* add new EVT_LIST elements above this line */ @@ -5394,13 +5395,16 @@ WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_PAUSE_CMDID); /* pdev,vdev,peer cmd messages for tunneling vendor-specific contents */ #define WMITLV_TABLE_WMI_VENDOR_PDEV_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_vendor_cmd_fixed_param, wmi_pdev_vendor_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_vendor_cmd_fixed_param, wmi_pdev_vendor_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, opaque_vendor_var_len_data, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_VENDOR_PDEV_CMDID); #define WMITLV_TABLE_WMI_VENDOR_VDEV_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_vendor_cmd_fixed_param, wmi_vdev_vendor_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_vendor_cmd_fixed_param, wmi_vdev_vendor_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, opaque_vendor_var_len_data, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_VENDOR_VDEV_CMDID); #define WMITLV_TABLE_WMI_VENDOR_PEER_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_vendor_cmd_fixed_param, wmi_peer_vendor_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_vendor_cmd_fixed_param, wmi_peer_vendor_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, opaque_vendor_var_len_data, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_VENDOR_PEER_CMDID); /* SET MLO link BSS param */ @@ -5758,6 +5762,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_EVENTID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_pdev_band_to_mac, mac_freq_mapping, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_SYNCH_EVENTID); +/* Roam Synch key Event */ +#define WMITLV_TABLE_WMI_ROAM_SYNCH_KEY_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_roam_ml_key_material_param, ml_key_material, WMITLV_SIZE_VAR) +WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_SYNCH_KEY_EVENTID); + /* Roam Synch frame Event */ #define WMITLV_TABLE_WMI_ROAM_SYNCH_FRAME_EVENTID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_roam_synch_frame_event_fixed_param, wmi_roam_synch_frame_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ @@ -7351,13 +7360,16 @@ WMITLV_CREATE_PARAM_STRUC(WMI_MLO_LINK_DISABLE_REQUEST_EVENTID); /* pdev,vdev,peer event messages for tunneling vendor-specific contents */ #define WMITLV_TABLE_WMI_VENDOR_PDEV_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_vendor_event_fixed_param, wmi_pdev_vendor_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_vendor_event_fixed_param, wmi_pdev_vendor_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, opaque_vendor_var_len_data, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_VENDOR_PDEV_EVENTID); #define WMITLV_TABLE_WMI_VENDOR_VDEV_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_vendor_event_fixed_param, wmi_vdev_vendor_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_vendor_event_fixed_param, wmi_vdev_vendor_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, opaque_vendor_var_len_data, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_VENDOR_VDEV_EVENTID); #define WMITLV_TABLE_WMI_VENDOR_PEER_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_vendor_event_fixed_param, wmi_peer_vendor_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_vendor_event_fixed_param, wmi_peer_vendor_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, opaque_vendor_var_len_data, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_VENDOR_PEER_EVENTID); /* link switch event */ diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index 43a7f1160145..a1b39b272295 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -198,14 +198,6 @@ static INLINE void wmi_packed_arr_set_bits(A_UINT32 *arr, A_UINT32 entry_index, ((val & (((A_UINT32) 1 << bits_per_entry) - 1)) << start_bit_in_uint); } -/** 2 word representation of MAC addr */ -typedef struct _wmi_mac_addr { - /** upper 4 bytes of MAC address */ - A_UINT32 mac_addr31to0; - /** lower 2 bytes of MAC address */ - A_UINT32 mac_addr47to32; -} wmi_mac_addr; - /** macro to convert MAC address from WMI word format to char array */ #define WMI_MAC_ADDR_TO_CHAR_ARRAY(pwmi_mac_addr,c_macaddr) do { \ (c_macaddr)[0] = (((pwmi_mac_addr)->mac_addr31to0) >> 0) & 0xff; \ @@ -1982,6 +1974,8 @@ typedef enum { WMI_ROAM_FRAME_EVENTID, /** Send firmware ini value corresponding to param_id */ WMI_ROAM_GET_VENDOR_CONTROL_PARAM_EVENTID, + /** roam synch key event */ + WMI_ROAM_SYNCH_KEY_EVENTID, /** P2P disc found */ WMI_P2P_DISC_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_P2P), @@ -3344,6 +3338,11 @@ typedef struct { #define WMI_TARGET_CAP_CONCURRENCE_SUPPORT_SET(target_cap_flags, value) \ WMI_SET_BITS(target_cap_flags, 11, 2, value) +#define WMI_TARGET_CAP_MULTIPASS_SAP_SUPPORT_GET(target_cap_flags) \ + WMI_GET_BITS(target_cap_flags, 13, 1) +#define WMI_TARGET_CAP_MULTIPASS_SAP_SUPPORT_SET(target_cap_flags, value) \ + WMI_SET_BITS(target_cap_flags, 13, 1, value) + /* * wmi_htt_msdu_idx_to_htt_msdu_qtype GET/SET APIs */ @@ -3486,7 +3485,8 @@ typedef struct { * Bits 12:11 concurrence support capability * Bit11 - [ML-STA + SL-STA] 0: not supported; 1:supported * Bit12 - [ML-STA + SL-SAP] 0: not supported; 1:supported - * Bits 31:13 - Reserved + * Bit 13 - Support for multipass SAP + * Bits 31:14 - Reserved */ A_UINT32 target_cap_flags; @@ -6225,6 +6225,7 @@ typedef struct { */ A_UINT32 flags; wmi_mac_addr link_addr; /* link address */ + wmi_mac_addr self_link_addr; /* self-link address */ } wmi_roam_ml_setup_links_param; /* @@ -17915,7 +17916,9 @@ typedef enum { * bit 0: URNM_MFPR in RSNXE * bit 1: MFPC in RSN CAP * bit 2: MFPR in RSN CAP - * bit 31:3 Reserved + * bit 3: URNM_MFPR_X20 in RSNXE + * bit 4: RSTA_EXTCAP_I2R_LMR_FB + * bit 31:5 Reserved */ WMI_VDEV_PARAM_11AZ_SECURITY_CONFIG, /* 0xAB */ @@ -17981,6 +17984,24 @@ typedef enum { */ WMI_VDEV_PARAM_CHWIDTH_WITH_NOTIFY, /* 0xBA */ + /* + * Min time between measurment for 11AZ NTB ranging + * in units of 100 microseconds + */ + WMI_VDEV_PARAM_RTT_11AZ_NTB_MIN_TIME_BW_MEAS, /* 0xBB */ + + /* + * Max time between measurment for 11AZ NTB ranging + * in units of 10 milliseconds + */ + WMI_VDEV_PARAM_RTT_11AZ_NTB_MAX_TIME_BW_MEAS, /* 0xBC */ + + /* + * Max session expiry for 11AZ TB ranging. + * Session expiry value is computed as 2^(Max Session Exp + 8) ms. + */ + WMI_VDEV_PARAM_RTT_11AZ_TB_MAX_SESSION_EXPIRY, /* 0xBD */ + /*=== ADD NEW VDEV PARAM TYPES ABOVE THIS LINE === * The below vdev param types are used for prototyping, and are @@ -24495,6 +24516,13 @@ typedef struct { A_UINT32 key_cipher; A_UINT8 pn[WMI_MAX_PN_LEN]; A_UINT8 key_buff[WMI_MAX_KEY_LEN]; + /* + * When link_id is 0xf, this field will be MLD address. + * Otherwise, it will be bssid which specified with link_id. + */ + wmi_mac_addr mac_addr; + A_UINT32 key_len; /* number of valid bytes within key_buff */ + A_UINT32 key_flags; } wmi_roam_ml_key_material_param; typedef struct { @@ -36697,6 +36725,11 @@ typedef struct { bits 15:1 - reserved bits 31:16 - maximum PSD EIRP (dB/MHz) */ +/* + * NOTE: no further fields can be added into this struct, due to + * message buffer size limitations in certain targets for the + * WMI_REG_CHAN_LIST_CC_EXT_EVENT message. + */ } wmi_regulatory_rule_ext_struct; #define WMI_REG_CHAN_PRIORITY_FREQ_GET(freq_info) WMI_GET_BITS(freq_info, 0, 16) @@ -36711,6 +36744,11 @@ typedef struct { * the frequencies below this value will be de-prioritized. * bits 31:16 = reserved for future */ +/* + * NOTE: no further fields can be added into this struct, due to + * message buffer size limitations in certain targets for the + * WMI_REG_CHAN_LIST_CC_EXT_EVENT message. + */ } wmi_regulatory_chan_priority_struct; #define WMI_REG_FCC_RULE_CHAN_FREQ_GET(freq_info) WMI_GET_BITS(freq_info, 0, 16) @@ -36726,6 +36764,11 @@ typedef struct { * bits 23:16 = u8 FCC_Tx_power (dBm units) * bits 31:24 = u8 reserved for future */ +/* + * NOTE: no further fields can be added into this struct, due to + * message buffer size limitations in certain targets for the + * WMI_REG_CHAN_LIST_CC_EXT_EVENT message. + */ } wmi_regulatory_fcc_rule_struct; typedef enum { @@ -36832,6 +36875,11 @@ typedef struct { A_UINT32 num_6g_reg_rules_client_sp[WMI_REG_CLIENT_MAX]; A_UINT32 num_6g_reg_rules_client_lpi[WMI_REG_CLIENT_MAX]; A_UINT32 num_6g_reg_rules_client_vlp[WMI_REG_CLIENT_MAX]; +/* + * NOTE: no further fields can be added into this struct, due to + * message buffer size limitations in certain targets for the + * WMI_REG_CHAN_LIST_CC_EXT_EVENT message. + */ /* * This fixed_param TLV is followed by the following TLVs: * - wmi_regulatory_rule_ext reg_rule_array[] struct TLV array. @@ -39623,6 +39671,7 @@ typedef struct { * Bit 2: 6G band support if 1 */ A_UINT32 support_link_band; /* Configure the band bitmap of mlo connection supports. */ + A_UINT32 max_active_links; /* Max active links supported for STA */ } wmi_roam_mlo_config_cmd_fixed_param; typedef struct { @@ -43503,6 +43552,13 @@ typedef struct wmi_pdev_vendor_event * because their offsets within wmi_pdev_vendor_event_fixed_param * would change, causing backwards incompatibilities. */ +/* + * This fixed_param TLV may be followed by the below TLVs: + * - A_UINT32 opaque_vendor_var_len_data[]: + * Variable-length array of opaque data. + * The _fixed_param.sub_type value clarifies how to interpret the + * contents of this opaque data. + */ } wmi_pdev_vendor_event_fixed_param; typedef wmi_pdev_vendor_event_fixed_param wmi_vendor_pdev_event_fixed_param; @@ -43523,6 +43579,13 @@ typedef struct wmi_vdev_vendor_event * because their offsets within wmi_vdev_vendor_event_fixed_param * would change, causing backwards incompatibilities. */ +/* + * This fixed_param TLV may be followed by the below TLVs: + * - A_UINT32 opaque_vendor_var_len_data[]: + * Variable-length array of opaque data. + * The _fixed_param.sub_type value clarifies how to interpret the + * contents of this opaque data. + */ } wmi_vdev_vendor_event_fixed_param; typedef wmi_vdev_vendor_event_fixed_param wmi_vendor_vdev_event_fixed_param; @@ -43545,6 +43608,13 @@ typedef struct wmi_peer_vendor_event * because their offsets within wmi_peer_vendor_event_fixed_param * would change, causing backwards incompatibilities. */ +/* + * This fixed_param TLV may be followed by the below TLVs: + * - A_UINT32 opaque_vendor_var_len_data[]: + * Variable-length array of opaque data. + * The _fixed_param.sub_type value clarifies how to interpret the + * contents of this opaque data. + */ } wmi_peer_vendor_event_fixed_param; typedef wmi_peer_vendor_event_fixed_param wmi_vendor_peer_event_fixed_param; @@ -43563,6 +43633,13 @@ typedef struct wmi_pdev_vendor_cmd * because their offsets within wmi_pdev_vendor_cmd_fixed_param * would change, causing backwards incompatibilities. */ +/* + * This fixed_param TLV may be followed by the below TLVs: + * - A_UINT32 opaque_vendor_var_len_data[]: + * Variable-length array of opaque data. + * The _fixed_param.sub_type value clarifies how to interpret the + * contents of this opaque data. + */ } wmi_pdev_vendor_cmd_fixed_param; typedef wmi_pdev_vendor_cmd_fixed_param wmi_vendor_pdev_cmd_fixed_param; @@ -43583,6 +43660,13 @@ typedef struct wmi_vdev_vendor_cmd * because their offsets within wmi_vdev_vendor_cmd_fixed_param * would change, causing backwards incompatibilities. */ +/* + * This fixed_param TLV may be followed by the below TLVs: + * - A_UINT32 opaque_vendor_var_len_data[]: + * Variable-length array of opaque data. + * The _fixed_param.sub_type value clarifies how to interpret the + * contents of this opaque data. + */ } wmi_vdev_vendor_cmd_fixed_param; typedef wmi_vdev_vendor_cmd_fixed_param wmi_vendor_vdev_cmd_fixed_param; @@ -43605,6 +43689,13 @@ typedef struct wmi_peer_vendor_cmd * because their offsets within wmi_peer_vendor_cmd_fixed_param * would change, causing backwards incompatibilities. */ +/* + * This fixed_param TLV may be followed by the below TLVs: + * - A_UINT32 opaque_vendor_var_len_data[]: + * Variable-length array of opaque data. + * The _fixed_param.sub_type value clarifies how to interpret the + * contents of this opaque data. + */ } wmi_peer_vendor_cmd_fixed_param; typedef wmi_peer_vendor_cmd_fixed_param wmi_vendor_peer_cmd_fixed_param; @@ -43758,6 +43849,13 @@ typedef struct { A_UINT32 pdev_id; /** Return status. 0 for success, non-zero otherwise */ A_UINT32 status; + /** max_ml_peer_ids: + * Max number of ml_peerids across the SOC, Derived as + * max_mlo_peer * num chips. + * (Max_mlo_peer and num_chips are provided by Host Platform + * in QMI exchange). + */ + A_UINT32 max_ml_peer_ids; } wmi_mlo_setup_complete_event_fixed_param; typedef struct { @@ -44378,6 +44476,13 @@ typedef struct { A_UINT32 vdev_id; /** Average RSSI value of Data Frames */ A_INT32 avg_rssi_data_dbm; + /** rx_vht_sgi: + * Short guard interval state of Data frames obtaining from rx PPDU TLV + * of VHTSIGA buf. + * 0: Default (No sgi set) + * 1: sgi set + */ + A_UINT32 rx_vht_sgi; } wmi_vdev_smart_monitor_event_fixed_param; typedef struct { diff --git a/fw/wmi_version.h b/fw/wmi_version.h index acaf43729fa4..58f77b5adf5f 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_ 1336 +#define __WMI_REVISION_ 1343 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work