diff options
| author | Poddar, Siddarth <siddpodd@qti.qualcomm.com> | 2016-01-27 13:37:16 +0530 |
|---|---|---|
| committer | Anjaneedevi Kapparapu <akappa@codeaurora.org> | 2016-02-04 13:21:03 +0530 |
| commit | be607acd47fdc6d813e2fd3906941d08c094d8b8 (patch) | |
| tree | 8853672553a771447663d356d70d5dc20f47719b | |
| parent | 7e819f401e070dd353e3e116480851cc65c0acad (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.h | 3 | ||||
| -rw-r--r-- | CORE/SERVICES/COMMON/wmi_unified.h | 63 | ||||
| -rw-r--r-- | CORE/SERVICES/COMMON/wmi_version.h | 2 |
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 |
