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

Commit 60bac849 authored by spuligil's avatar spuligil
Browse files

fw-api: CL 21666402 - update fw common interface files

Change-Id: Icd2761be49049bc438767522d7a13fd4743d5ff8
HTT: add T2H PRIMARY_PEER_MIGRATE_IND msg def
CRs-Fixed: 2262693
parent 1700bc6b
Loading
Loading
Loading
Loading
+235 −1
Original line number Diff line number Diff line
@@ -245,9 +245,10 @@
 * 3.117 Add HTT_T2H_CODEL_MSDUQ_LATENCIES_ARRAY_CFG_IND def.
 * 3.118 Add HTT_T2H_MSG_TYPE_RX_DATA_IND and _SOFT_UMAC_TX_COMPL_IND defs.
 * 3.119 Add RX_PEER_META_DATA V1A and V1B defs.
 * 3.120 Add HTT_H2T_MSG_TYPE_PRIMARY_LINK_PEER_MIGRATE_IND, _RESP defs.
 */
#define HTT_CURRENT_VERSION_MAJOR 3
#define HTT_CURRENT_VERSION_MINOR 119
#define HTT_CURRENT_VERSION_MINOR 120
#define HTT_NUM_TX_FRAG_DESC  1024
@@ -851,6 +852,7 @@ enum htt_h2t_msg_type {
    HTT_H2T_MSG_TYPE_UMAC_HANG_RECOVERY_PREREQUISITE_SETUP = 0x21,
    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,
    /* keep this last */
    HTT_H2T_NUM_MSGS
@@ -10493,6 +10495,139 @@ PREPACK struct htt_rx_cce_super_rule_setup_t {
        } while (0)
/**
 * htt_h2t_primary_link_peer_status_type -
 * Unique number for each status or reasons
 * The status reasons can go up to 255 max
 */
enum htt_h2t_primary_link_peer_status_type {
    /* Host Primary Link Peer migration Success */
    HTT_H2T_PRIMARY_LINK_PEER_MIGRATION_OK         = 0,
    /* keep this last */
    /* Host Primary Link Peer migration Fail */
    HTT_H2T_PRIMARY_LINK_PEER_MIGRATION_FAIL       = 254,
    HTT_H2T_PRIMARY_LINK_PEER_MIGRATION_NUM_STATUS = 255
};
/**
 * @brief host -> Primary peer migration completion message from host
 *
 * MSG_TYPE => HTT_H2T_MSG_TYPE_PRIMARY_LINK_PEER_MIGRATE_RESP
 *
 * @details
 *    HTT_H2T_MSG_TYPE_PRIMARY_PEER_MIGRATE_RESP message is sent by host to
 *    target Confirming that primary link peer migration has completed,
 *    in response to a HTT_T2H_MSG_TYPE_PRIMARY_LINK_PEER_MIGRATE_IND
 *    message from the target.
 *
 *    The message would appear as follows:
 *
 *    |31                        16|15      12|11      8|7            0|
 *    |----------------------------+----------+---------+--------------|
 *    |            vdev ID         | pdev ID  | chip ID |   msg type   |
 *    |----------------------------+----------+---------+--------------|
 *    |            ML peer ID      |               SW peer ID          |
 *    |----------------------------+--------------------+--------------|
 *    |                   reserved                      |    status    |
 *    |-------------------------------------------------+--------------|
 *
 * The message is interpreted as follows:
 * dword0 - b'0:7   - msg_type: This will be set to 0x24
 *                    (HTT_H2T_MSG_TYPE_PRIMARY_LINK_PEER_MIGRATE_RESP)
 *          b'8:11  - chip_id: Indicate which chip has been chosen as primary
 *          b'12:15 - pdev_id: Indicate which pdev in the chip is chosen
 *                    as primary
 *          b'16:31 - vdev_id: Indicate which vdev in the pdev is chosen
 *                    as primary
 *
 * dword1 - b'0:15  - sw_link_peer_id: Indicate the sw_peer_id of the peer
 *                    chosen as primary
 *          b'16:31 - ml_peer_id: Indicate the ml_peer_id to which the
 *                    primary peer belongs.
 */
typedef struct {
    A_UINT32 msg_type:            8, /* bits 7:0   */
             chip_id:             4, /* bits 11:8  */
             pdev_id:             4, /* bits 15:12 */
             vdev_id:            16; /* bits 31:16 */
    A_UINT32 sw_link_peer_id:    16, /* bits 15:0  */
             ml_peer_id:         16; /* bits 31:16 */
    A_UINT32 status:             8,  /* bits 7:0   */
             reserved:           24; /* bits 31:8  */
} htt_h2t_primary_link_peer_migrate_resp_t;
#define HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_CHIP_ID_M 0x00000F00
#define HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_CHIP_ID_S 8
#define HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_CHIP_ID_GET(_var) \
        (((_var) & HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_CHIP_ID_M) >> \
        HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_CHIP_ID_S)
#define HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_CHIP_ID_SET(_var, _val) \
        do { \
            HTT_CHECK_SET_VAL(HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_CHIP_ID, _val); \
            ((_var) |= ((_val) << HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_CHIP_ID_S));\
        } while (0)
#define HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_PDEV_ID_M 0x0000F000
#define HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_PDEV_ID_S 12
#define HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_PDEV_ID_GET(_var) \
        (((_var) & HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_PDEV_ID_M) >> \
        HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_PDEV_ID_S)
#define HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_PDEV_ID_SET(_var, _val) \
        do { \
            HTT_CHECK_SET_VAL(HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_PDEV_ID, _val); \
            ((_var) |= ((_val) << HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_PDEV_ID_S));\
        } while (0)
#define HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_VDEV_ID_M 0xFFFF0000
#define HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_VDEV_ID_S 16
#define HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_VDEV_ID_GET(_var) \
        (((_var) & HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_VDEV_ID_M) >> \
        HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_VDEV_ID_S)
#define HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_VDEV_ID_SET(_var, _val) \
        do { \
            HTT_CHECK_SET_VAL(HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_VDEV_ID, _val); \
            ((_var) |= ((_val) << HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_VDEV_ID_S));\
        } while (0)
#define HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_SW_LINK_PEER_ID_M 0x0000FFFF
#define HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_SW_LINK_PEER_ID_S 0
#define HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_SW_LINK_PEER_ID_GET(_var) \
        (((_var) & HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_SW_LINK_PEER_ID_M) >> \
        HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_SW_LINK_PEER_ID_S)
#define HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_SW_LINK_PEER_ID_SET(_var, _val) \
        do { \
            HTT_CHECK_SET_VAL(HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_SW_LINK_PEER_ID, _val); \
            ((_var) |= ((_val) << HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_SW_LINK_PEER_ID_S));\
        } while (0)
#define HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_ML_PEER_ID_M 0xFFFF0000
#define HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_ML_PEER_ID_S 16
#define HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_ML_PEER_ID_GET(_var) \
        (((_var) & HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_ML_PEER_ID_M) >> \
        HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_ML_PEER_ID_S)
#define HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_ML_PEER_ID_SET(_var, _val) \
        do { \
            HTT_CHECK_SET_VAL(HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_ML_PEER_ID, _val); \
            ((_var) |= ((_val) << HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_ML_PEER_ID_S));\
        } while (0)
#define HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_STATUS_M 0x000000FF
#define HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_STATUS_S 0
#define HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_STATUS_GET(_var) \
        (((_var) & HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_STATUS_M) >> \
        HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_STATUS_S)
#define HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_STATUS_SET(_var, _val) \
        do { \
            HTT_CHECK_SET_VAL(HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_STATUS, _val); \
            ((_var) |= ((_val) << HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_STATUS_S));\
        } while (0)
/*=== target -> host messages ===============================================*/
@@ -10559,6 +10694,7 @@ enum htt_t2h_msg_type {
    HTT_T2H_CODEL_MSDUQ_LATENCIES_ARRAY_CFG_IND    = 0x34,
    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_TEST,
@@ -21323,4 +21459,102 @@ struct htt_t2h_rx_data_msdu_info
    (((word) & HTT_RX_DATA_MSDU_INFO_ERROR_INFO_M) >> HTT_RX_DATA_MSDU_INFO_ERROR_INFO_S)
/**
 * @brief target -> Primary peer migration message to host
 *
 * MSG_TYPE => HTT_T2H_MSG_TYPE_PRIMARY_LINK_PEER_MIGRATE_IND
 *
 * @details
 *    HTT_T2H_MSG_TYPE_PRIMARY_LINK_PEER_MIGRATE_IND message is sent by target
 *    to host to flush & set-up the RX rings to new primary peer
 *
 *    The message would appear as follows:
 *
 *    |31                           16|15     12|11      8|7            0|
 *    |-------------------------------+---------+---------+--------------|
 *    |            vdev ID            | pdev ID | chip ID |   msg type   |
 *    |-------------------------------+---------+---------+--------------|
 *    |            ML peer ID         |               SW peer ID         |
 *    |-------------------------------+----------------------------------|
 *
 * The message is interpreted as follows:
 * dword0 - b'0:7   - msg_type: This will be set to 0x37
 *                    (HTT_T2H_MSG_TYPE_PRIMARY_LINK_PEER_MIGRATE_IND)
 *          b'8:11  - chip_id: Indicate which chip has been chosen as primary
 *          b'12:15 - pdev_id: Indicate which pdev in the chip is chosen
 *                    as primary
 *          b'16:31 - vdev_id: Indicate which vdev in the pdev is chosen
 *                    as primary
 *
 * dword1 - b'0:15  - sw_link_peer_id: Indicate the sw_peer_id of the peer
 *                    chosen as primary
 *          b'16:31 - ml_peer_id: Indicate the ml_peer_id to which the
 *                    primary peer belongs.
 */
typedef struct {
    A_UINT32 msg_type:            8, /* bits 7:0   */
             chip_id:             4, /* bits 11:8  */
             pdev_id:             4, /* bits 15:12 */
             vdev_id:            16; /* bits 31:16 */
    A_UINT32 sw_link_peer_id:    16, /* bits 15:0  */
             ml_peer_id:         16; /* bits 31:16 */
} htt_t2h_primary_link_peer_migrate_ind_t;
#define HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_CHIP_ID_M 0x00000F00
#define HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_CHIP_ID_S 8
#define HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_CHIP_ID_GET(_var) \
        (((_var) & HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_CHIP_ID_M) >> \
        HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_CHIP_ID_S)
#define HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_CHIP_ID_SET(_var, _val) \
        do { \
            HTT_CHECK_SET_VAL(HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_CHIP_ID, _val); \
            ((_var) |= ((_val) << HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_CHIP_ID_S));\
        } while (0)
#define HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_PDEV_ID_M 0x0000F000
#define HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_PDEV_ID_S 12
#define HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_PDEV_ID_GET(_var) \
        (((_var) & HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_PDEV_ID_M) >> \
        HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_PDEV_ID_S)
#define HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_PDEV_ID_SET(_var, _val) \
        do { \
            HTT_CHECK_SET_VAL(HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_PDEV_ID, _val); \
            ((_var) |= ((_val) << HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_PDEV_ID_S));\
        } while (0)
#define HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_VDEV_ID_M 0xFFFF0000
#define HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_VDEV_ID_S 16
#define HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_VDEV_ID_GET(_var) \
        (((_var) & HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_VDEV_ID_M) >> \
        HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_VDEV_ID_S)
#define HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_VDEV_ID_SET(_var, _val) \
        do { \
            HTT_CHECK_SET_VAL(HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_VDEV_ID, _val); \
            ((_var) |= ((_val) << HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_VDEV_ID_S));\
        } while (0)
#define HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_SW_LINK_PEER_ID_M 0x0000FFFF
#define HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_SW_LINK_PEER_ID_S 0
#define HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_SW_LINK_PEER_ID_GET(_var) \
        (((_var) & HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_SW_LINK_PEER_ID_M) >> \
        HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_SW_LINK_PEER_ID_S)
#define HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_SW_LINK_PEER_ID_SET(_var, _val) \
        do { \
            HTT_CHECK_SET_VAL(HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_SW_LINK_PEER_ID, _val); \
            ((_var) |= ((_val) << HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_SW_LINK_PEER_ID_S));\
        } while (0)
#define HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_ML_PEER_ID_M 0xFFFF0000
#define HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_ML_PEER_ID_S 16
#define HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_ML_PEER_ID_GET(_var) \
        (((_var) & HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_ML_PEER_ID_M) >> \
        HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_ML_PEER_ID_S)
#define HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_ML_PEER_ID_SET(_var, _val) \
        do { \
            HTT_CHECK_SET_VAL(HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_ML_PEER_ID, _val); \
            ((_var) |= ((_val) << HTT_H2T_PRIMARY_LINK_PEER_MIGRATE_ML_PEER_ID_S));\
        } while (0)
#endif