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 +29 −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 @@ -6815,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 fw/wmi_services.h +2 −0 Original line number Diff line number Diff line Loading @@ -600,6 +600,8 @@ typedef enum { 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 fw/wmi_tlv_defs.h +21 −2 Original line number Diff line number Diff line Loading @@ -1299,6 +1299,9 @@ typedef enum { 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 @@ -1808,6 +1811,7 @@ typedef enum { 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 @@ -2102,6 +2106,7 @@ typedef enum { 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 @@ -2507,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 @@ -4912,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 @@ -5160,6 +5168,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_PARAM_ENABLE_SR_PROHIBIT_CMDID); 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 @@ -7002,6 +7015,12 @@ WMITLV_CREATE_PARAM_STRUC(WMI_HEALTH_MON_INIT_DONE_EVENTID); 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 fw/wmi_unified.h +93 −4 Original line number Diff line number Diff line Loading @@ -314,6 +314,7 @@ typedef enum { WMI_GRP_MLO, /* 0x48 MLO(Multiple Link Operation) management */ WMI_GRP_SAWF, /* 0x49 SAWF (Service Aware WiFi) */ WMI_GRP_QUIET_OFL, /* 0x4a Quiet offloads */ WMI_GRP_ODD, /* 0x4b ODD */ } WMI_GRP_ID; #define WMI_CMD_GRP_START_ID(grp_id) (((grp_id) << 12) | 0x1) Loading Loading @@ -1537,6 +1538,9 @@ typedef enum { /** disable a service class */ WMI_SAWF_SVC_CLASS_DISABLE_CMDID, /* WMI commands specific to ODD */ WMI_ODD_LIVEDUMP_REQUEST_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_ODD), } WMI_CMD_ID; typedef enum { Loading Loading @@ -2330,6 +2334,9 @@ typedef enum { /* WMI event specific to Quiet handling */ WMI_QUIET_HANDLING_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_QUIET_OFL), /* ODD events */ WMI_ODD_LIVEDUMP_RESPONSE_EVENTID = WMI_CMD_GRP_START_ID(WMI_GRP_ODD), } WMI_EVT_ID; /* defines for OEM message sub-types */ Loading Loading @@ -17834,6 +17841,9 @@ enum { WMI_AUTH_WPA3_SAE, WMI_AUTH_WPA3_OWE, WMI_AUTH_PASN, WMI_AUTH_RSNA_8021X_SHA384, WMI_AUTH_WPA3_SAE_SHA384, WMI_AUTH_FT_RSNA_SAE_SHA384, }; typedef enum { Loading Loading @@ -21054,6 +21064,17 @@ typedef struct { A_UINT8 KEK[GTK_OFFLOAD_KEK_BYTES]; /* key encryption key */ A_UINT8 KCK[GTK_OFFLOAD_KCK_BYTES]; /* key confirmation key */ A_UINT8 replay_counter[GTK_REPLAY_COUNTER_BYTES]; /* replay counter for re-key */ /* * Following structure will be appended when fils: * wmi_gtk_offload_fils_tlv_param wmi_fils_gtk_info; * Following structure will be appended to the above KEK[] when kek length * is larger than GTK_OFFLOAD_KEK_BYTES: * A_UINT8 kek_ext[]; * Following structure will be appended to the above KCK[] when kck length * is larger than GTK_OFFLOAD_KCK_BYTES: * A_UINT8 kck_ext[]; */ } WMI_GTK_OFFLOAD_CMD_fixed_param; typedef struct { Loading Loading @@ -21230,6 +21251,12 @@ typedef enum /* Extend ITO under WOW mode if vendor OUI is received in beacon */ WMI_VENDOR_OUI_ACTION_EXTEND_WOW_ITO = 8, /* * Turn on station 80211BE feature if AP's vendor OUI is in the list * for specific customer */ WMI_VENDOR_OUI_ACTION_ALLOW_11BE = 9, /* Add any action before this line */ WMI_VENDOR_OUI_ACTION_MAX_ACTION_ID } wmi_vendor_oui_action_id; Loading Loading @@ -33100,7 +33127,10 @@ typedef enum { */ WMI_AFC_EXPIRY_EVENT_START = 1, WMI_AFC_EXPIRY_EVENT_RENEW = 2, WMI_AFC_EXPIRY_EVENT_SWITCH_TO_LPI = 3, WMI_AFC_EXPIRY_EVENT_SWITCH_TO_LOW_POWER_MODE = 3, /* retain the deprecated old name as an alias for the new name */ WMI_AFC_EXPIRY_EVENT_SWITCH_TO_LPI = WMI_AFC_EXPIRY_EVENT_SWITCH_TO_LOW_POWER_MODE, WMI_AFC_EXPIRY_EVENT_STOP_TX = 4, } WMI_AFC_EXPIRY_EVENT_SUBTYPE; Loading Loading @@ -38660,9 +38690,17 @@ typedef struct { */ } wmi_cfr_capture_filter_cmd_fixed_param; enum wmi_oem_data_evt_cause { WMI_OEM_DATA_EVT_CAUSE_UNSPECIFIED = 0, WMI_OEM_DATA_EVT_CAUSE_CMD_REQ = 1, WMI_OEM_DATA_EVT_CAUSE_ASYNC = 2, }; typedef struct { A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_oem_data_event_fixed_param */ A_UINT32 data_len; /** length in byte of data[]. */ /* Event Cause reason from enum wmi_oem_data_evt_cause */ A_UINT32 event_cause; /* Following this structure is the TLV: * A_UINT8 data[]; <-- length in byte given by field data_len. * This data array contains OEM data, the payload begins with a field to tell the HOST regarding the kind of the OEM data. Loading Loading @@ -39221,6 +39259,17 @@ typedef struct { A_UINT32 remain_connect_on_saquery_timeout; } wmi_wfa_config_saquery; typedef struct { /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_wfa_config_ofdma */ A_UINT32 tlv_header; /* force_he_trigger_to_eht_sta * Possible values from host are: * 0 default behavior * 1 instead of sending EHT triggers to EHT stations, send HE triggers */ A_UINT32 force_he_trigger_to_eht_sta; } wmi_wfa_config_ofdma; typedef struct { /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_wfa_config_cmd_fixed_param */ A_UINT32 tlv_header; Loading @@ -39231,6 +39280,7 @@ typedef struct { * wmi_wfa_config_csa wfa_config_csa[]; (0 or 1 elements) * wmi_wfa_config_ocv wfa_config_ocv[]; (0 or 1 elements) * wmi_wfa_config_saquery wfa_config_saquery[]; (0 or 1 elements) * wmi_wfa_config_ofdma wfa_config_ofdma[]; (0 or 1 elements) */ } wmi_wfa_config_cmd_fixed_param; Loading Loading @@ -40033,6 +40083,45 @@ typedef struct { A_UINT32 initial_upload_period_ms; } wmi_health_mon_init_done_fixed_param; /** ODD **/ /* Livedump Data structures */ #define WMI_ODD_LIVEDUMP_RESP_SET_STATUS(status, val) \ WMI_SET_BITS(status, 0, 4, val) #define WMI_ODD_LIVEDUMP_RESP_GET_STATUS(status) \ WMI_GET_BITS(status, 0, 4) typedef enum { ODD_LIVEDUMP_STATUS_SUCCESS = 0, ODD_LIVEDUMP_STATUS_FAILURE, ODD_MAX_LIVEDUMP_STATUS, } odd_livedump_resp_status; typedef struct { A_UINT32 tlv_header; A_UINT32 odd_livedump_request_id; /* Following this structure is the TLV: * A_UINT32 odd_livedump_id_list[]; <-- array livedump_id list */ } wmi_livedump_request_cmd_fixed_param; typedef struct { A_UINT32 tlv_header; /* odd_livedump_request_id: * this echoes the request id that was sent in the wmi_livedump_cmd_param */ A_UINT32 odd_livedump_request_id; /* * 4 LSB's to indicate status of the odd_livedump_request_id processed * by the FW, the other 28bits to kept for future enhancements. * The status will be defined in the enum odd_livedump_resp_status * 0 - SUCCESS * 1 - FAILURE * Refer to the WMI_ODD_LIVEDUMP_RESP_SET,_GET_STATUS macros. */ A_UINT32 status; } wmi_livedump_response_event_fixed_param; /* ADD NEW DEFS HERE */ 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 +29 −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 @@ -6815,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
fw/wmi_services.h +2 −0 Original line number Diff line number Diff line Loading @@ -600,6 +600,8 @@ typedef enum { 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
fw/wmi_tlv_defs.h +21 −2 Original line number Diff line number Diff line Loading @@ -1299,6 +1299,9 @@ typedef enum { 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 @@ -1808,6 +1811,7 @@ typedef enum { 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 @@ -2102,6 +2106,7 @@ typedef enum { 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 @@ -2507,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 @@ -4912,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 @@ -5160,6 +5168,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_PARAM_ENABLE_SR_PROHIBIT_CMDID); 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 @@ -7002,6 +7015,12 @@ WMITLV_CREATE_PARAM_STRUC(WMI_HEALTH_MON_INIT_DONE_EVENTID); 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
fw/wmi_unified.h +93 −4 Original line number Diff line number Diff line Loading @@ -314,6 +314,7 @@ typedef enum { WMI_GRP_MLO, /* 0x48 MLO(Multiple Link Operation) management */ WMI_GRP_SAWF, /* 0x49 SAWF (Service Aware WiFi) */ WMI_GRP_QUIET_OFL, /* 0x4a Quiet offloads */ WMI_GRP_ODD, /* 0x4b ODD */ } WMI_GRP_ID; #define WMI_CMD_GRP_START_ID(grp_id) (((grp_id) << 12) | 0x1) Loading Loading @@ -1537,6 +1538,9 @@ typedef enum { /** disable a service class */ WMI_SAWF_SVC_CLASS_DISABLE_CMDID, /* WMI commands specific to ODD */ WMI_ODD_LIVEDUMP_REQUEST_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_ODD), } WMI_CMD_ID; typedef enum { Loading Loading @@ -2330,6 +2334,9 @@ typedef enum { /* WMI event specific to Quiet handling */ WMI_QUIET_HANDLING_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_QUIET_OFL), /* ODD events */ WMI_ODD_LIVEDUMP_RESPONSE_EVENTID = WMI_CMD_GRP_START_ID(WMI_GRP_ODD), } WMI_EVT_ID; /* defines for OEM message sub-types */ Loading Loading @@ -17834,6 +17841,9 @@ enum { WMI_AUTH_WPA3_SAE, WMI_AUTH_WPA3_OWE, WMI_AUTH_PASN, WMI_AUTH_RSNA_8021X_SHA384, WMI_AUTH_WPA3_SAE_SHA384, WMI_AUTH_FT_RSNA_SAE_SHA384, }; typedef enum { Loading Loading @@ -21054,6 +21064,17 @@ typedef struct { A_UINT8 KEK[GTK_OFFLOAD_KEK_BYTES]; /* key encryption key */ A_UINT8 KCK[GTK_OFFLOAD_KCK_BYTES]; /* key confirmation key */ A_UINT8 replay_counter[GTK_REPLAY_COUNTER_BYTES]; /* replay counter for re-key */ /* * Following structure will be appended when fils: * wmi_gtk_offload_fils_tlv_param wmi_fils_gtk_info; * Following structure will be appended to the above KEK[] when kek length * is larger than GTK_OFFLOAD_KEK_BYTES: * A_UINT8 kek_ext[]; * Following structure will be appended to the above KCK[] when kck length * is larger than GTK_OFFLOAD_KCK_BYTES: * A_UINT8 kck_ext[]; */ } WMI_GTK_OFFLOAD_CMD_fixed_param; typedef struct { Loading Loading @@ -21230,6 +21251,12 @@ typedef enum /* Extend ITO under WOW mode if vendor OUI is received in beacon */ WMI_VENDOR_OUI_ACTION_EXTEND_WOW_ITO = 8, /* * Turn on station 80211BE feature if AP's vendor OUI is in the list * for specific customer */ WMI_VENDOR_OUI_ACTION_ALLOW_11BE = 9, /* Add any action before this line */ WMI_VENDOR_OUI_ACTION_MAX_ACTION_ID } wmi_vendor_oui_action_id; Loading Loading @@ -33100,7 +33127,10 @@ typedef enum { */ WMI_AFC_EXPIRY_EVENT_START = 1, WMI_AFC_EXPIRY_EVENT_RENEW = 2, WMI_AFC_EXPIRY_EVENT_SWITCH_TO_LPI = 3, WMI_AFC_EXPIRY_EVENT_SWITCH_TO_LOW_POWER_MODE = 3, /* retain the deprecated old name as an alias for the new name */ WMI_AFC_EXPIRY_EVENT_SWITCH_TO_LPI = WMI_AFC_EXPIRY_EVENT_SWITCH_TO_LOW_POWER_MODE, WMI_AFC_EXPIRY_EVENT_STOP_TX = 4, } WMI_AFC_EXPIRY_EVENT_SUBTYPE; Loading Loading @@ -38660,9 +38690,17 @@ typedef struct { */ } wmi_cfr_capture_filter_cmd_fixed_param; enum wmi_oem_data_evt_cause { WMI_OEM_DATA_EVT_CAUSE_UNSPECIFIED = 0, WMI_OEM_DATA_EVT_CAUSE_CMD_REQ = 1, WMI_OEM_DATA_EVT_CAUSE_ASYNC = 2, }; typedef struct { A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_oem_data_event_fixed_param */ A_UINT32 data_len; /** length in byte of data[]. */ /* Event Cause reason from enum wmi_oem_data_evt_cause */ A_UINT32 event_cause; /* Following this structure is the TLV: * A_UINT8 data[]; <-- length in byte given by field data_len. * This data array contains OEM data, the payload begins with a field to tell the HOST regarding the kind of the OEM data. Loading Loading @@ -39221,6 +39259,17 @@ typedef struct { A_UINT32 remain_connect_on_saquery_timeout; } wmi_wfa_config_saquery; typedef struct { /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_wfa_config_ofdma */ A_UINT32 tlv_header; /* force_he_trigger_to_eht_sta * Possible values from host are: * 0 default behavior * 1 instead of sending EHT triggers to EHT stations, send HE triggers */ A_UINT32 force_he_trigger_to_eht_sta; } wmi_wfa_config_ofdma; typedef struct { /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_wfa_config_cmd_fixed_param */ A_UINT32 tlv_header; Loading @@ -39231,6 +39280,7 @@ typedef struct { * wmi_wfa_config_csa wfa_config_csa[]; (0 or 1 elements) * wmi_wfa_config_ocv wfa_config_ocv[]; (0 or 1 elements) * wmi_wfa_config_saquery wfa_config_saquery[]; (0 or 1 elements) * wmi_wfa_config_ofdma wfa_config_ofdma[]; (0 or 1 elements) */ } wmi_wfa_config_cmd_fixed_param; Loading Loading @@ -40033,6 +40083,45 @@ typedef struct { A_UINT32 initial_upload_period_ms; } wmi_health_mon_init_done_fixed_param; /** ODD **/ /* Livedump Data structures */ #define WMI_ODD_LIVEDUMP_RESP_SET_STATUS(status, val) \ WMI_SET_BITS(status, 0, 4, val) #define WMI_ODD_LIVEDUMP_RESP_GET_STATUS(status) \ WMI_GET_BITS(status, 0, 4) typedef enum { ODD_LIVEDUMP_STATUS_SUCCESS = 0, ODD_LIVEDUMP_STATUS_FAILURE, ODD_MAX_LIVEDUMP_STATUS, } odd_livedump_resp_status; typedef struct { A_UINT32 tlv_header; A_UINT32 odd_livedump_request_id; /* Following this structure is the TLV: * A_UINT32 odd_livedump_id_list[]; <-- array livedump_id list */ } wmi_livedump_request_cmd_fixed_param; typedef struct { A_UINT32 tlv_header; /* odd_livedump_request_id: * this echoes the request id that was sent in the wmi_livedump_cmd_param */ A_UINT32 odd_livedump_request_id; /* * 4 LSB's to indicate status of the odd_livedump_request_id processed * by the FW, the other 28bits to kept for future enhancements. * The status will be defined in the enum odd_livedump_resp_status * 0 - SUCCESS * 1 - FAILURE * Refer to the WMI_ODD_LIVEDUMP_RESP_SET,_GET_STATUS macros. */ A_UINT32 status; } wmi_livedump_response_event_fixed_param; /* ADD NEW DEFS HERE */