From be619dfb1b729c2e9ac12297f0f48353cc040f0b Mon Sep 17 00:00:00 2001 From: spuligil Date: Wed, 2 Dec 2020 05:19:44 -0800 Subject: [PATCH] fw-api: CL 12203476 - update fw common interface files Change-Id: I4920a841e0199a071756bba5175d178858935aa7 WMI: enable/disable TWT requester / responder separately CRs-Fixed: 2262693 --- fw/wmi_services.h | 5 +++++ fw/wmi_unified.h | 37 ++++++++++++++++++++++++++++++++++++- fw/wmi_version.h | 2 +- 3 files changed, 42 insertions(+), 2 deletions(-) diff --git a/fw/wmi_services.h b/fw/wmi_services.h index 12db783b0630..6d1268ab32c7 100644 --- a/fw/wmi_services.h +++ b/fw/wmi_services.h @@ -484,6 +484,11 @@ typedef enum { WMI_SERVICE_QOS_NULL_FRAME_TX_OVER_WMI = 264, /* Indicates that FW supports tx of QoS null frame downloaded through WMI interface */ WMI_SERVICE_SCAN_CONFIG_PER_CHANNEL = 265, /* Indicates that FW supports per channel configuration support in the scan start command */ WMI_SERVICE_CSA_BEACON_TEMPLATE = 266, /* Indicates that FW supports updating CSA count in beacon template */ + WMI_SERVICE_BROADCAST_TWT_REQUESTER = 267, /* Indicates FW supports Broadcast TWT REQUESTER */ + WMI_SERVICE_BROADCAST_TWT_RESPONDER = 268, /* Indicates FW supports Broadcast TWT RESPONDER */ + WMI_SERVICE_TWT_NUDGE = 269, /* Indicates that FW supports TWT Nudge command and event */ + WMI_SERVICE_TWT_STATS = 270, /* Indicates that FW supports TWT Get_stats command and event */ + WMI_SERVICE_TWT_ALL_DIALOG_ID = 271, /* Indicates that FW supports TWT ALL dialog ID(255) for all commands and events, except for TWT add dialog and TWT get stats */ WMI_MAX_EXT2_SERVICE diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index 1cd176cd7913..43ce3c0cc792 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -28117,7 +28117,7 @@ typedef struct { A_UINT32 flags; } wmi_wlm_config_cmd_fixed_param; -/* Broadcast TWT enable/disable */ +/* Broadcast TWT enable/disable for both REQUESTER and RESPONDER */ #define TWT_EN_DIS_FLAGS_GET_BTWT(flag) WMI_GET_BITS(flag, 0, 1) #define TWT_EN_DIS_FLAGS_SET_BTWT(flag, val) WMI_SET_BITS(flag, 0, 1, val) @@ -28129,6 +28129,41 @@ typedef struct { #define TWT_EN_DIS_FLAGS_GET_AX_MBSSID(flag) WMI_GET_BITS(flag, 2, 1) #define TWT_EN_DIS_FLAGS_SET_AX_MBSSID(flag, val) WMI_SET_BITS(flag, 2, 1, val) +/* Configuration of TWT Modes, + * If this BIT is set BIT4/5 will be used in FW, else BIT4/5 will be ignored. + * Which means when we receive WMI_TWT_ENABLE_CMDID command from host, + * without BIT3 set we will enable both REQUESTER/RESPONDER. + * + * Same interepretation is used in WMI_TWT_DISABLE_CMDID, if BIT3 is not set + * we will disable both REQUESTER and RESPONDER. + */ +#define TWT_EN_DIS_FLAGS_GET_REQ_RES_BCAST_CONFIG(flag) WMI_GET_BITS(flag, 3, 1) +#define TWT_EN_DIS_FLAGS_SET_REQ_RES_BCAST_CONFIG(flag, val) WMI_SET_BITS(flag, 3, 1, val) + +/* + * The flags are used both in WMI_TWT_ENABLE_CMDID and WMI_TWT_DISABLE_CMDID. + * For instance, in WMI_TWT_ENABLE_CMDID if BIT4=0 and BIT5=0, then we will + * enable only Requester, we will not change any configuration of RESPONDER. + * + * Same way in WMI_TWT_DISABLE_CMDID if BIT4=0 and BIT5=0, then we will only + * disable REQUESTER, we will not alter any other configurations. + * + * If host is enabling or disabling both REQUESTER and RESPONDER host will + * send two WMI commands, one for REQUESTER and one for RESPONDER. + * + * |-----------------------------------------------------| + * |BIT4=0, BIT5=0 | Enable/Disable TWT requester | + * |-----------------------------------------------------| + * |BIT4=0, BIT5=1 | Enable/Disable BCAST TWT requester | + * |-----------------------------------------------------| + * |BIT4=1, BIT5=0 | Enable/Disable TWT responder | + * |-----------------------------------------------------| + * |BIT4=1, BIT5=1 | Enable/Disable BCAST TWT responder | + * |-----------------------------------------------------| + */ +#define TWT_FLAGS_GET_MODE(flag) WMI_GET_BITS(flag, 4, 2) +#define TWT_FLAGS_SET_MODE(flag, val) WMI_SET_BITS(flag, 4, 2, val) + typedef struct { A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_twt_enable_cmd_fixed_param */ /** pdev_id for identifying the MAC. See macros starting with WMI_PDEV_ID_ for values. In non-DBDC case host should set it to 0 diff --git a/fw/wmi_version.h b/fw/wmi_version.h index 409eaaec89d5..b93e43297f6c 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_ 920 +#define __WMI_REVISION_ 921 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work