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

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

Merge 5404c814 on remote branch

Change-Id: I0e27ea4860694d35c9a1d8ef87eba54898625d93
parents 3ebe0c8d 5404c814
Loading
Loading
Loading
Loading
+397 −2
Original line number Original line Diff line number Diff line
@@ -232,9 +232,11 @@
 * 3.105 Add HTT_H2T STREAMING_STATS_REQ + HTT_T2H STREAMING_STATS_IND defs.
 * 3.105 Add HTT_H2T STREAMING_STATS_REQ + HTT_T2H STREAMING_STATS_IND defs.
 * 3.106 Add HTT_T2H_PPDU_ID_FMT_IND def.
 * 3.106 Add HTT_T2H_PPDU_ID_FMT_IND def.
 * 3.107 Add traffic_end_indication bitfield in htt_tx_msdu_desc_ext2_t.
 * 3.107 Add traffic_end_indication bitfield in htt_tx_msdu_desc_ext2_t.
 * 3.108 Add HTT_H2T_MSG_TYPE_UMAC_HANG_RECOVERY_PREREQUISITE_SETUP def.
 * 3.109 Add HTT_T2H RX_ADDBA_EXTN,RX_DELBA_EXTN defs.
 */
 */
#define HTT_CURRENT_VERSION_MAJOR 3
#define HTT_CURRENT_VERSION_MAJOR 3
#define HTT_CURRENT_VERSION_MINOR 107
#define HTT_CURRENT_VERSION_MINOR 109
#define HTT_NUM_TX_FRAG_DESC  1024
#define HTT_NUM_TX_FRAG_DESC  1024
@@ -745,6 +747,10 @@ typedef enum {
    HTT_STATS_DMAC_RESET_STATS_TAG                 = 155, /* htt_dmac_reset_stats_tlv */
    HTT_STATS_DMAC_RESET_STATS_TAG                 = 155, /* htt_dmac_reset_stats_tlv */
    HTT_STATS_RX_PDEV_BE_UL_OFDMA_USER_STATS_TAG   = 156, /* htt_rx_pdev_be_ul_ofdma_user_stats_tlv */
    HTT_STATS_RX_PDEV_BE_UL_OFDMA_USER_STATS_TAG   = 156, /* htt_rx_pdev_be_ul_ofdma_user_stats_tlv */
    HTT_STATS_PHY_TPC_STATS_TAG                    = 157, /* htt_phy_tpc_stats_tlv */
    HTT_STATS_PHY_TPC_STATS_TAG                    = 157, /* htt_phy_tpc_stats_tlv */
    HTT_STATS_PDEV_PUNCTURE_STATS_TAG              = 158, /* htt_pdev_puncture_stats_tlv */
    HTT_STATS_ML_PEER_DETAILS_TAG                  = 159, /* htt_ml_peer_details_tlv */
    HTT_STATS_ML_PEER_EXT_DETAILS_TAG              = 160, /* htt_ml_peer_ext_details_tlv */
    HTT_STATS_ML_LINK_INFO_DETAILS_TAG             = 161, /* htt_ml_link_info_tlv */
    HTT_STATS_MAX_TAG,
    HTT_STATS_MAX_TAG,
@@ -813,6 +819,7 @@ enum htt_h2t_msg_type {
    HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ = 0x1e,
    HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ = 0x1e,
    HTT_H2T_MSG_TYPE_MSI_SETUP             = 0x1f,
    HTT_H2T_MSG_TYPE_MSI_SETUP             = 0x1f,
    HTT_H2T_MSG_TYPE_STREAMING_STATS_REQ   = 0x20,
    HTT_H2T_MSG_TYPE_STREAMING_STATS_REQ   = 0x20,
    HTT_H2T_MSG_TYPE_UMAC_HANG_RECOVERY_PREREQUISITE_SETUP = 0x21,
    /* keep this last */
    /* keep this last */
    HTT_H2T_NUM_MSGS
    HTT_H2T_NUM_MSGS
@@ -5175,6 +5182,8 @@ enum htt_srng_ring_id {
    HTT_TX_MON_MON2HOST_DEST_RING,  /* Used by monitor to fill status buffers and provide to host */
    HTT_TX_MON_MON2HOST_DEST_RING,  /* Used by monitor to fill status buffers and provide to host */
    HTT_RX_MON_HOST2MON_BUF_RING,   /* Status buffers and Packet buffers are provided by host */
    HTT_RX_MON_HOST2MON_BUF_RING,   /* Status buffers and Packet buffers are provided by host */
    HTT_RX_MON_MON2HOST_DEST_RING, /* Used by monitor to fill status buffers and provide to host */
    HTT_RX_MON_MON2HOST_DEST_RING, /* Used by monitor to fill status buffers and provide to host */
    HTT_LPASS_TO_FW_RXBUF_RING,    /* new LPASS to FW refill ring to recycle rx buffers */
    HTT_HOST3_TO_FW_RXBUF_RING,    /* used by host for EasyMesh feature */
    /* Add Other SRING which can't be directly configured by host software above this line */
    /* Add Other SRING which can't be directly configured by host software above this line */
};
};
@@ -9191,7 +9200,10 @@ PREPACK struct htt_h2t_host_paddr_size_entry_t {
    A_UINT32 physical_address_hi;
    A_UINT32 physical_address_hi;
} POSTPACK;
} POSTPACK;
#define HTT_H2T_HOST_PADDR_SIZE_ENTRY_SIZE  (sizeof(struct htt_h2t_host_paddr_size_entry_t))
#define HTT_H2T_HOST_PADDR_SIZE_ENTRY_SIZE \
    (sizeof(struct htt_h2t_host_paddr_size_entry_t))
#define HTT_H2T_HOST_PADDR_SIZE_ENTRY_DWORDS \
    (HTT_H2T_HOST_PADDR_SIZE_ENTRY_SIZE >> 2)
#define HTT_H2T_HOST_PADDR_SIZE_NUM_ENTRIES_M 0x0000FF00
#define HTT_H2T_HOST_PADDR_SIZE_NUM_ENTRIES_M 0x0000FF00
#define HTT_H2T_HOST_PADDR_SIZE_NUM_ENTRIES_S 8
#define HTT_H2T_HOST_PADDR_SIZE_NUM_ENTRIES_S 8
@@ -9605,6 +9617,237 @@ PREPACK struct htt_h2t_sawf_def_queues_map_report_req {
        ((word1) |= ((_val) << HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_EXISTING_TIDS_ONLY_S)); \
        ((word1) |= ((_val) << HTT_H2T_SAWF_DEF_QUEUES_MAP_REPORT_REQ_EXISTING_TIDS_ONLY_S)); \
    } while (0)
    } while (0)
/**
 * @brief Format of shared memory between Host and Target
 *        for UMAC hang recovery feature messaging.
 * @details
 *  This is shared memory between Host and Target allocated
 *  and used in chips where UMAC hang recovery feature is supported.
 *  If target sets a bit in t2h_msg (provided it's valid bit offset)
 *  then host interprets it as a new message from target.
 *  Host clears that particular read bit in t2h_msg after each read
 *  operation. It is vice versa for h2t_msg. At any given point
 *  of time there is expected to be only one bit set
 *  either in t2h_msg or h2t_msg (referring to valid bit offset).
 *
 * The message is interpreted as follows:
 * dword0 - b'0:31  - magic_num: Magic number for the shared memory region
 *                    added for debuggability purpose.
 * dword1 - b'0     - do_pre_reset
 *          b'1     - do_post_reset_start
 *          b'2     - do_post_reset_complete
 *          b'3:31  - rsvd_t2h
 * dword2 - b'0     - pre_reset_done
 *          b'1     - post_reset_start_done
 *          b'2     - post_reset_complete_done
 *          b'3:31  - rsvd_h2t
 */
PREPACK typedef struct {
    /** Magic number added for debuggability. */
    A_UINT32 magic_num;
    union {
        /*
         * BIT [0]        :- T2H msg to do pre-reset
         * BIT [1]        :- T2H msg to do post-reset start
         * BIT [2]        :- T2H msg to do post-reset complete
         * BIT [31 : 3]   :- reserved
         */
        A_UINT32 t2h_msg;
        struct {
            A_UINT32 do_pre_reset             :      1, /* BIT [0]      */
                     do_post_reset_start      :      1, /* BIT [1]      */
                     do_post_reset_complete   :      1, /* BIT [2]      */
                     rsvd_t2h                 :     29; /* BIT [31 : 3] */
        };
    };
    union {
        /*
         * BIT [0]        :- H2T msg to send pre-reset done
         * BIT [1]        :- H2T msg to send post-reset start done
         * BIT [2]        :- H2T msg to send post-reset complete done
         * BIT [31 : 3]   :- reserved
         */
        A_UINT32 h2t_msg;
        struct {
            A_UINT32 pre_reset_done           :      1, /* BIT [0]      */
                     post_reset_start_done    :      1, /* BIT [1]      */
                     post_reset_complete_done :      1, /* BIT [2]      */
                     rsvd_h2t                 :     29; /* BIT [31 : 3] */
        };
    };
} POSTPACK htt_umac_hang_recovery_msg_shmem_t;
#define HTT_UMAC_HANG_RECOVERY_MSG_SHMEM_BYTES \
    (sizeof(htt_umac_hang_recovery_msg_shmem_t))
#define HTT_UMAC_HANG_RECOVERY_MSG_SHMEM_DWORDS \
    (HTT_UMAC_HANG_RECOVERY_MSG_SHMEM_BYTES >> 2)
/* dword1 - b'0 - do_pre_reset */
#define HTT_UMAC_HANG_RECOVERY_MSG_SHMEM_DO_PRE_RESET_M 0x00000001
#define HTT_UMAC_HANG_RECOVERY_MSG_SHMEM_DO_PRE_RESET_S 0
#define HTT_UMAC_HANG_RECOVERY_MSG_SHMEM_DO_PRE_RESET_GET(word1) \
    (((word1) & HTT_UMAC_HANG_RECOVERY_MSG_SHMEM_DO_PRE_RESET_M) >> \
     HTT_UMAC_HANG_RECOVERY_MSG_SHMEM_DO_PRE_RESET_S)
#define HTT_UMAC_HANG_RECOVERY_MSG_SHMEM_DO_PRE_RESET_SET(word1, _val) \
    do { \
        HTT_CHECK_SET_VAL(HTT_UMAC_HANG_RECOVERY_MSG_SHMEM_DO_PRE_RESET, _val); \
        ((word1) |= ((_val) << HTT_UMAC_HANG_RECOVERY_MSG_SHMEM_DO_PRE_RESET_S));\
    } while (0)
/* dword1 - b'1 - do_post_reset_start */
#define HTT_UMAC_HANG_RECOVERY_MSG_SHMEM_DO_POST_RESET_START_M 0x00000002
#define HTT_UMAC_HANG_RECOVERY_MSG_SHMEM_DO_POST_RESET_START_S 1
#define HTT_UMAC_HANG_RECOVERY_MSG_SHMEM_DO_POST_RESET_START_GET(word1) \
    (((word1) & HTT_UMAC_HANG_RECOVERY_MSG_SHMEM_DO_POST_RESET_START_M) >> \
     HTT_UMAC_HANG_RECOVERY_MSG_SHMEM_DO_POST_RESET_START_S)
#define HTT_UMAC_HANG_RECOVERY_MSG_SHMEM_DO_POST_RESET_START_SET(word1, _val) \
    do { \
        HTT_CHECK_SET_VAL(HTT_UMAC_HANG_RECOVERY_MSG_SHMEM_DO_POST_RESET_START, _val); \
        ((word1) |= ((_val) << HTT_UMAC_HANG_RECOVERY_MSG_SHMEM_DO_POST_RESET_START_S));\
    } while (0)
/* dword1 - b'2 - do_post_reset_complete */
#define HTT_UMAC_HANG_RECOVERY_MSG_SHMEM_DO_POST_RESET_COMPLETE_M 0x00000004
#define HTT_UMAC_HANG_RECOVERY_MSG_SHMEM_DO_POST_RESET_COMPLETE_S 2
#define HTT_UMAC_HANG_RECOVERY_MSG_SHMEM_DO_POST_RESET_COMPLETE_GET(word1) \
    (((word1) & HTT_UMAC_HANG_RECOVERY_MSG_SHMEM_DO_POST_RESET_COMPLETE_M) >> \
     HTT_UMAC_HANG_RECOVERY_MSG_SHMEM_DO_POST_RESET_COMPLETE_S)
#define HTT_UMAC_HANG_RECOVERY_MSG_SHMEM_DO_POST_RESET_COMPLETE_SET(word1, _val) \
    do { \
        HTT_CHECK_SET_VAL(HTT_UMAC_HANG_RECOVERY_MSG_SHMEM_DO_POST_RESET_COMPLETE, _val); \
        ((word1) |= ((_val) << HTT_UMAC_HANG_RECOVERY_MSG_SHMEM_DO_POST_RESET_COMPLETE_S));\
    } while (0)
/* dword2 - b'0 - pre_reset_done */
#define HTT_UMAC_HANG_RECOVERY_MSG_SHMEM_PRE_RESET_DONE_M 0x00000001
#define HTT_UMAC_HANG_RECOVERY_MSG_SHMEM_PRE_RESET_DONE_S 0
#define HTT_UMAC_HANG_RECOVERY_MSG_SHMEM_PRE_RESET_DONE_GET(word2) \
    (((word2) & HTT_UMAC_HANG_RECOVERY_MSG_SHMEM_PRE_RESET_DONE_M) >> \
     HTT_UMAC_HANG_RECOVERY_MSG_SHMEM_PRE_RESET_DONE_S)
#define HTT_UMAC_HANG_RECOVERY_MSG_SHMEM_PRE_RESET_DONE_SET(word2, _val) \
    do { \
        HTT_CHECK_SET_VAL(HTT_UMAC_HANG_RECOVERY_MSG_SHMEM_PRE_RESET_DONE, _val); \
        ((word2) |= ((_val) << HTT_UMAC_HANG_RECOVERY_MSG_SHMEM_PRE_RESET_DONE_S));\
    } while (0)
/* dword2 - b'1 - post_reset_start_done */
#define HTT_UMAC_HANG_RECOVERY_MSG_SHMEM_POST_RESET_START_DONE_M 0x00000002
#define HTT_UMAC_HANG_RECOVERY_MSG_SHMEM_POST_RESET_START_DONE_S 1
#define HTT_UMAC_HANG_RECOVERY_MSG_SHMEM_POST_RESET_START_DONE_GET(word2) \
    (((word2) & HTT_UMAC_HANG_RECOVERY_MSG_SHMEM_POST_RESET_START_DONE_M) >> \
     HTT_UMAC_HANG_RECOVERY_MSG_SHMEM_POST_RESET_START_DONE_S)
#define HTT_UMAC_HANG_RECOVERY_MSG_SHMEM_POST_RESET_START_DONE_SET(word2, _val) \
    do { \
        HTT_CHECK_SET_VAL(HTT_UMAC_HANG_RECOVERY_MSG_SHMEM_POST_RESET_START_DONE, _val); \
        ((word2) |= ((_val) << HTT_UMAC_HANG_RECOVERY_MSG_SHMEM_POST_RESET_START_DONE_S));\
    } while (0)
/* dword2 - b'2 - post_reset_complete_done */
#define HTT_UMAC_HANG_RECOVERY_MSG_SHMEM_POST_RESET_COMPLETE_DONE_M 0x00000004
#define HTT_UMAC_HANG_RECOVERY_MSG_SHMEM_POST_RESET_COMPLETE_DONE_S 2
#define HTT_UMAC_HANG_RECOVERY_MSG_SHMEM_POST_RESET_COMPLETE_DONE_GET(word2) \
    (((word2) & HTT_UMAC_HANG_RECOVERY_MSG_SHMEM_POST_RESET_COMPLETE_DONE_M) >> \
     HTT_UMAC_HANG_RECOVERY_MSG_SHMEM_POST_RESET_COMPLETE_DONE_S)
#define HTT_UMAC_HANG_RECOVERY_MSG_SHMEM_POST_RESET_COMPLETE_DONE_SET(word2, _val) \
    do { \
        HTT_CHECK_SET_VAL(HTT_UMAC_HANG_RECOVERY_MSG_SHMEM_POST_RESET_COMPLETE_DONE, _val); \
        ((word2) |= ((_val) << HTT_UMAC_HANG_RECOVERY_MSG_SHMEM_POST_RESET_COMPLETE_DONE_S));\
    } while (0)
/**
 * @brief HTT_H2T_MSG_TYPE_UMAC_HANG_RECOVERY_PREREQUISITE_SETUP message
 *
 * @details
 *  The HTT_H2T_MSG_TYPE_UMAC_HANG_RECOVERY_PREREQUISITE_SETUP message is sent
 *  by the host to provide prerequisite info to target for the UMAC hang
 *  recovery feature.
 *  The info sent in this H2T message are T2H message method, H2T message
 *  method, T2H MSI interrupt number and physical start address, size of
 *  the shared memory (refers to the shared memory dedicated for messaging
 *  between host and target when the DUT is in UMAC hang recovery mode).
 *  This H2T message is expected to be only sent if the WMI service bit
 *  WMI_SERVICE_UMAC_HANG_RECOVERY_SUPPORT was firstly indicated by the target.
 *
 * |31                           16|15          12|11           8|7          0|
 * |-------------------------------+--------------+--------------+------------|
 * |            reserved           |h2t msg method|t2h msg method|  msg_type  |
 * |--------------------------------------------------------------------------|
 * |                           t2h msi interrupt number                       |
 * |--------------------------------------------------------------------------|
 * |                           shared memory area size                        |
 * |--------------------------------------------------------------------------|
 * |                     shared memory area physical address low              |
 * |--------------------------------------------------------------------------|
 * |                     shared memory area physical address high             |
 * |--------------------------------------------------------------------------|
 *
 * The message is interpreted as follows:
 * dword0 - b'0:7   - msg_type (= HTT_H2T_MSG_TYPE_UMAC_HANG_RECOVERY_SETUP)
 *          b'8:11  - t2h_msg_method: indicates method to be used for
 *                    T2H communication in UMAC hang recovery mode.
 *                    Value zero indicates MSI interrupt (default method).
 *                    Refer to htt_umac_hang_recovery_msg_method enum.
 *          b'12:15 - h2t_msg_method: indicates method to be used for
 *                    H2T communication in UMAC hang recovery mode.
 *                    Value zero indicates polling by target for this h2t msg
 *                    during UMAC hang recovery mode.
 *                    Refer to htt_umac_hang_recovery_msg_method enum.
 *          b'16:31 - reserved.
 * dword1 - b'0:31  - t2h_msi_data: MSI data to be used for
 *                    T2H communication in UMAC hang recovery mode.
 * dword2 - b'0:31  - size: size of shared memory dedicated for messaging
 *                    only when in UMAC hang recovery mode.
 *                    This refers to size in bytes.
 * dword3 - b'0:31  - physical_address_lo: lower 32 bit physical address
 *                    of the shared memory dedicated for messaging only when
 *                    in UMAC hang recovery mode.
 * dword4 - b'0:31  - physical_address_hi: higher 32 bit physical address
 *                    of the shared memory dedicated for messaging only when
 *                    in UMAC hang recovery mode.
 */
/* t2h_msg_method and h2t_msg_method */
enum htt_umac_hang_recovery_msg_method {
    htt_umac_hang_recovery_msg_t2h_msi_and_h2t_polling = 0,
};
PREPACK typedef struct {
    A_UINT32 msg_type       : 8,
             t2h_msg_method : 4,
             h2t_msg_method : 4,
             reserved       : 16;
    A_UINT32 t2h_msi_data;
    /* size bytes and physical address of shared memory. */
    struct htt_h2t_host_paddr_size_entry_t msg_shared_mem;
} POSTPACK htt_h2t_umac_hang_recovery_prerequisite_setup_t;
#define HTT_H2T_UMAC_HANG_RECOVERY_PREREQUISITE_SETUP_BYTES \
    (sizeof(htt_h2t_umac_hang_recovery_prerequisite_setup_t))
#define HTT_H2T_UMAC_HANG_RECOVERY_PREREQUISITE_SETUP_DWORDS \
    (HTT_H2T_UMAC_HANG_RECOVERY_PREREQUISITE_SETUP_BYTES >> 2)
#define HTT_H2T_UMAC_HANG_RECOVERY_PREREQUISITE_SETUP_T2H_MSG_METHOD_M 0x00000F00
#define HTT_H2T_UMAC_HANG_RECOVERY_PREREQUISITE_SETUP_T2H_MSG_METHOD_S 8
#define HTT_H2T_UMAC_HANG_RECOVERY_PREREQUISITE_SETUP_T2H_MSG_METHOD_GET(word0) \
    (((word0) & HTT_H2T_UMAC_HANG_RECOVERY_PREREQUISITE_SETUP_T2H_MSG_METHOD_M) >> \
     HTT_H2T_UMAC_HANG_RECOVERY_PREREQUISITE_SETUP_T2H_MSG_METHOD_S)
#define HTT_H2T_UMAC_HANG_RECOVERY_PREREQUISITE_SETUP_T2H_MSG_METHOD_SET(word0, _val) \
    do { \
        HTT_CHECK_SET_VAL(HTT_H2T_UMAC_HANG_RECOVERY_PREREQUISITE_SETUP_T2H_MSG_METHOD, _val); \
        ((word0) |= ((_val) << HTT_H2T_UMAC_HANG_RECOVERY_PREREQUISITE_SETUP_T2H_MSG_METHOD_S));\
    } while (0)
#define HTT_H2T_UMAC_HANG_RECOVERY_PREREQUISITE_SETUP_H2T_MSG_METHOD_M 0x0000F000
#define HTT_H2T_UMAC_HANG_RECOVERY_PREREQUISITE_SETUP_H2T_MSG_METHOD_S 12
#define HTT_H2T_UMAC_HANG_RECOVERY_PREREQUISITE_SETUP_H2T_MSG_METHOD_GET(word0) \
    (((word0) & HTT_H2T_UMAC_HANG_RECOVERY_PREREQUISITE_SETUP_H2T_MSG_METHOD_M) >> \
     HTT_H2T_UMAC_HANG_RECOVERY_PREREQUISITE_SETUP_H2T_MSG_METHOD_S)
#define HTT_H2T_UMAC_HANG_RECOVERY_PREREQUISITE_SETUP_H2T_MSG_METHOD_SET(word0, _val) \
    do { \
        HTT_CHECK_SET_VAL(HTT_H2T_UMAC_HANG_RECOVERY_PREREQUISITE_SETUP_H2T_MSG_METHOD, _val); \
        ((word0) |= ((_val) << HTT_H2T_UMAC_HANG_RECOVERY_PREREQUISITE_SETUP_H2T_MSG_METHOD_S));\
    } while (0)
/*=== target -> host messages ===============================================*/
/*=== target -> host messages ===============================================*/
@@ -9667,6 +9910,8 @@ enum htt_t2h_msg_type {
        HTT_T2H_SAWF_MSDUQ_INFO_IND                = 0x2e, /* alias */
        HTT_T2H_SAWF_MSDUQ_INFO_IND                = 0x2e, /* alias */
    HTT_T2H_MSG_TYPE_STREAMING_STATS_IND           = 0x2f,
    HTT_T2H_MSG_TYPE_STREAMING_STATS_IND           = 0x2f,
    HTT_T2H_PPDU_ID_FMT_IND                        = 0x30,
    HTT_T2H_PPDU_ID_FMT_IND                        = 0x30,
    HTT_T2H_MSG_TYPE_RX_ADDBA_EXTN                 = 0x31,
    HTT_T2H_MSG_TYPE_RX_DELBA_EXTN                 = 0x32,
    HTT_T2H_MSG_TYPE_TEST,
    HTT_T2H_MSG_TYPE_TEST,
@@ -13164,6 +13409,156 @@ typedef enum {
#define HTT_RX_DELBA_BYTES 4
#define HTT_RX_DELBA_BYTES 4
/**
 * @brief target -> host rx ADDBA / DELBA message definitions
 *
 * MSG_TYPE => HTT_T2H_MSG_TYPE_RX_ADDBA_EXTN
 *
 * @details
 * The following diagram shows the format of the rx ADDBA extn message sent
 * from the target to the host:
 *
 * |31                      20|19  16|15   13|12      8|7               0|
 * |---------------------------------------------------------------------|
 * |          peer ID         |  TID |     reserved    |     msg type    |
 * |---------------------------------------------------------------------|
 * |           reserved                      |      window size          |
 * |---------------------------------------------------------------------|
 *
 * MSG_TYPE => HTT_T2H_MSG_TYPE_RX_DELBA_EXTN
 *
 * The following diagram shows the format of the rx DELBA message sent
 * from the target to the host:
 *
 * |31                      20|19  16|15   13|12   10|9 8|7             0|
 * |---------------------------------------------------------------------|
 * |          peer ID         |  TID |   reserved    | IR|   msg type    |
 * |---------------------------------------------------------------------|
 * |                     reserved            |      window size          |
 * |---------------------------------------------------------------------|
 *
 * The following field definitions describe the format of the rx ADDBA
 * and DELBA messages sent from the target to the host.
 *   - MSG_TYPE
 *     Bits 7:0
 *     Purpose: identifies this as an rx ADDBA or DELBA message
 *     Value: ADDBA -> 0x31 (HTT_T2H_MSG_TYPE_RX_ADDBA_EXTN),
 *            DELBA -> 0x32 (HTT_T2H_MSG_TYPE_RX_DELBA_EXTN)
 *   - IR (initiator / recipient)
 *     Bits 9:8 (DELBA only)
 *     Purpose: specify whether the DELBA handshake was initiated by the
 *         local STA/AP, or by the peer STA/AP
 *     Value:
 *         0 - unspecified
 *         1 - initiator (a.k.a. originator)
 *         2 - recipient (a.k.a. responder)
 *         3 - unused / reserved
 *     Value:
 *         block ack window length specified by the received ADDBA/DELBA
 *         management message.
 *   - TID
 *     Bits 19:16
 *     Purpose: Specifies which traffic identifier the ADDBA / DELBA is for.
 *     Value:
 *         TID specified by the received ADDBA or DELBA management message.
 *   - PEER_ID
 *     Bits 31:20
 *     Purpose: Identifies which peer sent the ADDBA / DELBA.
 *     Value:
 *         ID (hash value) used by the host for fast, direct lookup of
 *         host SW peer info, including rx reorder states.
 *  == DWORD 1
 *   - WIN_SIZE
 *     Bits 12:0 for ADDBA, bits 12:0 for DELBA
 *     Purpose: Specifies the length of the block ack window (max = 8191).
 */
#define HTT_RX_ADDBA_EXTN_TID_M       0xf0000
#define HTT_RX_ADDBA_EXTN_TID_S       16
#define HTT_RX_ADDBA_EXTN_PEER_ID_M   0xfff00000
#define HTT_RX_ADDBA_EXTN_PEER_ID_S   20
/*--- Dword 0 ---*/
#define HTT_RX_ADDBA_EXTN_TID_SET(word, value)                     \
    do {                                                    \
        HTT_CHECK_SET_VAL(HTT_RX_ADDBA_EXTN_TID, value);    \
        (word) |= (value)  << HTT_RX_ADDBA_EXTN_TID_S;      \
    } while (0)
#define HTT_RX_ADDBA_EXTN_TID_GET(word)                             \
    (((word) & HTT_RX_ADDBA_EXTN_TID_M) >> HTT_RX_ADDBA_EXTN_TID_S)
#define HTT_RX_ADDBA_EXTN_PEER_ID_SET(word, value)                   \
    do {                                                     \
        HTT_CHECK_SET_VAL(HTT_RX_ADDBA_EXTN_PEER_ID, value); \
        (word) |= (value)  << HTT_RX_ADDBA_EXTN_PEER_ID_S;   \
    } while (0)
#define HTT_RX_ADDBA_EXTN_PEER_ID_GET(word) \
    (((word) & HTT_RX_ADDBA_EXTN_PEER_ID_M) >> HTT_RX_ADDBA_EXTN_PEER_ID_S)
/*--- Dword 1 ---*/
#define HTT_RX_ADDBA_EXTN_WIN_SIZE_M  0x1fff
#define HTT_RX_ADDBA_EXTN_WIN_SIZE_S  0
#define HTT_RX_ADDBA_EXTN_WIN_SIZE_SET(word, value)           \
    do {                                                      \
        HTT_CHECK_SET_VAL(HTT_RX_ADDBA_EXTN_WIN_SIZE, value); \
        (word) |= (value)  << HTT_RX_ADDBA_EXTN_WIN_SIZE_S;   \
    } while (0)
#define HTT_RX_ADDBA_EXTN_WIN_SIZE_GET(word) \
    (((word) & HTT_RX_ADDBA_WIN_SIZE_M) >> HTT_RX_ADDBA_WIN_SIZE_S)
#define HTT_RX_ADDBA_EXTN_BYTES 8
#define HTT_RX_DELBA_EXTN_INITIATOR_M   0x00000300
#define HTT_RX_DELBA_EXTN_INITIATOR_S   8
#define HTT_RX_DELBA_EXTN_TID_M         0xf0000
#define HTT_RX_DELBA_EXTN_TID_S         16
#define HTT_RX_DELBA_EXTN_PEER_ID_M     0xfff00000
#define HTT_RX_DELBA_EXTN_PEER_ID_S     20
/*--- Dword 0 ---*/
#define HTT_RX_DELBA_INITIATOR_SET(word, value)                    \
    do {                                                       \
        HTT_CHECK_SET_VAL(HTT_RX_DELBA_INITIATOR, value);      \
        (word) |= (value)  << HTT_RX_DELBA_INITIATOR_S;        \
    } while (0)
#define HTT_RX_DELBA_INITIATOR_GET(word) \
    (((word) & HTT_RX_DELBA_INITIATOR_M) >> HTT_RX_DELBA_INITIATOR_S)
#define HTT_RX_DELBA_EXTN_TID_SET(word, value)                       \
    do {                                                  \
        HTT_CHECK_SET_VAL(HTT_RX_DELBA_EXTN_TID, value);  \
        (word) |= (value)  << HTT_RX_DELBA_EXTN_TID_S;    \
    } while (0)
#define HTT_RX_DELBA_EXTN_TID_GET(word) \
    (((word) & HTT_RX_DELBA_EXTN_TID_M) >> HTT_RX_DELBA_EXTN_TID_S)
#define HTT_RX_DELBA_EXTN_PEER_ID_SET(word, value)                        \
    do {                                                      \
        HTT_CHECK_SET_VAL(HTT_RX_DELBA_EXTN_PEER_ID, value);  \
        (word) |= (value)  << HTT_RX_DELBA_EXTN_PEER_ID_S;    \
    } while (0)
#define HTT_RX_DELBA_EXTN_PEER_ID_GET(word) \
    (((word) & HTT_RX_DELBA_EXTN_PEER_ID_M) >> HTT_RX_DELBA_EXTN_PEER_ID_S)
/*--- Dword 1 ---*/
#define HTT_RX_DELBA_EXTN_WIN_SIZE_M    0x1fff
#define HTT_RX_DELBA_EXTN_WIN_SIZE_S    0
#define HTT_RX_DELBA_EXTN_WIN_SIZE_SET(word, value)                     \
    do {                                                            \
        HTT_CHECK_SET_VAL(HTT_RX_DELBA_EXTN_WIN_SIZE, value);       \
        (word) |= (value)  << HTT_RX_DELBA_EXTN_WIN_SIZE_S;         \
    } while (0)
#define HTT_RX_DELBA_EXTN_WIN_SIZE_GET(word) \
    (((word) & HTT_RX_DELBA_EXTN_WIN_SIZE_M) >> HTT_RX_DELBA_EXTN_WIN_SIZE_S)
#define HTT_RX_DELBA_EXTN_BYTES 8
/**
/**
 * @brief tx queue group information element definition
 * @brief tx queue group information element definition
 *
 *
+639 −0

File changed.

Preview size limit exceeded, changes collapsed.

+13 −0
Original line number Original line Diff line number Diff line
@@ -123,7 +123,20 @@ typedef enum {
  WLAN_MODULE_STA_MLO_PS,               /* 0x59 */ /* MLO PS manager */
  WLAN_MODULE_STA_MLO_PS,               /* 0x59 */ /* MLO PS manager */
  WLAN_MODULE_MLO_SYNC_SEQ_NUM,         /* 0x5a */ /* sync seq num after rm MPDU */
  WLAN_MODULE_MLO_SYNC_SEQ_NUM,         /* 0x5a */ /* sync seq num after rm MPDU */
  WLAN_MODULE_PLCMGR,                   /* 0x5b */ /* Policy Manager */
  WLAN_MODULE_PLCMGR,                   /* 0x5b */ /* Policy Manager */
  /* OEM module IDs:
   * Reserve a small series of module IDs for use in OEM WLAN FW that
   * interacts with WLAN FW SDK.
   */
  WLAN_MODULE_OEM0,                     /* 0x5c */
  WLAN_MODULE_OEM1,                     /* 0x5d */
  WLAN_MODULE_OEM2,                     /* 0x5e */
  WLAN_MODULE_OEM3,                     /* 0x5f */
  WLAN_MODULE_OEM4,                     /* 0x60 */
  WLAN_MODULE_OEM5,                     /* 0x61 */
  WLAN_MODULE_OEM6,                     /* 0x62 */
  WLAN_MODULE_OEM7,                     /* 0x63 */


  WLAN_MODULE_T2LM,                     /* 0x64 */


  WLAN_MODULE_ID_MAX,
  WLAN_MODULE_ID_MAX,
  WLAN_MODULE_ID_INVALID = WLAN_MODULE_ID_MAX,
  WLAN_MODULE_ID_INVALID = WLAN_MODULE_ID_MAX,
+5 −0
Original line number Original line Diff line number Diff line
@@ -588,6 +588,11 @@ typedef enum {
    WMI_SERVICE_MULTI_CLIENT_LL_SUPPORT = 335, /* FW supports set param cmd combined for multiple params */
    WMI_SERVICE_MULTI_CLIENT_LL_SUPPORT = 335, /* FW supports set param cmd combined for multiple params */
    WMI_SERVICE_AFC_PAYLOAD_CLEAR_SUPPORT = 336, /* FW supports clearing the AFC response payload in proxy mode */
    WMI_SERVICE_AFC_PAYLOAD_CLEAR_SUPPORT = 336, /* FW supports clearing the AFC response payload in proxy mode */
    WMI_SERVICE_FW_INI_PARSE_SUPPORT = 337, /* FW supports parsing ini configuration file */
    WMI_SERVICE_FW_INI_PARSE_SUPPORT = 337, /* FW supports parsing ini configuration file */
    WMI_SERVICE_TDLS_6GHZ_SUPPORT = 338, /* FW supports 6GHz TDLS both on base channel and offchannel */
    WMI_SERVICE_LINKSPEED_ROAM_TRIGGER_SUPPORT = 339, /* FW supports linkspeed trigger roam */
    WMI_SERVICE_UMAC_HANG_RECOVERY_SUPPORT = 340, /* FW supports recovering system from UMAC hang condition */
    WMI_SERVICE_COAP_OFFLOAD_SUPPORT = 341, /* FW supports CoAP (the Constrained Application Protocol) offload */
    WMI_SERVICE_TDLS_WIDEBAND_SUPPORT = 342, /* FW supports Wideband TDLS */


    WMI_MAX_EXT2_SERVICE
    WMI_MAX_EXT2_SERVICE


+84 −4

File changed.

Preview size limit exceeded, changes collapsed.

Loading