From 6f2d9bc176a0833823c1d8d041fc5ed8d4da4ea8 Mon Sep 17 00:00:00 2001 From: spuligil Date: Fri, 13 Oct 2023 12:01:43 -0700 Subject: [PATCH] fw-api: CL 24927565 - update fw common interface files WMI: add mlo_params elem to VDEV_STOP_CMD; add mlo_flags to delete_mlo_params Change-Id: Ic233482455ba18bf6352067d62597e9cdcc8d32c CRs-Fixed: 2262693 --- fw/wmi_tlv_defs.h | 4 +++- fw/wmi_unified.h | 19 +++++++++++++++++++ fw/wmi_version.h | 2 +- 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index 4c937410db16..ec536d2fc1a2 100644 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -1405,6 +1405,7 @@ typedef enum { WMITLV_TAG_STRUC_wmi_mlo_link_state_switch_trigger_reason_tlv_param, WMITLV_TAG_STRUC_wmi_vdev_sched_mode_probe_req_fixed_param, WMITLV_TAG_STRUC_wmi_vdev_sched_mode_probe_resp_fixed_param, + WMITLV_TAG_STRUC_wmi_vdev_stop_mlo_params, } WMITLV_TAG_ID; /* * IMPORTANT: Please add _ALL_ WMI Commands Here. @@ -3499,7 +3500,8 @@ 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_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) WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_STOP_CMDID); diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index f114a20d467d..cea1e6eb972e 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -16087,6 +16087,12 @@ typedef struct { }; A_UINT32 mlo_flags; }; +/* NOTE: + * Since this struct is embedded inside WMI TLV structs, it cannot + * have any fields added, as expanding this struct would break + * backwards-compatibility by changing the offsets of the subsequent + * fields in the structs that contain this struct. + */ } wmi_mlo_flags; typedef struct { @@ -16110,6 +16116,12 @@ typedef struct { wmi_mlo_flags mlo_flags; /*only mlo enable and assoc link flag need by vdev start*/ } wmi_vdev_start_mlo_params; +/* this TLV structure used for passing mlo parameters on vdev stop */ +typedef struct { + A_UINT32 tlv_header; /** TLV tag and len; */ + wmi_mlo_flags mlo_flags; /* only mlo_link_switch flag needed by vdev stop */ +} wmi_vdev_stop_mlo_params; + typedef struct { A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_update_mac_addr_cmd_fixed_param */ /** Unique id identifying the VDEV to update mac addr */ @@ -16977,6 +16989,12 @@ typedef struct { A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_stop_cmd_fixed_param */ /** unique id identifying the VDEV, generated by the caller */ A_UINT32 vdev_id; + + /* The TLVs follows this structure: + * - wmi_vdev_stop_mlo_params mlo_params[0/1]; + * optional TLV, host may provide this TLV to indicate the vdev stop + * is done for link switch. + */ } wmi_vdev_stop_cmd_fixed_param; typedef struct { @@ -19808,6 +19826,7 @@ typedef struct { typedef struct { A_UINT32 tlv_header; /** TLV tag and len */ A_UINT32 mlo_hw_link_id_bitmap; /* Hardware link id of the link which has crashed or was not created in the first place */ + wmi_mlo_flags mlo_flags; /* to indicate whether peer delete is due to link switch */ } wmi_peer_delete_mlo_params; typedef struct { diff --git a/fw/wmi_version.h b/fw/wmi_version.h index 93dbc78861c9..43583493fa9f 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_ 1399 +#define __WMI_REVISION_ 1400 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work