summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHong Shi <hongsh@codeaurora.org>2017-03-13 16:50:21 +0800
committerGerrit - the friendly Code Review server <code-review@localhost>2017-03-20 07:28:26 -0700
commitd6f7a8daa4e267c31ffcb1f3b21ad96216f45a1a (patch)
treebd38cad83552d843769f1e317f70fbbccefc726c
parentbdade0e5d773ce5a83345233bc4cfeb21fe36b30 (diff)
qcacld-2.0: CL 2883169 - update fw common interface files
valid chaimask combination supported per MAC Change-Id: I21bb364e03af5d013e5e558d1f6dba22818fa17d CRs-fixed: 865207
-rw-r--r--CORE/SERVICES/COMMON/wmi_tlv_defs.h6
-rw-r--r--CORE/SERVICES/COMMON/wmi_unified.h57
-rw-r--r--CORE/SERVICES/COMMON/wmi_version.h2
3 files changed, 62 insertions, 3 deletions
diff --git a/CORE/SERVICES/COMMON/wmi_tlv_defs.h b/CORE/SERVICES/COMMON/wmi_tlv_defs.h
index c6dd5c5e7125..5bec4b7f2cef 100644
--- a/CORE/SERVICES/COMMON/wmi_tlv_defs.h
+++ b/CORE/SERVICES/COMMON/wmi_tlv_defs.h
@@ -795,6 +795,8 @@ typedef enum {
WMITLV_TAG_STRUC_wmi_pdev_check_cal_version_cmd_fixed_param,
WMITLV_TAG_STRUC_wmi_pdev_check_cal_version_event_fixed_param,
WMITLV_TAG_STRUC_wmi_pdev_set_diversity_gain_cmd_fixed_param,
+ WMITLV_TAG_STRUC_WMI_MAC_PHY_CHAINMASK_COMBO,
+ WMITLV_TAG_STRUC_WMI_MAC_PHY_CHAINMASK_CAPABILITY,
} WMITLV_TAG_ID;
/*
@@ -3241,7 +3243,9 @@ WMITLV_CREATE_PARAM_STRUC(WMI_SERVICE_AVAILABLE_EVENTID);
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, WMI_HW_MODE_CAPABILITIES, hw_mode_caps, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, WMI_MAC_PHY_CAPABILITIES, mac_phy_caps, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WMI_SOC_HAL_REG_CAPABILITIES, WMI_SOC_HAL_REG_CAPABILITIES, soc_hal_reg_caps, WMITLV_SIZE_FIX) \
- WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, WMI_HAL_REG_CAPABILITIES_EXT, hal_reg_caps, WMITLV_SIZE_VAR)
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, WMI_HAL_REG_CAPABILITIES_EXT, hal_reg_caps, WMITLV_SIZE_VAR) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, WMI_MAC_PHY_CHAINMASK_COMBO, mac_phy_chainmask_combo, WMITLV_SIZE_VAR) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, WMI_MAC_PHY_CHAINMASK_CAPABILITY, mac_phy_chainmask_caps, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_SERVICE_READY_EXT_EVENTID);
/* Ready event */
diff --git a/CORE/SERVICES/COMMON/wmi_unified.h b/CORE/SERVICES/COMMON/wmi_unified.h
index 0697d367a739..5384ea79d784 100644
--- a/CORE/SERVICES/COMMON/wmi_unified.h
+++ b/CORE/SERVICES/COMMON/wmi_unified.h
@@ -17265,6 +17265,8 @@ typedef struct {
A_UINT32 he_cap_phy_info_5G[WMI_MAX_HECAP_PHY_SIZE];
wmi_ppe_threshold he_ppet2G;
wmi_ppe_threshold he_ppet5G;
+ /* chainmask table to be used for the MAC */
+ A_UINT32 chainmask_table_id;
} WMI_MAC_PHY_CAPABILITIES;
typedef struct {
@@ -17289,11 +17291,64 @@ typedef struct {
A_UINT32 hw_mode_config_type;
} WMI_HW_MODE_CAPABILITIES;
+/* Definition of valid chainmask and associated capabilities */
+typedef struct {
+ /* TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_MAC_PHY_CHAINMASK_CAPABILITY */
+ A_UINT32 tlv_header;
+ /* supported flags: Capabilities for this chianmask*/
+ union {
+ struct {
+ A_UINT32 supports_chan_width_20:1,
+ supports_chan_width_40:1,
+ supports_chan_width_80:1,
+ supports_chan_width_160:1,
+ supports_chan_width_80P80:1,
+ reserved:22, /* bits 26:5 */
+ chain_mask_2G:1,
+ chain_mask_5G:1,
+ chain_mask_tx:1,
+ chain_mask_rx:1,
+ supports_aDFS:1; /* agile DFS */
+ };
+ A_UINT32 supported_flags;
+ };
+ A_UINT32 chainmask;
+} WMI_MAC_PHY_CHAINMASK_CAPABILITY;
+
+typedef struct {
+ /* TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_MAC_PHY_CHAINMASK_COMBO */
+ A_UINT32 tlv_header;
+ A_UINT32 chainmask_table_id;
+ /* Number of vaild Chainmask in the table */
+ A_UINT32 num_valid_chainmask;
+ /*
+ * This TLV is followed by the below TLVs:
+ * WMI_MAC_PHY_CHAINMASK_CAPABILITY mac_phy_chainmask_caps[num_valid_chainmask]
+ */
+} WMI_MAC_PHY_CHAINMASK_COMBO;
+
typedef struct {
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_WMI_SOC_MAC_PHY_HW_MODE_CAPS */
/* num HW modes */
A_UINT32 num_hw_modes;
- /* num_hw_modes WMI_HW_MODE_CAPABILITIES TLV's */
+ /* number of unique chainmask combo tables */
+ A_UINT32 num_chainmask_tables;
+ /*
+ * This TLV is followed by the below TLVs:
+ *
+ * WMI_HW_MODE_CAPABILITIES soc_hw_mode_caps[num_hw_modes]
+ *
+ * (intervening TLVs, e.g. HW_MODE_CAPS, MAC_PHY_CAPS, HAL_REG_CAPS)
+ *
+ * WMI_MAC_PHY_CHAINMASK_COMBO mac_phy_chainmask_combo[num_chainmask_tables]
+ * // number of chainmasks specified in mac_phy_chainmask_combo[0]
+ * WMI_MAC_PHY_CHAINMASK_CAPABILITY mac_phy_chainmask_caps[num_valid_chainmask0]
+ * // number of chainmasks specified in mac_phy_chainmask_combo[1]
+ * WMI_MAC_PHY_CHAINMASK_CAPABILITY mac_phy_chainmask_caps[num_valid_chainmask1]
+ * // number of chainmasks specified in mac_phy_chainmask_combo[2]
+ * WMI_MAC_PHY_CHAINMASK_CAPABILITY mac_phy_chainmask_caps[num_valid_chainmask2]
+ * etc.
+ */
} WMI_SOC_MAC_PHY_HW_MODE_CAPS;
/*Below are Reg caps per PHY. Please note PHY ID starts with 0.*/
diff --git a/CORE/SERVICES/COMMON/wmi_version.h b/CORE/SERVICES/COMMON/wmi_version.h
index 34a1024e4184..7aaa664b89f9 100644
--- a/CORE/SERVICES/COMMON/wmi_version.h
+++ b/CORE/SERVICES/COMMON/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_ 352
+#define __WMI_REVISION_ 353
/** The Version Namespace should not be normally changed. Only
* host and firmware of the same WMI namespace will work