Loading fw/htt.h +79 −2 Original line number Diff line number Diff line /* * Copyright (c) 2011-2020 The Linux Foundation. All rights reserved. * Copyright (c) 2011-2021 The Linux Foundation. All rights reserved. * * Previously licensed under the ISC license by Qualcomm Atheros, Inc. * Loading Loading @@ -209,9 +209,10 @@ * 3.85 Add HTT_RX_PEER_META_DATA defs. * 3.86 Add HTT_T2H_MSG_TYPE_FSE_CMEM_BASE_SEND def. * 3.87 Add on-chip AST index field to PEER_MAP_V2 msg. * 3.88 Add HTT_H2T_MSG_TYPE_HOST_PADDR_SIZE def. */ #define HTT_CURRENT_VERSION_MAJOR 3 #define HTT_CURRENT_VERSION_MINOR 87 #define HTT_CURRENT_VERSION_MINOR 88 #define HTT_NUM_TX_FRAG_DESC 1024 Loading Loading @@ -523,6 +524,7 @@ enum htt_h2t_msg_type { HTT_H2T_MSG_TYPE_RX_FISA_CFG = 0x15, HTT_H2T_MSG_TYPE_3_TUPLE_HASH_CFG = 0x16, HTT_H2T_MSG_TYPE_RX_FULL_MONITOR_MODE = 0x17, HTT_H2T_MSG_TYPE_HOST_PADDR_SIZE = 0x18, /* keep this last */ HTT_H2T_NUM_MSGS Loading Loading @@ -6869,6 +6871,81 @@ PREPACK struct htt_h2t_msg_rx_3_tuple_hash_cfg_t { #define HTT_3_TUPLE_HASH_CFG_REQ_BYTES 8 /** * @brief HTT_H2T_MSG_TYPE_HOST_PADDR_SIZE message * * @details * The HTT_H2T_MSG_TYPE_HOST_PADDR_SIZE message is sent by the host to * provide the physical start address and size of each of the memory * areas within host DDR that the target FW may need to access. * * For example, the host can use this message to allow the target FW * to set up access to the host's pools of TQM link descriptors. * The message would appear as follows: * * |31 24|23 16|15 8|7 0| * |----------------+----------------+----------------+----------------| * | reserved | num_entries | msg_type | * |-=-=-=-=-=-=-=-=+-=-=-=-=-=-=-=-=+=-=-=-=-=-=-=-=-+=-=-=-=-=-=-=-=-| * | mem area 0 size | * |----------------+----------------+----------------+----------------| * | mem area 0 physical_address_lo | * |----------------+----------------+----------------+----------------| * | mem area 0 physical_address_hi | * |-=-=-=-=-=-=-=-=+-=-=-=-=-=-=-=-=+=-=-=-=-=-=-=-=-+=-=-=-=-=-=-=-=-| * | mem area 1 size | * |----------------+----------------+----------------+----------------| * | mem area 1 physical_address_lo | * |----------------+----------------+----------------+----------------| * | mem area 1 physical_address_hi | * |----------------+----------------+----------------+----------------| * ... * |-=-=-=-=-=-=-=-=+-=-=-=-=-=-=-=-=+=-=-=-=-=-=-=-=-+=-=-=-=-=-=-=-=-| * | mem area N size | * |----------------+----------------+----------------+----------------| * | mem area N physical_address_lo | * |----------------+----------------+----------------+----------------| * | mem area N physical_address_hi | * |----------------+----------------+----------------+----------------| * * The message is interpreted as follows: * dword0 - b'0:7 - msg_type: This will be set to * HTT_H2T_MSG_TYPE_HOST_PADDR_SIZE * b'8:15 - number_entries: Indicated the number of host memory * areas specified within the remainder of the message * b'16:31 - reserved. * dword1 - b'0:31 - memory area 0 size in bytes * dword2 - b'0:31 - memory area 0 physical address, lower 32 bits * dword3 - b'0:31 - memory area 0 physical address, upper 32 bits * and similar for memory area 1 through memory area N. */ PREPACK struct htt_h2t_host_paddr_size { A_UINT32 msg_type: 8, num_entries: 8, reserved: 16; } POSTPACK; PREPACK struct htt_h2t_host_paddr_size_entry_t { A_UINT32 size; A_UINT32 physical_address_lo; A_UINT32 physical_address_hi; } POSTPACK; #define HTT_H2T_HOST_PADDR_SIZE_ENTRY_SIZE (sizeof(struct htt_h2t_host_paddr_size_entry_t)) #define HTT_H2T_HOST_PADDR_SIZE_NUM_ENTRIES_M 0x0000FF00 #define HTT_H2T_HOST_PADDR_SIZE_NUM_ENTRIES_S 8 #define HTT_H2T_HOST_PADDR_SIZE_NUM_ENTRIES_GET(_var) \ (((_var) & HTT_H2T_HOST_PADDR_SIZE_NUM_ENTRIES_M) >> \ HTT_H2T_HOST_PADDR_SIZE_NUM_ENTRIES_S) #define HTT_H2T_HOST_PADDR_SIZE_NUM_ENTRIES_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_H2T_HOST_PADDR_SIZE_NUM_ENTRIES, _val); \ ((_var) |= ((_val) << HTT_H2T_HOST_PADDR_SIZE_NUM_ENTRIES_S)); \ } while (0) /*=== target -> host messages ===============================================*/ Loading fw/htt_stats.h +157 −0 Original line number Diff line number Diff line Loading @@ -540,6 +540,8 @@ typedef enum { HTT_STATS_DLPAGER_STATS_TAG = 120, /* htt_dlpager_stats_tlv */ HTT_STATS_PHY_COUNTERS_TAG = 121, /* htt_phy_counters_tlv */ HTT_STATS_PHY_STATS_TAG = 122, /* htt_phy_stats_tlv */ HTT_STATS_PHY_RESET_COUNTERS_TAG = 123, /* htt_phy_reset_counters_tlv */ HTT_STATS_PHY_RESET_STATS_TAG = 124, /* htt_phy_reset_stats_tlv */ HTT_STATS_MAX_TAG, Loading Loading @@ -5392,6 +5394,63 @@ typedef struct { #define HTT_MAX_PER_BLK_ERR_CNT 20 #define HTT_MAX_RX_OTA_ERR_CNT 14 typedef enum { HTT_STATS_CHANNEL_HALF_RATE = 0x0001, /* Half rate */ HTT_STATS_CHANNEL_QUARTER_RATE = 0x0002, /* Quarter rate */ HTT_STATS_CHANNEL_DFS = 0x0004, /* Enable radar event reporting */ HTT_STATS_CHANNEL_HOME = 0x0008, /* Home channel */ HTT_STATS_CHANNEL_PASSIVE_SCAN = 0x0010, /*Passive Scan */ HTT_STATS_CHANNEL_DFS_SAP_NOT_UP = 0x0020, /* set when VDEV_START_REQUEST, clear when VDEV_UP */ HTT_STATS_CHANNEL_PASSIVE_SCAN_CAL = 0x0040, /* need to do passive scan calibration to avoid "spikes" */ HTT_STATS_CHANNEL_DFS_SAP_UP = 0x0080, /* DFS master */ HTT_STATS_CHANNEL_DFS_CFREQ2 = 0x0100, /* Enable radar event reporting for sec80 in VHT80p80 */ HTT_STATS_CHANNEL_DTIM_SYNTH = 0x0200, /* Enable DTIM */ HTT_STATS_CHANNEL_FORCE_GAIN = 0x0400, /* Force gain mmode (only used for FTM) */ HTT_STATS_CHANNEL_PERFORM_NF_CAL = 0x0800, /* Perform NF cal in channel change (only used for FTM) */ HTT_STATS_CHANNEL_165_MODE_0 = 0x1000, /* 165 MHz mode 0 */ HTT_STATS_CHANNEL_165_MODE_1 = 0x2000, /* 165 MHz mode 1 */ HTT_STATS_CHANNEL_165_MODE_2 = 0x3000, /* 165 MHz mode 2 */ HTT_STATS_CHANNEL_165_MODE_MASK = 0x3000, /* 165 MHz 2-bit mode mask */ } HTT_STATS_CHANNEL_FLAGS; typedef enum { HTT_STATS_RF_MODE_MIN = 0, HTT_STATS_RF_MODE_PHYA_ONLY = 0, // only PHYA is active HTT_STATS_RF_MODE_DBS = 1, // PHYA/5G and PHYB/2G HTT_STATS_RF_MODE_SBS = 2, // PHYA/5G and PHYB/5G in HL/NPR; PHYA0/5G and PHYA1/5G in HK HTT_STATS_RF_MODE_PHYB_ONLY = 3, // only PHYB is active HTT_STATS_RF_MODE_DBS_SBS = 4, // PHYA0/5G, PHYA1/5G and PHYB/2G in HK (the 2 5G are in different channel) HTT_STATS_RF_MODE_DBS_OR_SBS = 5, // PHYA0/5G, PHYA1/5G and PHYB/5G or 2G in HK HTT_STATS_RF_MODE_INVALID = 0xff, } HTT_STATS_RF_MODE; typedef enum { HTT_STATS_RESET_CAUSE_FIRST_RESET = 0x00000001, /* First reset by application */ HTT_STATS_RESET_CAUSE_ERROR = 0x00000002, /* Trigered due to error */ HTT_STATS_RESET_CAUSE_DEEP_SLEEP = 0x00000004, /* Reset after deep sleep */ HTT_STATS_RESET_CAUSE_FULL_RESET = 0x00000008, /* Full reset without any optimizations */ HTT_STATS_RESET_CAUSE_CHANNEL_CHANGE = 0x00000010, /* For normal channel change */ HTT_STATS_RESET_CAUSE_BAND_CHANGE = 0x00000020, /* Trigered due to band change */ HTT_STATS_RESET_CAUSE_DO_CAL = 0x00000040, /* Trigered due to calibrations */ HTT_STATS_RESET_CAUSE_MCI_ERROR = 0x00000080, /* Triggered due to MCI ERROR */ HTT_STATS_RESET_CAUSE_CHWIDTH_CHANGE = 0x00000100, /* Trigered due to channel width change */ HTT_STATS_RESET_CAUSE_WARM_RESTORE_CAL = 0x00000200, /* Trigered due to warm reset we want to just restore calibrations */ HTT_STATS_RESET_CAUSE_COLD_RESTORE_CAL = 0x00000400, /* Trigered due to cold reset we want to just restore calibrations */ HTT_STATS_RESET_CAUSE_PHY_WARM_RESET = 0x00000800, /* Trigered due to phy warm reset we want to just restore calibrations */ HTT_STATS_RESET_CAUSE_M3_SSR = 0x00001000, /* Trigered due to SSR Restart */ HTT_STATS_RESET_CAUSE_FORCE_CAL = 0x00002000, /* Reset to force the calibration */ /* 0x00004000, 0x00008000 reserved */ HTT_STATS_NO_RESET_CHANNEL_CHANGE = 0x00010000, /* No reset, normal channel change */ HTT_STATS_NO_RESET_BAND_CHANGE = 0x00020000, /* No reset, channel change across band */ HTT_STATS_NO_RESET_CHWIDTH_CHANGE = 0x00040000, /* No reset, channel change across channel width */ HTT_STATS_NO_RESET_CHAINMASK_CHANGE = 0x00080000, /* No reset, chainmask change */ HTT_STATS_RESET_CAUSE_PHY_WARM_RESET_UCODE_TRIG = 0x00100000, /* Trigered due to phy warm reset we want to just restore calibrations */ HTT_STATS_RESET_CAUSE_PHY_OFF_TIMEOUT_RESET = 0x00200000, /* Reset ucode because phy off ack timeout*/ HTT_STATS_RESET_CAUSE_LMAC_RESET_UMAC_NOC_ERR = 0x00400000, /* LMAC reset trigered due to NOC Address/Slave error originating at LMAC */ HTT_STATS_NO_RESET_SCAN_BACK_TO_SAME_HOME_CHANNEL_CHANGE = 0x00800000, /* No reset, scan to home channel change */ } HTT_STATS_RESET_CAUSE; typedef struct { htt_tlv_hdr_t tlv_hdr; /* number of RXTD OFDMA OTA error counts except power surge and drop */ Loading Loading @@ -5462,8 +5521,104 @@ typedef struct { A_INT32 ani_level; /* running time in minutes since FW boot */ A_UINT32 fw_run_time; /* per chain runtime noise floor values in dBm */ A_INT32 runTime_nf_chain[HTT_STATS_MAX_CHAINS]; } htt_phy_stats_tlv; typedef struct { htt_tlv_hdr_t tlv_hdr; /* current pdev_id */ A_UINT32 pdev_id; /* current channel information */ A_UINT32 chan_mhz; /* center_freq1, center_freq2 in mhz */ A_UINT32 chan_band_center_freq1; A_UINT32 chan_band_center_freq2; /* chan_phy_mode - WLAN_PHY_MODE enum type */ A_UINT32 chan_phy_mode; /* chan_flags follows HTT_STATS_CHANNEL_FLAGS enum */ A_UINT32 chan_flags; /* channel Num updated to virtual phybase */ A_UINT32 chan_num; /* Cause for the phy reset - HTT_STATS_RESET_CAUSE */ A_UINT32 reset_cause; /* Cause for the previous phy reset */ A_UINT32 prev_reset_cause; /* source for the phywarm reset - HTT_STATS_RESET_CAUSE */ A_UINT32 phy_warm_reset_src; /* rxGain Table selection mode - register settings * 0 - Auto, 1/2 - Forced with and without BT override respectively */ A_UINT32 rx_gain_tbl_mode; /* current xbar value - perchain analog to digital idx mapping */ A_UINT32 xbar_val; /* Flag to indicate forced calibration */ A_UINT32 force_calibration; /* current RF mode (e.g. SBS/DBS) - follows HTT_STATS_RF_MODE enum */ A_UINT32 phyrf_mode; /* PDL phyInput stats */ /* homechannel flag * 1- Homechan, 0 - scan channel */ A_UINT32 phy_homechan; /* Tx and Rx chainmask */ A_UINT32 phy_tx_ch_mask; A_UINT32 phy_rx_ch_mask; /* INI masks - to decide the INI registers to be loaded on a reset */ A_UINT32 phybb_ini_mask; A_UINT32 phyrf_ini_mask; /* DFS,ADFS/Spectral scan enable masks */ A_UINT32 phy_dfs_en_mask; A_UINT32 phy_sscan_en_mask; A_UINT32 phy_synth_sel_mask; A_UINT32 phy_adfs_freq; /* CCK FIR settings * register settings - filter coefficients for Iqs conversion * [31:24] = FIR_COEFF_3_0 * [23:16] = FIR_COEFF_2_0 * [15:8] = FIR_COEFF_1_0 * [7:0] = FIR_COEFF_0_0 */ A_UINT32 cck_fir_settings; /* dynamic primary channel index * primary 20MHz channel index on the current channel BW */ A_UINT32 phy_dyn_pri_chan; /* Current CCA detection threshold * dB above noisefloor req for CCA * Register settings for all subbands */ A_UINT32 cca_thresh; /* status for dynamic CCA adjustment * 0-disabled, 1-enabled */ A_UINT32 dyn_cca_status; } htt_phy_reset_stats_tlv; typedef struct { htt_tlv_hdr_t tlv_hdr; /* current pdev_id */ A_UINT32 pdev_id; /* ucode PHYOFF pass/failure count */ A_UINT32 cf_active_low_fail_cnt; A_UINT32 cf_active_low_pass_cnt; /* PHYOFF count attempted through ucode VREG */ A_UINT32 phy_off_through_vreg_cnt; /* Force calibration count */ A_UINT32 force_calibration_cnt; /* phyoff count during rfmode switch */ A_UINT32 rf_mode_switch_phy_off_cnt; } htt_phy_reset_counters_tlv; /* NOTE: * This structure is for documentation, and cannot be safely used directly. * Instead, use the constituent TLV structures to fill/parse. Loading @@ -5471,6 +5626,8 @@ typedef struct { typedef struct { htt_phy_counters_tlv phy_counters; htt_phy_stats_tlv phy_stats; htt_phy_reset_counters_tlv phy_reset_counters; htt_phy_reset_stats_tlv phy_reset_stats; } htt_phy_counters_and_phy_stats_t; #endif /* __HTT_STATS_H__ */ fw/wlan_module_ids.h +1 −0 Original line number Diff line number Diff line Loading @@ -119,6 +119,7 @@ typedef enum { WLAN_MODULE_CODE_COVER, /* 0x55 */ /* code coverage */ WLAN_MODULE_SHO, /* 0x56 */ /* SAP HW offload */ WLAN_MODULE_MLO_MGR, /* 0x57 */ /* MLO manager */ WLAN_MODULE_PEER_INIT, /* 0x58 */ /* peer init connection handling */ WLAN_MODULE_ID_MAX, Loading fw/wmi_services.h +4 −1 Original line number Diff line number Diff line Loading @@ -525,7 +525,10 @@ typedef enum { WMI_SERVICE_EXT_TPC_REG_SUPPORT = 280, /* Support for new 6G TPC power limits */ WMI_SERVICE_REG_CC_EXT_EVENT_SUPPORT = 281, /* Support for Extended REG_CC Event with additional params for 6G */ WMI_SERVICE_NDI_TXBF_SUPPORT = 282, /* Indicates FW support for Tx beamforming with NDI VDEV */ WMI_SERVICE_6G_EDGE_CHANNEL_SUPPORT = 283, /* Indicates FW Support for 6GHz Edge Channels */ WMI_SERVICE_ENABLE_LOWER_6G_EDGE_CH_SUPP = 283, /* Indicates FW support for enabling lower 6 GHz edge channel 5935 */ WMI_SERVICE_DISABLE_UPPER_6G_EDGE_CH_SUPP = 284, /* Indicates FW support for disabling upper 6 GHz edge channel 7115 */ WMI_SERVICE_FORCED_DTIM_SUPP = 285, /* Indicates FW supports forced DTIM configuration */ WMI_SERVICE_DCS_AWGN_INT_SUPPORT = 286, /* Indicates FW supports AWGN Int */ WMI_MAX_EXT2_SERVICE Loading fw/wmi_tlv_defs.h +52 −5 Original line number Diff line number Diff line Loading @@ -1139,6 +1139,16 @@ typedef enum { WMITLV_TAG_STRUC_wmi_big_data_dp_stats_tlv_param, WMITLV_TAG_STRUC_wmi_pdev_get_dpd_status_cmd_fixed_param, WMITLV_TAG_STRUC_wmi_pdev_get_dpd_status_evt_fixed_param, WMITLV_TAG_STRUC_wmi_eht_rate_set, WMITLV_TAG_STRUC_wmi_dcs_awgn_int_t, WMITLV_TAG_STRUC_wmi_mlo_tx_send_params, WMITLV_TAG_STRUC_wmi_partner_link_params, WMITLV_TAG_STRUC_wmi_peer_assoc_mlo_partner_link_params, WMITLV_TAG_STRUC_wmi_mlo_setup_cmd_fixed_param, WMITLV_TAG_STRUC_wmi_mlo_setup_complete_event_fixed_param, WMITLV_TAG_STRUC_wmi_mlo_ready_cmd_fixed_param, WMITLV_TAG_STRUC_wmi_mlo_teardown_fixed_param, WMITLV_TAG_STRUC_wmi_mlo_teardown_complete_fixed_param, } WMITLV_TAG_ID; /* Loading Loading @@ -1597,6 +1607,9 @@ typedef enum { OP(WMI_PEER_TID_LATENCY_CONFIG_CMDID) \ OP(WMI_MLO_LINK_SET_ACTIVE_CMDID) \ OP(WMI_PDEV_GET_DPD_STATUS_CMDID) \ OP(WMI_MLO_SETUP_CMDID) \ OP(WMI_MLO_READY_CMDID) \ OP(WMI_MLO_TEARDOWN_CMDID) \ /* add new CMD_LIST elements above this line */ Loading Loading @@ -1860,6 +1873,8 @@ typedef enum { OP(WMI_TWT_NOTIFY_EVENTID) \ OP(WMI_MLO_LINK_SET_ACTIVE_RESP_EVENTID) \ OP(WMI_PDEV_GET_DPD_STATUS_EVENTID) \ OP(WMI_MLO_SETUP_COMPLETE_EVENTID) \ OP(WMI_MLO_TEARDOWN_COMPLETE_EVENTID) \ /* add new EVT_LIST elements above this line */ Loading Loading @@ -2239,7 +2254,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SET_WMM_PARAMS_CMDID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_start_request_cmd_fixed_param, wmi_vdev_start_request_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_channel, wmi_channel, chan, WMITLV_SIZE_FIX) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_p2p_noa_descriptor, noa_descriptors, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_vdev_start_mlo_params, mlo_params, WMITLV_SIZE_VAR) WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_vdev_start_mlo_params, mlo_params, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_partner_link_params, partner_link_params, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_START_REQUEST_CMDID); Loading Loading @@ -2333,7 +2349,9 @@ WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_IPSEC_NATKEEPALIVE_FILTER_CMDID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, peer_ht_rates, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vht_rate_set, wmi_vht_rate_set, peer_vht_rates, WMITLV_SIZE_FIX) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_he_rate_set, peer_he_rates, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_assoc_mlo_params, mlo_params, WMITLV_SIZE_VAR) WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_assoc_mlo_params, mlo_params, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_eht_rate_set, peer_eht_rates, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_assoc_mlo_partner_link_params, partner_link_params, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_PEER_ASSOC_CMDID); Loading Loading @@ -2555,7 +2573,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_REQUEST_WLM_STATS_CMDID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_enlo_candidate_score_param, enlo_candidate_score_params, candidate_score_params, WMITLV_SIZE_FIX)\ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_vendor_oui, vendor_oui, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_connected_nlo_rssi_params, connected_nlo_rssi_params, cnlo_rssi_params, WMITLV_SIZE_FIX) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, connected_nlo_bss_band_rssi_pref, cnlo_bss_band_rssi_pref, WMITLV_SIZE_VAR) WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, connected_nlo_bss_band_rssi_pref, cnlo_bss_band_rssi_pref, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, preferred_chan_list, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_NETWORK_LIST_OFFLOAD_CONFIG_CMDID); /* Passpoint list offload config Cmd */ Loading Loading @@ -2704,7 +2723,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_MGMT_TX_CMDID); #define WMITLV_TABLE_WMI_MGMT_TX_SEND_CMDID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mgmt_tx_send_cmd_fixed_param, wmi_mgmt_tx_send_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, bufp, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_tx_send_params, wmi_tx_send_params, tx_send_params, WMITLV_SIZE_FIX) WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_tx_send_params, wmi_tx_send_params, tx_send_params, WMITLV_SIZE_FIX) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_mlo_tx_send_params, mlo_tx_send_params, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_MGMT_TX_SEND_CMDID); Loading Loading @@ -4606,6 +4626,22 @@ WMITLV_CREATE_PARAM_STRUC(WMI_MLO_LINK_SET_ACTIVE_CMDID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_get_dpd_status_cmd_fixed_param, wmi_pdev_get_dpd_status_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_GET_DPD_STATUS_CMDID); /** WMI cmd used to indicate hw_links part of MLO */ #define WMITLV_TABLE_WMI_MLO_SETUP_CMDID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mlo_setup_cmd_fixed_param, wmi_mlo_setup_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, hw_link_ids, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_MLO_SETUP_CMDID); /** WMI cmd used for init synchronization of hw_links part of MLO */ #define WMITLV_TABLE_WMI_MLO_READY_CMDID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mlo_ready_cmd_fixed_param, wmi_mlo_ready_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_MLO_READY_CMDID); /** WMI cmd used for tearing down a hw_link part of MLO */ #define WMITLV_TABLE_WMI_MLO_TEARDOWN_CMDID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mlo_teardown_fixed_param, wmi_mlo_teardown_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_MLO_TEARDOWN_CMDID); /************************** TLV definitions of WMI events *******************************/ Loading Loading @@ -5025,7 +5061,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_GTK_OFFLOAD_STATUS_EVENTID); #define WMITLV_TABLE_WMI_DCS_INTERFERENCE_EVENTID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_dcs_interference_event_fixed_param, wmi_dcs_interference_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wlan_dcs_cw_int, cw_int, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wlan_dcs_im_tgt_stats_t, wlan_stat, WMITLV_SIZE_VAR) WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wlan_dcs_im_tgt_stats_t, wlan_stat, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_dcs_awgn_int_t, awgn_int, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_DCS_INTERFERENCE_EVENTID); /* Profile data Event */ Loading Loading @@ -6219,6 +6256,16 @@ WMITLV_CREATE_PARAM_STRUC(WMI_MLO_LINK_SET_ACTIVE_RESP_EVENTID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_get_dpd_status_evt_fixed_param, wmi_pdev_get_dpd_status_evt_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_GET_DPD_STATUS_EVENTID); /* Response event for MLO setup cmd */ #define WMITLV_TABLE_WMI_MLO_SETUP_COMPLETE_EVENTID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mlo_setup_complete_event_fixed_param, wmi_mlo_setup_complete_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_MLO_SETUP_COMPLETE_EVENTID); /* Response event for MLO teardown cmd */ #define WMITLV_TABLE_WMI_MLO_TEARDOWN_COMPLETE_EVENTID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mlo_teardown_complete_fixed_param, wmi_mlo_teardown_complete_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_MLO_TEARDOWN_COMPLETE_EVENTID); #ifdef __cplusplus } Loading Loading
fw/htt.h +79 −2 Original line number Diff line number Diff line /* * Copyright (c) 2011-2020 The Linux Foundation. All rights reserved. * Copyright (c) 2011-2021 The Linux Foundation. All rights reserved. * * Previously licensed under the ISC license by Qualcomm Atheros, Inc. * Loading Loading @@ -209,9 +209,10 @@ * 3.85 Add HTT_RX_PEER_META_DATA defs. * 3.86 Add HTT_T2H_MSG_TYPE_FSE_CMEM_BASE_SEND def. * 3.87 Add on-chip AST index field to PEER_MAP_V2 msg. * 3.88 Add HTT_H2T_MSG_TYPE_HOST_PADDR_SIZE def. */ #define HTT_CURRENT_VERSION_MAJOR 3 #define HTT_CURRENT_VERSION_MINOR 87 #define HTT_CURRENT_VERSION_MINOR 88 #define HTT_NUM_TX_FRAG_DESC 1024 Loading Loading @@ -523,6 +524,7 @@ enum htt_h2t_msg_type { HTT_H2T_MSG_TYPE_RX_FISA_CFG = 0x15, HTT_H2T_MSG_TYPE_3_TUPLE_HASH_CFG = 0x16, HTT_H2T_MSG_TYPE_RX_FULL_MONITOR_MODE = 0x17, HTT_H2T_MSG_TYPE_HOST_PADDR_SIZE = 0x18, /* keep this last */ HTT_H2T_NUM_MSGS Loading Loading @@ -6869,6 +6871,81 @@ PREPACK struct htt_h2t_msg_rx_3_tuple_hash_cfg_t { #define HTT_3_TUPLE_HASH_CFG_REQ_BYTES 8 /** * @brief HTT_H2T_MSG_TYPE_HOST_PADDR_SIZE message * * @details * The HTT_H2T_MSG_TYPE_HOST_PADDR_SIZE message is sent by the host to * provide the physical start address and size of each of the memory * areas within host DDR that the target FW may need to access. * * For example, the host can use this message to allow the target FW * to set up access to the host's pools of TQM link descriptors. * The message would appear as follows: * * |31 24|23 16|15 8|7 0| * |----------------+----------------+----------------+----------------| * | reserved | num_entries | msg_type | * |-=-=-=-=-=-=-=-=+-=-=-=-=-=-=-=-=+=-=-=-=-=-=-=-=-+=-=-=-=-=-=-=-=-| * | mem area 0 size | * |----------------+----------------+----------------+----------------| * | mem area 0 physical_address_lo | * |----------------+----------------+----------------+----------------| * | mem area 0 physical_address_hi | * |-=-=-=-=-=-=-=-=+-=-=-=-=-=-=-=-=+=-=-=-=-=-=-=-=-+=-=-=-=-=-=-=-=-| * | mem area 1 size | * |----------------+----------------+----------------+----------------| * | mem area 1 physical_address_lo | * |----------------+----------------+----------------+----------------| * | mem area 1 physical_address_hi | * |----------------+----------------+----------------+----------------| * ... * |-=-=-=-=-=-=-=-=+-=-=-=-=-=-=-=-=+=-=-=-=-=-=-=-=-+=-=-=-=-=-=-=-=-| * | mem area N size | * |----------------+----------------+----------------+----------------| * | mem area N physical_address_lo | * |----------------+----------------+----------------+----------------| * | mem area N physical_address_hi | * |----------------+----------------+----------------+----------------| * * The message is interpreted as follows: * dword0 - b'0:7 - msg_type: This will be set to * HTT_H2T_MSG_TYPE_HOST_PADDR_SIZE * b'8:15 - number_entries: Indicated the number of host memory * areas specified within the remainder of the message * b'16:31 - reserved. * dword1 - b'0:31 - memory area 0 size in bytes * dword2 - b'0:31 - memory area 0 physical address, lower 32 bits * dword3 - b'0:31 - memory area 0 physical address, upper 32 bits * and similar for memory area 1 through memory area N. */ PREPACK struct htt_h2t_host_paddr_size { A_UINT32 msg_type: 8, num_entries: 8, reserved: 16; } POSTPACK; PREPACK struct htt_h2t_host_paddr_size_entry_t { A_UINT32 size; A_UINT32 physical_address_lo; A_UINT32 physical_address_hi; } POSTPACK; #define HTT_H2T_HOST_PADDR_SIZE_ENTRY_SIZE (sizeof(struct htt_h2t_host_paddr_size_entry_t)) #define HTT_H2T_HOST_PADDR_SIZE_NUM_ENTRIES_M 0x0000FF00 #define HTT_H2T_HOST_PADDR_SIZE_NUM_ENTRIES_S 8 #define HTT_H2T_HOST_PADDR_SIZE_NUM_ENTRIES_GET(_var) \ (((_var) & HTT_H2T_HOST_PADDR_SIZE_NUM_ENTRIES_M) >> \ HTT_H2T_HOST_PADDR_SIZE_NUM_ENTRIES_S) #define HTT_H2T_HOST_PADDR_SIZE_NUM_ENTRIES_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_H2T_HOST_PADDR_SIZE_NUM_ENTRIES, _val); \ ((_var) |= ((_val) << HTT_H2T_HOST_PADDR_SIZE_NUM_ENTRIES_S)); \ } while (0) /*=== target -> host messages ===============================================*/ Loading
fw/htt_stats.h +157 −0 Original line number Diff line number Diff line Loading @@ -540,6 +540,8 @@ typedef enum { HTT_STATS_DLPAGER_STATS_TAG = 120, /* htt_dlpager_stats_tlv */ HTT_STATS_PHY_COUNTERS_TAG = 121, /* htt_phy_counters_tlv */ HTT_STATS_PHY_STATS_TAG = 122, /* htt_phy_stats_tlv */ HTT_STATS_PHY_RESET_COUNTERS_TAG = 123, /* htt_phy_reset_counters_tlv */ HTT_STATS_PHY_RESET_STATS_TAG = 124, /* htt_phy_reset_stats_tlv */ HTT_STATS_MAX_TAG, Loading Loading @@ -5392,6 +5394,63 @@ typedef struct { #define HTT_MAX_PER_BLK_ERR_CNT 20 #define HTT_MAX_RX_OTA_ERR_CNT 14 typedef enum { HTT_STATS_CHANNEL_HALF_RATE = 0x0001, /* Half rate */ HTT_STATS_CHANNEL_QUARTER_RATE = 0x0002, /* Quarter rate */ HTT_STATS_CHANNEL_DFS = 0x0004, /* Enable radar event reporting */ HTT_STATS_CHANNEL_HOME = 0x0008, /* Home channel */ HTT_STATS_CHANNEL_PASSIVE_SCAN = 0x0010, /*Passive Scan */ HTT_STATS_CHANNEL_DFS_SAP_NOT_UP = 0x0020, /* set when VDEV_START_REQUEST, clear when VDEV_UP */ HTT_STATS_CHANNEL_PASSIVE_SCAN_CAL = 0x0040, /* need to do passive scan calibration to avoid "spikes" */ HTT_STATS_CHANNEL_DFS_SAP_UP = 0x0080, /* DFS master */ HTT_STATS_CHANNEL_DFS_CFREQ2 = 0x0100, /* Enable radar event reporting for sec80 in VHT80p80 */ HTT_STATS_CHANNEL_DTIM_SYNTH = 0x0200, /* Enable DTIM */ HTT_STATS_CHANNEL_FORCE_GAIN = 0x0400, /* Force gain mmode (only used for FTM) */ HTT_STATS_CHANNEL_PERFORM_NF_CAL = 0x0800, /* Perform NF cal in channel change (only used for FTM) */ HTT_STATS_CHANNEL_165_MODE_0 = 0x1000, /* 165 MHz mode 0 */ HTT_STATS_CHANNEL_165_MODE_1 = 0x2000, /* 165 MHz mode 1 */ HTT_STATS_CHANNEL_165_MODE_2 = 0x3000, /* 165 MHz mode 2 */ HTT_STATS_CHANNEL_165_MODE_MASK = 0x3000, /* 165 MHz 2-bit mode mask */ } HTT_STATS_CHANNEL_FLAGS; typedef enum { HTT_STATS_RF_MODE_MIN = 0, HTT_STATS_RF_MODE_PHYA_ONLY = 0, // only PHYA is active HTT_STATS_RF_MODE_DBS = 1, // PHYA/5G and PHYB/2G HTT_STATS_RF_MODE_SBS = 2, // PHYA/5G and PHYB/5G in HL/NPR; PHYA0/5G and PHYA1/5G in HK HTT_STATS_RF_MODE_PHYB_ONLY = 3, // only PHYB is active HTT_STATS_RF_MODE_DBS_SBS = 4, // PHYA0/5G, PHYA1/5G and PHYB/2G in HK (the 2 5G are in different channel) HTT_STATS_RF_MODE_DBS_OR_SBS = 5, // PHYA0/5G, PHYA1/5G and PHYB/5G or 2G in HK HTT_STATS_RF_MODE_INVALID = 0xff, } HTT_STATS_RF_MODE; typedef enum { HTT_STATS_RESET_CAUSE_FIRST_RESET = 0x00000001, /* First reset by application */ HTT_STATS_RESET_CAUSE_ERROR = 0x00000002, /* Trigered due to error */ HTT_STATS_RESET_CAUSE_DEEP_SLEEP = 0x00000004, /* Reset after deep sleep */ HTT_STATS_RESET_CAUSE_FULL_RESET = 0x00000008, /* Full reset without any optimizations */ HTT_STATS_RESET_CAUSE_CHANNEL_CHANGE = 0x00000010, /* For normal channel change */ HTT_STATS_RESET_CAUSE_BAND_CHANGE = 0x00000020, /* Trigered due to band change */ HTT_STATS_RESET_CAUSE_DO_CAL = 0x00000040, /* Trigered due to calibrations */ HTT_STATS_RESET_CAUSE_MCI_ERROR = 0x00000080, /* Triggered due to MCI ERROR */ HTT_STATS_RESET_CAUSE_CHWIDTH_CHANGE = 0x00000100, /* Trigered due to channel width change */ HTT_STATS_RESET_CAUSE_WARM_RESTORE_CAL = 0x00000200, /* Trigered due to warm reset we want to just restore calibrations */ HTT_STATS_RESET_CAUSE_COLD_RESTORE_CAL = 0x00000400, /* Trigered due to cold reset we want to just restore calibrations */ HTT_STATS_RESET_CAUSE_PHY_WARM_RESET = 0x00000800, /* Trigered due to phy warm reset we want to just restore calibrations */ HTT_STATS_RESET_CAUSE_M3_SSR = 0x00001000, /* Trigered due to SSR Restart */ HTT_STATS_RESET_CAUSE_FORCE_CAL = 0x00002000, /* Reset to force the calibration */ /* 0x00004000, 0x00008000 reserved */ HTT_STATS_NO_RESET_CHANNEL_CHANGE = 0x00010000, /* No reset, normal channel change */ HTT_STATS_NO_RESET_BAND_CHANGE = 0x00020000, /* No reset, channel change across band */ HTT_STATS_NO_RESET_CHWIDTH_CHANGE = 0x00040000, /* No reset, channel change across channel width */ HTT_STATS_NO_RESET_CHAINMASK_CHANGE = 0x00080000, /* No reset, chainmask change */ HTT_STATS_RESET_CAUSE_PHY_WARM_RESET_UCODE_TRIG = 0x00100000, /* Trigered due to phy warm reset we want to just restore calibrations */ HTT_STATS_RESET_CAUSE_PHY_OFF_TIMEOUT_RESET = 0x00200000, /* Reset ucode because phy off ack timeout*/ HTT_STATS_RESET_CAUSE_LMAC_RESET_UMAC_NOC_ERR = 0x00400000, /* LMAC reset trigered due to NOC Address/Slave error originating at LMAC */ HTT_STATS_NO_RESET_SCAN_BACK_TO_SAME_HOME_CHANNEL_CHANGE = 0x00800000, /* No reset, scan to home channel change */ } HTT_STATS_RESET_CAUSE; typedef struct { htt_tlv_hdr_t tlv_hdr; /* number of RXTD OFDMA OTA error counts except power surge and drop */ Loading Loading @@ -5462,8 +5521,104 @@ typedef struct { A_INT32 ani_level; /* running time in minutes since FW boot */ A_UINT32 fw_run_time; /* per chain runtime noise floor values in dBm */ A_INT32 runTime_nf_chain[HTT_STATS_MAX_CHAINS]; } htt_phy_stats_tlv; typedef struct { htt_tlv_hdr_t tlv_hdr; /* current pdev_id */ A_UINT32 pdev_id; /* current channel information */ A_UINT32 chan_mhz; /* center_freq1, center_freq2 in mhz */ A_UINT32 chan_band_center_freq1; A_UINT32 chan_band_center_freq2; /* chan_phy_mode - WLAN_PHY_MODE enum type */ A_UINT32 chan_phy_mode; /* chan_flags follows HTT_STATS_CHANNEL_FLAGS enum */ A_UINT32 chan_flags; /* channel Num updated to virtual phybase */ A_UINT32 chan_num; /* Cause for the phy reset - HTT_STATS_RESET_CAUSE */ A_UINT32 reset_cause; /* Cause for the previous phy reset */ A_UINT32 prev_reset_cause; /* source for the phywarm reset - HTT_STATS_RESET_CAUSE */ A_UINT32 phy_warm_reset_src; /* rxGain Table selection mode - register settings * 0 - Auto, 1/2 - Forced with and without BT override respectively */ A_UINT32 rx_gain_tbl_mode; /* current xbar value - perchain analog to digital idx mapping */ A_UINT32 xbar_val; /* Flag to indicate forced calibration */ A_UINT32 force_calibration; /* current RF mode (e.g. SBS/DBS) - follows HTT_STATS_RF_MODE enum */ A_UINT32 phyrf_mode; /* PDL phyInput stats */ /* homechannel flag * 1- Homechan, 0 - scan channel */ A_UINT32 phy_homechan; /* Tx and Rx chainmask */ A_UINT32 phy_tx_ch_mask; A_UINT32 phy_rx_ch_mask; /* INI masks - to decide the INI registers to be loaded on a reset */ A_UINT32 phybb_ini_mask; A_UINT32 phyrf_ini_mask; /* DFS,ADFS/Spectral scan enable masks */ A_UINT32 phy_dfs_en_mask; A_UINT32 phy_sscan_en_mask; A_UINT32 phy_synth_sel_mask; A_UINT32 phy_adfs_freq; /* CCK FIR settings * register settings - filter coefficients for Iqs conversion * [31:24] = FIR_COEFF_3_0 * [23:16] = FIR_COEFF_2_0 * [15:8] = FIR_COEFF_1_0 * [7:0] = FIR_COEFF_0_0 */ A_UINT32 cck_fir_settings; /* dynamic primary channel index * primary 20MHz channel index on the current channel BW */ A_UINT32 phy_dyn_pri_chan; /* Current CCA detection threshold * dB above noisefloor req for CCA * Register settings for all subbands */ A_UINT32 cca_thresh; /* status for dynamic CCA adjustment * 0-disabled, 1-enabled */ A_UINT32 dyn_cca_status; } htt_phy_reset_stats_tlv; typedef struct { htt_tlv_hdr_t tlv_hdr; /* current pdev_id */ A_UINT32 pdev_id; /* ucode PHYOFF pass/failure count */ A_UINT32 cf_active_low_fail_cnt; A_UINT32 cf_active_low_pass_cnt; /* PHYOFF count attempted through ucode VREG */ A_UINT32 phy_off_through_vreg_cnt; /* Force calibration count */ A_UINT32 force_calibration_cnt; /* phyoff count during rfmode switch */ A_UINT32 rf_mode_switch_phy_off_cnt; } htt_phy_reset_counters_tlv; /* NOTE: * This structure is for documentation, and cannot be safely used directly. * Instead, use the constituent TLV structures to fill/parse. Loading @@ -5471,6 +5626,8 @@ typedef struct { typedef struct { htt_phy_counters_tlv phy_counters; htt_phy_stats_tlv phy_stats; htt_phy_reset_counters_tlv phy_reset_counters; htt_phy_reset_stats_tlv phy_reset_stats; } htt_phy_counters_and_phy_stats_t; #endif /* __HTT_STATS_H__ */
fw/wlan_module_ids.h +1 −0 Original line number Diff line number Diff line Loading @@ -119,6 +119,7 @@ typedef enum { WLAN_MODULE_CODE_COVER, /* 0x55 */ /* code coverage */ WLAN_MODULE_SHO, /* 0x56 */ /* SAP HW offload */ WLAN_MODULE_MLO_MGR, /* 0x57 */ /* MLO manager */ WLAN_MODULE_PEER_INIT, /* 0x58 */ /* peer init connection handling */ WLAN_MODULE_ID_MAX, Loading
fw/wmi_services.h +4 −1 Original line number Diff line number Diff line Loading @@ -525,7 +525,10 @@ typedef enum { WMI_SERVICE_EXT_TPC_REG_SUPPORT = 280, /* Support for new 6G TPC power limits */ WMI_SERVICE_REG_CC_EXT_EVENT_SUPPORT = 281, /* Support for Extended REG_CC Event with additional params for 6G */ WMI_SERVICE_NDI_TXBF_SUPPORT = 282, /* Indicates FW support for Tx beamforming with NDI VDEV */ WMI_SERVICE_6G_EDGE_CHANNEL_SUPPORT = 283, /* Indicates FW Support for 6GHz Edge Channels */ WMI_SERVICE_ENABLE_LOWER_6G_EDGE_CH_SUPP = 283, /* Indicates FW support for enabling lower 6 GHz edge channel 5935 */ WMI_SERVICE_DISABLE_UPPER_6G_EDGE_CH_SUPP = 284, /* Indicates FW support for disabling upper 6 GHz edge channel 7115 */ WMI_SERVICE_FORCED_DTIM_SUPP = 285, /* Indicates FW supports forced DTIM configuration */ WMI_SERVICE_DCS_AWGN_INT_SUPPORT = 286, /* Indicates FW supports AWGN Int */ WMI_MAX_EXT2_SERVICE Loading
fw/wmi_tlv_defs.h +52 −5 Original line number Diff line number Diff line Loading @@ -1139,6 +1139,16 @@ typedef enum { WMITLV_TAG_STRUC_wmi_big_data_dp_stats_tlv_param, WMITLV_TAG_STRUC_wmi_pdev_get_dpd_status_cmd_fixed_param, WMITLV_TAG_STRUC_wmi_pdev_get_dpd_status_evt_fixed_param, WMITLV_TAG_STRUC_wmi_eht_rate_set, WMITLV_TAG_STRUC_wmi_dcs_awgn_int_t, WMITLV_TAG_STRUC_wmi_mlo_tx_send_params, WMITLV_TAG_STRUC_wmi_partner_link_params, WMITLV_TAG_STRUC_wmi_peer_assoc_mlo_partner_link_params, WMITLV_TAG_STRUC_wmi_mlo_setup_cmd_fixed_param, WMITLV_TAG_STRUC_wmi_mlo_setup_complete_event_fixed_param, WMITLV_TAG_STRUC_wmi_mlo_ready_cmd_fixed_param, WMITLV_TAG_STRUC_wmi_mlo_teardown_fixed_param, WMITLV_TAG_STRUC_wmi_mlo_teardown_complete_fixed_param, } WMITLV_TAG_ID; /* Loading Loading @@ -1597,6 +1607,9 @@ typedef enum { OP(WMI_PEER_TID_LATENCY_CONFIG_CMDID) \ OP(WMI_MLO_LINK_SET_ACTIVE_CMDID) \ OP(WMI_PDEV_GET_DPD_STATUS_CMDID) \ OP(WMI_MLO_SETUP_CMDID) \ OP(WMI_MLO_READY_CMDID) \ OP(WMI_MLO_TEARDOWN_CMDID) \ /* add new CMD_LIST elements above this line */ Loading Loading @@ -1860,6 +1873,8 @@ typedef enum { OP(WMI_TWT_NOTIFY_EVENTID) \ OP(WMI_MLO_LINK_SET_ACTIVE_RESP_EVENTID) \ OP(WMI_PDEV_GET_DPD_STATUS_EVENTID) \ OP(WMI_MLO_SETUP_COMPLETE_EVENTID) \ OP(WMI_MLO_TEARDOWN_COMPLETE_EVENTID) \ /* add new EVT_LIST elements above this line */ Loading Loading @@ -2239,7 +2254,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SET_WMM_PARAMS_CMDID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_start_request_cmd_fixed_param, wmi_vdev_start_request_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_channel, wmi_channel, chan, WMITLV_SIZE_FIX) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_p2p_noa_descriptor, noa_descriptors, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_vdev_start_mlo_params, mlo_params, WMITLV_SIZE_VAR) WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_vdev_start_mlo_params, mlo_params, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_partner_link_params, partner_link_params, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_START_REQUEST_CMDID); Loading Loading @@ -2333,7 +2349,9 @@ WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_IPSEC_NATKEEPALIVE_FILTER_CMDID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, peer_ht_rates, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vht_rate_set, wmi_vht_rate_set, peer_vht_rates, WMITLV_SIZE_FIX) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_he_rate_set, peer_he_rates, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_assoc_mlo_params, mlo_params, WMITLV_SIZE_VAR) WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_assoc_mlo_params, mlo_params, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_eht_rate_set, peer_eht_rates, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_assoc_mlo_partner_link_params, partner_link_params, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_PEER_ASSOC_CMDID); Loading Loading @@ -2555,7 +2573,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_REQUEST_WLM_STATS_CMDID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_enlo_candidate_score_param, enlo_candidate_score_params, candidate_score_params, WMITLV_SIZE_FIX)\ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_vendor_oui, vendor_oui, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_connected_nlo_rssi_params, connected_nlo_rssi_params, cnlo_rssi_params, WMITLV_SIZE_FIX) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, connected_nlo_bss_band_rssi_pref, cnlo_bss_band_rssi_pref, WMITLV_SIZE_VAR) WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, connected_nlo_bss_band_rssi_pref, cnlo_bss_band_rssi_pref, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, preferred_chan_list, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_NETWORK_LIST_OFFLOAD_CONFIG_CMDID); /* Passpoint list offload config Cmd */ Loading Loading @@ -2704,7 +2723,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_MGMT_TX_CMDID); #define WMITLV_TABLE_WMI_MGMT_TX_SEND_CMDID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mgmt_tx_send_cmd_fixed_param, wmi_mgmt_tx_send_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, bufp, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_tx_send_params, wmi_tx_send_params, tx_send_params, WMITLV_SIZE_FIX) WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_tx_send_params, wmi_tx_send_params, tx_send_params, WMITLV_SIZE_FIX) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_mlo_tx_send_params, mlo_tx_send_params, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_MGMT_TX_SEND_CMDID); Loading Loading @@ -4606,6 +4626,22 @@ WMITLV_CREATE_PARAM_STRUC(WMI_MLO_LINK_SET_ACTIVE_CMDID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_get_dpd_status_cmd_fixed_param, wmi_pdev_get_dpd_status_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_GET_DPD_STATUS_CMDID); /** WMI cmd used to indicate hw_links part of MLO */ #define WMITLV_TABLE_WMI_MLO_SETUP_CMDID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mlo_setup_cmd_fixed_param, wmi_mlo_setup_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, hw_link_ids, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_MLO_SETUP_CMDID); /** WMI cmd used for init synchronization of hw_links part of MLO */ #define WMITLV_TABLE_WMI_MLO_READY_CMDID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mlo_ready_cmd_fixed_param, wmi_mlo_ready_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_MLO_READY_CMDID); /** WMI cmd used for tearing down a hw_link part of MLO */ #define WMITLV_TABLE_WMI_MLO_TEARDOWN_CMDID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mlo_teardown_fixed_param, wmi_mlo_teardown_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_MLO_TEARDOWN_CMDID); /************************** TLV definitions of WMI events *******************************/ Loading Loading @@ -5025,7 +5061,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_GTK_OFFLOAD_STATUS_EVENTID); #define WMITLV_TABLE_WMI_DCS_INTERFERENCE_EVENTID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_dcs_interference_event_fixed_param, wmi_dcs_interference_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wlan_dcs_cw_int, cw_int, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wlan_dcs_im_tgt_stats_t, wlan_stat, WMITLV_SIZE_VAR) WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wlan_dcs_im_tgt_stats_t, wlan_stat, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_dcs_awgn_int_t, awgn_int, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_DCS_INTERFERENCE_EVENTID); /* Profile data Event */ Loading Loading @@ -6219,6 +6256,16 @@ WMITLV_CREATE_PARAM_STRUC(WMI_MLO_LINK_SET_ACTIVE_RESP_EVENTID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_get_dpd_status_evt_fixed_param, wmi_pdev_get_dpd_status_evt_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_GET_DPD_STATUS_EVENTID); /* Response event for MLO setup cmd */ #define WMITLV_TABLE_WMI_MLO_SETUP_COMPLETE_EVENTID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mlo_setup_complete_event_fixed_param, wmi_mlo_setup_complete_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_MLO_SETUP_COMPLETE_EVENTID); /* Response event for MLO teardown cmd */ #define WMITLV_TABLE_WMI_MLO_TEARDOWN_COMPLETE_EVENTID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mlo_teardown_complete_fixed_param, wmi_mlo_teardown_complete_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_MLO_TEARDOWN_COMPLETE_EVENTID); #ifdef __cplusplus } Loading