From ffdfc3e6264fce2ab85ad70de0f2caa5980032ad Mon Sep 17 00:00:00 2001 From: spuligil Date: Wed, 19 Nov 2025 23:23:12 -0800 Subject: [PATCH] fw-api: CL 31012511 - update fw common interface files Change-Id: Idee4d32565a665f57279254bd98e0cf20559bb94 CRs-Fixed: 3830439 --- fw/wmi_services.h | 1 + fw/wmi_tlv_defs.h | 213 ++++++++++++++++++++++++++++++++++++++++++++-- fw/wmi_unified.h | 37 ++++++++ fw/wmi_version.h | 2 +- 4 files changed, 246 insertions(+), 7 deletions(-) diff --git a/fw/wmi_services.h b/fw/wmi_services.h index c510d1c0e2ec..705dcff7ec06 100644 --- a/fw/wmi_services.h +++ b/fw/wmi_services.h @@ -743,6 +743,7 @@ typedef enum { WMI_SERVICE_CONC_2VDEV_DCS_STATS_SUPPORT = 479, /* Indicate FW support for collecting DCS stats for more than 1 vdev (max 2 concurrent vdevs) */ WMI_SERVICE_CFR_UNASSOC_RX_CAPTURE_SUPPORT = 480, /* Indicates FW supports RX-based unassociated CFR capture */ WMI_SERVICE_CFR_ASSOC_TX_CAPTURE_SUPPORT = 481, /* Indicates FW supports TX-based CFR capture */ + WMI_SERVICE_VDEV_UNIFIED_CONNECT_DISCONNECT_SUPPORT = 482, /* Indicates FW support for unified connect and disconnect vdev cmds for link switch */ WMI_MAX_EXT2_SERVICE diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index a0cbcd887f9c..d8d8183cc5e7 100644 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -1531,6 +1531,10 @@ typedef enum { WMITLV_TAG_STRUC_wmi_nan_disable_cnf_fixed_param, WMITLV_TAG_STRUC_wmi_nan_disable_ind_fixed_param, WMITLV_TAG_STRUC_wmi_cfr_capture_filter_resp_event_fixed_param, + WMITLV_TAG_STRUC_wmi_vdev_unified_connect_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_vdev_unified_disconnect_cmd_fixed_param, + WMITLV_TAG_STRUC_wmi_vdev_unified_connect_event_fixed_param, + WMITLV_TAG_STRUC_wmi_vdev_unified_disconnect_event_fixed_param, } WMITLV_TAG_ID; /* * IMPORTANT: Please add _ALL_ WMI Commands Here. @@ -2114,6 +2118,8 @@ typedef enum { OP(WMI_NAN_ENABLE_CMDID) \ OP(WMI_NAN_CONFIG_CMDID) \ OP(WMI_NAN_DISABLE_CMDID) \ + OP(WMI_VDEV_UNIFIED_CONNECT_CMDID) \ + OP(WMI_VDEV_UNIFIED_DISCONNECT_CMDID) \ /* add new CMD_LIST elements above this line */ @@ -2462,6 +2468,8 @@ typedef enum { OP(WMI_NAN_DISABLE_CNF_EVENTID) \ OP(WMI_NAN_DISABLE_IND_EVENTID) \ OP(WMI_CFR_CAPTURE_FILTER_RESP_EVENTID) \ + OP(WMI_VDEV_UNIFIED_CONNECT_EVENTID) \ + OP(WMI_VDEV_UNIFIED_DISCONNECT_EVENTID) \ /* add new EVT_LIST elements above this line */ @@ -2482,14 +2490,33 @@ WMITLV_CREATE_PARAM_STRUC(WMI_INIT_CMDID); #define WMITLV_TABLE_WMI_PEER_CREATE_CMDID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_create_cmd_fixed_param, wmi_peer_create_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_create_mlo_params, mlo_params, WMITLV_SIZE_VAR) - +/* NOTE: + * Any new TLV addition in WMI_PEER_CREATE_CMDID needs to be included as + * TLV in WMI_VDEV_UNIFIED_CONNECT_CMDID as well to maintain compatibility. + * + * WMI_VDEV_UNIFIED_CONNECT_CMDID substitutes for 5 connection related + * cmds: + * WMI_PEER_CREATE_CMDID, + * WMI_VDEV_START_REQUEST_CMDID, + * WMI_PEER_ASSOC_CMDID, + * WMI_PEER_ASSOC_V2_CMDID, + * WMI_VDEV_UP_CMDID + */ WMITLV_CREATE_PARAM_STRUC(WMI_PEER_CREATE_CMDID); /* Peer delete Cmd */ #define WMITLV_TABLE_WMI_PEER_DELETE_CMDID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_delete_cmd_fixed_param, wmi_peer_delete_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_delete_mlo_params, mlo_params, WMITLV_SIZE_VAR) - +/* NOTE: + * Any new TLV addition in WMI_PEER_DELETE_CMDID needs to be included as + * TLV in WMI_VDEV_UNIFIED_DISCONNECT_CMDID as well to maintain compatibility. + * + * WMI_VDEV_UNIFIED_DISCONNECT_CMDID substitutes for 2 disconnection related + * cmds: + * WMI_PEER_DELETE_CMDID, + * WMI_VDEV_STOP_CMDID + */ WMITLV_CREATE_PARAM_STRUC(WMI_PEER_DELETE_CMDID); /* Delete all peer Cmd */ @@ -2848,7 +2875,18 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SET_WMM_PARAMS_CMDID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_partner_link_params, partner_link_params, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_channel, dbw_chan, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_dbw_chan_info, dbw_chan_info, WMITLV_SIZE_VAR) - +/* NOTE: + * Any new TLV addition in WMI_VDEV_START_REQUEST_CMDID needs to be included as + * TLV in WMI_VDEV_UNIFIED_CONNECT_CMDID as well to maintain compatibility. + * + * WMI_VDEV_UNIFIED_CONNECT_CMDID substitutes for 5 connection related + * cmds: + * WMI_PEER_CREATE_CMDID, + * WMI_VDEV_START_REQUEST_CMDID, + * WMI_PEER_ASSOC_CMDID, + * WMI_PEER_ASSOC_V2_CMDID, + * WMI_VDEV_UP_CMDID + */ WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_START_REQUEST_CMDID); /* Vdev restart request cmd */ @@ -2993,7 +3031,18 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PEER_ASSOC_CMDID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_npca_cap_params, peer_npca_cap_params, WMITLV_SIZE_VAR)\ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_create_mlo_params, create_mlo_params, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_assoc_cfp_params, wmi_peer_assoc_cfp_params, cfp_params, WMITLV_SIZE_FIX) - +/* NOTE: + * Any new TLV addition in WMI_PEER_ASSOC_V2_CMDID needs to be included as + * TLV in WMI_VDEV_UNIFIED_CONNECT_CMDID as well to maintain compatibility. + * + * WMI_VDEV_UNIFIED_CONNECT_CMDID substitutes for 5 connection related + * cmds: + * WMI_PEER_CREATE_CMDID, + * WMI_VDEV_START_REQUEST_CMDID, + * WMI_PEER_ASSOC_CMDID, + * WMI_PEER_ASSOC_V2_CMDID, + * WMI_VDEV_UP_CMDID + */ WMITLV_CREATE_PARAM_STRUC(WMI_PEER_ASSOC_V2_CMDID); /* Peer Set Rate Report Condition Cmd */ @@ -3738,14 +3787,33 @@ WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_DELETE_CMDID); #define WMITLV_TABLE_WMI_VDEV_UP_CMDID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_up_cmd_fixed_param, wmi_vdev_up_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_co_located_chan_info, co_located_chan_info, WMITLV_SIZE_VAR) - +/* NOTE: + * Any new TLV addition in WMI_VDEV_UP_CMDID needs to be included as + * TLV in WMI_VDEV_UNIFIED_CONNECT_CMDID as well to maintain compatibility. + * + * WMI_VDEV_UNIFIED_CONNECT_CMDID substitutes for 5 connection related + * cmds: + * WMI_PEER_CREATE_CMDID, + * WMI_VDEV_START_REQUEST_CMDID, + * WMI_PEER_ASSOC_CMDID, + * WMI_PEER_ASSOC_V2_CMDID, + * WMI_VDEV_UP_CMDID + */ WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_UP_CMDID); /* Vdev stop cmd */ #define WMITLV_TABLE_WMI_VDEV_STOP_CMDID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_stop_cmd_fixed_param, wmi_vdev_stop_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_vdev_stop_mlo_params, mlo_params, WMITLV_SIZE_VAR) - +/* NOTE: + * Any new TLV addition in WMI_VDEV_STOP_CMDID needs to be included as + * TLV in WMI_VDEV_UNIFIED_DISCONNECT_CMDID as well to maintain compatibility. + * + * WMI_VDEV_UNIFIED_DISCONNECT_CMDID substitutes for 2 disconnection related + * cmds: + * WMI_PEER_DELETE_CMDID, + * WMI_VDEV_STOP_CMDID + */ WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_STOP_CMDID); /* Vdev down Cmd */ @@ -5984,6 +6052,70 @@ WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_ENERGY_MGMT_DPS_ASSISTING_ROLE_CONFIG_CMDID); WMITLV_CREATE_PARAM_STRUC(WMI_WLAN_MODE_REQ_CMDID); +/* WMI command for unified connect cmd */ +#define WMITLV_TABLE_WMI_VDEV_UNIFIED_CONNECT_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_unified_connect_cmd_fixed_param, wmi_vdev_unified_connect_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_create_cmd_fixed_param, wmi_peer_create_cmd_fixed_param, peer_create_fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_create_mlo_params, peer_create_mlo_params, WMITLV_SIZE_VAR) \ + \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_start_request_cmd_fixed_param, wmi_vdev_start_request_cmd_fixed_param, vdev_start_fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_channel, wmi_channel, vdev_start_chan, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_p2p_noa_descriptor, vdev_start_noa_descriptors, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_vdev_start_mlo_params, vdev_start_mlo_params, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_partner_link_params, vdev_start_partner_link_params, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_channel, vdev_start_dbw_chan, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_dbw_chan_info, vdev_start_dbw_chan_info, WMITLV_SIZE_VAR) \ + \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_assoc_complete_cmd_fixed_param, wmi_peer_assoc_complete_cmd_fixed_param, peer_assoc_fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, peer_assoc_peer_legacy_rates, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, peer_assoc_peer_ht_rates, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vht_rate_set, wmi_vht_rate_set, peer_assoc_peer_vht_rates, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_he_rate_set, peer_assoc_peer_he_rates, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_assoc_mlo_params, peer_assoc_mlo_params, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_eht_rate_set, peer_assoc_peer_eht_rates, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_assoc_mlo_partner_link_params, peer_assoc_partner_link_params, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_assoc_tid_to_link_map, peer_assoc_peer_tid_to_link_map, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_assoc_operating_mode_params, peer_assoc_operating_mode_params, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_assoc_mgmt_mpduq_params, peer_assoc_mgmt_mpduq_params, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_assoc_mgmt_msduq_params, peer_assoc_mgmt_msduq_params, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_assoc_hol_msduq_params, peer_assoc_hol_mdsuq_params, WMITLV_SIZE_VAR) \ + /*---*/ \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_assoc_complete_cmd_fixed_param, wmi_peer_assoc_complete_cmd_fixed_param, peer_assoc_v2_fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, peer_assoc_v2_peer_legacy_rates, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, peer_assoc_v2_peer_ht_rates, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vht_rate_set, wmi_vht_rate_set, peer_assoc_v2_peer_vht_rates, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_he_rate_set, peer_assoc_v2_peer_he_rates, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_assoc_mlo_params, peer_assoc_v2_mlo_params, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_eht_rate_set, peer_assoc_v2_peer_eht_rates, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_assoc_mlo_partner_link_params, peer_assoc_v2_partner_link_params, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_assoc_tid_to_link_map, peer_assoc_v2_peer_tid_to_link_map, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_assoc_operating_mode_params, peer_assoc_v2_operating_mode_params, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_assoc_mgmt_mpduq_params, peer_assoc_v2_mgmt_mpduq_params, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_assoc_mgmt_msduq_params, peer_assoc_v2_mgmt_msduq_params, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_assoc_hol_msduq_params, peer_assoc_v2_hol_mdsuq_params, WMITLV_SIZE_VAR)\ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_npca_cap_params, peer_assoc_v2_peer_npca_cap_params, WMITLV_SIZE_VAR)\ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_create_mlo_params, peer_assoc_v2_create_mlo_params, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_assoc_cfp_params, wmi_peer_assoc_cfp_params, peer_assoc_v2_cfp_params, WMITLV_SIZE_FIX) \ + \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_up_cmd_fixed_param, wmi_vdev_up_cmd_fixed_param, vdev_up_fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_co_located_chan_info, vdev_up_co_located_chan_info, WMITLV_SIZE_VAR) + +WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_UNIFIED_CONNECT_CMDID); + +/* WMI command for unified disconnect cmd */ +#define WMITLV_TABLE_WMI_VDEV_UNIFIED_DISCONNECT_CMDID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_unified_disconnect_cmd_fixed_param, wmi_vdev_unified_disconnect_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_delete_cmd_fixed_param, wmi_peer_delete_cmd_fixed_param, peer_delete_fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_peer_delete_mlo_params, peer_delete_mlo_params, WMITLV_SIZE_VAR) \ + \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_stop_cmd_fixed_param, wmi_vdev_stop_cmd_fixed_param, vdev_stop_fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_vdev_stop_mlo_params, vdev_stop_mlo_params, WMITLV_SIZE_VAR) + +WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_UNIFIED_DISCONNECT_CMDID); + + /************************** TLV definitions of WMI events *******************************/ @@ -6231,11 +6363,30 @@ WMITLV_CREATE_PARAM_STRUC(WMI_QOS_NULL_FRAME_TX_COMPLETION_EVENTID); /* VDEV Start response Event */ #define WMITLV_TABLE_WMI_VDEV_START_RESP_EVENTID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_start_response_event_fixed_param, wmi_vdev_start_response_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +/* NOTE: + * Any new TLV addition in WMI_VDEV_START_RESP_EVENTID needs to be included + * as TLV in WMI_VDEV_UNIFIED_CONNECT_EVENTID as well to maintain compatibility. + * + * WMI_VDEV_UNIFIED_CONNECT_EVENTID substitutes for 3 connection related + * events: + * WMI_PEER_CREATE_CONF_EVENTID, + * WMI_VDEV_START_RESP_EVENTID, + * WMI_PEER_ASSOC_CONF_EVENTID + */ WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_START_RESP_EVENTID); /* VDEV Stopped Event */ #define WMITLV_TABLE_WMI_VDEV_STOPPED_EVENTID(id,op,buf,len) \ 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) +/* NOTE: + * Any new TLV addition in WMI_VDEV_STOPPED_EVENTID needs to be included as + * TLV in WMI_VDEV_UNIFIED_DISCONNECT_EVENTID as well to maintain compatibility. + * + * WMI_VDEV_UNIFIED_DISCONNECT_EVENTID substitutes for 2 disconnection related + * events: + * WMI_PEER_DELETE_RESP_EVENTID, + * WMI_VDEV_STOPPED_EVENTID + */ WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_STOPPED_EVENTID); /* VDEV delete response Event */ @@ -7021,6 +7172,15 @@ 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) +/* NOTE: + * Any new TLV addition in WMI_PEER_DELETE_RESP_EVENTID needs to be included as + * TLV in WMI_VDEV_UNIFIED_DISCONNECT_EVENTID as well to maintain compatibility. + * + * WMI_VDEV_UNIFIED_DISCONNECT_EVENTID substitutes for 2 disconnection related + * events: + * WMI_PEER_DELETE_RESP_EVENTID, + * WMI_VDEV_STOPPED_EVENTID + */ WMITLV_CREATE_PARAM_STRUC(WMI_PEER_DELETE_RESP_EVENTID); /* delete all peer response Event */ @@ -7031,11 +7191,31 @@ WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_DELETE_ALL_PEER_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) +/* NOTE: + * Any new TLV addition in WMI_PEER_ASSOC_CONF_EVENTID needs to be included + * as TLV in WMI_VDEV_UNIFIED_CONNECT_EVENTID as well to maintain compatibility. + * + * WMI_VDEV_UNIFIED_CONNECT_EVENTID substitutes for 3 connection related + * events: + * WMI_PEER_CREATE_CONF_EVENTID, + * WMI_VDEV_START_RESP_EVENTID, + * WMI_PEER_ASSOC_CONF_EVENTID + */ WMITLV_CREATE_PARAM_STRUC(WMI_PEER_ASSOC_CONF_EVENTID); /* peer create conf Event */ #define WMITLV_TABLE_WMI_PEER_CREATE_CONF_EVENTID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_create_conf_event_fixed_param, wmi_peer_create_conf_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) +/* NOTE: + * Any new TLV addition in WMI_PEER_CREATE_CONF_EVENTID needs to be included + * as TLV in WMI_VDEV_UNIFIED_CONNECT_EVENTID as well to maintain compatibility. + * + * WMI_VDEV_UNIFIED_CONNECT_EVENTID substitutes for 3 connection related + * events: + * WMI_PEER_CREATE_CONF_EVENTID, + * WMI_VDEV_START_RESP_EVENTID, + * WMI_PEER_ASSOC_CONF_EVENTID + */ WMITLV_CREATE_PARAM_STRUC(WMI_PEER_CREATE_CONF_EVENTID); /* D0-WOW Disable Ack event */ @@ -8176,6 +8356,27 @@ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_cfr_capture_filter_resp_event_fi WMITLV_CREATE_PARAM_STRUC(WMI_CFR_CAPTURE_FILTER_RESP_EVENTID); +/* WMI command for unified connect event */ +#define WMITLV_TABLE_WMI_VDEV_UNIFIED_CONNECT_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_unified_connect_event_fixed_param, wmi_vdev_unified_connect_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_create_conf_event_fixed_param, wmi_peer_create_conf_event_fixed_param, peer_create_fixed_param, WMITLV_SIZE_FIX) \ + \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_start_response_event_fixed_param, wmi_vdev_start_response_event_fixed_param, vdev_start_fixed_param, WMITLV_SIZE_FIX) \ + \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_assoc_conf_event_fixed_param, wmi_peer_assoc_conf_event_fixed_param, peer_assoc_fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_UNIFIED_CONNECT_EVENTID); + +/* WMI command for unified disconnect event */ +#define WMITLV_TABLE_WMI_VDEV_UNIFIED_DISCONNECT_EVENTID(id,op,buf,len) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_unified_disconnect_event_fixed_param, wmi_vdev_unified_disconnect_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_delete_resp_event_fixed_param, wmi_peer_delete_resp_event_fixed_param, peer_delete_fixed_param, WMITLV_SIZE_FIX) \ + \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_stopped_event_fixed_param, wmi_vdev_stopped_event_fixed_param, vdev_stop_fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_UNIFIED_DISCONNECT_EVENTID); + + #ifdef __cplusplus } diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index 61cc62260cab..3c148d3ba5d3 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -747,6 +747,13 @@ typedef enum { /** WMI cmd used to control DPS Assisting AP role config */ WMI_VDEV_ENERGY_MGMT_DPS_ASSISTING_ROLE_CONFIG_CMDID, + /** WMI cmd for unified connect */ + WMI_VDEV_UNIFIED_CONNECT_CMDID, + + /** WMI cmd for unified disconnect */ + WMI_VDEV_UNIFIED_DISCONNECT_CMDID, + + /* peer specific commands */ /** create a peer */ @@ -2070,6 +2077,10 @@ typedef enum { WMI_VDEV_OOB_CONNECTION_RESP_EVENTID, WMI_VDEV_VBSS_CONFIG_EVENTID, WMI_VDEV_TPC_IE_POWER_EVENTID, + /** WMI event for unified connect */ + WMI_VDEV_UNIFIED_CONNECT_EVENTID, + /** WMI event for unified disconnect */ + WMI_VDEV_UNIFIED_DISCONNECT_EVENTID, /* peer specific events */ /** FW reauet to kick out the station for reasons like inactivity,lack of response ..etc */ @@ -33435,6 +33446,32 @@ typedef enum { WMI_USD_SERVICE_PROTOCOL_TYPE_CSA_MATTER = 3, } WMI_USD_SERVICE_PROTOCOL_TYPE; + +typedef struct { + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_unified_connect_cmd_fixed_param */ + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; +} wmi_vdev_unified_connect_cmd_fixed_param; + +typedef struct { + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_unified_disconnect_cmd_fixed_param */ + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; +} wmi_vdev_unified_disconnect_cmd_fixed_param; + +typedef struct { + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_unified_connect_event_fixed_param */ + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; +} wmi_vdev_unified_connect_event_fixed_param; + +typedef struct { + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_unified_disconnect_event_fixed_param */ + /** unique id identifying the VDEV, generated by the caller */ + A_UINT32 vdev_id; +} wmi_vdev_unified_disconnect_event_fixed_param; + + #define EXPIRY_TIME_IN_TSF_TIMESTAMP_OFFSET 0 #define EXPIRY_TIME_IN_TSF_TIMESTAMP_MASK 1 diff --git a/fw/wmi_version.h b/fw/wmi_version.h index a9c471950e30..b70d34142501 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_ 1676 +#define __WMI_REVISION_ 1677 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work