summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorManikandaraja Venkatachalapathy <vmanikan@qca.qualcomm.com>2014-05-06 13:54:44 -0700
committerPitani Venkata Rajesh Kumar <c_vpitan@qti.qualcomm.com>2014-05-14 12:47:25 +0530
commita004e111e65fdebb58d76132adef41954e7e1129 (patch)
tree936833d51ddb1e9bc0e7c11f8f067715b2b455b9
parent31f3ff2d97a3c7ddb411edeeb3e891453da1b28f (diff)
qcacld: CL 931243 921206 941543 942981 - update fw common interface files
Add request stats, obss scan, linkspeed and roam scan related wmi changes. Change-Id: I3130cdfbfdb061746b745d420d0a553d30bb2c5f CRs-Fixed: 660215
-rw-r--r--CORE/SERVICES/COMMON/dbglog_id.h3
-rw-r--r--CORE/SERVICES/COMMON/wlan_module_ids.h1
-rw-r--r--CORE/SERVICES/COMMON/wmi_services.h26
-rw-r--r--CORE/SERVICES/COMMON/wmi_tlv_defs.h71
-rw-r--r--CORE/SERVICES/COMMON/wmi_unified.h171
-rw-r--r--CORE/SERVICES/COMMON/wmi_version.h2
-rw-r--r--CORE/SERVICES/WMI/wmi_unified.c5
7 files changed, 258 insertions, 21 deletions
diff --git a/CORE/SERVICES/COMMON/dbglog_id.h b/CORE/SERVICES/COMMON/dbglog_id.h
index 6a2f5134c066..3eb5a4d0918f 100644
--- a/CORE/SERVICES/COMMON/dbglog_id.h
+++ b/CORE/SERVICES/COMMON/dbglog_id.h
@@ -880,7 +880,8 @@ extern "C" {
#define ROAM_SUITABLE_AP_EVENT 33
#define ROAM_RSN_IE_PARSE_ERROR 34
#define ROAM_WPA_IE_PARSE_ERROR 35
-#define ROAM_DBGID_DEFINITION_END 36
+#define ROAM_SCAN_CMD_FROM_HOST 36
+#define ROAM_DBGID_DEFINITION_END 37
/* DATA_TXRX module DBGIDs*/
#define DATA_TXRX_DBGID_DEFINITION_START 0
diff --git a/CORE/SERVICES/COMMON/wlan_module_ids.h b/CORE/SERVICES/COMMON/wlan_module_ids.h
index 1d59c19abf09..13578183ee10 100644
--- a/CORE/SERVICES/COMMON/wlan_module_ids.h
+++ b/CORE/SERVICES/COMMON/wlan_module_ids.h
@@ -77,6 +77,7 @@ typedef enum {
WLAN_MODULE_THERMAL_MGR,
WLAN_MODULE_PHYERR_DFS,
WLAN_MODULE_RMC,
+ WLAN_MODULE_STATS,
WLAN_MODULE_NAN,
WLAN_MODULE_ID_MAX,
WLAN_MODULE_ID_INVALID = WLAN_MODULE_ID_MAX,
diff --git a/CORE/SERVICES/COMMON/wmi_services.h b/CORE/SERVICES/COMMON/wmi_services.h
index ffa6b38eede9..a83c4c5946e0 100644
--- a/CORE/SERVICES/COMMON/wmi_services.h
+++ b/CORE/SERVICES/COMMON/wmi_services.h
@@ -78,27 +78,29 @@ typedef enum {
WMI_SERVICE_TX_ENCAP, /* Packet type for TX encapsulation */
WMI_SERVICE_AP_PS_DETECT_OUT_OF_SYNC, /* detect out-of-sync sleeping stations */
WMI_SERVICE_EARLY_RX, /* adaptive early-rx feature */
- WMI_SERVICE_STA_SMPS, /* STA MIMO-PS */
+ WMI_SERVICE_STA_SMPS, /* STA MIMO-PS */
WMI_SERVICE_FWTEST, /* Firmware test service */
- WMI_SERVICE_STA_WMMAC, /* STA WMMAC */
- WMI_SERVICE_TDLS, /* TDLS support */
+ WMI_SERVICE_STA_WMMAC, /* STA WMMAC */
+ WMI_SERVICE_TDLS, /* TDLS support */
WMI_SERVICE_BURST, /* SIFS spaced burst support */
WMI_SERVICE_MCC_BCN_INTERVAL_CHANGE, /* Dynamic beaocn interval change for SAP/P2p GO in MCC scenario */
- WMI_SERVICE_ADAPTIVE_OCS, /* Service to support adaptive off-channel scheduler */
- WMI_SERVICE_BA_SSN_SUPPORT, /* target will provide Sequence number for the peer/tid combo */
+ WMI_SERVICE_ADAPTIVE_OCS, /* Service to support adaptive off-channel scheduler */
+ WMI_SERVICE_BA_SSN_SUPPORT, /* target will provide Sequence number for the peer/tid combo */
WMI_SERVICE_FILTER_IPSEC_NATKEEPALIVE,
- WMI_SERVICE_WLAN_HB, /* wlan HB service */
+ WMI_SERVICE_WLAN_HB, /* wlan HB service */
WMI_SERVICE_LTE_ANT_SHARE_SUPPORT, /* support LTE/WLAN antenna sharing */
- WMI_SERVICE_BATCH_SCAN, /*Service to support batch scan*/
- WMI_SERVICE_QPOWER, /* QPower service */
+ WMI_SERVICE_BATCH_SCAN, /*Service to support batch scan*/
+ WMI_SERVICE_QPOWER, /* QPower service */
WMI_SERVICE_PLMREQ,
WMI_SERVICE_THERMAL_MGMT,
WMI_SERVICE_RMC, /* reliable multicast support */
- WMI_SERVICE_MHF_OFFLOAD, /* multi-hop forwarding offload */
- WMI_SERVICE_COEX_SAR, /* target support SAR tx limit from WMI_PDEV_PARAM_TXPOWER_LIMITxG */
+ WMI_SERVICE_MHF_OFFLOAD, /* multi-hop forwarding offload */
+ WMI_SERVICE_COEX_SAR, /* target support SAR tx limit from WMI_PDEV_PARAM_TXPOWER_LIMITxG */
WMI_SERVICE_BCN_TXRATE_OVERRIDE, /* Will support the bcn/prb rsp rate override */
- WMI_SERVICE_NAN, /* Neighbor Awareness Network */
- WMI_SERVICE_L1SS_STAT, /* L1SS statistics counter report */
+ WMI_SERVICE_NAN, /* Neighbor Awareness Network */
+ WMI_SERVICE_L1SS_STAT, /* L1SS statistics counter report */
+ WMI_SERVICE_ESTIMATE_LINKSPEED, /* Linkspeed Estimation per peer */
+ WMI_SERVICE_OBSS_SCAN, /* Service to support OBSS scan */
WMI_MAX_SERVICE=128 /* max service */
} WMI_SERVICE;
diff --git a/CORE/SERVICES/COMMON/wmi_tlv_defs.h b/CORE/SERVICES/COMMON/wmi_tlv_defs.h
index cb55b0147760..8e63fbf40bd7 100644
--- a/CORE/SERVICES/COMMON/wmi_tlv_defs.h
+++ b/CORE/SERVICES/COMMON/wmi_tlv_defs.h
@@ -423,8 +423,16 @@ typedef enum {
WMITLV_TAG_STRUC_wmi_pdev_l1ss_track_event_fixed_param,
WMITLV_TAG_STRUC_wmi_diag_data_container_event_fixed_param,
WMITLV_TAG_STRUC_wmi_modem_power_state_cmd_param,
+ WMITLV_TAG_STRUC_wmi_peer_get_estimated_linkspeed_cmd_fixed_param,
+ WMITLV_TAG_STRUC_wmi_peer_estimated_linkspeed_event_fixed_param,
WMITLV_TAG_STRUC_wmi_aggr_state_trig_event_fixed_param,
WMITLV_TAG_STRUC_wmi_mhf_offload_routing_table_entry,
+ WMITLV_TAG_STRUC_wmi_roam_scan_cmd_fixed_param,
+ WMITLV_TAG_STRUC_wmi_req_stats_ext_cmd_fixed_param,
+ WMITLV_TAG_STRUC_wmi_stats_ext_event_fixed_param,
+ WMITLV_TAG_STRUC_wmi_obss_scan_enable_cmd_fixed_param,
+ WMITLV_TAG_STRUC_wmi_obss_scan_disable_cmd_fixed_param,
+ WMITLV_TAG_STRUC_wmi_offload_prb_rsp_tx_status_event_fixed_param,
} WMITLV_TAG_ID;
/*
@@ -576,7 +584,12 @@ typedef enum {
OP(WMI_ADD_PROACTIVE_ARP_RSP_PATTERN_CMDID) \
OP(WMI_DEL_PROACTIVE_ARP_RSP_PATTERN_CMDID) \
OP(WMI_NAN_CMDID) \
- OP(WMI_MODEM_POWER_STATE_CMDID)
+ OP(WMI_MODEM_POWER_STATE_CMDID) \
+ OP(WMI_PEER_GET_ESTIMATED_LINKSPEED_CMDID) \
+ OP(WMI_ROAM_SCAN_CMD)\
+ OP(WMI_REQUEST_STATS_EXT_CMDID) \
+ OP(WMI_OBSS_SCAN_ENABLE_CMDID) \
+ OP(WMI_OBSS_SCAN_DISABLE_CMDID)
/*
* IMPORTANT: Please add _ALL_ WMI Events Here.
@@ -641,7 +654,10 @@ typedef enum {
OP(WMI_NAN_EVENTID) \
OP(WMI_PDEV_L1SS_TRACK_EVENTID) \
OP(WMI_DIAG_DATA_CONTAINER_EVENTID) \
- OP(WMI_AGGR_STATE_TRIG_EVENTID)
+ OP(WMI_PEER_ESTIMATED_LINKSPEED_EVENTID) \
+ OP(WMI_AGGR_STATE_TRIG_EVENTID)\
+ OP(WMI_STATS_EXT_EVENTID) \
+ OP(WMI_OFFLOAD_PROB_RESP_TX_STATUS_EVENTID)
/* TLV definitions of WMI commands */
@@ -777,6 +793,13 @@ WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_SCAN_RSSI_CHANGE_THRESHOLD);
WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_CHAN_LIST);
+/* Roam scan mode Cmd */
+#define WMITLV_TABLE_WMI_ROAM_SCAN_CMD(id,op,buf,len) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_roam_scan_cmd_fixed_param, wmi_roam_scan_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
+
+WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_SCAN_CMD);
+
+
#define WMITLV_TABLE_WMI_VDEV_PLMREQ_START_CMDID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_vdev_plmreq_start_cmd_fixed_param, wmi_vdev_plmreq_start_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, channel_list, WMITLV_SIZE_VAR)
@@ -1534,6 +1557,29 @@ WMITLV_CREATE_PARAM_STRUC(WMI_NAN_CMDID);
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_modem_power_state_cmd_param, wmi_modem_power_state_cmd_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_MODEM_POWER_STATE_CMDID);
+/* get estimated link speed cmd */
+#define WMITLV_TABLE_WMI_PEER_GET_ESTIMATED_LINKSPEED_CMDID(id,op,buf,len) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_get_estimated_linkspeed_cmd_fixed_param, wmi_peer_get_estimated_linkspeed_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
+WMITLV_CREATE_PARAM_STRUC(WMI_PEER_GET_ESTIMATED_LINKSPEED_CMDID);
+
+/* ext stats Request */
+#define WMITLV_TABLE_WMI_REQUEST_STATS_EXT_CMDID(id,op,buf,len) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_req_stats_ext_cmd_fixed_param, wmi_req_stats_ext_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR)
+WMITLV_CREATE_PARAM_STRUC(WMI_REQUEST_STATS_EXT_CMDID);
+
+/* 2.4Ghz HT40 OBSS scan enable */
+#define WMITLV_TABLE_WMI_OBSS_SCAN_ENABLE_CMDID(id,op,buf,len) \
+ WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_obss_scan_enable_cmd_fixed_param, wmi_obss_scan_enable_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
+ WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, channels, WMITLV_SIZE_VAR) \
+ WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, ie_field, WMITLV_SIZE_VAR)
+WMITLV_CREATE_PARAM_STRUC(WMI_OBSS_SCAN_ENABLE_CMDID);
+
+/* 2.4Ghz HT40 OBSS scan disable */
+#define WMITLV_TABLE_WMI_OBSS_SCAN_DISABLE_CMDID(id,op,buf,len) \
+ WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_obss_scan_disable_cmd_fixed_param, wmi_obss_scan_disable_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
+WMITLV_CREATE_PARAM_STRUC(WMI_OBSS_SCAN_DISABLE_CMDID);
+
/************************** TLV definitions of WMI events *******************************/
/* Service Ready event */
@@ -1811,9 +1857,9 @@ WMITLV_CREATE_PARAM_STRUC(WMI_BATCH_SCAN_ENABLED_EVENTID);
WMITLV_ELEM(id,op,buf,len,WMITLV_TAG_ARRAY_STRUC, wmi_batch_scan_result_network_info, network_list, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_BATCH_SCAN_RESULT_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);
+#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);
/* NOA Event */
#define WMITLV_TABLE_WMI_P2P_NOA_EVENTID(id,op,buf,len) \
@@ -1856,6 +1902,21 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_L1SS_TRACK_EVENTID);
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, bufp, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_DIAG_DATA_CONTAINER_EVENTID);
+/* Estimated Link Speed Indication*/
+#define WMITLV_TABLE_WMI_PEER_ESTIMATED_LINKSPEED_EVENTID(id,op,buf,len)\
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_estimated_linkspeed_event_fixed_param, wmi_peer_estimated_linkspeed_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
+WMITLV_CREATE_PARAM_STRUC(WMI_PEER_ESTIMATED_LINKSPEED_EVENTID);
+
+#define WMITLV_TABLE_WMI_STATS_EXT_EVENTID(id,op,buf,len) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_stats_ext_event_fixed_param, wmi_stats_ext_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, data, WMITLV_SIZE_VAR)
+WMITLV_CREATE_PARAM_STRUC(WMI_STATS_EXT_EVENTID);
+
+#define WMITLV_TABLE_WMI_OFFLOAD_PROB_RESP_TX_STATUS_EVENTID(id,op,buf,len) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_offload_prb_rsp_tx_status_event_fixed_param, wmi_offload_prb_rsp_tx_status_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
+WMITLV_CREATE_PARAM_STRUC(WMI_OFFLOAD_PROB_RESP_TX_STATUS_EVENTID);
+
+
#ifdef __cplusplus
}
#endif
diff --git a/CORE/SERVICES/COMMON/wmi_unified.h b/CORE/SERVICES/COMMON/wmi_unified.h
index 03fbc537b860..75db37e842a4 100644
--- a/CORE/SERVICES/COMMON/wmi_unified.h
+++ b/CORE/SERVICES/COMMON/wmi_unified.h
@@ -172,6 +172,7 @@ typedef enum {
WMI_GRP_OEM,
WMI_GRP_NAN,
WMI_GRP_COEX,
+ WMI_GRP_OBSS_OFL,
} WMI_GRP_ID;
#define WMI_CMD_GRP_START_ID(grp_id) (((grp_id) << 12) | 0x1)
@@ -286,6 +287,11 @@ typedef enum {
/** request peer info from FW. FW shall respond with PEER_INFO_EVENTID */
WMI_PEER_INFO_REQ_CMDID,
+ /** request the estimated link speed for the peer. FW shall respond with
+ * WMI_PEER_ESTIMATED_LINKSPEED_EVENTID.
+ */
+ WMI_PEER_GET_ESTIMATED_LINKSPEED_CMDID,
+
/* beacon/management specific commands */
/** transmit beacon by reference . used for transmitting beacon on low latency interface like pcie */
@@ -352,6 +358,8 @@ typedef enum {
WMI_ROAM_AP_PROFILE,
/** set channel list for roam scans */
WMI_ROAM_CHAN_LIST,
+ /** Stop scan command */
+ WMI_ROAM_SCAN_CMD,
/** offload scan specific commands */
/** set offload scan AP profile */
@@ -440,6 +448,8 @@ typedef enum {
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,
+ /** one time request for txrx stats */
+ WMI_REQUEST_STATS_EXT_CMDID,
/** ARP OFFLOAD REQUEST*/
WMI_SET_ARP_NS_OFFLOAD_CMDID=WMI_CMD_GRP_START_ID(WMI_GRP_ARP_NS_OFL),
@@ -593,6 +603,17 @@ typedef enum {
/** Modem power state command */
WMI_MODEM_POWER_STATE_CMDID=WMI_CMD_GRP_START_ID(WMI_GRP_COEX),
+ /**
+ * OBSS scan offload enable/disable commands
+ * OBSS scan enable CMD will send to FW after VDEV UP, if these conditions are true:
+ * 1. WMI_SERVICE_OBSS_SCAN is reported by FW in service ready,
+ * 2. STA connect to a 2.4Ghz ht20/ht40 AP,
+ * 3. AP enable 20/40 coexistence (OBSS_IE-74 can be found in beacon or association response)
+ * If OBSS parameters from beacon changed, also use enable CMD to update parameters.
+ * OBSS scan disable CMD will send to FW if have enabled when tearing down connection.
+ */
+ WMI_OBSS_SCAN_ENABLE_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_OBSS_OFL),
+ WMI_OBSS_SCAN_DISABLE_CMDID,
} WMI_CMD_ID;
typedef enum {
@@ -649,6 +670,10 @@ typedef enum {
/** Event indicating that TX fail count reaching threshold */
WMI_PEER_TX_FAIL_CNT_THR_EVENTID,
+ /** Return the estimate link speed for the Peer specified in the
+ * WMI_PEER_GET_ESTIMATED_LINKSPEED_CMDID command.
+ */
+ WMI_PEER_ESTIMATED_LINKSPEED_EVENTID,
/* beacon/mgmt specific events */
/** RX management frame. the entire frame is carried along with the event. */
@@ -664,6 +689,9 @@ typedef enum {
/** event after the first beacon is transmitted following
a change in the template.*/
WMI_OFFLOAD_BCN_TX_STATUS_EVENTID,
+ /** event after the first probe response is transmitted following
+ a change in the template.*/
+ WMI_OFFLOAD_PROB_RESP_TX_STATUS_EVENTID,
/*ADDBA Related WMI Events*/
/** Indication the completion of the prior
@@ -702,6 +730,9 @@ typedef enum {
WMI_TSF_MEASUREMENT_REPORT_EVENTID,
/** RTT error report */
WMI_RTT_ERROR_REPORT_EVENTID,
+ /*STATS specific events*/
+ /** txrx stats event requested by host */
+ WMI_STATS_EXT_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_STATS),
/*NLO specific events*/
/** NLO match event after the first match */
@@ -1481,6 +1512,9 @@ typedef struct {
A_UINT32 num_ssids;
/** number of bytes in ie data. In the TLV ie_data[] */
A_UINT32 ie_len;
+ /** Max number of probes to be sent */
+ A_UINT32 n_probes;
+
/**
* TLV (tag length value ) parameters follow the scan_cmd
@@ -2156,6 +2190,8 @@ typedef enum {
WMI_PDEV_PARAM_L1SS_TRACK,
/** set hyst at runtime, requirement from SS */
WMI_PDEV_PARAM_HYST_EN,
+ /** Enable/ Disable POWER COLLAPSE */
+ WMI_PDEV_PARAM_POWER_COLLAPSE_ENABLE,
} WMI_PDEV_PARAM;
typedef enum {
@@ -3169,11 +3205,13 @@ WMI_VDEV_PARAM_ROAM_FW_OFFLOAD WMI_VDEV_PARAM **/
} wmi_prb_tmpl_cmd_fixed_param;
typedef struct {
+ /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_offload_bcn_tx_status_event_fixed_param */
A_UINT32 tlv_header;
+ /** unique id identifying the VDEV */
A_UINT32 vdev_id;
+ /** bcn tx status, values defined in enum WMI_FRAME_TX_STATUS */
A_UINT32 tx_status;
-}wmi_offload_bcn_tx_status_event_fixed_param;
-
+} wmi_offload_bcn_tx_status_event_fixed_param;
enum wmi_sta_ps_mode {
/** enable power save for the given STA VDEV */
@@ -4187,6 +4225,14 @@ typedef struct {
#define WMI_ROAM_SCAN_MODE_RSSI_CHANGE 0x2
#define WMI_ROAM_SCAN_MODE_BOTH 0x3
+typedef struct {
+ A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_scan_cmd_fixed_param */
+ A_UINT32 vdev_id;
+ A_UINT32 command_arg;
+} wmi_roam_scan_cmd_fixed_param;
+
+#define WMI_ROAM_SCAN_STOP_CMD 0x1
+
/**
* WMI_ROAM_SCAN_RSSI_THRESHOLD : set scan rssi thresold
* scan rssi threshold is the rssi threshold below which the FW will start running Roam scans.
@@ -6488,6 +6534,127 @@ enum {
WMI_MODEM_STATE_ON
};
+#define WMI_PEER_ESTIMATED_LINKSPEED_INVALID 0xFFFFFFFF
+
+typedef struct {
+ /* TLV tag and len; tag equals WMITLV_TAG_STRUC_ wmi_peer_get_estimated_linkspeed_cmd_fixed_param */
+ A_UINT32 tlv_header;
+ /** MAC address of the peer for which the estimated link speed is required. */
+ wmi_mac_addr peer_macaddr;
+} wmi_peer_get_estimated_linkspeed_cmd_fixed_param;
+
+typedef struct {
+ /* TLV tag and len; tag equals WMITLV_TAG_STRUC_ wmi_peer_estimated_linkspeed_event_fixed_param */
+ A_UINT32 tlv_header;
+ /** MAC address of the peer for which the estimated link speed is required.
+ */
+ wmi_mac_addr peer_macaddr;
+ /* Estimated link speed in kbps.
+ * When est_linkspeed_kbps is not valid, the value is set to WMI_PEER_ESTIMATED_LINKSPEED_INVALID.
+ */
+ A_UINT32 est_linkspeed_kbps;
+} wmi_peer_estimated_linkspeed_event_fixed_param;
+
+typedef struct {
+ A_UINT32 tlv_header; /* TLV tag and len; tag equals */
+ /* vdev ID */
+ A_UINT32 vdev_id;
+ A_UINT32 data_len; /** length in byte of data[]. */
+ /* This structure is used to send REQ binary blobs
+ * from application/service to firmware where Host drv is pass through .
+ * Following this structure is the TLV:
+ * A_UINT8 data[]; // length in byte given by field data_len.
+ */
+} wmi_req_stats_ext_cmd_fixed_param;
+
+typedef struct {
+ A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_stats1_event_fix_param */
+ A_UINT32 vdev_id; /** vdev ID */
+ A_UINT32 data_len; /** length in byte of data[]. */
+ /* This structure is used to send REQ binary blobs
+ * from firmware to application/service where Host drv is pass through .
+ * Following this structure is the TLV:
+ * A_UINT8 data[]; // length in byte given by field data_len.
+ */
+} wmi_stats_ext_event_fixed_param;
+
+enum {
+ WMI_2G4_HT40_OBSS_SCAN_PASSIVE = 0, /** scan_type: passive */
+ WMI_2G4_HT40_OBSS_SCAN_ACTIVE, /** scan_type: active */
+};
+
+typedef struct {
+ /**
+ * TLV tag and len;
+ * tag equals WMITLV_TAG_STRUC_wmi_obss_scan_enalbe_cmd_fixed_param
+ */
+ A_UINT32 tlv_header;
+ A_UINT32 vdev_id;
+ /**
+ * active or passive. if active all the channels are actively scanned.
+ * if passive then all the channels are passively scanned
+ */
+ A_UINT32 scan_type;
+ /**
+ * FW can perform multiple scans with in a OBSS scan interval.
+ * For each scan,
+ * if the scan is passive then obss_scan_passive_dwell is minimum dwell to be used for each channel ,
+ * if the scan is active then obss_scan_active_dwell is minimum dwell to be used for each channel .
+ * The unit for these 2 parameters is TUs.
+ */
+ A_UINT32 obss_scan_passive_dwell;
+ A_UINT32 obss_scan_active_dwell;
+ /**
+ * OBSS scan interval . FW needs to perform one or more OBSS scans within this interval and fulfill the
+ * both min and total per channel dwell time requirement
+ */
+ A_UINT32 bss_channel_width_trigger_scan_interval;
+ /**
+ * FW can perform multiple scans with in a OBSS scan interval.
+ * For each scan,
+ * the total per channel dwell time across all scans with in OBSS scan interval should be
+ * atleast obss_scan_passive_total_per channel for passive scas and obss_scan_active_total_per channel
+ * for active scans and ,
+ * The unit for these 2 parameters is TUs.
+ */
+ A_UINT32 obss_scan_passive_total_per_channel;
+ A_UINT32 obss_scan_active_total_per_channel;
+ A_UINT32 bss_width_channel_transition_delay_factor; /** parameter to check exemption from scan */
+ A_UINT32 obss_scan_activity_threshold; /** parameter to check exemption from scan */
+ /** following two parameters used by FW to fill IEs when sending 20/40 coexistence action frame to AP */
+ A_UINT32 forty_mhz_intolerant; /** STA 40M bandwidth intolerant capability */
+ A_UINT32 current_operating_class; /** STA current operating class */
+ /** length of 2.4GHz channel list to scan at, channel list in tlv->channels[] */
+ A_UINT32 channel_len;
+ /** length of optional ie data to append to probe reqest when active scan, ie data in tlv->ie_field[] */
+ A_UINT32 ie_len;
+} wmi_obss_scan_enable_cmd_fixed_param;
+
+typedef struct {
+ /**
+ * TLV tag and len;
+ * tag equals WMITLV_TAG_STRUC_wmi_obss_scan_disalbe_cmd_fixed_param
+ */
+ A_UINT32 tlv_header;
+ A_UINT32 vdev_id;
+} wmi_obss_scan_disable_cmd_fixed_param;
+
+typedef struct {
+ /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_offload_prb_rsp_tx_status_event_fixed_param */
+ A_UINT32 tlv_header;
+ /** unique id identifying the VDEV */
+ A_UINT32 vdev_id;
+ /** prb rsp tx status, values defined in enum WMI_FRAME_TX_STATUS */
+ A_UINT32 tx_status;
+}wmi_offload_prb_rsp_tx_status_event_fixed_param;
+
+typedef enum {
+ WMI_FRAME_TX_OK, /* frame tx ok */
+ WMI_FRAME_TX_XRETRY, /* excessivley retried */
+ WMI_FRAME_TX_DROP, /* frame dropped by FW due to resources */
+ WMI_FRAME_TX_FILTERED, /* frame filtered by hardware */
+} WMI_FRAME_TX_STATUS;
+
#ifdef __cplusplus
}
#endif
diff --git a/CORE/SERVICES/COMMON/wmi_version.h b/CORE/SERVICES/COMMON/wmi_version.h
index 779b85966ffe..f5cfd2725348 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_ 40
+#define __WMI_REVISION_ 43
/** The Version Namespace should not be normally changed. Only
* host and firmware of the same WMI namespace will work
diff --git a/CORE/SERVICES/WMI/wmi_unified.c b/CORE/SERVICES/WMI/wmi_unified.c
index 0f7a4dbcaf21..9a8930fe685f 100644
--- a/CORE/SERVICES/WMI/wmi_unified.c
+++ b/CORE/SERVICES/WMI/wmi_unified.c
@@ -525,6 +525,11 @@ static u_int8_t* get_wmi_cmd_string(WMI_CMD_ID wmi_command)
CASE_RETURN_STRING(WMI_NAN_CMDID);
/* Modem power state cmd */
CASE_RETURN_STRING(WMI_MODEM_POWER_STATE_CMDID);
+ CASE_RETURN_STRING(WMI_REQUEST_STATS_EXT_CMDID);
+ CASE_RETURN_STRING(WMI_OBSS_SCAN_ENABLE_CMDID);
+ CASE_RETURN_STRING(WMI_OBSS_SCAN_DISABLE_CMDID);
+ CASE_RETURN_STRING(WMI_PEER_GET_ESTIMATED_LINKSPEED_CMDID);
+ CASE_RETURN_STRING(WMI_ROAM_SCAN_CMD);
}
return "Invalid WMI cmd";
}