From c42a4ce155bac26a7cb07e564c5cc0711ba1530b Mon Sep 17 00:00:00 2001 From: spuligil Date: Thu, 7 Oct 2021 12:02:26 -0700 Subject: [PATCH] fw-api: CL 15963168 - update fw common interface files Change-Id: I9fae8d6b6cf23977d3a45ea4f82044df126b32e3 WMI: extra flags to enable/disable RTS/CTS CRs-Fixed: 2262693 --- fw/wmi_services.h | 1 + fw/wmi_unified.h | 40 +++++++++++++++++++++++++++++++++++++++- fw/wmi_version.h | 2 +- 3 files changed, 41 insertions(+), 2 deletions(-) diff --git a/fw/wmi_services.h b/fw/wmi_services.h index 12a3f0eec747..08ddad5a21c9 100644 --- a/fw/wmi_services.h +++ b/fw/wmi_services.h @@ -558,6 +558,7 @@ typedef enum { WMI_SERVICE_SPATIAL_REUSE_ENHANCEMENT_SUPPORT = 306, WMI_SERVICE_MU_SNIF = 307, /* FW support MU sniffer */ WMI_SERVICE_ICMP_OFFLOAD = 308, /* FW supports ping offload during APPS suspend */ + WMI_SERVICE_RTSCTS_FOR_UNICAST_MGMT_SUPPORT = 309, /* Indicates FW support RTSCTS for unicast management */ WMI_MAX_EXT2_SERVICE diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index 7151c84bf44e..0b08bb01ca99 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -14689,6 +14689,7 @@ typedef struct { * (value 1 is enabled, value 0 is disabled) * bits 1:5 are for ring 32 (i.e. ring id value * selected from 0 to 31 values) + * bits 6:7 are for LMAC/peer based routing. * bit 8 for peer based ring selection enabled or not * (value 1 is enabled, value 0 is disabled * bits 9-15 are valid when bit 8 is set to 1) @@ -14790,6 +14791,15 @@ typedef struct { */ #define WMI_PEER_PARAM_DYN_NSS_EN_MASK 0x24 +/* Per peer enable/disable RTS/CTS for unicast management frames. + * Enabling RTS/CTS only applicable after association process of the peer. + * Currently supported for spruce(2x2) chipset. + * Expected values: + * 0 : Disable RTS/CTS for unicast management frames. + * 1 : Enable RTS/CTS for unicast management frames. + */ +#define WMI_PEER_PARAM_EN_RTSCTS_FOR_UNICAST_MGMT 0x25 + /** mimo ps values for the parameter WMI_PEER_MIMO_PS_STATE */ #define WMI_PEER_MIMO_PS_NONE 0x0 #define WMI_PEER_MIMO_PS_STATIC 0x1 @@ -20817,6 +20827,26 @@ typedef enum { WMI_PEER_TID_MAX_NUM_MSDU_IN_MPDU_VALID = 0x00000004, } WMI_PEER_TID_EXT_CONFIG_VALID_BITMAP; +/* + * Per TID level enable/disable of RTS/CTS for that peer. + * Currently applicable only for "data tids" within targets which set + * the RTSCTS_FOR_UNICAST_MGMT WMI service bit. + * + * Enum values/Expected values for disable_rts_cts of + * WMI_PEER_TID_DISABLE_RTS_CTS_VALID as below: + * + * 0 (WMI_RTSCTS_RESET) - Use default RTS/CTS + * 1 (WMI_RTSCTS_DISABLE) - Disable RTS/CTS for every ppdu for that + * configured data TID + * 2 (WMI_RTSCTS_ENABLE) - Enable RTS/CTS for every ppdu for that + * configured data TID + */ +typedef enum { + WMI_RTSCTS_RESET = 0, + WMI_RTSCTS_DISABLE = 1, + WMI_RTSCTS_ENABLE = 2, +} WMI_PEER_TID_CONFIG_RTSCTS_CONTROL; + /** * MPDU Aggregate value for the TID */ @@ -20887,7 +20917,15 @@ typedef struct { */ A_UINT32 tid_config_supported_bitmap; - /* Knob to enable/disable RTS/CTS per TID */ + /* Knob to enable/disable RTS/CTS per TID + * Enum values/Expected values: + * + * 0 (WMI_RTSCTS_RESET) - Use default RTS/CTS + * 1 (WMI_RTSCTS_DISABLE) - Disable RTS/CTS for every ppdu for + * that configured data TID + * 2 (WMI_RTSCTS_ENABLE) - Enable RTS/CTS for every ppdu for + * that configured data TID + */ A_UINT32 disable_rts_cts; /** Size for mpdu aggregation diff --git a/fw/wmi_version.h b/fw/wmi_version.h index cd2df11cf802..c7f6db9c3590 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_ 1066 +#define __WMI_REVISION_ 1067 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work