From b9656e4076ead2ad941448e08c44e3ba7657ec3e Mon Sep 17 00:00:00 2001 From: spuligil Date: Sat, 25 Jan 2020 18:00:40 -0800 Subject: [PATCH] fw-api: CL 9406114 - update fw common interface files Change-Id: I2edc03056fc8fb20bb42d8b8e14daed3630cfcea WMI: add Nss ratio fields to service_ready msgs CRs-Fixed: 2262693 --- fw/wmi_services.h | 1 + fw/wmi_unified.h | 85 +++++++++++++++++++++++++++++++++++++++++++++++ fw/wmi_version.h | 2 +- 3 files changed, 87 insertions(+), 1 deletion(-) diff --git a/fw/wmi_services.h b/fw/wmi_services.h index 0a273b37a337..853a2edcb66e 100644 --- a/fw/wmi_services.h +++ b/fw/wmi_services.h @@ -426,6 +426,7 @@ typedef enum { WMI_SERVICE_MULTIPLE_VDEV_RESTART_RESPONSE_SUPPORT = 235, /* indicates firmware supports Multiple vdev restart response */ WMI_SERVICE_ROAM_SCAN_CHANNEL_LIST_TO_HOST_SUPPORT = 236, /* Indicates firmware supports sending roam scan channel list to host */ WMI_SERVICE_PEER_DELETE_NO_PEER_FLUSH_TIDS_CMD = 237, /* Host should not send WMI_PEER_FLUSH_TIDS_CMD as part of peer delete */ + WMI_SERVICE_NSS_RATIO_TO_HOST_SUPPORT = 238, /* Indicates firmware supports sending NSS ratio info to host */ /******* ADD NEW SERVICES HERE *******/ diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index fd85bc25d7f9..0d54b79abe05 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -24048,6 +24048,74 @@ typedef enum wmi_hw_mode_config_type { #define WMI_MAX_MUBFEE_GET(flags) WMI_GET_BITS(flags, 28, 4) #define WMI_MAX_MUBFEE_SET(flags, value) WMI_SET_BITS(flags, 28, 4, value) +/* + * +-----------------------------+------------------------------------+ + * | Transmitted VHT Capablities | NSS Support of STA | + * | Information Field | transmitted VHT Capablites | + * +---------------+-------------+------+------+------+------+--------+ + * | Supported | Extended | | | | | | + * | Channel | NSS BW | | | | | | + * | WidthSet | Suppport |20 Mhz|40 Mhz|80 Mhz|160Mhz|80+80Mhz| + * +---------------+-------------+------+------+------+------+--------+ + * | 0 | 0 | 1 | 1 | 1 | | | + * +---------------+-------------+------+------+------+------+--------+ + * | 0 | 1 | 1 | 1 | 1 | 1/2 | | + * +---------------+-------------+------+------+------+------+--------+ + * | 0 | 2 | 1 | 1 | 1 | 1/2 | 1/2 | + * +---------------+-------------+------+------+------+------+--------+ + * | 0 | 3 | 1 | 1 | 1 | 3/4 | 3/4 | + * +---------------+-------------+------+------+------+------+--------+ + * | 1 | 0 | 1 | 1 | 1 | 1 | | + * +---------------+-------------+------+------+------+------+--------+ + * | 1 | 1 | 1 | 1 | 1 | 1 | 1/2 | + * +---------------+-------------+------+------+------+------+--------+ + * | 1 | 2 | 1 | 1 | 1 | 1 | 3/4 | + * +---------------+-------------+------+------+------+------+--------+ + * | 1 | 3 | 2 | 2 | 2 | 2 | 1 | + * +---------------+-------------+------+------+------+------+--------+ + * | 2 | 0 | 1 | 1 | 1 | 1 | 1 | + * +---------------+-------------+------+------+------+------+--------+ + * | 2 | 3 | 2 | 2 | 2 | 1 | 1 | + * +---------------+-------------+------+------+------+------+--------+ + */ + +/* + * [0] : WMI_NSS_RATIO_ENABLE_DISABLE_BITPOS + * [4:1] : WMI_NSS_RATIO_INFO_BITPOS + */ +#define WMI_NSS_RATIO_ENABLE_DISABLE_BITPOS 0x0 +#define WMI_NSS_RATIO_INFO_BITPOS 0x1 + +/* + * WMI_NSS_RATIO_ENABLE_DISABLE values: + * [0] : 0 - WMI_NSS_RATIO_DISABLE + * [0] : 1 - WMI_NSS_RATIO_ENABLE + */ +#define WMI_NSS_RATIO_DISABLE 0x0 +#define WMI_NSS_RATIO_ENABLE 0x1 + +/* + * WMI_NSS_RATIO_INFO values: + * [4:1] : 0000 - WMI_NSS_RATIO_1BY2_NSS + * [4:1] : 0001 - WMI_NSS_RATIO_3BY4_NSS + * [4:1] : 0010 - WMI_NSS_RATIO_1_NSS + * [4:1] : 0011 - WMI_NSS_RATIO_2_NSS + */ +#define WMI_NSS_RATIO_1BY2_NSS 0x0 +#define WMI_NSS_RATIO_3BY4_NSS 0x1 +#define WMI_NSS_RATIO_1_NSS 0x2 +#define WMI_NSS_RATIO_2_NSS 0x3 + +#define WMI_NSS_RATIO_ENABLE_DISABLE_SET(param, value) \ + WMI_SET_BITS(param, WMI_NSS_RATIO_ENABLE_DISABLE_BITPOS, 1, value) +#define WMI_NSS_RATIO_ENABLE_DISABLE_GET(dword) \ + WMI_GET_BITS(dword, WMI_NSS_RATIO_ENABLE_DISABLE_BITPOS, 1) + +#define WMI_NSS_RATIO_INFO_SET(param, value) \ + WMI_SET_BITS(param, WMI_NSS_RATIO_INFO_BITPOS, 4, value) +#define WMI_NSS_RATIO_INFO_GET(dword) \ + WMI_GET_BITS(dword, WMI_NSS_RATIO_INFO_BITPOS, 4) + typedef struct { A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_MAC_PHY_CAPABILITIES */ /* hw_mode_id - identify a particular set of HW characteristics, as specified @@ -24199,6 +24267,23 @@ typedef struct { A_UINT32 high_2ghz_chan_freq; /* units = MHz */ A_UINT32 low_5ghz_chan_freq; /* units = MHz */ A_UINT32 high_5ghz_chan_freq; /* units = MHz */ + + /* + * NSS ratio to be sent to Host during boot-up capabilities negotiation + * + * Bit 0 - refer to WMI_NSS_RATIO_ENABLE_DISABLE_ definitions + * [0] : 0 - WMI_NSS_RATIO_DISABLE + * [0] : 1 - WMI_NSS_RATIO_ENABLE + * + * Bits 4:1 - refer to WMI_NSS_RATIO_INFO_ definitions + * [4:1] : 0000 - WMI_NSS_RATIO_1BY2_NSS + * [4:1] : 0001 - WMI_NSS_RATIO_3BY4_NSS + * [4:1] : 0010 - WMI_NSS_RATIO_1_NSS + * [4:1] : 0011 - WMI_NSS_RATIO_2_NSS + * + * [31:5] : Reserved + */ + A_UINT32 nss_ratio; } WMI_MAC_PHY_CAPABILITIES; typedef struct { diff --git a/fw/wmi_version.h b/fw/wmi_version.h index 3c93ca23f77c..b885ffd345ff 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_ 767 +#define __WMI_REVISION_ 768 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work