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:
@@ -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 */
|
||||
|
184
fw/wmi_unified.h
184
fw/wmi_unified.h
@@ -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
|
||||
|
Reference in New Issue
Block a user