Loading fw/htt.h +65 −1 Original line number Diff line number Diff line Loading @@ -234,9 +234,10 @@ * 3.107 Add traffic_end_indication bitfield in htt_tx_msdu_desc_ext2_t. * 3.108 Add HTT_H2T_MSG_TYPE_UMAC_HANG_RECOVERY_PREREQUISITE_SETUP def. * 3.109 Add HTT_T2H RX_ADDBA_EXTN,RX_DELBA_EXTN defs. * 3.110 Add more word_mask fields in htt_tx_monitor_cfg_t. */ #define HTT_CURRENT_VERSION_MAJOR 3 #define HTT_CURRENT_VERSION_MINOR 109 #define HTT_CURRENT_VERSION_MINOR 110 #define HTT_NUM_TX_FRAG_DESC 1024 Loading Loading @@ -760,6 +761,7 @@ typedef enum { HTT_STATS_LATENCY_PROF_CAL_STATS_TAG = 168, /* htt_latency_prof_cal_stats_tlv */ HTT_STATS_TX_PDEV_MUEDCA_PARAMS_STATS_TAG = 169, /* htt_tx_pdev_muedca_params_stats_tlv_v */ HTT_STATS_PDEV_BW_MGR_STATS_TAG = 170, /* htt_pdev_bw_mgr_stats_tlv */ HTT_STATS_TX_PDEV_AP_EDCA_PARAMS_STATS_TAG = 171, /* htt_tx_pdev_ap_edca_params_stats_tlv_v */ HTT_STATS_MAX_TAG, Loading Loading @@ -6961,6 +6963,13 @@ PREPACK struct htt_tx_monitor_cfg_t { dma_mpdu_ctrl: 1, dma_mpdu_data: 1, rsvd4: 10; A_UINT32 tx_queue_ext_v2_word_mask: 12, tx_peer_entry_v2_word_mask: 12, rsvd5: 10; A_UINT32 fes_status_end_word_mask: 16, response_end_status_word_mask: 16; A_UINT32 fes_status_prot_word_mask: 11, rsvd6: 21; } POSTPACK; #define HTT_TX_MONITOR_CFG_SZ (sizeof(struct htt_tx_monitor_cfg_t)) Loading Loading @@ -7339,6 +7348,61 @@ PREPACK struct htt_tx_monitor_cfg_t { ((_var) |= ((_val) << HTT_TX_MONITOR_CFG_DMA_MPDU_DATA_S)); \ } while (0) #define HTT_TX_MONITOR_CFG_TX_QUEUE_EXT_V2_WORD_MASK_M 0x00000fff #define HTT_TX_MONITOR_CFG_TX_QUEUE_EXT_V2_WORD_MASK_S 0 #define HTT_TX_MONITOR_CFG_TX_QUEUE_EXT_V2_WORD_MASK_GET(_var) \ (((_var) & HTT_TX_MONITOR_CFG_TX_QUEUE_EXT_V2_WORD_MASK_M) >> \ HTT_TX_MONITOR_CFG_TX_QUEUE_EXT_V2_WORD_MASK_S) #define HTT_TX_MONITOR_CFG_TX_QUEUE_EXT_V2_WORD_MASK_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_TX_MONITOR_CFG_TX_QUEUE_EXT_V2_WORD_MASK, _val); \ ((_var) |= ((_val) << HTT_TX_MONITOR_CFG_TX_QUEUE_EXT_V2_WORD_MASK_S)); \ } while (0) #define HTT_TX_MONITOR_CFG_TX_PEER_ENTRY_V2_WORD_MASK_M 0x00fff000 #define HTT_TX_MONITOR_CFG_TX_PEER_ENTRY_V2_WORD_MASK_S 12 #define HTT_TX_MONITOR_CFG_TX_PEER_ENTRY_V2_WORD_MASK_GET(_var) \ (((_var) & HTT_TX_MONITOR_CFG_TX_PEER_ENTRY_V2_WORD_MASK_M) >> \ HTT_TX_MONITOR_CFG_TX_PEER_ENTRY_V2_WORD_MASK_S) #define HTT_TX_MONITOR_CFG_TX_PEER_ENTRY_V2_WORD_MASK_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_TX_MONITOR_CFG_TX_PEER_ENTRY_V2_WORD_MASK, _val); \ ((_var) |= ((_val) << HTT_TX_MONITOR_CFG_TX_PEER_ENTRY_V2_WORD_MASK_S)); \ } while (0) #define HTT_TX_MONITOR_CFG_FES_STATUS_END_WORD_MASK_M 0x0000ffff #define HTT_TX_MONITOR_CFG_FES_STATUS_END_WORD_MASK_S 0 #define HTT_TX_MONITOR_CFG_FES_STATUS_END_WORD_MASK_GET(_var) \ (((_var) & HTT_TX_MONITOR_CFG_FES_STATUS_END_WORD_MASK_M) >> \ HTT_TX_MONITOR_CFG_FES_STATUS_END_WORD_MASK_S) #define HTT_TX_MONITOR_CFG_FES_STATUS_END_WORD_MASK_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_TX_MONITOR_CFG_FES_STATUS_END_WORD_MASK, _val); \ ((_var) |= ((_val) << HTT_TX_MONITOR_CFG_FES_STATUS_END_WORD_MASK_S)); \ } while (0) #define HTT_TX_MONITOR_CFG_RESPONSE_END_STATUS_WORD_MASK_M 0xffff0000 #define HTT_TX_MONITOR_CFG_RESPONSE_END_STATUS_WORD_MASK_S 16 #define HTT_TX_MONITOR_CFG_RESPONSE_END_STATUS_WORD_MASK_GET(_var) \ (((_var) & HTT_TX_MONITOR_CFG_RESPONSE_END_STATUS_WORD_MASK_M) >> \ HTT_TX_MONITOR_CFG_RESPONSE_END_STATUS_WORD_MASK_S) #define HTT_TX_MONITOR_CFG_RESPONSE_END_STATUS_WORD_MASK_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_TX_MONITOR_CFG_RESPONSE_END_STATUS_WORD_MASK, _val); \ ((_var) |= ((_val) << HTT_TX_MONITOR_CFG_RESPONSE_END_STATUS_WORD_MASK_S)); \ } while (0) #define HTT_TX_MONITOR_CFG_FES_STATUS_PROT_WORD_MASK_M 0x000007ff #define HTT_TX_MONITOR_CFG_FES_STATUS_PROT_WORD_MASK_S 0 #define HTT_TX_MONITOR_CFG_FES_STATUS_PROT_WORD_MASK_GET(_var) \ (((_var) & HTT_TX_MONITOR_CFG_FES_STATUS_PROT_WORD_MASK_M) >> \ HTT_TX_MONITOR_CFG_FES_STATUS_PROT_WORD_MASK_S) #define HTT_TX_MONITOR_CFG_FES_STATUS_PROT_WORD_MASK_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_TX_MONITOR_CFG_FES_STATUS_PROT_WORD_MASK, _val); \ ((_var) |= ((_val) << HTT_TX_MONITOR_CFG_FES_STATUS_PROT_WORD_MASK_S)); \ } while (0) /* * pkt_type_enable_flags */ Loading fw/htt_stats.h +51 −3 Original line number Diff line number Diff line Loading @@ -901,7 +901,8 @@ typedef struct { /** Num of times su bf sequences are denylisted */ A_UINT32 num_su_txbf_denylisted; /** pdev uptime in microseconds **/ A_UINT32 pdev_up_time_us; A_UINT32 pdev_up_time_us_low; A_UINT32 pdev_up_time_us_high; } htt_tx_pdev_stats_cmn_tlv; #define HTT_TX_PDEV_STATS_URRN_TLV_SZ(_num_elems) (sizeof(A_UINT32) * (_num_elems)) Loading Loading @@ -946,6 +947,18 @@ typedef struct { A_UINT32 cw_max[HTT_NUM_AC_WMM][HTT_STATS_MUEDCA_VALUE_MAX]; } htt_tx_pdev_muedca_params_stats_tlv_v; typedef struct { htt_tlv_hdr_t tlv_hdr; A_UINT32 ul_mumimo_less_aggressive[HTT_NUM_AC_WMM]; A_UINT32 ul_mumimo_medium_aggressive[HTT_NUM_AC_WMM]; A_UINT32 ul_mumimo_highly_aggressive[HTT_NUM_AC_WMM]; A_UINT32 ul_mumimo_default_relaxed[HTT_NUM_AC_WMM]; A_UINT32 ul_muofdma_less_aggressive[HTT_NUM_AC_WMM]; A_UINT32 ul_muofdma_medium_aggressive[HTT_NUM_AC_WMM]; A_UINT32 ul_muofdma_highly_aggressive[HTT_NUM_AC_WMM]; A_UINT32 ul_muofdma_default_relaxed[HTT_NUM_AC_WMM]; } htt_tx_pdev_ap_edca_params_stats_tlv_v; #define HTT_TX_PDEV_SIFS_BURST_HIST_STATS 10 #define HTT_TX_PDEV_STATS_SIFS_HIST_TLV_SZ(_num_elems) (sizeof(A_UINT32) * (_num_elems)) /* NOTE: Variable length TLV, use length spec to infer array size */ Loading Loading @@ -4944,8 +4957,12 @@ typedef struct { htt_tlv_hdr_t tlv_hdr; /** Tx PPDU duration histogram **/ A_UINT32 tx_ppdu_dur_hist[HTT_PDEV_STATS_PPDU_DUR_HIST_BINS]; A_UINT32 tx_success_time_us; A_UINT32 tx_fail_time_us; A_UINT32 tx_success_time_us_low; A_UINT32 tx_success_time_us_high; A_UINT32 tx_fail_time_us_low; A_UINT32 tx_fail_time_us_high; A_UINT32 pdev_up_time_us_low; A_UINT32 pdev_up_time_us_high; } htt_tx_pdev_ppdu_dur_stats_tlv; /* STATS_TYPE : HTT_DBG_EXT_STATS_PDEV_TX_RATE Loading Loading @@ -6375,6 +6392,14 @@ typedef struct { A_UINT32 cv_buf_received; /** total times CV bufs fed back to the IPC ring */ A_UINT32 cv_buf_fed_back; /* Total times CV query happened for IBF case */ A_UINT32 cv_total_query_ibf; /* A valid CV has been found for IBF case */ A_UINT32 cv_found_ibf; /* A valid CV has not been found for IBF case */ A_UINT32 cv_not_found_ibf; /* Expired CV found during query for IBF case */ A_UINT32 cv_expired_during_query_ibf; } htt_tx_sounding_stats_tlv; /* STATS_TYPE : HTT_DBG_EXT_STATS_TX_SOUNDING_INFO Loading Loading @@ -6807,6 +6832,15 @@ typedef struct { A_UINT32 reduced_tx_su_ibf_bw[HTT_TX_TXBF_RATE_STATS_NUM_REDUCED_CHAN_TYPES][HTT_TX_TXBF_RATE_STATS_NUM_BW_COUNTERS]; /** Open loop TX BW stats */ A_UINT32 reduced_tx_su_ol_bw[HTT_TX_TXBF_RATE_STATS_NUM_REDUCED_CHAN_TYPES][HTT_TX_TXBF_RATE_STATS_NUM_BW_COUNTERS]; /** Txbf flag reason stats */ A_UINT32 txbf_flag_set_mu_mode; A_UINT32 txbf_flag_set_final_status; A_UINT32 txbf_flag_not_set_verified_txbf_mode; A_UINT32 txbf_flag_not_set_disable_p2p_access; A_UINT32 txbf_flag_not_set_max_nss_reached_in_he160; A_UINT32 txbf_flag_not_set_disable_ul_dl_ofdma; A_UINT32 txbf_flag_not_set_mcs_threshold_value; A_UINT32 txbf_flag_not_set_final_status; } htt_tx_pdev_txbf_rate_stats_tlv; typedef enum { Loading Loading @@ -8456,6 +8490,20 @@ typedef struct { A_UINT32 chan_acc_lat_based_dlofdma_disabled_count[HTT_NUM_AC_WMM]; /** Num of instances where avg. channel access latency based DL OFDMA status = MONITORING */ A_UINT32 chan_acc_lat_based_dlofdma_monitoring_count[HTT_NUM_AC_WMM]; /** Num of instances where dl ofdma is disabled due to ru allocation failure */ A_UINT32 downgrade_to_dl_su_ru_alloc_fail[HTT_NUM_AC_WMM]; /** Num of instances where dl ofdma is disabled because we have only one user in candidate list */ A_UINT32 candidate_list_single_user_disable_ofdma[HTT_NUM_AC_WMM]; /** Num of instances where ul is chosen over dl based on qos weight not specific to OFDMA */ A_UINT32 dl_cand_list_dropped_high_ul_qos_weight[HTT_NUM_AC_WMM]; /** Num of instances where dl ofdma is disabled due to pipelining */ A_UINT32 ax_dlofdma_disabled_due_to_pipelining[HTT_NUM_AC_WMM]; /** Num of instances where dl ofdma is disabled as the tid is su only eligible */ A_UINT32 dlofdma_disabled_su_only_eligible[HTT_NUM_AC_WMM]; /** Num of instances where dl ofdma is disabled because there are no mpdus tried consecutively */ A_UINT32 dlofdma_disabled_consec_no_mpdus_tried[HTT_NUM_AC_WMM]; /** Num of instances where dl ofdma is disabled because there are consecutive mpdu failure */ A_UINT32 dlofdma_disabled_consec_no_mpdus_success[HTT_NUM_AC_WMM]; } htt_pdev_sched_algo_ofdma_stats_tlv; /*======= Bandwidth Manager stats ====================*/ Loading fw/wlan_module_ids.h +2 −0 Original line number Diff line number Diff line Loading @@ -138,6 +138,8 @@ typedef enum { WLAN_MODULE_T2LM, /* 0x64 */ WLAN_MODULE_HEALTH_MON, /* 0x65 */ WLAN_MODULE_XGAP, /* 0x66 */ WLAN_MODULE_ID_MAX, WLAN_MODULE_ID_INVALID = WLAN_MODULE_ID_MAX, Loading fw/wmi_services.h +12 −7 Original line number Diff line number Diff line Loading @@ -597,6 +597,11 @@ typedef enum { WMI_SERVICE_HALPHY_CTRL_PATH_STATS = 344, /* HALPHY STATS through control path */ WMI_SERVICE_PEER_CHWIDTH_PUNCTURE_BITMAP_SUPPORT = 345, /* FW supports puncture bitmap change with channel width switch */ WMI_SERVICE_BANG_RADAR_320_SUPPORT = 346, /* Host to send frequency offset for bang radar in extended field for 320M support */ WMI_SERVICE_XGAP_SUPPORT = 347, /* FW support for XGAP */ WMI_SERVICE_OBSS_PER_PACKET_SR_SUPPORT = 348, /* Spatial Reuse support for per PPDU setting */ WMI_SERVICE_MULTIPLE_VDEV_RESTART_BITMAP_SUPPORT = 349, /* Extended Multiple VDEV Restart with Bitmap Support */ WMI_SERVICE_WMI_SERVICE_WPA3_SHA384_ROAM_SUPPORT = 350, /* Indicates FW supports WPA3 SHA384 roaming */ WMI_SERVICE_ODD_LIVEDUMP_SUPPORT = 351, /* Support for ODD Livedump from the FW */ WMI_MAX_EXT2_SERVICE Loading Loading @@ -631,15 +636,15 @@ typedef enum { */ #define WMI_SERVICE_ENABLE(pwmi_svc_bmap,svc_id) \ ( (pwmi_svc_bmap)[(svc_id)/(sizeof(A_UINT32))] |= \ (1 << ((svc_id)%(sizeof(A_UINT32)))) ) ((A_UINT32) 1 << ((svc_id)%(sizeof(A_UINT32)))) ) #define WMI_SERVICE_DISABLE(pwmi_svc_bmap,svc_id) \ ( (pwmi_svc_bmap)[(svc_id)/(sizeof(A_UINT32))] &= \ ( ~(1 << ((svc_id)%(sizeof(A_UINT32)))) ) ) ( ~((A_UINT32) 1 << ((svc_id)%(sizeof(A_UINT32)))) ) ) #define WMI_SERVICE_IS_ENABLED(pwmi_svc_bmap,svc_id) \ ( ((pwmi_svc_bmap)[(svc_id)/(sizeof(A_UINT32))] & \ (1 << ((svc_id)%(sizeof(A_UINT32)))) ) != 0) ((A_UINT32) 1 << ((svc_id)%(sizeof(A_UINT32)))) ) != 0) #define WMI_SERVICE_EXT_ENABLE(pwmi_svc_bmap, pwmi_svc_ext_bmap, svc_id) \ Loading @@ -649,7 +654,7 @@ typedef enum { } else { \ int word = ((svc_id) - WMI_MAX_SERVICE) / 32; \ int bit = (svc_id) & 0x1f; /* svc_id mod 32 */ \ (pwmi_svc_ext_bmap)[word] |= (1 << bit); \ (pwmi_svc_ext_bmap)[word] |= ((A_UINT32) 1 << bit); \ } \ } while (0) Loading @@ -660,7 +665,7 @@ typedef enum { } else { \ int word = ((svc_id) - WMI_MAX_SERVICE) / 32; \ int bit = (svc_id) & 0x1f; /* svc_id mod 32 */ \ (pwmi_svc_ext_bmap)[word] &= ~(1 << bit); \ (pwmi_svc_ext_bmap)[word] &= ~((A_UINT32) 1 << bit); \ } \ } while (0) Loading @@ -684,7 +689,7 @@ typedef enum { } else { \ int word = ((svc_id) - WMI_MAX_EXT_SERVICE) / 32; \ int bit = (svc_id) & 0x1f; /* svc_id mod 32 */ \ (pwmi_svc_ext2_bmap)[word] |= (1 << bit); \ (pwmi_svc_ext2_bmap)[word] |= ((A_UINT32) 1 << bit); \ } \ } while (0) Loading @@ -698,7 +703,7 @@ typedef enum { } else { \ int word = ((svc_id) - WMI_MAX_EXT_SERVICE) / 32; \ int bit = (svc_id) & 0x1f; /* svc_id mod 32 */ \ (pwmi_svc_ext2_bmap)[word] &= ~(1 << bit); \ (pwmi_svc_ext2_bmap)[word] &= ~((A_UINT32) 1 << bit); \ } \ } while (0) Loading fw/wmi_tlv_defs.h +44 −3 Original line number Diff line number Diff line Loading @@ -1296,6 +1296,12 @@ typedef enum { WMITLV_TAG_STRUC_wmi_regulatory_fcc_rule_struct, WMITLV_TAG_STRUC_wmi_vdev_param_enable_sr_prohibit_fixed_param, WMITLV_TAG_STRUC_wmi_pdev_sched_tidq_susp_info_event_fixed_param, WMITLV_TAG_STRUC_wmi_xgap_enable_cmd_fixed_param, WMITLV_TAG_STRUC_wmi_xgap_enable_complete_event_fixed_param, WMITLV_TAG_STRUC_wmi_pdev_mesh_rx_filter_enable_fixed_param, WMITLV_TAG_STRUC_wmi_wfa_config_ofdma, WMITLV_TAG_STRUC_wmi_livedump_request_cmd_fixed_param, WMITLV_TAG_STRUC_wmi_livedump_response_event_fixed_param, } WMITLV_TAG_ID; /* Loading Loading @@ -1803,6 +1809,9 @@ typedef enum { OP(WMI_PDEV_FEATURESET_CMDID) \ OP(WMI_ROAM_MLO_CONFIG_CMDID) \ OP(WMI_VDEV_PARAM_ENABLE_SR_PROHIBIT_CMDID) \ OP(WMI_XGAP_ENABLE_CMDID) \ OP(WMI_PDEV_MESH_RX_FILTER_ENABLE_CMDID) \ OP(WMI_ODD_LIVEDUMP_REQUEST_CMDID) \ /* add new CMD_LIST elements above this line */ Loading Loading @@ -2096,6 +2105,8 @@ typedef enum { OP(WMI_HEALTH_MON_INIT_DONE_EVENTID) \ OP(WMI_IPA_LINK_STATS_EVENTID) \ OP(WMI_PDEV_SCHED_TIDQ_SUSP_INFO_EVENTID) \ OP(WMI_XGAP_ENABLE_COMPLETE_EVENTID) \ OP(WMI_ODD_LIVEDUMP_RESPONSE_EVENTID) \ /* add new EVT_LIST elements above this line */ Loading Loading @@ -2501,7 +2512,9 @@ WMITLV_CREATE_PARAM_STRUC(WMI_P2P_GO_SET_BEACON_IE); /* GTK offload Cmd */ #define WMITLV_TABLE_WMI_GTK_OFFLOAD_CMDID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WMI_GTK_OFFLOAD_CMD_fixed_param, WMI_GTK_OFFLOAD_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_gtk_offload_fils_tlv_param, wmi_fils_gtk_info, WMITLV_SIZE_VAR) WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_gtk_offload_fils_tlv_param, wmi_fils_gtk_info, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, kek_ext, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, kck_ext, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_GTK_OFFLOAD_CMDID); Loading Loading @@ -4500,6 +4513,10 @@ WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_ADD_MAC_ADDR_TO_RX_FILTER_CMDID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_hw_data_filter_cmd_fixed_param, wmi_hw_data_filter_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_HW_DATA_FILTER_CMDID); #define WMITLV_TABLE_WMI_PDEV_MESH_RX_FILTER_ENABLE_CMDID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_mesh_rx_filter_enable_fixed_param, wmi_pdev_mesh_rx_filter_enable_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_MESH_RX_FILTER_ENABLE_CMDID); /* Multiple vdev restart request cmd */ #define WMITLV_TABLE_WMI_PDEV_MULTIPLE_VDEV_RESTART_REQUEST_CMDID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_multiple_vdev_restart_request_cmd_fixed_param, wmi_pdev_multiple_vdev_restart_request_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ Loading Loading @@ -4902,7 +4919,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_SIMULATION_TEST_CMDID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_wfa_config_rsnxe, wfa_config_rsnxe, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_wfa_config_csa, wfa_config_csa, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_wfa_config_ocv, wfa_config_ocv, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_wfa_config_saquery, wfa_config_saquery, WMITLV_SIZE_VAR) WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_wfa_config_saquery, wfa_config_saquery, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_wfa_config_ofdma, wfa_config_ofdma, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_WFA_CONFIG_CMDID); /* SRG OBSS color Enable Bitmap */ Loading Loading @@ -5145,6 +5163,16 @@ WMITLV_CREATE_PARAM_STRUC(WMI_COEX_DBAM_CMDID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_param_enable_sr_prohibit_fixed_param, wmi_vdev_param_enable_sr_prohibit_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_PARAM_ENABLE_SR_PROHIBIT_CMDID); /* xGAP enable cmd */ #define WMITLV_TABLE_WMI_XGAP_ENABLE_CMDID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_xgap_enable_cmd_fixed_param, wmi_xgap_enable_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_XGAP_ENABLE_CMDID); #define WMITLV_TABLE_WMI_ODD_LIVEDUMP_REQUEST_CMDID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_livedump_request_cmd_fixed_param, wmi_livedump_request_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, odd_livedump_id_list, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_ODD_LIVEDUMP_REQUEST_CMDID); /************************** TLV definitions of WMI events *******************************/ Loading Loading @@ -6556,7 +6584,9 @@ WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_ENCRYPT_DECRYPT_DATA_RESP_EVENTID); #define WMITLV_TABLE_WMI_PEER_STATS_INFO_EVENTID(id, op, buf, len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_stats_info_event_fixed_param, wmi_peer_stats_info_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_stats_info, peer_stats_info, WMITLV_SIZE_VAR) WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_stats_info, peer_stats_info, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, tx_rate_counts, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, rx_rate_counts, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_PEER_STATS_INFO_EVENTID); /* Update Control Path stats event */ Loading Loading @@ -6980,6 +7010,17 @@ WMITLV_CREATE_PARAM_STRUC(WMI_COEX_DBAM_COMPLETE_EVENTID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_health_mon_init_done_fixed_param, wmi_health_mon_init_done_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_HEALTH_MON_INIT_DONE_EVENTID); /* xGAP enable cmd complete event */ #define WMITLV_TABLE_WMI_XGAP_ENABLE_COMPLETE_EVENTID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_xgap_enable_complete_event_fixed_param, wmi_xgap_enable_complete_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_XGAP_ENABLE_COMPLETE_EVENTID); /* ODD Livedump */ #define WMITLV_TABLE_WMI_ODD_LIVEDUMP_RESPONSE_EVENTID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_livedump_response_event_fixed_param, wmi_livedump_response_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_ODD_LIVEDUMP_RESPONSE_EVENTID); #ifdef __cplusplus Loading Loading
fw/htt.h +65 −1 Original line number Diff line number Diff line Loading @@ -234,9 +234,10 @@ * 3.107 Add traffic_end_indication bitfield in htt_tx_msdu_desc_ext2_t. * 3.108 Add HTT_H2T_MSG_TYPE_UMAC_HANG_RECOVERY_PREREQUISITE_SETUP def. * 3.109 Add HTT_T2H RX_ADDBA_EXTN,RX_DELBA_EXTN defs. * 3.110 Add more word_mask fields in htt_tx_monitor_cfg_t. */ #define HTT_CURRENT_VERSION_MAJOR 3 #define HTT_CURRENT_VERSION_MINOR 109 #define HTT_CURRENT_VERSION_MINOR 110 #define HTT_NUM_TX_FRAG_DESC 1024 Loading Loading @@ -760,6 +761,7 @@ typedef enum { HTT_STATS_LATENCY_PROF_CAL_STATS_TAG = 168, /* htt_latency_prof_cal_stats_tlv */ HTT_STATS_TX_PDEV_MUEDCA_PARAMS_STATS_TAG = 169, /* htt_tx_pdev_muedca_params_stats_tlv_v */ HTT_STATS_PDEV_BW_MGR_STATS_TAG = 170, /* htt_pdev_bw_mgr_stats_tlv */ HTT_STATS_TX_PDEV_AP_EDCA_PARAMS_STATS_TAG = 171, /* htt_tx_pdev_ap_edca_params_stats_tlv_v */ HTT_STATS_MAX_TAG, Loading Loading @@ -6961,6 +6963,13 @@ PREPACK struct htt_tx_monitor_cfg_t { dma_mpdu_ctrl: 1, dma_mpdu_data: 1, rsvd4: 10; A_UINT32 tx_queue_ext_v2_word_mask: 12, tx_peer_entry_v2_word_mask: 12, rsvd5: 10; A_UINT32 fes_status_end_word_mask: 16, response_end_status_word_mask: 16; A_UINT32 fes_status_prot_word_mask: 11, rsvd6: 21; } POSTPACK; #define HTT_TX_MONITOR_CFG_SZ (sizeof(struct htt_tx_monitor_cfg_t)) Loading Loading @@ -7339,6 +7348,61 @@ PREPACK struct htt_tx_monitor_cfg_t { ((_var) |= ((_val) << HTT_TX_MONITOR_CFG_DMA_MPDU_DATA_S)); \ } while (0) #define HTT_TX_MONITOR_CFG_TX_QUEUE_EXT_V2_WORD_MASK_M 0x00000fff #define HTT_TX_MONITOR_CFG_TX_QUEUE_EXT_V2_WORD_MASK_S 0 #define HTT_TX_MONITOR_CFG_TX_QUEUE_EXT_V2_WORD_MASK_GET(_var) \ (((_var) & HTT_TX_MONITOR_CFG_TX_QUEUE_EXT_V2_WORD_MASK_M) >> \ HTT_TX_MONITOR_CFG_TX_QUEUE_EXT_V2_WORD_MASK_S) #define HTT_TX_MONITOR_CFG_TX_QUEUE_EXT_V2_WORD_MASK_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_TX_MONITOR_CFG_TX_QUEUE_EXT_V2_WORD_MASK, _val); \ ((_var) |= ((_val) << HTT_TX_MONITOR_CFG_TX_QUEUE_EXT_V2_WORD_MASK_S)); \ } while (0) #define HTT_TX_MONITOR_CFG_TX_PEER_ENTRY_V2_WORD_MASK_M 0x00fff000 #define HTT_TX_MONITOR_CFG_TX_PEER_ENTRY_V2_WORD_MASK_S 12 #define HTT_TX_MONITOR_CFG_TX_PEER_ENTRY_V2_WORD_MASK_GET(_var) \ (((_var) & HTT_TX_MONITOR_CFG_TX_PEER_ENTRY_V2_WORD_MASK_M) >> \ HTT_TX_MONITOR_CFG_TX_PEER_ENTRY_V2_WORD_MASK_S) #define HTT_TX_MONITOR_CFG_TX_PEER_ENTRY_V2_WORD_MASK_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_TX_MONITOR_CFG_TX_PEER_ENTRY_V2_WORD_MASK, _val); \ ((_var) |= ((_val) << HTT_TX_MONITOR_CFG_TX_PEER_ENTRY_V2_WORD_MASK_S)); \ } while (0) #define HTT_TX_MONITOR_CFG_FES_STATUS_END_WORD_MASK_M 0x0000ffff #define HTT_TX_MONITOR_CFG_FES_STATUS_END_WORD_MASK_S 0 #define HTT_TX_MONITOR_CFG_FES_STATUS_END_WORD_MASK_GET(_var) \ (((_var) & HTT_TX_MONITOR_CFG_FES_STATUS_END_WORD_MASK_M) >> \ HTT_TX_MONITOR_CFG_FES_STATUS_END_WORD_MASK_S) #define HTT_TX_MONITOR_CFG_FES_STATUS_END_WORD_MASK_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_TX_MONITOR_CFG_FES_STATUS_END_WORD_MASK, _val); \ ((_var) |= ((_val) << HTT_TX_MONITOR_CFG_FES_STATUS_END_WORD_MASK_S)); \ } while (0) #define HTT_TX_MONITOR_CFG_RESPONSE_END_STATUS_WORD_MASK_M 0xffff0000 #define HTT_TX_MONITOR_CFG_RESPONSE_END_STATUS_WORD_MASK_S 16 #define HTT_TX_MONITOR_CFG_RESPONSE_END_STATUS_WORD_MASK_GET(_var) \ (((_var) & HTT_TX_MONITOR_CFG_RESPONSE_END_STATUS_WORD_MASK_M) >> \ HTT_TX_MONITOR_CFG_RESPONSE_END_STATUS_WORD_MASK_S) #define HTT_TX_MONITOR_CFG_RESPONSE_END_STATUS_WORD_MASK_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_TX_MONITOR_CFG_RESPONSE_END_STATUS_WORD_MASK, _val); \ ((_var) |= ((_val) << HTT_TX_MONITOR_CFG_RESPONSE_END_STATUS_WORD_MASK_S)); \ } while (0) #define HTT_TX_MONITOR_CFG_FES_STATUS_PROT_WORD_MASK_M 0x000007ff #define HTT_TX_MONITOR_CFG_FES_STATUS_PROT_WORD_MASK_S 0 #define HTT_TX_MONITOR_CFG_FES_STATUS_PROT_WORD_MASK_GET(_var) \ (((_var) & HTT_TX_MONITOR_CFG_FES_STATUS_PROT_WORD_MASK_M) >> \ HTT_TX_MONITOR_CFG_FES_STATUS_PROT_WORD_MASK_S) #define HTT_TX_MONITOR_CFG_FES_STATUS_PROT_WORD_MASK_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_TX_MONITOR_CFG_FES_STATUS_PROT_WORD_MASK, _val); \ ((_var) |= ((_val) << HTT_TX_MONITOR_CFG_FES_STATUS_PROT_WORD_MASK_S)); \ } while (0) /* * pkt_type_enable_flags */ Loading
fw/htt_stats.h +51 −3 Original line number Diff line number Diff line Loading @@ -901,7 +901,8 @@ typedef struct { /** Num of times su bf sequences are denylisted */ A_UINT32 num_su_txbf_denylisted; /** pdev uptime in microseconds **/ A_UINT32 pdev_up_time_us; A_UINT32 pdev_up_time_us_low; A_UINT32 pdev_up_time_us_high; } htt_tx_pdev_stats_cmn_tlv; #define HTT_TX_PDEV_STATS_URRN_TLV_SZ(_num_elems) (sizeof(A_UINT32) * (_num_elems)) Loading Loading @@ -946,6 +947,18 @@ typedef struct { A_UINT32 cw_max[HTT_NUM_AC_WMM][HTT_STATS_MUEDCA_VALUE_MAX]; } htt_tx_pdev_muedca_params_stats_tlv_v; typedef struct { htt_tlv_hdr_t tlv_hdr; A_UINT32 ul_mumimo_less_aggressive[HTT_NUM_AC_WMM]; A_UINT32 ul_mumimo_medium_aggressive[HTT_NUM_AC_WMM]; A_UINT32 ul_mumimo_highly_aggressive[HTT_NUM_AC_WMM]; A_UINT32 ul_mumimo_default_relaxed[HTT_NUM_AC_WMM]; A_UINT32 ul_muofdma_less_aggressive[HTT_NUM_AC_WMM]; A_UINT32 ul_muofdma_medium_aggressive[HTT_NUM_AC_WMM]; A_UINT32 ul_muofdma_highly_aggressive[HTT_NUM_AC_WMM]; A_UINT32 ul_muofdma_default_relaxed[HTT_NUM_AC_WMM]; } htt_tx_pdev_ap_edca_params_stats_tlv_v; #define HTT_TX_PDEV_SIFS_BURST_HIST_STATS 10 #define HTT_TX_PDEV_STATS_SIFS_HIST_TLV_SZ(_num_elems) (sizeof(A_UINT32) * (_num_elems)) /* NOTE: Variable length TLV, use length spec to infer array size */ Loading Loading @@ -4944,8 +4957,12 @@ typedef struct { htt_tlv_hdr_t tlv_hdr; /** Tx PPDU duration histogram **/ A_UINT32 tx_ppdu_dur_hist[HTT_PDEV_STATS_PPDU_DUR_HIST_BINS]; A_UINT32 tx_success_time_us; A_UINT32 tx_fail_time_us; A_UINT32 tx_success_time_us_low; A_UINT32 tx_success_time_us_high; A_UINT32 tx_fail_time_us_low; A_UINT32 tx_fail_time_us_high; A_UINT32 pdev_up_time_us_low; A_UINT32 pdev_up_time_us_high; } htt_tx_pdev_ppdu_dur_stats_tlv; /* STATS_TYPE : HTT_DBG_EXT_STATS_PDEV_TX_RATE Loading Loading @@ -6375,6 +6392,14 @@ typedef struct { A_UINT32 cv_buf_received; /** total times CV bufs fed back to the IPC ring */ A_UINT32 cv_buf_fed_back; /* Total times CV query happened for IBF case */ A_UINT32 cv_total_query_ibf; /* A valid CV has been found for IBF case */ A_UINT32 cv_found_ibf; /* A valid CV has not been found for IBF case */ A_UINT32 cv_not_found_ibf; /* Expired CV found during query for IBF case */ A_UINT32 cv_expired_during_query_ibf; } htt_tx_sounding_stats_tlv; /* STATS_TYPE : HTT_DBG_EXT_STATS_TX_SOUNDING_INFO Loading Loading @@ -6807,6 +6832,15 @@ typedef struct { A_UINT32 reduced_tx_su_ibf_bw[HTT_TX_TXBF_RATE_STATS_NUM_REDUCED_CHAN_TYPES][HTT_TX_TXBF_RATE_STATS_NUM_BW_COUNTERS]; /** Open loop TX BW stats */ A_UINT32 reduced_tx_su_ol_bw[HTT_TX_TXBF_RATE_STATS_NUM_REDUCED_CHAN_TYPES][HTT_TX_TXBF_RATE_STATS_NUM_BW_COUNTERS]; /** Txbf flag reason stats */ A_UINT32 txbf_flag_set_mu_mode; A_UINT32 txbf_flag_set_final_status; A_UINT32 txbf_flag_not_set_verified_txbf_mode; A_UINT32 txbf_flag_not_set_disable_p2p_access; A_UINT32 txbf_flag_not_set_max_nss_reached_in_he160; A_UINT32 txbf_flag_not_set_disable_ul_dl_ofdma; A_UINT32 txbf_flag_not_set_mcs_threshold_value; A_UINT32 txbf_flag_not_set_final_status; } htt_tx_pdev_txbf_rate_stats_tlv; typedef enum { Loading Loading @@ -8456,6 +8490,20 @@ typedef struct { A_UINT32 chan_acc_lat_based_dlofdma_disabled_count[HTT_NUM_AC_WMM]; /** Num of instances where avg. channel access latency based DL OFDMA status = MONITORING */ A_UINT32 chan_acc_lat_based_dlofdma_monitoring_count[HTT_NUM_AC_WMM]; /** Num of instances where dl ofdma is disabled due to ru allocation failure */ A_UINT32 downgrade_to_dl_su_ru_alloc_fail[HTT_NUM_AC_WMM]; /** Num of instances where dl ofdma is disabled because we have only one user in candidate list */ A_UINT32 candidate_list_single_user_disable_ofdma[HTT_NUM_AC_WMM]; /** Num of instances where ul is chosen over dl based on qos weight not specific to OFDMA */ A_UINT32 dl_cand_list_dropped_high_ul_qos_weight[HTT_NUM_AC_WMM]; /** Num of instances where dl ofdma is disabled due to pipelining */ A_UINT32 ax_dlofdma_disabled_due_to_pipelining[HTT_NUM_AC_WMM]; /** Num of instances where dl ofdma is disabled as the tid is su only eligible */ A_UINT32 dlofdma_disabled_su_only_eligible[HTT_NUM_AC_WMM]; /** Num of instances where dl ofdma is disabled because there are no mpdus tried consecutively */ A_UINT32 dlofdma_disabled_consec_no_mpdus_tried[HTT_NUM_AC_WMM]; /** Num of instances where dl ofdma is disabled because there are consecutive mpdu failure */ A_UINT32 dlofdma_disabled_consec_no_mpdus_success[HTT_NUM_AC_WMM]; } htt_pdev_sched_algo_ofdma_stats_tlv; /*======= Bandwidth Manager stats ====================*/ Loading
fw/wlan_module_ids.h +2 −0 Original line number Diff line number Diff line Loading @@ -138,6 +138,8 @@ typedef enum { WLAN_MODULE_T2LM, /* 0x64 */ WLAN_MODULE_HEALTH_MON, /* 0x65 */ WLAN_MODULE_XGAP, /* 0x66 */ WLAN_MODULE_ID_MAX, WLAN_MODULE_ID_INVALID = WLAN_MODULE_ID_MAX, Loading
fw/wmi_services.h +12 −7 Original line number Diff line number Diff line Loading @@ -597,6 +597,11 @@ typedef enum { WMI_SERVICE_HALPHY_CTRL_PATH_STATS = 344, /* HALPHY STATS through control path */ WMI_SERVICE_PEER_CHWIDTH_PUNCTURE_BITMAP_SUPPORT = 345, /* FW supports puncture bitmap change with channel width switch */ WMI_SERVICE_BANG_RADAR_320_SUPPORT = 346, /* Host to send frequency offset for bang radar in extended field for 320M support */ WMI_SERVICE_XGAP_SUPPORT = 347, /* FW support for XGAP */ WMI_SERVICE_OBSS_PER_PACKET_SR_SUPPORT = 348, /* Spatial Reuse support for per PPDU setting */ WMI_SERVICE_MULTIPLE_VDEV_RESTART_BITMAP_SUPPORT = 349, /* Extended Multiple VDEV Restart with Bitmap Support */ WMI_SERVICE_WMI_SERVICE_WPA3_SHA384_ROAM_SUPPORT = 350, /* Indicates FW supports WPA3 SHA384 roaming */ WMI_SERVICE_ODD_LIVEDUMP_SUPPORT = 351, /* Support for ODD Livedump from the FW */ WMI_MAX_EXT2_SERVICE Loading Loading @@ -631,15 +636,15 @@ typedef enum { */ #define WMI_SERVICE_ENABLE(pwmi_svc_bmap,svc_id) \ ( (pwmi_svc_bmap)[(svc_id)/(sizeof(A_UINT32))] |= \ (1 << ((svc_id)%(sizeof(A_UINT32)))) ) ((A_UINT32) 1 << ((svc_id)%(sizeof(A_UINT32)))) ) #define WMI_SERVICE_DISABLE(pwmi_svc_bmap,svc_id) \ ( (pwmi_svc_bmap)[(svc_id)/(sizeof(A_UINT32))] &= \ ( ~(1 << ((svc_id)%(sizeof(A_UINT32)))) ) ) ( ~((A_UINT32) 1 << ((svc_id)%(sizeof(A_UINT32)))) ) ) #define WMI_SERVICE_IS_ENABLED(pwmi_svc_bmap,svc_id) \ ( ((pwmi_svc_bmap)[(svc_id)/(sizeof(A_UINT32))] & \ (1 << ((svc_id)%(sizeof(A_UINT32)))) ) != 0) ((A_UINT32) 1 << ((svc_id)%(sizeof(A_UINT32)))) ) != 0) #define WMI_SERVICE_EXT_ENABLE(pwmi_svc_bmap, pwmi_svc_ext_bmap, svc_id) \ Loading @@ -649,7 +654,7 @@ typedef enum { } else { \ int word = ((svc_id) - WMI_MAX_SERVICE) / 32; \ int bit = (svc_id) & 0x1f; /* svc_id mod 32 */ \ (pwmi_svc_ext_bmap)[word] |= (1 << bit); \ (pwmi_svc_ext_bmap)[word] |= ((A_UINT32) 1 << bit); \ } \ } while (0) Loading @@ -660,7 +665,7 @@ typedef enum { } else { \ int word = ((svc_id) - WMI_MAX_SERVICE) / 32; \ int bit = (svc_id) & 0x1f; /* svc_id mod 32 */ \ (pwmi_svc_ext_bmap)[word] &= ~(1 << bit); \ (pwmi_svc_ext_bmap)[word] &= ~((A_UINT32) 1 << bit); \ } \ } while (0) Loading @@ -684,7 +689,7 @@ typedef enum { } else { \ int word = ((svc_id) - WMI_MAX_EXT_SERVICE) / 32; \ int bit = (svc_id) & 0x1f; /* svc_id mod 32 */ \ (pwmi_svc_ext2_bmap)[word] |= (1 << bit); \ (pwmi_svc_ext2_bmap)[word] |= ((A_UINT32) 1 << bit); \ } \ } while (0) Loading @@ -698,7 +703,7 @@ typedef enum { } else { \ int word = ((svc_id) - WMI_MAX_EXT_SERVICE) / 32; \ int bit = (svc_id) & 0x1f; /* svc_id mod 32 */ \ (pwmi_svc_ext2_bmap)[word] &= ~(1 << bit); \ (pwmi_svc_ext2_bmap)[word] &= ~((A_UINT32) 1 << bit); \ } \ } while (0) Loading
fw/wmi_tlv_defs.h +44 −3 Original line number Diff line number Diff line Loading @@ -1296,6 +1296,12 @@ typedef enum { WMITLV_TAG_STRUC_wmi_regulatory_fcc_rule_struct, WMITLV_TAG_STRUC_wmi_vdev_param_enable_sr_prohibit_fixed_param, WMITLV_TAG_STRUC_wmi_pdev_sched_tidq_susp_info_event_fixed_param, WMITLV_TAG_STRUC_wmi_xgap_enable_cmd_fixed_param, WMITLV_TAG_STRUC_wmi_xgap_enable_complete_event_fixed_param, WMITLV_TAG_STRUC_wmi_pdev_mesh_rx_filter_enable_fixed_param, WMITLV_TAG_STRUC_wmi_wfa_config_ofdma, WMITLV_TAG_STRUC_wmi_livedump_request_cmd_fixed_param, WMITLV_TAG_STRUC_wmi_livedump_response_event_fixed_param, } WMITLV_TAG_ID; /* Loading Loading @@ -1803,6 +1809,9 @@ typedef enum { OP(WMI_PDEV_FEATURESET_CMDID) \ OP(WMI_ROAM_MLO_CONFIG_CMDID) \ OP(WMI_VDEV_PARAM_ENABLE_SR_PROHIBIT_CMDID) \ OP(WMI_XGAP_ENABLE_CMDID) \ OP(WMI_PDEV_MESH_RX_FILTER_ENABLE_CMDID) \ OP(WMI_ODD_LIVEDUMP_REQUEST_CMDID) \ /* add new CMD_LIST elements above this line */ Loading Loading @@ -2096,6 +2105,8 @@ typedef enum { OP(WMI_HEALTH_MON_INIT_DONE_EVENTID) \ OP(WMI_IPA_LINK_STATS_EVENTID) \ OP(WMI_PDEV_SCHED_TIDQ_SUSP_INFO_EVENTID) \ OP(WMI_XGAP_ENABLE_COMPLETE_EVENTID) \ OP(WMI_ODD_LIVEDUMP_RESPONSE_EVENTID) \ /* add new EVT_LIST elements above this line */ Loading Loading @@ -2501,7 +2512,9 @@ WMITLV_CREATE_PARAM_STRUC(WMI_P2P_GO_SET_BEACON_IE); /* GTK offload Cmd */ #define WMITLV_TABLE_WMI_GTK_OFFLOAD_CMDID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WMI_GTK_OFFLOAD_CMD_fixed_param, WMI_GTK_OFFLOAD_CMD_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_gtk_offload_fils_tlv_param, wmi_fils_gtk_info, WMITLV_SIZE_VAR) WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_gtk_offload_fils_tlv_param, wmi_fils_gtk_info, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, kek_ext, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, kck_ext, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_GTK_OFFLOAD_CMDID); Loading Loading @@ -4500,6 +4513,10 @@ WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_ADD_MAC_ADDR_TO_RX_FILTER_CMDID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_hw_data_filter_cmd_fixed_param, wmi_hw_data_filter_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_HW_DATA_FILTER_CMDID); #define WMITLV_TABLE_WMI_PDEV_MESH_RX_FILTER_ENABLE_CMDID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_mesh_rx_filter_enable_fixed_param, wmi_pdev_mesh_rx_filter_enable_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_MESH_RX_FILTER_ENABLE_CMDID); /* Multiple vdev restart request cmd */ #define WMITLV_TABLE_WMI_PDEV_MULTIPLE_VDEV_RESTART_REQUEST_CMDID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_multiple_vdev_restart_request_cmd_fixed_param, wmi_pdev_multiple_vdev_restart_request_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ Loading Loading @@ -4902,7 +4919,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_SIMULATION_TEST_CMDID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_wfa_config_rsnxe, wfa_config_rsnxe, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_wfa_config_csa, wfa_config_csa, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_wfa_config_ocv, wfa_config_ocv, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_wfa_config_saquery, wfa_config_saquery, WMITLV_SIZE_VAR) WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_wfa_config_saquery, wfa_config_saquery, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_wfa_config_ofdma, wfa_config_ofdma, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_WFA_CONFIG_CMDID); /* SRG OBSS color Enable Bitmap */ Loading Loading @@ -5145,6 +5163,16 @@ WMITLV_CREATE_PARAM_STRUC(WMI_COEX_DBAM_CMDID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_param_enable_sr_prohibit_fixed_param, wmi_vdev_param_enable_sr_prohibit_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_PARAM_ENABLE_SR_PROHIBIT_CMDID); /* xGAP enable cmd */ #define WMITLV_TABLE_WMI_XGAP_ENABLE_CMDID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_xgap_enable_cmd_fixed_param, wmi_xgap_enable_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_XGAP_ENABLE_CMDID); #define WMITLV_TABLE_WMI_ODD_LIVEDUMP_REQUEST_CMDID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_livedump_request_cmd_fixed_param, wmi_livedump_request_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, odd_livedump_id_list, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_ODD_LIVEDUMP_REQUEST_CMDID); /************************** TLV definitions of WMI events *******************************/ Loading Loading @@ -6556,7 +6584,9 @@ WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_ENCRYPT_DECRYPT_DATA_RESP_EVENTID); #define WMITLV_TABLE_WMI_PEER_STATS_INFO_EVENTID(id, op, buf, len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_stats_info_event_fixed_param, wmi_peer_stats_info_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_stats_info, peer_stats_info, WMITLV_SIZE_VAR) WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_stats_info, peer_stats_info, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, tx_rate_counts, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, rx_rate_counts, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_PEER_STATS_INFO_EVENTID); /* Update Control Path stats event */ Loading Loading @@ -6980,6 +7010,17 @@ WMITLV_CREATE_PARAM_STRUC(WMI_COEX_DBAM_COMPLETE_EVENTID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_health_mon_init_done_fixed_param, wmi_health_mon_init_done_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_HEALTH_MON_INIT_DONE_EVENTID); /* xGAP enable cmd complete event */ #define WMITLV_TABLE_WMI_XGAP_ENABLE_COMPLETE_EVENTID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_xgap_enable_complete_event_fixed_param, wmi_xgap_enable_complete_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_XGAP_ENABLE_COMPLETE_EVENTID); /* ODD Livedump */ #define WMITLV_TABLE_WMI_ODD_LIVEDUMP_RESPONSE_EVENTID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_livedump_response_event_fixed_param, wmi_livedump_response_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_ODD_LIVEDUMP_RESPONSE_EVENTID); #ifdef __cplusplus Loading