summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2017-06-29 06:42:20 -0600
committerLinux Build Service Account <lnxbuild@localhost>2017-06-29 06:42:20 -0600
commit06f0f65c9b7f7529629b6724d3e1580cde1452df (patch)
tree5b5d99fba0ed571151863956909d29eb954b9dab
parentaff599c95418a0b32abeccf67d813ece31da94ad (diff)
parent64f0a68ae189002dc3b2fc6de64f8b17ef212da3 (diff)
Promotion of wlan-api.lnx.1.1-00019.
CRs Change ID Subject -------------------------------------------------------------------------------------------------------------- 1107600 I266b92447e1e9153ea2186cabbf6241810fd4ebb fw-api: CL 3156191 - update fw common interface files 1107600 I719c31f72831a4d7c2b0ca7e621385b619cd5a44 fw-api: CL 3166967 - update fw common interface files 1107600 I56b5ca0118917eb30be1485b7042759dc689a23a fw-api: CL 3174922 - update fw common interface files 1107600 I49dd4c358550433ee48a80e7377637eaf07c0532 fw-api: CL 3150286 - update fw common interface files 1107600 Ie3a519da3f3ecffa57b2ffda42efbe07df6b8b9c fw-api: CL 3169015 - update fw common interface files 1107600 I374399e2530ad164ac02a33117f9eb5657b9ad71 fw-api: CL 3186656 - update fw common interface files Change-Id: I140f2f4e6e952f3222369233aa514d0682679797 CRs-Fixed: 1107600
-rwxr-xr-xfw/wmi_services.h1
-rwxr-xr-xfw/wmi_tlv_defs.h12
-rwxr-xr-xfw/wmi_unified.h61
-rwxr-xr-xfw/wmi_version.h2
4 files changed, 74 insertions, 2 deletions
diff --git a/fw/wmi_services.h b/fw/wmi_services.h
index f0a53be80981..21960d2e23b9 100755
--- a/fw/wmi_services.h
+++ b/fw/wmi_services.h
@@ -209,6 +209,7 @@ typedef enum {
WMI_SERVICE_CHAN_LOAD_INFO=128, /* The values in WMI_CHAN_INFO_EVENTID is the difference in cycle counters */
WMI_SERVICE_TX_PPDU_INFO_STATS_SUPPORT=129, /* support to report tx ppdu info stats via htt events */
+ WMI_SERVICE_VDEV_LIMIT_OFFCHAN_SUPPORT=130, /* support to report the offchannel duration limiting capability on connected interface */
/******* ADD NEW SERVICES HERE *******/
diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h
index 073259aacf6d..04a5cce5dccb 100755
--- a/fw/wmi_tlv_defs.h
+++ b/fw/wmi_tlv_defs.h
@@ -836,6 +836,8 @@ typedef enum {
WMITLV_TAG_STRUC_wmi_oem_dma_buf_release_entry,
WMITLV_TAG_STRUC_wmi_pdev_bss_chan_info_request_fixed_param,
WMITLV_TAG_STRUC_wmi_pdev_bss_chan_info_event_fixed_param,
+ WMITLV_TAG_STRUC_wmi_roam_lca_disallow_config_tlv_param,
+ WMITLV_TAG_STRUC_wmi_vdev_limit_offchan_cmd_fixed_param,
} WMITLV_TAG_ID;
/*
@@ -1171,6 +1173,7 @@ typedef enum {
OP(WMI_THERM_THROT_SET_CONF_CMDID) \
OP(WMI_OEM_DMA_RING_CFG_REQ_CMDID) \
OP(WMI_PDEV_BSS_CHAN_INFO_REQUEST_CMDID) \
+ OP(WMI_VDEV_LIMIT_OFFCHAN_CMDID) \
/* add new CMD_LIST elements above this line */
@@ -2198,6 +2201,12 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_BSS_CHAN_INFO_REQUEST_CMDID);
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)
WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_GET_TX_POWER_CMDID);
+/* Limit Offchannel duration Cmd */
+#define WMITLV_TABLE_WMI_VDEV_LIMIT_OFFCHAN_CMDID(id,op,buf,len) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_limit_offchan_cmd_fixed_param, wmi_vdev_limit_offchan_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
+
+WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_LIMIT_OFFCHAN_CMDID);
+
/* PDEV Set Base Mac Address Cmd */
#define WMITLV_TABLE_WMI_PDEV_SET_BASE_MACADDR_CMDID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_set_base_macaddr_cmd_fixed_param, wmi_pdev_set_base_macaddr_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
@@ -2976,7 +2985,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_DCC_UPDATE_NDL_CMDID);
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_FIXED_STRUC, wmi_mac_addr, bssid_black_list, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_FIXED_STRUC, wmi_ssid, ssid_white_list, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_FIXED_STRUC, wmi_mac_addr, bssid_preferred_list, WMITLV_SIZE_VAR) \
- WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, bssid_preferred_factor, WMITLV_SIZE_VAR)
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, bssid_preferred_factor, WMITLV_SIZE_VAR) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_roam_lca_disallow_config_tlv_param, lca_disallow_param, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_FILTER_CMDID);
/* TSF timestamp action cmd */
diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h
index f6a2d11d2d6d..773291580c28 100755
--- a/fw/wmi_unified.h
+++ b/fw/wmi_unified.h
@@ -431,6 +431,8 @@ typedef enum {
/** get tx power for the current vdev */
WMI_VDEV_GET_TX_POWER_CMDID,
+ /* limit STA offchannel activity */
+ WMI_VDEV_LIMIT_OFFCHAN_CMDID,
/* peer specific commands */
@@ -3885,6 +3887,26 @@ typedef struct {
A_UINT32 vdev_id; /** unique id identifying the VDEV, generated by the caller */
} wmi_vdev_get_tx_power_event_fixed_param;
+typedef enum {
+ /** Limit the offchannel duration */
+ WMI_VDEV_LIMIT_OFFCHAN_ENABLE = 0x1,
+ /** Skip DFS channels from Scan channel list.
+ * valid for both host scans and FW scans */
+ WMI_VDEV_LIMIT_OFFCHAN_SKIP_DFS = 0x2,
+} wmi_vdev_limit_offchan_flags;
+
+typedef struct {
+ A_UINT32 tlv_header; /* WMITLV_TAG_STRUC_wmi_vdev_limit_offchan_cmd_fixed_param */
+ /** Limit the duration of offchannel events requested by the vdev corresponding to the specified vdev_id */
+ A_UINT32 vdev_id;
+ /** see enum wmi_vdev_limit_offchan_flags */
+ A_UINT32 flags;
+ /** max offchannel time allowed in msec when WMI_VDEV_LIMIT_OFFCHAN_ENABLE flag is set */
+ A_UINT32 max_offchan_time;
+ /** rest time in msec on the BSS channel */
+ A_UINT32 rest_time;
+} wmi_vdev_limit_offchan_cmd_fixed_param;
+
#define WMI_CSA_EVENT_QSBW_ISE_ID_MASK 0x000000FF /* information sub element id for QSBW, expected value is 0x02 */
#define WMI_CSA_EVENT_QSBW_ISE_LEN_MASK 0x0000FF00 /* length of QSBW ISE data, expected value is 0x02 */
#define WMI_CSA_EVENT_QSBW_ISE_CAP_MASK 0x00FF0000 /* capabilities, 0x01 for 5MHz, 0x02 for 10MHz, 0x01|0x2 for both (see WMI_CSA_EVENT_QSBW_ISE bitmask defs) */
@@ -4328,6 +4350,11 @@ typedef enum {
* bit 16~31 : 11ag mode TX chain number.
*/
WMI_PDEV_PARAM_ABG_MODE_TX_CHAIN_NUM,
+ /** Enable/Disable cck txfir override
+ * bit 0 - enable (1) or disable (0) CCK tx FIR
+ * bits 31:1 - unused / reserved (set to 0)
+ */
+ WMI_PDEV_PARAM_ENABLE_CCK_TXFIR_OVERRIDE,
} WMI_PDEV_PARAM;
typedef struct {
@@ -9228,6 +9255,10 @@ typedef struct {
A_UINT32 hirssi_scan_delta;
/** 5G scan upper bound */
A_UINT32 hirssi_upper_bound;
+ /** roam scan rssi threshold for 5G band.
+ * offset from roam_scan_rssi_thres, in dB units
+ */
+ A_INT32 rssi_thresh_offset_5g;
/* The TLVs will follow.
* wmi_roam_scan_extended_threshold_param extended_param;
* wmi_roam_earlystop_rssi_thres_param earlystop_param;
@@ -9778,8 +9809,20 @@ enum {
ROAM_FILTER_OP_BITMAP_BLACK_LIST = 0x1,
ROAM_FILTER_OP_BITMAP_WHITE_LIST = 0x2,
ROAM_FILTER_OP_BITMAP_PREFER_BSSID = 0x4,
+ ROAM_FILTER_OP_BITMAP_LCA_DISALLOW = 0x8,
};
+/** lca_enable_source_bitmap */
+#define WMI_ROAM_LCA_DISALLOW_SOURCE_PER 0x1
+#define WMI_ROAM_LCA_DISALLOW_SOURCE_BMISS 0x2
+#define WMI_ROAM_LCA_DISALLOW_SOURCE_LOW_RSSI 0x4
+#define WMI_ROAM_LCA_DISALLOW_SOURCE_HIGH_RSSI 0x8
+#define WMI_ROAM_LCA_DISALLOW_SOURCE_PERIODIC 0x10
+#define WMI_ROAM_LCA_DISALLOW_SOURCE_MAWC 0x20 /* MAWC = Motion Aided Wifi connectivity */
+#define WMI_ROAM_LCA_DISALLOW_SOURCE_DENSE 0x40
+#define WMI_ROAM_LCA_DISALLOW_SOURCE_BACKGROUND 0x80
+#define WMI_ROAM_LCA_DISALLOW_SOURCE_FORCED 0x100
+
typedef struct {
A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_filter_list_fixed_param */
A_UINT32 vdev_id; /** Unique id identifying the VDEV on which roaming filter is adopted */
@@ -9795,10 +9838,19 @@ typedef struct {
* wmi_ssid ssid_white_list[];
* wmi_mac_addr bssid_preferred_list[];
* A_UINT32 bssid_preferred_factor[];
+ * wmi_roam_lca_disallow_config_tlv_param lca_disallow_param[0/1] (opt)
*/
} wmi_roam_filter_fixed_param;
typedef struct {
+ A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_lca_disallow_config_tlv_param */
+ A_UINT32 disallow_duration; /** How long LCA AP will be disallowed before it can be a roaming candidate again, in units of seconds */
+ A_UINT32 rssi_channel_penalization; /** How much RSSI will be penalized if candidate(s) are found in the same channel as disallowed AP's, in units of db */
+ A_UINT32 num_disallowed_aps; /** How many APs the target should maintain in its LCA (Last Connected AP) list */
+ A_UINT32 disallow_lca_enable_source_bitmap; /** disallow LCA logic is enabled only when trigger sources are matched with corresponding bit (see WMI_ROAM_LCA_DISALLOW_SOURCE constants) */
+} wmi_roam_lca_disallow_config_tlv_param;
+
+typedef struct {
A_UINT8 address[4]; /* IPV4 address in Network Byte Order */
} WMI_IPV4_ADDR;
@@ -10017,6 +10069,11 @@ typedef enum p2p_lo_start_ctrl_flags_e {
P2P_LO_START_CTRL_FLAG_FLUSH_LISTEN_RESULT = 1 << 0, /* flush prob. req when host is awake */
} p2p_lo_start_ctrl_flags;
+#define P2P_LO_PER_DEV_TYPE_LEN 8
+#define P2P_LO_DEV_TYPES_COUNT_MAX 10
+#define P2P_LO_DEV_TYPES_LEN_MAX (P2P_LO_PER_DEV_TYPE_LEN * P2P_LO_DEV_TYPES_COUNT_MAX)
+#define P2P_LO_PROB_RESP_MAX_LEN 512
+
typedef struct {
A_UINT32 tlv_header;
A_UINT32 vdev_id;
@@ -10030,11 +10087,13 @@ typedef struct {
* device_types_data[] byte-array TLV that follows this TLV.
* The data in device_types_data[] is in 8-byte elements, so
* device_types_len will be a multiple of 8.
+ * Refer to P2P_LO_DEV_TYPES_LEN_MAX
*/
A_UINT32 device_types_len;
/*
* prob_resp_len specifies the number of bytes in the
* prob_resp_data[] byte-array TLV that follows this TLV.
+ * Refer to P2P_LO_PROB_RESP_MAX_LEN
*/
A_UINT32 prob_resp_len;
/*
@@ -18091,6 +18150,7 @@ typedef enum wmi_coex_config_type {
WMI_COEX_CONFIG_PTA_BT_INFO = 20, /* get BT information,
arg1 BT info type: WMI_COEX_PTA_BT_INFO_TYPE_T, scan/advertise/connection info,
arg2-arg5: BT information parameters */
+ WMI_COEX_CONFIG_SINK_WLAN_TDM = 21, /* config interval (ms units) (arg1 BT, arg2 WLAN) for A2DP SINK + WLAN */
} WMI_COEX_CONFIG_TYPE;
typedef struct {
@@ -19342,6 +19402,7 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command)
WMI_RETURN_STRING(WMI_THERM_THROT_SET_CONF_CMDID);
WMI_RETURN_STRING(WMI_OEM_DMA_RING_CFG_REQ_CMDID);
WMI_RETURN_STRING(WMI_PDEV_BSS_CHAN_INFO_REQUEST_CMDID);
+ WMI_RETURN_STRING(WMI_VDEV_LIMIT_OFFCHAN_CMDID);
}
return "Invalid WMI cmd";
diff --git a/fw/wmi_version.h b/fw/wmi_version.h
index eee9265869db..8782d7413caa 100755
--- a/fw/wmi_version.h
+++ b/fw/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_ 402
+#define __WMI_REVISION_ 408
/** The Version Namespace should not be normally changed. Only
* host and firmware of the same WMI namespace will work