diff --git a/target/inc/wmi_services.h b/target/inc/wmi_services.h index c654dffcf9..8b1268c6ac 100644 --- a/target/inc/wmi_services.h +++ b/target/inc/wmi_services.h @@ -140,6 +140,7 @@ typedef enum { WMI_SERVICE_ENTERPRISE_MESH, /* Enterprise MESH Service Support */ WMI_SERVICE_RESTRT_CHNL_SUPPORT, /* Restricted Channel Support */ WMI_SERVICE_BPF_OFFLOAD, /* FW supports bpf offload */ + WMI_SERVICE_SYNC_DELETE_CMDS, /* FW sends response event for Peer, Vdev delete commands */ WMI_MAX_SERVICE = 128 /* max service */ } WMI_SERVICE; diff --git a/target/inc/wmi_tlv_defs.h b/target/inc/wmi_tlv_defs.h index 533476121d..d7645fa8ca 100644 --- a/target/inc/wmi_tlv_defs.h +++ b/target/inc/wmi_tlv_defs.h @@ -611,6 +611,9 @@ typedef enum { WMITLV_TAG_STRUC_wmi_bpf_vdev_stats_info_evt_fixed_param, WMITLV_TAG_STRUC_wmi_bpf_set_vdev_instructions_cmd_fixed_param, WMITLV_TAG_STRUC_wmi_bpf_del_vdev_instructions_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_vdev_delete_resp_event_fixed_param, + WMITLV_TAG_STRUC_wmi_peer_delete_resp_event_fixed_param, + } WMITLV_TAG_ID; /* @@ -976,7 +979,10 @@ typedef enum { OP(WMI_PDEV_UTF_SCPC_EVENTID) \ OP(WMI_STA_SMPS_FORCE_MODE_COMPLETE_EVENTID) \ OP(WMI_BPF_CAPABILIY_INFO_EVENTID) \ - OP(WMI_BPF_VDEV_STATS_INFO_EVENTID) + OP(WMI_BPF_VDEV_STATS_INFO_EVENTID) \ + OP(WMI_VDEV_DELETE_RESP_EVENTID) \ + OP(WMI_PEER_DELETE_RESP_EVENTID) + /* TLV definitions of WMI commands */ @@ -2545,6 +2551,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_START_RESP_EVENTID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_stopped_event_fixed_param, wmi_vdev_stopped_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_STOPPED_EVENTID); +/* VDEV delete response Event */ +#define WMITLV_TABLE_WMI_VDEV_DELETE_RESP_EVENTID(id, op, buf, len) \ + WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_vdev_delete_resp_event_fixed_param, wmi_vdev_delete_resp_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_DELETE_RESP_EVENTID); + /* VDEV Install Key Complete Event */ #define WMITLV_TABLE_WMI_VDEV_INSTALL_KEY_COMPLETE_EVENTID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_install_key_complete_event_fixed_param, wmi_vdev_install_key_complete_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) @@ -2945,10 +2956,15 @@ WMITLV_CREATE_PARAM_STRUC(WMI_OFFLOAD_PROB_RESP_TX_STATUS_EVENTID); WMITLV_CREATE_PARAM_STRUC(WMI_HOST_AUTO_SHUTDOWN_EVENTID); /* peer state Event */ -#define WMITLV_TABLE_WMI_PEER_STATE_EVENTID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_state_event_fixed_param, wmi_peer_state_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +#define WMITLV_TABLE_WMI_PEER_STATE_EVENTID(id, op, buf, len) \ + WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_peer_state_event_fixed_param, wmi_peer_state_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PEER_STATE_EVENTID); +/* peer delete response Event */ +#define WMITLV_TABLE_WMI_PEER_DELETE_RESP_EVENTID(id, op, buf, len) \ + WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_peer_delete_resp_event_fixed_param, wmi_peer_delete_resp_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_PEER_DELETE_RESP_EVENTID); + /* peer assoc conf Event */ #define WMITLV_TABLE_WMI_PEER_ASSOC_CONF_EVENTID(id, op, buf, len) \ WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_peer_assoc_conf_event_fixed_param, wmi_peer_assoc_conf_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) diff --git a/target/inc/wmi_unified.h b/target/inc/wmi_unified.h index 007fd5ddfc..869c68f111 100644 --- a/target/inc/wmi_unified.h +++ b/target/inc/wmi_unified.h @@ -934,6 +934,10 @@ typedef enum { /* Return the TSF timestamp of specified vdev */ WMI_VDEV_TSF_REPORT_EVENTID, + + /* FW response to Host for vdev delete cmdid */ + WMI_VDEV_DELETE_RESP_EVENTID, + /* peer specific events */ /** FW reauet to kick out the station for reasons like inactivity,lack of response ..etc */ WMI_PEER_STA_KICKOUT_EVENTID = @@ -959,6 +963,9 @@ typedef enum { */ WMI_PEER_ASSOC_CONF_EVENTID, + /* FW response to Host for peer delete cmdid */ + WMI_PEER_DELETE_RESP_EVENTID, + /* beacon/mgmt specific events */ /** RX management frame. the entire frame is carried along with the event. */ WMI_MGMT_RX_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_MGMT), @@ -4739,6 +4746,12 @@ typedef struct { A_UINT32 vdev_id; } wmi_vdev_stopped_event_fixed_param; +typedef struct { + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_delete_resp_event_fixed_param */ + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; +} wmi_vdev_delete_resp_event_fixed_param; + /** common structure used for simple events (stopped, resume_req, standby response) */ typedef struct { A_UINT32 tlv_header; /* TLV tag and len; tag would be equivalent to actual event */ @@ -9907,6 +9920,14 @@ typedef struct { */ } wmi_stats_ext_event_fixed_param; +typedef struct { + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_delete_resp_event_fixed_param */ + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; + /** peer MAC address */ + wmi_mac_addr peer_macaddr; +} wmi_peer_delete_resp_event_fixed_param; + typedef struct { /* TLV tag and len; tag equals WMITLV_TAG_STRUC_ wmi_peer_state_event_fixed_param */ A_UINT32 tlv_header; diff --git a/target/inc/wmi_version.h b/target/inc/wmi_version.h index 7de4596c67..875992f387 100644 --- a/target/inc/wmi_version.h +++ b/target/inc/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_ 191 +#define __WMI_REVISION_ 192 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work