From 1b6c85568f1dcbc18d85104e0487e3cb0c82f413 Mon Sep 17 00:00:00 2001 From: spuligil Date: Thu, 17 Jun 2021 06:01:03 -0700 Subject: [PATCH] fw-api: CL 14344493 - update fw common interface files Change-Id: I5c7a8a05fffe53a2377e9c774423290b5c3d1f7e WMI: add ml_bcn_,ml_quiet_param to BCN_TMPL_,BCN_OFFLOAD_QUIET_CONFIG_CMD CRs-Fixed: 2262693 --- fw/wmi_tlv_defs.h | 8 ++++++-- fw/wmi_unified.h | 38 ++++++++++++++++++++++++++++++++++++++ fw/wmi_version.h | 2 +- 3 files changed, 45 insertions(+), 3 deletions(-) diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index 6548a5bcd012..41052398cf67 100644 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -1178,6 +1178,8 @@ typedef enum { * extensions, the struct uses a TLV header, which uses the below tag, */ WMITLV_TAG_STRUC_wmi_afc_serv_resp_struct, + WMITLV_TAG_STRUC_wmi_bcn_tmpl_ml_params, + WMITLV_TAG_STRUC_wmi_vdev_bcn_offload_ml_quiet_config_params, } WMITLV_TAG_ID; /* @@ -2354,7 +2356,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PRB_TMPL_CMDID); #define WMITLV_TABLE_WMI_BCN_TMPL_CMDID(id,op,buf,len) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_bcn_tmpl_cmd_fixed_param, wmi_bcn_tmpl_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_bcn_prb_info, wmi_bcn_prb_info, bcn_prb_info, WMITLV_SIZE_FIX) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, bufp, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, bufp, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_bcn_tmpl_ml_params, ml_bcn_param, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_BCN_TMPL_CMDID); @@ -3091,7 +3094,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_SET_QUIET_MODE_CMDID); /* vdev set offload quiet Cmd */ #define WMITLV_TABLE_WMI_VDEV_BCN_OFFLOAD_QUIET_CONFIG_CMDID(id,op,buf,len) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_bcn_offload_quiet_config_cmd_fixed_param, wmi_vdev_bcn_offload_quiet_config_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_bcn_offload_quiet_config_cmd_fixed_param, wmi_vdev_bcn_offload_quiet_config_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_vdev_bcn_offload_ml_quiet_config_params, ml_quiet_param, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_BCN_OFFLOAD_QUIET_CONFIG_CMDID); diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index 64f0cd37e464..afde02bb4bb0 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -6050,6 +6050,19 @@ typedef struct { */ #define WMI_OFFLOAD_QUIET_FLAG_INFO_IN_SWBA_START_STOP 0x00000004 +typedef struct { + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_bcn_offload_ml_quiet_config_params */ + A_UINT32 vdev_id; /* partner vdev_id */ + A_UINT32 hw_link_id; /* hw_link_id: Unique link id across SOCs, got as part of QMI handshake */ + A_UINT32 beacon_interval; /* beacon interval in TU from received beacon of the partner link */ + A_UINT32 period; /* period in TUs */ + A_UINT32 duration; /* duration in TUs */ + A_UINT32 next_start; /* offset in TUs from beacon */ + A_UINT32 flags; /* STOP or START (and single vs. repeated) Quiet IE + * See WMI_OFFLOAD_QUIET_FLAG_xxx defs. + */ +} wmi_vdev_bcn_offload_ml_quiet_config_params; + typedef struct { A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_bcn_offload_quiet_config_cmd_fixed_param */ A_UINT32 vdev_id; /* Virtual interface ID */ @@ -6059,6 +6072,11 @@ typedef struct { A_UINT32 flags; /* STOP or START (and single vs. repeated) Quiet IE * See WMI_OFFLOAD_QUIET_FLAG_xxx defs. */ +/* + * This TLV is optionally followed by array of wmi_vdev_bcn_offload_ml_quiet_config_params struct + * wmi_vdev_bcn_offload_ml_quiet_config_params will have multiple instances equal to num of links in an AP MLD + * wmi_vdev_bcn_offload_ml_quiet_config_params ml_quiet_param[]; + */ } wmi_vdev_bcn_offload_quiet_config_cmd_fixed_param; typedef struct { @@ -13037,6 +13055,23 @@ typedef struct { #define WMI_BEACON_TMPLT_GET_LAST_TEMPLATE(_ema_param) \ WMI_GET_BITS(_ema_param, WMI_BEACON_TMPLT_LAST_TEMPLATE_BITPOS, 8) +typedef struct { + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_bcn_tmpl_ml_params */ + A_UINT32 vdev_id; /* partner vdev_id */ + A_UINT32 hw_link_id; /* hw_link_id: Unique link id across SOCs, got as part of QMI handshake */ + A_UINT32 beacon_interval; /* beacon interval in TU from received beacon of the partner link */ + /** CSA IE switch count offset from the beginning of data[] + * Value 0 indicates CSA IE is not present in beacon template. + */ + A_UINT32 csa_switch_count_offset; /* units = bytes */ + /** Extended CSA IE switch count offset from the beginning of data[] + * Value 0 indicates ECSA IE is not present in beacon template. + */ + A_UINT32 ext_csa_switch_count_offset; /* units = bytes */ + /** TIM IE offset from the beginning of the template. */ + A_UINT32 tim_ie_offset; +} wmi_bcn_tmpl_ml_params; + typedef struct { A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_bcn_tmpl_cmd_fixed_param */ /** unique id identifying the VDEV, generated by the caller */ @@ -13125,6 +13160,9 @@ typedef struct { * The TLVs follows: * wmi_bcn_prb_info bcn_prb_info; <-- beacon probe capabilities and IEs * A_UINT8 data[]; <-- Variable length data + * wmi_bcn_tmpl_ml_params ml_bcn_param[]; <-- per-MLO-link beacon data + * wmi_bcn_tmpl_ml_params will have multiple instances equal to + * the number of links in an AP MLD */ } wmi_bcn_tmpl_cmd_fixed_param; diff --git a/fw/wmi_version.h b/fw/wmi_version.h index c06ab5e7f083..1669d79e4b27 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_ 1010 +#define __WMI_REVISION_ 1011 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work