Browse Source

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

HTT stats: add fields for several debug/error counters

Change-Id: Iee76739038903d03ccb05577c2022aa77f3be002
CRs-Fixed: 2262693
spuligil 6 years ago
parent
commit
b9f47e28f9
1 changed files with 74 additions and 0 deletions
  1. 74 0
      fw/htt_stats.h

+ 74 - 0
fw/htt_stats.h

@@ -361,6 +361,7 @@ typedef enum {
     HTT_STATS_SCHED_TXQ_SCHED_ORDER_SU_TAG         = 86, /* htt_sched_txq_sched_order_su_tlv */
     HTT_STATS_SCHED_TXQ_SCHED_INELIGIBILITY_TAG    = 87, /* htt_sched_txq_sched_eligibility_tlv */
     HTT_STATS_PDEV_OBSS_PD_TAG                     = 88, /* htt_pdev_obss_pd_stats_tlv */
+    HTT_STATS_HW_WAR_TAG                           = 89, /* htt_hw_war_stats_tlv */
 
     HTT_STATS_MAX_TAG,
 } htt_tlv_tag_t;
@@ -572,6 +573,26 @@ typedef struct {
     A_UINT32 tx_active_dur_us_high;
     /* Number of MPDUs dropped after max retries */
     A_UINT32 remove_mpdus_max_retries;
+    /* Num HTT cookies dispatched */
+    A_UINT32 comp_delivered;
+    /* successful ppdu transmissions */
+    A_UINT32 ppdu_ok;
+    /* Scheduler self triggers */
+    A_UINT32 self_triggers;
+    /* FES duration of last tx data PPDU in us (sch_eval_end - ppdu_start) */
+    A_UINT32 tx_time_dur_data;
+    /* Num of times sequence terminated due to ppdu duration < burst limit */
+    A_UINT32 seq_qdepth_repost_stop;
+    /* Num of times MU sequence terminated due to MSDUs reaching threshold */
+    A_UINT32 mu_seq_min_msdu_repost_stop;
+    /* Num of times SU sequence terminated due to MSDUs reaching threshold */
+    A_UINT32 seq_min_msdu_repost_stop;
+    /* Num of times sequence terminated due to no TXOP available */
+    A_UINT32 seq_txop_repost_stop;
+    /* Num of times the next sequence got cancelled */
+    A_UINT32 next_seq_cancel;
+    /* Num of times fes offset was misaligned */
+    A_UINT32 fes_offsets_err_cnt;
 } htt_tx_pdev_stats_cmn_tlv;
 
 #define HTT_TX_PDEV_STATS_URRN_TLV_SZ(_num_elems) (sizeof(A_UINT32) * (_num_elems))
@@ -750,12 +771,37 @@ typedef struct {
     A_UINT32 sch_rx_sifs_resp_trigger;
 } htt_hw_stats_whal_tx_tlv;
 
+typedef struct {
+    htt_tlv_hdr_t tlv_hdr;
+    /* BIT [ 7 :  0]   :- mac_id
+     * BIT [31 :  8]   :- reserved
+     */
+    union {
+        struct {
+            A_UINT32 mac_id:    8,
+                     reserved: 24;
+        };
+        A_UINT32 mac_id__word;
+    };
+
+    /*
+     * hw_wars is a variable-length array, with each element counting
+     * the number of occurrences of the corresponding type of HW WAR.
+     * That is, hw_wars[0] indicates how many times HW WAR 0 occurred,
+     * hw_wars[1] indicates how many times HW WAR 1 occurred, etc.
+     * The target has an internal HW WAR mapping that it uses to keep
+     * track of which HW WAR is WAR 0, which HW WAR is WAR 1, etc.
+     */
+    A_UINT32 hw_wars[1/*or more*/];
+} htt_hw_war_stats_tlv;
+
 /* STATS_TYPE: HTT_DBG_EXT_STATS_PDEV_ERROR
  * TLV_TAGS:
  *     - HTT_STATS_HW_PDEV_ERRS_TAG
  *     - HTT_STATS_HW_INTR_MISC_TAG (multiple)
  *     - HTT_STATS_HW_WD_TIMEOUT_TAG (multiple)
  *     - HTT_STATS_WHAL_TX_TAG
+ *     - HTT_STATS_HW_WAR_TAG
  */
 /* NOTE:
  * This structure is for documentation, and cannot be safely used directly.
@@ -766,6 +812,7 @@ typedef struct _htt_pdev_err_stats {
     htt_hw_stats_intr_misc_tlv  misc_stats[1];
     htt_hw_stats_wd_timeout_tlv wd_timeout[1];
     htt_hw_stats_whal_tx_tlv    whal_tx_stats;
+    htt_hw_war_stats_tlv        hw_war;
 } htt_hw_err_stats_t;
 
 /* ============ PEER STATS ============ */
@@ -1850,6 +1897,16 @@ typedef struct {
     A_UINT32 notify_sched;
     /* Duration based sendn termination */
     A_UINT32 dur_based_sendn_term;
+    /* scheduled via NOTIFY2 */
+    A_UINT32 su_notify2_sched;
+    /* schedule if queued packets are greater than avg MSDUs in PPDU */
+    A_UINT32 su_optimal_queued_msdus_sched;
+    /* schedule due to timeout */
+    A_UINT32 su_delay_timeout_sched;
+    /* delay if txtime is less than 500us */
+    A_UINT32 su_min_txtime_sched_delay;
+    /* scheduled via no delay */
+    A_UINT32 su_no_delay;
 } htt_tx_pdev_stats_sched_per_txq_tlv;
 
 #define HTT_STATS_TX_SCHED_CMN_MAC_ID_M 0x000000ff
@@ -2006,6 +2063,8 @@ typedef struct {
     A_UINT32 q_not_empty;
     A_UINT32 drop_notification;
     A_UINT32 desc_threshold;
+    A_UINT32 hwsch_tqm_invalid_status;
+    A_UINT32 missed_tqm_gen_mpdus;
 } htt_tx_tqm_cmn_stats_tlv;
 
 typedef struct {
@@ -2113,6 +2172,11 @@ typedef struct {
     A_UINT32      m4_packets;
     A_UINT32      g1_packets;
     A_UINT32      g2_packets;
+    A_UINT32      rc4_packets;
+    A_UINT32      eap_packets;
+    A_UINT32      eapol_start_packets;
+    A_UINT32      eapol_logoff_packets;
+    A_UINT32      eapol_encap_asf_packets;
 } htt_tx_de_eapol_packets_stats_tlv;
 
 typedef struct {
@@ -2130,6 +2194,12 @@ typedef struct {
     A_UINT32      fse_tid_override;
     A_UINT32      ipv6_jumbogram_zero_length;
     A_UINT32      qos_to_non_qos_in_prog;
+    A_UINT32      ap_bcast_mcast_eapol;
+    A_UINT32      unicast_on_ap_bss_peer;
+    A_UINT32      ap_vdev_invalid;
+    A_UINT32      incomplete_llc;
+    A_UINT32      eapol_duplicate_m3;
+    A_UINT32      eapol_duplicate_m4;
 } htt_tx_de_classify_failed_stats_tlv;
 
 typedef struct {
@@ -2253,6 +2323,9 @@ typedef struct {
     A_UINT32 tcl_res_invalid_addrx;
     A_UINT32 wbm2fw_entry_count;
     A_UINT32 invalid_pdev;
+    A_UINT32 tcl_res_addrx_timeout;
+    A_UINT32 invalid_vdev;
+    A_UINT32 invalid_tcl_exp_frame_desc;
 } htt_tx_de_cmn_stats_tlv;
 
 /* STATS_TYPE : HTT_DBG_EXT_STATS_TX_DE_INFO
@@ -2877,6 +2950,7 @@ typedef struct {
     A_UINT32 ax_mu_mimo_tx_gi[HTT_TX_PDEV_STATS_NUM_GI_COUNTERS][HTT_TX_PDEV_STATS_NUM_MCS_COUNTERS];
     A_UINT32 ofdma_tx_gi[HTT_TX_PDEV_STATS_NUM_GI_COUNTERS][HTT_TX_PDEV_STATS_NUM_MCS_COUNTERS];
     A_UINT32 trigger_type_11ax[HTT_TX_PDEV_STATS_NUM_11AX_TRIGGER_TYPES];
+    A_UINT32 tx_11ax_su_ext;
 } htt_tx_pdev_rate_stats_tlv;
 
 /* STATS_TYPE : HTT_DBG_EXT_STATS_PDEV_TX_RATE