mirror of
https://github.com/rd-stuffs/msm-4.14.git
synced 2025-02-20 11:45:48 +08:00
fw-api: update fw common interface files
Add optional timestamps in the HTT tx completion Add optional tx power spec in the HTT tx completion (for DSRC use) Add PPDU_STATS_CFG + PPDU_STATS_IND Add HTT_STATS_RX_PDEV_FW_STATS_PHY_ERR defs Add htt_tx_wbm_completion_v2 Change-Id: I3e11110e5ea411232ece7bf9081a1bd1069d84ff CRs-Fixed: 2070199
This commit is contained in:
parent
98d3ddab9c
commit
859dc8a390
461
fw/htt.h
461
fw/htt.h
@ -158,9 +158,14 @@
|
||||
* 3.37 Add HTT_PEER_TYPE and htt_mac_addr defs
|
||||
* 3.38 Add holes_no_filled field to rx_reorder_stats
|
||||
* 3.39 Add host_inspected flag to htt_tx_tcl_vdev_metadata
|
||||
* 3.40 Add optional timestamps in the HTT tx completion
|
||||
* 3.41 Add optional tx power spec in the HTT tx completion (for DSRC use)
|
||||
* 3.42 Add PPDU_STATS_CFG + PPDU_STATS_IND
|
||||
* 3.43 Add HTT_STATS_RX_PDEV_FW_STATS_PHY_ERR defs
|
||||
* 3.44 Add htt_tx_wbm_completion_v2
|
||||
*/
|
||||
#define HTT_CURRENT_VERSION_MAJOR 3
|
||||
#define HTT_CURRENT_VERSION_MINOR 39
|
||||
#define HTT_CURRENT_VERSION_MINOR 44
|
||||
|
||||
#define HTT_NUM_TX_FRAG_DESC 1024
|
||||
|
||||
@ -1612,7 +1617,13 @@ PREPACK struct htt_tx_msdu_desc_ext2_t {
|
||||
nss_mask : 8,
|
||||
/* Takes enum values of htt_tx_ext2_preamble_type_t */
|
||||
pream_type : 3,
|
||||
reserved1_31 : 1;
|
||||
|
||||
/*
|
||||
* When set these custom values will be used for all packets,
|
||||
* until the next update via this ext header. This is to make
|
||||
* sure not all packets need to include this header.
|
||||
*/
|
||||
update_peer_cache : 1;
|
||||
|
||||
/* DWORD 2: tx chain mask, tx retries */
|
||||
A_UINT32
|
||||
@ -1639,6 +1650,14 @@ PREPACK struct htt_tx_msdu_desc_ext2_t {
|
||||
|
||||
/* DWORD 4: tx expiry time (TSF) MSBs */
|
||||
A_UINT32 expire_tsf_hi;
|
||||
|
||||
/*
|
||||
* DWORD 5: reserved
|
||||
* This structure can be expanded further up to 60 bytes
|
||||
* by adding further DWORDs as needed.
|
||||
*/
|
||||
A_UINT32 rsvd0;
|
||||
|
||||
} POSTPACK;
|
||||
|
||||
/* DWORD 0 */
|
||||
@ -1692,6 +1711,8 @@ PREPACK struct htt_tx_msdu_desc_ext2_t {
|
||||
#define HTT_TX_MSDU_EXT2_DESC_NSS_MASK_S 20
|
||||
#define HTT_TX_MSDU_EXT2_DESC_PREAM_TYPE_M 0x70000000
|
||||
#define HTT_TX_MSDU_EXT2_DESC_PREAM_TYPE_S 28
|
||||
#define HTT_TX_MSDU_EXT2_DESC_UPDATE_PEER_CACHE_M 0x80000000
|
||||
#define HTT_TX_MSDU_EXT2_DESC_UPDATE_PEER_CACHE_S 31
|
||||
|
||||
/* DWORD 2 */
|
||||
#define HTT_TX_MSDU_EXT2_DESC_CHAIN_MASK_M 0x000000ff
|
||||
@ -1946,6 +1967,15 @@ PREPACK struct htt_tx_msdu_desc_ext2_t {
|
||||
((_var) |= ((_val) << HTT_TX_MSDU_EXT2_DESC_PREAMBLE_TYPE_S));\
|
||||
} while (0)
|
||||
|
||||
#define HTT_TX_MSDU_EXT2_DESC_UPDATE_PEER_CACHE_GET(_var) \
|
||||
(((_var) & HTT_TX_MSDU_EXT2_UPDATE_PEER_CACHE_M) >> \
|
||||
HTT_TX_MSDU_EXT2_UPDATE_PEER_CACHE_S)
|
||||
#define HTT_TX_MSDU_EXT2_UPDATE_PEER_CACHE_SET(_var, _val) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_TX_MSDU_EXT2_UPDATE_PEER_CACHE, _val); \
|
||||
((_var) |= ((_val) << HTT_TX_MSDU_EXT2_UPDATE_PEER_CACHE_S)); \
|
||||
} while (0)
|
||||
|
||||
/* DWORD 2 */
|
||||
#define HTT_TX_MSDU_EXT2_DESC_CHAIN_MASK_GET(_var) \
|
||||
(((_var) & HTT_TX_MSDU_EXT2_DESC_CHAIN_MASK_M) >> \
|
||||
@ -2103,12 +2133,17 @@ typedef enum {
|
||||
HTT_TX_FW2WBM_TX_STATUS_TTL,
|
||||
HTT_TX_FW2WBM_TX_STATUS_REINJECT,
|
||||
HTT_TX_FW2WBM_TX_STATUS_INSPECT,
|
||||
HTT_TX_FW2WBM_TX_STATUS_MEC_NOTIFY,
|
||||
|
||||
HTT_TX_FW2WBM_TX_STATUS_MAX
|
||||
} htt_tx_fw2wbm_tx_status_t;
|
||||
|
||||
typedef enum {
|
||||
/* deprecated */
|
||||
HTT_TX_FW2WBM_REINJECT_REASON_EAPOL_ENCAP_EXP,
|
||||
/* current */
|
||||
HTT_TX_FW2WBM_REINJECT_REASON_RAW_ENCAP_EXP =
|
||||
HTT_TX_FW2WBM_REINJECT_REASON_EAPOL_ENCAP_EXP,
|
||||
HTT_TX_FW2WBM_REINJECT_REASON_INJECT_VIA_EXP,
|
||||
HTT_TX_FW2WBM_REINJECT_REASON_MCAST,
|
||||
HTT_TX_FW2WBM_REINJECT_REASON_ARP,
|
||||
@ -2212,6 +2247,227 @@ PREPACK struct htt_tx_wbm_completion {
|
||||
HTT_TX_WBM_COMPLETION_REINJECT_REASON_S)); \
|
||||
} while (0)
|
||||
|
||||
/**
|
||||
* @brief HTT TX WBM Completion from firmware to host
|
||||
* @details
|
||||
* This structure applies only to WLAN chips that contain WLAN Buffer Mgmt
|
||||
* (WBM) offload HW.
|
||||
* This structure is passed from firmware to host overlayed on wbm_release_ring
|
||||
* For software based completions, release_source_module will
|
||||
* be set to WIFIRELEASE_SOURCE_FW_E. Host SW is expected to inspect using
|
||||
* struct wbm_release_ring and then switch to this after looking at
|
||||
* release_source_module.
|
||||
*/
|
||||
PREPACK struct htt_tx_wbm_completion_v2 {
|
||||
/* Refer to struct wbm_release_ring */
|
||||
A_UINT32 used_by_hw0;
|
||||
/* Refer to struct wbm_release_ring */
|
||||
A_UINT32 used_by_hw1;
|
||||
A_UINT32
|
||||
/* Refer to struct wbm_release_ring */
|
||||
used_by_hw2: 9,
|
||||
/* Takes enum values of htt_tx_fw2wbm_tx_status_t */
|
||||
tx_status: 4,
|
||||
/* Takes enum values of htt_tx_fw2wbm_reinject_reason_t */
|
||||
reinject_reason: 4,
|
||||
exception_frame: 1,
|
||||
/* For future use */
|
||||
rsvd0: 14;
|
||||
/*
|
||||
* data0,1 and 2 changes based on tx_status type
|
||||
* if HTT_TX_FW2WBM_TX_STATUS_OK or HTT_TX_FW2WBM_TX_STATUS_DROP
|
||||
* or HTT_TX_FW2WBM_TX_STATUS_TTL,
|
||||
* struct htt_tx_wbm_transmit_status will be used.
|
||||
* if HTT_TX_FW2WBM_TX_STATUS_REINJECT,
|
||||
* struct htt_tx_wbm_reinject_status will be used.
|
||||
* if HTT_TX_FW2WBM_TX_STATUS_MEC_NOTIFY,
|
||||
* struct htt_tx_wbm_mec_addr_notify will be used.
|
||||
*/
|
||||
A_UINT32
|
||||
data0: 32;
|
||||
A_UINT32
|
||||
data1: 32;
|
||||
A_UINT32
|
||||
data2: 32;
|
||||
/* Refer to struct wbm_release_ring */
|
||||
A_UINT32
|
||||
used_by_hw3;
|
||||
} POSTPACK;
|
||||
|
||||
/* DWORD 1, 2 and part of 3 are accessed via HW header files */
|
||||
/* DWORD 3 */
|
||||
#define HTT_TX_WBM_COMPLETION_V2_TX_STATUS_M 0x00001e00
|
||||
#define HTT_TX_WBM_COMPLETION_V2_TX_STATUS_S 9
|
||||
#define HTT_TX_WBM_COMPLETION_V2_REINJECT_REASON_M 0x0001e000
|
||||
#define HTT_TX_WBM_COMPLETION_V2_REINJECT_REASON_S 13
|
||||
#define HTT_TX_WBM_COMPLETION_V2_EXP_FRAME_M 0x00020000
|
||||
#define HTT_TX_WBM_COMPLETION_V2_EXP_FRAME_S 17
|
||||
|
||||
/* DWORD 3 */
|
||||
#define HTT_TX_WBM_COMPLETION_V2_TX_STATUS_GET(_var) \
|
||||
(((_var) & HTT_TX_WBM_COMPLETION_V2_TX_STATUS_M) >> \
|
||||
HTT_TX_WBM_COMPLETION_V2_TX_STATUS_S)
|
||||
|
||||
#define HTT_TX_WBM_COMPLETION_V2_TX_STATUS_SET(_var, _val) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_TX_WBM_COMPLETION_V2_TX_STATUS, _val); \
|
||||
((_var) |= ((_val) << HTT_TX_WBM_COMPLETION_V2_TX_STATUS_S)); \
|
||||
} while (0)
|
||||
|
||||
#define HTT_TX_WBM_COMPLETION_V2_REINJECT_REASON_GET(_var) \
|
||||
(((_var) & HTT_TX_WBM_COMPLETION_V2_REINJECT_REASON_M) >> \
|
||||
HTT_TX_WBM_COMPLETION_V2_REINJECT_REASON_S)
|
||||
|
||||
#define HTT_TX_WBM_COMPLETION_V2_REINJECT_REASON_SET(_var, _val) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_TX_WBM_COMPLETION_V2_REINJECT_REASON, _val); \
|
||||
((_var) |= ((_val) << HTT_TX_WBM_COMPLETION_V2_REINJECT_REASON_S)); \
|
||||
} while (0)
|
||||
|
||||
#define HTT_TX_WBM_COMPLETION_V2_EXP_FRAME_GET(_var) \
|
||||
(((_var) & HTT_TX_WBM_COMPLETION_V2_EXP_FRAME_M) >> \
|
||||
HTT_TX_WBM_COMPLETION_V2_EXP_FRAME_S)
|
||||
|
||||
#define HTT_TX_WBM_COMPLETION_V2_EXP_FRAME_SET(_var, _val) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_TX_WBM_COMPLETION_V2_EXP_FRAME, _val); \
|
||||
((_var) |= ((_val) << HTT_TX_WBM_COMPLETION_V2_EXP_FRAME_S)); \
|
||||
} while (0)
|
||||
|
||||
/**
|
||||
* @brief HTT TX WBM transmit status from firmware to host
|
||||
* @details
|
||||
* This structure applies only to WLAN chips that contain WLAN Buffer Mgmt
|
||||
* (WBM) offload HW.
|
||||
* This structure is passed from firmware to host overlayed on wbm_release_ring.
|
||||
* used only if tx_status is HTT_TX_FW2WBM_TX_STATUS_OK or HTT_TX_FW2WBM_TX_STATUS_DROP
|
||||
* or HTT_TX_FW2WBM_TX_STATUS_TTL
|
||||
*/
|
||||
PREPACK struct htt_tx_wbm_transmit_status {
|
||||
A_UINT32
|
||||
sch_cmd_id: 24,
|
||||
/* If this frame is removed as the result of the
|
||||
* reception of an ACK or BA, this field indicates
|
||||
* the RSSI of the received ACK or BA frame.
|
||||
* When the frame is removed as result of a direct
|
||||
* remove command from the SW, this field is set
|
||||
* to 0x0 (which is never a valid value when real
|
||||
* RSSI is available).
|
||||
* Units: dB w.r.t noise floor
|
||||
*/
|
||||
ack_frame_rssi: 8;
|
||||
A_UINT32
|
||||
reserved0: 32;
|
||||
A_UINT32
|
||||
reserved1: 32;
|
||||
} POSTPACK;
|
||||
|
||||
/* DWORD 4 */
|
||||
#define HTT_TX_WBM_COMPLETION_V2_SCH_CMD_ID_M 0x00ffffff
|
||||
#define HTT_TX_WBM_COMPLETION_V2_SCH_CMD_ID_S 0
|
||||
#define HTT_TX_WBM_COMPLETION_V2_ACK_FRAME_RSSI_M 0xff000000
|
||||
#define HTT_TX_WBM_COMPLETION_V2_ACK_FRAME_RSSI_S 24
|
||||
|
||||
/* DWORD 4 */
|
||||
#define HTT_TX_WBM_COMPLETION_V2_SCH_CMD_ID_GET(_var) \
|
||||
(((_var) & HTT_TX_WBM_COMPLETION_V2_SCH_CMD_ID_M) >> \
|
||||
HTT_TX_WBM_COMPLETION_V2_SCH_CMD_ID_S)
|
||||
|
||||
#define HTT_TX_WBM_COMPLETION_V2_SCH_CMD_ID_SET(_var, _val) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_TX_WBM_COMPLETION_V2_SCH_CMD_ID, _val); \
|
||||
((_var) |= ((_val) << HTT_TX_WBM_COMPLETION_V2_SCH_CMD_ID_S)); \
|
||||
} while (0)
|
||||
|
||||
#define HTT_TX_WBM_COMPLETION_V2_ACK_FRAME_RSSI_GET(_var) \
|
||||
(((_var) & HTT_TX_WBM_COMPLETION_V2_ACK_FRAME_RSSI_M) >> \
|
||||
HTT_TX_WBM_COMPLETION_V2_ACK_FRAME_RSSI_S)
|
||||
|
||||
#define HTT_TX_WBM_COMPLETION_V2_ACK_FRAME_RSSI_SET(_var, _val) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_TX_WBM_COMPLETION_V2_ACK_FRAME_RSSI, _val); \
|
||||
((_var) |= ((_val) << HTT_TX_WBM_COMPLETION_V2_ACK_FRAME_RSSI_S)); \
|
||||
} while (0)
|
||||
|
||||
/**
|
||||
* @brief HTT TX WBM reinject status from firmware to host
|
||||
* @details
|
||||
* This structure applies only to WLAN chips that contain WLAN Buffer Mgmt
|
||||
* (WBM) offload HW.
|
||||
* This structure is passed from firmware to host overlayed on wbm_release_ring.
|
||||
* used only if tx_status is HTT_TX_FW2WBM_TX_STATUS_REINJECT.
|
||||
*/
|
||||
PREPACK struct htt_tx_wbm_reinject_status {
|
||||
A_UINT32
|
||||
reserved0: 32;
|
||||
A_UINT32
|
||||
reserved1: 32;
|
||||
A_UINT32
|
||||
reserved2: 32;
|
||||
} POSTPACK;
|
||||
|
||||
/**
|
||||
* @brief HTT TX WBM multicast echo check notification from firmware to host
|
||||
* @details
|
||||
* This structure applies only to WLAN chips that contain WLAN Buffer Mgmt
|
||||
* (WBM) offload HW.
|
||||
* This structure is passed from firmware to host overlayed on wbm_release_ring.
|
||||
* used only if tx_status is HTT_TX_FW2WBM_TX_STATUS_MEC_NOTIFY.
|
||||
* FW sends SA addresses to host for all multicast/broadcast packets received on
|
||||
* STA side.
|
||||
*/
|
||||
PREPACK struct htt_tx_wbm_mec_addr_notify {
|
||||
A_UINT32
|
||||
mec_sa_addr_31_0;
|
||||
A_UINT32
|
||||
mec_sa_addr_47_32: 16,
|
||||
sa_ast_index: 16;
|
||||
A_UINT32
|
||||
vdev_id: 8,
|
||||
reserved0: 24;
|
||||
} POSTPACK;
|
||||
|
||||
/* DWORD 4 - mec_sa_addr_31_0 */
|
||||
/* DWORD 5 */
|
||||
#define HTT_TX_WBM_COMPLETION_V2_MEC_SA_ADDR_47_32_M 0x0000ffff
|
||||
#define HTT_TX_WBM_COMPLETION_V2_MEC_SA_ADDR_47_32_S 0
|
||||
#define HTT_TX_WBM_COMPLETION_V2_SA_AST_INDEX_M 0xffff0000
|
||||
#define HTT_TX_WBM_COMPLETION_V2_SA_AST_INDEX_S 16
|
||||
|
||||
/* DWORD 6 */
|
||||
#define HTT_TX_WBM_COMPLETION_V2_VDEV_ID_M 0x000000ff
|
||||
#define HTT_TX_WBM_COMPLETION_V2_VDEV_ID_S 0
|
||||
|
||||
#define HTT_TX_WBM_COMPLETION_V2_MEC_SA_ADDR_47_32_GET(_var) \
|
||||
(((_var) & HTT_TX_WBM_COMPLETION_V2_MEC_SA_ADDR_47_32_M) >> \
|
||||
HTT_TX_WBM_COMPLETION_V2_MEC_SA_ADDR_47_32_S)
|
||||
|
||||
#define HTT_TX_WBM_COMPLETION_V2_MEC_SA_ADDR_47_32_SET(_var, _val) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_TX_WBM_COMPLETION_V2_MEC_SA_ADDR_47_32, _val); \
|
||||
((_var) |= ((_val) << HTT_TX_WBM_COMPLETION_V2_MEC_SA_ADDR_47_32_S)); \
|
||||
} while (0)
|
||||
|
||||
#define HTT_TX_WBM_COMPLETION_V2_SA_AST_INDEX_GET(_var) \
|
||||
(((_var) & HTT_TX_WBM_COMPLETION_V2_SA_AST_INDEX_M) >> \
|
||||
HTT_TX_WBM_COMPLETION_V2_SA_AST_INDEX_S)
|
||||
|
||||
#define HTT_TX_WBM_COMPLETION_V2_SA_AST_INDEX_SET(_var, _val) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_TX_WBM_COMPLETION_V2_SA_AST_INDEX, _val); \
|
||||
((_var) |= ((_val) << HTT_TX_WBM_COMPLETION_V2_SA_AST_INDEX_S)); \
|
||||
} while (0)
|
||||
|
||||
#define HTT_TX_WBM_COMPLETION_V2_VDEV_ID_GET(_var) \
|
||||
(((_var) & HTT_TX_WBM_COMPLETION_V2_VDEV_ID_M) >> \
|
||||
HTT_TX_WBM_COMPLETION_V2_VDEV_ID_S)
|
||||
|
||||
#define HTT_TX_WBM_COMPLETION_V2_VDEV_ID_SET(_var, _val) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_TX_WBM_COMPLETION_V2_VDEV_ID, _val); \
|
||||
((_var) |= ((_val) << HTT_TX_WBM_COMPLETION_V2_VDEV_ID_S)); \
|
||||
} while (0)
|
||||
|
||||
typedef enum {
|
||||
TX_FLOW_PRIORITY_BE,
|
||||
TX_FLOW_PRIORITY_HIGH,
|
||||
@ -4260,6 +4516,8 @@ enum htt_srng_ring_id {
|
||||
HTT_HOST1_TO_FW_RXBUF_RING,
|
||||
/* (mobile only) second ring used by host to provide remote RX buffers*/
|
||||
HTT_HOST2_TO_FW_RXBUF_RING,
|
||||
/* Per MDPU indication to host for non-monitor RxDMA traffic upload */
|
||||
HTT_RXDMA_NON_MONITOR_DEST_RING,
|
||||
/*
|
||||
* Add Other SRING which can't be directly configured by host software
|
||||
* above this line
|
||||
@ -5529,6 +5787,66 @@ HTT_RX_RING_SELECTION_CFG_PKT_TYPE_ENABLE_##flag##_##mode##_##type##_##subtype)
|
||||
HTT_H2T_EXT_STATS_REQ_CONFIG_PARAM_S)); \
|
||||
} while (0)
|
||||
|
||||
/**
|
||||
* @brief host -> target FW PPDU_STATS request message
|
||||
*
|
||||
* @details
|
||||
* The following field definitions describe the format of the HTT host
|
||||
* to target FW for PPDU_STATS_CFG msg.
|
||||
* The message allows the host to configure the PPDU_STATS_IND messages
|
||||
* produced by the target.
|
||||
*
|
||||
* |31 24|23 16|15 8|7 0|
|
||||
* |-----------------------------------------------------------|
|
||||
* | REQ bit mask | pdev_mask | msg type |
|
||||
* |-----------------------------------------------------------|
|
||||
* Header fields:
|
||||
* - MSG_TYPE
|
||||
* Bits 7:0
|
||||
* Purpose: identifies this is a req to configure ppdu_stats_ind from target
|
||||
* Value: 0x11
|
||||
* - PDEV_MASK
|
||||
* Bits 8:15
|
||||
* Purpose: identifies which pdevs this PPDU stats configuration applies to
|
||||
* Value: This is a overloaded field, refer to usage and interpretation of
|
||||
* PDEV in interface document.
|
||||
* Bit 8 : Reserved for SOC stats
|
||||
* Bit 9 - 15 : Indicates PDEV_MASK in DBDC
|
||||
* Indicates MACID_MASK in DBS
|
||||
* - REQ_TLV_BIT_MASK
|
||||
* Bits 16:31
|
||||
* Purpose: each set bit indicates the corresponding PPDU stats TLV type
|
||||
* needs to be included in the target's PPDU_STATS_IND messages.
|
||||
* Value: refer htt_ppdu_stats_tlv_tag_t
|
||||
*
|
||||
*/
|
||||
#define HTT_H2T_PPDU_STATS_CFG_MSG_SZ 4 /* bytes */
|
||||
|
||||
#define HTT_H2T_PPDU_STATS_CFG_PDEV_MASK_M 0x0000ff00
|
||||
#define HTT_H2T_PPDU_STATS_CFG_PDEV_MASK_S 8
|
||||
|
||||
#define HTT_H2T_PPDU_STATS_CFG_TLV_BITMASK_M 0xffff0000
|
||||
#define HTT_H2T_PPDU_STATS_CFG_TLV_BITMASK_S 16
|
||||
|
||||
#define HTT_H2T_PPDU_STATS_CFG_PDEV_MASK_GET(_var) \
|
||||
(((_var) & HTT_H2T_PPDU_STATS_CFG_PDEV_MASK_M) >> \
|
||||
HTT_H2T_PPDU_STATS_CFG_PDEV_MASK_S)
|
||||
|
||||
#define HTT_H2T_PPDU_STATS_CFG_PDEV_MASK_SET(_var, _val) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_H2T_PPDU_STATS_CFG_PDEV_MASK, _val); \
|
||||
((_var) |= ((_val) << HTT_H2T_PPDU_STATS_CFG_PDEV_MASK_S)); \
|
||||
} while (0)
|
||||
|
||||
#define HTT_H2T_PPDU_STATS_CFG_TLV_BITMASK_GET(_var) \
|
||||
(((_var) & HTT_H2T_PPDU_STATS_CFG_TLV_BITMASK_M) >> \
|
||||
HTT_H2T_PPDU_STATS_CFG_TLV_BITMASK_S)
|
||||
|
||||
#define HTT_H2T_PPDU_STATS_CFG_TLV_BITMASK_SET(_var, _val) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_H2T_PPDU_STATS_CFG_TLV_BITMASK, _val); \
|
||||
((_var) |= ((_val) << HTT_H2T_PPDU_STATS_CFG_TLV_BITMASK_S)); \
|
||||
} while (0)
|
||||
|
||||
/*=== target -> host messages ===============================================*/
|
||||
|
||||
@ -5564,6 +5882,7 @@ enum htt_t2h_msg_type {
|
||||
HTT_T2H_MSG_TYPE_SRING_SETUP_DONE = 0x1a,
|
||||
HTT_T2H_MSG_TYPE_MAP_FLOW_INFO = 0x1b,
|
||||
HTT_T2H_MSG_TYPE_EXT_STATS_CONF = 0x1c,
|
||||
HTT_T2H_MSG_TYPE_PPDU_STATS_IND = 0x1d,
|
||||
|
||||
HTT_T2H_MSG_TYPE_TEST,
|
||||
/* keep this last */
|
||||
@ -7809,16 +8128,23 @@ PREPACK struct htt_txq_group {
|
||||
* The following diagram shows the format of the TX completion indication sent
|
||||
* from the target to the host
|
||||
*
|
||||
* |31 25| 24|23 16| 15 |14 11|10 8|7 0|
|
||||
* |-------------------------------------------------------------|
|
||||
* header: | reserved |append| num | t_i| tid |status| msg_type |
|
||||
* |-------------------------------------------------------------|
|
||||
* payload: | MSDU1 ID | MSDU0 ID |
|
||||
* |-------------------------------------------------------------|
|
||||
* : MSDU3 ID : MSDU2 ID :
|
||||
* |-------------------------------------------------------------|
|
||||
* | struct htt_tx_compl_ind_append_retries |
|
||||
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
* |31 27|26|25|24|23 16| 15 |14 11|10 8|7 0|
|
||||
* |------------------------------------------------------------|
|
||||
* header: | rsvd |TP|A1|A0| num | t_i| tid |status| msg_type |
|
||||
* |------------------------------------------------------------|
|
||||
* payload: | MSDU1 ID | MSDU0 ID |
|
||||
* |------------------------------------------------------------|
|
||||
* : MSDU3 ID : MSDU2 ID :
|
||||
* |------------------------------------------------------------|
|
||||
* | struct htt_tx_compl_ind_append_retries |
|
||||
* |- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -|
|
||||
* | struct htt_tx_compl_ind_append_tx_tstamp |
|
||||
* |- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -|
|
||||
*
|
||||
* Where:
|
||||
* A0 = append (a.k.a. append0)
|
||||
* A1 = append1
|
||||
* TP = MSDU tx power presence
|
||||
*
|
||||
* The following field definitions describe the format of the TX completion
|
||||
* indication sent from the target to the host
|
||||
@ -7844,10 +8170,19 @@ PREPACK struct htt_txq_group {
|
||||
* Bits 23:16
|
||||
* Purpose: the number of payload in this indication
|
||||
* Value: 1 to 255
|
||||
* - append
|
||||
* - append (a.k.a. append0)
|
||||
* Bits 24:24
|
||||
* Purpose: append the struct htt_tx_compl_ind_append_retries which contains
|
||||
* the number of tx retries for one MSDU at the end of this message
|
||||
* - append1
|
||||
* Bits 25:25
|
||||
* Purpose: Append the struct htt_tx_compl_ind_append_tx_tstamp which
|
||||
* contains the timestamp info for each TX msdu id in payload.
|
||||
* The order of the timestamps matches the order of the MSDU IDs.
|
||||
* Note that a big-endian host needs to account for the reordering
|
||||
* of MSDU IDs within each 4-byte MSDU ID pair (during endianness
|
||||
* conversion) when determining which tx timestamp corresponds to
|
||||
* which MSDU ID.
|
||||
* Value: 0 indicates no appending; 1 indicates appending
|
||||
* Payload fields:
|
||||
* - hmsdu_id
|
||||
@ -7904,6 +8239,26 @@ PREPACK struct htt_txq_group {
|
||||
#define HTT_TX_COMPL_IND_APPEND_GET(_info) \
|
||||
(((_info) & HTT_TX_COMPL_IND_APPEND_M) >> HTT_TX_COMPL_IND_APPEND_S)
|
||||
|
||||
#define HTT_TX_COMPL_IND_APPEND1_SET(_info, _val) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_TX_COMPL_IND_APPEND1, _val); \
|
||||
((_info) |= ((_val) << HTT_TX_COMPL_IND_APPEND1_S)); \
|
||||
} while (0)
|
||||
|
||||
#define HTT_TX_COMPL_IND_APPEND1_GET(_info) \
|
||||
(((_info) & HTT_TX_COMPL_IND_APPEND1_M) >> HTT_TX_COMPL_IND_APPEND1_S)
|
||||
|
||||
#define HTT_TX_COMPL_IND_TX_POWER_SET(_info, _val) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_TX_COMPL_IND_TX_POWER, _val); \
|
||||
((_info) |= ((_val) << HTT_TX_COMPL_IND_TX_POWER_S)); \
|
||||
} while (0)
|
||||
|
||||
#define HTT_TX_COMPL_IND_TX_POWER_GET(_info) \
|
||||
(((_info) & HTT_TX_COMPL_IND_TX_POWER_M) >> HTT_TX_COMPL_IND_TX_POWER_S)
|
||||
|
||||
#define HTT_TX_COMPL_INV_TX_POWER 0xffff
|
||||
|
||||
#define HTT_TX_COMPL_CTXT_SZ sizeof(A_UINT16)
|
||||
#define HTT_TX_COMPL_CTXT_NUM(_bytes) ((_bytes) >> 1)
|
||||
|
||||
@ -7956,6 +8311,10 @@ PREPACK struct htt_tx_compl_ind_append_retries {
|
||||
0: this is the last append_retries struct */
|
||||
} POSTPACK;
|
||||
|
||||
PREPACK struct htt_tx_compl_ind_append_tx_tstamp {
|
||||
A_UINT32 timestamp[1/*or more*/];
|
||||
} POSTPACK;
|
||||
|
||||
/**
|
||||
* @brief target -> host rate-control update indication message
|
||||
*
|
||||
@ -9870,6 +10229,82 @@ enum htt_dbg_ext_stats_status {
|
||||
HTT_DBG_EXT_STATS_STATUS_INVALID = 3,
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief target -> host ppdu stats upload
|
||||
*
|
||||
* @details
|
||||
* The following field definitions describe the format of the HTT target
|
||||
* to host ppdu stats indication message.
|
||||
*
|
||||
*
|
||||
* |31 16|15 10|9 8|7 0 |
|
||||
* |----------------------------------------------------------------------|
|
||||
* | payload_size | rsvd bits |mac_id | msg type |
|
||||
* |----------------------------------------------------------------------|
|
||||
* | ppdu_id |
|
||||
* |----------------------------------------------------------------------|
|
||||
* | Timestamp in us |
|
||||
* |----------------------------------------------------------------------|
|
||||
* | reserved |
|
||||
* |----------------------------------------------------------------------|
|
||||
* | type-specific stats info |
|
||||
* | (see htt_ppdu_stats.h) |
|
||||
* |----------------------------------------------------------------------|
|
||||
* Header fields:
|
||||
* - MSG_TYPE
|
||||
* Bits 7:0
|
||||
* Purpose: Identifies this is a PPDU STATS indication
|
||||
* message.
|
||||
* Value: 0x1d
|
||||
* - mac_id
|
||||
* Bits 2
|
||||
* Purpose: mac_id of this ppdu_id
|
||||
* Value: 0-3
|
||||
* - payload_size
|
||||
* Bits 31:16
|
||||
* Purpose: total tlv size
|
||||
* Value: payload_size in bytes
|
||||
*/
|
||||
#define HTT_T2H_PPDU_STATS_IND_HDR_SIZE 16
|
||||
|
||||
#define HTT_T2H_PPDU_STATS_MAC_ID_M 0x00000300
|
||||
#define HTT_T2H_PPDU_STATS_MAC_ID_S 8
|
||||
|
||||
#define HTT_T2H_PPDU_STATS_PAYLOAD_SIZE_M 0xFFFF0000
|
||||
#define HTT_T2H_PPDU_STATS_PAYLOAD_SIZE_S 16
|
||||
|
||||
#define HTT_T2H_PPDU_STATS_PPDU_ID_M 0xFFFFFFFF
|
||||
#define HTT_T2H_PPDU_STATS_PPDU_ID_S 0
|
||||
|
||||
#define HTT_T2H_PPDU_STATS_MAC_ID_SET(word, value) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_T2H_PPDU_STATS_MAC_ID, value); \
|
||||
(word) |= (value) << HTT_T2H_PPDU_STATS_MAC_ID_S; \
|
||||
} while (0)
|
||||
#define HTT_T2H_PPDU_STATS_MAC_ID_GET(word) \
|
||||
(((word) & HTT_T2H_PPDU_STATS_MAC_ID_M) >> \
|
||||
HTT_T2H_PPDU_STATS_MAC_ID_S)
|
||||
|
||||
#define HTT_T2H_PPDU_STATS_PAYLOAD_SIZE_SET(word, value) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_T2H_PPDU_STATS_PAYLOAD_SIZE, value); \
|
||||
(word) |= (value) << HTT_T2H_PPDU_STATS_PAYLOAD_SIZE_S; \
|
||||
} while (0)
|
||||
|
||||
#define HTT_T2H_PPDU_STATS_PAYLOAD_SIZE_GET(word) \
|
||||
(((word) & HTT_T2H_PPDU_STATS_PAYLOAD_SIZE_M) >> \
|
||||
HTT_T2H_PPDU_STATS_PAYLOAD_SIZE_S)
|
||||
|
||||
#define HTT_T2H_PPDU_STATS_PPDU_ID_SET(word, value) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_T2H_PPDU_STATS_PPDU_ID, value); \
|
||||
(word) |= (value) << HTT_T2H_PPDU_STATS_PPDU_ID_S; \
|
||||
} while (0)
|
||||
|
||||
#define HTT_T2H_PPDU_STATS_PPDU_ID_GET(word) \
|
||||
(((word) & HTT_T2H_PPDU_STATS_PPDU_ID_M) >> \
|
||||
HTT_T2H_PPDU_STATS_PPDU_ID_S)
|
||||
|
||||
/**
|
||||
* @brief target -> host extended statistics upload
|
||||
*
|
||||
|
Loading…
x
Reference in New Issue
Block a user