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

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

Merge b9736f20 on remote branch

Change-Id: Ieac36f04437394214eb963fddf1bfcb90e18de53
parents 1293b04f b9736f20
Loading
Loading
Loading
Loading
+139 −6
Original line number Diff line number Diff line
@@ -249,9 +249,11 @@
 * 3.121 Add HTT_T2H_MSG_TYPE_PEER_AST_OVERRIDE_INDEX_IND def.
 * 3.122 Add is_umac_hang flag in H2T UMAC_HANG_RECOVERY_SOC_START_PRE_RESET msg
 * 3.123 Add HTT_OPTION_TLV_TCL_METADATA_V21 def.
 * 3.124 Add HTT_T2H_MSG_TYPE_PEER_EXTENDED_EVENT def.
 * 3.125 Expand fisa_aggr_limit bits in fisa_control_bits_v2.
 */
#define HTT_CURRENT_VERSION_MAJOR 3
#define HTT_CURRENT_VERSION_MINOR 123
#define HTT_CURRENT_VERSION_MINOR 125
#define HTT_NUM_TX_FRAG_DESC  1024
@@ -803,6 +805,8 @@ typedef enum {
    HTT_STATS_MLO_UMAC_SSR_HANDSHAKE_TAG           = 185, /* htt_mlo_umac_htt_handshake_stats_tlv */
    HTT_STATS_MLO_UMAC_SSR_MLO_TAG                 = 186, /* htt_mlo_umac_ssr_mlo_stats_tlv */
    HTT_STATS_PDEV_TDMA_TAG                        = 187, /* htt_pdev_tdma_stats_tlv */
    HTT_STATS_CODEL_SVC_CLASS_TAG                  = 188, /* htt_codel_svc_class_stats_tlv */
    HTT_STATS_CODEL_MSDUQ_TAG                      = 189, /* htt_codel_msduq_stats_tlv */
    HTT_STATS_MAX_TAG,
@@ -8618,8 +8622,8 @@ PREPACK struct htt_h2t_msg_type_fisa_config_t {
         } fisa_control_bits;
         struct {
             A_UINT32 fisa_enable:                1,
                      fisa_aggr_limit:            4,
                      reserved:                   27;
                      fisa_aggr_limit:            6,
                      reserved:                   25;
         } fisa_control_bits_v2;
         A_UINT32 fisa_control_value;
@@ -8839,7 +8843,7 @@ PREPACK struct htt_h2t_msg_type_fisa_config_t {
        } while (0)
/* Dword 1: fisa_control_value fisa_aggr_limit */
#define HTT_RX_FISA_CONFIG_FISA_V2_AGGR_LIMIT_M        0x0000001e
#define HTT_RX_FISA_CONFIG_FISA_V2_AGGR_LIMIT_M        0x0000007e
#define HTT_RX_FISA_CONFIG_FISA_V2_AGGR_LIMIT_S        1
#define HTT_RX_FISA_CONFIG_FISA_V2_AGGR_LIMIT_GET(_var) \
        (((_var) & HTT_RX_FISA_CONFIG_FISA_V2_AGGR_LIMIT_M) >> \
@@ -10774,11 +10778,12 @@ enum htt_t2h_msg_type {
    HTT_T2H_MSG_TYPE_RX_ADDBA_EXTN                 = 0x31,
    HTT_T2H_MSG_TYPE_RX_DELBA_EXTN                 = 0x32,
    HTT_T2H_MSG_TYPE_RX_CCE_SUPER_RULE_SETUP_DONE  = 0x33,
    HTT_T2H_CODEL_MSDUQ_LATENCIES_ARRAY_CFG_IND    = 0x34,
    HTT_T2H_CODEL_MSDUQ_LATENCIES_ARRAY_CFG_IND    = 0x34, /* DEPRECATED */
    HTT_T2H_MSG_TYPE_RX_DATA_IND                   = 0x35,
    HTT_T2H_MSG_TYPE_SOFT_UMAC_TX_COMPL_IND        = 0x36,
    HTT_T2H_MSG_TYPE_PRIMARY_LINK_PEER_MIGRATE_IND = 0x37,
    HTT_T2H_MSG_TYPE_PEER_AST_OVERRIDE_INDEX_IND   = 0x38,
    HTT_T2H_MSG_TYPE_PEER_EXTENDED_EVENT           = 0x39,
    HTT_T2H_MSG_TYPE_TEST,
@@ -14042,6 +14047,132 @@ typedef enum {
#define HTT_RX_MLO_PEER_UNMAP_MLO_PEER_ID_SET    HTT_RX_MLO_PEER_MAP_MLO_PEER_ID_SET
#define HTT_RX_MLO_PEER_UNMAP_MLO_PEER_ID_GET    HTT_RX_MLO_PEER_MAP_MLO_PEER_ID_GET
/**
 * @brief target -> host peer extended event for additional information
 *
 * MSG_TYPE => HTT_T2H_MSG_TYPE_PEER_EXTENDED_EVENT
 *
 * @details
 * The following diagram shows the format of the peer extended message sent
 * from the target to the host. This layout assumes the target operates
 * as little-endian.
 *
 * This message always contains a SW peer ID.  The main purpose of the
 * SW peer ID is to tell the host what peer ID logical link id will be tagged
 * with, so that the host can use that peer ID to determine which link
 * transmitted the rx/tx frame.
 *
 * This message also contains MLO logical link id assigned to peer
 * with sw_peer_id if it is valid ML link peer.
 *
 *
 * |31    28|27    24|23   20|19|18     16|15               8|7               0|
 * |---------------------------------------------------------------------------|
 * |     VDEV_ID     |              SW peer ID               |     msg type    |
 * |---------------------------------------------------------------------------|
 * |    MAC addr 3   |    MAC addr 2      |    MAC addr 1    |    MAC addr 0   |
 * |---------------------------------------------------------------------------|
 * |          Reserved       |V | LINK ID |    MAC addr 5    |    MAC addr 4   |
 * |---------------------------------------------------------------------------|
 * |                                  Reserved                                 |
 * |---------------------------------------------------------------------------|
 * |                                  Reserved                                 |
 * |---------------------------------------------------------------------------|
 *
 * Where:
 *      LINK_ID (LOGICAL)     - 3 Bits Bit16,17,18 of 3rd byte
 *      V (valid)             - 1 Bit  Bit19 of 3rd byte
 *
 * The following field definitions describe the format of the rx peer extended
 * event messages sent from the target to the host.
 *     MSG_TYPE
 *     Bits 7:0
 *     Purpose: identifies this as an rx MLO peer extended information message
 *     Value: 0x39 (HTT_T2H_MSG_TYPE_PEER_EXTENDED_EVENT)
 *   - PEER_ID (a.k.a. SW_PEER_ID)
 *     Bits 8:23
 *     Purpose: The peer ID (index) that WAL has allocated
 *     Value: (rx) peer ID
 *   - VDEV_ID
 *     Bits 24:31
 *     Purpose: Gives the vdev id of peer with peer_id as above.
 *     Value: VDEV ID of wal_peer
 *
 *   - MAC_ADDR_L32
 *     Bits 31:0
 *     Purpose: Identifies which peer node the peer ID is for.
 *     Value: lower 4 bytes of peer node's MAC address
 *
 *   - MAC_ADDR_U16
 *     Bits 15:0
 *     Purpose: Identifies which peer node the peer ID is for.
 *     Value: upper 2 bytes of peer node's MAC address
 *     Rest all bits are reserved for future expansion
 *   - LOGICAL_LINK_ID
 *     Bits 18:16
 *     Purpose: Gives the logical link id of peer with peer_id as above. This
 *         field should be taken alongwith LOGICAL_LINK_ID_VALID
 *     Value: Logical link id used by wal_peer
 *   - LOGICAL_LINK_ID_VALID
 *     Bit 19
 *     Purpose: Clarifies whether the logical link id of peer with peer_id as
 *         is valid or not
 *     Value: 0/1 indicating LOGICAL_LINK_ID is valid or not
 */
#define HTT_RX_PEER_EXTENDED_PEER_ID_M                0x00ffff00
#define HTT_RX_PEER_EXTENDED_PEER_ID_S                8
#define HTT_RX_PEER_EXTENDED_VDEV_ID_M                0xff000000
#define HTT_RX_PEER_EXTENDED_VDEV_ID_S                24
#define HTT_RX_PEER_EXTENDED_MAC_ADDR_L32_M           0xffffffff
#define HTT_RX_PEER_EXTENDED_MAC_ADDR_L32_S           0
#define HTT_RX_PEER_EXTENDED_MAC_ADDR_U16_M           0x0000ffff
#define HTT_RX_PEER_EXTENDED_MAC_ADDR_U16_S           0
#define HTT_RX_PEER_EXTENDED_LOGICAL_LINK_ID_M        0x00070000
#define HTT_RX_PEER_EXTENDED_LOGICAL_LINK_ID_S        16
#define HTT_RX_PEER_EXTENDED_LOGICAL_LINK_ID_VALID_M  0x00080000
#define HTT_RX_PEER_EXTENDED_LOGICAL_LINK_ID_VALID_S  19
#define HTT_RX_PEER_EXTENDED_PEER_ID_SET(word, value)                        \
    do {                                                                \
        HTT_CHECK_SET_VAL(HTT_RX_PEER_MAP_PEER_ID, value);              \
        (word) |= (value)  << HTT_RX_PEER_EXTENDED_PEER_ID_S;                \
    } while (0)
#define HTT_RX_PEER_EXTENDED_PEER_ID_GET(word) \
    (((word) & HTT_RX_PEER_EXTENDED_PEER_ID_M) >> HTT_RX_PEER_EXTENDED_PEER_ID_S)
#define HTT_RX_PEER_EXTENDED_VDEV_ID_SET(word, value)                         \
    do {                                                                \
        HTT_CHECK_SET_VAL(HTT_RX_PEER_EXTENDED_VDEV_ID, value);               \
        (word) |= (value)  << HTT_RX_PEER_EXTENDED_VDEV_ID_S;                 \
    } while (0)
#define HTT_RX_PEER_EXTENDED_VDEV_ID_GET(word) \
    (((word) & HTT_RX_PEER_EXTENDED_VDEV_ID_M) >> HTT_RX_PEER_EXTENDED_VDEV_ID_S)
#define HTT_RX_PEER_EXTENDED_LOGICAL_LINK_ID_SET(word, value)                         \
    do {                                                                \
        HTT_CHECK_SET_VAL(HTT_RX_PEER_EXTENDED_LOGICAL_LINK_ID, value);               \
        (word) |= (value)  << HTT_RX_PEER_EXTENDED_LOGICAL_LINK_ID_S;                 \
    } while (0)
#define HTT_RX_PEER_EXTENDED_LOGICAL_LINK_ID_GET(word) \
    (((word) & HTT_RX_PEER_EXTENDED_LOGICAL_LINK_ID_M) >> HTT_RX_PEER_EXTENDED_LOGICAL_LINK_ID_S)
#define HTT_RX_PEER_EXTENDED_LOGICAL_LINK_ID_VALID_SET(word, value)                         \
    do {                                                                \
        HTT_CHECK_SET_VAL(HTT_RX_PEER_EXTENDED_LOGICAL_LINK_ID_VALID, value);               \
        (word) |= (value)  << HTT_RX_PEER_EXTENDED_LOGICAL_LINK_ID_VALID_S;                 \
    } while (0)
#define HTT_RX_PEER_EXTENDED_LOGICAL_LINK_ID_VALID_GET(word) \
    (((word) & HTT_RX_PEER_EXTENDED_LOGICAL_LINK_ID_VALID_M) >> HTT_RX_PEER_EXTENDED_LOGICAL_LINK_ID_VALID_S)
#define HTT_RX_PEER_EXTENDED_MAC_ADDR_OFFSET                4 /* bytes */
#define HTT_RX_PEER_EXTENDED_LOGICAL_LINK_ID_OFFSET         8  /* bytes */
#define HTT_RX_PEER_EXTENDED_LOGICAL_LINK_ID_VALID_OFFSET   8  /* bytes */
#define HTT_RX_PEER_EXTENDED_EVENT_BYTES 20 /* bytes */
/**
 * @brief target -> host message specifying security parameters
 *
@@ -21075,6 +21206,8 @@ PREPACK struct htt_rx_cce_super_rule_setup_done_t {
        } while (0)
/**
 * THE BELOW MESSAGE HAS BEEN DEPRECATED
 *======================================
 * @brief target -> host CoDel MSDU queue latencies array configuration
 *
 * MSG_TYPE => HTT_T2H_CODEL_MSDUQ_LATENCIES_ARRAY_CFG_IND
@@ -21125,7 +21258,7 @@ typedef struct {
             num_elem: 16; /* bits 31:16 */
    A_UINT32 paddr_low;
    A_UINT32 paddr_high;
} htt_t2h_codel_msduq_latencies_array_cfg_int_t;
} htt_t2h_codel_msduq_latencies_array_cfg_int_t; /* DEPRECATED */
#define HTT_T2H_CODEL_MSDUQ_LATENCIES_ARRAY_CFG_SIZE 12 /* bytes */
+96 −0
Original line number Diff line number Diff line
@@ -546,6 +546,15 @@ enum htt_dbg_ext_stats_type {
     */
    HTT_DBG_PDEV_TDMA_STATS = 57,

    /** HTT_DBG_CODEL_STATS
     * PARAMS:
     *    - No Params
     * RESP MSG:
     *    - htt_codel_svc_class_stats_tlv
     *    - htt_codel_msduq_stats_tlv
     */
    HTT_DBG_CODEL_STATS = 58,


    /* keep this last */
    HTT_DBG_NUM_EXT_STATS = 256,
@@ -9550,5 +9559,92 @@ typedef struct {
    htt_umac_ssr_stats_t stats;
} htt_umac_ssr_stats_tlv;

typedef struct {
    htt_tlv_hdr_t tlv_hdr;
    A_UINT32 svc_class_id;
    /* codel_drops:
     * How many times have MSDU queues belonging to this service class
     * dropped their head MSDU due to the queue's latency being above
     * the CoDel latency limit specified for the service class throughout
     * the full CoDel latency statistics collection window.
     */
    A_UINT32 codel_drops;
    /* codel_no_drops:
     * How many times have MSDU queues belonging to this service class
     * completed a CoDel latency statistics collection window and
     * concluded that no head MSDU drop is needed, due to the MSDU queue's
     * latency being under the limit specified for the service class at
     * some point during the window.
     */
    A_UINT32 codel_no_drops;
} htt_codel_svc_class_stats_tlv;

#define HTT_CODEL_MSDUQ_STATS_TX_FLOW_NUM_M 0x0000FFFF
#define HTT_CODEL_MSDUQ_STATS_TX_FLOW_NUM_S 0

#define HTT_CODEL_MSDUQ_STATS_TX_FLOW_NUM_GET(_var) \
    (((_var) & HTT_CODEL_MSDUQ_STATS_TX_FLOW_NUM_M) >> \
     HTT_CODEL_MSDUQ_STATS_TX_FLOW_NUM_S)
#define HTT_CODEL_MSDUQ_STATS_TX_FLOW_NUM_SET(_var, _val) \
    do { \
        HTT_CHECK_SET_VAL(HTT_CODEL_MSDUQ_STATS_TX_FLOW_NUM, _val); \
        ((_var) |= ((_val) << HTT_CODEL_MSDUQ_STATS_TX_FLOW_NUM_S)); \
    } while (0)

#define HTT_CODEL_MSDUQ_STATS_SVC_CLASS_ID_M 0x00FF0000
#define HTT_CODEL_MSDUQ_STATS_SVC_CLASS_ID_S 16

#define HTT_CODEL_MSDUQ_STATS_SVC_CLASS_ID_GET(_var) \
    (((_var) & HTT_CODEL_MSDUQ_STATS_SVC_CLASS_ID_M) >> \
     HTT_CODEL_MSDUQ_STATS_SVC_CLASS_ID_S)
#define HTT_CODEL_MSDUQ_STATS_SVC_CLASS_ID_SET(_var, _val) \
    do { \
        HTT_CHECK_SET_VAL(HTT_CODEL_MSDUQ_STATS_SVC_CLASS_ID, _val); \
        ((_var) |= ((_val) << HTT_CODEL_MSDUQ_STATS_SVC_CLASS_ID_S)); \
    } while (0)

#define HTT_CODEL_MSDUQ_STATS_DROPS_M 0x0000FFFF
#define HTT_CODEL_MSDUQ_STATS_DROPS_S 0

#define HTT_CODEL_MSDUQ_STATS_DROPS_GET(_var) \
    (((_var) & HTT_CODEL_MSDUQ_STATS_DROPS_M) >> \
     HTT_CODEL_MSDUQ_STATS_DROPS_S)
#define HTT_CODEL_MSDUQ_STATS_DROPS_SET(_var, _val) \
    do { \
        HTT_CHECK_SET_VAL(HTT_CODEL_MSDUQ_STATS_DROPS, _val); \
        ((_var) |= ((_val) << HTT_CODEL_MSDUQ_STATS_DROPS_S)); \
    } while (0)

#define HTT_CODEL_MSDUQ_STATS_NO_DROPS_M 0xFFFF0000
#define HTT_CODEL_MSDUQ_STATS_NO_DROPS_S 16

#define HTT_CODEL_MSDUQ_STATS_NO_DROPS_GET(_var) \
    (((_var) & HTT_CODEL_MSDUQ_STATS_NO_DROPS_M) >> \
     HTT_CODEL_MSDUQ_STATS_NO_DROPS_S)
#define HTT_CODEL_MSDUQ_STATS_NO_DROPS_SET(_var, _val) \
    do { \
        HTT_CHECK_SET_VAL(HTT_CODEL_MSDUQ_STATS_NO_DROPS, _val); \
        ((_var) |= ((_val) << HTT_CODEL_MSDUQ_STATS_NO_DROPS_S)); \
    } while (0)

typedef struct {
    htt_tlv_hdr_t tlv_hdr;
    union {
        A_UINT32 id__word;
        struct {
            A_UINT32 tx_flow_num: 16, /* FW's MSDU queue ID */
                     svc_class_id: 8,
                     reserved: 8;
        };
    };
    union {
        A_UINT32 stats__word;
        struct {
            A_UINT32
                codel_drops: 16,
                codel_no_drops: 16;
        };
    };
} htt_codel_msduq_stats_tlv;

#endif /* __HTT_STATS_H__ */
+7 −0
Original line number Diff line number Diff line
@@ -1849,5 +1849,12 @@ typedef struct {
A_COMPILE_TIME_ASSERT(check_mlo_glb_h_shmem_8byte_size_quantum,
        (((sizeof(mlo_glb_h_shmem) % sizeof(A_UINT64) == 0x0))));

/** 2 word representation of MAC addr */
typedef struct _wmi_mac_addr {
    /** upper 4 bytes of  MAC address */
    A_UINT32 mac_addr31to0;
    /** lower 2 bytes of  MAC address */
    A_UINT32 mac_addr47to32;
} wmi_mac_addr;

#endif /* __WLANDEFS_H__ */
+2 −0
Original line number Diff line number Diff line
@@ -632,6 +632,8 @@ typedef enum {
    WMI_SERVICE_MLO_TID_TO_LINK_MAPPING_SUPPORT = 379, /* Indicates FW supports TID-TO-LINK mapping */
    WMI_SERVICE_PER_LINK_STATS_SUPPORT = 380, /* Indicates FW supports per link stats for MLO */
    WMI_SERVICE_N_LINK_MLO_SUPPORT = 381,  /* Indicate FW supports N MLO link & vdev re-purpose between links */
    WMI_SERVICE_ATF_MAX_CLIENT_512_SUPPORT = 382, /* Indicates FW supports maximum of 512 clients when ATF is enabled */
    WMI_SERVICE_FISA_DYNAMIC_MSDU_AGGR_SIZE_SUPPORT = 383, /* Indicates FW support for FISA aggregation size up to 64 instead of only 16 */

    WMI_MAX_EXT2_SERVICE

+75 −9

File changed.

Preview size limit exceeded, changes collapsed.

Loading