Эх сурвалжийг харах

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

Change-Id: Ic5c2fd141717c51cec0740cbeecbee1e0765e326
WMI: add PEER_TID_TO_LINK_MAP_CMD msg def
CRs-Fixed: 2262693
spuligil 3 жил өмнө
parent
commit
1851893b25
3 өөрчлөгдсөн 100 нэмэгдсэн , 2 устгасан
  1. 12 1
      fw/wmi_tlv_defs.h
  2. 87 0
      fw/wmi_unified.h
  3. 1 1
      fw/wmi_version.h

+ 12 - 1
fw/wmi_tlv_defs.h

@@ -1265,6 +1265,9 @@ typedef enum {
     WMITLV_TAG_STRUC_wmi_pdev_telemetry_stats,
     WMITLV_TAG_STRUC_wmi_mgmt_ml_info,
     WMITLV_TAG_STRUC_wmi_vdev_latency_event_fixed_param,
+    WMITLV_TAG_STRUC_wmi_tid_to_link_map,
+    WMITLV_TAG_STRUC_wmi_peer_tid_to_link_map_fixed_param,
+    WMITLV_TAG_STRUC_wmi_peer_assoc_tid_to_link_map,
 } WMITLV_TAG_ID;
 
 /*
@@ -1758,6 +1761,7 @@ typedef enum {
     OP(WMI_SET_MULTIPLE_PDEV_VDEV_PARAM_CMDID) \
     OP(WMI_PMM_SCRATCH_REG_ALLOCATION_CMDID) \
     OP(WMI_PEER_TX_FILTER_CMDID) \
+    OP(WMI_MLO_PEER_TID_TO_LINK_MAP_CMDID) \
     /* add new CMD_LIST elements above this line */
 
 
@@ -2530,7 +2534,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_IPSEC_NATKEEPALIVE_FILTER_CMDID);
     WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_he_rate_set, peer_he_rates, WMITLV_SIZE_VAR) \
     WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_assoc_mlo_params, mlo_params, WMITLV_SIZE_VAR) \
     WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_eht_rate_set, peer_eht_rates, WMITLV_SIZE_VAR) \
-    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_assoc_mlo_partner_link_params, partner_link_params, WMITLV_SIZE_VAR)
+    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_assoc_mlo_partner_link_params, partner_link_params, WMITLV_SIZE_VAR) \
+    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_assoc_tid_to_link_map, peer_tid_to_link_map, WMITLV_SIZE_VAR)
 
 WMITLV_CREATE_PARAM_STRUC(WMI_PEER_ASSOC_CMDID);
 
@@ -4904,6 +4909,12 @@ WMITLV_CREATE_PARAM_STRUC(WMI_MLO_READY_CMDID);
     WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mlo_teardown_fixed_param, wmi_mlo_teardown_fixed_param, fixed_param, WMITLV_SIZE_FIX)
 WMITLV_CREATE_PARAM_STRUC(WMI_MLO_TEARDOWN_CMDID);
 
+/** WMI cmd used to setup Tid to Link Mapping for a MLO Peer */
+#define WMITLV_TABLE_WMI_MLO_PEER_TID_TO_LINK_MAP_CMDID(id,op,buf,len) \
+    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_tid_to_link_map_fixed_param, wmi_peer_tid_to_link_map_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
+    WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_tid_to_link_map, tid_to_link_map, WMITLV_SIZE_VAR)
+WMITLV_CREATE_PARAM_STRUC(WMI_MLO_PEER_TID_TO_LINK_MAP_CMDID);
+
 /* Mcast ipv4 address filter list cmd */
 #define WMITLV_TABLE_WMI_VDEV_IGMP_OFFLOAD_CMDID(id,op,buf,len) \
     WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_igmp_offload_fixed_param, wmi_igmp_offload_fixed_param, fixed_param, WMITLV_SIZE_FIX) \

+ 87 - 0
fw/wmi_unified.h

@@ -1460,6 +1460,8 @@ typedef enum {
     WMI_MLO_READY_CMDID,
     /** WMI cmd used for tearing down a hw_link part of MLO */
     WMI_MLO_TEARDOWN_CMDID,
+    /** WMI cmd used to setup Tid to Link Mapping for a MLO Peer */
+    WMI_MLO_PEER_TID_TO_LINK_MAP_CMDID,
 
     /** WMI commands specific to Service Aware WiFi (SAWF) */
     /** configure or reconfigure the parameters for a service class */
@@ -16222,6 +16224,31 @@ typedef struct {
     A_UINT32 emlsr_trans_timeout_us;
 } wmi_peer_assoc_mlo_params;
 
+typedef struct {
+    /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_assoc_tid_to_link_map */
+    A_UINT32 tlv_header;
+
+    /**
+     * A_UINT32
+     *     WMI_TID_TO_LINK_MAP_TID_NUM_GET / WMI_TID_TO_LINK_MAP_TID_NUM_SET
+     *     tid_num:5,
+     *
+     *     WMI_TID_TO_LINK_MAP_DIR_GET / WMI_TID_TO_LINK_MAP_DIR_SET
+     *     dir:2,                 // 0 - DL, 1 - UL, 2 - BiDi
+     *
+     *     WMI_TID_TO_LINK_MAP_DEFAULT_MAPPING_GET /
+     *         WMI_TID_TO_LINK_MAP_DEFAULT_MAPPING_SET
+     *     default_link_mapping:1, // If this is set to 1, ignore
+     *                             // link_mapping_mask for the specific tid
+     *
+     *     WMI_TID_TO_LINK_MAP_LINK_MASK_GET / WMI_TID_TO_LINK_MAP_LINK_MASK_SET
+     *     link_mapping_mask:16,
+     *
+     *     rsvd:8;
+     */
+    A_UINT32 tid_to_link_map_info;
+} wmi_peer_assoc_tid_to_link_map;
+
 typedef struct {
     A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_assoc_complete_cmd_fixed_param */
     /** peer MAC address */
@@ -16363,6 +16390,7 @@ typedef struct {
  *         For non-MLO peers the array length should be 0.
  *     wmi_eht_rate_set_peer_eht_rates; <-- EHT capabilities of the peer
  *     wmi_peer_assoc_mlo_partner_link_params link_info[] <-- partner link info
+ *     wmi_peer_assoc_tid_to_link_map[] <-- tid to link_map info
  */
 } wmi_peer_assoc_complete_cmd_fixed_param;
 
@@ -31318,6 +31346,7 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command)
         WMI_RETURN_STRING(WMI_PEER_RX_PN_REQUEST_CMDID);
         WMI_RETURN_STRING(WMI_SET_MULTIPLE_PDEV_VDEV_PARAM_CMDID);
         WMI_RETURN_STRING(WMI_PMM_SCRATCH_REG_ALLOCATION_CMDID);
+        WMI_RETURN_STRING(WMI_MLO_PEER_TID_TO_LINK_MAP_CMDID);
     }
 
     return (A_UINT8 *) "Invalid WMI cmd";
@@ -37965,6 +37994,64 @@ typedef struct {
     A_UINT32 status;
 } wmi_mlo_teardown_complete_fixed_param;
 
+#define WMI_TID_TO_LINK_MAP_TID_NUM_GET(_var)               WMI_GET_BITS(_var, 0, 5)
+#define WMI_TID_TO_LINK_MAP_TID_NUM_SET(_var, _val)         WMI_SET_BITS(_var, 0, 5, _val)
+
+#define WMI_TID_TO_LINK_MAP_DIR_GET(_var)                   WMI_GET_BITS(_var, 5, 2)
+#define WMI_TID_TO_LINK_MAP_DIR_SET(_var, _val)             WMI_SET_BITS(_var, 5, 2, _val)
+
+#define WMI_TID_TO_LINK_MAP_DEFAULT_MAPPING_GET(_var)       WMI_GET_BITS(_var, 7, 1)
+#define WMI_TID_TO_LINK_MAP_DEFAULT_MAPPING_SET(_var, _val) WMI_SET_BITS(_var, 7, 1, _val)
+
+#define WMI_TID_TO_LINK_MAP_LINK_MASK_GET(_var)             WMI_GET_BITS(_var, 8, 16)
+#define WMI_TID_TO_LINK_MAP_LINK_MASK_SET(_var, _val)       WMI_SET_BITS(_var, 8, 16, _val)
+
+enum {
+    WMI_TID_TO_LINK_MAP_DIR_DL,
+    WMI_TID_TO_LINK_MAP_DIR_UL,
+    WMI_TID_TO_LINK_MAP_DIR_BIDI,
+};
+
+typedef struct {
+    /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_tid_to_link_map */
+    A_UINT32 tlv_header;
+
+    /**
+     * A_UINT32
+     *     WMI_TID_TO_LINK_MAP_TID_NUM_GET / WMI_TID_TO_LINK_MAP_TID_NUM_SET
+     *     tid_num:5,
+     *
+     *     WMI_TID_TO_LINK_MAP_DIR_GET / WMI_TID_TO_LINK_MAP_DIR_SET
+     *     dir:2,                 // 0 - DL, 1 - UL, 2 - BiDi
+     *
+     *     WMI_TID_TO_LINK_MAP_DEFAULT_MAPPING_GET /
+     *         WMI_TID_TO_LINK_MAP_DEFAULT_MAPPING_SET
+     *     default_link_mapping:1, // If this is set to 1, ignore
+     *                             // link_mapping_mask for the specific tid
+     *
+     *     WMI_TID_TO_LINK_MAP_LINK_MASK_GET / WMI_TID_TO_LINK_MAP_LINK_MASK_SET
+     *     link_mapping_mask:16,
+     *
+     *     rsvd:8;
+     */
+    A_UINT32 tid_to_link_map_info;
+} wmi_tid_to_link_map;
+
+typedef struct {
+    /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_tid_to_link_map_fixed_param */
+    A_UINT32 tlv_header;
+    /** pdev_id for identifying the MAC, See macros starting with WMI_PDEV_ID_ for values. */
+    A_UINT32 pdev_id;
+
+    /** MLO Peer's current link MAC address */
+    wmi_mac_addr link_macaddr;
+
+    /**
+     * Following this structure is the TLV:
+     * struct wmi_tid_to_link_map tid_to_link_map[];
+     */
+} wmi_peer_tid_to_link_map_fixed_param;
+
 #define WMI_IGMP_OFFLOAD_SUPPORT_DISABLE_BITMASK    0x0
 #define WMI_IGMP_V1_OFFLOAD_SUPPORT_BITMASK         0x1
 #define WMI_IGMP_V2_OFFLOAD_SUPPORT_BITMASK         0x2

+ 1 - 1
fw/wmi_version.h

@@ -37,7 +37,7 @@
 #define __WMI_VER_MINOR_    0
 /** WMI revision number has to be incremented when there is a
  *  change that may or may not break compatibility. */
-#define __WMI_REVISION_ 1145
+#define __WMI_REVISION_ 1146
 
 /** The Version Namespace should not be normally changed. Only
  *  host and firmware of the same WMI namespace will work