diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index 58b40027e63c..5a3b02d8f62f 100644 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -1338,6 +1338,7 @@ typedef enum { WMITLV_TAG_STRUC_wmi_hpa_evt_fixed_param, WMITLV_TAG_STRUC_wmi_pdev_set_tgtr2p_table_cmd_fixed_param, WMITLV_TAG_STRUC_wmi_pdev_set_tgtr2p_table_event_fixed_param, + WMITLV_TAG_STRUC_wmi_peer_bulk_set_cmd_fixed_param, } WMITLV_TAG_ID; /* @@ -1857,6 +1858,7 @@ typedef enum { OP(WMI_TDMA_SCHEDULE_REQUEST_CMDID) \ OP(WMI_HPA_CMDID) \ OP(WMI_PDEV_SET_TGTR2P_TABLE_CMDID) \ + OP(WMI_PEER_BULK_SET_CMDID) \ /* add new CMD_LIST elements above this line */ @@ -4800,6 +4802,12 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PEER_CFR_CAPTURE_CMDID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_chan_width_peer_list, peer_info, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_PEER_CHAN_WIDTH_SWITCH_CMDID); +/* BULK Peer Set command */ +#define WMITLV_TABLE_WMI_PEER_BULK_SET_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_bulk_set_cmd_fixed_param, wmi_peer_bulk_set_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_list, peer_info, WMITLV_SIZE_VAR) +WMITLV_CREATE_PARAM_STRUC(WMI_PEER_BULK_SET_CMDID); + /* OBSS_PD Spatial_Reuse Set Default OBSS Thresholds */ #define WMITLV_TABLE_WMI_PDEV_OBSS_PD_SPATIAL_REUSE_SET_DEF_OBSS_THRESH_CMDID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_obss_spatial_reuse_set_def_obss_thresh_cmd_fixed_param, wmi_obss_spatial_reuse_set_def_obss_thresh_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index fa2931e92929..a6b02c35264d 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -745,6 +745,8 @@ typedef enum { /* Set disabled scheduler modes for one or more peers */ WMI_PEER_SCHED_MODE_DISABLE_CMDID, + /* Group SET cmd for PEERS */ + WMI_PEER_BULK_SET_CMDID, /* beacon/management specific commands */ @@ -17125,6 +17127,9 @@ typedef struct { */ #define WMI_PEER_CHWIDTH_PUNCTURE_20MHZ_BITMAP 0x27 +#define WMI_PEER_SET_TX_POWER 0x28 + + typedef struct { A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_set_param_cmd_fixed_param */ /** unique id identifying the VDEV, generated by the caller */ @@ -37044,6 +37049,36 @@ typedef struct { */ } wmi_peer_chan_width_switch_cmd_fixed_param; +#define WMI_PEER_BULK_SET_VDEV_ID(comp, value) WMI_SET_BITS(comp, 0, 8, value) +#define WMI_PEER_BULK_GET_VDEV_ID(comp) WMI_GET_BITS(comp, 0, 8) +/* bits 30:8 currently unused */ +#define WMI_PEER_BULK_SET_VALID_VDEV_ID(comp) WMI_SET_BITS(comp, 31, 1, 1) +#define WMI_PEER_BULK_GET_VALID_VDEV_ID(comp) WMI_GET_BITS(comp, 31, 1) + +typedef struct { + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUCT_wmi_peer_list */ + wmi_mac_addr peer_macaddr; + /** parameter id */ + A_UINT32 param_id; + A_UINT32 param_value; +} wmi_peer_list; + +/* WMI_PEER_BULK_SET_CMDID */ +typedef struct { + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_bulk_set_cmd_fixed_param */ + /* vdev_var: + * The MSb (bit 31) indicates that the vdev_id is valid. + * The LSB (bits 0-7) is used to infer the actual vdev_id. + * The other bits can be used for future enhancements. + */ + A_UINT32 vdev_var; + + /* + * Following this structure is the TLV array: + * struct wmi_peer_list peer_info[]; + */ +} wmi_peer_bulk_set_cmd_fixed_param; + typedef struct { /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_he_tb_action_frm_cmd_fixed_param */ A_UINT32 tlv_header; diff --git a/fw/wmi_version.h b/fw/wmi_version.h index 9b5068ecfeae..2ca9939d227a 100644 --- a/fw/wmi_version.h +++ b/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_ 1263 +#define __WMI_REVISION_ 1264 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work