diff --git a/fw/wmi_services.h b/fw/wmi_services.h index 0891eb259e09..33983e18ff93 100644 --- a/fw/wmi_services.h +++ b/fw/wmi_services.h @@ -571,6 +571,7 @@ typedef enum { WMI_SERVICE_PROBE_ALL_BW_SUPPORT = 319, /* FW support to probe on higher BW even if the probe fails on lower BW - IOT issue */ WMI_SERVICE_PKTLOG_DECODE_INFO_SUPPORT = 320, /* FW supports embedding Pktlog decode info in the Pktlog trace file level header */ WMI_SERVICE_PNO_SCAN_CONFIG_PER_CHANNEL = 321, /* Indicates that FW supports per channel configuration support in the PNO scan start command */ + WMI_SERVICE_MULTIPLE_PEER_GROUP_CMD_SUPPORT = 322, /* FW support for multiple peer group command */ WMI_MAX_EXT2_SERVICE diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index c896cd97049a..adc7ef1e7a25 100644 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2021 The Linux Foundation. All rights reserved. + * Copyright (c) 2010-2022 The Linux Foundation. All rights reserved. * * Previously licensed under the ISC license by Qualcomm Atheros, Inc. * @@ -1230,6 +1230,7 @@ typedef enum { WMITLV_TAG_STRUC_wmi_pdev_sscan_chan_info, WMITLV_TAG_STRUC_wmi_pdev_sscan_per_detector_info, WMITLV_TAG_STRUC_wmi_ctrl_path_odd_addr_read_struct, + WMITLV_TAG_STRUC_wmi_vdev_multiple_peer_group_cmd_fixed_param, } WMITLV_TAG_ID; /* @@ -1714,6 +1715,7 @@ typedef enum { OP(WMI_SAWF_SVC_CLASS_CFG_CMDID) \ OP(WMI_SAWF_SVC_CLASS_DISABLE_CMDID) \ OP(WMI_SOC_TQM_RESET_ENABLE_DISABLE_CMDID) \ + OP(WMI_VDEV_MULTIPLE_PEER_GROUP_CMDID) \ /* add new CMD_LIST elements above this line */ @@ -4899,6 +4901,12 @@ WMITLV_CREATE_PARAM_STRUC(WMI_SAWF_SVC_CLASS_DISABLE_CMDID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_soc_tqm_reset_enable_disable_cmd_fixed_param, wmi_soc_tqm_reset_enable_disable_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_SOC_TQM_RESET_ENABLE_DISABLE_CMDID); +/* WMI CMD used to operate command on multiple peers */ +#define WMITLV_TABLE_WMI_VDEV_MULTIPLE_PEER_GROUP_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_multiple_peer_group_cmd_fixed_param, wmi_vdev_multiple_peer_group_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_FIXED_STRUC, wmi_mac_addr, wds_macaddr, WMITLV_SIZE_VAR) +WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_MULTIPLE_PEER_GROUP_CMDID); + /************************** TLV definitions of WMI events *******************************/ diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index ef1415d2ba0c..c1fa01562018 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -579,6 +579,8 @@ typedef enum { WMI_VDEV_ICMP_OFFLOAD_CMDID, /** Update vdev mac address */ WMI_VDEV_UPDATE_MAC_ADDR_CMDID, + /* WMI cmd to perform operation on multiple peer based on subcmd type */ + WMI_VDEV_MULTIPLE_PEER_GROUP_CMDID, /* peer specific commands */ @@ -30487,6 +30489,7 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command) WMI_RETURN_STRING(WMI_SAWF_SVC_CLASS_DISABLE_CMDID); WMI_RETURN_STRING(WMI_VDEV_UPDATE_MAC_ADDR_CMDID); WMI_RETURN_STRING(WMI_SOC_TQM_RESET_ENABLE_DISABLE_CMDID); + WMI_RETURN_STRING(WMI_VDEV_MULTIPLE_PEER_GROUP_CMDID); } return (A_UINT8 *) "Invalid WMI cmd"; @@ -37260,6 +37263,18 @@ typedef struct { A_UINT32 enable; } wmi_soc_tqm_reset_enable_disable_cmd_fixed_param; +typedef struct { + A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_multiple_peer_group_cmd_fixed_param */ + A_UINT32 vdev_id; + /** Sub command id - Currently supported command ids are + * WMI_PEER_REMOVE_WDS_ENTRY_CMDID + */ + WMI_CMD_ID sub_cmd_id; + /* The TLVs follows this structure: + * wmi_mac_addr wds_macaddr[]; <--- Array of wds mac addresses. + */ +} wmi_vdev_multiple_peer_group_cmd_fixed_param; + /* ADD NEW DEFS HERE */ diff --git a/fw/wmi_version.h b/fw/wmi_version.h index 9442beb94bac..caab39cb752e 100644 --- a/fw/wmi_version.h +++ b/fw/wmi_version.h @@ -36,7 +36,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_ 1104 +#define __WMI_REVISION_ 1105 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work