summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2018-07-02 03:57:26 -0700
committerLinux Build Service Account <lnxbuild@localhost>2018-07-02 03:57:26 -0700
commit33007051ac3bdf5527a2223ce5ee000671a18a36 (patch)
treec18a1b699e228aa9d4d62aebfc32f1bdc75d95cf
parent3237d0c90ef74935d5d98cbd293802e8b88579ae (diff)
parentb88a1b28a6d921812f4202f569f9f1dc7271a477 (diff)
Merge b88a1b28a6d921812f4202f569f9f1dc7271a477 on remote branch
Change-Id: I5a5a52b6b2cfcbb1b257f90d4a87b7b61ce0e272
-rw-r--r--fw/htt.h67
-rwxr-xr-xfw/wlan_module_ids.h157
-rwxr-xr-xfw/wmi_services.h1
-rwxr-xr-xfw/wmi_tlv_defs.h17
-rwxr-xr-xfw/wmi_unified.h111
-rwxr-xr-xfw/wmi_version.h2
6 files changed, 256 insertions, 99 deletions
diff --git a/fw/htt.h b/fw/htt.h
index d0beca2ff3b6..18aa1d9e273f 100644
--- a/fw/htt.h
+++ b/fw/htt.h
@@ -166,9 +166,10 @@
* 3.49 Add HTT_T2H_MSG_TYPE_MONITOR_MAC_HEADER_IND def
* 3.50 Add learning_frame flag to htt_tx_msdu_desc_ext2_t
* 3.51 Add SW peer ID and TID num to HTT TX WBM COMPLETION
+ * 3.52 Add HTT_T2H FLOW_POOL_RESIZE msg def
*/
#define HTT_CURRENT_VERSION_MAJOR 3
-#define HTT_CURRENT_VERSION_MINOR 51
+#define HTT_CURRENT_VERSION_MINOR 52
#define HTT_NUM_TX_FRAG_DESC 1024
@@ -5564,6 +5565,7 @@ enum htt_t2h_msg_type {
HTT_T2H_MSG_TYPE_PEER_MAP_V2 = 0x1e,
HTT_T2H_MSG_TYPE_PEER_UNMAP_V2 = 0x1f,
HTT_T2H_MSG_TYPE_MONITOR_MAC_HEADER_IND = 0x20,
+ HTT_T2H_MSG_TYPE_FLOW_POOL_RESIZE = 0x21,
HTT_T2H_MSG_TYPE_TEST,
/* keep this last */
@@ -10474,5 +10476,68 @@ typedef struct {
(((word) & HTT_T2H_MONITOR_MAC_HEADER_NUM_MPDU_M) >> \
HTT_T2H_MONITOR_MAC_HEADER_NUM_MPDU_S)
+/**
+ * @brief HTT_T2H_MSG_TYPE_FLOW_POOL_RESIZE Message
+ *
+ * @details
+ * HTT_T2H_MSG_TYPE_FLOW_POOL_RESIZE message is sent by the target when
+ * the flow pool associated with the specified ID is resized
+ *
+ * The message would appear as follows:
+ *
+ * |31 24|23 16|15 8|7 0|
+ * |----------------+----------------+----------------+----------------|
+ * | flow Pool ID | reserved0 | Msg type |
+ * |-------------------------------------------------------------------|
+ * | reserved1 | flow pool new size |
+ * |-------------------------------------------------------------------|
+ *
+ * The message is interpreted as follows:
+ * b'0:7 - msg_type: This will be set to
+ * HTT_T2H_MSG_TYPE_FLOW_POOL_RESIZE
+ *
+ * b'8:15 - flow pool ID: Existing flow pool ID
+ *
+ * b'16:31 - flow pool new size: new pool size for exisiting flow pool ID
+ *
+ */
+
+PREPACK struct htt_flow_pool_resize_t {
+ A_UINT32 msg_type:8,
+ reserved0:8,
+ flow_pool_id:16;
+ A_UINT32 flow_pool_new_size:16,
+ reserved1:16;
+} POSTPACK;
+
+#define HTT_FLOW_POOL_RESIZE_SZ (sizeof(struct htt_flow_pool_resize_t))
+
+#define HTT_FLOW_POOL_RESIZE_FLOW_POOL_ID_M 0xffff0000
+#define HTT_FLOW_POOL_RESIZE_FLOW_POOL_ID_S 16
+
+#define HTT_FLOW_POOL_RESIZE_FLOW_POOL_NEW_SIZE_M 0x0000ffff
+#define HTT_FLOW_POOL_RESIZE_FLOW_POOL_NEW_SIZE_S 0
+
+
+#define HTT_FLOW_POOL_RESIZE_FLOW_POOL_ID_GET(_var) \
+ (((_var) & HTT_FLOW_POOL_RESIZE_FLOW_POOL_ID_M) >> \
+ HTT_FLOW_POOL_RESIZE_FLOW_POOL_ID_S)
+
+#define HTT_FLOW_POOL_RESIZE_FLOW_POOL_ID_SET(_var, _val) \
+ do { \
+ HTT_CHECK_SET_VAL(HTT_FLOW_POOL_RESIZE_FLOW_POOL_ID, _val); \
+ ((_var) |= ((_val) << HTT_FLOW_POOL_RESIZE_FLOW_POOL_ID_S)); \
+ } while (0)
+
+
+#define HTT_FLOW_POOL_RESIZE_FLOW_POOL_NEW_SIZE_GET(_var) \
+ (((_var) & HTT_FLOW_POOL_RESIZE_FLOW_POOL_NEW_SIZE_M) >> \
+ HTT_FLOW_POOL_RESIZE_FLOW_POOL_NEW_SIZE_S)
+
+#define HTT_FLOW_POOL_RESIZE_FLOW_POOL_NEW_SIZE_SET(_var, _val) \
+ do { \
+ HTT_CHECK_SET_VAL(HTT_FLOW_POOL_RESIZE_FLOW_POOL_NEW_SIZE, _val); \
+ ((_var) |= ((_val) << HTT_FLOW_POOL_RESIZE_FLOW_POOL_NEW_SIZE_S)); \
+ } while (0)
#endif
diff --git a/fw/wlan_module_ids.h b/fw/wlan_module_ids.h
index 39b9d4db517f..c6d54129fb53 100755
--- a/fw/wlan_module_ids.h
+++ b/fw/wlan_module_ids.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011, 2014-2016 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2011-2018 The Linux Foundation. All rights reserved.
*
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
*
@@ -30,79 +30,90 @@
/* Wlan module ids , global across all the modules */
typedef enum {
- WLAN_MODULE_ID_MIN = 0,
- WLAN_MODULE_INF = WLAN_MODULE_ID_MIN, /* 0x0 */
- WLAN_MODULE_WMI, /* 0x1 */
- WLAN_MODULE_STA_PWRSAVE, /* 0x2 */
- WLAN_MODULE_WHAL, /* 0x3 */
- WLAN_MODULE_COEX, /* 0x4 */
- WLAN_MODULE_ROAM, /* 0x5 */
- WLAN_MODULE_RESMGR_CHAN_MANAGER, /* 0x6 */
- WLAN_MODULE_RESMGR, /* 0x7 */
- WLAN_MODULE_VDEV_MGR, /* 0x8 */
- WLAN_MODULE_SCAN, /* 0x9 */
- WLAN_MODULE_RATECTRL, /* 0xa */
- WLAN_MODULE_AP_PWRSAVE, /* 0xb */
- WLAN_MODULE_BLOCKACK, /* 0xc */
- WLAN_MODULE_MGMT_TXRX, /* 0xd */
- WLAN_MODULE_DATA_TXRX, /* 0xe */
- WLAN_MODULE_HTT, /* 0xf */
- WLAN_MODULE_HOST, /* 0x10 */
- WLAN_MODULE_BEACON, /* 0x11 */
- WLAN_MODULE_OFFLOAD, /* 0x12 */
- WLAN_MODULE_WAL, /* 0x13 */
- WAL_MODULE_DE, /* 0x14 */
- WLAN_MODULE_PCIELP, /* 0x15 */
- WLAN_MODULE_RTT, /* 0x16 */
- WLAN_MODULE_RESOURCE, /* 0x17 */
- WLAN_MODULE_DCS, /* 0x18 */
- WLAN_MODULE_CACHEMGR, /* 0x19 */
- WLAN_MODULE_ANI, /* 0x1a */
- WLAN_MODULE_P2P, /* 0x1b */
- WLAN_MODULE_CSA, /* 0x1c */
- WLAN_MODULE_NLO, /* 0x1d */
- WLAN_MODULE_CHATTER, /* 0x1e */
- WLAN_MODULE_WOW, /* 0x1f */
- WLAN_MODULE_WAL_VDEV, /* 0x20 */
- WLAN_MODULE_WAL_PDEV, /* 0x21 */
- WLAN_MODULE_TEST, /* 0x22 */
- WLAN_MODULE_STA_SMPS, /* 0x23 */
- WLAN_MODULE_SWBMISS, /* 0x24 */
- WLAN_MODULE_WMMAC, /* 0x25 */
- WLAN_MODULE_TDLS, /* 0x26 */
- WLAN_MODULE_HB, /* 0x27 */
- WLAN_MODULE_TXBF, /* 0x28 */
- WLAN_MODULE_BATCH_SCAN, /* 0x29 */
- WLAN_MODULE_THERMAL_MGR, /* 0x2a */
- WLAN_MODULE_PHYERR_DFS, /* 0x2b */
- WLAN_MODULE_RMC, /* 0x2c */
- WLAN_MODULE_STATS, /* 0x2d */
- WLAN_MODULE_NAN, /* 0x2e */
- WLAN_MODULE_IBSS_PWRSAVE, /* 0x2f */
- WLAN_MODULE_HIF_UART, /* 0x30 */
- WLAN_MODULE_LPI, /* 0x31 */
- WLAN_MODULE_EXTSCAN, /* 0x32 */
- WLAN_MODULE_UNIT_TEST, /* 0x33 */
- WLAN_MODULE_MLME, /* 0x34 */
- WLAN_MODULE_SUPPL, /* 0x35 */
- WLAN_MODULE_ERE, /* 0x36 */
- WLAN_MODULE_OCB, /* 0x37 */
- WLAN_MODULE_RSSI_MONITOR, /* 0x38 */
- WLAN_MODULE_WPM, /* 0x39 */
- WLAN_MODULE_CSS, /* 0x3a */
- WLAN_MODULE_PPS, /* 0x3b */
- WLAN_MODULE_SCAN_CH_PREDICT, /* 0x3c */
- WLAN_MODULE_MAWC, /* 0x3d */
- WLAN_MODULE_CMC_QMIC, /* 0x3e */
- WLAN_MODULE_EGAP, /* 0x3f */
- WLAN_MODULE_NAN20, /* 0x40 */
- WLAN_MODULE_QBOOST, /* 0x41 */
- WLAN_MODULE_P2P_LISTEN_OFFLOAD, /* 0x42 */
- WLAN_MODULE_HALPHY, /* 0x43 */
- WAL_MODULE_ENQ, /* 0x44 */
+ WLAN_MODULE_ID_MIN = 0,
+ WLAN_MODULE_INF = WLAN_MODULE_ID_MIN, /* 0x0 */
+ WLAN_MODULE_WMI, /* 0x1 */
+ WLAN_MODULE_STA_PWRSAVE, /* 0x2 */
+ WLAN_MODULE_WHAL, /* 0x3 */
+ WLAN_MODULE_COEX, /* 0x4 */
+ WLAN_MODULE_ROAM, /* 0x5 */
+ WLAN_MODULE_RESMGR_CHAN_MANAGER, /* 0x6 */
+ WLAN_MODULE_RESMGR, /* 0x7 */
+ WLAN_MODULE_VDEV_MGR, /* 0x8 */
+ WLAN_MODULE_SCAN, /* 0x9 */
+ WLAN_MODULE_RATECTRL, /* 0xa */
+ WLAN_MODULE_AP_PWRSAVE, /* 0xb */
+ WLAN_MODULE_BLOCKACK, /* 0xc */
+ WLAN_MODULE_MGMT_TXRX, /* 0xd */
+ WLAN_MODULE_DATA_TXRX, /* 0xe */
+ WLAN_MODULE_HTT, /* 0xf */
+ WLAN_MODULE_HOST, /* 0x10 */
+ WLAN_MODULE_BEACON, /* 0x11 */
+ WLAN_MODULE_OFFLOAD, /* 0x12 */
+ WLAN_MODULE_WAL, /* 0x13 */
+ WAL_MODULE_DE, /* 0x14 */
+ WLAN_MODULE_PCIELP, /* 0x15 */
+ WLAN_MODULE_RTT, /* 0x16 */
+ WLAN_MODULE_RESOURCE, /* 0x17 */
+ WLAN_MODULE_DCS, /* 0x18 */
+ WLAN_MODULE_CACHEMGR, /* 0x19 */
+ WLAN_MODULE_ANI, /* 0x1a */
+ WLAN_MODULE_P2P, /* 0x1b */
+ WLAN_MODULE_CSA, /* 0x1c */
+ WLAN_MODULE_NLO, /* 0x1d */
+ WLAN_MODULE_CHATTER, /* 0x1e */
+ WLAN_MODULE_WOW, /* 0x1f */
+ WLAN_MODULE_WAL_VDEV, /* 0x20 */
+ WLAN_MODULE_WAL_PDEV, /* 0x21 */
+ WLAN_MODULE_TEST, /* 0x22 */
+ WLAN_MODULE_STA_SMPS, /* 0x23 */
+ WLAN_MODULE_SWBMISS, /* 0x24 */
+ WLAN_MODULE_WMMAC, /* 0x25 */
+ WLAN_MODULE_TDLS, /* 0x26 */
+ WLAN_MODULE_HB, /* 0x27 */
+ WLAN_MODULE_TXBF, /* 0x28 */
+ WLAN_MODULE_BATCH_SCAN, /* 0x29 */
+ WLAN_MODULE_THERMAL_MGR, /* 0x2a */
+ WLAN_MODULE_PHYERR_DFS, /* 0x2b */
+ WLAN_MODULE_RMC, /* 0x2c */
+ WLAN_MODULE_STATS, /* 0x2d */
+ WLAN_MODULE_NAN, /* 0x2e */
+ WLAN_MODULE_IBSS_PWRSAVE, /* 0x2f */
+ WLAN_MODULE_HIF_UART, /* 0x30 */
+ WLAN_MODULE_LPI, /* 0x31 */
+ WLAN_MODULE_EXTSCAN, /* 0x32 */
+ WLAN_MODULE_UNIT_TEST, /* 0x33 */
+ WLAN_MODULE_MLME, /* 0x34 */
+ WLAN_MODULE_SUPPL, /* 0x35 */
+ WLAN_MODULE_ERE, /* 0x36 */
+ WLAN_MODULE_OCB, /* 0x37 */
+ WLAN_MODULE_RSSI_MONITOR, /* 0x38 */
+ WLAN_MODULE_WPM, /* 0x39 */
+ WLAN_MODULE_CSS, /* 0x3a */
+ WLAN_MODULE_PPS, /* 0x3b */
+ WLAN_MODULE_SCAN_CH_PREDICT, /* 0x3c */
+ WLAN_MODULE_MAWC, /* 0x3d */
+ WLAN_MODULE_CMC_QMIC, /* 0x3e */
+ WLAN_MODULE_EGAP, /* 0x3f */
+ WLAN_MODULE_NAN20, /* 0x40 */
+ WLAN_MODULE_QBOOST, /* 0x41 */
+ WLAN_MODULE_P2P_LISTEN_OFFLOAD, /* 0x42 */
+ WLAN_MODULE_HALPHY, /* 0x43 */
+ WAL_MODULE_ENQ, /* 0x44 */
+ WLAN_MODULE_GNSS, /* 0x45 */
+ WLAN_MODULE_WAL_MEM, /* 0x46 */
+ WLAN_MODULE_SCHED_ALGO, /* 0x47 */
+ WLAN_MODULE_TX, /* 0x48 */
+ WLAN_MODULE_RX, /* 0x49 */
+ WLAN_MODULE_WLM, /* 0x4a */
+ WLAN_MODULE_RU_ALLOCATOR, /* 0x4b */
+ WLAN_MODULE_11K_OFFLOAD, /* 0x4c */
+ WLAN_MODULE_STA_TWT, /* 0x4d */
+ WLAN_MODULE_AP_TWT, /* 0x4e */
+ WLAN_MODULE_UL_OFDMA, /* 0x4f */
- WLAN_MODULE_ID_MAX,
- WLAN_MODULE_ID_INVALID = WLAN_MODULE_ID_MAX,
+ WLAN_MODULE_ID_MAX,
+ WLAN_MODULE_ID_INVALID = WLAN_MODULE_ID_MAX,
} WLAN_MODULE_ID;
diff --git a/fw/wmi_services.h b/fw/wmi_services.h
index 70b6e9daf679..e9bbeff19d90 100755
--- a/fw/wmi_services.h
+++ b/fw/wmi_services.h
@@ -254,6 +254,7 @@ typedef enum {
WMI_SERVICE_DUAL_BEACON_ON_SINGLE_MAC_SCC_SUPPORT=158, /* Support dual beacon on same channel on single MAC */
WMI_SERVICE_DUAL_BEACON_ON_SINGLE_MAC_MCC_SUPPORT=159, /* Support dual beacon on different channel on single MAC */
WMI_SERVICE_MOTION_DET=160, /* support for motion detection config */
+ WMI_SERVICE_INFRA_MBSSID=161, /* support infra multi-BSSID feature */
/******* ADD NEW SERVICES HERE *******/
diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h
index fb8fa29a713f..ad92b283122a 100755
--- a/fw/wmi_tlv_defs.h
+++ b/fw/wmi_tlv_defs.h
@@ -922,6 +922,7 @@ typedef enum {
WMITLV_TAG_STRUC_wmi_motion_det_base_line_start_stop_cmd_fixed_param,
WMITLV_TAG_STRUC_wmi_motion_det_event,
WMITLV_TAG_STRUC_wmi_motion_det_base_line_event,
+ WMITLV_TAG_STRUC_wmi_ndp_transport_ip_param,
} WMITLV_TAG_ID;
/*
@@ -2947,6 +2948,7 @@ WMITLV_CREATE_PARAM_STRUC(WMI_NDI_GET_CAP_REQ_CMDID);
* A_UINT8 ndp_pmk[];
* A_INT8 ndp_passphrase[];
* A_INT8 nan_servicename[];
+ * wmi_ndp_transport_ip_param ndp_transport_ip_param;
*/
#define WMITLV_TABLE_WMI_NDP_INITIATOR_REQ_CMDID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_ndp_initiator_req_fixed_param, wmi_ndp_initiator_req_fixed_param_PROTOTYPE, fixed_param, WMITLV_SIZE_FIX) \
@@ -2955,7 +2957,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_NDI_GET_CAP_REQ_CMDID);
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, ndp_app_info, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, ndp_pmk, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_INT8, ndp_passphrase, WMITLV_SIZE_VAR) \
- WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_INT8, nan_servicename, WMITLV_SIZE_VAR)
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_INT8, nan_servicename, WMITLV_SIZE_VAR) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_ndp_transport_ip_param, wmi_ndp_transport_ip_param, ndp_transport_ip_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_NDP_INITIATOR_REQ_CMDID);
/** NAN Data Responder Request Cmd
@@ -2966,6 +2969,7 @@ WMITLV_CREATE_PARAM_STRUC(WMI_NDP_INITIATOR_REQ_CMDID);
* A_UINT8 ndp_pmk[];
* A_INT8 ndp_passphrase[];
* A_INT8 nan_servicename[];
+ * wmi_ndp_transport_ip_param ndp_transport_ip_param;
*/
#define WMITLV_TABLE_WMI_NDP_RESPONDER_REQ_CMDID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_ndp_responder_req_fixed_param, wmi_ndp_responder_req_fixed_param_PROTOTYPE, fixed_param, WMITLV_SIZE_FIX) \
@@ -2973,7 +2977,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_NDP_INITIATOR_REQ_CMDID);
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, ndp_app_info, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, ndp_pmk, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_INT8, ndp_passphrase, WMITLV_SIZE_VAR) \
- WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_INT8, nan_servicename, WMITLV_SIZE_VAR)
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_INT8, nan_servicename, WMITLV_SIZE_VAR) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_ndp_transport_ip_param, wmi_ndp_transport_ip_param, ndp_transport_ip_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_NDP_RESPONDER_REQ_CMDID);
/** NAN Data End Request Cmd
@@ -4445,12 +4450,14 @@ WMITLV_CREATE_PARAM_STRUC(WMI_NDP_END_RSP_EVENTID);
* structure. The TLV's are:
* A_UINT8 ndp_cfg[];
* A_UINT8 ndp_app_info[];
+ * wmi_ndp_transport_ip_param ndp_transport_ip_param;
*/
#define WMITLV_TABLE_WMI_NDP_INDICATION_EVENTID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_ndp_indication_event_fixed_param, wmi_ndp_indication_event_fixed_param_PROTOTYPE, fixed_param, WMITLV_SIZE_FIX) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, ndp_cfg, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, ndp_app_info, WMITLV_SIZE_VAR) \
- WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, ndp_scid, WMITLV_SIZE_VAR)
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, ndp_scid, WMITLV_SIZE_VAR) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_ndp_transport_ip_param, wmi_ndp_transport_ip_param, ndp_transport_ip_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_NDP_INDICATION_EVENTID);
/** NDP confirm event
@@ -4459,13 +4466,15 @@ WMITLV_CREATE_PARAM_STRUC(WMI_NDP_INDICATION_EVENTID);
* A_UINT8 ndp_cfg[];
* A_UINT8 ndp_app_info[];
* wmi_channel ndp_channel_list[];
+ * wmi_ndp_transport_ip_param ndp_transport_ip_param;
*/
#define WMITLV_TABLE_WMI_NDP_CONFIRM_EVENTID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_ndp_confirm_event_fixed_param, wmi_ndp_confirm_event_fixed_param_PROTOTYPE, fixed_param, WMITLV_SIZE_FIX) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, ndp_cfg, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, ndp_app_info, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_channel, ndp_channel_list, WMITLV_SIZE_VAR) \
- WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, nss_list, WMITLV_SIZE_VAR)
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, nss_list, WMITLV_SIZE_VAR) \
+WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_ndp_transport_ip_param, wmi_ndp_transport_ip_param, ndp_transport_ip_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_NDP_CONFIRM_EVENTID);
/** NDP end indication event
diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h
index dbec74e69ac8..86cf40d57029 100755
--- a/fw/wmi_unified.h
+++ b/fw/wmi_unified.h
@@ -2315,6 +2315,11 @@ typedef struct {
* is equal to or less than the target capability limit reported here.
*/
A_UINT32 max_nlo_ssids;
+ /* ref to section 8.4.2.48 Multiple BSSID element
+ * The Max BSSID Indicator field contains a value assigned to n,
+ * where 2^n is the maximum number of BSSIDs
+ */
+ A_UINT32 max_bssid_indicator;
} wmi_service_ready_ext_event_fixed_param;
typedef enum {
@@ -2880,6 +2885,12 @@ typedef struct {
* 0 - fw chooses its default value: 'num_vdevs' of this structure.
*/
A_UINT32 num_max_sta_vdevs;
+
+ /* ref to section 8.4.2.48 Multiple BSSID element
+ * The Max BSSID Indicator field contains a value assigned to n,
+ * where 2^n is the maximum number of BSSIDs
+ */
+ A_UINT32 max_bssid_indicator;
} wmi_resource_config;
#define WMI_RSRC_CFG_FLAG_SET(word32, flag, value) \
@@ -3154,6 +3165,8 @@ typedef struct {
A_UINT32 num_vendor_oui;
/** Scan control flags extended **/
A_UINT32 scan_ctrl_flags_ext;
+ /** dwell time in msec on active 2G channels, if it's not zero */
+ A_UINT32 dwell_time_active_2g;
/**
* TLV (tag length value) parameters follow the scan_cmd
@@ -5629,18 +5642,19 @@ typedef struct {
} wmi_pdev_set_wmm_params_cmd_fixed_param;
typedef enum {
- WMI_REQUEST_PEER_STAT = 0x01,
- WMI_REQUEST_AP_STAT = 0x02,
- WMI_REQUEST_PDEV_STAT = 0x04,
- WMI_REQUEST_VDEV_STAT = 0x08,
- WMI_REQUEST_BCNFLT_STAT = 0x10,
- WMI_REQUEST_VDEV_RATE_STAT = 0x20,
- WMI_REQUEST_INST_STAT = 0x40,
- WMI_REQUEST_MIB_STAT = 0x80,
- WMI_REQUEST_RSSI_PER_CHAIN_STAT = 0x100,
- WMI_REQUEST_CONGESTION_STAT = 0x200,
- WMI_REQUEST_PEER_EXTD_STAT = 0x400,
- WMI_REQUEST_BCN_STAT = 0x800,
+ WMI_REQUEST_PEER_STAT = 0x0001,
+ WMI_REQUEST_AP_STAT = 0x0002,
+ WMI_REQUEST_PDEV_STAT = 0x0004,
+ WMI_REQUEST_VDEV_STAT = 0x0008,
+ WMI_REQUEST_BCNFLT_STAT = 0x0010,
+ WMI_REQUEST_VDEV_RATE_STAT = 0x0020,
+ WMI_REQUEST_INST_STAT = 0x0040,
+ WMI_REQUEST_MIB_STAT = 0x0080,
+ WMI_REQUEST_RSSI_PER_CHAIN_STAT = 0x0100,
+ WMI_REQUEST_CONGESTION_STAT = 0x0200,
+ WMI_REQUEST_PEER_EXTD_STAT = 0x0400,
+ WMI_REQUEST_BCN_STAT = 0x0800,
+ WMI_REQUEST_BCN_STAT_RESET = 0x1000,
} wmi_stats_id;
/*
@@ -7030,6 +7044,11 @@ typedef struct {
*/
} wmi_per_chain_rssi_stats;
+/* vdev control flags (per bits) */
+#define VDEV_FLAGS_NON_MBSSID_AP 0x00000001 /* legacy AP */
+#define VDEV_FLAGS_TRANSMIT_AP 0x00000002 /* indicate if this vdev is transmitting AP */
+#define VDEV_FLAGS_NON_TRANSMIT_AP 0x00000004 /* explicitly indicate this vdev is non-transmitting AP */
+
typedef struct {
A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_vdev_create_cmd_fixed_param */
/** unique id identifying the VDEV, generated by the caller */
@@ -7047,6 +7066,10 @@ typedef struct {
* See macros starting with WMI_PDEV_ID_ for values.
*/
A_UINT32 pdev_id;
+ /** control flags for this vdev */
+ A_UINT32 flags;
+ /** vdevid of transmitted AP (mbssid case) */
+ A_UINT32 vdevid_trans;
/* This TLV is followed by another TLV of array of structures
* wmi_vdev_txrx_streams cfg_txrx_streams[];
*/
@@ -8495,6 +8518,20 @@ typedef enum {
*/
WMI_VDEV_PARAM_RAW_IS_ENCRYPTED, /* 0x84 */
+ /**
+ * Dynamically enable/disable green tx (GTX) on supported rates.
+ * Host will set this param to 1 for enabling GTX & 0 for disabling it.
+ * Note: If GTX was already running (since the global GTX control
+ * resides with default BDF setting) & host wants to disable GTX,
+ * the VDEV does not exercise any more TPC changes on the GTX supported
+ * rates & goes to a default GTX SM where all PPDU's sent on default TPC.
+ * Whenever, host wants to reenable GTX, the enable command resumes the
+ * GTX functionality & TPC convergence to lower power levels can be
+ * attained as long as PER on GTX supported rates is within the pre-defined
+ * PER margin configured through the BDF.
+ */
+ WMI_VDEV_PARAM_GTX_ENABLE, /* 0x85 */
+
/*=== ADD NEW VDEV PARAM TYPES ABOVE THIS LINE ===
* The below vdev param types are used for prototyping, and are
@@ -8859,6 +8896,8 @@ typedef struct {
* is 0, 1, 4 and 5, set the bitmap to (0X80000033)
*/
A_UINT32 csa_event_bitmap;
+ /** offset (in octets/bytes) of MBSSID IE in beacon frame */
+ A_UINT32 mbssid_ie_offset;
/*
* The TLVs follows:
@@ -15767,6 +15806,28 @@ typedef enum {
WMI_NDP_FORCE_CHANNEL_SETUP = 2/* NDP must start on the provided channel */
} wmi_ndp_channel_cfg_PROTOTYPE;
+/*
+ * The WMI_NDP_IPV6_INTF_ADDR_LEN macro cannot be changed without breaking
+ * WMI compatibility.
+ */
+#define WMI_NDP_IPV6_INTF_ADDR_LEN 16
+
+typedef struct {
+ A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_ndp_transport_ip_param */
+ /* Presence of ipv6_intf_addr */
+ A_UINT32 ipv6_addr_present;
+ /* Presence of transport Port */
+ A_UINT32 trans_port_present;
+ /* Presence of transport Protocol */
+ A_UINT32 trans_proto_present;
+ /* ipv6 Interface address */
+ A_UINT8 ipv6_intf_addr[WMI_NDP_IPV6_INTF_ADDR_LEN];
+ /* Transport Port */
+ A_UINT32 transport_port;
+ /* Transport Protocol */
+ A_UINT32 transport_protocol;
+} wmi_ndp_transport_ip_param;
+
#define wmi_ndp_channel_cfg wmi_ndp_channel_cfg_PROTOTYPE
/**
@@ -15806,6 +15867,7 @@ typedef struct {
* A_UINT8 ndp_pmk[];
* A_INT8 ndp_passphrase[];
* A_INT8 nan_servicename[];
+ * wmi_ndp_transport_ip_param ndp_transport_ip_param;
*/
} wmi_ndp_initiator_req_fixed_param_PROTOTYPE;
@@ -15849,6 +15911,7 @@ typedef struct {
* A_UINT8 ndp_pmk[];
* A_INT8 ndp_passphrase[];
* A_INT8 nan_servicename[];
+ * wmi_ndp_transport_ip_param ndp_transport_ip_param;
*/
} wmi_ndp_responder_req_fixed_param_PROTOTYPE;
@@ -16098,6 +16161,7 @@ typedef struct {
* A_UINT8 ndp_cfg[];
* A_UINT8 ndp_app_info[];
* A_UINT8 nan_scid[];
+ * wmi_ndp_transport_ip_param ndp_transport_ip_param;
*/
} wmi_ndp_indication_event_fixed_param_PROTOTYPE;
@@ -16139,6 +16203,7 @@ typedef struct {
* wmi_channel ndp_channel_list[];
* A_UINT32 nss_list[]; // Nss indexing should match with channel indexing,
* // since Nss is associated with the channel
+ * wmi_ndp_transport_ip_param ndp_transport_ip_param;
*/
} wmi_ndp_confirm_event_fixed_param_PROTOTYPE;
@@ -19174,6 +19239,11 @@ typedef struct {
A_UINT32 queue_ptr_hi; /* upper 32 bits of queue desc adddress */
A_UINT32 queue_no; /* 16-bit number assigned by host for queue,
stored in bits 15:0 of queue_no field */
+ A_UINT32 ba_window_size_valid; /* Is ba_window_size valid?
+ * 0 = Invalid, 1 = Valid */
+ A_UINT32 ba_window_size; /* Valid values: 0 to 256
+ * Host sends the message when BA session is
+ * established or terminated for the TID. */
} wmi_peer_reorder_queue_setup_cmd_fixed_param;
/**
@@ -22336,9 +22406,6 @@ typedef struct {
typedef struct {
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_twt_enable_cmd_fixed_param */
/** 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
- * The host should never set this pdev_id to WMI_PDEV_ID_SOC,
- * because the configuration parameters herein will be different
- * for each MAC instance.
*/
A_UINT32 pdev_id;
A_UINT32 sta_cong_timer_ms; /* STA TWT congestion timer TO value in terms of ms */
@@ -22433,11 +22500,8 @@ typedef enum _WMI_TWT_COMMAND_T {
typedef struct {
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_twt_add_dialog_cmd_fixed_param */
A_UINT32 vdev_id; /* VDEV identifier */
- wmi_mac_addr peer_macaddr; /* peer MAC address when vdev is AP VDEV */
- /* diaglog_id (TWT dialog ID)
- * This dialog ID must be unique within its vdev.
- */
- A_UINT32 dialog_id;
+ wmi_mac_addr peer_macaddr; /* peer MAC address */
+ A_UINT32 dialog_id; /* TWT dialog_id is per peer */
/* 1. wake_intvl_mantis must be <= 0xFFFF
* 2. wake_intvl_us must be divided evenly by wake_intvl_mantis,
@@ -22472,6 +22536,7 @@ typedef enum _WMI_ADD_TWT_STATUS_T {
typedef struct {
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_twt_add_dialog_complete_event_fixed_param */
A_UINT32 vdev_id; /* VDEV identifier */
+ wmi_mac_addr peer_macaddr; /* peer MAC address */
A_UINT32 dialog_id; /* TWT dialog ID */
A_UINT32 status; /* refer to WMI_ADD_TWT_STATUS_T */
} wmi_twt_add_dialog_complete_event_fixed_param;
@@ -22479,6 +22544,7 @@ typedef struct {
typedef struct {
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_twt_del_dialog_cmd_fixed_param */
A_UINT32 vdev_id; /* VDEV identifier */
+ wmi_mac_addr peer_macaddr; /* peer MAC address */
A_UINT32 dialog_id; /* TWT dialog ID */
} wmi_twt_del_dialog_cmd_fixed_param;
@@ -22496,6 +22562,7 @@ typedef enum _WMI_DEL_TWT_STATUS_T {
typedef struct {
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_twt_del_dialog_complete_event_fixed_param */
A_UINT32 vdev_id; /* VDEV identifier */
+ wmi_mac_addr peer_macaddr; /* peer MAC address */
A_UINT32 dialog_id; /* TWT dialog ID */
A_UINT32 status; /* refer to WMI_DEL_TWT_STATUS_T */
} wmi_twt_del_dialog_complete_event_fixed_param;
@@ -22503,6 +22570,7 @@ typedef struct {
typedef struct {
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_twt_pause_dialog_cmd_fixed_param */
A_UINT32 vdev_id; /* VDEV identifier */
+ wmi_mac_addr peer_macaddr; /* peer MAC address */
A_UINT32 dialog_id; /* TWT dialog ID */
} wmi_twt_pause_dialog_cmd_fixed_param;
@@ -22520,6 +22588,7 @@ typedef enum _WMI_PAUSE_TWT_STATUS_T {
typedef struct {
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_twt_pause_dialog_complete_event_fixed_param */
A_UINT32 vdev_id; /* VDEV identifier */
+ wmi_mac_addr peer_macaddr; /* peer MAC address */
A_UINT32 dialog_id; /* TWT dialog ID */
A_UINT32 status; /* refer to WMI_PAUSE_TWT_STATUS_T */
} wmi_twt_pause_dialog_complete_event_fixed_param;
@@ -22527,6 +22596,7 @@ typedef struct {
typedef struct {
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_twt_resume_dialog_cmd_fixed_param */
A_UINT32 vdev_id; /* VDEV identifier */
+ wmi_mac_addr peer_macaddr; /* peer MAC address */
A_UINT32 dialog_id; /* TWT dialog ID */
A_UINT32 sp_offset_us; /* this long time after TWT resumed the 1st SP will start */
A_UINT32 next_twt_size; /* Next TWT subfield Size, refer to IEEE 802.11ax sectin "9.4.1.60 TWT Information field" */
@@ -22547,6 +22617,7 @@ typedef enum _WMI_RESUME_TWT_STATUS_T {
typedef struct {
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_twt_resume_dialog_complete_event_fixed_param */
A_UINT32 vdev_id; /* VDEV identifier */
+ wmi_mac_addr peer_macaddr; /* peer MAC address */
A_UINT32 dialog_id; /* TWT dialog ID */
A_UINT32 status; /* refer to WMI_RESUME_TWT_STATUS_T */
} wmi_twt_resume_dialog_complete_event_fixed_param;
diff --git a/fw/wmi_version.h b/fw/wmi_version.h
index 48ca20de9552..dafa2feb410e 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_ 538
+#define __WMI_REVISION_ 545
/** The Version Namespace should not be normally changed. Only
* host and firmware of the same WMI namespace will work