summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@quicinc.com>2017-04-25 09:43:33 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2017-04-25 09:43:33 -0700
commitc2109fe4614223f86b1d2fdbd3748b2bb581f86f (patch)
tree73cb35cbb52e0316db16bc88f8b486ec81bf5a4b
parent8cbbedf99674ae8f4a1a2f82c656b362cd626552 (diff)
parentbb93a9b3e476e9ede93f9ea6506760da84f46d48 (diff)
Merge changes I61c1e98f,I632fb31f,I5a213611,Ib0a7f4cd,Iaf05eb8f into wlan-cld2.driver.lnx.1.0-dev
* changes: qcacld-2.0: CL 3026509 - update fw common interface files qcacld-2.0: CL 3018077 - update fw common interface files qcacld-2.0: CL 3002496 - update fw common interface files qcacld-2.0: CL 2977872 - update fw common interface files qcacld-2.0: CL 2975160 - update fw common interface files
-rw-r--r--CORE/SERVICES/COMMON/wmi_tlv_defs.h18
-rw-r--r--CORE/SERVICES/COMMON/wmi_unified.h123
-rw-r--r--CORE/SERVICES/COMMON/wmi_version.h2
-rw-r--r--CORE/SERVICES/WMI/wmi_unified.c2
4 files changed, 126 insertions, 19 deletions
diff --git a/CORE/SERVICES/COMMON/wmi_tlv_defs.h b/CORE/SERVICES/COMMON/wmi_tlv_defs.h
index df5c0d906668..3dfe4c584932 100644
--- a/CORE/SERVICES/COMMON/wmi_tlv_defs.h
+++ b/CORE/SERVICES/COMMON/wmi_tlv_defs.h
@@ -813,6 +813,9 @@ typedef enum {
WMITLV_TAG_STRUC_wmi_he_rate_set,
WMITLV_TAG_STRUC_wmi_congestion_stats,
WMITLV_TAG_STRUC_wmi_set_init_country_cmd_fixed_param,
+ WMITLV_TAG_STRUC_wmi_scan_dbs_duty_cycle_fixed_param,
+ WMITLV_TAG_STRUC_wmi_scan_dbs_duty_cycle_param_tlv,
+ WMITLV_TAG_STRUC_wmi_pdev_div_get_rssi_antid_fixed_param,
} WMITLV_TAG_ID;
/*
@@ -1142,6 +1145,8 @@ typedef enum {
OP(WMI_VDEV_GET_TX_POWER_CMDID) \
OP(WMI_OFFCHAN_DATA_TX_SEND_CMDID) \
OP(WMI_SET_INIT_COUNTRY_CMDID) \
+ OP(WMI_SET_SCAN_DBS_DUTY_CYCLE_CMDID) \
+ OP(WMI_PDEV_DIV_GET_RSSI_ANTID_CMDID) \
/* add new CMD_LIST elements above this line */
/*
@@ -1525,6 +1530,13 @@ WMITLV_CREATE_PARAM_STRUC(WMI_START_SCAN_CMDID);
WMITLV_CREATE_PARAM_STRUC(WMI_SCAN_ADAPTIVE_DWELL_CONFIG_CMDID);
+/* Set scan selection duty cycle */
+#define WMITLV_TABLE_WMI_SET_SCAN_DBS_DUTY_CYCLE_CMDID(id,op,buf,len) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_scan_dbs_duty_cycle_fixed_param, wmi_scan_dbs_duty_cycle_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_scan_dbs_duty_cycle_tlv_param, param, WMITLV_SIZE_VAR)
+
+WMITLV_CREATE_PARAM_STRUC(WMI_SET_SCAN_DBS_DUTY_CYCLE_CMDID);
+
/* Start ExtScan Cmd */
#define WMITLV_TABLE_WMI_EXTSCAN_START_CMDID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_extscan_start_cmd_fixed_param, wmi_extscan_start_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
@@ -2130,6 +2142,12 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_GREEN_AP_PS_ENABLE_CMDID);
WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_GET_TPC_CONFIG_CMDID);
+/* PDEV Get Antenna diversity chains rssi and antenna index Cmd */
+#define WMITLV_TABLE_WMI_PDEV_DIV_GET_RSSI_ANTID_CMDID(id,op,buf,len) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_div_get_rssi_antid_fixed_param, wmi_pdev_div_get_rssi_antid_fixed_param, fixed_param, WMITLV_SIZE_FIX)
+
+WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_DIV_GET_RSSI_ANTID_CMDID);
+
/* VDEV Get Tx power Cmd */
#define WMITLV_TABLE_WMI_VDEV_GET_TX_POWER_CMDID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_get_tx_power_cmd_fixed_param, wmi_vdev_get_tx_power_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
diff --git a/CORE/SERVICES/COMMON/wmi_unified.h b/CORE/SERVICES/COMMON/wmi_unified.h
index 8a95b1257b44..c20afd796c16 100644
--- a/CORE/SERVICES/COMMON/wmi_unified.h
+++ b/CORE/SERVICES/COMMON/wmi_unified.h
@@ -272,6 +272,8 @@ typedef enum {
WMI_SCAN_PROB_REQ_OUI_CMDID,
/** config adaptive dwell scan */
WMI_SCAN_ADAPTIVE_DWELL_CONFIG_CMDID,
+ /** Only applicable to DBS capable product */
+ WMI_SET_SCAN_DBS_DUTY_CYCLE_CMDID,
/* PDEV(physical device) specific commands */
/** set regulatorty ctl id used by FW to determine the exact ctl power limits */
@@ -366,6 +368,8 @@ typedef enum {
WMI_PDEV_CHECK_CAL_VERSION_CMDID,
/* Set Diversity Gain */
WMI_PDEV_SET_DIVERSITY_GAIN_CMDID,
+ /** Get chain RSSI and antena index command */
+ WMI_PDEV_DIV_GET_RSSI_ANTID_CMDID,
/* VDEV (virtual device) specific commands */
/** vdev create */
@@ -2083,6 +2087,7 @@ typedef enum {
WMI_FW_AP_RTT_RESPR = 0x00000080,
WMI_FW_NAN_RTT_INITR = 0x00000100,
WMI_FW_NAN_RTT_RESPR = 0x00000200,
+ WMI_FW_SCAN_DBS_POLICY = 0x00000400,
/*
* New fw sub feature capabilites before
* WMI_FW_MAX_SUB_FEAT_CAP
@@ -2517,6 +2522,9 @@ typedef struct {
* which is using MAC ID. 1 means PDEV ID, 0 means MAC ID.
*/
A_UINT32 use_pdev_id;
+
+ /** Maximum number of scan clients whose DBS scan duty cycle can be configured */
+ A_UINT32 max_num_dbs_scan_duty_cycle;
} wmi_resource_config;
#define WMI_RSRC_CFG_FLAG_SET(word32, flag, value) \
@@ -2752,6 +2760,8 @@ typedef struct {
A_UINT32 ie_bitmap[WMI_IE_BITMAP_SIZE];
/** Number of vendor OUIs. In the TLV vendor_oui[] **/
A_UINT32 num_vendor_oui;
+ /** Scan control flags extended **/
+ A_UINT32 scan_ctrl_flags_ext;
/**
* TLV (tag length value ) parameters follow the scan_cmd
@@ -2848,6 +2858,17 @@ typedef enum {
#define WMI_SCN_STOP_VAP_ALL 0x01000000
#define WMI_SCAN_STOP_ALL 0x04000000
+/** extended Scan ctrl flags **/
+#define WMI_SCAN_FLAG_EXT_DBS_SCAN_POLICY_MASK 0x00000003 /* Bit 0-1 reserved for DBS scan selection policy.*/
+
+#define WMI_SCAN_DBS_POLICY_DEFAULT 0x0 /** Select duty cycle if configured, else fall back to whatever
+ policy scan manager computes */
+#define WMI_SCAN_DBS_POLICY_FORCE_NONDBS 0x1 /** Force to select Non-DBS scan */
+#define WMI_SCAN_DBS_POLICY_IGNORE_DUTY 0x2 /** Ignore duty cycle even if configured and fall back to whatever
+ policy scan manager computes*/
+#define WMI_SCAN_DBS_POLICY_RESERVED 0x3
+#define WMI_SCAN_DBS_POLICY_MAX 0x3
+
typedef struct {
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_stop_scan_cmd_fixed_param */
/** requestor requesting cancel */
@@ -4358,6 +4379,18 @@ typedef struct {
A_UINT32 param;
} wmi_pdev_get_tpc_config_cmd_fixed_param;
+typedef struct {
+ A_UINT32 tlv_header; /* WMITLV_TAG_STRUC_wmi_pdev_div_get_rssi_antid_fixed_param */
+ /** pdev_id for identifying the MAC */
+ A_UINT32 pdev_id;
+ /** RSSI (rssi_chain_x_pri20) on each chain (units: dB above noise floor) */
+ A_UINT32 chain_rssi[WMI_MAX_CHAINS];
+ /** index of the last-used antenna for each chain */
+ A_UINT32 ant_id[WMI_MAX_CHAINS];
+ /** mac address of diversity peer */
+ wmi_mac_addr macaddr;
+} wmi_pdev_div_get_rssi_antid_fixed_param;
+
#define WMI_FAST_DIVERSITY_BIT_OFFSET 0
#define WMI_SLOW_DIVERSITY_BIT_OFFSET 1
@@ -7285,6 +7318,21 @@ typedef enum {
/* param to specify probe request Tx delay during Fast Initial Link Setup */
WMI_VDEV_PARAM_FILS_MAX_CHANNEL_GUARD_TIME, /* units = milliseconds */
+ /* enable or disable NOA for P2P GO */
+ WMI_VDEV_PARAM_DISABLE_NOA_P2P_GO,
+
+ /** Per band user management frame fix rate setting
+ * BIT 31: enable (1) or disable (0) mgmt fix rate for 5G
+ * BIT 30: enable (1) or disable (0) mgmt fix rate for 2G
+ *
+ * BIT 23: 11ax (1) or legacy (0) rate code
+ * BITS [22..12]: rate code for 5G
+ *
+ * BIT 11: 11ax (1) or legacy (0) rate code
+ * BITS [10..0]: rate code for 2G
+ */
+ WMI_VDEV_PARAM_PER_BAND_MGMT_TX_RATE,
+
/*
* === ADD NEW VDEV PARAM TYPES ABOVE THIS LINE ===
* The below vdev param types are used for prototyping, and are
@@ -17608,26 +17656,37 @@ typedef struct {
A_UINT32 mac_id; /* MAC ID */
A_UINT32 rate_flags;
/**
- * FLAG_ONE_CHAIN 0x001 - one chain mask
- * FLAG_TWO_CHAIN 0x005 - two chain mask
- * FLAG_THREE_CHAIN 0x007 - three chain mask
- * FLAG_FOUR_CHAIN 0x00F - four chain mask
- * FLAG_STBC 0x010 - STBC is set
- * FLAG_40MHZ 0x020
- * FLAG_80MHZ 0x040
- * FLAG_160MHZ 0x080
- * FLAG_TXBF 0x0100 - Tx Bf enabled
- * FLAG_RTSENA 0x0200 - RTS enabled
- * FLAG_CTSENA 0x0400 - CTS enabled
- * FLAG_LDPC 0x0800 - LDPC set
- * FLAG_SERIES1 0x1000 -
- * FLAG_SGI 0x2000 - Short gaurd interval
- * FLAG_MU2 0x4000 - MU2 data
- * FLAG_MU3 0x8000 - MU3 data
+ * FLAG_ONE_CHAIN 0x00000001 - one chain mask
+ * FLAG_TWO_CHAIN 0x00000003 - two chain mask
+ * FLAG_THREE_CHAIN 0x00000007 - three chain mask
+ * FLAG_FOUR_CHAIN 0x0000000F - four chain mask
+ * FLAG_FIVE_CHAIN 0x0000001F - five chain mask
+ * FLAG_SIX_CHAIN 0x0000003F - six chain mask
+ * FLAG_SEVEN_CHAIN 0x0000007F - seven chain mask
+ * FLAG_EIGHT_CHAIN 0x000000FF - eight chain mask
+ * FLAG_STBC 0x00000100 - STBC is set
+ * FLAG_40MHZ 0x00000200
+ * FLAG_80MHZ 0x00000300
+ * FLAG_160MHZ 0x00000400
+ * FLAG_TXBF 0x00000800 - Tx Bf enabled
+ * FLAG_RTSENA 0x00001000 - RTS enabled
+ * FLAG_CTSENA 0x00002000 - CTS enabled
+ * FLAG_LDPC 0x00004000 - LDPC set
+ * FLAG_SGI 0x00008000 - Short gaurd interval
+ * (0x00010000-0x00080000 unused)
+ *------------------
+ * 0x00100000-0x00700000 used for SU/MU/OFDMA tx mode
+ * FLAG_SU 0x00100000 - SU Data
+ * FLAG_DL_MU_MIMO_AC 0x00200000 - DL AC MU data
+ * FLAG_DL_MU_MIMO_AX 0x00300000 - DL AX MU data
+ * FLAG_DL_OFDMA 0x00400000 - DL OFDMA data
+ * FLAG_UL_OFDMA 0x00500000 - UL OFDMA data
+ * FLAG_UL_MU_MIMO 0x00600000 - UL MU data
+ *------------------
* */
A_UINT32 nss;
/**
- * NSS 0x0 - 0x3
+ * NSS 0x0 - 0x7
* */
A_UINT32 preamble;
/**
@@ -17635,6 +17694,7 @@ typedef struct {
* PREAM_CCK - 0x1
* PREAM_HT - 0x2
* PREAM_VHT - 0x3
+ * PREAM_HE - 0x4
* */
A_UINT32 hw_rate;
/**
@@ -17658,7 +17718,7 @@ typedef struct {
* CCK_2_SHORT_MBPS - 0x6
*
* *** HW_HT / VHT_RATE ***
- * MCS 0x0 - 0x9
+ * MCS 0x0 - 0xb
* */
} wmi_pdev_get_tpc_cmd_fixed_param;
@@ -18368,6 +18428,32 @@ typedef struct {
*/
} wmi_scan_adaptive_dwell_config_fixed_param;
+typedef struct {
+ A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_scan_dbs_duty_cycle_param_tlv */
+ /** module_id **/
+ A_UINT32 module_id;
+ /** number of dbs scans */
+ A_UINT32 num_dbs_scans;
+ /** number of non-dbs scans */
+ A_UINT32 num_non_dbs_scans;
+} wmi_scan_dbs_duty_cycle_tlv_param;
+
+typedef struct {
+ A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_scan_dbs_duty_cycle_fixed_param */
+ /* number of scan client dutycycle param elements */
+ A_UINT32 num_clients;
+ /** pdev_id for identifying the MAC
+ * See macros starting with WMI_PDEV_ID_ for values.
+ * In non-DBDC case host should set it to 0
+ */
+ A_UINT32 pdev_id;
+/**
+ * followed by TLV (tag length value) parameters array
+ * The TLV's are:
+ * wmi_scan_selection_duty_cycle_tlv_param[num_clients];
+ */
+} wmi_scan_dbs_duty_cycle_fixed_param;
+
typedef enum {
WMI_REG_EXT_FCC_MIDBAND = 0,
WMI_REG_EXT_JAPAN_MIDBAND = 1,
@@ -18977,6 +19063,7 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command)
WMI_RETURN_STRING(WMI_VDEV_GET_TX_POWER_CMDID);
WMI_RETURN_STRING(WMI_OFFCHAN_DATA_TX_SEND_CMDID);
WMI_RETURN_STRING(WMI_SET_INIT_COUNTRY_CMDID);
+ WMI_RETURN_STRING(WMI_SET_SCAN_DBS_DUTY_CYCLE_CMDID);
}
return "Invalid WMI cmd";
diff --git a/CORE/SERVICES/COMMON/wmi_version.h b/CORE/SERVICES/COMMON/wmi_version.h
index 6375e585c3e5..299f63c1984a 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_ 374
+#define __WMI_REVISION_ 379
/** The Version Namespace should not be normally changed. Only
* host and firmware of the same WMI namespace will work
diff --git a/CORE/SERVICES/WMI/wmi_unified.c b/CORE/SERVICES/WMI/wmi_unified.c
index a98982f19b10..9ae9f7282248 100644
--- a/CORE/SERVICES/WMI/wmi_unified.c
+++ b/CORE/SERVICES/WMI/wmi_unified.c
@@ -746,6 +746,8 @@ static u_int8_t* get_wmi_cmd_string(WMI_CMD_ID wmi_command)
CASE_RETURN_STRING(WMI_VDEV_GET_TX_POWER_CMDID);
CASE_RETURN_STRING(WMI_OFFCHAN_DATA_TX_SEND_CMDID);
CASE_RETURN_STRING(WMI_SET_INIT_COUNTRY_CMDID);
+ CASE_RETURN_STRING(WMI_SET_SCAN_DBS_DUTY_CYCLE_CMDID);
+ CASE_RETURN_STRING(WMI_PDEV_DIV_GET_RSSI_ANTID_CMDID);
}
return "Invalid WMI cmd";
}