diff options
| author | Linux Build Service Account <lnxbuild@localhost> | 2017-06-29 06:42:20 -0600 |
|---|---|---|
| committer | Linux Build Service Account <lnxbuild@localhost> | 2017-06-29 06:42:20 -0600 |
| commit | 06f0f65c9b7f7529629b6724d3e1580cde1452df (patch) | |
| tree | 5b5d99fba0ed571151863956909d29eb954b9dab | |
| parent | aff599c95418a0b32abeccf67d813ece31da94ad (diff) | |
| parent | 64f0a68ae189002dc3b2fc6de64f8b17ef212da3 (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-x | fw/wmi_services.h | 1 | ||||
| -rwxr-xr-x | fw/wmi_tlv_defs.h | 12 | ||||
| -rwxr-xr-x | fw/wmi_unified.h | 61 | ||||
| -rwxr-xr-x | fw/wmi_version.h | 2 |
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 |
