mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-25 14:13:01 -04:00
fw-api: CL 7040979 - update fw common interface files
Change-Id: Id06d725c59178a7420ec2f82e41f1ac7cfc90957 HTT: extend tx_msdu_desc_ext2; stats: add cookie field in PPDU user_common CRs-Fixed: 2262693
This commit is contained in:
parent
0aa022535b
commit
6e592280aa
2 changed files with 193 additions and 7 deletions
72
fw/htt.h
72
fw/htt.h
|
|
@ -180,9 +180,12 @@
|
|||
* 3.63 Add HTT_HTT_T2H_MSG_TYPE_BKPRESSURE_EVENT_IND def
|
||||
* 3.64 Add struct htt_tx_compl_ind_append_tx_tsf64 and add tx_tsf64
|
||||
* array to the end of HTT_T2H TX_COMPL_IND msg
|
||||
* 3.65 Add fields in htt_tx_msdu_desc_ext2_t to allow the host to provide
|
||||
* a "cookie" to identify a MSDU, and to specify to not apply aggregation
|
||||
* for a MSDU.
|
||||
*/
|
||||
#define HTT_CURRENT_VERSION_MAJOR 3
|
||||
#define HTT_CURRENT_VERSION_MINOR 64
|
||||
#define HTT_CURRENT_VERSION_MINOR 65
|
||||
|
||||
#define HTT_NUM_TX_FRAG_DESC 1024
|
||||
|
||||
|
|
@ -1660,18 +1663,34 @@ 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.
|
||||
*/
|
||||
/* DWORD 5: flags to control routing / processing of the MSDU */
|
||||
A_UINT32
|
||||
/* learning_frame
|
||||
* When this flag is set, this frame will be dropped by FW
|
||||
* rather than being enqueued to the Transmit Queue Manager (TQM) HW.
|
||||
*/
|
||||
learning_frame : 1,
|
||||
rsvd0 : 31;
|
||||
learning_frame : 1,
|
||||
/* send_as_standalone
|
||||
* This will indicate if the msdu needs to be sent as a singleton PPDU,
|
||||
* i.e. with no A-MSDU or A-MPDU aggregation.
|
||||
* The scope is extended to other use-cases.
|
||||
*/
|
||||
send_as_standalone : 1,
|
||||
/* is_host_opaque_valid
|
||||
* Host should set this bit to 1 if the host_opaque_cookie is populated
|
||||
* with valid information.
|
||||
*/
|
||||
is_host_opaque_valid : 1,
|
||||
rsvd0 : 29;
|
||||
|
||||
/* DWORD 6 : Host opaque cookie for special frames */
|
||||
A_UINT32 host_opaque_cookie : 16, /* see is_host_opaque_valid */
|
||||
rsvd1 : 16;
|
||||
|
||||
/*
|
||||
* This structure can be expanded further up to 40 bytes
|
||||
* by adding further DWORDs as needed.
|
||||
*/
|
||||
} POSTPACK;
|
||||
|
||||
/* DWORD 0 */
|
||||
|
|
@ -1739,6 +1758,15 @@ PREPACK struct htt_tx_msdu_desc_ext2_t {
|
|||
/* DWORD 5 */
|
||||
#define HTT_TX_MSDU_EXT2_DESC_FLAG_LEARNING_FRAME_M 0x00000001
|
||||
#define HTT_TX_MSDU_EXT2_DESC_FLAG_LEARNING_FRAME_S 0
|
||||
#define HTT_TX_MSDU_EXT2_DESC_FLAG_SEND_AS_STANDALONE_M 0x00000002
|
||||
#define HTT_TX_MSDU_EXT2_DESC_FLAG_SEND_AS_STANDALONE_S 1
|
||||
#define HTT_TX_MSDU_EXT2_DESC_FLAG_HOST_OPAQUE_VALID_M 0x00000004
|
||||
#define HTT_TX_MSDU_EXT2_DESC_FLAG_HOST_OPAQUE_VALID_S 2
|
||||
|
||||
/* DWORD 6 */
|
||||
#define HTT_TX_MSDU_EXT2_DESC_HOST_OPAQUE_COOKIE_M 0x0000FFFF
|
||||
#define HTT_TX_MSDU_EXT2_DESC_HOST_OPAQUE_COOKIE_S 0
|
||||
|
||||
|
||||
/* DWORD 0 */
|
||||
#define HTT_TX_MSDU_EXT2_DESC_FLAG_VALID_PWR_GET(_var) \
|
||||
|
|
@ -2010,6 +2038,36 @@ PREPACK struct htt_tx_msdu_desc_ext2_t {
|
|||
((_var) |= ((_val) << HTT_TX_MSDU_EXT2_DESC_FLAG_LEARNING_FRAME_S)); \
|
||||
} while (0)
|
||||
|
||||
#define HTT_TX_MSDU_EXT2_DESC_FLAG_SEND_AS_STANDALONE_GET(_var) \
|
||||
(((_var) & HTT_TX_MSDU_EXT2_DESC_FLAG_SEND_AS_STANDALONE_M) >> \
|
||||
HTT_TX_MSDU_EXT2_DESC_FLAG_SEND_AS_STANDALONE_S)
|
||||
|
||||
#define HTT_TX_MSDU_EXT2_DESC_FLAG_SEND_AS_STANDALONE_SET(_var, _val) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_TX_MSDU_EXT2_DESC_FLAG_SEND_AS_STANDALONE, _val); \
|
||||
((_var) |= ((_val) << HTT_TX_MSDU_EXT2_DESC_FLAG_SEND_AS_STANDALONE_S)); \
|
||||
} while (0)
|
||||
|
||||
#define HTT_TX_MSDU_EXT2_DESC_FLAG_HOST_OPAQUE_VALID_GET(_var) \
|
||||
(((_var) & HTT_TX_MSDU_EXT2_DESC_FLAG_HOST_OPAQUE_VALID_M) >> \
|
||||
HTT_TX_MSDU_EXT2_DESC_FLAG_HOST_OPAQUE_VALID_S)
|
||||
#define HTT_TX_MSDU_EXT2_DESC_FLAG_HOST_OPAQUE_VALID_SET(_var, _val) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_TX_MSDU_EXT2_DESC_FLAG_HOST_OPAQUE_VALID, _val); \
|
||||
((_var) |= ((_val) << HTT_TX_MSDU_EXT2_DESC_FLAG_HOST_OPAQUE_VALID_S)); \
|
||||
} while (0)
|
||||
|
||||
/* DWORD 6 */
|
||||
#define HTT_TX_MSDU_EXT2_DESC_HOST_OPAQUE_COOKIE_GET(_var) \
|
||||
(((_var) & HTT_TX_MSDU_EXT2_DESC_HOST_OPAQUE_COOKIE_M) >> \
|
||||
HTT_TX_MSDU_EXT2_DESC_HOST_OPAQUE_COOKIE_S)
|
||||
#define HTT_TX_MSDU_EXT2_DESC_HOST_OPAQUE_COOKIE_SET(_var, _val) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_TX_MSDU_EXT2_DESC_HOST_OPAQUE_COOKIE, _val); \
|
||||
((_var) |= ((_val) << HTT_TX_MSDU_EXT2_DESC_HOST_OPAQUE_COOKIE_S)); \
|
||||
} while (0)
|
||||
|
||||
|
||||
typedef enum {
|
||||
HTT_TCL_METADATA_TYPE_PEER_BASED = 0,
|
||||
HTT_TCL_METADATA_TYPE_VDEV_BASED = 1,
|
||||
|
|
|
|||
|
|
@ -724,6 +724,36 @@ typedef struct {
|
|||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* Data fields containing the physical address info of a MSDU buffer
|
||||
* as well as the owner and a SW cookie info that can be used by the host
|
||||
* to look up the virtual address of the MSDU buffer.
|
||||
* These fields are only valid if is_buffer_addr_info_valid is set to 1.
|
||||
*/
|
||||
A_UINT32 buffer_paddr_31_0 : 32;
|
||||
A_UINT32 buffer_paddr_39_32 : 8,
|
||||
return_buffer_manager : 3,
|
||||
sw_buffer_cookie : 21;
|
||||
|
||||
/*
|
||||
* host_opaque_cookie : Host can send upto 2 bytes of opaque
|
||||
* cookie in TCL_DATA_CMD and FW will replay this back in
|
||||
* HTT PPDU stats. Valid only if sent to FW through
|
||||
* exception mechanism.
|
||||
*
|
||||
* is_standalone : This msdu was sent as a single MSDU/MPDU
|
||||
* PPDU as indicated by host via TCL_DATA_CMD using
|
||||
* the send_as_standalone bit.
|
||||
*
|
||||
* is_buffer_addr_info_valid : This will be set whenever a MSDU is sent as
|
||||
* a singleton (single-MSDU PPDU) for FW use-cases or as indicated by host
|
||||
* via send_as_standalone in TCL_DATA_CMD.
|
||||
*/
|
||||
A_UINT32 host_opaque_cookie: 16,
|
||||
is_host_opaque_valid: 1,
|
||||
is_standalone: 1,
|
||||
is_buffer_addr_info_valid: 1,
|
||||
reserved1: 13;
|
||||
} htt_ppdu_stats_user_common_tlv;
|
||||
|
||||
#define HTT_PPDU_STATS_USER_RATE_TLV_TID_NUM_M 0x000000ff
|
||||
|
|
@ -821,6 +851,104 @@ typedef struct {
|
|||
((_var) |= ((_val) << HTT_PPDU_STATS_USER_RATE_TLV_RESP_TYPE_VALID_S)); \
|
||||
} while (0)
|
||||
|
||||
|
||||
#define HTT_PPDU_STATS_BUF_ADDR_39_32_M 0x000000ff
|
||||
#define HTT_PPDU_STATS_BUF_ADDR_39_32_S 0
|
||||
|
||||
#define HTT_PPDU_STATS_BUF_ADDR_39_32__GET(_var) \
|
||||
(((_var) & HTT_PPDU_STATS_BUF_ADDR_39_32_M) >> \
|
||||
HTT_PPDU_STATS_BUF_ADDR_39_32_S)
|
||||
|
||||
#define HTT_PPDU_STATS_BUF_ADDR_39_32_SET(_var, _val) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_PPDU_STATS_BUF_ADDR_39_32, _val); \
|
||||
((_var) |= ((_val) << HTT_PPDU_STATS_BUF_ADDR_39_32_S)); \
|
||||
} while (0)
|
||||
|
||||
|
||||
#define HTT_PPDU_STATS_RETURN_BUF_MANAGER_M 0x00000700
|
||||
#define HTT_PPDU_STATS_RETURN_BUF_MANAGER_S 8
|
||||
|
||||
#define HTT_PPDU_STATS_RETURN_BUF_MANAGER_GET(_var) \
|
||||
(((_var) & HTT_PPDU_STATS_RETURN_BUF_MANAGER_M) >> \
|
||||
HTT_PPDU_STATS_RETURN_BUF_MANAGER_S)
|
||||
|
||||
#define HTT_PPDU_STATS_RETURN_BUF_MANAGER_SET(_var, _val) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_PPDU_STATS_RETURN_BUF_MANAGER, _val); \
|
||||
((_var) |= ((_val) << HTT_PPDU_STATS_RETURN_BUF_MANAGER_S)); \
|
||||
} while (0)
|
||||
|
||||
|
||||
#define HTT_PPDU_STATS_SW_BUFFER_COOKIE_M 0xfffff800
|
||||
#define HTT_PPDU_STATS_SW_BUFFER_COOKIE_S 11
|
||||
|
||||
#define HTT_PPDU_STATS_SW_BUFFER_COOKIE_GET(_var) \
|
||||
(((_var) & HTT_PPDU_STATS_SW_BUFFER_COOKIE_M) >> \
|
||||
HTT_PPDU_STATS_SW_BUFFER_COOKIE_S)
|
||||
|
||||
#define HTT_PPDU_STATS_SW_BUFFER_COOKIE_SET(_var, _val) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_PPDU_STATS_SW_BUFFER_COOKIE, _val); \
|
||||
((_var) |= ((_val) << HTT_PPDU_STATS_SW_BUFFER_COOKIE_S)); \
|
||||
} while (0)
|
||||
|
||||
|
||||
#define HTT_PPDU_STATS_HOST_OPAQUE_COOKIE_M 0x0000FFFF
|
||||
#define HTT_PPDU_STATS_HOST_OPAQUE_COOKIE_S 0
|
||||
|
||||
#define HTT_PPDU_STATS_HOST_OPAQUE_COOKIE_GET(_var) \
|
||||
(((_var) & HTT_PPDU_STATS_HOST_OPAQUE_COOKIE_M) >> \
|
||||
HTT_PPDU_STATS_HOST_OPAQUE_COOKIE_S)
|
||||
|
||||
#define HTT_PPDU_STAT_HOST_OPAQUE_COOKIE_SET(_var, _val) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_PPDU_STATS_HOST_OPAQUE_COOKIE, _val); \
|
||||
((_var) |= ((_val) << HTT_PPDU_STATS_HOST_OPAQUE_COOKIE_S)); \
|
||||
} while (0)
|
||||
|
||||
|
||||
#define HTT_PPDU_STATS_IS_OPAQUE_VALID_M 0x00010000
|
||||
#define HTT_PPDU_STATS_IS_OPAQUE_VALID_S 16
|
||||
|
||||
#define HTT_PPDU_STATS_IS_OPAQUE_VALID_GET(_var) \
|
||||
(((_var) & HTT_PPDU_STATS_IS_OPAQUE_VALID_M) >> \
|
||||
HTT_PPDU_STATS_IS_OPAQUE_VALID_S)
|
||||
|
||||
#define HTT_PPDU_STATS_IS_OPAQUE_VALID_SET(_var, _val) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_PPDU_STATS_IS_OPAQUE_VALID, _val); \
|
||||
((_var) |= ((_val) << HTT_PPDU_STATS_IS_OPAQUE_VALID_S)); \
|
||||
} while (0)
|
||||
|
||||
|
||||
#define HTT_PPDU_STATS_IS_STANDALONE_M 0x00020000
|
||||
#define HTT_PPDU_STATS_IS_STANDALONE_S 17
|
||||
|
||||
#define HTT_PPDU_STATS_IS_STANDALONE_GET(_var) \
|
||||
(((_var) & HTT_PPDU_STATS_IS_STANDALONE_M) >> \
|
||||
HTT_PPDU_STATS_IS_OPAQUE_VALID_S)
|
||||
|
||||
#define HTT_PPDU_STATS_IS_STANDALONE_SET(_var, _val) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_PPDU_STATS_IS_STANDALONE, _val); \
|
||||
((_var) |= ((_val) << HTT_PPDU_STATS_IS_STANDALONE_S)); \
|
||||
} while (0)
|
||||
|
||||
|
||||
#define HTT_PPDU_STATS_IS_BUFF_INFO_VALID_M 0x000400000
|
||||
#define HTT_PPDU_STATS_IS_BUFF_INFO_VALID_S 18
|
||||
|
||||
#define HTT_PPDU_STATS_IS_BUFF_INFO_VALID_GET(_var) \
|
||||
(((_var) & HTT_PPDU_STATS_IS_BUFF_INFO_VALID_M) >> \
|
||||
HTT_PPDU_STATS_IS_BUFF_INFO_VALID_S)
|
||||
|
||||
#define HTT_PPDU_STATS_IS_BUFF_INFO_VALID_SET(_var, _val) \
|
||||
do { \
|
||||
HTT_CHECK_SET_VAL(HTT_PPDU_STATS_IS_BUFF_INFO_VALID, _val); \
|
||||
((_var) |= ((_val) << HTT_PPDU_STATS_IS_BUFF_INFO_VALID_S)); \
|
||||
} while (0)
|
||||
|
||||
enum HTT_PPDU_STATS_PPDU_TYPE {
|
||||
HTT_PPDU_STATS_PPDU_TYPE_SU,
|
||||
HTT_PPDU_STATS_PPDU_TYPE_MU_MIMO,
|
||||
|
|
|
|||
Loading…
Reference in a new issue