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

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

Merge 7b7d8fcd on remote branch

Change-Id: I7ebe85872cafe9f33f2555bd45f1453b302f9172
parents daf205b1 7b7d8fcd
Loading
Loading
Loading
Loading
+286 −5
Original line number Diff line number Diff line
@@ -252,9 +252,12 @@
 * 3.124 Add HTT_T2H_MSG_TYPE_PEER_EXTENDED_EVENT def.
 * 3.125 Expand fisa_aggr_limit bits in fisa_control_bits_v2.
 * 3.126 Add HTT_RXDATA_ERR_INVALID_PEER def.
 * 3.127 Add transmit_count fields in htt_tx_wbm_completion_vX structs.
 * 3.128 Add H2T TX_LATENCY_STATS_CFG + T2H TX_LATENCY_STATS_PERIODIC_IND
 *       msg defs
 */
#define HTT_CURRENT_VERSION_MAJOR 3
#define HTT_CURRENT_VERSION_MINOR 126
#define HTT_CURRENT_VERSION_MINOR 128
#define HTT_NUM_TX_FRAG_DESC  1024
@@ -808,6 +811,8 @@ typedef enum {
    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_MLO_SCHED_STATS_TAG                  = 190, /* htt_mlo_sched_stats_tlv */
    HTT_STATS_PDEV_MLO_IPC_STATS_TAG               = 191, /* htt_pdev_mlo_ipc_stats_tlv */
    HTT_STATS_MAX_TAG,
@@ -880,6 +885,7 @@ enum htt_h2t_msg_type {
    HTT_H2T_MSG_TYPE_UMAC_HANG_RECOVERY_SOC_START_PRE_RESET = 0x22,
    HTT_H2T_MSG_TYPE_RX_CCE_SUPER_RULE_SETUP = 0x23,
    HTT_H2T_MSG_TYPE_PRIMARY_LINK_PEER_MIGRATE_RESP = 0x24,
    HTT_H2T_MSG_TYPE_TX_LATENCY_STATS_CFG  = 0x25,
    /* keep this last */
    HTT_H2T_NUM_MSGS
@@ -2877,7 +2883,8 @@ PREPACK struct htt_tx_wbm_completion_v2 {
        tx_status:              4, /* Takes enum values of htt_tx_fw2wbm_tx_status_t */
        reinject_reason:        4, /* Takes enum values of htt_tx_fw2wbm_reinject_reason_t */
        exception_frame:        1,
        rsvd0:                 12, /* For future use */
        transmit_count:         7, /* Refer to struct wbm_release_ring */
        rsvd0:                  5, /* For future use */
        used_by_hw4:            1, /* wbm_internal_error bit being used by HW */
        rsvd1:                  1; /* For future use */
    A_UINT32
@@ -2903,6 +2910,8 @@ PREPACK struct htt_tx_wbm_completion_v2 {
#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
#define HTT_TX_WBM_COMPLETION_V2_TRANSMIT_COUNT_M            0x01FC0000
#define HTT_TX_WBM_COMPLETION_V2_TRANSMIT_COUNT_S            18
/* DWORD 3 */
#define HTT_TX_WBM_COMPLETION_V2_TX_STATUS_GET(_var) \
@@ -2935,6 +2944,16 @@ PREPACK struct htt_tx_wbm_completion_v2 {
         ((_var) |= ((_val) << HTT_TX_WBM_COMPLETION_V2_EXP_FRAME_S)); \
     } while (0)
#define HTT_TX_WBM_COMPLETION_V2_TRANSMIT_COUNT_GET(_var) \
     (((_var) & HTT_TX_WBM_COMPLETION_V2_TRANSMIT_COUNT_M) >> \
    HTT_TX_WBM_COMPLETION_V2_TRANSMIT_COUNT_S)
#define HTT_TX_WBM_COMPLETION_V2_TRANSMIT_COUNT_SET(_var, _val) \
     do { \
         HTT_CHECK_SET_VAL(HTT_TX_WBM_COMPLETION_V2_TRANSMIT_COUNT, _val); \
         ((_var) |= ((_val) << HTT_TX_WBM_COMPLETION_V2_TRANSMIT_COUNT_S)); \
     } while (0)
/**
 * @brief HTT TX WBM Completion from firmware to host (V3)
 * @details
@@ -2960,7 +2979,8 @@ PREPACK struct htt_tx_wbm_completion_v3 {
    A_UINT32
        reinject_reason:       4,  /* Takes enum values of htt_tx_fw2wbm_reinject_reason_t */
        exception_frame:       1,
        rsvd0:                 27; /* For future use */
        transmit_count:        7, /* Refer to struct wbm_release_ring */
        rsvd0:                 20; /* For future use */
    A_UINT32
        data0:                 32; /* data0,1 and 2 changes based on tx_status type
                                    * if HTT_TX_FW2WBM_TX_STATUS_OK or HTT_TX_FW2WBM_TX_STATUS_DROP
@@ -2977,13 +2997,17 @@ PREPACK struct htt_tx_wbm_completion_v3 {
        used_by_hw4:           12; /* Refer to struct wbm_release_ring */
} POSTPACK;
/* DWORD 3 */
#define HTT_TX_WBM_COMPLETION_V3_TX_STATUS_M                 0x0001E000
#define HTT_TX_WBM_COMPLETION_V3_TX_STATUS_S                 13
/* DWORD 4 */
#define HTT_TX_WBM_COMPLETION_V3_REINJECT_REASON_M           0x0000000F
#define HTT_TX_WBM_COMPLETION_V3_REINJECT_REASON_S           0
#define HTT_TX_WBM_COMPLETION_V3_EXP_FRAME_M                 0x00000010
#define HTT_TX_WBM_COMPLETION_V3_EXP_FRAME_S                 4
#define HTT_TX_WBM_COMPLETION_V3_TRANSMIT_COUNT_M            0x00000FE0
#define HTT_TX_WBM_COMPLETION_V3_TRANSMIT_COUNT_S            5
#define HTT_TX_WBM_COMPLETION_V3_TX_STATUS_GET(_var) \
@@ -3016,6 +3040,16 @@ PREPACK struct htt_tx_wbm_completion_v3 {
         ((_var) |= ((_val) << HTT_TX_WBM_COMPLETION_V3_EXP_FRAME_S)); \
     } while (0)
#define HTT_TX_WBM_COMPLETION_V3_TRANSMIT_COUNT_GET(_var) \
    (((_var) & HTT_TX_WBM_COMPLETION_V3_TRANSMIT_COUNT_M) >> \
    HTT_TX_WBM_COMPLETION_V3_TRANSMIT_COUNT_S)
#define HTT_TX_WBM_COMPLETION_V3_TRANSMIT_COUNT_SET(_var, _val) \
     do { \
         HTT_CHECK_SET_VAL(HTT_TX_WBM_COMPLETION_V3_TRANSMIT_COUNT, _val); \
         ((_var) |= ((_val) << HTT_TX_WBM_COMPLETION_V3_TRANSMIT_COUNT_S)); \
     } while (0)
typedef enum {
    TX_FRAME_TYPE_UNDEFINED = 0,
@@ -3056,7 +3090,11 @@ PREPACK struct htt_tx_wbm_transmit_status {
                              * contains valid data.
                              */
       frame_type:       4,  /* holds htt_tx_wbm_status_frame_type value */
       reserved:         4;
       transmit_count_valid: 1, /* If this "transmit_count_valid" is set, the
                                 * transmit_count field in struct
                                 * htt_tx_wbm_completion_vx has valid data.
                                 */
       reserved:         3;
   A_UINT32
       ppdu_start_tsf:  32;  /* PPDU Start timestamp added for multicast
                              * packets in the wbm completion path
@@ -3080,6 +3118,10 @@ PREPACK struct htt_tx_wbm_transmit_status {
#define HTT_TX_WBM_COMPLETION_V2_MCAST_S               22
#define HTT_TX_WBM_COMPLETION_V2_MCAST_VALID_M         0x00800000
#define HTT_TX_WBM_COMPLETION_V2_MCAST_VALID_S         23
#define HTT_TX_WBM_COMPLETION_V2_FRAME_TYPE_M          0x0F000000
#define HTT_TX_WBM_COMPLETION_V2_FRAME_TYPE_S          24
#define HTT_TX_WBM_COMPLETION_V2_TRANSMIT_CNT_VALID_M  0x10000000
#define HTT_TX_WBM_COMPLETION_V2_TRANSMIT_CNT_VALID_S  28
/* DWORD 4 */
#define HTT_TX_WBM_COMPLETION_V2_SCH_CMD_ID_GET(_var) \
@@ -3153,6 +3195,26 @@ PREPACK struct htt_tx_wbm_transmit_status {
         ((_var) |= ((_val) << HTT_TX_WBM_COMPLETION_V2_MCAST_VALID_S)); \
     } while (0)
#define HTT_TX_WBM_COMPLETION_V2_FRAME_TYPE_GET(_var) \
    (((_var) & HTT_TX_WBM_COMPLETION_V2_FRAME_TYPE_M) >> \
    HTT_TX_WBM_COMPLETION_V2_FRAME_TYPE_S)
#define HTT_TX_WBM_COMPLETION_V2_FRAME_TYPE_SET(_var, _val) \
     do { \
         HTT_CHECK_SET_VAL(HTT_TX_WBM_COMPLETION_V2_FRAME_TYPE, _val); \
         ((_var) |= ((_val) << HTT_TX_WBM_COMPLETION_V2_FRAME_TYPE_S)); \
#define HTT_TX_WBM_COMPLETION_V2_TRANSMIT_CNT_VALID_GET(_var) \
    (((_var) & HTT_TX_WBM_COMPLETION_V2_TRANSMIT_CNT_VALID_M) >> \
    HTT_TX_WBM_COMPLETION_V2_TRANSMIT_CNT_VALID_S)
#define HTT_TX_WBM_COMPLETION_V2_TRANSMIT_CNT_VALID_SET(_var, _val) \
     do { \
         HTT_CHECK_SET_VAL(HTT_TX_WBM_COMPLETION_V2_MCAST_VALID, _val); \
         ((_var) |= ((_val) << HTT_TX_WBM_COMPLETION_V2_TRANSMIT_CNT_VALID_S)); \
     } while (0)
/**
 * @brief HTT TX WBM reinject status from firmware to host
 * @details
@@ -10715,6 +10777,88 @@ typedef struct {
        } while (0)
/**
 * @brief host -> tgt msg to configure params for PPDU tx latency stats report
 *
 * MSG_TYPE => HTT_H2T_MSG_TYPE_TX_LATENCY_STATS_CFG
 *
 * @details
 *    HTT_H2T_MSG_TYPE_TX_LATENCY_STATS_CFG message is sent by the host to
 *    configure the parameters needed for FW to report PPDU tx latency stats
 *    for latency prediction in user space.
 *
 *    The message would appear as follows:
 *    |31       28|27               12|11|10    8|7            0|
 *    |-----------+-------------------+--+-------+--------------|
 *    |granularity| periodic interval | E|vdev ID|   msg type   |
 *    |-----------+-------------------+--+-------+--------------|
 * Where: E = enable
 *
 * The message is interpreted as follows:
 * dword0 - b'0:7   - msg_type: This will be set to 0x25
 *                    (HTT_H2T_MSG_TYPE_TX_LATENCY_STATS_CFG)
 *          b'8:10  - vdev_id: Indicate which vdev is configuration is for
 *          b'11    - enable:  Indicate this message is to enable/disable
 *                    PPDU latency report from FW
 *          b'12:27 - periodic_interval: Indicate the report interval in MS
 *          b'28:31 - granularity: Indicate the granularity of the latency
 *                    stats report, in ms
 */
/* HTT_H2T_MSG_TYPE_TX_LATENCY_STATS_CFG */
PREPACK struct htt_h2t_tx_latency_stats_cfg {
    A_UINT32 msg_type          :8,
             vdev_id           :3,
             enable            :1,
             periodic_interval :16,
             granularity       :4;
} POSTPACK;
#define HTT_H2T_TX_LATENCY_STATS_CFG_VDEV_ID_M                       0x00000700
#define HTT_H2T_TX_LATENCY_STATS_CFG_VDEV_ID_S                       8
#define HTT_H2T_TX_LATENCY_STATS_CFG_VDEV_ID_GET(_var) \
        (((_var) & HTT_H2T_TX_LATENCY_STATS_CFG_VDEV_ID_M) >> \
                HTT_H2T_TX_LATENCY_STATS_CFG_VDEV_ID_S)
#define HTT_H2T_TX_LATENCY_STATS_CFG_VDEV_ID_SET(_var, _val) \
    do {                                                     \
        HTT_CHECK_SET_VAL(HTT_H2T_TX_LATENCY_STATS_CFG_VDEV_ID, _val);  \
        ((_var) |= ((_val) << HTT_H2T_TX_LATENCY_STATS_CFG_VDEV_ID_S)); \
    } while (0)
#define HTT_H2T_TX_LATENCY_STATS_CFG_ENABLE_M                        0x00000800
#define HTT_H2T_TX_LATENCY_STATS_CFG_ENABLE_S                        11
#define HTT_H2T_TX_LATENCY_STATS_CFG_ENABLE_GET(_var) \
        (((_var) & HTT_H2T_TX_LATENCY_STATS_CFG_ENABLE_M) >> \
                HTT_H2T_TX_LATENCY_STATS_CFG_ENABLE_S)
#define HTT_H2T_TX_LATENCY_STATS_CFG_ENABLE_SET(_var, _val) \
    do {                                                     \
        HTT_CHECK_SET_VAL(HTT_H2T_TX_LATENCY_STATS_CFG_ENABLE, _val);  \
        ((_var) |= ((_val) << HTT_H2T_TX_LATENCY_STATS_CFG_ENABLE_S)); \
    } while (0)
#define HTT_H2T_TX_LATENCY_STATS_CFG_PERIODIC_INTERVAL_M             0x0FFFF000
#define HTT_H2T_TX_LATENCY_STATS_CFG_PERIODIC_INTERVAL_S             12
#define HTT_H2T_TX_LATENCY_STATS_CFG_PERIODIC_INTERVAL_GET(_var) \
        (((_var) & HTT_H2T_TX_LATENCY_STATS_CFG_PERIODIC_INTERVAL_M) >> \
                HTT_H2T_TX_LATENCY_STATS_CFG_PERIODIC_INTERVAL_S)
#define HTT_H2T_TX_LATENCY_STATS_CFG_PERIODIC_INTERVAL_SET(_var, _val) \
    do {                                                     \
        HTT_CHECK_SET_VAL(HTT_H2T_TX_LATENCY_STATS_CFG_PERIODIC_INTERVAL, _val);  \
        ((_var) |= ((_val) << HTT_H2T_TX_LATENCY_STATS_CFG_PERIODIC_INTERVAL_S)); \
    } while (0)
#define HTT_H2T_TX_LATENCY_STATS_CFG_GRANULARITY_M                   0xF0000000
#define HTT_H2T_TX_LATENCY_STATS_CFG_GRANULARITY_S                   28
#define HTT_H2T_TX_LATENCY_STATS_CFG_GRANULARITY_GET(_var) \
        (((_var) & HTT_H2T_TX_LATENCY_STATS_CFG_GRANULARITY_M) >> \
                HTT_H2T_TX_LATENCY_STATS_CFG_GRANULARITY_S)
#define HTT_H2T_TX_LATENCY_STATS_CFG_GRANULARITY_SET(_var, _val) \
    do {                                                     \
        HTT_CHECK_SET_VAL(HTT_H2T_TX_LATENCY_STATS_CFG_GRANULARITY, _val);  \
        ((_var) |= ((_val) << HTT_H2T_TX_LATENCY_STATS_CFG_GRANULARITY_S)); \
    } while (0)
/*=== target -> host messages ===============================================*/
@@ -10785,6 +10929,7 @@ enum htt_t2h_msg_type {
    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_TX_LATENCY_STATS_PERIODIC_IND = 0x3a,
    HTT_T2H_MSG_TYPE_TEST,
@@ -21932,5 +22077,141 @@ typedef struct {
#define HTT_PEER_AST_OVERRIDE_INDEX_IND_BYTES             16
/**
 * @brief target -> periodic report of tx latency to host
 *
 * MSG_TYPE => HTT_T2H_MSG_TYPE_TX_LATENCY_STATS_PERIODIC_IND
 *
 * @details
 * The message starts with a message header followed by one or more
 * htt_t2h_peer_tx_latency_stats structs, one for each peer within the vdev.
 * After each upload, these tx latency stats will be reset.
 *
 *      |31        24|23        16|15 14|13 10|9 8|7        0|
 *      +-------------------------+-----+-----+---+----------|
 * hdr  |            |pyld elem sz|     |  GR | P | msg type |
 *-    -|=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-|
 * pyld |                        peer ID                     |
 *      |----------------------------------------------------|
 *      |                   peer_tx_latency[0]               |
 *      |----------------------------------------------------|
 * 1st  |                   peer_tx_latency[1]               |
 * peer |----------------------------------------------------|
 *      |                   peer_tx_latency[2]               |
 *      |----------------------------------------------------|
 *      |                   peer_tx_latency[3]               |
 *      |----------------------------------------------------|
 *      |                      avg latency                   |
 *      |=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-|
 *      |                        peer ID                     |
 *      |----------------------------------------------------|
 *      |                   peer_tx_latency[0]               |
 *      |----------------------------------------------------|
 * 2nd  |                   peer_tx_latency[1]               |
 * peer |----------------------------------------------------|
 *      |                   peer_tx_latency[2]               |
 *      |----------------------------------------------------|
 *      |                   peer_tx_latency[3]               |
 *      |----------------------------------------------------|
 *      |                      avg latency                   |
 *      |=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-|
 * Where:
 *     P  = pdev ID
 *     GR = granularity
 *
 * @details
 * htt_t2h_tx_latency_stats_periodic_hdr_t:
 *   - msg_type
 *     Bits 7:0
 *     Purpose: identifies this as a tx latency report message
 *     Value: 0x3a (HTT_T2H_MSG_TYPE_TX_LATENCY_STATS_PERIODIC_IND)
 *   - pdev_id
 *     Bits 9:8
 *     Purpose: Indicates which pdev this message is associated with.
 *   - granularity
 *     Bits 13:10
 *     Purpose: specifies the granulairty of each tx latency bucket in MS.
 *         There are 4 buckets in total. E.g. if granularity is set to 5 ms,
 *         then the ranges for the 4 latency histogram buckets will be
 *         0-5ms, 5ms-10ms, 10ms-15ms, 15ms-max, respectively.
 *   - payload_elem_size
 *     Bits 23:16
 *     Purpose: specifies the size of each element within the msg's payload
 *         In other words, this field specified the value of
 *         sizeof(htt_t2h_peer_tx_latency_stats) based on the target's
 *         revision of the htt_t2h_peer_tx_latency_stats definition.
 *         If the payload_elem_size reported in the message exceeds the
 *         sizeof(htt_t2h_peer_tx_latency_stats) based on the host's
 *         revision of the htt_t2h_peer_tx_latency_stats definition,
 *         the host shall ignore the excess data.
 *         Conversely, if the payload_elem_size reported in the message is
 *         less than sizeof(htt_t2h_peer_tx_latency_stats) based on the host's
 *         revision of the htt_t2h_peer_tx_latency_stats definition,
 *         the host shall use 0x0 values for the portion of the data not
 *         provided by the target.
 *         The host can compare the payload_elem_size to the total size of
 *         the message minus the size of the message header to determine
 *         how many peer payload elements are present in the message.
 *   - sw_peer_id
 *     Purpose: The peer to which the following stats belong
 *   - peer_tx_latency
 *     Purpose: tx latency histogram for this peer, with 4 buckets whose
 *         size (in milliseconds) is specified by the granularity field
 *   - avg_latency
 *     Purpose: average tx latency (in ms) for this peer in this report interval
*/
typedef struct {
    A_UINT32 msg_type:          8,
             pdev_id:           2,
             granularity:       4,
             reserved1:         2,
             payload_elem_size: 8,
             reserved2:         8;
} htt_t2h_tx_latency_stats_periodic_hdr_t;
#define HTT_T2H_TX_LATENCY_STATS_PERIODIC_IND_HDR_SIZE \
    (sizeof(htt_t2h_tx_latency_stats_periodic_hdr_t))
#define HTT_PEER_TX_LATENCY_REPORT_BINS 4
typedef struct _htt_tx_latency_stats {
    A_UINT32 peer_id;
    A_UINT32 peer_tx_latency[HTT_PEER_TX_LATENCY_REPORT_BINS];
    A_UINT32 avg_latency;
} htt_t2h_peer_tx_latency_stats;
#define HTT_T2H_TX_LATENCY_STATS_PERIODIC_IND_PDEV_ID_M              0x00000300
#define HTT_T2H_TX_LATENCY_STATS_PERIODIC_IND_PDEV_ID_S              8
#define HTT_T2H_TX_LATENCY_STATS_PERIODIC_IND_PDEV_ID_GET(_var) \
    (((_var) & HTT_T2H_TX_LATENCY_STATS_PERIODIC_IND_PDEV_ID_M) >> HTT_T2H_TX_LATENCY_STATS_PERIODIC_IND_PDEV_ID_S)
#define HTT_T2H_TX_LATENCY_STATS_PERIODIC_IND_PDEV_ID_SET(_var, _val) \
    do {                                                   \
        HTT_CHECK_SET_VAL(HTT_T2H_TX_LATENCY_STATS_PERIODIC_IND_PDEV_ID, _val);  \
        ((_var) |= ((_val) << HTT_T2H_TX_LATENCY_STATS_PERIODIC_IND_PDEV_ID_S)); \
    } while (0)
#define HTT_T2H_TX_LATENCY_STATS_PERIODIC_IND_GRANULARITY_M          0x00003C00
#define HTT_T2H_TX_LATENCY_STATS_PERIODIC_IND_GRANULARITY_S          10
#define HTT_T2H_TX_LATENCY_STATS_PERIODIC_IND_GRANULARITY_GET(_var) \
    (((_var) & HTT_T2H_TX_LATENCY_STATS_PERIODIC_IND_GRANULARITY_M) >> HTT_T2H_TX_LATENCY_STATS_PERIODIC_IND_GRANULARITY_S)
#define HTT_T2H_TX_LATENCY_STATS_PERIODIC_IND_GRANULARITY_SET(_var, _val) \
    do {                                                   \
        HTT_CHECK_SET_VAL(HTT_T2H_TX_LATENCY_STATS_PERIODIC_IND_GRANULARITY, _val);  \
        ((_var) |= ((_val) << HTT_T2H_TX_LATENCY_STATS_PERIODIC_IND_GRANULARITY_S)); \
    } while (0)
#define HTT_T2H_TX_LATENCY_STATS_PERIODIC_IND_PAYLOAD_ELEM_SIZE_M    0x00FF0000
#define HTT_T2H_TX_LATENCY_STATS_PERIODIC_IND_PAYLOAD_ELEM_SIZE_S    16
#define HTT_T2H_TX_LATENCY_STATS_PERIODIC_IND_PAYLOAD_ELEM_SIZE_GET(_var) \
    (((_var) & HTT_T2H_TX_LATENCY_STATS_PERIODIC_IND_PAYLOAD_ELEM_SIZE_M) >> HTT_T2H_TX_LATENCY_STATS_PERIODIC_IND_PAYLOAD_ELEM_SIZE_S)
#define HTT_T2H_TX_LATENCY_STATS_PERIODIC_IND_PAYLOAD_ELEM_SIZE_SET(_var, _val) \
    do {                                                   \
        HTT_CHECK_SET_VAL(HTT_T2H_TX_LATENCY_STATS_PERIODIC_IND_PAYLOAD_ELEM_SIZE, _val);  \
        ((_var) |= ((_val) << HTT_T2H_TX_LATENCY_STATS_PERIODIC_IND_PAYLOAD_ELEM_SIZE_S)); \
    } while (0)
#endif
+256 −0

File changed.

Preview size limit exceeded, changes collapsed.

+2 −0
Original line number Diff line number Diff line
@@ -640,6 +640,8 @@ typedef enum {
    WMI_SERVICE_DISABLE_WDS_PEER_MAP_UNMAP_EVENT_SUPPORT = 387, /* Indicate FW support to disable wds peer map/unmap events */
    WMI_SERVICE_PDEV_WSI_STATS_INFO_SUPPORT = 388, /* Support for WSI Stats Info. */
    WMI_SERVICE_MULTIPLE_RF_PATH_SOC_SUPPORT = 389, /* Indicates FW supports Multiple RF Path on SOC Level */
    WMI_SERVICE_RADAR_FLAGS_SUPPORT = 390, /* Indicates FW supports radar flags, such as full bandwidth need put to NOL */
    WMI_SERVICE_XPAN_SUPPORT = 391, /* Indicate FW support XPAN configuration */

    WMI_MAX_EXT2_SERVICE

+27 −3
Original line number Diff line number Diff line
@@ -1398,6 +1398,11 @@ typedef enum {
    WMITLV_TAG_STRUC_wmi_pdev_wsi_stats_info_cmd_fixed_param,
    WMITLV_TAG_STRUC_wmi_enhanced_aoa_caps_param,
    WMITLV_TAG_STRUC_wmi_enhanced_aoa_per_band_caps_param,
    WMITLV_TAG_STRUC_WMI_RADAR_FLAGS,
    WMITLV_TAG_STRUC_wmi_dma_buf_release_cqi_upload_meta_data,
    WMITLV_TAG_STRUC_wmi_csa_event_status_ind_fixed_param,
    WMITLV_TAG_STRUC_wmi_mlo_link_state_switch_req_evt_fixed_param,
    WMITLV_TAG_STRUC_wmi_mlo_link_state_switch_trigger_reason_tlv_param,
} WMITLV_TAG_ID;
/*
 * IMPORTANT: Please add _ALL_ WMI Commands Here.
@@ -1933,6 +1938,7 @@ typedef enum {
    OP(WMI_MLO_LINK_SWITCH_CONF_CMDID) \
    OP(WMI_NAN_OEM_DATA_CMDID) \
    OP(WMI_PDEV_WSI_STATS_INFO_CMDID) \
    OP(WMI_CSA_EVENT_STATUS_INDICATION_CMDID) \
    /* add new CMD_LIST elements above this line */


@@ -2249,6 +2255,7 @@ typedef enum {
    OP(WMI_MLO_LINK_SWITCH_REQUEST_EVENTID) \
    OP(WMI_NAN_OEM_DATA_EVENTID) \
    OP(WMI_PDEV_ENHANCED_AOA_PHASEDELTA_EVENTID) \
    OP(WMI_MLO_LINK_STATE_SWITCH_EVENTID) \
    /* add new EVT_LIST elements above this line */


@@ -5457,7 +5464,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_MLO_LINK_SET_BSS_PARAMS_CMDID);

/* MLO link switch confirmation command to inform FW about host side status and reason code */
#define WMITLV_TABLE_WMI_MLO_LINK_SWITCH_CONF_CMDID(id,op,buf,len) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mlo_link_switch_cnf_fixed_param, wmi_mlo_link_switch_cnf_fixed_param, fixed_param, WMITLV_SIZE_FIX)
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mlo_link_switch_cnf_fixed_param, wmi_mlo_link_switch_cnf_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_mlo_link_set_active_cmd_fixed_param, set_link_params, WMITLV_SIZE_VAR) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_mlo_set_active_link_number_param, link_number_param,  WMITLV_SIZE_VAR) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, ieee_link_id_bitmap, WMITLV_SIZE_VAR) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, ieee_link_id_bitmap2, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_MLO_LINK_SWITCH_CONF_CMDID);

/* WMI CMD used to send WSI stats info. */
@@ -5465,6 +5476,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_MLO_LINK_SWITCH_CONF_CMDID);
        WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_wsi_stats_info_cmd_fixed_param, wmi_pdev_wsi_stats_info_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_WSI_STATS_INFO_CMDID);

/* CSA status indication  command to inform FW about host accepting or rejecting csa event*/
#define WMITLV_TABLE_WMI_CSA_EVENT_STATUS_INDICATION_CMDID(id,op,buf,len) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_csa_event_status_ind_fixed_param ,  wmi_csa_event_status_ind_fixed_param,fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_CSA_EVENT_STATUS_INDICATION_CMDID);



/************************** TLV definitions of WMI events *******************************/
@@ -6255,7 +6271,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PEER_OPER_MODE_CHANGE_EVENTID);
WMITLV_CREATE_PARAM_STRUC(WMI_DFS_RADAR_EVENTID);

#define WMITLV_TABLE_WMI_PDEV_DFS_RADAR_DETECTION_EVENTID(id,op,buf,len) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_dfs_radar_detection_event_fixed_param, wmi_pdev_dfs_radar_detection_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_dfs_radar_detection_event_fixed_param, wmi_pdev_dfs_radar_detection_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, WMI_RADAR_FLAGS, radar_flags, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_DFS_RADAR_DETECTION_EVENTID);

#define WMITLV_TABLE_WMI_VDEV_ADFS_OCAC_COMPLETE_EVENTID(id,op,buf,len) \
@@ -7009,7 +7026,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_DMA_RING_CFG_RSP_EVENTID);
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_dma_buf_release_fixed_param, wmi_dma_buf_release_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_dma_buf_release_entry, entries, WMITLV_SIZE_VAR) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_dma_buf_release_spectral_meta_data, meta_data, WMITLV_SIZE_VAR) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_dma_buf_release_cv_upload_meta_data, cv_meta_data, WMITLV_SIZE_VAR)
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_dma_buf_release_cv_upload_meta_data, cv_meta_data, WMITLV_SIZE_VAR) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_dma_buf_release_cqi_upload_meta_data, cqi_meta_data, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_DMA_RING_BUF_RELEASE_EVENTID);

/* ctl failsafe check event */
@@ -7460,6 +7478,12 @@ WMITLV_CREATE_PARAM_STRUC(WMI_MLO_PRIMARY_LINK_PEER_MIGRATION_EVENTID);
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, aoa_data_buf, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_ENHANCED_AOA_PHASEDELTA_EVENTID);

/* MLO Link State Switch Event */
#define WMITLV_TABLE_WMI_MLO_LINK_STATE_SWITCH_EVENTID(id,op,buf,len) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mlo_link_state_switch_req_evt_fixed_param, wmi_mlo_link_state_switch_req_evt_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_mlo_link_state_switch_trigger_reason, switch_trigger_reason, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_MLO_LINK_STATE_SWITCH_EVENTID);


#ifdef __cplusplus
}
+325 −33

File changed.

Preview size limit exceeded, changes collapsed.

Loading