Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f66c333c authored by Linux Build Service Account's avatar Linux Build Service Account
Browse files

Merge 0ada8dde on remote branch

Change-Id: Idd2f2f2405a74112b439418d3bcf92d03b30f7f1
parents d9b8a303 0ada8dde
Loading
Loading
Loading
Loading
+259 −14
Original line number Diff line number Diff line
@@ -191,9 +191,13 @@
 * 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
 * 3.73 Add channel pre-calibration data upload and download messages defs for
 *      HTT_T2H_MSG_TYPE_CHAN_CALDATA and HTT_H2T_MSG_TYPE_CHAN_CALDATA
 */
#define HTT_CURRENT_VERSION_MAJOR 3
#define HTT_CURRENT_VERSION_MINOR 71
#define HTT_CURRENT_VERSION_MINOR 73
#define HTT_NUM_TX_FRAG_DESC  1024
@@ -534,6 +538,7 @@ enum htt_h2t_msg_type {
    HTT_H2T_MSG_TYPE_PPDU_STATS_CFG        = 0x11,
    HTT_H2T_MSG_TYPE_RX_FSE_SETUP_CFG      = 0x12,
    HTT_H2T_MSG_TYPE_RX_FSE_OPERATION_CFG  = 0x13,
    HTT_H2T_MSG_TYPE_CHAN_CALDATA          = 0x14,
    /* keep this last */
    HTT_H2T_NUM_MSGS
@@ -6338,6 +6343,7 @@ enum htt_t2h_msg_type {
     * to provide to the monitor mode interface.
     */
    HTT_T2H_MSG_TYPE_TX_OFFLOAD_DELIVER_IND   = 0x25,
    HTT_T2H_MSG_TYPE_CHAN_CALDATA             = 0x26,
    HTT_T2H_MSG_TYPE_TEST,
    /* keep this last */
@@ -7855,7 +7861,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 +7913,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 +8066,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 +9518,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 +9711,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 +9812,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); \
@@ -13019,27 +13050,39 @@ struct htt_ul_ofdma_user_info_v0 {
    A_UINT32 word1;
};
#define HTT_UL_OFDMA_USER_INFO_V0_BITMAP_W0 \
    A_UINT32 w0_fw_rsvd:30; \
    A_UINT32 w0_valid:1; \
    A_UINT32 w0_version:1;
struct htt_ul_ofdma_user_info_v0_bitmap_w0 {
    HTT_UL_OFDMA_USER_INFO_V0_BITMAP_W0
};
#define HTT_UL_OFDMA_USER_INFO_V0_BITMAP_W1 \
    A_UINT32 w1_nss:3; \
    A_UINT32 w1_mcs:4; \
    A_UINT32 w1_ldpc:1; \
    A_UINT32 w1_dcm:1; \
    A_UINT32 w1_ru_start:7; \
    A_UINT32 w1_ru_size:3; \
    A_UINT32 w1_trig_type:4; \
    A_UINT32 w1_unused:9;
struct htt_ul_ofdma_user_info_v0_bitmap_w1 {
    HTT_UL_OFDMA_USER_INFO_V0_BITMAP_W1
};
/* htt_up_ofdma_user_info_v0_bitmap shows what bitfields are within the info */
PREPACK struct htt_ul_ofdma_user_info_v0_bitmap {
    union {
        A_UINT32 word0;
        struct {
            A_UINT32 w0_fw_rsvd:30;
            A_UINT32 w0_valid:1;
            A_UINT32 w0_version:1;
            HTT_UL_OFDMA_USER_INFO_V0_BITMAP_W0
        };
    };
    union {
        A_UINT32 word1;
        struct {
            A_UINT32 w1_nss:3;
            A_UINT32 w1_mcs:4;
            A_UINT32 w1_ldpc:1;
            A_UINT32 w1_dcm:1;
            A_UINT32 w1_ru_start:7;
            A_UINT32 w1_ru_size:3;
            A_UINT32 w1_trig_type:4;
            A_UINT32 w1_unused:9;
            HTT_UL_OFDMA_USER_INFO_V0_BITMAP_W1
        };
    };
} POSTPACK;
@@ -13191,5 +13234,207 @@ enum HTT_UL_OFDMA_TRIG_TYPE {
        ((word) |= ((_val) << HTT_UL_OFDMA_USER_INFO_V0_W1_RU_TRIG_TYP_S)); \
    } while (0)
/**
 * @brief target -> host channel calibration data message
 * @brief host -> target channel calibration data message
 *
 * @details
 * The following field definitions describe the format of the channel
 * calibration data message sent from the target to the host when
 * MSG_TYPE is HTT_T2H_MSG_TYPE_CHAN_CALDATA, and sent from the host
 * to the target when MSG_TYPE is HTT_H2T_MSG_TYPE_CHAN_CALDATA.
 * The message is defined as htt_chan_caldata_msg followed by a variable
 * number of 32-bit character values.
 *
 * |31              21|20|19   16|15  13|  12|11      8|7            0|
 * |------------------------------------------------------------------|
 * |       rsv        | A| frag  | rsv  |ck_v| sub_type|   msg type   |
 * |------------------------------------------------------------------|
 * |        payload size         |               mhz                  |
 * |------------------------------------------------------------------|
 * |      center frequency 2     |          center frequency 1        |
 * |------------------------------------------------------------------|
 * |                              check sum                           |
 * |------------------------------------------------------------------|
 * |                              payload                             |
 * |------------------------------------------------------------------|
 * message info field:
 *   - MSG_TYPE
 *     Bits 7:0
 *     Purpose: identifies this as a channel calibration data message
 *     Value: HTT_T2H_MSG_TYPE_CHAN_CALDATA (0x15) or
 *            HTT_H2T_MSG_TYPE_CHAN_CALDATA (0xb)
 *   - SUB_TYPE
 *     Bits 11:8
 *     Purpose: T2H: indicates whether target is providing chan cal data
 *                   to the host to store, or requesting that the host
 *                   download previously-stored data.
 *              H2T: indicates whether the host is providing the requested
 *                   channel cal data, or if it is rejecting the data
 *                   request because it does not have the requested data.
 *     Value: see HTT_T2H_MSG_CHAN_CALDATA_xxx defs
 *   - CHKSUM_VALID
 *     Bit 12
 *     Purpose: indicates if the checksum field is valid
 *     value:
 *   - FRAG
 *     Bit 19:16
 *     Purpose: indicates the fragment index for message
 *     value: 0 for first fragment, 1 for second fragment, ...
 *   - APPEND
 *     Bit 20
 *     Purpose: indicates if this is the last fragment
 *     value: 0 = final fragment, 1 = more fragments will be appended
 *
 * channel and payload size field
 *   - MHZ
 *     Bits 15:0
 *     Purpose: indicates the channel primary frequency
 *     Value:
 *   - PAYLOAD_SIZE
 *     Bits 31:16
 *     Purpose: indicates the bytes of calibration data in payload
 *     Value:
 *
 * center frequency field
 *   - CENTER FREQUENCY 1
 *     Bits 15:0
 *     Purpose: indicates the channel center frequency
 *     Value: channel center frequency, in MHz units
 *   - CENTER FREQUENCY 2
 *     Bits 31:16
 *     Purpose: indicates the secondary channel center frequency,
 *              only for 11acvht 80plus80 mode
 *     Value:  secondary channel center frequeny, in MHz units, if applicable
 *
 * checksum field
 *   - CHECK_SUM
 *     Bits 31:0
 *     Purpose: check the payload data, it is just for this fragment.
 *              This is intended for the target to check that the channel
 *              calibration data returned by the host is the unmodified data
 *              that was previously provided to the host by the target.
 *     value: checksum of fragment payload
 */
PREPACK struct htt_chan_caldata_msg {
    /* DWORD 0: message info */
    A_UINT32
        msg_type: 8,
        sub_type: 4 ,
        chksum_valid: 1, /** 1:valid, 0:invalid  */
        reserved1: 3,
        frag_idx: 4,     /** fragment index for calibration data */
        appending: 1,    /** 0: no fragment appending,
                          *  1: extra fragment appending */
        reserved2: 11;
    /* DWORD 1: channel and payload size */
    A_UINT32
        mhz: 16,          /** primary 20 MHz channel frequency in mhz */
        payload_size: 16; /** unit: bytes */
    /* DWORD 2: center frequency */
    A_UINT32
        band_center_freq1: 16, /** Center frequency 1 in MHz */
        band_center_freq2: 16; /** Center frequency 2 in MHz,
                                *  valid only for 11acvht 80plus80 mode */
    /* DWORD 3: check sum */
    A_UINT32 chksum;
    /* variable length for calibration data */
    A_UINT32   payload[1/* or more */];
} POSTPACK;
/* T2H SUBTYPE */
#define HTT_T2H_MSG_CHAN_CALDATA_REQ     0
#define HTT_T2H_MSG_CHAN_CALDATA_UPLOAD  1
/* H2T SUBTYPE */
#define HTT_H2T_MSG_CHAN_CALDATA_REJ       0
#define HTT_H2T_MSG_CHAN_CALDATA_DOWNLOAD  1
#define HTT_CHAN_CALDATA_MSG_SUB_TYPE_S    8
#define HTT_CHAN_CALDATA_MSG_SUB_TYPE_M    0x00000f00
#define HTT_CHAN_CALDATA_MSG_SUB_TYPE_GET(_var) \
    (((_var) & HTT_CHAN_CALDATA_MSG_SUB_TYPE_M) >> HTT_CHAN_CALDATA_MSG_SUB_TYPE_S)
#define HTT_CHAN_CALDATA_MSG_SUB_TYPE_SET(_var, _val) \
    do {                                                     \
        HTT_CHECK_SET_VAL(HTT_CHAN_CALDATA_MSG_SUB_TYPE, _val);  \
        ((_var) |= ((_val) << HTT_CHAN_CALDATA_MSG_SUB_TYPE_S)); \
    } while (0)
#define HTT_CHAN_CALDATA_MSG_CHKSUM_V_S    12
#define HTT_CHAN_CALDATA_MSG_CHKSUM_V_M    0x00001000
#define HTT_CHAN_CALDATA_MSG_CHKSUM_V_GET(_var) \
    (((_var) & HTT_CHAN_CALDATA_MSG_CHKSUM_V_M) >> HTT_CHAN_CALDATA_MSG_CHKSUM_V_S)
#define HTT_CHAN_CALDATA_MSG_CHKSUM_V_SET(_var, _val) \
    do {                                                     \
        HTT_CHECK_SET_VAL(HTT_CHAN_CALDATA_MSG_CHKSUM_V, _val);  \
        ((_var) |= ((_val) << HTT_CHAN_CALDATA_MSG_CHKSUM_V_S)); \
    } while (0)
#define HTT_CHAN_CALDATA_MSG_FRAG_IDX_S    16
#define HTT_CHAN_CALDATA_MSG_FRAG_IDX_M    0x000f0000
#define HTT_CHAN_CALDATA_MSG_FRAG_IDX_GET(_var) \
    (((_var) & HTT_CHAN_CALDATA_MSG_FRAG_IDX_M) >> HTT_CHAN_CALDATA_MSG_FRAG_IDX_S)
#define HTT_CHAN_CALDATA_MSG_FRAG_IDX_SET(_var, _val) \
    do {                                                     \
        HTT_CHECK_SET_VAL(HTT_CHAN_CALDATA_MSG_FRAG_IDX, _val);  \
        ((_var) |= ((_val) << HTT_CHAN_CALDATA_MSG_FRAG_IDX_S)); \
    } while (0)
#define HTT_CHAN_CALDATA_MSG_APPENDING_S    20
#define HTT_CHAN_CALDATA_MSG_APPENDING_M    0x00100000
#define HTT_CHAN_CALDATA_MSG_APPENDING_GET(_var) \
    (((_var) & HTT_CHAN_CALDATA_MSG_APPENDING_M) >> HTT_CHAN_CALDATA_MSG_APPENDING_S)
#define HTT_CHAN_CALDATA_MSG_APPENDING_SET(_var, _val) \
    do {                                                     \
        HTT_CHECK_SET_VAL(HTT_CHAN_CALDATA_MSG_APPENDING, _val);  \
        ((_var) |= ((_val) << HTT_CHAN_CALDATA_MSG_APPENDING_S)); \
    } while (0)
#define HTT_CHAN_CALDATA_MSG_MHZ_S    0
#define HTT_CHAN_CALDATA_MSG_MHZ_M    0x0000ffff
#define HTT_CHAN_CALDATA_MSG_MHZ_GET(_var) \
    (((_var) & HTT_CHAN_CALDATA_MSG_MHZ_M) >> HTT_CHAN_CALDATA_MSG_MHZ_S)
#define HTT_CHAN_CALDATA_MSG_MHZ_SET(_var, _val) \
    do {                                                     \
        HTT_CHECK_SET_VAL(HTT_CHAN_CALDATA_MSG_MHZ, _val);  \
        ((_var) |= ((_val) << HTT_CHAN_CALDATA_MSG_MHZ_S)); \
    } while (0)
#define HTT_CHAN_CALDATA_MSG_PLD_SIZE_S    16
#define HTT_CHAN_CALDATA_MSG_PLD_SIZE_M    0xffff0000
#define HTT_CHAN_CALDATA_MSG_PLD_SIZE_GET(_var) \
    (((_var) & HTT_CHAN_CALDATA_MSG_PLD_SIZE_M) >> HTT_CHAN_CALDATA_MSG_PLD_SIZE_S)
#define HTT_CHAN_CALDATA_MSG_PLD_SIZE_SET(_var, _val) \
    do {                                                     \
        HTT_CHECK_SET_VAL(HTT_CHAN_CALDATA_MSG_PLD_SIZE, _val);  \
        ((_var) |= ((_val) << HTT_CHAN_CALDATA_MSG_PLD_SIZE_S)); \
    } while (0)
#define HTT_CHAN_CALDATA_MSG_FREQ1_S    0
#define HTT_CHAN_CALDATA_MSG_FREQ1_M    0x0000ffff
#define HTT_CHAN_CALDATA_MSG_FREQ1_GET(_var) \
    (((_var) & HTT_CHAN_CALDATA_MSG_FREQ1_M) >> HTT_CHAN_CALDATA_MSG_FREQ1_S)
#define HTT_CHAN_CALDATA_MSG_FREQ1_SET(_var, _val) \
    do {                                                     \
        HTT_CHECK_SET_VAL(HTT_CHAN_CALDATA_MSG_FREQ1, _val);  \
        ((_var) |= ((_val) << HTT_CHAN_CALDATA_MSG_FREQ1_S)); \
    } while (0)
#define HTT_CHAN_CALDATA_MSG_FREQ2_S    16
#define HTT_CHAN_CALDATA_MSG_FREQ2_M    0xffff0000
#define HTT_CHAN_CALDATA_MSG_FREQ2_GET(_var) \
    (((_var) & HTT_CHAN_CALDATA_MSG_FREQ2_M) >> HTT_CHAN_CALDATA_MSG_FREQ2_S)
#define HTT_CHAN_CALDATA_MSG_FREQ2_SET(_var, _val) \
    do {                                                     \
        HTT_CHECK_SET_VAL(HTT_CHAN_CALDATA_MSG_FREQ2, _val);  \
        ((_var) |= ((_val) << HTT_CHAN_CALDATA_MSG_FREQ2_S)); \
    } while (0)
#endif
+50 −4
Original line number Diff line number Diff line
@@ -1513,6 +1513,45 @@ typedef enum HTT_PPDU_STATS_RESP_TYPE HTT_PPDU_STATS_RESP_TYPE;
         ((_var) |= ((_val) << HTT_PPDU_STATS_USER_CMPLTN_COMMON_TLV_RESP_TYPE_S)); \
     } while (0)

#define HTT_PPDU_STATS_USER_CMPLTN_COMMON_TLV_MPROT_TYPE_M  0x0000e000
#define HTT_PPDU_STATS_USER_CMPLTN_COMMON_TLV_MPROT_TYPE_S          13

#define HTT_PPDU_STATS_USER_CMPLTN_COMMON_TLV_MPROT_TYPE_GET(_var) \
    (((_var) & HTT_PPDU_STATS_USER_CMPLTN_COMMON_TLV_MPROT_TYPE_M) >> \
    HTT_PPDU_STATS_USER_CMPLTN_COMMON_TLV_MPROT_TYPE_S)

#define HTT_PPDU_STATS_USER_CMPLTN_COMMON_TLV_MPROT_TYPE_SET (_var , _val) \
    do { \
        HTT_CHECK_SET_VAL(HTT_PPDU_STATS_USER_CMPLTN_COMMON_TLV_MPROT_TYPE, _val); \
        ((_var) |= ((_val) << HTT_PPDU_STATS_USER_CMPLTN_COMMON_TLV_MPROT_TYPE_S)); \
    } while (0)

#define HTT_PPDU_STATS_USER_CMPLTN_COMMON_TLV_RTS_SUCCESS_M  0x00010000
#define HTT_PPDU_STATS_USER_CMPLTN_COMMON_TLV_RTS_SUCCESS_S          16

#define HTT_PPDU_STATS_USER_CMPLTN_COMMON_TLV_RTS_SUCCESS_GET(_var) \
    (((_var) & HTT_PPDU_STATS_USER_CMPLTN_COMMON_TLV_RTS_SUCCESS_M) >> \
    HTT_PPDU_STATS_USER_CMPLTN_COMMON_TLV_RTS_SUCCESS_S)

#define HTT_PPDU_STATS_USER_CMPLTN_COMMON_TLV_RTS_SUCCESS_SET (_var, _val) \
    do { \
        HTT_CHECK_SET_VAL(HTT_PPDU_STATS_USER_CMPLTN_COMMON_TLV_RTS_SUCCESS, _val); \
        ((_var) |= ((_val) << HTT_PPDU_STATS_USER_CMPLTN_COMMON_TLV_RTS_SUCCESS_S)); \
    } while (0)

#define HTT_PPDU_STATS_USER_CMPLTN_COMMON_TLV_RTS_FAILURE_M  0x00020000
#define HTT_PPDU_STATS_USER_CMPLTN_COMMON_TLV_RTS_FAILURE_S          17

#define HTT_PPDU_STATS_USER_CMPLTN_COMMON_TLV_RTS_FAILURE_GET(_var) \
    (((_var) & HTT_PPDU_STATS_USER_CMPLTN_COMMON_TLV_RTS_FAILURE_M) >> \
    HTT_PPDU_STATS_USER_CMPLTN_COMMON_TLV_RTS_FAILURE_S)

#define HTT_PPDU_STATS_USER_CMPLTN_COMMON_TLV_RTS_FAILURE_SET (_var , _val) \
    do { \
        HTT_CHECK_SET_VAL(HTT_PPDU_STATS_USER_CMPLTN_COMMON_TLV_RTS_FAILURE, _val); \
        ((_var) |= ((_val) << HTT_PPDU_STATS_USER_CMPLTN_COMMON_TLV_RTS_FAILURE_S)); \
    } while (0)

#define HTT_PPDU_STATS_USER_CMPLTN_COMMON_TLV_CHAIN_RSSI_M     0xffffffff
#define HTT_PPDU_STATS_USER_CMPLTN_COMMON_TLV_CHAIN_RSSI_S              0

@@ -1633,16 +1672,23 @@ typedef struct {
     * BIT [ 7 :   4]   :- short_retries
     * BIT [ 8 :   8]   :- is_ampdu
     * BIT [ 12:   9]   :- resp_type
     * BIT [ 31:  13]   :- reserved0
     * BIT [ 15:  13]   :- medium protection type
     * BIT [ 16:  16]   :- rts_success
     * BIT [ 17:  17]   :- rts_failure
     * BIT [ 31:  18]   :- reserved
     */
    union {
        A_UINT32 resp_type_is_ampdu__short_retry__long_retry;
        struct {
        A_UINT32 resp_type_is_ampdu__short_retry__long_retry; /* older name */
        A_UINT32 resp_type__is_ampdu__short_retry__long_retry__mprot_type__rts_success__rts_failure; /* newer name */
        struct { /* bitfield names */
            A_UINT32 long_retries:               4,
                     short_retries:              4,
                     is_ampdu:                   1,
                     resp_type:                  4,
                     reserved0:                 19;
                     mprot_type:                 3,
                     rts_success:                1,
                     rts_failure:                1,
                     reserved0:                 14;
        };
    };

+28 −2
Original line number Diff line number Diff line
@@ -143,6 +143,7 @@ enum htt_dbg_ext_stats_type {
     *           4 bit htt_tx_tid_stats_tlv/htt_tx_tid_stats_v1_tlv
     *           5 bit htt_rx_tid_stats_tlv
     *           6 bit htt_msdu_flow_stats_tlv
     *           7 bit htt_peer_sched_stats_tlv
     *   - config_param2: [Bit31 : Bit0] mac_addr31to0
     *   - config_param3: [Bit15 : Bit0] mac_addr47to32
     *                    [Bit 16] If this bit is set, reset per peer stats
@@ -439,6 +440,7 @@ typedef enum {
    HTT_STATS_RX_PDEV_UL_MIMO_USER_STATS_TAG       = 96, /* htt_rx_pdev_ul_mimo_user_stats_tlv */
    HTT_STATS_RX_PDEV_UL_MUMIMO_TRIG_STATS_TAG     = 97, /* htt_rx_pdev_ul_mumimo_trig_stats_tlv */
    HTT_STATS_RX_FSE_STATS_TAG                     = 98, /* htt_rx_fse_stats_tlv */
    HTT_STATS_PEER_SCHED_STATS_TAG                 = 99, /* htt_peer_sched_stats_tlv */

    HTT_STATS_MAX_TAG,
} htt_tlv_tag_t;
@@ -1333,10 +1335,26 @@ typedef enum {
    HTT_TX_TID_STATS_TLV       = 4,
    HTT_RX_TID_STATS_TLV       = 5,
    HTT_MSDU_FLOW_STATS_TLV    = 6,
    HTT_PEER_SCHED_STATS_TLV   = 7,

    HTT_PEER_STATS_MAX_TLV     = 31,
} htt_peer_stats_tlv_enum;

typedef struct {
    htt_tlv_hdr_t tlv_hdr;
    A_UINT32 peer_id;
    /* Num of DL schedules for peer */
    A_UINT32 num_sched_dl;
    /* Num od UL schedules for peer */
    A_UINT32 num_sched_ul;
    /* Peer TX time */
    A_UINT32 peer_tx_active_dur_us_low;
    A_UINT32 peer_tx_active_dur_us_high;
    /* Peer RX time */
    A_UINT32 peer_rx_active_dur_us_low;
    A_UINT32 peer_rx_active_dur_us_high;
} htt_peer_sched_stats_tlv;

/* config_param0 */
#define HTT_DBG_EXT_STATS_PEER_INFO_IS_MAC_ADDR_M 0x00000001
#define HTT_DBG_EXT_STATS_PEER_INFO_IS_MAC_ADDR_S 0
@@ -1385,6 +1403,7 @@ typedef enum {
 *   - HTT_STATS_RX_TID_DETAILS_TAG (multiple)
 *   - HTT_STATS_PEER_MSDU_FLOWQ_TAG (multiple)
 *   - HTT_STATS_TX_TID_DETAILS_V1_TAG (multiple)
 *   - HTT_STATS_PEER_SCHED_STATS_TAG
 */
/* NOTE:
 * This structure is for documentation, and cannot be safely used directly.
@@ -1401,6 +1420,7 @@ typedef struct _htt_peer_stats {
    htt_rx_tid_stats_tlv       rx_tid_stats[1];
    htt_msdu_flow_stats_tlv    msdu_flowq[1];
    htt_tx_tid_stats_v1_tlv    tx_tid_stats_v1[1];
    htt_peer_sched_stats_tlv   peer_sched_stats;
} htt_peer_stats_t;

/* =========== ACTIVE PEER LIST ========== */
@@ -1898,7 +1918,7 @@ typedef struct {
/* NOTE: Variable length TLV, use length spec to infer array size */
typedef struct {
    htt_tlv_hdr_t tlv_hdr;
    /* Scheduler command posted per tx_mode su / mu mimo 11ac / mu mimo 11ax / mu ofdma */
    /* Scheduler command posted per tx_mode */
    A_UINT32 sched_cmd_posted[1]; /* HTT_TX_PDEV_SCHED_TX_MODE_MAX */
} htt_sched_txq_cmd_posted_tlv_v;

@@ -1907,7 +1927,7 @@ typedef struct {
/* NOTE: Variable length TLV, use length spec to infer array size */
typedef struct {
    htt_tlv_hdr_t tlv_hdr;
    /* Scheduler command reaped per tx_mode su / mu mimo 11ac / mu mimo 11ax / mu ofdma */
    /* Scheduler command reaped per tx_mode */
    A_UINT32 sched_cmd_reaped[1]; /* HTT_TX_PDEV_SCHED_TX_MODE_MAX */
} htt_sched_txq_cmd_reaped_tlv_v;

@@ -2041,6 +2061,12 @@ typedef struct {
    A_UINT32 su_min_txtime_sched_delay;
    /* scheduled via no delay */
    A_UINT32 su_no_delay;
    /* Num of supercycles for this TxQ */
    A_UINT32 num_supercycles;
    /* Num of subcycles with sort for this TxQ */
    A_UINT32 num_subcycles_with_sort;
    /* Num of subcycles without sort for this Txq */
    A_UINT32 num_subcycles_no_sort;
} htt_tx_pdev_stats_sched_per_txq_tlv;

#define HTT_STATS_TX_SCHED_CMN_MAC_ID_M 0x000000ff
+25 −0
Original line number Diff line number Diff line
@@ -406,6 +406,16 @@ typedef enum {
    WMI_SERVICE_WPA3_SAE_ROAM_SUPPORT = 221, /* Indicates FW supports WPA3 SAE roaming */
    WMI_SERVICE_WPA3_OWE_ROAM_SUPPORT = 222, /* Indicates FW supports WPA3 OWE roaming */
    WMI_SERVICE_AUDIO_AGGR = 223, /* Indicates FW supports audio frame aggregation */
    WMI_SERVICE_6GHZ_SUPPORT = 224, /* Indicates FW supports 6GHZ (scan, connection and so on) */
    /* WMI_SERVICE_QMI_STATS_SUPPORT
     * Indicates FW supports stat request command WMI_REQUEST_LINK_STATS_CMDID
     * and WMI_REQUEST_STATS_CMDID coming from QMI which will be used in
     * runtime PM suspend.
     */
    WMI_SERVICE_QMI_STATS_SUPPORT = 225,
    WMI_SERVICE_CFR_CAPTURE_FILTER_SUPPORT = 226, /* Indicate FW Supports Channel Frequency Response (CFR) via WMI_CFR_CAPTURE_FILTER_CMDID */
    WMI_SERVICE_STA_BSS_MAX_IDLE_TIME = 227, /* Indicate FW supports BSS Max Idle time feature via WMI_VDEV_BSS_MAX_IDLE_TIME_CMDID */


    /******* ADD NEW SERVICES HERE *******/

@@ -416,7 +426,22 @@ typedef enum {
#define WMI_SERVICE_BM_SIZE   ((WMI_MAX_SERVICE + sizeof(A_UINT32)- 1)/sizeof(A_UINT32))

#define WMI_NUM_EXT_SERVICES (WMI_MAX_EXT_SERVICE - WMI_MAX_SERVICE)

/*
 * TEMPORARY WORKAROUND
 * Virtually all branches of the target utilize an incorrect check on
 * the value of WMI_SERVICE_EXT_BM_SIZE32, checking that
 * WMI_SERVICE_EXT_BM_SIZE32 < 4, rather than WMI_SERVICE_EXT_BM_SIZE32 <= 4.
 * Until all target branches are fixed, this check is being disabled
 * by artificially setting WMI_SERVICE_EXT_BM_SIZE32 to 0, rather than
 * the number of 4-byte words required for holding the WMI extension
 * service flags.
 */
#if 0
#define WMI_SERVICE_EXT_BM_SIZE32 ((WMI_NUM_EXT_SERVICES + 31) / 32)
#else
#define WMI_SERVICE_EXT_BM_SIZE32 0
#endif

#define WMI_SERVICE_ROAM_OFFLOAD WMI_SERVICE_ROAM_SCAN_OFFLOAD /* depreciated the name WMI_SERVICE_ROAM_OFFLOAD, but here to help compiling with old host driver */

Loading