qcacld-3.0: CL 1515963 – update fw common interface files

Propagation from qcacld-2.0 to qcacld-3.0.

WMI changes for per_chain_RSSI stats
Add WMI defs for weighted slow diversity

Change-Id: I90dc3218517e1a6b38fd7ded07c5ea17bc832b9b
CRs-Fixed: 865207
This commit is contained in:
Himanshu Agarwal
2016-05-24 09:00:39 +05:30
committed by Vishwajith Upendra
parent 82972fd824
commit 8631954b6d
3 changed files with 68 additions and 8 deletions

View File

@@ -77,6 +77,7 @@ extern "C" {
#define MAX_TX_RATE_VALUES 10 /*Max Tx Rates */
#define MAX_RSSI_VALUES 10 /*Max Rssi values */
#define MAX_CHAINS 8
/* The WLAN_MAX_AC macro cannot be changed without breaking
* WMI compatibility.
@@ -3742,6 +3743,32 @@ typedef struct {
#define WMI_FAST_DIVERSITY_BIT_OFFSET 0
#define WMI_SLOW_DIVERSITY_BIT_OFFSET 1
#define WMI_SLOW_DIVERSITY_CH0_WEIGHT_SHIFT 2
#define WMI_SLOW_DIVERSITY_CH0_WEIGHT_MASK \
(0xf << WMI_SLOW_DIVERSITY_CH0_WEIGHT_SHIFT)
#define WMI_SLOW_DIVERSITY_CH0_WEIGHT_GET_BITS(word32) \
(((word32) & WMI_SLOW_DIVERSITY_CH0_WEIGHT_MASK) >> \
WMI_SLOW_DIVERSITY_CH0_WEIGHT_SHIFT)
#define WMI_SLOW_DIVERSITY_CH0_WEIGHT_SET_BITS(word32, value) \
do { \
(word32) &= ~WMI_SLOW_DIVERSITY_CH0_WEIGHT_MASK; \
(word32) |= ((value) << WMI_SLOW_DIVERSITY_CH0_WEIGHT_SHIFT) & \
WMI_SLOW_DIVERSITY_CH0_WEIGHT_MASK; \
} while (0)
#define WMI_SLOW_DIVERSITY_CH1_WEIGHT_SHIFT 6
#define WMI_SLOW_DIVERSITY_CH1_WEIGHT_MASK \
(0xf << WMI_SLOW_DIVERSITY_CH1_WEIGHT_SHIFT)
#define WMI_SLOW_DIVERSITY_CH1_WEIGHT_GET_BITS(word32) \
(((word32) & WMI_SLOW_DIVERSITY_CH1_WEIGHT_MASK) >> \
WMI_SLOW_DIVERSITY_CH1_WEIGHT_SHIFT)
#define WMI_SLOW_DIVERSITY_CH1_WEIGHT_SET_BITS(word32, value) \
do { \
(word32) &= ~WMI_SLOW_DIVERSITY_CH1_WEIGHT_MASK; \
(word32) |= ((value) << WMI_SLOW_DIVERSITY_CH1_WEIGHT_SHIFT) & \
WMI_SLOW_DIVERSITY_CH1_WEIGHT_MASK; \
} while (0)
typedef struct {
/** TLV tag and len; tag equals
* WMITLV_TAG_STRUC_wmi_pdev_set_antenna_diversity_cmd_fixed_param
@@ -3755,10 +3782,16 @@ typedef struct {
*/
A_UINT32 pdev_id;
};
/** parameter */
/** bit0 is for enable/disable FAST diversity,
* and bit1 is for enable/disable SLOW diversity,
* 0->disable, 1->enable
/*
* The following "value" field is divided into bit fields as follows:
* bits | purpose
* -----+---------------------------------------
* 0 | enable/disable FAST diversity
* 1 | enable/disable SLOW diversity
* 5:2 | chain0 slow-diversity weighting factor
* 9:6 | chain1 slow-diversity weighting factor
* 31:10| currenty unused (set to 0x0)
* Refer to the above WMI_[FAST/SLOW]_DIVERSITY constants.
*/
A_UINT32 value;
} wmi_pdev_set_antenna_diversity_cmd_fixed_param;
@@ -4193,6 +4226,7 @@ typedef enum {
WMI_REQUEST_VDEV_RATE_STAT = 0x20,
WMI_REQUEST_INST_STAT = 0x40,
WMI_REQUEST_MIB_STAT = 0x80,
WMI_REQUEST_RSSI_PER_CHAIN_STAT = 0x100,
} wmi_stats_id;
typedef struct {
@@ -4897,6 +4931,28 @@ typedef struct {
A_UINT32 reserved_4;
} wmi_mib_stats;
typedef struct {
/* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_rssi_stats */
A_UINT32 tlv_header;
A_UINT32 vdev_id;
A_INT32 rssi_avg_beacon[MAX_CHAINS];
A_INT32 rssi_avg_data[MAX_CHAINS];
wmi_mac_addr peer_macaddr;
} wmi_rssi_stats;
typedef struct {
/*
* TLV tag and len; tag equals
* WMITLV_TAG_STRUC_wmi_per_chain_rssi_stats
*/
A_UINT32 tlv_header;
A_UINT32 num_per_chain_rssi_stats;
/*
* This TLV is followed by another TLV of array of structs:
* wmi_rssi_stats rssi_stats[num_per_chain_rssi_stats];
*/
} wmi_per_chain_rssi_stats;
typedef struct {
A_UINT32 tlv_header;
/** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_create_cmd_fixed_param */