summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRajesh Chauhan <rajeshc@qca.qualcomm.com>2013-11-11 16:10:02 -0800
committerMadan Mohan Koyyalamudi <mkoyyala@qca.qualcomm.com>2013-11-19 16:26:12 -0800
commit539c648530b67b7ed70aa73c5d75aaa353528982 (patch)
treed52cd763553718bf61a3b7f8132775e57cee309c
parent62eb63a4599214da92e56c7e90cabfbecb99335a (diff)
cld: update fwcommon interface files
Update fwcommon interface files as per wmi version 17 on f/w side. Change-Id: I849e51af00e9a024a050e7bce0ca7d4c1b1e888a CRs-Fixed: 574022
-rw-r--r--CORE/SERVICES/COMMON/wlan_defs.h5
-rw-r--r--CORE/SERVICES/COMMON/wmi_tlv_defs.h28
-rw-r--r--CORE/SERVICES/COMMON/wmi_unified.h420
-rw-r--r--CORE/SERVICES/COMMON/wmi_version.h2
4 files changed, 93 insertions, 362 deletions
diff --git a/CORE/SERVICES/COMMON/wlan_defs.h b/CORE/SERVICES/COMMON/wlan_defs.h
index 70d1ee986680..851d0095c7fb 100644
--- a/CORE/SERVICES/COMMON/wlan_defs.h
+++ b/CORE/SERVICES/COMMON/wlan_defs.h
@@ -186,6 +186,11 @@ typedef struct {
A_UINT32 ack_rssi; /* ACK RSSI: b'7..b'0 avg RSSI across all chain */
A_UINT32 time_stamp ; /* ACK timestamp (helps determine age) */
A_UINT32 is_probe; /* Valid if probing. Else, 0 */
+ A_UINT32 ba_win_size; /* b'7..b0, block Ack Window size, b'31..b8 Resvd */
+ A_UINT32 failed_ba_bmap_0_31; /* failed BA bitmap 0..31 */
+ A_UINT32 failed_ba_bmap_32_63; /* failed BA bitmap 32..63 */
+ A_UINT32 bmap_tried_0_31; /* enqued bitmap 0..31 */
+ A_UINT32 bmap_tried_32_63; /* enqued bitmap 32..63 */
} RC_TX_DONE_PARAMS;
diff --git a/CORE/SERVICES/COMMON/wmi_tlv_defs.h b/CORE/SERVICES/COMMON/wmi_tlv_defs.h
index 0c95b0659235..9c9f0c853406 100644
--- a/CORE/SERVICES/COMMON/wmi_tlv_defs.h
+++ b/CORE/SERVICES/COMMON/wmi_tlv_defs.h
@@ -379,6 +379,10 @@ typedef enum {
WMITLV_TAG_STRUC_wmi_ba_req_ssn_cmd_sub_struct_param,
WMITLV_TAG_STRUC_wmi_ba_req_ssn_event_sub_struct_param,
WMITLV_TAG_STRUC_wmi_sta_smps_param_cmd_fixed_param,
+ WMITLV_TAG_STRUC_wmi_vdev_set_gtx_params_cmd_fixed_param,
+ WMITLV_TAG_STRUC_wmi_mcc_sched_traffic_stats_cmd_fixed_param,
+ WMITLV_TAG_STRUC_wmi_mcc_sched_sta_traffic_stats,
+ WMITLV_TAG_STRUC_wmi_offload_bcn_tx_status_event_fixed_param,
} WMITLV_TAG_ID;
/*
@@ -491,6 +495,7 @@ typedef enum {
OP(WMI_VDEV_WMM_ADDTS_CMDID) \
OP(WMI_VDEV_WMM_DELTS_CMDID) \
OP(WMI_VDEV_SET_WMM_PARAMS_CMDID) \
+ OP(WMI_VDEV_SET_GTX_PARAMS_CMDID) \
OP(WMI_TDLS_SET_STATE_CMDID) \
OP(WMI_TDLS_PEER_UPDATE_CMDID) \
OP(WMI_FWTEST_VDEV_MCC_SET_TBTT_MODE_CMDID) \
@@ -503,7 +508,8 @@ typedef enum {
OP(WMI_SET_MCASTBCAST_FILTER_CMDID) \
OP(WMI_P2P_SET_OPPPS_PARAM_CMDID) \
OP(WMI_FWTEST_P2P_SET_NOA_PARAM_CMDID) \
- OP(WMI_STA_SMPS_PARAM_CMDID)
+ OP(WMI_STA_SMPS_PARAM_CMDID) \
+ OP(WMI_MCC_SCHED_TRAFFIC_STATS_CMDID)
/*
* IMPORTANT: Please add _ALL_ WMI Events Here.
* Otherwise, these WMI TLV Functions will be process them.
@@ -550,7 +556,8 @@ typedef enum {
OP(WMI_CAPTUREH_EVENTID) \
OP(WMI_TDLS_PEER_EVENTID) \
OP(WMI_VDEV_MCC_BCN_INTERVAL_CHANGE_REQ_EVENTID) \
- OP(WMI_BA_RSP_SSN_EVENTID)
+ OP(WMI_BA_RSP_SSN_EVENTID) \
+ OP(WMI_OFFLOAD_BCN_TX_STATUS_EVENTID)
/* TLV definitions of WMI commands */
@@ -1233,6 +1240,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_WMM_DELTS_CMDID);
WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_SET_WMM_PARAMS_CMDID);
+#define WMITLV_TABLE_WMI_VDEV_SET_GTX_PARAMS_CMDID(id,op,buf,len) \
+WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_set_gtx_params_cmd_fixed_param, wmi_vdev_set_gtx_params_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
+
+WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_SET_GTX_PARAMS_CMDID);
+
/* TDLS Enable/Disable Cmd */
#define WMITLV_TABLE_WMI_TDLS_SET_STATE_CMDID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_tdls_set_state_cmd_fixed_param, \
@@ -1284,6 +1296,14 @@ WMITLV_CREATE_PARAM_STRUC(WMI_STA_SMPS_FORCE_MODE_CMDID);
WMITLV_CREATE_PARAM_STRUC(WMI_STA_SMPS_PARAM_CMDID);
+/* MCC Adaptive Scheduler Traffic Stats */
+#define WMITLV_TABLE_WMI_MCC_SCHED_TRAFFIC_STATS_CMDID(id,op,buf,len) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_mcc_sched_traffic_stats_cmd_fixed_param, wmi_mcc_sched_traffic_stats_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
+ WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_STRUC, wmi_mcc_sched_sta_traffic_stats, mcc_sched_sta_traffic_stats_list, WMITLV_SIZE_VAR)
+
+WMITLV_CREATE_PARAM_STRUC(WMI_MCC_SCHED_TRAFFIC_STATS_CMDID);
+
+
/************************** TLV definitions of WMI events *******************************/
/* Service Ready event */
@@ -1519,6 +1539,10 @@ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_tdls_peer_event_fixed_param, wmi
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_mcc_bcn_intvl_change_event_fixed_param, wmi_vdev_mcc_bcn_intvl_change_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_MCC_BCN_INTERVAL_CHANGE_REQ_EVENTID);
+#define WMITLV_TABLE_WMI_OFFLOAD_BCN_TX_STATUS_EVENTID(id,op,buf,len) \
+WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_offload_bcn_tx_status_event_fixed_param, wmi_offload_bcn_tx_status_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
+ WMITLV_CREATE_PARAM_STRUC(WMI_OFFLOAD_BCN_TX_STATUS_EVENTID);
+
#ifdef __cplusplus
}
#endif
diff --git a/CORE/SERVICES/COMMON/wmi_unified.h b/CORE/SERVICES/COMMON/wmi_unified.h
index 9969323b5d60..388a3c230ca8 100644
--- a/CORE/SERVICES/COMMON/wmi_unified.h
+++ b/CORE/SERVICES/COMMON/wmi_unified.h
@@ -252,6 +252,7 @@ typedef enum {
WMI_VDEV_WMM_ADDTS_CMDID,
WMI_VDEV_WMM_DELTS_CMDID,
WMI_VDEV_SET_WMM_PARAMS_CMDID,
+ WMI_VDEV_SET_GTX_PARAMS_CMDID,
/* peer specific commands */
@@ -421,6 +422,8 @@ typedef enum {
/* F/W stats */
/** one time request for stats */
WMI_REQUEST_STATS_CMDID=WMI_CMD_GRP_START_ID(WMI_GRP_STATS),
+ /** Push MCC Adaptive Scheduler Stats to Firmware */
+ WMI_MCC_SCHED_TRAFFIC_STATS_CMDID,
/** ARP OFFLOAD REQUEST*/
WMI_SET_ARP_NS_OFFLOAD_CMDID=WMI_CMD_GRP_START_ID(WMI_GRP_ARP_NS_OFL),
@@ -576,6 +579,10 @@ typedef enum {
staggered beacon transmission mode */
WMI_TBTTOFFSET_UPDATE_EVENTID,
+ /** event after the first beacon is transmitted following
+ a change in the template.*/
+ WMI_OFFLOAD_BCN_TX_STATUS_EVENTID,
+
/*ADDBA Related WMI Events*/
/** Indication the completion of the prior
WMI_PEER_TID_DELBA_CMDID(initiator) */
@@ -1148,6 +1155,7 @@ typedef struct {
A_UINT32 num_tdls_conn_table_entries; /* number of peers to track per TDLS vdev */
A_UINT32 beacon_tx_offload_max_vdev;
A_UINT32 num_multicast_filter_entries;
+ A_UINT32 num_wow_filters; /*host can configure the number of wow filters*/
} wmi_resource_config;
@@ -1729,174 +1737,6 @@ typedef struct {
A_UINT32 scan_start;
} wmi_pdev_scan_cmd;
-//currently, only RTT measurement has been implemented
-
-/*
- * Mesage format for WMI_RTT_TSF_CMDID
- * This CMD trigger FW to report TSF Measurement result to host
- */
-typedef struct {
- A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_rtt_tsf_cmd_fixed_param */
- A_UINT32 req_id; //unique request ID for this TSF measure req
- wmi_mac_addr dest_mac; //destination mac address for measurement
- wmi_mac_addr spoof_bssid; //spoof BSSID for measurement with unassociated STA
- A_UINT32 vdev_id; // vdev used for TSF
- A_UINT32 time_out; //timeout for this TSF mesurement (ms)
- /* This TLV is followed by below TLVs:
- * wmi_channel channel; //channel information for this Requirement
- */
-}wmi_rtt_tsf_cmd_fixed_param;
-
-/*
- * Mesage format for WMI_RTT_MEASREQ_CMDID
- * This CMD trigger FW to start measurement with a peer
- * Need be careful about 32 alignment if any change made in future
- */
-typedef struct { //any new change need take care of 32 alignment
- A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_rtt_measreq_body */
- A_UINT32 control_flag; // some control information here
- /*********************************************************************************
- *Bits 1:0: Reserved
- *Bits 4:2: 802.11 Frame Type to measure RTT
- * 000: NULL, 001: Qos NULL, 010: TMR-TM
- *Bits 8:5: Tx chain mask used for transmission 0000 - 1111
- *Bits 12:9: Receive chainmask to use for reception 0000 - 1111
- *Bits 13:13 peer is qca chip or not
- *Bits 15:14: BW 0- 20MHz 1- 40MHz 2- 80MHz 3 - 160 MHz
- *Bits 17:16: Preamble 0- Legacy 2- HT 3-VHT
- *Bits 21:18: Retry times
- *Bits 29:22 MCS
- *Bits 31:30 Reserved
- *********************************************************************************/
- A_UINT32 measure_info;
- /*******************************************************************************
- *Bit 0-7 vdev_id vdev used for RTT
- *Bit 15-8 num_meas #of measurements of each peer
- *Bit 23:16 timeout for this rtt mesurement (ms)
- *Bit 31-24 report_type
- *******************************************************************************/
- wmi_mac_addr dest_mac; //destination mac address for measurement
- wmi_mac_addr spoof_bssid; //spoof BSSID for measurement with unassociated STA
-}wmi_rtt_measreq_body;
-
-typedef struct { //notice on 32 bit alignment if need do any further change
- A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_rtt_measreq_head */
- A_UINT32 req_id; //unique request ID for this RTT measure req
- /******************************************************************************
- *bit 15:0 Request ID
- *bit 16: sps enable 0- unenable 1--enable
- *bit 31:17 reserved
- ******************************************************************************/
- A_UINT32 sta_num; // how many number of STA in this RTT requirement
- /******************************************************************************
- *bit 7:0 # of measurement peers
- *bit 23:8 if sps, time delay for SPS (ms)
- *bit 31:24 reserved
- ******************************************************************************/
- /* This TLV is followed by below TLVs
- * wmi_channel channel; // common channel information for this Requirement
- * wmi_rtt_measreq_body body[];
- */
-} wmi_rtt_measreq_head;
-
-//Bit map macro define for RTT measurement command
-#define RTT_MEAS_FRAME_NULL 0
-#define RTT_MEAS_FRAME_QOSNULL 1
-#define RTT_MEAS_FRAME_TMR 2
-
-#define WMI_RTT_BW_20 0
-#define WMI_RTT_BW_40 1
-#define WMI_RTT_BW_80 2
-#define WMI_RTT_BW_160 3
-
-#define WMI_RTT_PREAM_LEGACY 0
-#define WMI_RTT_PREAM_HT 2
-#define WMI_RTT_PREAM_VHT 3
-
-#define WMI_RTT_REQ_ID_S 0
-#define WMI_RTT_REQ_ID (0xffff << WMI_RTT_REQ_ID_S)
-#define WMI_RTT_REQ_ID_GET(x) WMI_F_MS(x,WMI_RTT_REQ_ID)
-#define WMI_RTT_REQ_ID_SET(x,z) WMI_F_RMW(x,z,WMI_RTT_REQ_ID)
-
-//SPS here is synchronized power save
-#define WMI_RTT_SPS_S 16
-#define WMI_RTT_SPS (0x1 << WMI_RTT_SPS_S)
-#define WMI_RTT_SPS_GET(x) WMI_F_MS(x,WMI_RTT_SPS)
-#define WMI_RTT_SPS_SET(x,z) WMI_F_RMW(x,z,WMI_RTT_SPS)
-
-#define WMI_RTT_NUM_STA_S 0
-#define WMI_RTT_NUM_STA (0xff << WMI_RTT_NUM_STA_S)
-#define WMI_RTT_NUM_STA_GET(x) WMI_F_MS(x,WMI_RTT_NUM_STA)
-#define WMI_RTT_NUM_STA_SET(x,z) WMI_F_RMW(x,z,WMI_RTT_NUM_STA)
-
-#define WMI_RTT_SPS_DELAY_S 8
-#define WMI_RTT_SPS_DELAY (0xffff << WMI_RTT_SPS_DELAY_S)
-#define WMI_RTT_SPS_DELAY_GET(x) WMI_F_MS(x,WMI_RTT_SPS_DELAY)
-#define WMI_RTT_SPS_DELAY_SET(x,z) WMI_F_RMW(x,z,WMI_RTT_SPS_DELAY)
-
-//req body Macro
-#define WMI_RTT_FRAME_TYPE_S 2
-#define WMI_RTT_FRAME_TYPE (7 << WMI_RTT_FRAME_TYPE_S)
-#define WMI_RTT_FRAME_TYPE_GET(x) WMI_F_MS(x,WMI_RTT_FRAME_TYPE)
-#define WMI_RTT_FRAME_TYPE_SET(x,z) WMI_F_RMW(x,z,WMI_RTT_FRAME_TYPE)
-
-#define WMI_RTT_TX_CHAIN_S 5
-#define WMI_RTT_TX_CHAIN (0xf << WMI_RTT_TX_CHAIN_S)
-#define WMI_RTT_TX_CHAIN_GET(x) WMI_F_MS(x,WMI_RTT_TX_CHAIN)
-#define WMI_RTT_TX_CHAIN_SET(x,z) WMI_F_RMW(x,z,WMI_RTT_TX_CHAIN)
-
-#define WMI_RTT_RX_CHAIN_S 9
-#define WMI_RTT_RX_CHAIN (0xf << WMI_RTT_RX_CHAIN_S)
-#define WMI_RTT_RX_CHAIN_GET(x) WMI_F_MS(x,WMI_RTT_RX_CHAIN)
-#define WMI_RTT_RX_CHAIN_SET(x,z) WMI_F_RMW(x,z,WMI_RTT_RX_CHAIN)
-
-#define WMI_RTT_QCA_PEER_S 13
-#define WMI_RTT_QCA_PEER (0x1 << WMI_RTT_QCA_PEER_S)
-#define WMI_RTT_QCA_PEER_GET(x) WMI_F_MS(x,WMI_RTT_QCA_PEER)
-#define WMI_RTT_QCA_PEER_SET(x,z) WMI_F_RMW(x,z,WMI_RTT_QCA_PEER)
-
-#define WMI_RTT_BW_S 14
-#define WMI_RTT_BW (0x3 <<WMI_RTT_BW_S)
-#define WMI_RTT_BW_GET(x) WMI_F_MS(x,WMI_RTT_BW)
-#define WMI_RTT_BW_SET(x,z) WMI_F_RMW(x,z,WMI_RTT_BW)
-
-#define WMI_RTT_PREAMBLE_S 16
-#define WMI_RTT_PREAMBLE (0x3 <<WMI_RTT_PREAMBLE_S)
-#define WMI_RTT_PREAMBLE_GET(x) WMI_F_MS(x,WMI_RTT_PREAMBLE)
-#define WMI_RTT_PREAMBLE_SET(x,z) WMI_F_RMW(x,z,WMI_RTT_PREAMBLE)
-
-#define WMI_RTT_RETRIES_S 18
-#define WMI_RTT_RETRIES (0xf << WMI_RTT_RETRIES_S)
-#define WMI_RTT_RETRIES_GET(x) WMI_F_MS(x,WMI_RTT_RETRIES)
-#define WMI_RTT_RETRIES_SET(x,z) WMI_F_RMW(x,z,WMI_RTT_RETRIES)
-
-#define WMI_RTT_MCS_S 22
-#define WMI_RTT_MCS (0xff << WMI_RTT_MCS_S)
-#define WMI_RTT_MCS_GET(x) WMI_F_MS(x,WMI_RTT_MCS)
-#define WMI_RTT_MCS_SET(x,z) WMI_F_RMW(x,z,WMI_RTT_MCS)
-
-#define WMI_RTT_VDEV_ID_S 0
-#define WMI_RTT_VDEV_ID (0xff << WMI_RTT_VDEV_ID_S)
-#define WMI_RTT_VDEV_ID_GET(x) WMI_F_MS(x,WMI_RTT_VDEV_ID)
-#define WMI_RTT_VDEV_ID_SET(x,z) WMI_F_RMW(x,z,WMI_RTT_VDEV_ID)
-
-#define WMI_RTT_MEAS_NUM_S 8
-#define WMI_RTT_MEAS_NUM (0xff << WMI_RTT_MEAS_NUM_S)
-#define WMI_RTT_MEAS_NUM_GET(x) WMI_F_MS(x,WMI_RTT_MEAS_NUM)
-#define WMI_RTT_MEAS_NUM_SET(x,z) WMI_F_RMW(x,z,WMI_RTT_MEAS_NUM)
-
-#define WMI_RTT_TIMEOUT_S 16
-#define WMI_RTT_TIMEOUT (0xff << WMI_RTT_TIMEOUT_S)
-#define WMI_RTT_TIMEOUT_GET(x) WMI_F_MS(x,WMI_RTT_TIMEOUT)
-#define WMI_RTT_TIMEOUT_SET(x,z) WMI_F_RMW(x,z,WMI_RTT_TIMEOUT)
-
-#define WMI_RTT_REPORT_TYPE_S 24
-#define WMI_RTT_REPORT_TYPE (0x3 <<WMI_RTT_REPORT_TYPE_S)
-#define WMI_RTT_REPORT_TYPE_GET(x) WMI_F_MS(x,WMI_RTT_REPORT_TYPE)
-#define WMI_RTT_REPORT_TYPE_SET(x,z) WMI_F_RMW(x,z,WMI_RTT_REPORT_TYPE)
-
-/*---end of RTT COMMAND---*/
-
/*Command to set/unset chip in quiet mode*/
typedef struct {
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_set_quiet_cmd_fixed_param */
@@ -2395,8 +2235,11 @@ typedef struct {
} wmi_pdev_set_wmm_params_cmd_fixed_param;
typedef enum {
- WMI_REQUEST_PEER_STAT = 0x01,
- WMI_REQUEST_AP_STAT = 0x02
+ 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_stats_id;
typedef struct {
@@ -3035,6 +2878,12 @@ typedef struct {
*/
} wmi_prb_tmpl_cmd_fixed_param;
+typedef struct {
+ A_UINT32 tlv_header;
+ A_UINT32 vdev_id;
+ A_UINT32 tx_status;
+}wmi_offload_bcn_tx_status_event_fixed_param;
+
enum wmi_sta_ps_mode {
/** enable power save for the given STA VDEV */
@@ -3198,11 +3047,6 @@ typedef struct {
* Enable QPower
*/
WMI_STA_PS_ENABLE_QPOWER = 6,
-
- /**
- * Disable QPower
- */
- WMI_STA_PS_DISABLE_QPOWER = 7,
};
typedef struct {
@@ -3762,7 +3606,8 @@ typedef struct {
#define WMI_PEER_VHT 0x02000000 /* VHT Enabled */
#define WMI_PEER_80MHZ 0x04000000 /* 80MHz enabld */
#define WMI_PEER_PMF 0x08000000 /* Robust Management Frame Protection enabled */
-/** TODO: Place holder for WLAN_PEER_F_PS_PRESEND_REQUIRED = 0x10000000. Need to be clean up */
+/** CAUTION TODO: Place holder for WLAN_PEER_F_PS_PRESEND_REQUIRED = 0x10000000. Need to be clean up */
+#define WMI_PEER_IS_P2P_CAPABLE 0x20000000 /* P2P capable peer */
/**
* Peer rate capabilities.
@@ -4418,25 +4263,6 @@ typedef struct {
#define WMI_UNIFIED_OPPPS_ATTR_CTWIN_SET(hdr, v) \
WMI_F_RMW((hdr)->oppps_attr, (v) & 0x7f, \
WMI_UNIFIED_OPPPS_ATTR_CTWIN);
-/*----RTT Report event definition ----*/
-typedef enum {
- RTT_COMMAND_HEADER_ERROR = 0, //rtt cmd header parsing error --terminate
- RTT_COMMAND_ERROR, //rtt body parsing error -- skip current STA REQ
- RTT_MODULE_BUSY, //rtt no resource -- terminate
- RTT_TOO_MANY_STA, //STA exceed the support limit -- only server the first n STA
- RTT_NO_RESOURCE, //any allocate failure
- RTT_VDEV_ERROR, //can not find vdev with vdev ID -- skip current STA REQ
- RTT_TRANSIMISSION_ERROR, //Tx failure -- continiue and measure number--
- RTT_TM_TIMER_EXPIRE, //wait for first TM timer expire -- terminate current STA measurement
- RTT_FRAME_TYPE_NOSUPPORT, //we do not support RTT measurement with this type of frame
- RTT_TIMER_EXPIRE, //whole RTT measurement timer expire -- terminate current STA measurement
- RTT_CHAN_SWITCH_ERROR, //channel swicth failed
- RTT_TMR_TRANS_ERROR, //TMR trans error, this dest peer will be skipped
- RTT_NO_REPORT_BAD_CFR_TOKEN, //V3 only. If both CFR and Token mismatch, do not report
- RTT_NO_REPORT_FIRST_TM_BAD_CFR, //For First TM, if CFR is bad, then do not report
- RTT_REPORT_TYPE2_MIX, //do not allow report type2 mix with type 0, 1
- WMI_RTT_REJECT_MAX,
-} WMI_RTT_ERROR_INDICATOR;
typedef struct {
A_UINT32 time32; //upper 32 bits of time stamp
@@ -4444,169 +4270,6 @@ typedef struct {
} A_TIME64;
typedef struct {
- A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_rtt_event_header */
- A_UINT32 req_id; //identify the command and info
- /*result is a bit mask
- *bit 0:15 req_id from measurement request command
- *bit 16: Success 1 / Fail 0
- *bit 17: Measurement Finished 1 / Measurement not Finished 0
- *bit 20:18 RTT measurement Type 000 - NULL 001-QoS_NULL 002 -TMR
- *bit 23:21 report type (0,1,2)
- *bit 25:24 V3 report status (v2 ignore) (report type 2 ignore)
- * 00-Good 01 - Bad CFR 10 -- bad token
- *bit 26: V3 accomplishment (v2 ignore) (report type 2 ignore)
- * 0 - sending side is not finishing
- * 1 - sending side finish
- *bit 27: V3 start of a TM sequence (v2 ignore) (report type 2 ignore)
- * 0 - not a start frame 1 -- start frame
- *bit 31:28: #of AP inside this report (only for report type 2, 0,1 ignore)
- */
- wmi_mac_addr dest_mac;
- //In report type 1 and 2, MAC of the AP
- //in report type 2, bit 31:0 is the channel info
-}wmi_rtt_event_hdr;
-
-typedef struct {
- /* RTT header would be added to the buffer as a TLV preceding this structure*/
- A_UINT32 rx_chain; // Rx chain info
- /************************************************************
- * Bit:0-3:chain mask *
- * Bit 4-5: band width info *
- * 00 --Legacy 20, 01 --HT/VHT20 *
- * 10 --HT/VHT40, 11 -- VHT80 *
- ************************************************************/
- A_TIME64 tod; // resolution of 0.1ns
- A_TIME64 toa; // resolution of 0.1ns
- //If Measurement type is TMR, should be T3, T4 here A_TIME64
- //chain report body will be expand here
- //includes rssi + channel dump for each chain
-}wmi_rtt_meas_event;
-
-typedef struct {
- wmi_mac_addr dest_mac;
- A_UINT32 control;
- //bit 0:7 #of measurement reports in this AP
- //bit 10:8 RTT measurement type
- //bit 31:11 reserved
-}wmi_rtt_per_peer_event_hdr;
-
-typedef struct {
- A_UINT32 rx_bw;
- A_UINT32 rssi;
- A_TIME64 tod;
- A_TIME64 toa;
-} wmi_rtt_per_frame_ie_v2;
-
-typedef struct {
- A_UINT32 rx_bw;
- A_UINT32 rssi;
- A_TIME64 t1;
- A_TIME64 t2;
- A_UINT32 t3_del;
- A_UINT32 t4_del;
-} wmi_rtt_per_frame_ie_v3;
-
-
-typedef struct {
- /* RTT Event header TLV precedes this TLV
- * wmi_rtt_event_hdr header;
- */
- A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_rtt_error_report_event_fixed_param */
- WMI_RTT_ERROR_INDICATOR reject_reason;
-}wmi_rtt_error_report_event_fixed_param;
-
-typedef struct {
- A_UINT32 req_id; //identify the command
- A_UINT32 result; //Successfully or not 0-fail, 1-success
- A_UINT64 peer_tsf; //TSF of peer
- A_UINT64 self_tsf; //Self's TSF
- A_UINT32 beacon_delta; //time delta between peer and self's beacon
-}wmi_rtt_tsf_meas_event;
-
-#define RTT_V3_GOOD 0x0
-#define RTT_V3_BAD_CFR 0x1
-#define RTT_V3_BAD_TOKEN 0x2
-
-#define RTT_REPORT_PER_FRAME_WITH_CFR 0
-#define RTT_REPORT_PER_FRAME_NO_CFR 1
-#define RTT_AGGREAGET_REPORT_NON_CFR 2
-
-//define RTT report macro
-#define WMI_RTT_REPORT_REQ_ID_S 0
-#define WMI_RTT_REPORT_REQ_ID (0xffff << WMI_RTT_REPORT_REQ_ID_S)
-#define WMI_RTT_REPORT_REQ_ID_GET(x) WMI_F_MS(x, WMI_RTT_REPORT_REQ_ID)
-#define WMI_RTT_REPORT_REQ_ID_SET(x,z) WMI_F_RMW(x,z, WMI_RTT_REPORT_REQ_ID)
-
-#define WMI_RTT_REPORT_CHAN_INFO_S 0
-#define WMI_RTT_REPORT_CHAN_INFO (0xffffffff << WMI_RTT_REPORT_CHAN_INFO_S)
-#define WMI_RTT_REPORT_CHAN_INFO_GET(x) WMI_F_MS(x, WMI_RTT_REPORT_CHAN_INFO)
-#define WMI_RTT_REPORT_CHAN_INFO_SET(x,z) WMI_F_RMW(x,z, WMI_RTT_REPORT_CHAN_INFO)
-
-
-#define WMI_RTT_REPORT_STATUS_S 16
-#define WMI_RTT_REPORT_STATUS (0x1 << WMI_RTT_REPORT_STATUS_S)
-#define WMI_RTT_REPORT_STATUS_GET(x) WMI_F_MS(x, WMI_RTT_REPORT_STATUS)
-#define WMI_RTT_REPORT_STATUS_SET(x,z) WMI_F_RMW(x,z, WMI_RTT_REPORT_STATUS)
-
-#define WMI_RTT_REPORT_FINISH_S 17
-#define WMI_RTT_REPORT_FINISH (0x1 << WMI_RTT_REPORT_FINISH_S)
-#define WMI_RTT_REPORT_FINISH_GET(x) WMI_F_MS(x, WMI_RTT_REPORT_FINISH)
-#define WMI_RTT_REPORT_FINISH_SET(x,z) WMI_F_RMW(x,z, WMI_RTT_REPORT_FINISH)
-
-#define WMI_RTT_REPORT_MEAS_TYPE_S 18
-#define WMI_RTT_REPORT_MEAS_TYPE (0x7 << WMI_RTT_REPORT_MEAS_TYPE_S)
-#define WMI_RTT_REPORT_MEAS_TYPE_GET(x) WMI_F_MS(x, WMI_RTT_REPORT_MEAS_TYPE)
-#define WMI_RTT_REPORT_MEAS_TYPE_SET(x,z) WMI_F_RMW(x,z, WMI_RTT_REPORT_MEAS_TYPE)
-
-#define WMI_RTT_REPORT_REPORT_TYPE_S 21
-#define WMI_RTT_REPORT_REPORT_TYPE (0x7 << WMI_RTT_REPORT_REPORT_TYPE_S)
-#define WMI_RTT_REPORT_REPORT_TYPE_GET(x) WMI_F_MS(x, WMI_RTT_REPORT_REPORT_TYPE)
-#define WMI_RTT_REPORT_REPORT_TYPE_SET(x,z) WMI_F_RMW(x,z, WMI_RTT_REPORT_REPORT_TYPE)
-
-#define WMI_RTT_REPORT_V3_STATUS_S 24
-#define WMI_RTT_REPORT_V3_STATUS (0x3 << WMI_RTT_REPORT_V3_STATUS_S)
-#define WMI_RTT_REPORT_V3_STATUS_GET(x) WMI_F_MS(x, WMI_RTT_REPORT_V3_STATUS)
-#define WMI_RTT_REPORT_V3_STATUS_SET(x,z) WMI_F_RMW(x,z, WMI_RTT_REPORT_V3_STATUS)
-
-#define WMI_RTT_REPORT_V3_FINISH_S 26
-#define WMI_RTT_REPORT_V3_FINISH (0x1 << WMI_RTT_REPORT_V3_FINISH_S)
-#define WMI_RTT_REPORT_V3_FINISH_GET(x) WMI_F_MS(x, WMI_RTT_REPORT_V3_FINISH)
-#define WMI_RTT_REPORT_V3_FINISH_SET(x,z) WMI_F_RMW(x,z, WMI_RTT_REPORT_V3_FINISH)
-
-#define WMI_RTT_REPORT_V3_TM_START_S 27
-#define WMI_RTT_REPORT_V3_TM_START (0x1 << WMI_RTT_REPORT_V3_TM_START_S)
-#define WMI_RTT_REPORT_V3_TM_START_GET(x) WMI_F_MS(x, WMI_RTT_REPORT_V3_TM_START)
-#define WMI_RTT_REPORT_V3_TM_START_SET(x,z) WMI_F_RMW(x,z, WMI_RTT_REPORT_V3_TM_START)
-
-#define WMI_RTT_REPORT_NUM_AP_S 28 //used for only Report Type 2
-#define WMI_RTT_REPORT_NUM_AP (0xf << WMI_RTT_REPORT_NUM_AP_S)
-#define WMI_RTT_REPORT_NUM_AP_GET(x) WMI_F_MS(x,WMI_RTT_REPORT_NUM_AP)
-#define WMI_RTT_REPORT_NUM_AP_SET(x,z) WMI_F_RMW(x,z,WMI_RTT_REPORT_NUM_AP)
-
-//body start here
-#define WMI_RTT_REPORT_RX_CHAIN_S 0
-#define WMI_RTT_REPORT_RX_CHAIN (0xf << WMI_RTT_REPORT_RX_CHAIN_S)
-#define WMI_RTT_REPORT_RX_CHAIN_GET(x) WMI_F_MS(x, WMI_RTT_REPORT_RX_CHAIN)
-#define WMI_RTT_REPORT_RX_CHAIN_SET(x,z) WMI_F_RMW(x,z, WMI_RTT_REPORT_RX_CHAIN)
-
-#define WMI_RTT_REPORT_RX_BW_S 4
-#define WMI_RTT_REPORT_RX_BW (0x3 << WMI_RTT_REPORT_RX_BW_S)
-#define WMI_RTT_REPORT_RX_BW_GET(x) WMI_F_MS(x, WMI_RTT_REPORT_RX_BW)
-#define WMI_RTT_REPORT_RX_BW_SET(x,z) WMI_F_RMW(x,z, WMI_RTT_REPORT_RX_BW)
-
-#define WMI_RTT_REPORT_TYPE2_NUM_MEAS_S 0
-#define WMI_RTT_REPORT_TYPE2_NUM_MEAS (0xff << WMI_RTT_REPORT_TYPE2_NUM_MEAS_S)
-#define WMI_RTT_REPORT_TYPE2_NUM_MEAS_GET(x) WMI_F_MS(x, WMI_RTT_REPORT_TYPE2_NUM_MEAS)
-#define WMI_RTT_REPORT_TYPE2_NUM_MEAS_SET(x,z) WMI_F_RMW(x,z, WMI_RTT_REPORT_TYPE2_NUM_MEAS)
-
-#define WMI_RTT_REPORT_TYPE2_MEAS_TYPE_S 8
-#define WMI_RTT_REPORT_TYPE2_MEAS_TYPE (0x7 << WMI_RTT_REPORT_TYPE2_MEAS_TYPE_S)
-#define WMI_RTT_REPORT_TYPE2_MEAS_TYPE_GET(x) WMI_F_MS(x, WMI_RTT_REPORT_TYPE2_MEAS_TYPE)
-#define WMI_RTT_REPORT_TYPE2_MEAS_TYPE_SET(x,z) WMI_F_RMW(x,z, WMI_RTT_REPORT_TYPE2_MEAS_TYPE)
-
-/*---- end of RTT report event definition ----*/
-
-typedef struct {
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_sta_kickout_event_fixed_param */
/** peer mac address */
wmi_mac_addr peer_macaddr;
@@ -4668,7 +4331,7 @@ when comparing wifi header.*/
#define WOW_DEFAULT_BITMAP_PATTERN_SIZE_DWORD 37 //Convert WOW_DEFAULT_EVT_BUF_SIZE into Int32 size
#define WOW_DEFAULT_BITMASK_SIZE 146
#define WOW_DEFAULT_BITMASK_SIZE_DWORD 37
-#define WOW_MAX_BITMAP_FILTERS 22
+#define WOW_MAX_BITMAP_FILTERS 32
#define WOW_DEFAULT_MAGIG_PATTERN_MATCH_CNT 16
#define WOW_DEFAULT_EVT_BUF_SIZE 148 /* Maximum 148 bytes of the data is copied starting from header incase if the match is found.
The 148 comes from (128 - 14 ) payload size + 8bytes LLC + 26bytes MAC header*/
@@ -5525,6 +5188,17 @@ typedef struct {
wmi_wmm_vparams wmm_params[4]; /* 0 be, 1 bk, 2 vi, 3 vo */
} wmi_vdev_set_wmm_params_cmd_fixed_param;
+typedef struct {
+ A_UINT32 tlv_header;
+ A_UINT32 vdev_id;
+ A_UINT32 gtxRTMask[2]; /* for HT and VHT rate masks */
+ A_UINT32 userGtxMask; /* host request for GTX mask */
+ A_UINT32 gtxPERThreshold; /* default: 10% */
+ A_UINT32 gtxPERMargin; /* default: 2% */
+ A_UINT32 gtxTPCstep; /* default: 1 */
+ A_UINT32 gtxTPCMin; /* default: 5 */
+ A_UINT32 gtxBWMask; /* 20/40/80/160 Mhz */
+} wmi_vdev_set_gtx_params_cmd_fixed_param;
typedef struct
{
@@ -5840,6 +5514,34 @@ typedef struct {
A_UINT32 value;
} wmi_sta_smps_param_cmd_fixed_param;
+typedef struct {
+ /** TLV tag and len; tag equals
+ * WMITLV_TAG_STRUC_wmi_mcc_sched_sta_traffic_stats */
+ A_UINT32 tlv_header;
+ /* TX stats */
+ A_UINT32 txBytesPushed;
+ A_UINT32 txPacketsPushed;
+ /* RX stats */
+ A_UINT32 rxBytesRcvd;
+ A_UINT32 rxPacketsRcvd;
+ A_UINT32 rxTimeTotal;
+ /** peer MAC address */
+ wmi_mac_addr peer_macaddr;
+} wmi_mcc_sched_sta_traffic_stats;
+
+typedef struct {
+ /** TLV tag and len; tag equals
+ * WMITLV_TAG_STRUC_wmi_mcc_sched_traffic_stats_cmd_fixed_param */
+ A_UINT32 tlv_header;
+ /** Duration over which the host stats were collected */
+ A_UINT32 duration;
+ /** Number of stations filled in following stats array */
+ A_UINT32 num_sta;
+ /* Following this struct are the TLVs:
+ * wmi_mcc_sched_sta_traffic_stats mcc_sched_sta_traffic_stats_list;
+ */
+} wmi_mcc_sched_traffic_stats_cmd_fixed_param;
+
#ifdef __cplusplus
}
#endif
diff --git a/CORE/SERVICES/COMMON/wmi_version.h b/CORE/SERVICES/COMMON/wmi_version.h
index ef8b4f7ac988..4ce800710c27 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_ 12
+#define __WMI_REVISION_ 17
/** The Version Namespace should not be normally changed. Only
* host and firmware of the same WMI namespace will work