Ver Fonte

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

Change-Id: I63f3739f2d4c06ea57de8708c672b862f3241bd6
HTT: add T2H SAWF_MSDUQ_INFO_IND msg def
CRs-Fixed: 2262693
spuligil há 3 anos atrás
pai
commit
ffe49eb83e
1 ficheiros alterados com 144 adições e 1 exclusões
  1. 144 1
      fw/htt.h

+ 144 - 1
fw/htt.h

@@ -226,9 +226,10 @@
  * 3.100 Add htt_tx_wbm_completion_v3 def.
  * 3.101 Add HTT_UL_OFDMA_USER_INFO_V1_BITMAP defs.
  * 3.102 Add HTT_H2T_MSG_TYPE_MSI_SETUP def.
+ * 3.103 Add HTT_T2H_SAWF_MSDUQ_INFO_IND defs.
  */
 #define HTT_CURRENT_VERSION_MAJOR 3
-#define HTT_CURRENT_VERSION_MINOR 102
+#define HTT_CURRENT_VERSION_MINOR 103
 
 #define HTT_NUM_TX_FRAG_DESC  1024
 
@@ -9230,6 +9231,7 @@ enum htt_t2h_msg_type {
     HTT_T2H_MSG_TYPE_PEER_MAP_V3                   = 0x2b,
     HTT_T2H_MSG_TYPE_VDEVS_TXRX_STATS_PERIODIC_IND = 0x2c,
     HTT_T2H_SAWF_DEF_QUEUES_MAP_REPORT_CONF        = 0x2d,
+    HTT_T2H_SAWF_MSDUQ_INFO_IND                    = 0x2e,
 
 
     HTT_T2H_MSG_TYPE_TEST,
@@ -17798,4 +17800,145 @@ PREPACK struct htt_t2h_sawf_def_queues_map_report_conf {
     } while (0)
 
 
+/*
+ * MSG_TYPE => HTT_T2H_SAWF_MSDUQ_INFO_IND
+ *
+ * @details
+ * When SAWF is enabled and a flow is mapped to a policy during the traffic
+ * flow if the flow is seen the associated service class is conveyed to the
+ * target via TCL Data Command. Target on the other hand internally creates the
+ * MSDUQ. Once the target creates the MSDUQ the target sends the information
+ * of the newly created MSDUQ and some other identifiers to uniquely identity
+ * the newly created MSDUQ
+ *
+ * |31    27|          24|23    16|15           11|10|9 8|7     4|3    0|
+ * |------------------------------+----------------------+--------------|
+ * |             peer ID          |       HTT qtype      |   msg type   |
+ * |--------+---------------------+---------------+--+---+-------+------|
+ * |reserved|               Ast Index             |FO|WC | HLOS  | remap|
+ * |        |                                     |  |   | TID   | TID  |
+ * |---------------------+----------------------------------------------|
+ * |    reserved1        |             tgt_opaque_id                    |
+ * |---------------------+----------------------------------------------|
+ *
+ * Header fields:
+ *
+ * dword0 - b'7:0       - msg_type: This will be set to
+ *                        0x2e (HTT_T2H_SAWF_MSDUQ_INFO_IND)
+ *          b'15:8      - HTT qtype
+ *          b'31:16     - peer ID
+ *
+ * dword1 - b'3:0       - remap TID, as assigned in firmware
+ *          b'7:4       - HLOS TID, as sent by host in TCL Data Command
+ *                        hlos_tid : Common to Lithium and Beryllium
+ *          b'9:8       - who_classify_info_sel (WC), as sent by host in
+ *                        TCL Data Command : Beryllium
+ *          b10         - flow_override (FO), as sent by host in
+ *                        TCL Data Command: Beryllium
+ *          b11:26      - ast_index
+ *                        Dummy AST Index in case of Lithium,
+ *                        Default AST Index in case of Beryllium
+ *          b27:32      - reserved
+ *
+ * dword2 - b'23:0      - tgt_opaque_id Opaque Tx flow number which is a
+ *                        unique MSDUQ id in firmware
+ *          b'24:31     - reserved1
+ */
+PREPACK struct htt_t2h_sawf_msduq_event {
+    A_UINT32 msg_type                : 8,
+             htt_qtype               : 8,
+             peer_id                 :16;
+
+    A_UINT32 remap_tid               : 4,
+             hlos_tid                : 4,
+             who_classify_info_sel   : 2,
+             flow_override           : 1,
+             ast_index               :16,
+             reserved                : 5;
+
+    A_UINT32 tgt_opaque_id           :24,
+             reserved1               : 8;
+} POSTPACK;
+
+#define HTT_SAWF_MSDUQ_INFO_SIZE (sizeof(struct htt_t2h_sawf_msduq_event))
+
+#define HTT_T2H_SAWF_MSDUQ_INFO_HTT_QTYPE_M                 0x0000FF00
+#define HTT_T2H_SAWF_MSDUQ_INFO_HTT_QTYPE_S                          8
+
+#define HTT_T2H_SAWF_MSDUQ_INFO_HTT_QTYPE_GET(_var) \
+    (((_var) & HTT_T2H_SAWF_MSDUQ_INFO_HTT_QTYPE_M) >> \
+     HTT_T2H_SAWF_MSDUQ_INFO_HTT_QTYPE_S)
+#define HTT_T2H_SAWF_MSDUQ_INFO_HTT_QTYPE_SET(_var, _val) \
+    do { \
+        HTT_CHECK_SET_VAL(HTT_T2H_SAWF_MSDUQ_INFO_HTT_QTYPE, _val); \
+        ((_var) |= ((_val) << HTT_T2H_SAWF_MSDUQ_INFO_HTT_QTYPE_S));\
+    } while (0)
+
+#define HTT_T2H_SAWF_MSDUQ_INFO_HTT_PEER_ID_M                0xFFFF0000
+#define HTT_T2H_SAWF_MSDUQ_INFO_HTT_PEER_ID_S                        16
+#define HTT_T2H_SAWF_MSDUQ_INFO_HTT_PEER_ID_GET(_var) \
+    (((_var) & HTT_T2H_SAWF_MSDUQ_INFO_HTT_PEER_ID_M) >> \
+     HTT_T2H_SAWF_MSDUQ_INFO_HTT_PEER_ID_S)
+#define HTT_T2H_SAWF_MSDUQ_INFO_HTT_PEER_ID_SET(_var, _val) \
+    do { \
+        HTT_CHECK_SET_VAL(HTT_T2H_SAWF_MSDUQ_INFO_HTT_PEER_ID, _val); \
+        ((_var) |= ((_val) << HTT_T2H_SAWF_MSDUQ_INFO_HTT_PEER_ID_S)); \
+    } while (0)
+
+#define HTT_T2H_SAWF_MSDUQ_INFO_HTT_REMAP_TID_M              0x0000000F
+#define HTT_T2H_SAWF_MSDUQ_INFO_HTT_REMAP_TID_S                       0
+#define HTT_T2H_SAWF_MSDUQ_INFO_HTT_REMAP_TID_GET(_var) \
+    (((_var) & HTT_T2H_SAWF_MSDUQ_INFO_HTT_REMAP_TID_M) >> \
+     HTT_T2H_SAWF_MSDUQ_INFO_HTT_REMAP_TID_S)
+#define HTT_T2H_SAWF_MSDUQ_INFO_HTT_REMAP_TID_SET(_var, _val) \
+    do { \
+        HTT_CHECK_SET_VAL(HTT_T2H_SAWF_MSDUQ_INFO_HTT_REMAP_TID, _val); \
+        ((_var) |= ((_val) << HTT_T2H_SAWF_MSDUQ_INFO_HTT_REMAP_TID_S)); \
+    } while (0)
+
+#define HTT_T2H_SAWF_MSDUQ_INFO_HTT_HLOS_TID_M              0x000000F0
+#define HTT_T2H_SAWF_MSDUQ_INFO_HTT_HLOS_TID_S                       4
+#define HTT_T2H_SAWF_MSDUQ_INFO_HTT_HLOS_TID_GET(_var) \
+    (((_var) & HTT_T2H_SAWF_MSDUQ_INFO_HTT_HLOS_TID_M) >> \
+     HTT_T2H_SAWF_MSDUQ_INFO_HTT_HLOS_TID_S)
+#define HTT_T2H_SAWF_MSDUQ_INFO_HTT_HLOS_TID_SET(_var, _val) \
+    do { \
+        HTT_CHECK_SET_VAL(HTT_T2H_SAWF_MSDUQ_INFO_HTT_HLOS_TID, _val); \
+        ((_var) |= ((_val) << HTT_T2H_SAWF_MSDUQ_INFO_HTT_HLOS_TID_S)); \
+    } while (0)
+
+#define HTT_T2H_SAWF_MSDUQ_INFO_HTT_WHO_CLASS_INFO_SEL_M    0x00000300
+#define HTT_T2H_SAWF_MSDUQ_INFO_HTT_WHO_CLASS_INFO_SEL_S             8
+#define HTT_T2H_SAWF_MSDUQ_INFO_HTT_WHO_CLASS_INFO_SEL_GET(_var) \
+    (((_var) & HTT_T2H_SAWF_MSDUQ_INFO_HTT_WHO_CLASS_INFO_SEL_M) >> \
+     HTT_T2H_SAWF_MSDUQ_INFO_HTT_WHO_CLASS_INFO_SEL_S)
+#define HTT_T2H_SAWF_MSDUQ_INFO_HTT_WHO_CLASS_INFO_SEL_SET(_var, _val) \
+    do { \
+        HTT_CHECK_SET_VAL(HTT_T2H_SAWF_MSDUQ_INFO_HTT_WHO_CLASS_INFO_SEL, _val); \
+        ((_var) |= ((_val) << HTT_T2H_SAWF_MSDUQ_INFO_HTT_WHO_CLASS_INFO_SEL_S)); \
+    } while (0)
+
+#define HTT_T2H_SAWF_MSDUQ_INFO_HTT_FLOW_OVERRIDE_M              0x00000400
+#define HTT_T2H_SAWF_MSDUQ_INFO_HTT_FLOW_OVERRIDE_S                      10
+#define HTT_T2H_SAWF_MSDUQ_INFO_HTT_FLOW_OVERRIDE_GET(_var) \
+    (((_var) & HTT_T2H_SAWF_MSDUQ_INFO_HTT_FLOW_OVERRIDE_M) >> \
+     HTT_T2H_SAWF_MSDUQ_INFO_HTT_FLOW_OVERRIDE_S)
+#define HTT_T2H_SAWF_MSDUQ_INFO_HTT_FLOW_OVERRIDE_SET(_var, _val) \
+    do { \
+        HTT_CHECK_SET_VAL(HTT_T2H_SAWF_MSDUQ_INFO_HTT_FLOW_OVERRIDE, _val); \
+        ((_var) |= ((_val) << HTT_T2H_SAWF_MSDUQ_INFO_HTT_FLOW_OVERRIDE_S)); \
+    } while (0)
+
+#define HTT_T2H_SAWF_MSDUQ_INFO_HTT_AST_INDEX_M              0x07FFF800
+#define HTT_T2H_SAWF_MSDUQ_INFO_HTT_AST_INDEX_S                      11
+#define HTT_T2H_SAWF_MSDUQ_INFO_HTT_AST_INDEX_GET(_var) \
+    (((_var) & HTT_T2H_SAWF_MSDUQ_INFO_HTT_AST_INDEX_M) >> \
+     HTT_T2H_SAWF_MSDUQ_INFO_HTT_AST_INDEX_S)
+#define HTT_T2H_SAWF_MSDUQ_INFO_HTT_AST_INDEX_SET(_var, _val) \
+    do { \
+        HTT_CHECK_SET_VAL(HTT_T2H_SAWF_MSDUQ_INFO_HTT_AST_INDEX, _val); \
+        ((_var) |= ((_val) << HTT_T2H_SAWF_MSDUQ_INFO_HTT_AST_INDEX_S)); \
+    } while (0)
+
+
 #endif