summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPoddar, Siddarth <siddpodd@qti.qualcomm.com>2016-01-27 13:37:16 +0530
committerAnjaneedevi Kapparapu <akappa@codeaurora.org>2016-02-04 13:21:03 +0530
commitbe607acd47fdc6d813e2fd3906941d08c094d8b8 (patch)
tree8853672553a771447663d356d70d5dc20f47719b
parent7e819f401e070dd353e3e116480851cc65c0acad (diff)
qcacld-2.0: CL 1450690 update fw common interface files
WMI per-peer max/min tx rate spec Change-Id: I7af4dc75058062f9b4b088133a0696b8fc6da04d CRs-Fixed: 865207
-rw-r--r--CORE/SERVICES/COMMON/wmi_services.h3
-rw-r--r--CORE/SERVICES/COMMON/wmi_unified.h63
-rw-r--r--CORE/SERVICES/COMMON/wmi_version.h2
3 files changed, 66 insertions, 2 deletions
diff --git a/CORE/SERVICES/COMMON/wmi_services.h b/CORE/SERVICES/COMMON/wmi_services.h
index ddf7ead0d745..5f7a87a32675 100644
--- a/CORE/SERVICES/COMMON/wmi_services.h
+++ b/CORE/SERVICES/COMMON/wmi_services.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011-2015 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2011-2016 The Linux Foundation. All rights reserved.
*
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
*
@@ -140,6 +140,7 @@ typedef enum {
WMI_SERVICE_SYNC_DELETE_CMDS, /* FW sends response event for Peer, Vdev delete commands */
WMI_SERVICE_SMART_ANTENNA_SW_SUPPORT,
WMI_SERVICE_SMART_ANTENNA_HW_SUPPORT,
+ WMI_SERVICE_RATECTRL_LIMIT_MAX_MIN_RATES, /* allow per-peer tx MCS min/max limits by host */
WMI_MAX_SERVICE=128 /* max service */
} WMI_SERVICE;
diff --git a/CORE/SERVICES/COMMON/wmi_unified.h b/CORE/SERVICES/COMMON/wmi_unified.h
index 4de43ecccc88..8bb7db5afb87 100644
--- a/CORE/SERVICES/COMMON/wmi_unified.h
+++ b/CORE/SERVICES/COMMON/wmi_unified.h
@@ -5871,6 +5871,10 @@ typedef struct {
#define WMI_PEER_PARAM_FIXED_RATE 0xF
/** Whitelist peer TIDs */
#define WMI_PEER_SET_MU_WHITELIST 0x10
+/** Set peer max tx rate (MCS) in adaptive rate ctrl */
+#define WMI_PEER_SET_MAX_TX_RATE 0x11
+/** Set peer minimal tx rate (MCS) in adaptive rate ctrl */
+#define WMI_PEER_SET_MIN_TX_RATE 0x12
/** mimo ps values for the parameter WMI_PEER_MIMO_PS_STATE */
#define WMI_PEER_MIMO_PS_NONE 0x0
@@ -5889,6 +5893,65 @@ typedef struct {
A_UINT32 param_value;
} wmi_peer_set_param_cmd_fixed_param;
+typedef union {
+/*
+ * The A_UINT16 "mode" and "tx_rate" fields can only be directly used
+ * by the target or a little-endian host.
+ * A big-endian host needs to use the WMI_PEER_MAX_MIN_TX_xxx_GET/SET
+ * macros on the A_UINT32 "value" field.
+ */
+ struct {
+ A_UINT16 mode; /* 0:CCK, 1:OFDM, 2:HT, 3:VHT (see WMI_RATE_PREAMBLE) */
+ A_UINT16 tx_rate; /* see per-mode specs below */
+ };
+ A_UINT32 value; /* for use by big-endian host */
+} wmi_peer_max_min_tx_rate;
+
+/*
+ * Any access to the mode/tx_rate in an big endian system should use
+ * the below Macros on the wmi_peer_max_min_tx_rate.value field.
+ */
+#define WMI_PEER_MAX_MIN_TX_MODE_GET(value32) WMI_GET_BITS(value32, 0, 16)
+#define WMI_PEER_MAX_MIN_TX_MODE_SET(value32, tx_mode) WMI_SET_BITS(value32, 0, 16, tx_mode)
+
+#define WMI_PEER_MAX_MIN_TX_RATE_GET(value32) WMI_GET_BITS(value32, 16, 16)
+#define WMI_PEER_MAX_MIN_TX_RATE_SET(value32, tx_mode) WMI_SET_BITS(value32, 16, 16, tx_mode)
+
+/* CCK max/min tx Rate description
+ * tx_rate = 0: 1Mbps,
+ * tx_rate = 1: 2Mbps
+ * tx_rate = 2: 5.5Mbps
+ * tx_rate = 3: 11Mbps
+ * tx_rate = else : invalid.
+ */
+#define WMI_MAX_CCK_TX_RATE 0x03
+
+/* OFDM max/min tx Rate description
+ * tx_rate = 0: 6Mbps,
+ * tx_rate = 1: 9Mbps
+ * tx_rate = 2: 12Mbps
+ * tx_rate = 3: 18Mbps
+ * tx_rate = 4: 24Mbps
+ * tx_rate = 5: 32Mbps
+ * tx_rate = 6: 48Mbps
+ * tx_rate = 7: 54Mbps
+ * tx_rate = else : invalid.
+ */
+#define WMI_MAX_OFDM_TX_RATE 0x07
+
+/* HT max/min tx rate description
+ * tx_rate = 0~7 : MCS Rate 0~7
+ * tx_rate=else : invalid.
+ */
+#define WMI_MAX_HT_TX_MCS 0x07
+
+/* VHT max/min tx rate description
+ * tx_rate = 0~9 : MCS Rate 0~9
+ * tx_rate=else : invalid.
+ */
+#define WMI_MAX_VHT_TX_MCS 0x09
+
+
#define MAX_SUPPORTED_RATES 128
typedef struct {
diff --git a/CORE/SERVICES/COMMON/wmi_version.h b/CORE/SERVICES/COMMON/wmi_version.h
index d54023c714cb..d02e3b303eba 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_ 203
+#define __WMI_REVISION_ 204
/** The Version Namespace should not be normally changed. Only
* host and firmware of the same WMI namespace will work