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

WMI: add peer_info_v2, group_info_v2 in ATF msgs, add MAX_CLIENT_512 svc flag
Also, combine WMI: add dynamic_force_link_num MLO control flag change.

Change-Id: I150e8541b07f3d3ef6de072732be1a3db7152491
CRs-Fixed: 2262693
This commit is contained in:
spuligil
2023-06-13 12:01:09 -07:00
父節點 9e139737f2
當前提交 843d007317
共有 4 個文件被更改,包括 180 次插入15 次删除

查看文件

@@ -632,6 +632,7 @@ typedef enum {
WMI_SERVICE_MLO_TID_TO_LINK_MAPPING_SUPPORT = 379, /* Indicates FW supports TID-TO-LINK mapping */
WMI_SERVICE_PER_LINK_STATS_SUPPORT = 380, /* Indicates FW supports per link stats for MLO */
WMI_SERVICE_N_LINK_MLO_SUPPORT = 381, /* Indicate FW supports N MLO link & vdev re-purpose between links */
WMI_SERVICE_ATF_MAX_CLIENT_512_SUPPORT = 382, /* Indicates FW supports maximum of 512 clients when ATF is enabled */
WMI_MAX_EXT2_SERVICE

查看文件

@@ -1385,6 +1385,8 @@ typedef enum {
WMITLV_TAG_STRUC_wmi_mlo_new_primary_link_peer_info,
WMITLV_TAG_STRUC_wmi_mlo_primary_link_peer_migration_compl_fixed_param,
WMITLV_TAG_STRUC_wmi_mlo_primary_link_peer_migration_status,
WMITLV_TAG_STRUC_wmi_atf_group_info_v2,
WMITLV_TAG_STRUC_wmi_atf_peer_info_v2,
} WMITLV_TAG_ID;
/*
* IMPORTANT: Please add _ALL_ WMI Commands Here.
@@ -4484,7 +4486,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_FWTEST_CMDID);
/* ATF PEER REQUEST commands. */
#define WMITLV_TABLE_WMI_PEER_ATF_REQUEST_CMDID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_atf_request_fixed_param, wmi_peer_atf_request_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_atf_peer_info, peer_info, WMITLV_SIZE_VAR)
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_atf_peer_info, peer_info, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_atf_peer_info_v2, peer_info_v2, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_PEER_ATF_REQUEST_CMDID);
#define WMITLV_TABLE_WMI_VDEV_TID_LATENCY_CONFIG_CMDID(id,op,buf,len) \
@@ -4500,7 +4503,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PEER_TID_LATENCY_CONFIG_CMDID);
/* ATF Group Request commands */
#define WMITLV_TABLE_WMI_ATF_SSID_GROUPING_REQUEST_CMDID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_atf_ssid_grp_request_fixed_param, wmi_atf_ssid_grp_request_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_atf_group_info, group_info, WMITLV_SIZE_VAR)
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_atf_group_info, group_info, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_atf_group_info_v2, group_info_v2, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_ATF_SSID_GROUPING_REQUEST_CMDID);
/* ATF Group WMM Request commands */

查看文件

@@ -32770,12 +32770,100 @@ typedef struct {
A_UINT32 pdev_id;
} wmi_atf_peer_info;
#define WMI_ATF_PEER_UNITS_BIT_POS 0
#define WMI_ATF_PEER_UNITS_NUM_BITS 16
#define WMI_ATF_GET_PEER_UNITS(atf_peer_info) \
WMI_GET_BITS(atf_peer_info,WMI_ATF_PEER_UNITS_BIT_POS,WMI_ATF_PEER_UNITS_NUM_BITS)
#define WMI_ATF_SET_PEER_UNITS(atf_peer_info,val) \
WMI_SET_BITS(atf_peer_info,WMI_ATF_PEER_UNITS_BIT_POS,WMI_ATF_PEER_UNITS_NUM_BITS, val)
#define WMI_ATF_GROUP_ID_BIT_POS 16
#define WMI_ATF_GROUP_ID_NUM_BITS 8
#define WMI_ATF_GET_GROUP_ID(atf_peer_info) \
WMI_GET_BITS(atf_peer_info,WMI_ATF_GROUP_ID_BIT_POS,WMI_ATF_GROUP_ID_NUM_BITS)
#define WMI_ATF_SET_GROUP_ID(atf_peer_info,val) \
WMI_SET_BITS(atf_peer_info,WMI_ATF_GROUP_ID_BIT_POS,WMI_ATF_GROUP_ID_NUM_BITS, val)
#define WMI_ATF_EXPLICIT_PEER_FLAG_BIT_POS 24
#define WMI_ATF_EXPLICIT_PEER_FLAG_NUM_BITS 1
#define WMI_ATF_GET_EXPLICIT_PEER_FLAG(atf_peer_info) \
WMI_GET_BITS(atf_peer_info,WMI_ATF_EXPLICIT_PEER_FLAG_BIT_POS,WMI_ATF_EXPLICIT_PEER_FLAG_NUM_BITS)
#define WMI_ATF_SET_EXPLICIT_PEER_FLAG(atf_peer_info,val) \
WMI_SET_BITS(atf_peer_info,WMI_ATF_EXPLICIT_PEER_FLAG_BIT_POS,WMI_ATF_EXPLICIT_PEER_FLAG_NUM_BITS, val)
typedef struct {
/* The new structure is an optimized version of wmi_atf_peer_info & wmi_atf_peer_ext_info combined */
A_UINT32 tlv_header;
wmi_mac_addr peer_macaddr;
/* atf_peer_info
* Bits 0-15 - atf_units (based on 1 part in 1000 (per mille))
* Bits 16-23 - atf_groupid
* Bit 24 - Configured Peer Indication (0/1), this bit would be set by
* host to indicate that the peer has airtime % configured
* explicitly by user
* Bits 25-31 - Reserved (Shall be zero)
*/
A_UINT32 atf_peer_info;
} wmi_atf_peer_info_v2;
#define WMI_ATF_PEER_FULL_UPDATE_BIT_POS 0
#define WMI_ATF_PEER_FULL_UPDATE_NUM_BITS 1
#define WMI_ATF_GET_PEER_FULL_UPDATE(atf_flags) \
WMI_GET_BITS(atf_flags,WMI_ATF_PEER_FULL_UPDATE_BIT_POS,WMI_ATF_PEER_FULL_UPDATE_NUM_BITS)
#define WMI_ATF_SET_PEER_FULL_UPDATE(atf_flags,val) \
WMI_SET_BITS(atf_flags,WMI_ATF_PEER_FULL_UPDATE_BIT_POS,WMI_ATF_PEER_FULL_UPDATE_NUM_BITS,val)
#define WMI_ATF_PEER_PENDING_WMI_CMDS_BIT_POS 1
#define WMI_ATF_PEER_PENDING_WMI_CMDS_NUM_BITS 1
#define WMI_ATF_GET_PEER_PENDING_WMI_CMDS(atf_flags) \
WMI_GET_BITS(atf_flags,WMI_ATF_PEER_PENDING_WMI_CMDS_BIT_POS, WMI_ATF_PEER_PENDING_WMI_CMDS_NUM_BITS)
#define WMI_ATF_SET_PEER_PENDING_WMI_CMDS(atf_flags,val) \
WMI_SET_BITS(atf_flags,WMI_ATF_PEER_PENDING_WMI_CMDS_BIT_POS, WMI_ATF_PEER_PENDING_WMI_CMDS_NUM_BITS, val)
#define WMI_ATF_PEER_PDEV_ID_VALID_BIT_POS 2
#define WMI_ATF_PEER_PDEV_ID_VALID_NUM_BITS 1
#define WMI_ATF_GET_PEER_PDEV_ID_VALID(atf_flags) \
WMI_GET_BITS(atf_flags,WMI_ATF_PEER_PDEV_ID_VALID_BIT_POS, WMI_ATF_PEER_PDEV_ID_VALID_NUM_BITS)
#define WMI_ATF_SET_PEER_PDEV_ID_VALID(atf_flags,val) \
WMI_SET_BITS(atf_flags,WMI_ATF_PEER_PDEV_ID_VALID_BIT_POS, WMI_ATF_PEER_PDEV_ID_VALID_NUM_BITS, val)
typedef struct {
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_atf_request_fixed_param */
A_UINT32 num_peers;
A_UINT32 pdev_id;
/* atf_flags
* Bit 0 - full or partial update;
* full update -
* indicates that this is done for all the connected peers
* partial update -
* indicates update for only the newly connected peers
* (whenever some peers gets connected/disconnected)
* Bit 1 - indicates whether there are more iterations of WMI command
* incoming after the current set of cmds
* Example : If there are 500 peers present and tlv can accomodate
* only 50 peers at a time, then this will be set for all the
* instances of the WMI commands except the last one.
* Bit 2 - indicates if pdev_id is valid or not
* Bits 3-31 - Reserved (Shall be zero)
*/
A_UINT32 atf_flags;
/*
* Following this structure is the TLV:
* struct wmi_atf_peer_info peer_info[num_peers];
* Following this structure is one of the following TLVs
* (only one of them will have valid data in a particular message)
* - struct wmi_atf_peer_info peer_info[num_peers];
* - struct wmi_atf_peer_info_v2 peer_info_v2[num_peers];
*/
} wmi_peer_atf_request_fixed_param;
@@ -32808,12 +32896,69 @@ typedef struct {
A_UINT32 atf_group_flags;
} wmi_atf_group_info;
#define WMI_ATF_GROUP_NUM_EXPLICIT_PEERS_BIT_POS 0
#define WMI_ATF_GROUP_NUM_EXPLICIT_PEERS_NUM_BITS 16
#define WMI_ATF_GROUP_GET_NUM_EXPLICIT_PEERS(atf_total_num_peers) \
WMI_GET_BITS(atf_total_num_peers, WMI_ATF_GROUP_NUM_EXPLICIT_PEERS_BIT_POS, WMI_ATF_GROUP_NUM_EXPLICIT_PEERS_NUM_BITS)
#define WMI_ATF_GROUP_SET_NUM_EXPLICIT_PEERS(atf_total_num_peers, val) \
WMI_SET_BITS(atf_total_num_peers, WMI_ATF_GROUP_NUM_EXPLICIT_PEERS_BIT_POS, WMI_ATF_GROUP_NUM_EXPLICIT_PEERS_NUM_BITS, val)
#define WMI_ATF_GROUP_NUM_IMPLICIT_PEERS_BIT_POS 16
#define WMI_ATF_GROUP_NUM_IMPLICIT_PEERS_NUM_BITS 16
#define WMI_ATF_GROUP_GET_NUM_IMPLICIT_PEERS(atf_total_num_peers) \
WMI_GET_BITS(atf_total_num_peers, WMI_ATF_GROUP_NUM_IMPLICIT_PEERS_BIT_POS, WMI_ATF_GROUP_NUM_IMPLICIT_PEERS_NUM_BITS)
#define WMI_ATF_GROUP_SET_NUM_IMPLICIT_PEERS(atf_total_num_peers, val) \
WMI_SET_BITS(atf_total_num_peers, WMI_ATF_GROUP_NUM_IMPLICIT_PEERS_BIT_POS, WMI_ATF_GROUP_NUM_IMPLICIT_PEERS_NUM_BITS, val)
typedef struct {
/** TLV tag and len; tag equals
* WMITLV_TAG_STRUC_wmi_atf_group_info_v2 */
A_UINT32 tlv_header;
A_UINT32 atf_group_id; /* ID of the Air Time Management group */
/* atf_group_units
* Fraction of air time allowed for the group, in per mille units
* (from 0-1000).
* For example, to indicate that the group can use 12.3% of the air time,
* the atf_group_units setting would be 123.
*/
A_UINT32 atf_group_units;
/* atf_group_flags
* Bits 0-3 - Group Schedule Policy (Fair/Strict/Fair with upper bound)
* Refer to WMI_ATF_SSID_ definitions
* Bit 4-31 - Reserved (Shall be zero)
*/
A_UINT32 atf_group_flags;
/* atf_total_num_peers
*
* Bits 0-15 - total number of explicit peers
* Bits 16-31 - total number of implicit peers
* An explicit peer has an ATF % configured by the user.
* An implicit peer has an ATF % =
* (Group_ATF_percent - Total_Explicit_Peers_ATF_Percent) /
* number of implicit peers
* This computation can be done in FW based on atf_total_num_peers.
*/
A_UINT32 atf_total_num_peers;
/* atf_total_implicit_peer_units
*
* Air time allocated for all the implicit peers
* (from 0-1000, in per mille units)
*/
A_UINT32 atf_total_implicit_peer_units;
} wmi_atf_group_info_v2;
typedef struct {
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_atf_ssid_grp_request_fixed_param */
A_UINT32 pdev_id;
/*
* Following this structure is the TLV:
* struct wmi_atf_group_info group_info[];
* Following this structure is the one of the following TLVs
* (only one of them will have valid data in a particular message)
* - struct wmi_atf_group_info group_info[];
* - struct wmi_atf_group_info_v2 group_info[];
*/
} wmi_atf_ssid_grp_request_fixed_param;
@@ -43737,23 +43882,38 @@ typedef enum {
WMI_MLO_LINK_FORCE_REASON_TDLS = 4, /* Set force specific links because of 11BE MLO TDLS setup/teardown */
} WMI_MLO_LINK_FORCE_REASON;
#define WMI_MLO_CONTROL_FLAGS_GET_OVERWRITE_FORCE_ACTIVE(mlo_flags) WMI_GET_BITS(control_flags, 0, 1)
#define WMI_MLO_CONTROL_FLAGS_SET_OVERWRITE_FORCE_ACTIVE(mlo_flags, value) WMI_SET_BITS(control_flags, 0, 1, value)
#define WMI_MLO_CONTROL_FLAGS_GET_OVERWRITE_FORCE_INACTIVE(mlo_flags) WMI_GET_BITS(control_flags, 1, 1)
#define WMI_MLO_CONTROL_FLAGS_SET_OVERWRITE_FORCE_INACTIVE(mlo_flags, value) WMI_SET_BITS(control_flags, 1, 1, value)
#define WMI_MLO_CONTROL_FLAGS_GET_OVERWRITE_FORCE_ACTIVE(mlo_flags) \
WMI_GET_BITS(control_flags, 0, 1)
#define WMI_MLO_CONTROL_FLAGS_SET_OVERWRITE_FORCE_ACTIVE(mlo_flags, value) \
WMI_SET_BITS(control_flags, 0, 1, value)
#define WMI_MLO_CONTROL_FLAGS_GET_OVERWRITE_FORCE_INACTIVE(mlo_flags) \
WMI_GET_BITS(control_flags, 1, 1)
#define WMI_MLO_CONTROL_FLAGS_SET_OVERWRITE_FORCE_INACTIVE(mlo_flags, value) \
WMI_SET_BITS(control_flags, 1, 1, value)
#define WMI_MLO_CONTROL_FLAGS_GET_DYNAMIC_FORCE_LINK_NUM(mlo_flags) \
WMI_GET_BITS(control_flags, 2, 1)
#define WMI_MLO_CONTROL_FLAGS_SET_DYNAMIC_FORCE_LINK_NUM(mlo_flags, value) \
WMI_SET_BITS(control_flags, 2, 1, value)
/*
* This structure is used for passing wmi_mlo_control_flags.
* When force_mode is WMI_MLO_LINK_FORCE_ACTIVE or WMI_MLO_LINK_FORCE_INACTIVE
* host can pass below control flags, to indicate if FW need to clear earlier
* force bitmap config.
*
* - When force_mode is WMI_MLO_LINK_FORCE_ACTIVE or
* WMI_MLO_LINK_FORCE_INACTIVE host can pass below control flags,
* to indicate if FW need to clear earlier force bitmap config.
*
* - When force mode is WMI_MLO_LINK_FORCE_ACTIVE_LINK_NUM or
* WMI_MLO_LINK_FORCE_INACTIVE_LINK_NUM, host can pass below control flags,
* to indicate if FW need to use force link number instead of force link
* bitmap.
*/
typedef struct {
union {
struct {
A_UINT32 overwrite_force_active_bitmap:1, /* indicate overwrite all earlier force_active bitmaps */
overwrite_force_inactive_bitmap:1, /* indicate overwrite all earlier force_inactive bitmaps */
unused: 30;
dynamic_force_link_num:1, /* indicate fw to use force link number instead of force link bitmap */
unused: 29;
};
A_UINT32 control_flags;
};

查看文件

@@ -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_ 1346
#define __WMI_REVISION_ 1347
/** The Version Namespace should not be normally changed. Only
* host and firmware of the same WMI namespace will work