Browse Source

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

HTT PPDU stats: add backoff_ac,num_ul_user_responses, user msduq_bitmap fields

Change-Id: I0692d66d755e767bcb330e47f124bbd0b48199dd
CRs-Fixed: 2262693
spuligil 2 years ago
parent
commit
bd72d312d2
1 changed files with 101 additions and 17 deletions
  1. 101 17
      fw/htt_ppdu_stats.h

+ 101 - 17
fw/htt_ppdu_stats.h

@@ -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,19 +812,36 @@ 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;
         struct {
-            A_UINT32 bss_color_id:       6,
-                     non_srg_tx:         1,
-                     srg_tx:             1,
-                     aborted_obss_rssi:  8,
-                     psr_tx:             1,
-                     reserved2:         15;
+            A_UINT32 bss_color_id:                6,
+                     non_srg_tx:                  1,
+                     srg_tx:                      1,
+                     aborted_obss_rssi:           8,
+                     psr_tx:                      1,
+                     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.
-     * 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.
+     * 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.
+     * 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