Loading fw/htt.h +164 −32 Original line number Diff line number Diff line Loading @@ -260,9 +260,11 @@ * msg defs. * 3.131 Add H2T TYPE_MSDUQ_RECFG_REQ + T2H MSDUQ_CFG_IND msg defs. * 3.132 Add flow_classification_3_tuple_field_enable in H2T 3_TUPLE_HASH_CFG. * 3.133 Add packet_type_enable_data_flags fields in rx_ring_selection_cfg. * 3.134 Add qdata_refill flag in rx_peer_metadata_v1a. */ #define HTT_CURRENT_VERSION_MAJOR 3 #define HTT_CURRENT_VERSION_MINOR 132 #define HTT_CURRENT_VERSION_MINOR 134 #define HTT_NUM_TX_FRAG_DESC 1024 Loading Loading @@ -5790,38 +5792,39 @@ enum htt_srng_ring_id { * * The message would appear as follows: * * |31 28|27|26|25|24|23|22|21 19|18 16|15 | 11| 10|9 8|7 0| * |-----+--+--+--+--+-----------------+----+---+---+---+---------------| * |rsvd1|DT|OV|PS|SS| ring_id | pdev_id | msg_type | * |-----------------------+-----+-----+--------------------------------| * |31 29|28|27|26|25|24|23|22|21 19|18 16|15 | 11| 10|9 8|7 0| * |-----+--+--+--+--+--+-----------------+----+---+---+---+---------------| * |rsvd1|ED|DT|OV|PS|SS| ring_id | pdev_id | msg_type | * |--------------------------+-----+-----+--------------------------------| * | rsvd2 |RX|RXHDL| CLD | CLC | CLM | ring_buffer_size | * |--------------------------------------------------------------------| * |-----------------------------------------------------------------------| * | packet_type_enable_flags_0 | * |--------------------------------------------------------------------| * |-----------------------------------------------------------------------| * | packet_type_enable_flags_1 | * |--------------------------------------------------------------------| * |-----------------------------------------------------------------------| * | packet_type_enable_flags_2 | * |--------------------------------------------------------------------| * |-----------------------------------------------------------------------| * | packet_type_enable_flags_3 | * |--------------------------------------------------------------------| * |-----------------------------------------------------------------------| * | tlv_filter_in_flags | * |-----------------------------------+--------------------------------| * |--------------------------------------+--------------------------------| * | rx_header_offset | rx_packet_offset | * |-----------------------------------+--------------------------------| * |--------------------------------------+--------------------------------| * | rx_mpdu_start_offset | rx_mpdu_end_offset | * |-----------------------------------+--------------------------------| * |--------------------------------------+--------------------------------| * | rx_msdu_start_offset | rx_msdu_end_offset | * |-----------------------------------+--------------------------------| * |--------------------------------------+--------------------------------| * | rsvd3 | rx_attention_offset | * |--------------------------------------------------------------------| * |-----------------------------------------------------------------------| * | rsvd4 | mo| fp| rx_drop_threshold | * | |ndp|ndp| | * |--------------------------------------------------------------------| * |-----------------------------------------------------------------------| * Where: * PS = pkt_swap * SS = status_swap * OV = rx_offsets_valid * DT = drop_thresh_valid * ED = packet type enable data flags fields present / valid * CLM = config_length_mgmt * CLC = config_length_ctrl * CLD = config_length_data Loading @@ -5846,8 +5849,12 @@ enum htt_srng_ring_id { * b'27 - drop_thresh_valid (DT): flag to indicate if the * rx_drop_threshold field is valid * b'28 - rx_mon_global_en: Enable/Disable global register 8 configuration in Rx monitor module. * b'29:31 - rsvd1: reserved for future use * configuration in Rx monitor module. * b'29 - packet_type_enable_data: flag to indicate whether * newer packet_type_enable_data_flags_* are valid or not * If not set, will use pkt_type_enable_flags for both status * and full pkt buffer configuration. * b'30:31 - rsvd1: reserved for future use * dword1 - b'0:15 - ring_buffer_size: size of bufferes referenced by rx ring, * in byte units. * Valid only for HW_TO_SW_RING and SW_TO_HW_RING Loading Loading @@ -6011,6 +6018,32 @@ enum htt_srng_ring_id { * 1: RX_PKT TLV logging at specified offset for the * subsequent buffer * b`15:1 - rx_pkt_tlv_offset: Qword offset for rx_packet TLVs. * dword18- b'0:19 - rx_mpdu_start_wmask_v2 - wmask address for rx mpdu start * b'20-27 - rx_mpdu_end_wmask_v2 - wmask addr for rx mpdu end tlv addr * b'28-31 - reserved * dword19- b'0-19 - rx_msdu_end_wmask_v2 * b'20-31 - reserved * dword20- b'0:19 - rx_ppdu_end_user_stats_wmask_v2 * offset for ppdu_end_user_stats tlv * b'20-31 - reserved * dword21- b'0-31 - packet_type_enable_fpmo_flags_0 - filter bmap for each * mode mgmt/ctrl type/subtype for fpmo mode * dword22- b'0-31 - packet_type_enable_fpmo_flags_1 - filter bmap for each * mode ctrl/data type/subtype for fpmo mode * dword23- b'0-31 - packet_type_enable_data_flags_0 - filter bmap for full * pkt buffer each mode MGMT type/subtype * dword24- b'0-31 - packet_type_enable_data_flags_0 - filter bmap for full * pkt buffer each mode MGMT type/subtype * dword25- b'0-31 - packet_type_enable_data_flags_0 - filter bmap for full * pkt buffer each mode CTRL type/subtype * dword26- b'0-31 - packet_type_enable_data_flags_0 - filter bmap for full * pkt buffer each mode CTRL/DATA type/subtype * dword27- b'0-31 - packet_type_enable_data_fpmo_flags_0 - filter bmap for * full pkt buffer each mode mgmt/ctrl type/subtype for * fpmo mode * dword28- b'0-31 - packet_type_enable_data_fpmo_flags_1 - filter bmap for * full pkt buffer each mode ctrl/data type/subtype for * fpmo mode */ PREPACK struct htt_rx_ring_selection_cfg_t { A_UINT32 msg_type: 8, Loading @@ -6021,7 +6054,8 @@ PREPACK struct htt_rx_ring_selection_cfg_t { rx_offsets_valid: 1, drop_thresh_valid: 1, rx_mon_global_en: 1, rsvd1: 3; packet_type_enable_data: 1, rsvd1: 2; A_UINT32 ring_buffer_size: 16, config_length_mgmt:3, config_length_ctrl:3, Loading Loading @@ -6075,6 +6109,12 @@ PREPACK struct htt_rx_ring_selection_cfg_t { rsvd10: 12; A_UINT32 packet_type_enable_fpmo_flags0; A_UINT32 packet_type_enable_fpmo_flags1; A_UINT32 packet_type_enable_data_flags_0; A_UINT32 packet_type_enable_data_flags_1; A_UINT32 packet_type_enable_data_flags_2; A_UINT32 packet_type_enable_data_flags_3; A_UINT32 packet_type_enable_data_fpmo_flags0; A_UINT32 packet_type_enable_data_fpmo_flags1; } POSTPACK; #define HTT_RX_RING_SELECTION_CFG_SZ (sizeof(struct htt_rx_ring_selection_cfg_t)) Loading Loading @@ -6156,6 +6196,17 @@ PREPACK struct htt_rx_ring_selection_cfg_t { ((_var) |= ((_val) << HTT_RX_RING_SELECTION_CFG_RX_MON_GLOBAL_EN_S)); \ } while (0) #define HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_M 0x20000000 #define HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_S 29 #define HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_GET(_var) \ (((_var) & HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_M) >> \ HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_S) #define HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA, _val); \ ((_var) |= ((_val) << HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_S)); \ } while (0) #define HTT_RX_RING_SELECTION_CFG_RING_BUFFER_SIZE_M 0x0000ffff #define HTT_RX_RING_SELECTION_CFG_RING_BUFFER_SIZE_S 0 #define HTT_RX_RING_SELECTION_CFG_RING_BUFFER_SIZE_GET(_var) \ Loading Loading @@ -6644,6 +6695,74 @@ PREPACK struct htt_rx_ring_selection_cfg_t { ((_var) |= ((_val) << HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_FPMO_FLAGS1_S)); \ } while (0) #define HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FLAG_0_M 0xffffffff #define HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FLAG_0_S 0 #define HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FLAG_0_GET(_var) \ (((_var) & HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FLAG_0_M) >> \ HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FLAG_0_S) #define HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FLAG_0_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FLAG_0, _val); \ ((_var) |= ((_val) << HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FLAG_0_S)); \ } while (0) #define HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FLAG_1_M 0xffffffff #define HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FLAG_1_S 0 #define HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FLAG_1_GET(_var) \ (((_var) & HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FLAG_1_M) >> \ HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FLAG_1_S) #define HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FLAG_1_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FLAG_1, _val); \ ((_var) |= ((_val) << HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FLAG_1_S)); \ } while (0) #define HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FLAG_2_M 0xffffffff #define HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FLAG_2_S 0 #define HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FLAG_2_GET(_var) \ (((_var) & HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FLAG_2_M) >> \ HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FLAG_2_S) #define HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FLAG_2_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FLAG_2, _val); \ ((_var) |= ((_val) << HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FLAG_2_S)); \ } while (0) #define HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FLAG_3_M 0xffffffff #define HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FLAG_3_S 0 #define HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FLAG_3_GET(_var) \ (((_var) & HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FLAG_3_M) >> \ HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FLAG_3_S) #define HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FLAG_3_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FLAG_3, _val); \ ((_var) |= ((_val) << HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FLAG_3_S)); \ } while (0) #define HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FPMO_FLAGS0_M 0xFFFFFFFF #define HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FPMO_FLAGS0_S 0 #define HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FPMO_FLAGS0_GET(_var) \ (((_var) & HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FPMO_FLAGS0_M)>> \ HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FPMO_FLAGS0_S) #define HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FPMO_FLAGS0_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FPMO_FLAGS0, _val); \ ((_var) |= ((_val) << HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FPMO_FLAGS0_S)); \ } while (0) #define HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FPMO_FLAGS1_M 0xFFFFFFFF #define HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FPMO_FLAGS1_S 0 #define HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FPMO_FLAGS1_GET(_var) \ (((_var) & HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FPMO_FLAGS1_M)>> \ HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FPMO_FLAGS1_S) #define HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FPMO_FLAGS1_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FPMO_FLAGS1, _val); \ ((_var) |= ((_val) << HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FPMO_FLAGS1_S)); \ } while (0) /* * Subtype based MGMT frames enable bits. * FP: Filter_Pass, MD: Monitor_Direct MO: Monitor_Other Loading Loading @@ -20609,7 +20728,8 @@ PREPACK struct htt_rx_peer_metadata_v1a { vdev_id: 8, logical_link_id: 4, chip_id: 3, reserved2: 3; qdata_refill: 1, reserved2: 2; } POSTPACK; #define HTT_RX_PEER_META_DATA_V1A_PEER_ID_S 0 Loading Loading @@ -20667,6 +20787,17 @@ PREPACK struct htt_rx_peer_metadata_v1a { ((_var) |= ((_val) << HTT_RX_PEER_META_DATA_V1A_CHIP_ID_S)); \ } while (0) #define HTT_RX_PEER_META_DATA_V1A_QDATA_REFILL_S 29 #define HTT_RX_PEER_META_DATA_V1A_QDATA_REFILL_M 0x20000000 #define HTT_RX_PEER_META_DATA_V1A_QDATA_REFILL_GET(_var) \ (((_var) & HTT_RX_PEER_META_DATA_V1A_QDATA_REFILL_M) >> HTT_RX_PEER_META_DATA_V1A_QDATA_REFILL_S) #define HTT_RX_PEER_META_DATA_V1A_QDATA_REFILL_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_PEER_META_DATA_V1A_QDATA_REFILL, _val); \ ((_var) |= ((_val) << HTT_RX_PEER_META_DATA_V1A_QDATA_REFILL_S)); \ } while (0) /** * @brief target -> RX PEER METADATA V1B format Loading Loading @@ -22949,6 +23080,7 @@ typedef enum { HTT_SDWF_MSDUQ_CFG_IND_ERROR_DEACTIVATED_MSDUQ = 0x05, HTT_SDWF_MSDUQ_CFG_IND_ERROR_REACTIVATED_MSDUQ = 0x06, HTT_SDWF_MSDUQ_CFG_IND_ERROR_INVALID_SVC_CLASS = 0x07, HTT_SDWF_MSDUQ_CFG_IND_ERROR_TIDQ_LOCATE_ERROR = 0x08, } HTT_SDWF_MSDUQ_CFG_IND_ERROR_CODE_E; PREPACK struct htt_t2h_sdwf_msduq_cfg_ind { fw/htt_stats.h +33 −0 Original line number Diff line number Diff line Loading @@ -5415,6 +5415,8 @@ typedef struct { HTT_TX_PDEV_STATS_NUM_EXTRA2_MCS_COUNTERS) #define HTT_TX_PDEV_STATS_NUM_PER_COUNTERS 101 #define HTT_MAX_POWER_LEVEL 32 /* 0 to 32 dBm */ #define HTT_MAX_NEGATIVE_POWER_LEVEL 10 /* 0 to -10 dBm */ /* * Introduce new TX counters to support 320MHz support and punctured modes Loading Loading @@ -7600,6 +7602,14 @@ typedef struct { * bin2 contains the number of sampling windows that had > 4 interrupts */ A_UINT32 interrupts_hist[HTT_INTERRUPTS_LATENCY_PROFILE_MAX_HIST]; /* min time in us for pcycles spent on q6 core on all HW threads */ A_UINT32 min_pcycles_time; /* max time in us for pcycles spent on q6 core on all HW threads */ A_UINT32 max_pcycles_time; /* total time in us for pcycles spent on q6 core on all HW threads */ A_UINT32 tot_pcycles_time; /* avg time in us for pcycles spent on q6 core on all HW threads */ A_UINT32 avg_pcycles_time; } htt_stats_latency_prof_stats_tlv; /* preserve old name alias for new name consistent with the tag name */ typedef htt_stats_latency_prof_stats_tlv htt_latency_prof_stats_tlv; Loading Loading @@ -9414,6 +9424,29 @@ typedef struct { * units = 0.25dBm */ A_INT32 max_reg_only_allowed_power[HTT_STATS_MAX_CHAINS]; /** number of PPDUs transmitted for each number of tx chains */ A_UINT32 tx_num_chains[HTT_STATS_MAX_CHAINS]; /** tx_power: * Number of PPDUs transmitted with each power level >= 0 dBm. * tx_power[0]: number of PPDUs with tx power in the [0 dBm, 1 dBm) range * tx_power[1]: number of PPDUs with tx power in the [1 dBm, 2 dBm) range * ... * tx_power[30]: number of PPDUs with tx power in the [30 dBm, 31 dBm) range * tx_power[31]: number of PPDUs with tx power >= 31 dBm */ A_UINT32 tx_power[HTT_MAX_POWER_LEVEL]; /** tx_power_neg: * Number of PPDUs transmitted with each power level < 0 dBm. * tx_power_neg[0]: cnt of PPDUs with tx pwr in the [-1 dBm, 0 dBm) range * tx_power_neg[1]: cnt of PPDUs with tx pwr in the [-2 dBm, -1 dBm) range * ... * tx_power_neg[8]: cnt of PPDUs with tx pwr in the [-9 dBm, -8 dBm) range * tx_power_neg[9]: cnt of PPDUs with tx pwr < -9 dBm */ A_UINT32 tx_power_neg[HTT_MAX_NEGATIVE_POWER_LEVEL]; } htt_stats_phy_tpc_stats_tlv; /* preserve old name alias for new name consistent with the tag name */ typedef htt_stats_phy_tpc_stats_tlv htt_phy_tpc_stats_tlv; Loading fw/wlan_module_ids.h +1 −0 Original line number Diff line number Diff line Loading @@ -155,6 +155,7 @@ typedef enum { WLAN_MODULE_BRIDGE_PEER, /* 0x72 */ WLAN_MODULE_AUX_MAC_MGR, /* 0x73 */ WLAN_MODULE_TCAM, /* 0x74 */ WLAN_MODULE_P2P_R2, /* 0x75 */ WLAN_MODULE_ID_MAX, WLAN_MODULE_ID_INVALID = WLAN_MODULE_ID_MAX, Loading fw/wmi_services.h +8 −0 Original line number Diff line number Diff line Loading @@ -662,6 +662,14 @@ typedef enum { WMI_SERVICE_TRAFFIC_CONTEXT_SUPPORT = 408, /* FW supports traffic context aware manager */ WMI_SERVICE_STA_SAP_NDP_CONCURRENCY_SUPPORT = 409, /* FW supports STA + SAP + NDP concurrency */ WMI_SERVICE_THERM_THROT_POUT_REDUCTION = 410, /* FW supports thermal throttling Pout reduction */ WMI_SERVICE_E2E_SDWF_SUPPORT = 411, /* FW supports end-to-end SDWF features like SDWF scheduler */ WMI_SERVICE_EPM = 412, /* FW supports enhanced power management */ WMI_SERVICE_CHIPSET_LOGGING_SUPPORT = 413, /* FW supports chipset logging feature */ WMI_SERVICE_SUPPORT_AP_SUSPEND_RESUME = 414, /* FW supports SAP suspend feature */ WMI_SERVICE_STA_P2P_NDP_CONCURRENCY_SUPPORT = 415, /* FW supports STA + P2P + NAN concurrency */ WMI_SERVICE_USE_STA_VDEV_FOR_P2P_DEVICE = 416, /* FW supports use of sta vdev to be repurposed for p2p device */ WMI_SERVICE_AP_ASSISTED_DFS_CHAN_P2P_SESSION = 417, /* FW supports P2P session on DFS chan enabled by DFS master AP */ WMI_SERVICE_MLO_SAP_EMLSR_SUPPORT = 418, /* Indicates FW MLO SAP supports EMLSR Mode */ WMI_MAX_EXT2_SERVICE Loading fw/wmi_tlv_defs.h +29 −0 Original line number Diff line number Diff line Loading @@ -1437,6 +1437,10 @@ typedef enum { WMITLV_TAG_STRUC_wmi_ctrl_path_vdev_bcn_tx_stats_struct, WMITLV_TAG_STRUC_wmi_ctrl_path_pdev_bcn_tx_stats_struct, WMITLV_TAG_STRUC_wmi_soc_tx_packet_custom_classify_cmd_fixed_param, WMITLV_TAG_STRUC_wmi_set_ap_suspend_resume_cmd_fixed_param, WMITLV_TAG_STRUC_wmi_p2p_cli_dfs_ap_bmiss_fixed_param, WMITLV_TAG_STRUC_wmi_p2p_go_dfs_ap_config_fixed_param, WMITLV_TAG_STRUC_wmi_twt_vdev_config_cmd_fixed_param, } WMITLV_TAG_ID; /* * IMPORTANT: Please add _ALL_ WMI Commands Here. Loading Loading @@ -1807,6 +1811,7 @@ typedef enum { OP(WMI_TWT_DEL_DIALOG_CMDID) \ OP(WMI_TWT_PAUSE_DIALOG_CMDID) \ OP(WMI_TWT_RESUME_DIALOG_CMDID) \ OP(WMI_TWT_VDEV_CONFIG_CMDID) \ OP(WMI_REQUEST_ROAM_SCAN_STATS_CMDID) \ OP(WMI_PEER_TID_CONFIGURATIONS_CMDID) \ OP(WMI_VDEV_SET_CUSTOM_SW_RETRY_TH_CMDID) \ Loading Loading @@ -1986,6 +1991,8 @@ typedef enum { OP(WMI_PEER_ACTIVE_TRAFFIC_MAP_CMDID) \ OP(WMI_REQUEST_OPM_STATS_CMDID) \ OP(WMI_SOC_TX_PACKET_CUSTOM_CLASSIFY_CMDID) \ OP(WMI_SET_AP_SUSPEND_RESUME_CMDID) \ OP(WMI_P2P_GO_DFS_AP_CONFIG_CMDID) \ /* add new CMD_LIST elements above this line */ Loading Loading @@ -2310,6 +2317,7 @@ typedef enum { OP(WMI_MLO_LINK_INFO_SYNC_EVENTID) \ OP(WMI_PDEV_ENABLE_XLNA_EVENTID) \ OP(WMI_REG_CHAN_LIST_CC_EXT2_EVENTID) \ OP(WMI_P2P_CLI_DFS_AP_BMISS_DETECTED_EVENTID) \ /* add new EVT_LIST elements above this line */ Loading Loading @@ -3903,6 +3911,13 @@ WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_MLO_CONFIG_CMDID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_pdev_bssid_disallow_list_config_param, bssid_disallow_list, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_DSM_FILTER_CMDID); /* Add/remove DFS master AP configuration */ #define WMITLV_TABLE_WMI_P2P_GO_DFS_AP_CONFIG_CMDID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_p2p_go_dfs_ap_config_fixed_param, wmi_p2p_go_dfs_ap_config_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_FIXED_STRUC, wmi_mac_addr, bssid, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_FIXED_STRUC, wmi_mac_addr, non_tx_bssid, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_P2P_GO_DFS_AP_CONFIG_CMDID); #define WMITLV_TABLE_WMI_ROAM_BLACKLIST_EVENTID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_roam_blacklist_event_fixed_param, wmi_roam_blacklist_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_roam_blacklist_with_timeout_tlv_param, blacklist_with_timeout, WMITLV_SIZE_VAR) Loading Loading @@ -4921,6 +4936,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_TWT_ENABLE_CMDID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_twt_disable_cmd_fixed_param, wmi_twt_disable_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_TWT_DISABLE_CMDID); /* TWT config vdev cmd */ #define WMITLV_TABLE_WMI_TWT_VDEV_CONFIG_CMDID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_twt_vdev_config_cmd_fixed_param, wmi_twt_vdev_config_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_TWT_VDEV_CONFIG_CMDID); /* TWT add dialog cmd */ #define WMITLV_TABLE_WMI_TWT_ADD_DIALOG_CMDID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_twt_add_dialog_cmd_fixed_param, wmi_twt_add_dialog_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) Loading Loading @@ -5613,6 +5633,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PEER_ACTIVE_TRAFFIC_MAP_CMDID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_request_opm_stats_cmd_fixed_param, wmi_request_opm_stats_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_REQUEST_OPM_STATS_CMDID); /* SAP suspend/resume command */ #define WMITLV_TABLE_WMI_SET_AP_SUSPEND_RESUME_CMDID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_set_ap_suspend_resume_cmd_fixed_param, wmi_set_ap_suspend_resume_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_SET_AP_SUSPEND_RESUME_CMDID); /************************** TLV definitions of WMI events *******************************/ Loading Loading @@ -6934,6 +6959,10 @@ WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_AUDIO_SYNC_START_STOP_EVENTID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_audio_sync_q_master_slave_times, audio_sync_q_master_slave_times, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_AUDIO_SYNC_Q_MASTER_SLAVE_OFFSET_EVENTID); #define WMITLV_TABLE_WMI_P2P_CLI_DFS_AP_BMISS_DETECTED_EVENTID(id, op , buf, len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_p2p_cli_dfs_ap_bmiss_fixed_param , wmi_p2p_cli_dfs_ap_bmiss_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_P2P_CLI_DFS_AP_BMISS_DETECTED_EVENTID); /* Layout of WMI_REPORT_STATS_EVENTID message: * fixed_param; * wmi_chan_cca_stats chan_cca_stats[]; Array length is specified by num_chan_cca_stats Loading Loading
fw/htt.h +164 −32 Original line number Diff line number Diff line Loading @@ -260,9 +260,11 @@ * msg defs. * 3.131 Add H2T TYPE_MSDUQ_RECFG_REQ + T2H MSDUQ_CFG_IND msg defs. * 3.132 Add flow_classification_3_tuple_field_enable in H2T 3_TUPLE_HASH_CFG. * 3.133 Add packet_type_enable_data_flags fields in rx_ring_selection_cfg. * 3.134 Add qdata_refill flag in rx_peer_metadata_v1a. */ #define HTT_CURRENT_VERSION_MAJOR 3 #define HTT_CURRENT_VERSION_MINOR 132 #define HTT_CURRENT_VERSION_MINOR 134 #define HTT_NUM_TX_FRAG_DESC 1024 Loading Loading @@ -5790,38 +5792,39 @@ enum htt_srng_ring_id { * * The message would appear as follows: * * |31 28|27|26|25|24|23|22|21 19|18 16|15 | 11| 10|9 8|7 0| * |-----+--+--+--+--+-----------------+----+---+---+---+---------------| * |rsvd1|DT|OV|PS|SS| ring_id | pdev_id | msg_type | * |-----------------------+-----+-----+--------------------------------| * |31 29|28|27|26|25|24|23|22|21 19|18 16|15 | 11| 10|9 8|7 0| * |-----+--+--+--+--+--+-----------------+----+---+---+---+---------------| * |rsvd1|ED|DT|OV|PS|SS| ring_id | pdev_id | msg_type | * |--------------------------+-----+-----+--------------------------------| * | rsvd2 |RX|RXHDL| CLD | CLC | CLM | ring_buffer_size | * |--------------------------------------------------------------------| * |-----------------------------------------------------------------------| * | packet_type_enable_flags_0 | * |--------------------------------------------------------------------| * |-----------------------------------------------------------------------| * | packet_type_enable_flags_1 | * |--------------------------------------------------------------------| * |-----------------------------------------------------------------------| * | packet_type_enable_flags_2 | * |--------------------------------------------------------------------| * |-----------------------------------------------------------------------| * | packet_type_enable_flags_3 | * |--------------------------------------------------------------------| * |-----------------------------------------------------------------------| * | tlv_filter_in_flags | * |-----------------------------------+--------------------------------| * |--------------------------------------+--------------------------------| * | rx_header_offset | rx_packet_offset | * |-----------------------------------+--------------------------------| * |--------------------------------------+--------------------------------| * | rx_mpdu_start_offset | rx_mpdu_end_offset | * |-----------------------------------+--------------------------------| * |--------------------------------------+--------------------------------| * | rx_msdu_start_offset | rx_msdu_end_offset | * |-----------------------------------+--------------------------------| * |--------------------------------------+--------------------------------| * | rsvd3 | rx_attention_offset | * |--------------------------------------------------------------------| * |-----------------------------------------------------------------------| * | rsvd4 | mo| fp| rx_drop_threshold | * | |ndp|ndp| | * |--------------------------------------------------------------------| * |-----------------------------------------------------------------------| * Where: * PS = pkt_swap * SS = status_swap * OV = rx_offsets_valid * DT = drop_thresh_valid * ED = packet type enable data flags fields present / valid * CLM = config_length_mgmt * CLC = config_length_ctrl * CLD = config_length_data Loading @@ -5846,8 +5849,12 @@ enum htt_srng_ring_id { * b'27 - drop_thresh_valid (DT): flag to indicate if the * rx_drop_threshold field is valid * b'28 - rx_mon_global_en: Enable/Disable global register 8 configuration in Rx monitor module. * b'29:31 - rsvd1: reserved for future use * configuration in Rx monitor module. * b'29 - packet_type_enable_data: flag to indicate whether * newer packet_type_enable_data_flags_* are valid or not * If not set, will use pkt_type_enable_flags for both status * and full pkt buffer configuration. * b'30:31 - rsvd1: reserved for future use * dword1 - b'0:15 - ring_buffer_size: size of bufferes referenced by rx ring, * in byte units. * Valid only for HW_TO_SW_RING and SW_TO_HW_RING Loading Loading @@ -6011,6 +6018,32 @@ enum htt_srng_ring_id { * 1: RX_PKT TLV logging at specified offset for the * subsequent buffer * b`15:1 - rx_pkt_tlv_offset: Qword offset for rx_packet TLVs. * dword18- b'0:19 - rx_mpdu_start_wmask_v2 - wmask address for rx mpdu start * b'20-27 - rx_mpdu_end_wmask_v2 - wmask addr for rx mpdu end tlv addr * b'28-31 - reserved * dword19- b'0-19 - rx_msdu_end_wmask_v2 * b'20-31 - reserved * dword20- b'0:19 - rx_ppdu_end_user_stats_wmask_v2 * offset for ppdu_end_user_stats tlv * b'20-31 - reserved * dword21- b'0-31 - packet_type_enable_fpmo_flags_0 - filter bmap for each * mode mgmt/ctrl type/subtype for fpmo mode * dword22- b'0-31 - packet_type_enable_fpmo_flags_1 - filter bmap for each * mode ctrl/data type/subtype for fpmo mode * dword23- b'0-31 - packet_type_enable_data_flags_0 - filter bmap for full * pkt buffer each mode MGMT type/subtype * dword24- b'0-31 - packet_type_enable_data_flags_0 - filter bmap for full * pkt buffer each mode MGMT type/subtype * dword25- b'0-31 - packet_type_enable_data_flags_0 - filter bmap for full * pkt buffer each mode CTRL type/subtype * dword26- b'0-31 - packet_type_enable_data_flags_0 - filter bmap for full * pkt buffer each mode CTRL/DATA type/subtype * dword27- b'0-31 - packet_type_enable_data_fpmo_flags_0 - filter bmap for * full pkt buffer each mode mgmt/ctrl type/subtype for * fpmo mode * dword28- b'0-31 - packet_type_enable_data_fpmo_flags_1 - filter bmap for * full pkt buffer each mode ctrl/data type/subtype for * fpmo mode */ PREPACK struct htt_rx_ring_selection_cfg_t { A_UINT32 msg_type: 8, Loading @@ -6021,7 +6054,8 @@ PREPACK struct htt_rx_ring_selection_cfg_t { rx_offsets_valid: 1, drop_thresh_valid: 1, rx_mon_global_en: 1, rsvd1: 3; packet_type_enable_data: 1, rsvd1: 2; A_UINT32 ring_buffer_size: 16, config_length_mgmt:3, config_length_ctrl:3, Loading Loading @@ -6075,6 +6109,12 @@ PREPACK struct htt_rx_ring_selection_cfg_t { rsvd10: 12; A_UINT32 packet_type_enable_fpmo_flags0; A_UINT32 packet_type_enable_fpmo_flags1; A_UINT32 packet_type_enable_data_flags_0; A_UINT32 packet_type_enable_data_flags_1; A_UINT32 packet_type_enable_data_flags_2; A_UINT32 packet_type_enable_data_flags_3; A_UINT32 packet_type_enable_data_fpmo_flags0; A_UINT32 packet_type_enable_data_fpmo_flags1; } POSTPACK; #define HTT_RX_RING_SELECTION_CFG_SZ (sizeof(struct htt_rx_ring_selection_cfg_t)) Loading Loading @@ -6156,6 +6196,17 @@ PREPACK struct htt_rx_ring_selection_cfg_t { ((_var) |= ((_val) << HTT_RX_RING_SELECTION_CFG_RX_MON_GLOBAL_EN_S)); \ } while (0) #define HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_M 0x20000000 #define HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_S 29 #define HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_GET(_var) \ (((_var) & HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_M) >> \ HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_S) #define HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA, _val); \ ((_var) |= ((_val) << HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_S)); \ } while (0) #define HTT_RX_RING_SELECTION_CFG_RING_BUFFER_SIZE_M 0x0000ffff #define HTT_RX_RING_SELECTION_CFG_RING_BUFFER_SIZE_S 0 #define HTT_RX_RING_SELECTION_CFG_RING_BUFFER_SIZE_GET(_var) \ Loading Loading @@ -6644,6 +6695,74 @@ PREPACK struct htt_rx_ring_selection_cfg_t { ((_var) |= ((_val) << HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_FPMO_FLAGS1_S)); \ } while (0) #define HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FLAG_0_M 0xffffffff #define HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FLAG_0_S 0 #define HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FLAG_0_GET(_var) \ (((_var) & HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FLAG_0_M) >> \ HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FLAG_0_S) #define HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FLAG_0_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FLAG_0, _val); \ ((_var) |= ((_val) << HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FLAG_0_S)); \ } while (0) #define HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FLAG_1_M 0xffffffff #define HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FLAG_1_S 0 #define HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FLAG_1_GET(_var) \ (((_var) & HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FLAG_1_M) >> \ HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FLAG_1_S) #define HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FLAG_1_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FLAG_1, _val); \ ((_var) |= ((_val) << HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FLAG_1_S)); \ } while (0) #define HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FLAG_2_M 0xffffffff #define HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FLAG_2_S 0 #define HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FLAG_2_GET(_var) \ (((_var) & HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FLAG_2_M) >> \ HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FLAG_2_S) #define HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FLAG_2_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FLAG_2, _val); \ ((_var) |= ((_val) << HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FLAG_2_S)); \ } while (0) #define HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FLAG_3_M 0xffffffff #define HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FLAG_3_S 0 #define HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FLAG_3_GET(_var) \ (((_var) & HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FLAG_3_M) >> \ HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FLAG_3_S) #define HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FLAG_3_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FLAG_3, _val); \ ((_var) |= ((_val) << HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FLAG_3_S)); \ } while (0) #define HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FPMO_FLAGS0_M 0xFFFFFFFF #define HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FPMO_FLAGS0_S 0 #define HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FPMO_FLAGS0_GET(_var) \ (((_var) & HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FPMO_FLAGS0_M)>> \ HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FPMO_FLAGS0_S) #define HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FPMO_FLAGS0_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FPMO_FLAGS0, _val); \ ((_var) |= ((_val) << HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FPMO_FLAGS0_S)); \ } while (0) #define HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FPMO_FLAGS1_M 0xFFFFFFFF #define HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FPMO_FLAGS1_S 0 #define HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FPMO_FLAGS1_GET(_var) \ (((_var) & HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FPMO_FLAGS1_M)>> \ HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FPMO_FLAGS1_S) #define HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FPMO_FLAGS1_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FPMO_FLAGS1, _val); \ ((_var) |= ((_val) << HTT_RX_RING_SELECTION_CFG_PACKET_TYPE_ENABLE_DATA_FPMO_FLAGS1_S)); \ } while (0) /* * Subtype based MGMT frames enable bits. * FP: Filter_Pass, MD: Monitor_Direct MO: Monitor_Other Loading Loading @@ -20609,7 +20728,8 @@ PREPACK struct htt_rx_peer_metadata_v1a { vdev_id: 8, logical_link_id: 4, chip_id: 3, reserved2: 3; qdata_refill: 1, reserved2: 2; } POSTPACK; #define HTT_RX_PEER_META_DATA_V1A_PEER_ID_S 0 Loading Loading @@ -20667,6 +20787,17 @@ PREPACK struct htt_rx_peer_metadata_v1a { ((_var) |= ((_val) << HTT_RX_PEER_META_DATA_V1A_CHIP_ID_S)); \ } while (0) #define HTT_RX_PEER_META_DATA_V1A_QDATA_REFILL_S 29 #define HTT_RX_PEER_META_DATA_V1A_QDATA_REFILL_M 0x20000000 #define HTT_RX_PEER_META_DATA_V1A_QDATA_REFILL_GET(_var) \ (((_var) & HTT_RX_PEER_META_DATA_V1A_QDATA_REFILL_M) >> HTT_RX_PEER_META_DATA_V1A_QDATA_REFILL_S) #define HTT_RX_PEER_META_DATA_V1A_QDATA_REFILL_SET(_var, _val) \ do { \ HTT_CHECK_SET_VAL(HTT_RX_PEER_META_DATA_V1A_QDATA_REFILL, _val); \ ((_var) |= ((_val) << HTT_RX_PEER_META_DATA_V1A_QDATA_REFILL_S)); \ } while (0) /** * @brief target -> RX PEER METADATA V1B format Loading Loading @@ -22949,6 +23080,7 @@ typedef enum { HTT_SDWF_MSDUQ_CFG_IND_ERROR_DEACTIVATED_MSDUQ = 0x05, HTT_SDWF_MSDUQ_CFG_IND_ERROR_REACTIVATED_MSDUQ = 0x06, HTT_SDWF_MSDUQ_CFG_IND_ERROR_INVALID_SVC_CLASS = 0x07, HTT_SDWF_MSDUQ_CFG_IND_ERROR_TIDQ_LOCATE_ERROR = 0x08, } HTT_SDWF_MSDUQ_CFG_IND_ERROR_CODE_E; PREPACK struct htt_t2h_sdwf_msduq_cfg_ind {
fw/htt_stats.h +33 −0 Original line number Diff line number Diff line Loading @@ -5415,6 +5415,8 @@ typedef struct { HTT_TX_PDEV_STATS_NUM_EXTRA2_MCS_COUNTERS) #define HTT_TX_PDEV_STATS_NUM_PER_COUNTERS 101 #define HTT_MAX_POWER_LEVEL 32 /* 0 to 32 dBm */ #define HTT_MAX_NEGATIVE_POWER_LEVEL 10 /* 0 to -10 dBm */ /* * Introduce new TX counters to support 320MHz support and punctured modes Loading Loading @@ -7600,6 +7602,14 @@ typedef struct { * bin2 contains the number of sampling windows that had > 4 interrupts */ A_UINT32 interrupts_hist[HTT_INTERRUPTS_LATENCY_PROFILE_MAX_HIST]; /* min time in us for pcycles spent on q6 core on all HW threads */ A_UINT32 min_pcycles_time; /* max time in us for pcycles spent on q6 core on all HW threads */ A_UINT32 max_pcycles_time; /* total time in us for pcycles spent on q6 core on all HW threads */ A_UINT32 tot_pcycles_time; /* avg time in us for pcycles spent on q6 core on all HW threads */ A_UINT32 avg_pcycles_time; } htt_stats_latency_prof_stats_tlv; /* preserve old name alias for new name consistent with the tag name */ typedef htt_stats_latency_prof_stats_tlv htt_latency_prof_stats_tlv; Loading Loading @@ -9414,6 +9424,29 @@ typedef struct { * units = 0.25dBm */ A_INT32 max_reg_only_allowed_power[HTT_STATS_MAX_CHAINS]; /** number of PPDUs transmitted for each number of tx chains */ A_UINT32 tx_num_chains[HTT_STATS_MAX_CHAINS]; /** tx_power: * Number of PPDUs transmitted with each power level >= 0 dBm. * tx_power[0]: number of PPDUs with tx power in the [0 dBm, 1 dBm) range * tx_power[1]: number of PPDUs with tx power in the [1 dBm, 2 dBm) range * ... * tx_power[30]: number of PPDUs with tx power in the [30 dBm, 31 dBm) range * tx_power[31]: number of PPDUs with tx power >= 31 dBm */ A_UINT32 tx_power[HTT_MAX_POWER_LEVEL]; /** tx_power_neg: * Number of PPDUs transmitted with each power level < 0 dBm. * tx_power_neg[0]: cnt of PPDUs with tx pwr in the [-1 dBm, 0 dBm) range * tx_power_neg[1]: cnt of PPDUs with tx pwr in the [-2 dBm, -1 dBm) range * ... * tx_power_neg[8]: cnt of PPDUs with tx pwr in the [-9 dBm, -8 dBm) range * tx_power_neg[9]: cnt of PPDUs with tx pwr < -9 dBm */ A_UINT32 tx_power_neg[HTT_MAX_NEGATIVE_POWER_LEVEL]; } htt_stats_phy_tpc_stats_tlv; /* preserve old name alias for new name consistent with the tag name */ typedef htt_stats_phy_tpc_stats_tlv htt_phy_tpc_stats_tlv; Loading
fw/wlan_module_ids.h +1 −0 Original line number Diff line number Diff line Loading @@ -155,6 +155,7 @@ typedef enum { WLAN_MODULE_BRIDGE_PEER, /* 0x72 */ WLAN_MODULE_AUX_MAC_MGR, /* 0x73 */ WLAN_MODULE_TCAM, /* 0x74 */ WLAN_MODULE_P2P_R2, /* 0x75 */ WLAN_MODULE_ID_MAX, WLAN_MODULE_ID_INVALID = WLAN_MODULE_ID_MAX, Loading
fw/wmi_services.h +8 −0 Original line number Diff line number Diff line Loading @@ -662,6 +662,14 @@ typedef enum { WMI_SERVICE_TRAFFIC_CONTEXT_SUPPORT = 408, /* FW supports traffic context aware manager */ WMI_SERVICE_STA_SAP_NDP_CONCURRENCY_SUPPORT = 409, /* FW supports STA + SAP + NDP concurrency */ WMI_SERVICE_THERM_THROT_POUT_REDUCTION = 410, /* FW supports thermal throttling Pout reduction */ WMI_SERVICE_E2E_SDWF_SUPPORT = 411, /* FW supports end-to-end SDWF features like SDWF scheduler */ WMI_SERVICE_EPM = 412, /* FW supports enhanced power management */ WMI_SERVICE_CHIPSET_LOGGING_SUPPORT = 413, /* FW supports chipset logging feature */ WMI_SERVICE_SUPPORT_AP_SUSPEND_RESUME = 414, /* FW supports SAP suspend feature */ WMI_SERVICE_STA_P2P_NDP_CONCURRENCY_SUPPORT = 415, /* FW supports STA + P2P + NAN concurrency */ WMI_SERVICE_USE_STA_VDEV_FOR_P2P_DEVICE = 416, /* FW supports use of sta vdev to be repurposed for p2p device */ WMI_SERVICE_AP_ASSISTED_DFS_CHAN_P2P_SESSION = 417, /* FW supports P2P session on DFS chan enabled by DFS master AP */ WMI_SERVICE_MLO_SAP_EMLSR_SUPPORT = 418, /* Indicates FW MLO SAP supports EMLSR Mode */ WMI_MAX_EXT2_SERVICE Loading
fw/wmi_tlv_defs.h +29 −0 Original line number Diff line number Diff line Loading @@ -1437,6 +1437,10 @@ typedef enum { WMITLV_TAG_STRUC_wmi_ctrl_path_vdev_bcn_tx_stats_struct, WMITLV_TAG_STRUC_wmi_ctrl_path_pdev_bcn_tx_stats_struct, WMITLV_TAG_STRUC_wmi_soc_tx_packet_custom_classify_cmd_fixed_param, WMITLV_TAG_STRUC_wmi_set_ap_suspend_resume_cmd_fixed_param, WMITLV_TAG_STRUC_wmi_p2p_cli_dfs_ap_bmiss_fixed_param, WMITLV_TAG_STRUC_wmi_p2p_go_dfs_ap_config_fixed_param, WMITLV_TAG_STRUC_wmi_twt_vdev_config_cmd_fixed_param, } WMITLV_TAG_ID; /* * IMPORTANT: Please add _ALL_ WMI Commands Here. Loading Loading @@ -1807,6 +1811,7 @@ typedef enum { OP(WMI_TWT_DEL_DIALOG_CMDID) \ OP(WMI_TWT_PAUSE_DIALOG_CMDID) \ OP(WMI_TWT_RESUME_DIALOG_CMDID) \ OP(WMI_TWT_VDEV_CONFIG_CMDID) \ OP(WMI_REQUEST_ROAM_SCAN_STATS_CMDID) \ OP(WMI_PEER_TID_CONFIGURATIONS_CMDID) \ OP(WMI_VDEV_SET_CUSTOM_SW_RETRY_TH_CMDID) \ Loading Loading @@ -1986,6 +1991,8 @@ typedef enum { OP(WMI_PEER_ACTIVE_TRAFFIC_MAP_CMDID) \ OP(WMI_REQUEST_OPM_STATS_CMDID) \ OP(WMI_SOC_TX_PACKET_CUSTOM_CLASSIFY_CMDID) \ OP(WMI_SET_AP_SUSPEND_RESUME_CMDID) \ OP(WMI_P2P_GO_DFS_AP_CONFIG_CMDID) \ /* add new CMD_LIST elements above this line */ Loading Loading @@ -2310,6 +2317,7 @@ typedef enum { OP(WMI_MLO_LINK_INFO_SYNC_EVENTID) \ OP(WMI_PDEV_ENABLE_XLNA_EVENTID) \ OP(WMI_REG_CHAN_LIST_CC_EXT2_EVENTID) \ OP(WMI_P2P_CLI_DFS_AP_BMISS_DETECTED_EVENTID) \ /* add new EVT_LIST elements above this line */ Loading Loading @@ -3903,6 +3911,13 @@ WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_MLO_CONFIG_CMDID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_pdev_bssid_disallow_list_config_param, bssid_disallow_list, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_DSM_FILTER_CMDID); /* Add/remove DFS master AP configuration */ #define WMITLV_TABLE_WMI_P2P_GO_DFS_AP_CONFIG_CMDID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_p2p_go_dfs_ap_config_fixed_param, wmi_p2p_go_dfs_ap_config_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_FIXED_STRUC, wmi_mac_addr, bssid, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_FIXED_STRUC, wmi_mac_addr, non_tx_bssid, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_P2P_GO_DFS_AP_CONFIG_CMDID); #define WMITLV_TABLE_WMI_ROAM_BLACKLIST_EVENTID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_roam_blacklist_event_fixed_param, wmi_roam_blacklist_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_roam_blacklist_with_timeout_tlv_param, blacklist_with_timeout, WMITLV_SIZE_VAR) Loading Loading @@ -4921,6 +4936,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_TWT_ENABLE_CMDID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_twt_disable_cmd_fixed_param, wmi_twt_disable_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_TWT_DISABLE_CMDID); /* TWT config vdev cmd */ #define WMITLV_TABLE_WMI_TWT_VDEV_CONFIG_CMDID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_twt_vdev_config_cmd_fixed_param, wmi_twt_vdev_config_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_TWT_VDEV_CONFIG_CMDID); /* TWT add dialog cmd */ #define WMITLV_TABLE_WMI_TWT_ADD_DIALOG_CMDID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_twt_add_dialog_cmd_fixed_param, wmi_twt_add_dialog_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) Loading Loading @@ -5613,6 +5633,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PEER_ACTIVE_TRAFFIC_MAP_CMDID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_request_opm_stats_cmd_fixed_param, wmi_request_opm_stats_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_REQUEST_OPM_STATS_CMDID); /* SAP suspend/resume command */ #define WMITLV_TABLE_WMI_SET_AP_SUSPEND_RESUME_CMDID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_set_ap_suspend_resume_cmd_fixed_param, wmi_set_ap_suspend_resume_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_SET_AP_SUSPEND_RESUME_CMDID); /************************** TLV definitions of WMI events *******************************/ Loading Loading @@ -6934,6 +6959,10 @@ WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_AUDIO_SYNC_START_STOP_EVENTID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_audio_sync_q_master_slave_times, audio_sync_q_master_slave_times, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_AUDIO_SYNC_Q_MASTER_SLAVE_OFFSET_EVENTID); #define WMITLV_TABLE_WMI_P2P_CLI_DFS_AP_BMISS_DETECTED_EVENTID(id, op , buf, len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_p2p_cli_dfs_ap_bmiss_fixed_param , wmi_p2p_cli_dfs_ap_bmiss_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_P2P_CLI_DFS_AP_BMISS_DETECTED_EVENTID); /* Layout of WMI_REPORT_STATS_EVENTID message: * fixed_param; * wmi_chan_cca_stats chan_cca_stats[]; Array length is specified by num_chan_cca_stats Loading