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

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

Merge 9450e384 on remote branch

Change-Id: I8f0b09d1184458dc968cb80e497842de926a77cd
parents e7d18bb8 9450e384
Loading
Loading
Loading
Loading
+779 −97

File changed.

Preview size limit exceeded, changes collapsed.

+150 −3
Original line number Diff line number Diff line
/*
 * Copyright (c) 2017-2021 The Linux Foundation. All rights reserved.
 * Copyright (c) 2017-2022 The Linux Foundation. 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
@@ -413,6 +413,14 @@ enum htt_dbg_ext_stats_type {

    HTT_DBG_EXT_AST_ENTRIES = 41,

    /* HTT_DBG_EXT_RX_RING_STATS
     * PARAMS:
     *    - No Params
     * RESP MSG:
     *    - htt_rx_fw_ring_stats_tlv_v
     */
    HTT_DBG_EXT_RX_RING_STATS = 42,


    /* keep this last */
    HTT_DBG_NUM_EXT_STATS = 256,
@@ -506,6 +514,25 @@ typedef enum {
    HTT_TX_RATE_STATS_UPLOAD_11BE_OFDMA,
} htt_tx_rate_stats_upload_t;

/* htt_rx_ul_trigger_stats_upload_t
 * Enumerations for specifying which stats to upload in response to
 * HTT_DBG_EXT_STATS_PDEV_TX_RATE.
 */
typedef enum {
    /* Upload 11ax UL OFDMA RX Trigger stats
     *
     * TLV: htt_rx_pdev_ul_trigger_stats_tlv
     */
    HTT_RX_UL_TRIGGER_STATS_UPLOAD_11AX_OFDMA,

    /*
     * Upload 11be UL OFDMA RX Trigger stats
     *
     * TLV: htt_rx_pdev_be_ul_trigger_stats_tlv
     */
    HTT_RX_UL_TRIGGER_STATS_UPLOAD_11BE_OFDMA,
} htt_rx_ul_trigger_stats_upload_t;

#define HTT_STATS_MAX_STRING_SZ32 4
#define HTT_STATS_MACID_INVALID 0xff
#define HTT_TX_HWQ_MAX_DIFS_LATENCY_BINS 10
@@ -2349,7 +2376,7 @@ typedef struct {
    A_UINT32 ax_ul_mumimo_basic_sch_nusers[HTT_TX_PDEV_STATS_NUM_UL_MUMIMO_USER_STATS];
    /* Represents the count for 11AX UL MU MIMO sequences with BRP Triggers */
    A_UINT32 ax_ul_mumimo_brp_sch_nusers[HTT_TX_PDEV_STATS_NUM_UL_MUMIMO_USER_STATS];
    /* Number of 11AC DL MU MIMO schedules posted per group size */
    /* Number of 11AC DL MU MIMO schedules posted per group size (0-3) */
    A_UINT32 ac_mu_mimo_sch_posted_per_grp_sz[HTT_TX_PDEV_STATS_NUM_AC_MUMIMO_USER_STATS];
    /* Number of 11AX DL MU MIMO schedules posted per group size */
    A_UINT32 ax_mu_mimo_sch_posted_per_grp_sz[HTT_TX_PDEV_STATS_NUM_AX_MUMIMO_USER_STATS];
@@ -2357,6 +2384,8 @@ typedef struct {
    A_UINT32 be_mu_mimo_sch_nusers[HTT_TX_PDEV_STATS_NUM_BE_MUMIMO_USER_STATS];
    /* Number of 11BE DL MU MIMO schedules posted per group size */
    A_UINT32 be_mu_mimo_sch_posted_per_grp_sz[HTT_TX_PDEV_STATS_NUM_BE_MUMIMO_USER_STATS];
    /* Number of 11AC DL MU MIMO schedules posted per group size (4-7) */
    A_UINT32 ac_mu_mimo_sch_posted_per_grp_sz_ext[HTT_TX_PDEV_STATS_NUM_AC_MUMIMO_USER_STATS];
} htt_tx_pdev_mu_mimo_sch_stats_tlv;

typedef struct {
@@ -2400,7 +2429,7 @@ typedef struct {
    A_UINT32 ac_mu_mimo_sch_nusers[HTT_TX_PDEV_STATS_NUM_AC_MUMIMO_USER_STATS];
    /* Represents the count for 11AX DL MU MIMO sequences */
    A_UINT32 ax_mu_mimo_sch_nusers[HTT_TX_PDEV_STATS_NUM_AX_MUMIMO_USER_STATS];
    /* Number of 11AC DL MU MIMO schedules posted per group size */
    /* Number of 11AC DL MU MIMO schedules posted per group size (0-3) */
    A_UINT32 ac_mu_mimo_sch_posted_per_grp_sz[HTT_TX_PDEV_STATS_NUM_AC_MUMIMO_USER_STATS];
    /* Number of 11AX DL MU MIMO schedules posted per group size */
    A_UINT32 ax_mu_mimo_sch_posted_per_grp_sz[HTT_TX_PDEV_STATS_NUM_AX_MUMIMO_USER_STATS];
@@ -2408,6 +2437,8 @@ typedef struct {
    A_UINT32 be_mu_mimo_sch_nusers[HTT_TX_PDEV_STATS_NUM_BE_MUMIMO_USER_STATS];
    /* Number of 11BE DL MU MIMO schedules posted per group size */
    A_UINT32 be_mu_mimo_sch_posted_per_grp_sz[HTT_TX_PDEV_STATS_NUM_BE_MUMIMO_USER_STATS];
    /* Number of 11AC DL MU MIMO schedules posted per group size (4 - 7)*/
    A_UINT32 ac_mu_mimo_sch_posted_per_grp_sz_ext[HTT_TX_PDEV_STATS_NUM_AC_MUMIMO_USER_STATS];
} htt_tx_pdev_dl_mu_mimo_sch_stats_tlv;

typedef struct {
@@ -3181,6 +3212,40 @@ typedef struct {
    A_UINT32 vdev_id_mismatch_cnt;
} htt_tx_de_cmn_stats_tlv;

#define HTT_STATS_RX_FW_RING_SIZE_NUM_ENTRIES(dword) ((dword >> 0)  & 0xffff)
#define HTT_STATS_RX_FW_RING_CURR_NUM_ENTRIES(dword) ((dword >> 16) & 0xffff)

/* Rx debug info for status rings */
typedef struct {
    htt_tlv_hdr_t tlv_hdr;
    /* BIT [15 :  0] :- max possible number of entries in respective ring (size of the ring in terms of entries)
     * BIT [16 : 31] :- current number of entries occupied in respective ring
     */
    A_UINT32 entry_status_sw2rxdma;
    A_UINT32 entry_status_rxdma2reo;
    A_UINT32 entry_status_reo2sw1;
    A_UINT32 entry_status_reo2sw4;
    A_UINT32 entry_status_refillringipa;
    A_UINT32 entry_status_refillringhost;
    /* datarate - Moving Average of Number of Entries */
    A_UINT32 datarate_refillringipa;
    A_UINT32 datarate_refillringhost;
    /*
     * refillringhost_backpress_hist and refillringipa_backpress_hist are
     * deprecated, and will be filled with 0x0 by the target.
     */
    A_UINT32 refillringhost_backpress_hist[3];
    A_UINT32 refillringipa_backpress_hist[3];
    /* reo2sw4ringipa_backpress_hist:
     * Number of times reo2sw4(IPA_DEST_RING) ring is back-pressured
     * in recent time periods
     * element 0: in last 0 to 250ms
     * element 1: 250ms to 500ms
     * element 2: above 500ms
     */
    A_UINT32 reo2sw4ringipa_backpress_hist[3];
} htt_rx_fw_ring_stats_tlv_v;

/* STATS_TYPE : HTT_DBG_EXT_STATS_TX_DE_INFO
 * TLV_TAGS:
 *     - HTT_STATS_TX_DE_CMN_TAG
@@ -3953,6 +4018,26 @@ typedef struct {
 */
#define HTT_RX_PDEV_STATS_NUM_RU_SIZE_160MHZ_CNTRS 7 /* includes 996x2 */

typedef enum {
    HTT_RX_PDEV_STATS_BE_RU_SIZE_26,
    HTT_RX_PDEV_STATS_BE_RU_SIZE_52,
    HTT_RX_PDEV_STATS_BE_RU_SIZE_52_26,
    HTT_RX_PDEV_STATS_BE_RU_SIZE_106,
    HTT_RX_PDEV_STATS_BE_RU_SIZE_106_26,
    HTT_RX_PDEV_STATS_BE_RU_SIZE_242,
    HTT_RX_PDEV_STATS_BE_RU_SIZE_484,
    HTT_RX_PDEV_STATS_BE_RU_SIZE_484_242,
    HTT_RX_PDEV_STATS_BE_RU_SIZE_996,
    HTT_RX_PDEV_STATS_BE_RU_SIZE_996_484,
    HTT_RX_PDEV_STATS_BE_RU_SIZE_996_484_242,
    HTT_RX_PDEV_STATS_BE_RU_SIZE_996x2,
    HTT_RX_PDEV_STATS_BE_RU_SIZE_996x2_484,
    HTT_RX_PDEV_STATS_BE_RU_SIZE_996x3,
    HTT_RX_PDEV_STATS_BE_RU_SIZE_996x3_484,
    HTT_RX_PDEV_STATS_BE_RU_SIZE_996x4,
    HTT_RX_PDEV_STATS_NUM_BE_RU_SIZE_COUNTERS,
} HTT_RX_PDEV_STATS_BE_RU_SIZE;

#define HTT_RX_PDEV_RATE_STATS_MAC_ID_M 0x000000ff
#define HTT_RX_PDEV_RATE_STATS_MAC_ID_S 0

@@ -4220,6 +4305,68 @@ typedef struct {
    htt_rx_pdev_ul_trigger_stats_tlv ul_trigger_tlv;
} htt_rx_pdev_ul_trigger_stats_t;

typedef struct {
    htt_tlv_hdr_t tlv_hdr;

    /* BIT [ 7 :  0]   :- mac_id
     * BIT [31 :  8]   :- reserved
     */
    A_UINT32 mac_id__word;

    A_UINT32 rx_11be_ul_ofdma;

    A_UINT32 be_ul_ofdma_rx_mcs[HTT_RX_PDEV_STATS_NUM_BE_MCS_COUNTERS];
    A_UINT32 be_ul_ofdma_rx_gi[HTT_RX_PDEV_STATS_NUM_GI_COUNTERS][HTT_RX_PDEV_STATS_NUM_BE_MCS_COUNTERS];
    A_UINT32 be_ul_ofdma_rx_nss[HTT_RX_PDEV_STATS_NUM_SPATIAL_STREAMS];
    A_UINT32 be_ul_ofdma_rx_bw[HTT_RX_PDEV_STATS_NUM_BE_BW_COUNTERS];
    A_UINT32 be_ul_ofdma_rx_stbc;
    A_UINT32 be_ul_ofdma_rx_ldpc;

    /*
     * These are arrays to hold the number of PPDUs that we received per RU.
     * E.g. PPDUs (data or non data) received in RU26 will be incremented in
     * array offset 0 and similarly RU52 will be incremented in array offset 1
     */
    A_UINT32 be_rx_ulofdma_data_ru_size_ppdu[HTT_RX_PDEV_STATS_NUM_BE_RU_SIZE_COUNTERS];      /* ppdu level */
    A_UINT32 be_rx_ulofdma_non_data_ru_size_ppdu[HTT_RX_PDEV_STATS_NUM_BE_RU_SIZE_COUNTERS];  /* ppdu level */

    /*
     * These arrays hold Target RSSI (rx power the AP wants),
     * FD RSSI (rx power the AP sees) & Power headroom values of STAs
     * which can be identified by AIDs, during trigger based RX.
     * Array acts a circular buffer and holds values for last 5 STAs
     * in the same order as RX.
     */
    /* uplink_sta_aid:
     * STA AID array for identifying which STA the
     * Target-RSSI / FD-RSSI / pwr headroom stats are for
     */
    A_UINT32 be_uplink_sta_aid[HTT_RX_UL_MAX_UPLINK_RSSI_TRACK];
    /* uplink_sta_target_rssi:
     * Trig Target RSSI for STA AID in same index - UNIT(dBm)
     */
    A_INT32 be_uplink_sta_target_rssi[HTT_RX_UL_MAX_UPLINK_RSSI_TRACK];
    /* uplink_sta_fd_rssi:
     * Trig FD RSSI from STA AID in same index - UNIT(dBm)
     */
    A_INT32 be_uplink_sta_fd_rssi[HTT_RX_UL_MAX_UPLINK_RSSI_TRACK];
    /* uplink_sta_power_headroom:
     * Trig power headroom for STA AID in same idx - UNIT(dB)
     */
    A_UINT32 be_uplink_sta_power_headroom[HTT_RX_UL_MAX_UPLINK_RSSI_TRACK];
} htt_rx_pdev_be_ul_trigger_stats_tlv;

/* STATS_TYPE : HTT_DBG_EXT_STATS_PDEV_UL_TRIG_STATS
 * TLV_TAGS:
 *      - HTT_STATS_RX_PDEV_BE_UL_TRIG_STATS_TAG
 * NOTE:
 * This structure is for documentation, and cannot be safely used directly.
 * Instead, use the constituent TLV structures to fill/parse.
 */
typedef struct {
    htt_rx_pdev_be_ul_trigger_stats_tlv ul_trigger_tlv;
} htt_rx_pdev_be_ul_trigger_stats_t;

typedef struct {
    htt_tlv_hdr_t tlv_hdr;

+12 −9
Original line number Diff line number Diff line
@@ -1280,14 +1280,17 @@ struct wlan_dbg_tidq_stats {

typedef enum {
    WLAN_DBG_DATA_STALL_NONE                   = 0,
    WLAN_DBG_DATA_STALL_VDEV_PAUSE,         /* 1 */
    WLAN_DBG_DATA_STALL_HWSCHED_CMD_FILTER, /* 2 */
    WLAN_DBG_DATA_STALL_HWSCHED_CMD_FLUSH,  /* 3 */
    WLAN_DBG_DATA_STALL_RX_REFILL_FAILED,   /* 4 */
    WLAN_DBG_DATA_STALL_RX_FCS_LEN_ERROR,   /* 5 */
    WLAN_DBG_DATA_STALL_MAC_WDOG_ERRORS,    /* 6 */ /* Mac watch dog */
    WLAN_DBG_DATA_STALL_PHY_BB_WDOG_ERROR,  /* 7 */ /* PHY watch dog */
    WLAN_DBG_DATA_STALL_POST_TIM_NO_TXRX_ERROR, /* 8 */
    WLAN_DBG_DATA_STALL_VDEV_PAUSE             = 1,
    WLAN_DBG_DATA_STALL_HWSCHED_CMD_FILTER     = 2,
    WLAN_DBG_DATA_STALL_HWSCHED_CMD_FLUSH      = 3,
    WLAN_DBG_DATA_STALL_RX_REFILL_FAILED       = 4,
    WLAN_DBG_DATA_STALL_RX_FCS_LEN_ERROR       = 5,
    WLAN_DBG_DATA_STALL_MAC_WDOG_ERRORS        = 6, /* Mac watch dog */
    WLAN_DBG_DATA_STALL_PHY_BB_WDOG_ERROR      = 7, /* PHY watch dog */
    WLAN_DBG_DATA_STALL_POST_TIM_NO_TXRX_ERROR = 8,
    WLAN_DBG_DATA_STALL_CONSECUTIVE_NON_FLUSH  = 9,
    WLAN_DBG_DATA_STALL_CONSECUTIVE_NOACK      = 10,
    WLAN_DBG_DATA_STALL_CONSECUTIVE_LT_EXPIRY  = 11,
    WLAN_DBG_DATA_STALL_MAX,
} wlan_dbg_data_stall_type_e;

+1 −0
Original line number Diff line number Diff line
@@ -122,6 +122,7 @@ typedef enum {
  WLAN_MODULE_PEER_INIT,                /* 0x58 */ /* peer init connection handling */
  WLAN_MODULE_STA_MLO_PS,               /* 0x59 */ /* MLO PS manager */
  WLAN_MODULE_MLO_SYNC_SEQ_NUM,         /* 0x5a */ /* sync seq num after rm MPDU */
  WLAN_MODULE_PLCMGR,                   /* 0x5b */ /* Policy Manager */


  WLAN_MODULE_ID_MAX,
+2 −0
Original line number Diff line number Diff line
@@ -145,6 +145,8 @@ typedef enum {
    GROUP_USAGE         = 0x01,
    TX_USAGE            = 0x02,     /* default Tx Key - Static WEP only */
    PMK_USAGE           = 0x04,     /* PMK cache */
    PASN_USAGE          = 0x08,     /* is PASN based key */
    LTF_USAGE           = 0x10,     /* is LTF key seed */
} KEY_USAGE;
/*
 * List of Events (target to host)
Loading