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

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

Merge 543dc579 on remote branch

Change-Id: I6286b084eb32d3afa4282d2952b5adfe2c4ac0e9
parents b2360358 543dc579
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -39,6 +39,7 @@ typedef enum {
    CFG_NV_SERVICE_GROUP     = 4,
    WDI_IPA_SERVICE_GROUP    = 5,
    PACKET_LOG_SERVICE_GROUP = 6,
    LPASS_SERVICE_GROUP      = 7,

    HTC_TEST_GROUP           = 254,
    HTC_SERVICE_GROUP_LAST   = 255
@@ -98,6 +99,8 @@ typedef enum {

#define PACKET_LOG_SVC MAKE_SERVICE_ID(PACKET_LOG_SERVICE_GROUP,0)

#define LPASS_DATA_MSG_SVC MAKE_SERVICE_ID(LPASS_SERVICE_GROUP,0)

/*
 * Directions for interconnect pipe configuration.
 * These definitions may be used during configuration and are shared
+709 −13

File changed.

Preview size limit exceeded, changes collapsed.

+101 −17
Original line number Diff line number Diff line
@@ -612,6 +612,58 @@ typedef enum HTT_PPDU_STATS_SPATIAL_REUSE HTT_PPDU_STATS_SPATIAL_REUSE;
            ((_var) |= ((_val) << HTT_PPDU_STATS_COMMON_TLV_BSS_COLOR_ID_S)); \
    } while (0)

#define HTT_PPDU_STATS_COMMON_TLV_BACKOFF_AC_VALID_M     0x00020000
#define HTT_PPDU_STATS_COMMON_TLV_BACKOFF_AC_VALID_S             17

#define HTT_PPDU_STATS_COMMON_TLV_BACKOFF_AC_VALID_GET(_var) \
    (((_var) & HTT_PPDU_STATS_COMMON_TLV_BACKOFF_AC_VALID_M) >> \
    HTT_PPDU_STATS_COMMON_TLV_BACKOFF_AC_VALID_S)

#define HTT_PPDU_STATS_COMMON_TLV_BACKOFF_AC_VALID_SET(_var, _val) \
    do { \
        HTT_CHECK_SET_VAL(HTT_PPDU_STATS_COMMON_TLV_BACKOFF_AC_VALID, _val); \
        ((_var) |= ((_val) << HTT_PPDU_STATS_COMMON_TLV_BACKOFF_AC_VALID_S)); \
    } while (0)

#define HTT_PPDU_STATS_COMMON_TLV_BACKOFF_AC_M     0x000c0000
#define HTT_PPDU_STATS_COMMON_TLV_BACKOFF_AC_S             18

#define HTT_PPDU_STATS_COMMON_TLV_BACKOFF_AC_GET(_var) \
    (((_var) & HTT_PPDU_STATS_COMMON_TLV_BACKOFF_AC_M) >> \
    HTT_PPDU_STATS_COMMON_TLV_BACKOFF_AC_S)

#define HTT_PPDU_STATS_COMMON_TLV_BACKOFF_AC_SET(_var, _val) \
    do { \
        HTT_CHECK_SET_VAL(HTT_PPDU_STATS_COMMON_TLV_AC_VALID, _val); \
        ((_var) |= ((_val) << HTT_PPDU_STATS_COMMON_TLV_BACKOFF_AC_S)); \
    } while (0)

#define HTT_PPDU_STATS_COMMON_TLV_NUM_UL_USER_RESPONSES_VALID_M     0x00100000
#define HTT_PPDU_STATS_COMMON_TLV_NUM_UL_USER_RESPONSES_VALID_S             20

#define HTT_PPDU_STATS_COMMON_TLV_NUM_UL_USER_RESPONSES_VALID_GET(_var) \
    (((_var) & HTT_PPDU_STATS_COMMON_TLV_NUM_UL_USER_RESPONSES_VALID_M) >> \
    HTT_PPDU_STATS_COMMON_TLV_NUM_UL_USER_RESPONSES_VALID_S)

#define HTT_PPDU_STATS_COMMON_TLV_NUM_UL_USER_RESPONSES_VALID_SET(_var, _val) \
    do { \
        HTT_CHECK_SET_VAL(HTT_PPDU_STATS_COMMON_TLV_NUM_UL_USER_RESPONSES_VALID, _val); \
        ((_var) |= ((_val) << HTT_PPDU_STATS_COMMON_TLV_NUM_UL_USER_RESPONSES_VALID_S)); \
    } while (0)

#define HTT_PPDU_STATS_COMMON_TLV_NUM_UL_USER_RESPONSES_M     0x1fe00000
#define HTT_PPDU_STATS_COMMON_TLV_NUM_UL_USER_RESPONSES_S             21

#define HTT_PPDU_STATS_COMMON_TLV_NUM_UL_USER_RESPONSES_GET(_var) \
    (((_var) & HTT_PPDU_STATS_COMMON_TLV_NUM_UL_USER_RESPONSES_M) >> \
    HTT_PPDU_STATS_COMMON_TLV_NUM_UL_USER_RESPONSES_S)

#define HTT_PPDU_STATS_COMMON_TLV_NUM_UL_USER_RESPONSES_SET(_var, _val) \
    do { \
        HTT_CHECK_SET_VAL(HTT_PPDU_STATS_COMMON_TLV_NUM_UL_USER_RESPONSES_VALID, _val); \
        ((_var) |= ((_val) << HTT_PPDU_STATS_COMMON_TLV_NUM_UL_USER_RESPONSES_S)); \
    } while (0)

#define HTT_PPDU_STATS_COMMON_TRIG_COOKIE_M    0x0000ffff
#define HTT_PPDU_STATS_COMMON_TRIG_COOKIE_S    0

@@ -760,9 +812,22 @@ typedef struct {
     *               by which SRG/Non-SRG based spatial reuse opportunity
     *               was created.
     * BIT [16:16] - PPDU transmitted using PSR opportunity
     * BIT [31:17] - reserved
     * BIT [17:17] - backoff_ac_valid
     * BIT [19:18] - backoff_ac: WMM ACI Value of the backoff engine used for
     *               this transmission. Only valid if backoff_ac_valid is set
     *               to 1. Typically this would match the default tid
     *               number -> AC mapping. For frames in the middle of a SIFS
     *               burst, the backoff_ac_valid will be 0.
     * BIT [20:20] - num_ul_user_responses_valid
     * BIT [21:28] - num_ul_user_responses: The number of user responses
     *               detected by the MAC layer. This value can be compared with
     *               the "num_ul_expected_users" field to see whether this frame
     *               had a complete or partial response failure. Only valid if
     *               num_ul_user_responses_valid is set to 1.
     * BIT [31:29] - reserved
     */
    union {
        A_UINT32 reserved__num_ul_user_responses__num_ul_user_responses_valid__backoff_ac__backoff_ac_valid__psr_tx__aborted_obss_rssi__srg_tx__non_srg_tx__bss_color_id;
        A_UINT32 reserved__psr_tx__aborted_obss_rssi__srg_tx__non_srg_tx___bss_color_id;
        A_UINT32 reserved__aborted_obss_rssi__srg_tx__non_srg_tx___bss_color_id;
        A_UINT32 reserved__bss_color_id;
@@ -772,7 +837,11 @@ typedef struct {
                     srg_tx:                      1,
                     aborted_obss_rssi:           8,
                     psr_tx:                      1,
                     reserved2:         15;
                     backoff_ac_valid:            1,
                     backoff_ac:                  2,
                     num_ul_user_responses_valid: 1,
                     num_ul_user_responses:       8,
                     reserved2:                   3;
        };
    };

@@ -787,16 +856,18 @@ typedef struct {
    };

    /*
     * htt_seq_type field is added for backward compatibility with
     * pktlog decoder, host driver or any third party tool interpreting
     * ppdu sequence type. If field 'htt_seq_type'is not present or is
     * present but set to WAL_PPDU_SEQ_TYPE, decoder should interpret
     * the seq type as WAL_TXSEND_PPDU_SEQUENCE.
     * BIT [0 : 0] - htt_seq_type field is added for backward compatibility
     *               with pktlog decoder, host driver or any third party tool
     *               interpreting ppdu sequence type. If field 'htt_seq_type'
     *               is not present or is present but set to WAL_PPDU_SEQ_TYPE,
     *               decoder should interpret the seq type as
     *               WAL_TXSEND_PPDU_SEQUENCE.
     *               If the new field htt_seq_type is present and is set to
     * HTT_PPDU_SEQ_TYPE then decoder should interpret the seq type as
     * HTT_PPDU_STATS_SEQ_TYPE. htt_seq_type field will be set to
     * HTT_PPDU_SEQ_TYPE in firmware versions where this field is
     * defined.
     *               HTT_PPDU_SEQ_TYPE then decoder should interpret the
     *               seq type as HTT_PPDU_STATS_SEQ_TYPE.
     *               htt_seq_type field will be set to HTT_PPDU_SEQ_TYPE in
     *               firmware versions where this field is defined.
     * BIT [31: 1] - reserved
     */
    union {
        A_UINT32 reserved__htt_seq_type;
@@ -1169,6 +1240,19 @@ typedef struct {
     * value is larger than A_INT8.
     */
    A_UINT32 alt_tx_pwr[HTT_STATS_MAX_CHAINS / HTT_PPDU_STATS_USER_COMMON_TLV_TX_PWR_CHAINS_PER_U32];

    /*
     * A bitmap indicating the MSDUQs that the scheduler is attempting to
     * transmit in this PPDU. Note that in some cases, the scheduler's notion
     * of what MSDUQs are being transmitted from may not be fully accurate,
     * such as when MPDUs are retried, or when some previously generated MPDUs
     * that were not attempted OTA yet are tried.
     *
     * The valid bit indices for this bitmap are defined by the HTT_MSDUQ_INDEX
     * enum (in htt.h). For example, (1 << HTT_MSDUQ_INDEX_UDP) would
     * correspond to the default UDP msduq.
     */
    A_UINT32 msduq_bitmap;
} htt_ppdu_stats_user_common_tlv;

#define HTT_PPDU_STATS_USER_RATE_TLV_TID_NUM_M     0x000000ff
+148 −11
Original line number Diff line number Diff line
@@ -147,6 +147,7 @@ enum htt_dbg_ext_stats_type {
     *           5 bit htt_rx_tid_stats_tlv
     *           6 bit htt_msdu_flow_stats_tlv
     *           7 bit htt_peer_sched_stats_tlv
     *           8 bit htt_peer_ax_ofdma_stats_tlv
     *   - config_param2: [Bit31 : Bit0] mac_addr31to0
     *   - config_param3: [Bit15 : Bit0] mac_addr47to32
     *                    [Bit 16] If this bit is set, reset per peer stats
@@ -510,6 +511,14 @@ enum htt_dbg_ext_stats_type {
     */
    HTT_DBG_EXT_STATS_PDEV_BW_MGR = 53,

    /** HTT_DBG_PDEV_MBSSID_CTRL_FRAME_STATS
     * PARAMS:
     *   - No Params
     * RESP MSG:
     *   - htt_pdev_mbssid_ctrl_frame_stats
     */
    HTT_DBG_PDEV_MBSSID_CTRL_FRAME_STATS = 54,


    /* keep this last */
    HTT_DBG_NUM_EXT_STATS = 256,
@@ -919,6 +928,20 @@ typedef struct {
    A_UINT32      flush_errs[1]; /* HTT_TX_PDEV_MAX_FLUSH_REASON_STATS */
} htt_tx_pdev_stats_flush_tlv_v;

#define HTT_TX_PDEV_STATS_MLO_ABORT_TLV_SZ(_num_elems) (sizeof(A_UINT32) * (_num_elems))
/* NOTE: Variable length TLV, use length spec to infer array size */
typedef struct {
    htt_tlv_hdr_t tlv_hdr;
    A_UINT32      mlo_abort_cnt[]; /* HTT_TX_PDEV_MAX_MLO_ABORT_REASON_STATS */
} htt_tx_pdev_stats_mlo_abort_tlv_v;

#define HTT_TX_PDEV_STATS_MLO_TXOP_ABORT_TLV_SZ(_num_elems) (sizeof(A_UINT32) * (_num_elems))
/* NOTE: Variable length TLV, use length spec to infer array size */
typedef struct {
    htt_tlv_hdr_t tlv_hdr;
    A_UINT32      mlo_txop_abort_cnt[]; /* HTT_TX_PDEV_MAX_MLO_ABORT_REASON_STATS */
} htt_tx_pdev_stats_mlo_txop_abort_tlv_v;

#define HTT_TX_PDEV_STATS_SIFS_TLV_SZ(_num_elems) (sizeof(A_UINT32) * (_num_elems))
/* NOTE: Variable length TLV, use length spec to infer array size */
typedef struct {
@@ -940,13 +963,24 @@ typedef struct {
 * that particular value for the MU EDCA parameter in question.
 */
#define HTT_STATS_MUEDCA_VALUE_MAX 16
typedef struct {
typedef struct { /* DEPRECATED */
    htt_tlv_hdr_t tlv_hdr;
    A_UINT32 aifs[HTT_NUM_AC_WMM][HTT_STATS_MUEDCA_VALUE_MAX];
    A_UINT32 cw_min[HTT_NUM_AC_WMM][HTT_STATS_MUEDCA_VALUE_MAX];
    A_UINT32 cw_max[HTT_NUM_AC_WMM][HTT_STATS_MUEDCA_VALUE_MAX];
} htt_tx_pdev_muedca_params_stats_tlv_v;

typedef struct {
    htt_tlv_hdr_t tlv_hdr;
    A_UINT32 relaxed_mu_edca[HTT_NUM_AC_WMM];
    A_UINT32 mumimo_aggressive_mu_edca[HTT_NUM_AC_WMM];
    A_UINT32 mumimo_relaxed_mu_edca[HTT_NUM_AC_WMM];
    A_UINT32 muofdma_aggressive_mu_edca[HTT_NUM_AC_WMM];
    A_UINT32 muofdma_relaxed_mu_edca[HTT_NUM_AC_WMM];
    A_UINT32 latency_mu_edca[HTT_NUM_AC_WMM];
    A_UINT32 psd_boost_mu_edca[HTT_NUM_AC_WMM];
} htt_tx_pdev_mu_edca_params_stats_tlv_v;

typedef struct {
    htt_tlv_hdr_t tlv_hdr;
    A_UINT32 ul_mumimo_less_aggressive[HTT_NUM_AC_WMM];
@@ -1812,6 +1846,7 @@ typedef enum {
    HTT_RX_TID_STATS_TLV        = 5,
    HTT_MSDU_FLOW_STATS_TLV     = 6,
    HTT_PEER_SCHED_STATS_TLV    = 7,
    HTT_PEER_AX_OFDMA_STATS_TLV = 8,

    HTT_PEER_STATS_MAX_TLV      = 31,
} htt_peer_stats_tlv_enum;
@@ -1832,6 +1867,31 @@ typedef struct {
    A_UINT32 peer_curr_rate_kbps;
} htt_peer_sched_stats_tlv;

typedef struct {
    htt_tlv_hdr_t tlv_hdr;
    A_UINT32 peer_id;
    A_UINT32 ax_basic_trig_count;
    A_UINT32 ax_basic_trig_err;
    A_UINT32 ax_bsr_trig_count;
    A_UINT32 ax_bsr_trig_err;
    A_UINT32 ax_mu_bar_trig_count;
    A_UINT32 ax_mu_bar_trig_err;
    A_UINT32 ax_basic_trig_with_per;
    A_UINT32 ax_bsr_trig_with_per;
    A_UINT32 ax_mu_bar_trig_with_per;
    /* is_airtime_large_for_dl_ofdma, is_airtime_large_for_ul_ofdma
     * These fields contain 2 counters each.  The first element in each
     * array counts how many times the airtime is short enough to use
     * OFDMA, and the second element in each array counts how many times the
     * airtime is too large to select OFDMA for the PPDUs involving the peer.
     */
    A_UINT32 is_airtime_large_for_dl_ofdma[2];
    A_UINT32 is_airtime_large_for_ul_ofdma[2];
    /* Last updated value of DL and UL queue depths for each peer per AC */
    A_UINT32 last_updated_dl_qdepth[HTT_NUM_AC_WMM];
    A_UINT32 last_updated_ul_qdepth[HTT_NUM_AC_WMM];
} htt_peer_ax_ofdma_stats_tlv;

/* config_param0 */

#define HTT_DBG_EXT_PEER_CTRL_PATH_TXRX_STATS_IS_MAC_ADDR_M 0x00000001
@@ -1902,6 +1962,7 @@ typedef struct {
 *   - HTT_STATS_PEER_MSDU_FLOWQ_TAG (multiple)
 *   - HTT_STATS_TX_TID_DETAILS_V1_TAG (multiple)
 *   - HTT_STATS_PEER_SCHED_STATS_TAG
 *   - HTT_STATS_PEER_AX_OFDMA_STATS_TAG
 */
/* NOTE:
 * This structure is for documentation, and cannot be safely used directly.
@@ -1919,6 +1980,7 @@ typedef struct _htt_peer_stats {
    htt_msdu_flow_stats_tlv    msdu_flowq[1];
    htt_tx_tid_stats_v1_tlv    tx_tid_stats_v1[1];
    htt_peer_sched_stats_tlv   peer_sched_stats;
    htt_peer_ax_ofdma_stats_tlv ax_ofdma_stats;
} htt_peer_stats_t;

/* =========== ACTIVE PEER LIST ========== */
@@ -2336,6 +2398,7 @@ typedef struct {
    A_UINT32 su_sw_rts_flushed;
    /** CTS (RTS response) received in different BW */
    A_UINT32 su_sw_rts_rcvd_cts_diff_bw;
/* START DEPRECATED FIELDS */
    /** 11AX HE MU Combined Freq. BSRP Trigger frame sent over the air */
    A_UINT32 combined_ax_bsr_trigger_tried[HTT_NUM_AC_WMM];
    /** 11AX HE MU Combined Freq. BSRP Trigger completed with error(s) */
@@ -2344,6 +2407,7 @@ typedef struct {
    A_UINT32 standalone_ax_bsr_trigger_tried[HTT_NUM_AC_WMM];
    /** 11AX HE MU Standalone Freq. BSRP Trigger completed with error(s) */
    A_UINT32 standalone_ax_bsr_trigger_err[HTT_NUM_AC_WMM];
/* END DEPRECATED FIELDS */
} htt_tx_selfgen_cmn_stats_tlv;

typedef struct {
@@ -2427,6 +2491,14 @@ typedef struct {
     * successfully sent over the air
     */
    A_UINT32 ax_ul_mumimo_trigger[HTT_TX_PDEV_STATS_NUM_AX_MUMIMO_USER_STATS];
    /** 11AX HE MU Combined Freq. BSRP Trigger frame sent over the air */
    A_UINT32 combined_ax_bsr_trigger_tried[HTT_NUM_AC_WMM];
    /** 11AX HE MU Combined Freq. BSRP Trigger completed with error(s) */
    A_UINT32 combined_ax_bsr_trigger_err[HTT_NUM_AC_WMM];
    /** 11AX HE MU Standalone Freq. BSRP Trigger frame sent over the air */
    A_UINT32 standalone_ax_bsr_trigger_tried[HTT_NUM_AC_WMM];
    /** 11AX HE MU Standalone Freq. BSRP Trigger completed with error(s) */
    A_UINT32 standalone_ax_bsr_trigger_err[HTT_NUM_AC_WMM];
} htt_tx_selfgen_ax_stats_tlv;

typedef struct {
@@ -2466,6 +2538,14 @@ typedef struct {
     * successfully sent over the air
     */
    A_UINT32 be_ul_mumimo_trigger[HTT_TX_PDEV_STATS_NUM_BE_MUMIMO_USER_STATS];
    /** 11BE EHT MU Combined Freq. BSRP Trigger frame sent over the air */
    A_UINT32 combined_be_bsr_trigger_tried[HTT_NUM_AC_WMM];
    /** 11BE EHT MU Combined Freq. BSRP Trigger completed with error(s) */
    A_UINT32 combined_be_bsr_trigger_err[HTT_NUM_AC_WMM];
    /** 11BE EHT MU Standalone Freq. BSRP Trigger frame sent over the air */
    A_UINT32 standalone_be_bsr_trigger_tried[HTT_NUM_AC_WMM];
    /** 11BE EHT MU Standalone Freq. BSRP Trigger completed with error(s) */
    A_UINT32 standalone_be_bsr_trigger_err[HTT_NUM_AC_WMM];
} htt_tx_selfgen_be_stats_tlv;

typedef struct { /* DEPRECATED */
@@ -3819,6 +3899,7 @@ typedef struct {
    A_UINT32 total_get_mpdu_head_info_cmds_by_sched_algo_la_query;
    A_UINT32 total_get_mpdu_head_info_cmds_by_tac;
    A_UINT32 total_gen_mpdu_cmds_by_sched_algo_la_query;
    A_UINT32 high_prio_q_not_empty;
} htt_tx_tqm_cmn_stats_tlv;

typedef struct {
@@ -7294,6 +7375,11 @@ typedef struct {
#define HTT_MAX_RX_PKT_CRC_PASS_CNT 8
#define HTT_MAX_PER_BLK_ERR_CNT 20
#define HTT_MAX_RX_OTA_ERR_CNT 14
#define HTT_MAX_RX_PKT_CNT_EXT 4
#define HTT_MAX_RX_PKT_CRC_PASS_CNT_EXT 4
#define HTT_MAX_RX_PKT_MU_CNT 14
#define HTT_MAX_TX_PKT_CNT 10
#define HTT_MAX_PHY_TX_ABORT_CNT 10

typedef enum {
    HTT_STATS_CHANNEL_HALF_RATE          = 0x0001,   /* Half rate */
@@ -7434,6 +7520,38 @@ typedef struct {
     * [9-13]=RSVD
     */
    A_UINT32 rx_ota_err_cnt[HTT_MAX_RX_OTA_ERR_CNT];
    /** rx_pkt_cnt_ext -
     * Received EOP (end-of-packet) count per packet type for BE;
     * [0] = EHT; [1] = WUR; [2] = AZ; [3]=RVSD
     */
    A_UINT32 rx_pkt_cnt_ext[HTT_MAX_RX_PKT_CNT_EXT];
    /** rx_pkt_crc_pass_cnt_ext -
     * Received EOP (end-of-packet) count per packet type for BE;
     * [0] = EHT; [1] = WUR; [2] = AZ; [3]=RVSD
     */
    A_UINT32 rx_pkt_crc_pass_cnt_ext[HTT_MAX_RX_PKT_CRC_PASS_CNT_EXT];
    /** rx_pkt_mu_cnt -
     * RX MU MIMO+OFDMA packet count per packet type for BE;
     * [0] = 11ax OFDMA; [1] = 11ax OFDMA+MUMIMO; [2] = 11be OFDMA;
     * [3] = 11be OFDMA+MUMIMO; [4] = 11ax MIMO; [5] = 11be MIMO;
     * [6] = 11ax OFDMA; [7] = 11ax OFDMA+MUMIMO; [8] = 11be OFDMA;
     * [9] = 11be OFDMA+MUMIMO; [10] = 11ax MIMO; [11] = 11be MIMO;
     * [12-13]=RSVD
     */
    A_UINT32 rx_pkt_mu_cnt[HTT_MAX_RX_PKT_MU_CNT];
    /** tx_pkt_cnt -
     * num of transfered packet count per packet type;
     * [0] = 11a; [1] = 11b; [2] = 11n; [3] = 11ac; [4] = 11ax; [5] = GF;
     * [6]= EHT; [7] = WUR; [8] = AZ; [9]=RSVD; [6-8] = Applicable only for BE
     */
    A_UINT32 tx_pkt_cnt[HTT_MAX_TX_PKT_CNT];
    /** phy_tx_abort_cnt -
     * phy tx abort after each tlv;
     * [0] = PRE-PHY desc tlv; [1] = PHY desc tlv; [2] = LSIGA tlv;
     * [3] = LSIGB tlv; [4] = Per User tlv; [5] = HESIGB tlv;
     * [6] = Service tlv; [7] = Tx Packet End tlv; [8-9]=RSVD;
     */
    A_UINT32 phy_tx_abort_cnt[HTT_MAX_PHY_TX_ABORT_CNT];
} htt_phy_counters_tlv;

typedef struct {
@@ -8536,6 +8654,25 @@ typedef struct {
    A_UINT32 dlofdma_disabled_consec_no_mpdus_success[HTT_NUM_AC_WMM];
} htt_pdev_sched_algo_ofdma_stats_tlv;

typedef struct {
    htt_tlv_hdr_t tlv_hdr;
    /** mac_id__word:
     * BIT [ 7 :  0]   :- mac_id
     *                    Use the HTT_STATS_CMN_MAC_ID_GET,_SET macros to
     *                    read/write this bitfield.
     * BIT [31 :  8]   :- reserved
     */
    A_UINT32 mac_id__word;
    A_UINT32 basic_trigger_across_bss;
    A_UINT32 basic_trigger_within_bss;
    A_UINT32 bsr_trigger_across_bss;
    A_UINT32 bsr_trigger_within_bss;
    A_UINT32 mu_rts_across_bss;
    A_UINT32 mu_rts_within_bss;
    A_UINT32 ul_mumimo_trigger_across_bss;
    A_UINT32 ul_mumimo_trigger_within_bss;
} htt_pdev_mbssid_ctrl_frame_stats_tlv;

/*======= Bandwidth Manager stats ====================*/

#define HTT_BW_MGR_STATS_MAC_ID_M               0x000000ff

fw/txmon_tlvs.h

0 → 100644
+141 −0
Original line number Diff line number Diff line
/*
 * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
 *
 * Permission to use, copy, modify, and/or distribute this software for
 * any purpose with or without fee is hereby granted, provided that the
 * above copyright notice and this permission notice appear in all
 * copies.
 *
 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 * PERFORMANCE OF THIS SOFTWARE.
 */

#ifndef _TXMON_TLVS_H_
#define _TXMON_TLVS_H_

#define TXMON_FW2SW_MON_FES_SETUP_BAND_CENTER_FREQ1_M   0x0000ffff
#define TXMON_FW2SW_MON_FES_SETUP_BAND_CENTER_FREQ1_S   0

#define TXMON_FW2SW_MON_FES_SETUP_BAND_CENTER_FREQ2_M   0xffff0000
#define TXMON_FW2SW_MON_FES_SETUP_BAND_CENTER_FREQ2_S   16

#define TXMON_FW2SW_MON_FES_SETUP_PHY_MODE_M            0x000000ff
#define TXMON_FW2SW_MON_FES_SETUP_PHY_MODE_S            0

#define TXMON_FW2SW_MON_FES_SETUP_MHZ_M                 0x00ffff00
#define TXMON_FW2SW_MON_FES_SETUP_MHZ_S                 8

#define TXMON_FW2SW_MON_FES_SETUP_SCHEDULE_ID_M         0xffffffff
#define TXMON_FW2SW_MON_FES_SETUP_SCHEDULE_ID_S         0

#define TXMON_FW2SW_MON_FES_SETUP_BAND_CENTER_FREQ1_GET(_var) \
    (((_var) & TXMON_FW2SW_MON_FES_SETUP_BAND_CENTER_FREQ1_M) >> \
     TXMON_FW2SW_MON_FES_SETUP_BAND_CENTER_FREQ1_S)

#define TXMON_FW2SW_MON_FES_SETUP_BAND_CENTER_FREQ1_SET(_var, _val) \
    do { \
        HTT_CHECK_SET_VAL(TXMON_FW2SW_MON_FES_SETUP_BAND_CENTER_FREQ1, _val); \
        ((_var) |= ((_val) << TXMON_FW2SW_MON_FES_SETUP_BAND_CENTER_FREQ1_S)); \
    } while (0)

#define TXMON_FW2SW_MON_FES_SETUP_BAND_CENTER_FREQ2_GET(_var) \
    (((_var) & TXMON_FW2SW_MON_FES_SETUP_BAND_CENTER_FREQ2_M) >> \
     TXMON_FW2SW_MON_FES_SETUP_BAND_CENTER_FREQ2_S)

#define TXMON_FW2SW_MON_FES_SETUP_BAND_CENTER_FREQ2_SET(_var, _val) \
    do { \
        HTT_CHECK_SET_VAL(TXMON_FW2SW_MON_FES_SETUP_BAND_CENTER_FREQ2, _val); \
        ((_var) |= ((_val) << TXMON_FW2SW_MON_FES_SETUP_BAND_CENTER_FREQ2_S)); \
    } while (0)

#define TXMON_FW2SW_MON_FES_SETUP_PHY_MODE_GET(_var) \
    (((_var) & TXMON_FW2SW_MON_FES_SETUP_PHY_MODE_M) >> \
     TXMON_FW2SW_MON_FES_SETUP_PHY_MODE_S)

#define TXMON_FW2SW_MON_FES_SETUP_PHY_MODE_SET(_var, _val) \
    do { \
        HTT_CHECK_SET_VAL(TXMON_FW2SW_MON_FES_SETUP_PHY_MODE, _val); \
        ((_var) |= ((_val) << TXMON_FW2SW_MON_FES_SETUP_PHY_MODE_S)); \
    } while (0)

#define TXMON_FW2SW_MON_FES_SETUP_MHZ_GET(_var) \
    (((_var) & TXMON_FW2SW_MON_FES_SETUP_MHZ_M) >> \
     TXMON_FW2SW_MON_FES_SETUP_MHZ_S)

#define TXMON_FW2SW_MON_FES_SETUP_MHZ_SET(_var, _val) \
    do { \
        HTT_CHECK_SET_VAL(TXMON_FW2SW_MON_FES_SETUP_MHZ, _val); \
        ((_var) |= ((_val) << TXMON_FW2SW_MON_FES_SETUP_MHZ_S)); \
    } while (0)

#define TXMON_FW2SW_MON_FES_SETUP_SCHEDULE_ID_GET(_var) \
    (((_var) & TXMON_FW2SW_MON_FES_SETUP_SCHEDULE_ID_M) >> \
     TXMON_FW2SW_MON_FES_SETUP_SCHEDULE_ID_S)

#define TXMON_FW2SW_MON_FES_SETUP_SCHEDULE_ID_SET(_var, _val) \
    do { \
        HTT_CHECK_SET_VAL(TXMON_FW2SW_MON_FES_SETUP_SCHEDULE_ID, _val); \
        ((_var) |= ((_val) << TXMON_FW2SW_MON_FES_SETUP_SCHEDULE_ID_S)); \
    } while (0)

enum txmon_fw2sw_user_id {
    TXMON_FW2SW_TYPE_FES_SETUP      = 0, /* Placed after  FES_SETUP */
    TXMON_FW2SW_TYPE_FES_SETUP_USER = 1, /* Placed before FES_SETUP_COMPLETE */
    TXMON_FW2SW_TYPE_FES_SETUP_EXT  = 2, /* Placed after  FES_SETUP_COMPLETE */
    TXMON_FW2SW_TYPE_MAX            = 4
};

typedef struct txmon_fw2sw_fes_setup {
    A_UINT32 band_center_freq1  : 16,
             band_center_freq2  : 16;
    A_UINT32 phy_mode : 8,              /* this field is filled with WLAN_PHY_MODE enum value */
             mhz      : 16,
             reserved : 8;
    A_UINT32 schedule_id;
} txmon_fw2sw_fes_setup_t;

typedef struct txmon_fw2sw_fes_setup_ext {
    A_UINT32 reserved;
} txmon_fw2sw_fes_setup_ext_t;

#define TXMON_FW2SW_MON_FES_SETUP_USER_USER_ID_M        0x0000003f
#define TXMON_FW2SW_MON_FES_SETUP_USER_USER_ID_S        0

#define TXMON_FW2SW_MON_FES_SETUP_USER_USER_ID_GET(_var) \
    (((_var) & TXMON_FW2SW_MON_FES_SETUP_USER_USER_ID_M) >> \
     TXMON_FW2SW_MON_FES_SETUP_USER_USER_ID_S)

#define TXMON_FW2SW_MON_FES_SETUP_USER_USER_ID_SET(_var, _val) \
    do { \
        HTT_CHECK_SET_VAL(TXMON_FW2SW_MON_FES_SETUP_USER_USER_ID, _val); \
        ((_var) |= ((_val) << TXMON_FW2SW_MON_FES_SETUP_USER_USER_ID_S)); \
    } while (0)


typedef struct txmon_fw2sw_fes_setup_user {
    A_UINT32 user_id  : 6,
             reserved : 24;
} txmon_fw2sw_fes_setup_user_t;

struct txmon_fw2sw_mon_fes_setup_tlv {
    struct tlv_usr_32_hdr tag; /* tlv_usrid => TXMON_FW2SW_TYPE_FES_SETUP */
    struct txmon_fw2sw_fes_setup setup;
};

struct txmon_fw2sw_mon_fes_setup_ext_tlv {
    struct tlv_usr_32_hdr tag; /* tlv_usrid => TXMON_FW2SW_TYPE_FES_SETUP_EXT*/
    struct txmon_fw2sw_fes_setup_ext setup_ext;
};

struct txmon_fw2sw_mon_fes_setup_user_tlv {
    struct tlv_usr_32_hdr tag; /* tlv_usrid => TXMON_FW2SW_TYPE_FES_SETUP_USER */
    struct txmon_fw2sw_fes_setup_user user_setup;
};

#endif /* _TXMON_TLVS_H_ */
Loading