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

Commit 3b5a50ec authored by spuligil's avatar spuligil Committed by Ravindra Konda
Browse files

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

Change-Id: I97a9a45c188b5c23d158c990a539c05aba30c191
CRs-Fixed: 2262693
parent 5d1ef3ec
Loading
Loading
Loading
Loading
+187 −147
Original line number Diff line number Diff line
@@ -899,7 +899,7 @@ enum htt_h2t_msg_type {
    HTT_H2T_MSG_TYPE_PRIMARY_LINK_PEER_MIGRATE_RESP = 0x24,
    HTT_H2T_MSG_TYPE_TX_LATENCY_STATS_CFG  = 0x25,
    HTT_H2T_MSG_TYPE_TX_LCE_SUPER_RULE_SETUP = 0x26,
    HTT_H2T_MSG_TYPE_MSDUQ_RECFG_REQ       = 0x27,
    HTT_H2T_MSG_TYPE_SDWF_MSDUQ_RECFG_REQ  = 0x27,
    /* keep this last */
    HTT_H2T_NUM_MSGS
@@ -11222,13 +11222,13 @@ PREPACK struct htt_h2t_tx_latency_stats_cfg {
/**
 * @brief host -> tgt msg to reconfigure params for a MSDU queue
 *
 * MSG_TYPE => HTT_H2T_MSG_TYPE_MSDUQ_RECFG_REQ
 * MSG_TYPE => HTT_H2T_MSG_TYPE_SDWF_MSDUQ_RECFG_REQ
 *
 * @details
 *    HTT_H2T_MSG_TYPE_MSDUQ_RECFG_REQ message is sent by the host to
 *    HTT_H2T_MSG_TYPE_SDWF_MSDUQ_RECFG_REQ message is sent by the host to
 *    update the configuration of the identified MSDU.
 *    This message supports the following MSDU queue reconfigurations:
 *    1.  Pausing or resuming the MSDU queue.
 *    1.  Deactivating or reactivating the MSDU queue.
 *    2.  Moving the MSDU queue from its current service class to a
 *        different service class.
 *        The new service class needs to be within the same TID as the
@@ -11240,73 +11240,96 @@ PREPACK struct htt_h2t_tx_latency_stats_cfg {
 *    Also, the concurrent combination of reconfigurations 1+2 is supported.
 *
 * The message format is as follows:
 *     |31                                         8|7               0|
 *     |31                 24|23                 9|8|7               0|
 *     |--------------------------------------------------------------|
 *     |              tgt_opaque_msduq_id           |     msg type    |
 *     |--------------------------------------------------------------|
 *     |                   reserved               |P|  svc_class_id   |
 *     |    request_cookie   |      reserved      |D|  svc_class_id   |
 *     |--------------------------------------------------------------|
 * Where: P = pause_type
 * Where: D = deactivate flag
 *
 * The message is interpreted as follows:
 * dword0 - b'0:7   - msg_type: This will be set to 0x27
 *                    (HTT_H2T_MSG_TYPE_MSDUQ_RECFG_REQ)
 *                    (HTT_H2T_MSG_TYPE_SDWF_MSDUQ_RECFG_REQ)
 *          b'8:31  - tgt_opaque_msduq_id: tx flow number that uniquely
 *                    identifies the MSDU queue
 * dword1 - b'0:7   - svc_class_id:  ID of the SAWF service class to which
 *                    the MSDU queue should be associated.
 *                    On un-pause requests, svc_class_id may be set to the
 *                    same service class ID as before the pause or it may
 *                    On reactivate requests, svc_class_id may be set to the
 *                    same service class ID as before the deactivate or it may
 *                    be set to a different service class ID.
 *          b'8:8   - pause: Whether the MSDU queue should be paused or unpaused
 *          b'9:31  - reserved
 */
/* HTT_H2T_MSG_TYPE_MSDUQ_RECFG_REQ */
 *          b'8:8   - deactivate: Whether the MSDU queue should be deactivated
 *                    or reactivated (refer to HTT_MSDUQ_DEACTIVATE_E)
 *          b'9:23  - reserved
 *          b'31:24 - request_cookie: Identifier for FW to use in the
 *                    completion indication (T2H SDWF_MSDU_CFG_IND) to call
 *                    out this specific request.  The host shall avoid using
 *                    a value of 0xFF (COOKIE_INVALID) here, so that a
 *                    0xFF / COOKIE_INVALID value can be used in any T2H
 *                    SDWF_MSDUQ_CFG_IND messages that the target sends
 *                    autonomously rather than in response to a H2T
 *                    SDWF_MSDUQ_RECFG_REQ.
 */
/* HTT_H2T_MSG_TYPE_SDWF_MSDUQ_RECFG_REQ */
typedef enum {
    HTT_MSDUQ_UNPAUSE = 0,
    HTT_MSDUQ_PAUSE   = 1,
} HTT_MSDUQ_PAUSE_E;
    HTT_MSDUQ_REACTIVATE = 0,
    HTT_MSDUQ_DEACTIVATE = 1,
} HTT_MSDUQ_DEACTIVATE_E;
PREPACK struct htt_h2t_msduq_acm_req {
PREPACK struct htt_h2t_sdwf_msduq_recfg_req {
    A_UINT32 msg_type            :8,  /* bits  7:0  */
             tgt_opaque_msduq_id :24; /* bits 31:8  */
    A_UINT32 svc_class_id        :8,  /* bits  7:0  */
             pause               :1,  /* bits  8:8  */
             reserved            :23; /* bits 31:9  */
             deactivate          :1,  /* bits  8:8  */
             reserved            :15, /* bits 23:9  */
             request_cookie      :8;  /* bits 31:24 */
} POSTPACK;
#define HTT_H2T_MSDUQ_RECFG_REQ_TGT_OPAQUE_MSDUQ_ID_M  0xFFFFFF00
#define HTT_H2T_MSDUQ_RECFG_REQ_TGT_OPAQUE_MSDUQ_ID_S  8
#define HTT_H2T_MSDUQ_RECFG_REQ_TGT_OPAQUE_MSDUQ_ID_GET(_var) \
        (((_var) & HTT_H2T_MSDUQ_RECFG_REQ_TGT_OPAQUE_MSDUQ_ID_M) >> \
                HTT_H2T_MSDUQ_RECFG_REQ_TGT_OPAQUE_MSDUQ_ID_S)
#define HTT_H2T_MSDUQ_RECFG_REQ_TGT_OPAQUE_MSDUQ_ID_SET(_var, _val) \
#define HTT_MSDUQ_CFG_REG_COOKIE_INVALID 0xFF
#define HTT_H2T_SDWF_MSDUQ_RECFG_REQ_TGT_OPAQUE_MSDUQ_ID_M  0xFFFFFF00
#define HTT_H2T_SDWF_MSDUQ_RECFG_REQ_TGT_OPAQUE_MSDUQ_ID_S  8
#define HTT_H2T_SDWF_MSDUQ_RECFG_REQ_TGT_OPAQUE_MSDUQ_ID_GET(_var) \
        (((_var) & HTT_H2T_SDWF_MSDUQ_RECFG_REQ_TGT_OPAQUE_MSDUQ_ID_M) >> \
                HTT_H2T_SDWF_MSDUQ_RECFG_REQ_TGT_OPAQUE_MSDUQ_ID_S)
#define HTT_H2T_SDWF_MSDUQ_RECFG_REQ_TGT_OPAQUE_MSDUQ_ID_SET(_var, _val) \
    do {                                                     \
        HTT_CHECK_SET_VAL(HTT_H2T_MSDUQ_RECFG_REQ_TGT_OPAQUE_MSDUQ_ID, _val);  \
        ((_var) |= ((_val) << HTT_H2T_MSDUQ_RECFG_REQ_TGT_OPAQUE_MSDUQ_ID_S)); \
        HTT_CHECK_SET_VAL(HTT_H2T_SDWF_MSDUQ_RECFG_REQ_TGT_OPAQUE_MSDUQ_ID, _val);  \
        ((_var) |= ((_val) << HTT_H2T_SDWF_MSDUQ_RECFG_REQ_TGT_OPAQUE_MSDUQ_ID_S)); \
    } while (0)
#define HTT_H2T_MSDUQ_RECFG_REQ_SVC_CLASS_ID_M  0x000000FF
#define HTT_H2T_MSDUQ_RECFG_REQ_SVC_CLASS_ID_S  0
#define HTT_H2T_MSDUQ_RECFG_REQ_SVC_CLASS_ID_GET(_var) \
        (((_var) & HTT_H2T_MSDUQ_RECFG_REQ_SVC_CLASS_ID_M) >> \
                HTT_H2T_MSDUQ_RECFG_REQ_SVC_CLASS_ID_S)
#define HTT_H2T_MSDUQ_RECFG_REQ_SVC_CLASS_ID_SET(_var, _val) \
#define HTT_H2T_SDWF_MSDUQ_RECFG_REQ_SVC_CLASS_ID_M  0x000000FF
#define HTT_H2T_SDWF_MSDUQ_RECFG_REQ_SVC_CLASS_ID_S  0
#define HTT_H2T_SDWF_MSDUQ_RECFG_REQ_SVC_CLASS_ID_GET(_var) \
        (((_var) & HTT_H2T_SDWF_MSDUQ_RECFG_REQ_SVC_CLASS_ID_M) >> \
                HTT_H2T_SDWF_MSDUQ_RECFG_REQ_SVC_CLASS_ID_S)
#define HTT_H2T_SDWF_MSDUQ_RECFG_REQ_SVC_CLASS_ID_SET(_var, _val) \
    do {                                                     \
        HTT_CHECK_SET_VAL(HTT_H2T_MSDUQ_RECFG_REQ_SVC_CLASS_ID, _val);  \
        ((_var) |= ((_val) << HTT_H2T_MSDUQ_RECFG_REQ_SVC_CLASS_ID_S)); \
        HTT_CHECK_SET_VAL(HTT_H2T_SDWF_MSDUQ_RECFG_REQ_SVC_CLASS_ID, _val);  \
        ((_var) |= ((_val) << HTT_H2T_SDWF_MSDUQ_RECFG_REQ_SVC_CLASS_ID_S)); \
    } while (0)
#define HTT_H2T_MSDUQ_RECFG_REQ_PAUSE_M  0x00000100
#define HTT_H2T_MSDUQ_RECFG_REQ_PAUSE_S  8
#define HTT_H2T_MSDUQ_RECFG_REQ_PAUSE_GET(_var) \
        (((_var) & HTT_H2T_MSDUQ_RECFG_REQ_PAUSE_M) >> \
                HTT_H2T_MSDUQ_RECFG_REQ_PAUSE_S)
#define HTT_H2T_MSDUQ_RECFG_REQ_PAUSE_SET(_var, _val) \
#define HTT_H2T_SDWF_MSDUQ_RECFG_REQ_DEACTIVATE_M  0x00000100
#define HTT_H2T_SDWF_MSDUQ_RECFG_REQ_DEACTIVATE_S  8
#define HTT_H2T_SDWF_MSDUQ_RECFG_REQ_DEACTIVATE_GET(_var) \
        (((_var) & HTT_H2T_SDWF_MSDUQ_RECFG_REQ_DEACTIVATE_M) >> \
                HTT_H2T_SDWF_MSDUQ_RECFG_REQ_DEACTIVATE_S)
#define HTT_H2T_SDWF_MSDUQ_RECFG_REQ_DEACTIVATE_SET(_var, _val) \
    do {                                                     \
        HTT_CHECK_SET_VAL(HTT_H2T_MSDUQ_RECFG_REQ_PAUSE, _val);  \
        ((_var) |= ((_val) << HTT_H2T_MSDUQ_RECFG_REQ_PAUSE_S)); \
        HTT_CHECK_SET_VAL(HTT_H2T_SDWF_MSDUQ_RECFG_REQ_DEACTIVATE, _val);  \
        ((_var) |= ((_val) << HTT_H2T_SDWF_MSDUQ_RECFG_REQ_DEACTIVATE_S)); \
    } while (0)
#define HTT_H2T_SDWF_MSDUQ_RECFG_REQUEST_COOKIE_M  0xFF000000
#define HTT_H2T_SDWF_MSDUQ_RECFG_REQUEST_COOKIE_S  24
#define HTT_H2T_SDWF_MSDUQ_RECFG_REQUEST_COOKIE_GET(_var) \
        (((_var) & HTT_H2T_SDWF_MSDUQ_RECFG_REQUEST_COOKIE_M) >> \
                HTT_H2T_SDWF_MSDUQ_RECFG_REQUEST_COOKIE_S)
#define HTT_H2T_SDWF_MSDUQ_RECFG_REQUEST_COOKIE_SET(_var, _val) \
    do {                                                     \
        HTT_CHECK_SET_VAL(HTT_H2T_SDWF_MSDUQ_RECFG_REQUEST_COOKIE, _val);  \
        ((_var) |= ((_val) << HTT_H2T_SDWF_MSDUQ_RECFG_REQUEST_COOKIE_S)); \
    } while (0)
@@ -11382,7 +11405,7 @@ enum htt_t2h_msg_type {
    HTT_T2H_MSG_TYPE_PEER_EXTENDED_EVENT           = 0x39,
    HTT_T2H_MSG_TYPE_TX_LATENCY_STATS_PERIODIC_IND = 0x3a,
    HTT_T2H_MSG_TYPE_TX_LCE_SUPER_RULE_SETUP_DONE  = 0x3b,
    HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND                 = 0x3c,
    HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND            = 0x3c,
    HTT_T2H_MSG_TYPE_TEST,
@@ -22831,7 +22854,7 @@ typedef struct _htt_tx_latency_stats {
/**
 * @brief target -> host report showing MSDU queue configuration
 *
 * MSG_TYPE => HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND
 * MSG_TYPE => HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND
 *
 * @details
 *
@@ -22841,7 +22864,7 @@ typedef struct _htt_tx_latency_stats {
 * |----------------+----------------+--+-----+--+---+----------+-----------|
 * |    error_code  |  svc_class_id  | R| AST | F|WHO| hlos_tid | remap_tid |
 * |----------------+----------------+--+-----+--+---+----------+-----------|
 * |    reserved    |                 tgt_opaque_msduq_id                   |
 * | request_cookie |                 tgt_opaque_msduq_id                   |
 * |------------------------------------------------------------------------|
 * Where WHO = who_classify_info_sel
 *       F   = flow_override
@@ -22849,11 +22872,12 @@ typedef struct _htt_tx_latency_stats {
 *       R   = reserved
 *
 * @details
 * htt_t2h_msg_type_msduq_acm_ind_t:
 * htt_t2h_msg_type_sdwf_msduq_cfg_ind_t:
 *
 * The message is interpreted as follows:
 * dword0 - b'7:0   - msg_type: Identifies this as a MSDU queue cfg indication
 *                    This will be set to 0x3c (HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND)
 *                    This will be set to 0x3c
 *                    (HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND)
 *          b'15:8  - HTT qtype (refer to HTT_MSDU_QTYPE)
 *          b'31:16 - peer ID
 *
@@ -22883,7 +22907,12 @@ typedef struct _htt_tx_latency_stats {
 *
 * dword2 - b'23:0  - tgt_opaque_msduq_id: tx flow number that uniquely
 *                    identifies the MSDU queue
 *          b'24:31 - reserved1
 *          b'24:31 - request_cookie: Identifies which H2T SDWF_MSDUQ_RECFG_REQ
 *                    request triggered this indication.
 *                    This will be set to HTT_MSDUQ_CFG_REG_COOKIE_INVALID
 *                    (0xFF) in any cases when the FW generates this
 *                    indication autonomously rather than in response to
 *                    a SDWF_MSDUQ_RECFG_REQ message from the host.
 *
 * The behavior of this indication is as follows:
 *   - svc_class_id is set to the service class that the specified MSDUQ is
@@ -22892,15 +22921,15 @@ typedef struct _htt_tx_latency_stats {
 *     Otherwise a value of 0x00 (ERROR_NONE) indicates success.
 */
/* HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND */
/* HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND */
typedef enum {
    HTT_MSDUQ_CFG_IND_ERROR_NONE = 0x00,
    HTT_MSDUQ_CFG_IND_ERROR_PEER_DELETE_IN_PROG = 0x01,
    HTT_MSDUQ_CFG_IND_ERROR_SW_MSDUQ_NULL = 0x02,
    HTT_MSDUQ_CFG_IND_ERROR_MSDUQ_LOCATE_ERROR = 0x03,
} HTT_MSDUQ_CFG_IND_ERROR_CODE_E;
    HTT_SDWF_MSDUQ_CFG_IND_ERROR_NONE = 0x00,
    HTT_SDWF_MSDUQ_CFG_IND_ERROR_PEER_DELETE_IN_PROG = 0x01,
    HTT_SDWF_MSDUQ_CFG_IND_ERROR_SW_MSDUQ_NULL = 0x02,
    HTT_SDWF_MSDUQ_CFG_IND_ERROR_MSDUQ_LOCATE_ERROR = 0x03,
} HTT_SDWF_MSDUQ_CFG_IND_ERROR_CODE_E;
PREPACK struct htt_t2h_sawf_msduq_pause_event {
PREPACK struct htt_t2h_sdwf_msduq_cfg_ind {
    A_UINT32 msg_type:               8,  /* bits 7:0   */
             htt_qtype:              8,  /* bits 15:8  */
             peer_id:                16; /* bits 31:16 */
@@ -22913,117 +22942,128 @@ PREPACK struct htt_t2h_sawf_msduq_pause_event {
             svc_class_id:           8,  /* bits 23:16 */
             error_code:             8;  /* bits 31:24 */
    A_UINT32 tgt_opaque_msduq_id:    24, /* bits 23:0  */
             reserved1:              8;  /* bits 31:24 */
             request_cookie:         8;  /* bits 31:24 */
} POSTPACK;
#define HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_HTT_QTYPE_M  0x0000FF00
#define HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_HTT_QTYPE_S  8
#define HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_HTT_QTYPE_GET(_var) \
        (((_var) & HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_HTT_QTYPE_M) >> \
                HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_HTT_QTYPE_S)
#define HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_HTT_QTYPE_SET(_var, _val) \
#define HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_HTT_QTYPE_M  0x0000FF00
#define HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_HTT_QTYPE_S  8
#define HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_HTT_QTYPE_GET(_var) \
        (((_var) & HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_HTT_QTYPE_M) >> \
                HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_HTT_QTYPE_S)
#define HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_HTT_QTYPE_SET(_var, _val) \
    do { \
        HTT_CHECK_SET_VAL(HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_HTT_QTYPE, _val);  \
        ((_var) |= ((_val) << HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_HTT_QTYPE_S)); \
        HTT_CHECK_SET_VAL(HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_HTT_QTYPE, _val); \
        ((_var) |= ((_val) << HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_HTT_QTYPE_S)); \
    } while (0)
#define HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_PEER_ID_M  0xFFFF0000
#define HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_PEER_ID_S  16
#define HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_PEER_ID_GET(_var) \
        (((_var) & HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_PEER_ID_M) >> \
                HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_PEER_ID_S)
#define HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_PEER_ID_SET(_var, _val) \
#define HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_PEER_ID_M  0xFFFF0000
#define HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_PEER_ID_S  16
#define HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_PEER_ID_GET(_var) \
        (((_var) & HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_PEER_ID_M) >> \
                HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_PEER_ID_S)
#define HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_PEER_ID_SET(_var, _val) \
    do { \
        HTT_CHECK_SET_VAL(HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_PEER_ID, _val);  \
        ((_var) |= ((_val) << HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_PEER_ID_S)); \
        HTT_CHECK_SET_VAL(HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_PEER_ID, _val); \
        ((_var) |= ((_val) << HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_PEER_ID_S)); \
    } while (0)
#define HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_REMAP_TID_M  0x0000000F
#define HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_REMAP_TID_S  0
#define HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_REMAP_TID_GET(_var) \
        (((_var) & HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_REMAP_TID_M) >> \
                HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_REMAP_TID_S)
#define HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_REMAP_TID_SET(_var, _val) \
#define HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_REMAP_TID_M  0x0000000F
#define HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_REMAP_TID_S  0
#define HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_REMAP_TID_GET(_var) \
        (((_var) & HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_REMAP_TID_M) >> \
                HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_REMAP_TID_S)
#define HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_REMAP_TID_SET(_var, _val) \
    do { \
        HTT_CHECK_SET_VAL(HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_REMAP_TID, _val);  \
        ((_var) |= ((_val) << HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_REMAP_TID_S)); \
        HTT_CHECK_SET_VAL(HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_REMAP_TID, _val); \
        ((_var) |= ((_val) << HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_REMAP_TID_S)); \
    } while (0)
#define HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_HLOS_TID_M  0x000000F0
#define HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_HLOS_TID_S  4
#define HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_HLOS_TID_GET(_var) \
        (((_var) & HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_HLOS_TID_M) >> \
                HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_HLOS_TID_S)
#define HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_HLOS_TID_M  0x000000F0
#define HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_HLOS_TID_S  4
#define HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_HLOS_TID_GET(_var) \
        (((_var) & HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_HLOS_TID_M) >> \
                HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_HLOS_TID_S)
#define HTT_T2H_MSG_TYPE_MSDUQ_CFG_IN_DHLOS_TID_SET(_var, _val) \
    do { \
        HTT_CHECK_SET_VAL(HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_HLOS_TID, _val);  \
        ((_var) |= ((_val) << HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_HLOS_TID_S)); \
        HTT_CHECK_SET_VAL(HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_HLOS_TID, _val); \
        ((_var) |= ((_val) << HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_HLOS_TID_S)); \
    } while (0)
#define HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_WHO_CLASSIFY_INFO_M  0x00000300
#define HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_WHO_CLASSIFY_INFO_S  8
#define HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_WHO_CLASSIFY_INFO_GET(_var) \
        (((_var) & HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_WHO_CLASSIFY_INFO_M) >> \
                HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_WHO_CLASSIFY_INFO_S)
#define HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_WHO_CLASSIFY_INFO_SET(_var, _val) \
    do { \
        HTT_CHECK_SET_VAL(HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_WHO_CLASSIFY_INFO, _val); \
        ((_var) |= ((_val) << HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_WHO_CLASSIFY_INFO_S)); \
    } while (0)
#define HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_WHO_CLASSIFY_INFO_M  0x00000300
#define HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_WHO_CLASSIFY_INFO_S  8
#define HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_WHO_CLASSIFY_INFO_GET(_var) \
        (((_var) & HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_WHO_CLASSIFY_INFO_M) >> \
                HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_WHO_CLASSIFY_INFO_S)
#define HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_WHO_CLASSIFY_INFO_SET(_var, _val) \
#define HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_FLOW_OVERRIDE_M  0x00000400
#define HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_FLOW_OVERRIDE_S  10
#define HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_FLOW_OVERRIDE_GET(_var) \
        (((_var) & HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_FLOW_OVERRIDE_M) >> \
                HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_FLOW_OVERRIDE_S)
#define HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_FLOW_OVERRIDE_SET(_var, _val) \
    do { \
        HTT_CHECK_SET_VAL(HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_WHO_CLASSIFY_INFO, _val);  \
        ((_var) |= ((_val) << HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_WHO_CLASSIFY_INFO_S)); \
        HTT_CHECK_SET_VAL(HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_FLOW_OVERRIDE, _val); \
        ((_var) |= ((_val) << HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_FLOW_OVERRIDE_S)); \
    } while (0)
#define HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_FLOW_OVERRIDE_M  0x00000400
#define HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_FLOW_OVERRIDE_S  10
#define HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_FLOW_OVERRIDE_GET(_var) \
        (((_var) & HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_FLOW_OVERRIDE_M) >> \
                HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_FLOW_OVERRIDE_S)
#define HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_FLOW_OVERRIDE_SET(_var, _val) \
#define HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_AST_LIST_IDX_M  0x00007800
#define HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_AST_LIST_IDX_S  11
#define HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_AST_LIST_IDX_GET(_var) \
        (((_var) & HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_AST_LIST_IDX_M) >> \
                HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_AST_LIST_IDX_S)
#define HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_AST_LIST_IDX_SET(_var, _val) \
    do { \
        HTT_CHECK_SET_VAL(HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_FLOW_OVERRIDE, _val);  \
        ((_var) |= ((_val) << HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_FLOW_OVERRIDE_S)); \
        HTT_CHECK_SET_VAL(HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_AST_LIST_IDX, _val); \
        ((_var) |= ((_val) << HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_AST_LIST_IDX_S)); \
    } while (0)
#define HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_AST_LIST_IDX_M  0x00007800
#define HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_AST_LIST_IDX_S  11
#define HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_AST_LIST_IDX_GET(_var) \
        (((_var) & HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_AST_LIST_IDX_M) >> \
                HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_AST_LIST_IDX_S)
#define HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_AST_LIST_IDX_SET(_var, _val) \
#define HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_SVC_CLASS_ID_M  0x00FF0000
#define HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_SVC_CLASS_ID_S  16
#define HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_SVC_CLASS_ID_GET(_var) \
        (((_var) & HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_SVC_CLASS_ID_M) >> \
                HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_SVC_CLASS_ID_S)
#define HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_SVC_CLASS_ID_SET(_var, _val) \
    do { \
        HTT_CHECK_SET_VAL(HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_AST_LIST_IDX, _val);  \
        ((_var) |= ((_val) << HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_AST_LIST_IDX_S)); \
        HTT_CHECK_SET_VAL(HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_SVC_CLASS_ID, _val); \
        ((_var) |= ((_val) << HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_SVC_CLASS_ID_S)); \
    } while (0)
#define HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_SVC_CLASS_ID_M  0x00FF0000
#define HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_SVC_CLASS_ID_S  16
#define HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_SVC_CLASS_ID_GET(_var) \
        (((_var) & HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_SVC_CLASS_ID_M) >> \
                HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_SVC_CLASS_ID_S)
#define HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_SVC_CLASS_ID_SET(_var, _val) \
#define HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_ERROR_CODE_M  0xFF000000
#define HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_ERROR_CODE_S  24
#define HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_ERROR_CODE_GET(_var) \
        (((_var) & HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_ERROR_CODE_M) >> \
                HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_ERROR_CODE_S)
#define HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_ERROR_CODE_SET(_var, _val) \
    do { \
        HTT_CHECK_SET_VAL(HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_SVC_CLASS_ID, _val);  \
        ((_var) |= ((_val) << HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_SVC_CLASS_ID_S)); \
        HTT_CHECK_SET_VAL(HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_ERROR_CODE, _val); \
        ((_var) |= ((_val) << HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_ERROR_CODE_S)); \
    } while (0)
#define HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_ERROR_CODE_M  0xFF000000
#define HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_ERROR_CODE_S  24
#define HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_ERROR_CODE_GET(_var) \
        (((_var) & HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_ERROR_CODE_M) >> \
                HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_ERROR_CODE_S)
#define HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_ERROR_CODE_SET(_var, _val) \
#define HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_TGT_OPAQUE_MSDUQ_ID_M  0x00FFFFFF
#define HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_TGT_OPAQUE_MSDUQ_ID_S  0
#define HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_TGT_OPAQUE_MSDUQ_ID_GET(_var) \
        (((_var) & HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_TGT_OPAQUE_MSDUQ_ID_M) >> \
                HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_TGT_OPAQUE_MSDUQ_ID_S)
#define HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_TGT_OPAQUE_MSDUQ_ID_SET(_var, _val) \
    do { \
        HTT_CHECK_SET_VAL(HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_ERROR_CODE, _val);  \
        ((_var) |= ((_val) << HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_ERROR_CODE_S)); \
        HTT_CHECK_SET_VAL(HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_TGT_OPAQUE_MSDUQ_ID, _val); \
        ((_var) |= ((_val) << HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_TGT_OPAQUE_MSDUQ_ID_S)); \
    } while (0)
#define HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_TGT_OPAQUE_MSDUQ_ID_M  0x00FFFFFF
#define HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_TGT_OPAQUE_MSDUQ_ID_S  0
#define HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_TGT_OPAQUE_MSDUQ_ID_GET(_var) \
        (((_var) & HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_TGT_OPAQUE_MSDUQ_ID_M) >> \
                HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_TGT_OPAQUE_MSDUQ_ID_S)
#define HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_TGT_OPAQUE_MSDUQ_ID_SET(_var, _val) \
#define HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_REQUEST_COOKIE_M  0xFF000000
#define HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_REQUEST_COOKIE_S  24
#define HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_REQUEST_COOKIE_GET(_var) \
        (((_var) & HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_REQUEST_COOKIE_M) >> \
                HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_REQUEST_COOKIE_S)
#define HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_REQUEST_COOKIE_SET(_var, _val) \
    do { \
        HTT_CHECK_SET_VAL(HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_TGT_OPAQUE_MSDUQ_ID, _val);  \
        ((_var) |= ((_val) << HTT_T2H_MSG_TYPE_MSDUQ_CFG_IND_TGT_OPAQUE_MSDUQ_ID_S)); \
        HTT_CHECK_SET_VAL(HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_REQUEST_COOKIE, _val); \
        ((_var) |= ((_val) << HTT_T2H_MSG_TYPE_SDWF_MSDUQ_CFG_IND_REQUEST_COOKIE_S)); \
    } while (0)