From 1afab9fec50077e1b776867ad51f954763535f5a Mon Sep 17 00:00:00 2001 From: spuligil Date: Thu, 19 Sep 2019 06:01:23 -0700 Subject: [PATCH] fw-api: CL 8153587 - update fw common interface files HTT,WMI: add tx_retry_cnt fields to HTT tx conf and wmi_mgmt_hdr Change-Id: I9052eee44eec7add8d3f07d537e36c0ac50e1619 CRs-Fixed: 2262693 --- fw/htt.h | 33 ++++++++++++++++++++++++++++++--- fw/wmi_unified.h | 17 ++++++++++++++++- fw/wmi_version.h | 2 +- 3 files changed, 47 insertions(+), 5 deletions(-) diff --git a/fw/htt.h b/fw/htt.h index 2508b93a3d..df8b197835 100644 --- a/fw/htt.h +++ b/fw/htt.h @@ -191,9 +191,11 @@ * 3.70 Add AST1-AST3 fields to HTT_T2H PEER_MAP_V2 msg * 3.71 Add rx offload engine / flow search engine htt setup message defs for * HTT_H2T_MSG_TYPE_RX_FSE_SETUP_CFG, HTT_H2T_MSG_TYPE_RX_FSE_OPERATION_CFG + * 3.72 Add tx_retry_cnt fields to htt_tx_offload_deliver_ind_hdr_t and + * htt_tx_data_hdr_information */ #define HTT_CURRENT_VERSION_MAJOR 3 -#define HTT_CURRENT_VERSION_MINOR 71 +#define HTT_CURRENT_VERSION_MINOR 72 #define HTT_NUM_TX_FRAG_DESC 1024 @@ -7855,7 +7857,9 @@ PREPACK struct htt_tx_offload_deliver_ind_hdr_t status:3, /* [2:0] */ format:1, /* [3] 0: 802.3 format, 1: 802.11 format */ tx_mpdu_bytes:16, /* [19:4] */ - reserved_4:12; /* [31:20] */ + /* Indicates retry count of offloaded/local generated Data tx frames */ + tx_retry_cnt:6, /* [25:20] */ + reserved_4:6; /* [31:26] */ } POSTPACK; /* FW offload deliver ind message header fields */ @@ -7905,6 +7909,8 @@ PREPACK struct htt_tx_offload_deliver_ind_hdr_t #define HTT_FW_OFFLOAD_IND_FORMAT_S 3 #define HTT_FW_OFFLOAD_IND_TX_MPDU_BYTES_M 0x000ffff0 #define HTT_FW_OFFLOAD_IND_TX_MPDU_BYTES_S 4 +#define HTT_FW_OFFLOAD_IND_TX_RETRY_CNT_M 0x03f00000 +#define HTT_FW_OFFLOAD_IND_TX_RETRY_CNT_S 20 #define HTT_FW_OFFLOAD_IND_PHY_TIMESTAMP_L32_SET(word, value) \ do { \ @@ -8056,6 +8062,14 @@ PREPACK struct htt_tx_offload_deliver_ind_hdr_t #define HTT_FW_OFFLOAD_IND_TX_MPDU_BYTES_GET(word) \ (((word) & HTT_FW_OFFLOAD_IND_TX_MPDU_BYTES_M) >> HTT_FW_OFFLOAD_IND_TX_MPDU_BYTES_S) +#define HTT_FW_OFFLOAD_IND_TX_RETRY_CNT_SET(word, value) \ + do { \ + HTT_CHECK_SET_VAL(HTT_FW_OFFLOAD_IND_TX_RETRY_CNT, value); \ + (word) |= (value) << HTT_FW_OFFLOAD_IND_TX_RETRY_CNT_S; \ + } while (0) +#define HTT_FW_OFFLOAD_IND_TX_RETRY_CNT_GET(word) \ + (((word) & HTT_FW_OFFLOAD_IND_TX_RETRY_CNT_M) >> HTT_FW_OFFLOAD_IND_TX_RETRY_CNT_S) + /* * @brief target -> host rx reorder flush message definition @@ -9500,7 +9514,10 @@ PREPACK struct htt_tx_data_hdr_information { sgi : 1, /* [23] */ ldpc : 1, /* [24] */ beamformed: 1, /* [25] */ - reserved_1: 6; /* [31:26] */ + /* tx_retry_cnt: + * Indicates retry count of data tx frames provided by the host. + */ + tx_retry_cnt: 6; /* [31:26] */ A_UINT32 /* word 2 */ framectrl:16, /* [15: 0] */ seqno:16; /* [31:16] */ @@ -9690,6 +9707,8 @@ PREPACK struct htt_tx_compl_ind_append_tx_tsf64 { #define HTT_FW_TX_DATA_HDR_LDPC_S 24 #define HTT_FW_TX_DATA_HDR_BEAMFORMED_M 0x02000000 #define HTT_FW_TX_DATA_HDR_BEAMFORMED_S 25 +#define HTT_FW_TX_DATA_HDR_TX_RETRY_CNT_M 0xfc000000 +#define HTT_FW_TX_DATA_HDR_TX_RETRY_CNT_S 26 /* DWORD two */ #define HTT_FW_TX_DATA_HDR_FRAMECTRL_M 0x0000ffff @@ -9789,6 +9808,14 @@ PREPACK struct htt_tx_compl_ind_append_tx_tsf64 { #define HTT_FW_TX_DATA_HDR_BEAMFORMED_GET(word) \ (((word) & HTT_FW_TX_DATA_HDR_BEAMFORMED_M) >> HTT_FW_TX_DATA_HDR_BEAMFORMED_S) +#define HTT_FW_TX_DATA_HDR_TX_RETRY_CNT_SET(word, value) \ + do { \ + HTT_CHECK_SET_VAL(HTT_FW_TX_DATA_HDR_TX_RETRY_CNT, value); \ + (word) |= (value) << HTT_FW_TX_DATA_HDR_TX_RETRY_CNT_S; \ + } while (0) +#define HTT_FW_TX_DATA_HDR_TX_RETRY_CNT_GET(word) \ + (((word) & HTT_FW_TX_DATA_HDR_TX_RETRY_CNT_M) >> HTT_FW_TX_DATA_HDR_TX_RETRY_CNT_S) + #define HTT_FW_TX_DATA_HDR_FRAMECTRL_SET(word, value) \ do { \ HTT_CHECK_SET_VAL(HTT_FW_TX_DATA_HDR_FRAMECTRL, value); \ diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index 18fc88644b..c29db615ee 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -4494,11 +4494,26 @@ typedef struct { */ A_UINT32 tx_status; + A_UINT32 + /* tx_retry_cnt: + * Indicates retry count of offloaded/local & host mgmt tx frames. + * The WMI_MGMT_HDR_TX_RETRY_[SET,GET] macros can be used to access + * this bitfield in a portable manner. + */ + tx_retry_cnt:6, /* [5:0] */ + reserved_1:26; /* [31:6] */ + /* This TLV may be followed by array of bytes: * A_UINT8 bufp[]; <-- management frame buffer */ } wmi_mgmt_hdr; +/* Tx retry cnt set & get bits*/ +#define WMI_MGMT_HDR_TX_RETRY_CNT_SET(tx_retry_cnt, value) \ + WMI_SET_BITS(tx_retry_cnt, 0, 6, value) +#define WMI_MGMT_HDR_TX_RETRY_CNT_GET(tx_retry_cnt) \ + WMI_GET_BITS(tx_retry_cnt, 0, 6) + /* * Instead of universally increasing the RX_HDR_HEADROOM size which may cause problems for older targets, * this new ext_hdr can be used for extending the header and will be only applicable for new targets. @@ -18529,7 +18544,7 @@ enum { do { \ (param) &= ~PDEV_PARAM_SMART_CHAINMASK_SCHEME_DECISION_MASK; \ (param) |= (value) << PDEV_PARAM_SMART_CHAINMASK_SCHEME_DECISION_SHIFT; \ - while (0) + } while (0) #define GET_PDEV_SMART_CHAINMASK_SCHEME_DECISION(param) \ (((param) & PDEV_PARAM_SMART_CHAINMASK_SCHEME_DECISION_MASK) >> PDEV_PARAM_SMART_CHAINMASK_SCHEME_DECISION_SHIFT) diff --git a/fw/wmi_version.h b/fw/wmi_version.h index dc58e1ba12..37cc6bebe3 100644 --- a/fw/wmi_version.h +++ b/fw/wmi_version.h @@ -36,7 +36,7 @@ #define __WMI_VER_MINOR_ 0 /** WMI revision number has to be incremented when there is a * change that may or may not break compatibility. */ -#define __WMI_REVISION_ 722 +#define __WMI_REVISION_ 723 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work