diff options
| author | Linux Build Service Account <lnxbuild@localhost> | 2018-07-02 03:57:26 -0700 |
|---|---|---|
| committer | Linux Build Service Account <lnxbuild@localhost> | 2018-07-02 03:57:26 -0700 |
| commit | 33007051ac3bdf5527a2223ce5ee000671a18a36 (patch) | |
| tree | c18a1b699e228aa9d4d62aebfc32f1bdc75d95cf | |
| parent | 3237d0c90ef74935d5d98cbd293802e8b88579ae (diff) | |
| parent | b88a1b28a6d921812f4202f569f9f1dc7271a477 (diff) | |
Merge b88a1b28a6d921812f4202f569f9f1dc7271a477 on remote branch
Change-Id: I5a5a52b6b2cfcbb1b257f90d4a87b7b61ce0e272
| -rw-r--r-- | fw/htt.h | 67 | ||||
| -rwxr-xr-x | fw/wlan_module_ids.h | 157 | ||||
| -rwxr-xr-x | fw/wmi_services.h | 1 | ||||
| -rwxr-xr-x | fw/wmi_tlv_defs.h | 17 | ||||
| -rwxr-xr-x | fw/wmi_unified.h | 111 | ||||
| -rwxr-xr-x | fw/wmi_version.h | 2 |
6 files changed, 256 insertions, 99 deletions
@@ -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 |
