summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZhang Qian <zhangq@codeaurora.org>2019-04-04 19:16:37 +0800
committerZhang Qian <zhangq@codeaurora.org>2019-04-12 11:20:21 +0800
commit6cd6926f7c0b4475d09fa11d1e04d03d54e29470 (patch)
tree9a5eee7634a959fa80b36142d9929bf5e508779d
parent73ebbac158f60b0d60a106660bf4528b1719c6e3 (diff)
qcacld-2.0: CL 6565901-6699888 - Update fw common interface files
CL6565901 WMI: provide VIDEO_OVER_WIFI_ENABLE flag in WMI_INIT_CMD CL6571150 WMI: add PEER_CFG_CAPTURE_EVENT msg def CL6580656 WMI: add def of COLD_BOOT_CAL_DATA_EVENT msg CL6599296 WMI: add COEX_CONFIG_MPTA_HELPER_ defs CL6620317 Add WMI_PEER_TYPE_TRANS_BSS def CL6647788 Add WMI_PDEV_PARAM_SET_MU_PPDU_DURATION def CL6658261 WMI: add flags to enable/disable broadcast TWT CL6699888 WMI: add rogue AP CONFIG_CMD and INFO_EVENT msg defs Change-Id: I5b42925ca32f01fadd1bc3065d8ac4bfa8a8352f CRs-fixed: 2433619
-rw-r--r--CORE/SERVICES/COMMON/wmi_services.h9
-rw-r--r--CORE/SERVICES/COMMON/wmi_tlv_defs.h62
-rw-r--r--CORE/SERVICES/COMMON/wmi_unified.h979
-rw-r--r--CORE/SERVICES/COMMON/wmi_version.h2
-rw-r--r--CORE/SERVICES/WMI/wmi_unified.c1
5 files changed, 678 insertions, 375 deletions
diff --git a/CORE/SERVICES/COMMON/wmi_services.h b/CORE/SERVICES/COMMON/wmi_services.h
index a4909262af86..6d3c7597a916 100644
--- a/CORE/SERVICES/COMMON/wmi_services.h
+++ b/CORE/SERVICES/COMMON/wmi_services.h
@@ -473,6 +473,10 @@ typedef enum {
WMI_SERVICE_EXT_PEER_TID_CONFIGS_SUPPORT = 194, /* Extended Peer Tid configuration support for QoS related settings */
WMI_SERVICE_WPA3_FT_SAE_SUPPORT = 195, /* FW roaming support for WPA3_FT_SAE */
WMI_SERVICE_WPA3_FT_SUITE_B_SUPPORT = 196, /* FW roaming support for WPA3_FT_SUITE_B */
+ WMI_SERVICE_VOW_ENABLE=197, /* FW supports a set of features to optimize VoW performance */
+ WMI_SERVICE_CFR_CAPTURE_IND_EVT_TYPE_1 = 198, /* support WMI_PEER_CFR_CAPTURE_EVENT msg */
+ WMI_SERVICE_BROADCAST_TWT = 199, /* support of Broadcast TWT (Target Wake Time) for STA/AP */
+ WMI_SERVICE_RAP_DETECTION_SUPPORT = 200, /* indicate FW supports rogue AP detection */
/******* ADD NEW SERVICES HERE *******/
@@ -486,10 +490,6 @@ typedef enum {
#define WMI_NUM_EXT_SERVICES (WMI_MAX_EXT_SERVICE - WMI_MAX_SERVICE)
#define WMI_SERVICE_EXT_BM_SIZE32 ((WMI_NUM_EXT_SERVICES + 31) / 32)
-/**
- * depreciated the name WMI_SERVICE_ROAM_OFFLOAD, but here to help
- * compiling with old host driver
- */
#define WMI_SERVICE_ROAM_OFFLOAD WMI_SERVICE_ROAM_SCAN_OFFLOAD
/*
@@ -507,6 +507,7 @@ typedef enum {
( ((pwmi_svc_bmap)[(svc_id)/(sizeof(A_UINT32))] & \
(1 << ((svc_id)%(sizeof(A_UINT32)))) ) != 0)
+
#define WMI_SERVICE_EXT_ENABLE(pwmi_svc_bmap, pwmi_svc_ext_bmap, svc_id) \
do { \
if (svc_id < WMI_MAX_SERVICE) { \
diff --git a/CORE/SERVICES/COMMON/wmi_tlv_defs.h b/CORE/SERVICES/COMMON/wmi_tlv_defs.h
index f58764f3ddb7..20b97d67a8f3 100644
--- a/CORE/SERVICES/COMMON/wmi_tlv_defs.h
+++ b/CORE/SERVICES/COMMON/wmi_tlv_defs.h
@@ -965,6 +965,11 @@ typedef enum {
WMITLV_TAG_STRUC_wmi_request_wlm_stats_cmd_fixed_param,
WMITLV_TAG_STRUC_wmi_wlm_stats_event_fixed_param,
WMITLV_TAG_STRUC_wmi_key_material_ext,
+ WMITLV_TAG_STRUC_wmi_peer_cfr_capture_event_fixed_param,
+ WMITLV_TAG_STRUC_wmi_cold_boot_cal_data_fixed_param,
+ WMITLV_TAG_STRUC_wmi_pdev_set_rap_config_fixed_param,
+ WMITLV_TAG_STRUC_wmi_pdev_set_rap_config_on_sta_ps_tlv_param,
+ WMITLV_TAG_STRUC_wmi_pdev_rap_info_event_fixed_param,
} WMITLV_TAG_ID;
/*
@@ -1357,6 +1362,8 @@ typedef enum {
OP(WMI_ROAM_BSS_LOAD_CONFIG_CMDID) \
OP(WMI_VDEV_GET_MWS_COEX_INFO_CMDID) \
OP(WMI_REQUEST_WLM_STATS_CMDID) \
+ OP(WMI_PDEV_SET_RAP_CONFIG_CMDID) \
+ /* add new CMD_LIST elements above this line */
/* add new CMD_LIST elements above this line */
/*
@@ -1576,6 +1583,9 @@ typedef enum {
OP(WMI_VDEV_GET_MWS_COEX_IDRX_STATE_EVENTID) \
OP(WMI_VDEV_GET_MWS_COEX_ANTENNA_SHARING_STATE_EVENTID) \
OP(WMI_WLM_STATS_EVENTID) \
+ OP(WMI_PEER_CFR_CAPTURE_EVENTID) \
+ OP(WMI_PDEV_COLD_BOOT_CAL_DATA_EVENTID) \
+ OP(WMI_PDEV_RAP_INFO_EVENTID) \
/* add new EVT_LIST elements above this line */
@@ -3354,7 +3364,6 @@ WMITLV_CREATE_PARAM_STRUC(WMI_VDEV_TSF_TSTAMP_ACTION_CMDID);
#define WMITLV_TABLE_WMI_ROAM_SUBNET_CHANGE_CONFIG_CMDID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_roam_subnet_change_config_fixed_param, wmi_roam_subnet_change_config_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_FIXED_STRUC, wmi_mac_addr, skip_subnet_change_detection_bssid_list, WMITLV_SIZE_VAR)
-
WMITLV_CREATE_PARAM_STRUC(WMI_ROAM_SUBNET_CHANGE_CONFIG_CMDID);
/* Set the SOC Preferred Channel List (PCL) Cmd - DEPRECATED */
@@ -3633,6 +3642,10 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PEER_SET_RX_BLOCKSIZE_CMDID);
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_bwf_peer_info, peer_info, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_PEER_BWF_REQUEST_CMDID);
+#define WMITLV_TABLE_WMI_RMC_SET_MANUAL_LEADER_CMDID(id,op,buf,len) \
+ WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_rmc_set_leader_cmd_fixed_param, wmi_rmc_set_leader_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
+WMITLV_CREATE_PARAM_STRUC(WMI_RMC_SET_MANUAL_LEADER_CMDID);
+
/* peer reorder queue setup cmd */
#define WMITLV_TABLE_WMI_PEER_REORDER_QUEUE_SETUP_CMDID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_reorder_queue_setup_cmd_fixed_param, wmi_peer_reorder_queue_setup_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
@@ -3706,6 +3719,7 @@ WMITLV_CREATE_PARAM_STRUC(WMI_11D_SCAN_STOP_CMDID);
#define WMITLV_TABLE_WMI_REQUEST_RADIO_CHAN_STATS_CMDID(id,op,buf,len) \
WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_request_radio_chan_stats_cmd_fixed_param, wmi_request_radio_chan_stats_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_REQUEST_RADIO_CHAN_STATS_CMDID);
+
/* mac randomization cmd */
#define WMITLV_TABLE_WMI_VDEV_ADD_MAC_ADDR_TO_RX_FILTER_CMDID(id, op, buf, len) \
WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_vdev_add_mac_addr_to_rx_filter_cmd_fixed_param, wmi_vdev_add_mac_addr_to_rx_filter_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX)
@@ -3897,6 +3911,13 @@ WMITLV_CREATE_PARAM_STRUC(WMI_HPCS_PULSE_START_CMDID);
WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_PKTLOG_FILTER_CMDID);
+/* PDev Set Rogue AP Config cmd */
+#define WMITLV_TABLE_WMI_PDEV_SET_RAP_CONFIG_CMDID(id,op,buf,len) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_set_rap_config_fixed_param, wmi_pdev_set_rap_config_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_pdev_set_rap_config_on_sta_ps_tlv_param, rap_param, WMITLV_SIZE_VAR)
+WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SET_RAP_CONFIG_CMDID);
+
+
/************************** TLV definitions of WMI events *******************************/
/* Service Ready event */
@@ -3923,6 +3944,7 @@ WMITLV_CREATE_PARAM_STRUC(WMI_SERVICE_AVAILABLE_EVENTID);
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, WMI_HAL_REG_CAPABILITIES_EXT, hal_reg_caps, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, WMI_MAC_PHY_CHAINMASK_COMBO, mac_phy_chainmask_combo, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, WMI_MAC_PHY_CHAINMASK_CAPABILITY, mac_phy_chainmask_caps, WMITLV_SIZE_VAR) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, WMI_OEM_DMA_RING_CAPABILITIES, oem_dma_ring_caps, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_WMI_SAR_CAPABILITIES, WMI_SAR_CAPABILITIES, sar_caps, WMITLV_SIZE_FIX) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, WMI_DMA_RING_CAPABILITIES, dma_ring_caps, WMITLV_SIZE_VAR) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_spectral_bin_scaling_params, wmi_bin_scaling_params, WMITLV_SIZE_VAR)
@@ -4105,6 +4127,12 @@ WMITLV_CREATE_PARAM_STRUC(WMI_MGMT_RX_EVENTID);
WMITLV_FXAR(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, tbttoffset_list, WMITLV_SIZE_FIX, WMI_MAX_AP_VDEV)
WMITLV_CREATE_PARAM_STRUC(WMI_TBTTOFFSET_UPDATE_EVENTID);
+/* TBTT EXT offset Event */
+#define WMITLV_TABLE_WMI_TBTTOFFSET_EXT_UPDATE_EVENTID(id,op,buf,len) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_tbtt_offset_ext_event_fixed_param, wmi_tbtt_offset_ext_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_tbtt_offset_info, tbtt_offset_info, WMITLV_SIZE_VAR)
+WMITLV_CREATE_PARAM_STRUC(WMI_TBTTOFFSET_EXT_UPDATE_EVENTID);
+
/* TX DELBA Complete Event */
#define WMITLV_TABLE_WMI_TX_DELBA_COMPLETE_EVENTID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_tx_delba_complete_event_fixed_param, wmi_tx_delba_complete_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
@@ -4689,6 +4717,7 @@ WMITLV_CREATE_PARAM_STRUC(WMI_DIAG_DATA_CONTAINER_EVENTID);
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);
+/* NAN Response/Indication Event */
#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)
@@ -4978,6 +5007,10 @@ WMITLV_CREATE_PARAM_STRUC(WMI_INST_RSSI_STATS_EVENTID);
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_UINT32, A_UINT32, tx_time_per_power_level, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_RADIO_TX_POWER_LEVEL_STATS_EVENTID);
+#define WMITLV_TABLE_WMI_RMC_NEW_LEADER_EVENTID(id, op, buf, len) \
+ WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_rmc_manual_leader_event_fixed_param, wmi_rmc_manual_leader_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
+WMITLV_CREATE_PARAM_STRUC(WMI_RMC_NEW_LEADER_EVENTID);
+
/* Layout of WMI_REPORT_STATS_EVENTID message:
* fixed_param;
* wmi_chan_cca_stats chan_cca_stats[]; Array length is specified by num_chan_cca_stats
@@ -5003,7 +5036,7 @@ WMITLV_CREATE_PARAM_STRUC(WMI_RADIO_TX_POWER_LEVEL_STATS_EVENTID);
* The time represented by each array element (i.e. histogram bin) is specified by tx_ppdu_delay_bin_size_ms.
* Element 0 contains the count of PPDUs delayed by less than tx_ppdu_delay_bin_size_ms.
* Element 1 contains the count of PPDUs delayed by more than 1x tx_ppdu_delay_bin_size_ms but less than 2x.
- * Element tx_delay_array_len-1 contains the count of PPDUs delayed by
+ * Element tx_ppdu_delay_array_len-1 contains the count of PPDUs delayed by
* >= tx_ppdu_delay_bin_size_ms * (tx_ppdu_delay_array_len-1)
* wmi_peer_ac_rx_stats peer_ac_rx_stats[]; Array length is specified by num_peer_ac_rx_stats
* wmi_rx_stats rx_stats[][]; Array length is num_peer_ac_rx_stats * WLAN_MAX_AC, array index is (peer_index * WLAN_MAX_AC + ac_index)
@@ -5129,6 +5162,7 @@ WMITLV_CREATE_PARAM_STRUC(WMI_RADIO_CHAN_STATS_EVENTID);
#define WMITLV_TABLE_WMI_PKGID_EVENTID(id, op, buf, len) \
WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_pkgid_event_fixed_param, wmi_pkgid_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_PKGID_EVENTID);
+
/* mac randomization event */
#define WMITLV_TABLE_WMI_VDEV_ADD_MAC_ADDR_TO_RX_FILTER_STATUS_EVENTID(id, op, buf, len) \
WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_vdev_add_mac_addr_to_rx_filter_status_event_fixed_param, wmi_vdev_add_mac_addr_to_rx_filter_status_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
@@ -5177,16 +5211,17 @@ WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_DMA_RING_CFG_RSP_EVENTID);
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_dma_buf_release_spectral_meta_data, meta_data, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_DMA_RING_BUF_RELEASE_EVENTID);
+/* ctl failsafe check event */
+#define WMITLV_TABLE_WMI_PDEV_CTL_FAILSAFE_CHECK_EVENTID(id,op,buf,len) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_ctl_failsafe_check_fixed_param, wmi_pdev_ctl_failsafe_check_fixed_param, fixed_param, WMITLV_SIZE_FIX)
+WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_CTL_FAILSAFE_CHECK_EVENTID);
+
/* UNIT-TEST Event */
#define WMITLV_TABLE_WMI_UNIT_TEST_EVENTID(id,op,buf,len) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_unit_test_event_fixed_param, wmi_unit_test_event_fixed_param, fixed_param, WMITLV_SIZE_FIX) \
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_BYTE, A_UINT8, bufp, WMITLV_SIZE_VAR)
WMITLV_CREATE_PARAM_STRUC(WMI_UNIT_TEST_EVENTID);
-/* ctl failsafe check event */
-#define WMITLV_TABLE_WMI_PDEV_CTL_FAILSAFE_CHECK_EVENTID(id,op,buf,len) \
- WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_ctl_failsafe_check_fixed_param, wmi_pdev_ctl_failsafe_check_fixed_param, fixed_param, WMITLV_SIZE_FIX)
-WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_CTL_FAILSAFE_CHECK_EVENTID);
/* enabling TWT complete Event */
#define WMITLV_TABLE_WMI_TWT_ENABLE_COMPLETE_EVENTID(id,op,buf,len) \
@@ -5249,6 +5284,21 @@ WMITLV_CREATE_PARAM_STRUC(WMI_MOTION_DET_BASE_LINE_HOST_EVENTID);
WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_esp_estimate_event_fixed_param, wmi_esp_estimate_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
WMITLV_CREATE_PARAM_STRUC(WMI_ESP_ESTIMATE_EVENTID);
+/* Peer CFR capture event */
+#define WMITLV_TABLE_WMI_PEER_CFR_CAPTURE_EVENTID(id,op,buf,len) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_peer_cfr_capture_event_fixed_param, wmi_peer_cfr_capture_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
+WMITLV_CREATE_PARAM_STRUC(WMI_PEER_CFR_CAPTURE_EVENTID);
+
+#define WMITLV_TABLE_WMI_PDEV_COLD_BOOT_CAL_DATA_EVENTID(id,op,buf,len) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_cold_boot_cal_data_fixed_param, wmi_cold_boot_cal_data_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_PDEV_COLD_BOOT_CAL_DATA_EVENTID);
+
+/* rogue ap info event */
+#define WMITLV_TABLE_WMI_PDEV_RAP_INFO_EVENTID(id,op,buf,len) \
+ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_STRUC_wmi_pdev_rap_info_event_fixed_param, wmi_pdev_rap_info_event_fixed_param, fixed_param, WMITLV_SIZE_FIX)
+WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_RAP_INFO_EVENTID);
+
#ifdef __cplusplus
}
#endif
diff --git a/CORE/SERVICES/COMMON/wmi_unified.h b/CORE/SERVICES/COMMON/wmi_unified.h
index dc07acc48f53..d33952eba057 100644
--- a/CORE/SERVICES/COMMON/wmi_unified.h
+++ b/CORE/SERVICES/COMMON/wmi_unified.h
@@ -406,6 +406,8 @@ typedef enum {
WMI_PDEV_HE_TB_ACTION_FRM_CMDID,
/** filter packet log based on MAC address */
WMI_PDEV_PKTLOG_FILTER_CMDID,
+ /** wmi command for setting rogue ap configuration */
+ WMI_PDEV_SET_RAP_CONFIG_CMDID,
/* VDEV (virtual device) specific commands */
/** vdev create */
@@ -554,8 +556,21 @@ typedef enum {
WMI_PEER_TID_CONFIGURATIONS_CMDID,
/** Peer configuration for Channel Frequency Response (CFR) capture
- * of type wmi_peer_cfr_capture_cmd. The CFR capture is communicated
- * through HTT_T2H_MSG_TYPE_CFR_DUMP_COMPL_IND.
+ * of type wmi_peer_cfr_capture_cmd.
+ *
+ * On targets that do not use the direct DMA framework,
+ * completion of the CFR capture is communicated through
+ * HTT_T2H_MSG_TYPE_CFR_DUMP_COMPL_IND.
+ * Such targets will set WMI_SERVICE_CFR_CAPTURE_IND_MSG_TYPE_1
+ * in WMI Service Ready.
+ *
+ * On targets that use direct DMA, completion of CFR capture is
+ * communicated through WMI_PDEV_DMA_RING_BUF_RELEASE_EVENTID
+ * using module ID WMI_DMA_RING_CONFIG_MODULE_RTT.
+ * Such targets will set WMI_SERVICE_CFR_CAPTURE_IND_EVT_TYPE_1
+ * in WMI Service Ready and enumerate WMI_DMA_RING_CONFIG_MODULE_RTT
+ * in the dma_ring_caps entry of WMI_SERVICE_READY_EXT_EVENTID.
+ * Additional MAC metadata is provided in WMI_PEER_CFR_CAPTURE_EVENTID.
*/
WMI_PEER_CFR_CAPTURE_CMDID,
@@ -1289,6 +1304,18 @@ typedef enum {
WMI_PDEV_DMA_RING_BUF_RELEASE_EVENTID,
/* VDEV specific events */
+ WMI_PDEV_CTL_FAILSAFE_CHECK_EVENTID,
+
+ /* Event to report the switch count in BSS color of one or more VDEVs */
+ WMI_PDEV_CSC_SWITCH_COUNT_STATUS_EVENTID,
+
+ /* Event to send cold boot calibration data */
+ WMI_PDEV_COLD_BOOT_CAL_DATA_EVENTID,
+
+ /* Event to report a rogue ap info that is detected in fw */
+ WMI_PDEV_RAP_INFO_EVENTID,
+
+ /* VDEV specific events */
/** VDEV started event in response to VDEV_START request */
WMI_VDEV_START_RESP_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_VDEV),
/** vdev stopped event , generated in response to VDEV_STOP request */
@@ -1401,14 +1428,10 @@ typedef enum {
WMI_PEER_OPER_MODE_CHANGE_EVENTID,
/** WMI Event to deliver CTL Failsafe application */
- WMI_PDEV_CTL_FAILSAFE_CHECK_EVENTID,
-
- /* Event to report the switch count in BSS color of one or more VDEVs */
- WMI_PDEV_CSC_SWITCH_COUNT_STATUS_EVENTID,
-
- /** report the current tx PN for the peer */
WMI_PEER_TX_PN_RESPONSE_EVENTID,
+ WMI_PEER_CFR_CAPTURE_EVENTID,
+
/* beacon/mgmt specific events */
/** RX management frame. the entire frame is carried along with the event. */
WMI_MGMT_RX_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_MGMT),
@@ -2953,6 +2976,15 @@ typedef struct {
#define WMI_RSRC_CFG_FLAG_PEER_TID_EXT_S 22
#define WMI_RSRC_CFG_FLAG_PEER_TID_EXT_M 0x400000
+ /*
+ * If the VIDEO_OVER_WIFI_ENABLE flag is set, the target will use a
+ * series of algorithmic adjustments to optimize Video performance
+ * by reducing latency, reducing latency jitter, and minimizing
+ * dropped packets.
+ */
+ #define WMI_RSRC_CFG_FLAG_VIDEO_OVER_WIFI_ENABLE_S 23
+ #define WMI_RSRC_CFG_FLAG_VIDEO_OVER_WIFI_ENABLE_M 0x800000
+
A_UINT32 flag1;
/** @brief smart_ant_cap - Smart Antenna capabilities information
@@ -3205,6 +3237,11 @@ typedef struct {
#define WMI_RSRC_CFG_FLAG_PEER_TID_EXT_GET(word32) \
WMI_RSRC_CFG_FLAG_GET((word32), PEER_TID_EXT)
+#define WMI_RSRC_CFG_FLAG_VIDEO_OVER_WIFI_ENABLE_SET(word32, value) \
+ WMI_RSRC_CFG_FLAG_SET((word32), VIDEO_OVER_WIFI_ENABLE, (value))
+#define WMI_RSRC_CFG_FLAG_VIDEO_OVER_WIFI_ENABLE_GET(word32) \
+ WMI_RSRC_CFG_FLAG_GET((word32), VIDEO_OVER_WIFI_ENABLE)
+
typedef struct {
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_init_cmd_fixed_param */
@@ -4207,6 +4244,9 @@ typedef struct {
((int8_t) (WMI_F_MS((hdr)->rssi_chain##c, \
WMI_UNIFIED_RSSI_CHAN_##ch)))
+#define WMI_UNIFIED_CHAIN_RSSI_GET(tlv, chain_idx, band) \
+ ((A_INT8) WMI_F_MS((tlv)->chain_rssi[chain_idx], WMI_UNIFIED_RSSI_CHAN_ ## band))
+
typedef struct {
/** Phy error event header */
wmi_single_phyerr_rx_hdr hdr;
@@ -5597,6 +5637,8 @@ typedef enum {
*/
WMI_PDEV_PARAM_NAV_OVERRIDE_CONFIG,
+ /* Set global MU PPDU duration for DL (usec units) */
+ WMI_PDEV_PARAM_SET_MU_PPDU_DURATION, /* 0xB5 */
} WMI_PDEV_PARAM;
typedef struct {
@@ -6122,8 +6164,34 @@ typedef struct {
*/
} wmi_pdev_pktlog_filter_cmd_fixed_param;
+typedef enum {
+ WMI_ROGUE_AP_ON_STA_PS = 1, /* rogue ap on sta ps module */
+} WMI_ROGUE_AP_TYPE;
+typedef struct {
+ A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_set_rap_config_fixed_param */
+ /** pdev_id for identifying the MAC, the default value is WMI_PDEV_ID_SOC
+ * See macros starting with WMI_PDEV_ID_ for values.
+ */
+ A_UINT32 pdev_id;
+ A_UINT32 type;
+ /** Enable detection of rogue ap in the ps module
+ *
+ * 0 -> disabled
+ * 1 -> enabled (default)
+ */
+ A_UINT32 sta_ps_detection_enabled;
+/* This TLV is followed by rap_param for each rogue ap:
+ * wmi_pdev_set_rap_config_on_sta_ps_tlv_param rap_param[];
+ */
+} wmi_pdev_set_rap_config_fixed_param;
+
+typedef struct {
+ A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_set_rap_config_on_sta_ps_tlv_param */
+ /** bssid of rogue ap */
+ wmi_mac_addr bssid;
+} wmi_pdev_set_rap_config_on_sta_ps_tlv_param;
typedef struct {
A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_mib_stats_enable_cmd_fixed_param */
@@ -10567,6 +10635,7 @@ enum wmi_peer_type {
WMI_PEER_TYPE_TDLS = 2, /* Peer is a TDLS Peer */
WMI_PEER_TYPE_OCB = 3, /* Peer is a OCB Peer */
WMI_PEER_TYPE_NAN_DATA = 4, /* Peer is NAN DATA */
+ WMI_PEER_TYPE_TRANS_BSS = 5, /* For creating BSS peer when connecting with non-transmit AP */
WMI_PEER_TYPE_HOST_MAX = 127, /* Host <-> Target Peer type is assigned up to 127 */
/* Reserved from 128 - 255 for target internal use.*/
WMI_PEER_TYPE_ROAMOFFLOAD_TEMP = 128, /* Temporarily created during offload roam */
@@ -11230,6 +11299,9 @@ typedef struct {
#define WMI_CHAN_INFO_START_RESP 0
#define WMI_CHAN_INFO_END_RESP 1
+#define WMI_CHAN_InFO_START_RESP WMI_CHAN_INFO_START_RESP
+#define WMI_CHAN_InFO_END_RESP WMI_CHAN_INFO_END_RESP
+
typedef struct {
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_remove_wds_entry_cmd_fixed_param */
/** wds MAC addr */
@@ -21621,7 +21693,13 @@ typedef struct {
typedef struct {
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_channel_hopping_event_fixed_param */
- A_UINT32 mac_id; /* MAC ID */
+ union {
+ A_UINT32 mac_id; /* MAC ID */
+ /** pdev_id for identifying the MAC
+ * See macros starting with WMI_PDEV_ID_ for values.
+ */
+ A_UINT32 pdev_id;
+ };
/* Noise threshold iterations with high values */
A_UINT32 noise_floor_report_iter;
/* Total noise threshold iterations */
@@ -21742,7 +21820,10 @@ typedef struct {
typedef struct {
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_tpc_event_fixed_param */
- A_UINT32 reserved0; /* for future need */
+ /** pdev_id for identifying the MAC
+ * See macros starting with WMI_PDEV_ID_ for values.
+ */
+ A_UINT32 pdev_id;
/*
* Following this structure is the TLV:
* A_UINT32 tpc[2];
@@ -21752,13 +21833,18 @@ typedef struct {
* for a single rate. In the future this event may be expanded
* to provide the information for multiple rates.
* At that time, the format of the data will be provided.
-
*/
} wmi_pdev_tpc_event_fixed_param;
typedef struct {
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_nfcal_power_all_channels_event_fixed_param */
- A_UINT32 mac_id; /* MAC ID */
+ union {
+ A_UINT32 mac_id; /* MAC ID */
+ /** pdev_id for identifying the MAC
+ * See macros starting with WMI_PDEV_ID_ for values.
+ */
+ A_UINT32 pdev_id;
+ };
A_UINT32 nfdBr_len;
A_UINT32 nfdBm_len;
A_UINT32 freqNum_len;
@@ -22281,6 +22367,43 @@ typedef enum wmi_coex_config_type {
* arg4 - priority level 4, same parameters rules as arg1
*/
WMI_COEX_CONFIG_THREE_WAY_COEX_START = 34,
+ /* WMI_COEX_CONFIG_MPTA_HELPER_ENABLE
+ * config to enable(1)/disable(0) mpta-helper function
+ */
+ WMI_COEX_CONFIG_MPTA_HELPER_ENABLE = 35,
+ /* WMI_COEX_CONFIG_MPTA_HELPER_ZIGBEE_STATE
+ * config zigbee state
+ * arg1: zigbee state
+ * (idle form-network wait-join join-network network-up HMI)
+ */
+ WMI_COEX_CONFIG_MPTA_HELPER_ZIGBEE_STATE = 36,
+ /* WMI_COEX_CONFIG_MPTA_HELPER_INT_OCS_PARAMS
+ * config ocs wlan/nonwlan params after MPTA interrupt fired
+ * arg1: wlan duration (ms units) in Shape-OCS
+ * arg2: nonwlan duration (ms units) in Shape-OCS
+ */
+ WMI_COEX_CONFIG_MPTA_HELPER_INT_OCS_PARAMS = 37,
+ /* WMI_COEX_CONFIG_MPTA_HELPER_MON_OCS_PARAMS
+ * config ocs wlan/nonwlan params during monitor period after
+ * interrupt period finished
+ * arg1: wlan duration (ms units) in Shape-OCS
+ * arg2: nonwlan duration (ms units) in Shape-OCS
+ */
+ WMI_COEX_CONFIG_MPTA_HELPER_MON_OCS_PARAMS = 38,
+ /* WMI_COEX_CONFIG_MPTA_HELPER_INT_MON_DURATION
+ * config ocs duration in interrupt period and monitor period
+ * arg1: duration (ms units) in interrupt period
+ * arg2: duration (ms units) in monitor period
+ */
+ WMI_COEX_CONFIG_MPTA_HELPER_INT_MON_DURATION = 39,
+ /* WMI_COEX_CONFIG_MPTA_HELPER_ZIGBEE_CHANNEL
+ * config zigbee channel 11 - 26
+ */
+ WMI_COEX_CONFIG_MPTA_HELPER_ZIGBEE_CHANNEL = 40,
+ /* WMI_COEX_CONFIG_MPTA_HELPER_WLAN_MUTE_DURATION
+ * config msw mute duration (ms units) after MPTA interrupt fired
+ */
+ WMI_COEX_CONFIG_MPTA_HELPER_WLAN_MUTE_DURATION = 41,
} WMI_COEX_CONFIG_TYPE;
typedef struct {
@@ -22477,6 +22600,31 @@ typedef struct {
A_UINT32 reset_after_request;
} wmi_request_radio_chan_stats_cmd_fixed_param;
+typedef struct {
+ /** TLV tag and len; tag equals
+ * WMITLV_TAG_STRUC_wmi_rmc_set_leader_cmd_fixed_param */
+ A_UINT32 tlv_header;
+ /* VDEV identifier */
+ A_UINT32 vdev_id;
+ /* Leader's mac address */
+ wmi_mac_addr leader_mac_addr;
+} wmi_rmc_set_leader_cmd_fixed_param;
+
+typedef struct {
+ /** TLV tag and len; tag equals
+ * WMITLV_TAG_STRUC_wmi_rmc_manual_leader_event_fixed_param */
+ A_UINT32 tlv_header;
+ /* VDEV identifier */
+ A_UINT32 vdev_id;
+ /* 0: success
+ * 1: selected leader not found in network, able to find using auto selection
+ * -1: error
+ * non zero value should be return to userspace in case of failure */
+ A_INT32 status;
+ /* bssid of new leader */
+ wmi_mac_addr leader_mac_addr;
+} wmi_rmc_manual_leader_event_fixed_param;
+
typedef enum {
WLAN_2G_CAPABILITY = 0x1,
WLAN_5G_CAPABILITY = 0x2,
@@ -23626,6 +23774,7 @@ static INLINE A_UINT8 *wmi_id_to_name(A_UINT32 wmi_command)
WMI_RETURN_STRING(WMI_ROAM_BSS_LOAD_CONFIG_CMDID);
WMI_RETURN_STRING(WMI_VDEV_GET_MWS_COEX_INFO_CMDID);
WMI_RETURN_STRING(WMI_REQUEST_WLM_STATS_CMDID);
+ WMI_RETURN_STRING(WMI_PDEV_SET_RAP_CONFIG_CMDID);
}
return "Invalid WMI cmd";
@@ -24194,343 +24343,6 @@ typedef enum {
#define WLM_FLAGS_PS_DISABLE_SYS_SLEEP 1 /* disable sys sleep */
-typedef enum {
- WMI_ROAM_TRIGGER_REASON_NONE = 0,
- WMI_ROAM_TRIGGER_REASON_PER,
- WMI_ROAM_TRIGGER_REASON_BMISS,
- WMI_ROAM_TRIGGER_REASON_LOW_RSSI,
- WMI_ROAM_TRIGGER_REASON_HIGH_RSSI,
- WMI_ROAM_TRIGGER_REASON_PERIODIC,
- WMI_ROAM_TRIGGER_REASON_MAWC,
- WMI_ROAM_TRIGGER_REASON_DENSE,
- WMI_ROAM_TRIGGER_REASON_BACKGROUND,
- WMI_ROAM_TRIGGER_REASON_FORCED,
- WMI_ROAM_TRIGGER_REASON_BTM,
- WMI_ROAM_TRIGGER_REASON_UNIT_TEST,
- WMI_ROAM_TRIGGER_REASON_BSS_LOAD,
- WMI_ROAM_TRIGGER_REASON_MAX,
-} WMI_ROAM_TRIGGER_REASON_ID;
-
-/* value for DENSE roam trigger */
-#define WMI_RX_TRAFFIC_ABOVE_THRESHOLD 0x1
-#define WMI_TX_TRAFFIC_ABOVE_THRESHOLD 0x2
-
-typedef struct {
- A_UINT32 trigger_id; /* id from WMI_ROAM_TRIGGER_REASON_ID */
- /* interpretation of trigger value is as follows, for different trigger IDs
- * ID = PER -> value = PER percentage
- * ID = LOW_RSSI -> value = rssi in dB wrt noise floor,
- * ID = HIGH_RSSI -> value = rssi in dB wrt to noise floor,
- * ID = DENSE -> value = specification if it is tx or rx traffic threshold,
- * (see WMI_[RX,TX]_TRAFFIC_ABOVE_THRESHOLD)
- * ID = PERIODIC -> value = periodicity in ms
- *
- * for other IDs trigger_value would be 0 (invalid)
- */
- A_UINT32 trigger_value;
-} wmi_roam_scan_trigger_reason;
-
-typedef struct {
- A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_request_roam_scan_stats_cmd_fixed_param */
- A_UINT32 vdev_id;
-} wmi_request_roam_scan_stats_cmd_fixed_param;
-
-typedef struct {
- /*
- * The timestamp is in units of ticks of a 19.2MHz clock.
- * The timestamp is taken at roam scan start.
- */
- A_UINT32 lower32bit;
- A_UINT32 upper32bit;
-} wmi_roaming_timestamp;
-
-typedef struct {
- A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_scan_stats_event_fixed_param */
- A_UINT32 vdev_id;
- /* number of roam scans */
- A_UINT32 num_roam_scans;
- /* This TLV is followed by TLV's:
- * A_UINT32 client_id[num_roam_scans]; based on WMI_SCAN_CLIENT_ID
- * wmi_roaming_timestamp timestamp[num_roam_scans]; clock ticks at the time of scan start
- * A_UINT32 num_channels[num_roam_scans]; number of channels that are scanned
- * A_UINT32 chan_info[]; channel frequencies (MHz) in each scan
- * The num_channels[] elements specify how many elements there are
- * within chan_info[] for each scan.
- * For example, if num_channels = [2, 3] then chan_info will have 5
- * elements, with the first 2 elements from the first scan, and
- * the last 3 elements from the second scan.
- * wmi_mac_addr old_bssid[num_roam_scans]; bssid we are connected to at the time of roaming
- * A_UINT32 is_roaming_success[num_roam_scans]; value is 1 if roaming is successful, 0 if roaming failed
- * wmi_mac_addr new_bssid[num_roam_scans]; bssid after roaming
- * A_UINT32 num_of_roam_candidates[num_roam_scans]; number of candidates found in each roam scan
- * roam_scan_trigger_reason roam_reason[num_roam_scans]; reason for each roam scan
- * wmi_mac_addr bssid[]; bssids of candidates in each roam scan
- * The num_of_roam_candidates[] elements specify how many elements
- * there are within bssid[] for each scan.
- * For example, if num_of_roam_candidates = [2, 3] then bssid will
- * have 5 elements, with the first 2 elements from the first scan,
- * and the last 3 elements from the second scan.
- * A_UINT32 score[]; score of candidates in each roam scan
- * The num_of_roam_candidates[] elements specify how many elements
- * there are within score[] for each scan.
- * For example, if num_of_roam_candidates = [2, 3] then score will
- * have 5 elements, with the first 2 elements from the first scan,
- * and the last 3 elements from the second scan.
- * A_UINT32 channel[]; channel frequency (MHz) of candidates in each roam scan
- * The num_of_roam_candidates[] elements specify how many elements
- * there are within channel[] for each scan.
- * For example, if num_of_roam_candidates = [2, 3] then channel will
- * have 5 elements, with the first 2 elements from the first scan,
- * and the last 3 elements from the second scan.
- * A_UINT32 rssi[]; rssi in dB w.r.t. noise floor of candidates
- * in each roam scan.
- * The num_of_roam_candidates[] elements specify how many elements
- * there are within rssi[] for each scan.
- * For example, if num_of_roam_candidates = [2, 3] then rssi will
- * have 5 elements, with the first 2 elements from the first scan,
- * and the last 3 elements from the second scan.
- */
-} wmi_roam_scan_stats_event_fixed_param;
-
-typedef struct {
- A_UINT32 tlv_header; /* TLV tag and len; tag equals wmi_txpower_query_cmd_fixed_param */
- A_UINT32 request_id; /* unique request ID to distinguish the command / event set */
-
- /* The mode value has the following meaning :
- * 0 : 11a
- * 1 : 11bg
- * 2 : 11b
- * 3 : 11g only
- * 4 : 11a HT20
- * 5 : 11g HT20
- * 6 : 11a HT40
- * 7 : 11g HT40
- * 8 : 11a VHT20
- * 9 : 11a VHT40
- * 10 : 11a VHT80
- * 11 : 11g VHT20
- * 12 : 11g VHT40
- * 13 : 11g VHT80
- * 14 : unknown
- */
- A_UINT32 mode;
- A_UINT32 rate; /* rate index */
- A_UINT32 nss; /* number of spatial stream */
- A_UINT32 beamforming; /* beamforming parameter 0:disabled, 1:enabled */
- A_UINT32 chain_mask; /* mask for the antenna set to get power */
- A_UINT32 chain_index; /* index for the antenna */
-} wmi_get_tpc_power_cmd_fixed_param;
-
-typedef struct {
- A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_get_tpc_power_evt_fixed_param */
- A_UINT32 request_id; /* request ID set by the command */
- A_INT32 tx_power; /* TX power for the specified HALPHY parameters in half dBm unit */
-} wmi_get_tpc_power_evt_fixed_param;
-
-/* below structures are related to Motion Detection. */
-typedef struct {
- /** TLV tag and len; tag equals
- * WMITLV_TAG_STRUC_wmi_motion_det_config_params_cmd_fixed_param */
- A_UINT32 tlv_header; /** TLV Header */
- A_UINT32 vdev_id; /** Vdev ID */
- A_UINT32 time_t1; /** Time gap of successive bursts of
- * measurement frames during coarse
- * motion detection (in ms) */
- A_UINT32 time_t2; /** Time gap of successive bursts of
- * measurement frames during fine
- * motion detection (in ms) */
- A_UINT32 n1; /** number of measurement frames in one
- * burst, for coarse detection */
- A_UINT32 n2; /** number of measurement frames in one
- * burst, for fine detection */
- A_UINT32 time_t1_gap; /** gap between measurement frames in
- * course detection (in ms) */
- A_UINT32 time_t2_gap; /** gap between measurement frames in
- * fine detection (in ms) */
- A_UINT32 coarse_K; /** number of times motion detection has to
- * be performed for coarse detection */
- A_UINT32 fine_K; /** number of times motion detection has to
- * be performed for fine detection */
- A_UINT32 coarse_Q; /** number of times motion is expected
- * to be detected for success case in
- * coarse detection */
- A_UINT32 fine_Q; /** number of times motion is expected
- * to be detected for success case in
- * fine detection */
- A_UINT32 md_coarse_thr_high; /** higher threshold value (in percent)
- * from host to FW, which will be used in
- * coarse detection phase of motion detection.
- * This is the threshold for the correlation
- * of the old RF local-scattering environment
- * with the current RF local-scattering
- * environment. A value of 100(%) indicates
- * that neither the transceiver nor any
- * nearby objects have changed position. */
- A_UINT32 md_fine_thr_high; /** higher threshold value (in percent)
- * from host to FW, which will be used in
- * fine detection phase of motion detection.
- * This is the threshold for correlation
- * between the old and current RF environments,
- * as explained above. */
- A_UINT32 md_coarse_thr_low; /** lower threshold value (in percent)
- * for immediate detection of motion in
- * coarse detection phase.
- * This is the threshold for correlation
- * between the old and current RF environments,
- * as explained above. */
- A_UINT32 md_fine_thr_low; /** lower threshold value (in percent)
- * for immediate detection of motion in
- * fine detection phase.
- * This is the threshold for correlation
- * between the old and current RF environments,
- * as explained above. */
-} wmi_motion_det_config_params_cmd_fixed_param;
-
-typedef struct {
- /** TLV tag and len; tag equals
- * WMITLV_TAG_STRUC_wmi_motion_det_base_line_config_params_cmd_fixed_param */
- A_UINT32 tlv_header; /** TLV Header */
- A_UINT32 vdev_id; /** Vdev ID */
- A_UINT32 bl_time_t; /** time T for baseline (in ms)
- * Every bl_time_t, bl_n packets are sent */
- A_UINT32 bl_packet_gap; /** gap between measurement frames for baseline
- * (in ms) */
- A_UINT32 bl_n; /** number of measurement frames to be sent
- * during one baseline */
- A_UINT32 bl_num_meas; /** number of times the baseline measurement
- * to be done */
-} wmi_motion_det_base_line_config_params_cmd_fixed_param;
-
-typedef struct {
- /** TLV tag and len; tag equals
- * WMITLV_TAG_STRUC_wmi_motion_det_start_stop_cmd_fixed_param */
- A_UINT32 tlv_header; /** TLV Header */
- A_UINT32 vdev_id; /** Vdev ID */
- A_UINT32 enable; /** start = 1, stop =0 */
-} wmi_motion_det_start_stop_cmd_fixed_param;
-
-typedef struct {
- /** TLV tag and len; tag equals
- * WMITLV_TAG_STRUC_wmi_motion_det_base_line_start_stop_cmd_fixed_param */
- A_UINT32 tlv_header; /** TLV Header */
- A_UINT32 vdev_id; /** Vdev ID */
- A_UINT32 enable; /** start = 1, stop =0 */
-} wmi_motion_det_base_line_start_stop_cmd_fixed_param;
-
-typedef struct {
- /** TLV tag and len; tag equals
- * WMITLV_TAG_STRUC_wmi_motion_det_event */
- A_UINT32 tlv_header; /** TLV Header */
- A_UINT32 vdev_id; /** Vdev ID */
- A_UINT32 status; /** status = 1 -> motion detected */
-} wmi_motion_det_event;
-
-typedef struct {
- /** TLV tag and len; tag equals
- * WMITLV_TAG_STRUC_wmi_motion_det_base_line_event */
- A_UINT32 tlv_header; /** TLV Header */
- A_UINT32 vdev_id; /** Vdev ID */
- A_UINT32 bl_baseline_value; /** baseline correlation value calculated
- * during baselining phase (in %) */
- A_UINT32 bl_max_corr_reserved; /** max corr value obtained during baselining
- * phase (in %); reserved for future */
- A_UINT32 bl_min_corr_reserved; /** min corr value obtained during baselining
- * phase (in %); reserved for future */
-} wmi_motion_det_base_line_event;
-
-/* Below structures are related to OBSS_PD_SPATIAL Reuse */
-typedef struct {
- /** TLV tag and len; tag equals
- * WMITLV_TAG_STRUC_wmi_obss_set_cmd_fixed_param */
- A_UINT32 tlv_header;
- /** Enable/Disable Spatial Reuse */
- A_UINT32 enable;
- /*
- * In the below fields, "OBSS level" refers to the power of the
- * signals received from "Other BSS".
- * Spatial reuse will only be permitted if the Other BSS's signal power
- * is witin the min to max range specified by the below fields.
- */
- /** Minimum OBSS level to use */
- A_INT32 obss_min; /* RSSI in dBm */
- /** Maximum OBSS level to use */
- A_INT32 obss_max; /* RSSI in dBm */
- /** Vdev id*/
- A_UINT32 vdev_id;
-} wmi_obss_spatial_reuse_set_cmd_fixed_param;
-
-/*
- * Below structure is related to WMI CMD that configures the default
- * mimimum (OBSS_MIN) and maximum (OBSS_MAX) Other BSS levels (RSSI in dbm)
- * for VDEV of a give type (STA or AP). These thresholds are configured
- * within the Host and passed down to the FW. FW will use these
- * default OBSS_MIN and OBSS_MAX values during roaming if the assoc response
- * from the AP does not include spatial reuse parameter set Info Element.
- */
-typedef struct {
- /** TLV tag and len; tag equals
- * WMITLV_TAG_STRUC_wmi_obss_spatial_reuse_set_def_obss_thresh_cmd_fixed_param
- */
- A_UINT32 tlv_header;
- /*
- * In the below fields, "OBSS level" refers to the power of the
- * signals received from "Other BSS".
- * Spatial reuse will only be permitted if the Other BSS's signal power
- * is witin the min to max range specified by the below fields.
- */
- /** Minimum OBSS level to use */
- A_INT32 obss_min; /* RSSI in dBm */
- /** Maximum OBSS level to use */
- A_INT32 obss_max; /* RSSI in dBm */
- /** Type of VDEV for which these threshold are applicable.
- * vdev_type should be one of WMI_VDEV_TYPE_STA or WMI_VDEV_TYPE_AP
- */
- A_UINT32 vdev_type;
-} wmi_obss_spatial_reuse_set_def_obss_thresh_cmd_fixed_param;
-
-typedef struct {
- A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUCT_wmi_chan_width_peer_list */
- wmi_mac_addr peer_macaddr;
- A_UINT32 chan_width; /* wmi_channel_width */
-} wmi_chan_width_peer_list;
-
-typedef struct {
- A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_chan_width_switch_cmd_fixed_param */
- A_UINT32 num_peers;
- /*
- * Following this structure is the TLV:
- * struct wmi_chan_width_peer_list chan_width_peer_info[num_peers];
- */
-} wmi_peer_chan_width_switch_cmd_fixed_param;
-
-typedef struct {
- /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_he_tb_action_frm_cmd_fixed_param */
- A_UINT32 tlv_header;
- /* enable or disable HE TB Action frame */
- A_UINT32 enable;
- /* length of action frame body in bytes */
- A_UINT32 data_len;
-/* This TLV is followed by another TLV of array of bytes
- * A_UINT8 data[];
- * This data array contains the action frame raw data
- */
-} wmi_pdev_he_tb_action_frm_cmd_fixed_param;
-
-typedef struct {
- /** TLV tag and len; tag equals
- * WMITLV_TAG_STRUC_wmi_hpcs_pulse_start_cmd_fixed_param */
- A_UINT32 tlv_header; /** TLV Header */
- A_UINT32 vdev_id; /** Vdev ID */
- A_UINT32 start; /** Start/Stop */
- A_UINT32 sync_time; /** Lower 32-bit of the TSF at which the
- * pulse should be synced. */
- A_UINT32 pulse_interval; /** Periodicity of pulses in micro seconds */
- A_UINT32 active_sync_period; /** Number of beacons to sync before generating
- * pulse in units of beacon interval.
- * Valid for clock slaves only. */
- A_UINT32 gpio_pin; /** GPIO Pin number to be used */
- A_UINT32 pulse_width; /** Duration of pulse in micro seconds */
-} wmi_hpcs_pulse_start_cmd_fixed_param;
/* bit 17-31 of flags is reserved for powersave and WAL */
@@ -24580,6 +24392,10 @@ typedef struct {
A_UINT32 flags;
} wmi_wlm_config_cmd_fixed_param;
+/* Broadcast TWT enable/disable */
+#define TWT_EN_DIS_FLAGS_GET_BTWT(flag) WMI_GET_BITS(flag, 0, 1)
+#define TWT_EN_DIS_FLAGS_SET_BTWT(flag, val) WMI_SET_BITS(flag, 0, 1, val)
+
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
@@ -24613,6 +24429,7 @@ typedef struct {
A_UINT32 mode_check_interval; /* Interval between two successive check to decide the mode of TWT */
A_UINT32 add_sta_slot_interval; /* Interval between decisions making to create TWT slots for STAs */
A_UINT32 remove_sta_slot_interval; /* Inrerval between decisions making to remove TWT slot of STAs */
+ A_UINT32 flags; /* enable/disable flags, refer to MACROs TWT_EN_DIS_FLAGS_* (TWT_EN_DIS_FLAGS_GET_BTWT etc.) */
} wmi_twt_enable_cmd_fixed_param;
/* status code of enabling TWT */
@@ -24635,6 +24452,7 @@ typedef struct {
A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_twt_disable_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 */
A_UINT32 pdev_id; /* host should never set it to WMI_PDEV_ID_SOC */
+ A_UINT32 flags; /* enable/disable flags, refer to MACROs TWT_EN_DIS_FLAGS_* (TWT_EN_DIS_FLAGS_GET_BTWT etc.) */
} wmi_twt_disable_cmd_fixed_param;
typedef struct {
@@ -24800,7 +24618,8 @@ typedef struct {
} wmi_twt_resume_dialog_complete_event_fixed_param;
typedef enum {
- WMI_DMA_RING_CONFIG_MODULE_SPECTRAL,
+ WMI_DMA_RING_CONFIG_MODULE_SPECTRAL,
+ WMI_DMA_RING_CONFIG_MODULE_RTT,
} WMI_DMA_RING_SUPPORTED_MODULE;
typedef struct {
@@ -24905,8 +24724,8 @@ typedef struct {
*/
A_UINT32 paddr_lo;
/**
- * Bits 15:0: address of data [47:32]
- * Bits 31:16: reserved
+ * Bits 11:0: address of data [43:32]
+ * Bits 31:12: host context data [19:0]
*/
A_UINT32 paddr_hi;
} wmi_dma_buf_release_entry;
@@ -24981,6 +24800,356 @@ typedef struct {
A_UINT32 dpd_dur_max_ms;
} wmi_runtime_dpd_recal_cmd_fixed_param;
+typedef enum {
+ WMI_ROAM_TRIGGER_REASON_NONE = 0,
+ WMI_ROAM_TRIGGER_REASON_PER,
+ WMI_ROAM_TRIGGER_REASON_BMISS,
+ WMI_ROAM_TRIGGER_REASON_LOW_RSSI,
+ WMI_ROAM_TRIGGER_REASON_HIGH_RSSI,
+ WMI_ROAM_TRIGGER_REASON_PERIODIC,
+ WMI_ROAM_TRIGGER_REASON_MAWC,
+ WMI_ROAM_TRIGGER_REASON_DENSE,
+ WMI_ROAM_TRIGGER_REASON_BACKGROUND,
+ WMI_ROAM_TRIGGER_REASON_FORCED,
+ WMI_ROAM_TRIGGER_REASON_BTM,
+ WMI_ROAM_TRIGGER_REASON_UNIT_TEST,
+ WMI_ROAM_TRIGGER_REASON_BSS_LOAD,
+ WMI_ROAM_TRIGGER_REASON_MAX,
+} WMI_ROAM_TRIGGER_REASON_ID;
+
+/* value for DENSE roam trigger */
+#define WMI_RX_TRAFFIC_ABOVE_THRESHOLD 0x1
+#define WMI_TX_TRAFFIC_ABOVE_THRESHOLD 0x2
+
+typedef struct {
+ A_UINT32 trigger_id; /* id from WMI_ROAM_TRIGGER_REASON_ID */
+ /* interpretation of trigger value is as follows, for different trigger IDs
+ * ID = PER -> value = PER percentage
+ * ID = LOW_RSSI -> value = rssi in dB wrt noise floor,
+ * ID = HIGH_RSSI -> value = rssi in dB wrt to noise floor,
+ * ID = DENSE -> value = specification if it is tx or rx traffic threshold,
+ * (see WMI_[RX,TX]_TRAFFIC_ABOVE_THRESHOLD)
+ * ID = PERIODIC -> value = periodicity in ms
+ *
+ * for other IDs trigger_value would be 0 (invalid)
+ */
+ A_UINT32 trigger_value;
+} wmi_roam_scan_trigger_reason;
+
+typedef struct {
+ A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_request_roam_scan_stats_cmd_fixed_param */
+ A_UINT32 vdev_id;
+} wmi_request_roam_scan_stats_cmd_fixed_param;
+
+/** BSS load configuration parameters for roam trigger */
+typedef struct {
+ A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_bss_load_cmd_fixed_param */
+ A_UINT32 vdev_id;
+ /** Minimum number of beacons to be consider for calculating average AP BSS load within time monitor_time_window */
+ A_UINT32 beacons_min_count;
+ /** Monitor time window in seconds */
+ A_UINT32 monitor_time_window;
+ /** BSS load threshold after which roam scan should trigger */
+ A_UINT32 bss_load_threshold;
+} wmi_roam_bss_load_config_cmd_fixed_param;
+
+typedef struct {
+ /*
+ * The timestamp is in units of ticks of a 19.2MHz clock.
+ * The timestamp is taken at roam scan start.
+ */
+ A_UINT32 lower32bit;
+ A_UINT32 upper32bit;
+} wmi_roaming_timestamp;
+
+typedef struct {
+ A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_scan_stats_event_fixed_param */
+ A_UINT32 vdev_id;
+ /* number of roam scans */
+ A_UINT32 num_roam_scans;
+ /* This TLV is followed by TLV's:
+ * A_UINT32 client_id[num_roam_scans]; based on WMI_SCAN_CLIENT_ID
+ * wmi_roaming_timestamp timestamp[num_roam_scans]; clock ticks at the time of scan start
+ * A_UINT32 num_channels[num_roam_scans]; number of channels that are scanned
+ * A_UINT32 chan_info[]; channel frequencies (MHz) in each scan
+ * The num_channels[] elements specify how many elements there are
+ * within chan_info[] for each scan.
+ * For example, if num_channels = [2, 3] then chan_info will have 5
+ * elements, with the first 2 elements from the first scan, and
+ * the last 3 elements from the second scan.
+ * wmi_mac_addr old_bssid[num_roam_scans]; bssid we are connected to at the time of roaming
+ * A_UINT32 is_roaming_success[num_roam_scans]; value is 1 if roaming is successful, 0 if roaming failed
+ * wmi_mac_addr new_bssid[num_roam_scans]; bssid after roaming
+ * A_UINT32 num_of_roam_candidates[num_roam_scans]; number of candidates found in each roam scan
+ * roam_scan_trigger_reason roam_reason[num_roam_scans]; reason for each roam scan
+ * wmi_mac_addr bssid[]; bssids of candidates in each roam scan
+ * The num_of_roam_candidates[] elements specify how many elements
+ * there are within bssid[] for each scan.
+ * For example, if num_of_roam_candidates = [2, 3] then bssid will
+ * have 5 elements, with the first 2 elements from the first scan,
+ * and the last 3 elements from the second scan.
+ * A_UINT32 score[]; score of candidates in each roam scan
+ * The num_of_roam_candidates[] elements specify how many elements
+ * there are within score[] for each scan.
+ * For example, if num_of_roam_candidates = [2, 3] then score will
+ * have 5 elements, with the first 2 elements from the first scan,
+ * and the last 3 elements from the second scan.
+ * A_UINT32 channel[]; channel frequency (MHz) of candidates in each roam scan
+ * The num_of_roam_candidates[] elements specify how many elements
+ * there are within channel[] for each scan.
+ * For example, if num_of_roam_candidates = [2, 3] then channel will
+ * have 5 elements, with the first 2 elements from the first scan,
+ * and the last 3 elements from the second scan.
+ * A_UINT32 rssi[]; rssi in dB w.r.t. noise floor of candidates
+ * in each roam scan.
+ * The num_of_roam_candidates[] elements specify how many elements
+ * there are within rssi[] for each scan.
+ * For example, if num_of_roam_candidates = [2, 3] then rssi will
+ * have 5 elements, with the first 2 elements from the first scan,
+ * and the last 3 elements from the second scan.
+ */
+} wmi_roam_scan_stats_event_fixed_param;
+
+typedef struct {
+ A_UINT32 tlv_header; /* TLV tag and len; tag equals wmi_txpower_query_cmd_fixed_param */
+ A_UINT32 request_id; /* unique request ID to distinguish the command / event set */
+
+ /* The mode value has the following meaning :
+ * 0 : 11a
+ * 1 : 11bg
+ * 2 : 11b
+ * 3 : 11g only
+ * 4 : 11a HT20
+ * 5 : 11g HT20
+ * 6 : 11a HT40
+ * 7 : 11g HT40
+ * 8 : 11a VHT20
+ * 9 : 11a VHT40
+ * 10 : 11a VHT80
+ * 11 : 11g VHT20
+ * 12 : 11g VHT40
+ * 13 : 11g VHT80
+ * 14 : unknown
+ */
+ A_UINT32 mode;
+ A_UINT32 rate; /* rate index */
+ A_UINT32 nss; /* number of spatial stream */
+ A_UINT32 beamforming; /* beamforming parameter 0:disabled, 1:enabled */
+ A_UINT32 chain_mask; /* mask for the antenna set to get power */
+ A_UINT32 chain_index; /* index for the antenna */
+} wmi_get_tpc_power_cmd_fixed_param;
+
+typedef struct {
+ A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_get_tpc_power_evt_fixed_param */
+ A_UINT32 request_id; /* request ID set by the command */
+ A_INT32 tx_power; /* TX power for the specified HALPHY parameters in half dBm unit */
+} wmi_get_tpc_power_evt_fixed_param;
+
+/* below structures are related to Motion Detection. */
+typedef struct {
+ /** TLV tag and len; tag equals
+ * WMITLV_TAG_STRUC_wmi_motion_det_config_params_cmd_fixed_param */
+ A_UINT32 tlv_header; /** TLV Header */
+ A_UINT32 vdev_id; /** Vdev ID */
+ A_UINT32 time_t1; /** Time gap of successive bursts of
+ * measurement frames during coarse
+ * motion detection (in ms) */
+ A_UINT32 time_t2; /** Time gap of successive bursts of
+ * measurement frames during fine
+ * motion detection (in ms) */
+ A_UINT32 n1; /** number of measurement frames in one
+ * burst, for coarse detection */
+ A_UINT32 n2; /** number of measurement frames in one
+ * burst, for fine detection */
+ A_UINT32 time_t1_gap; /** gap between measurement frames in
+ * course detection (in ms) */
+ A_UINT32 time_t2_gap; /** gap between measurement frames in
+ * fine detection (in ms) */
+ A_UINT32 coarse_K; /** number of times motion detection has to
+ * be performed for coarse detection */
+ A_UINT32 fine_K; /** number of times motion detection has to
+ * be performed for fine detection */
+ A_UINT32 coarse_Q; /** number of times motion is expected
+ * to be detected for success case in
+ * coarse detection */
+ A_UINT32 fine_Q; /** number of times motion is expected
+ * to be detected for success case in
+ * fine detection */
+ A_UINT32 md_coarse_thr_high; /** higher threshold value (in percent)
+ * from host to FW, which will be used in
+ * coarse detection phase of motion detection.
+ * This is the threshold for the correlation
+ * of the old RF local-scattering environment
+ * with the current RF local-scattering
+ * environment. A value of 100(%) indicates
+ * that neither the transceiver nor any
+ * nearby objects have changed position. */
+ A_UINT32 md_fine_thr_high; /** higher threshold value (in percent)
+ * from host to FW, which will be used in
+ * fine detection phase of motion detection.
+ * This is the threshold for correlation
+ * between the old and current RF environments,
+ * as explained above. */
+ A_UINT32 md_coarse_thr_low; /** lower threshold value (in percent)
+ * for immediate detection of motion in
+ * coarse detection phase.
+ * This is the threshold for correlation
+ * between the old and current RF environments,
+ * as explained above. */
+ A_UINT32 md_fine_thr_low; /** lower threshold value (in percent)
+ * for immediate detection of motion in
+ * fine detection phase.
+ * This is the threshold for correlation
+ * between the old and current RF environments,
+ * as explained above. */
+} wmi_motion_det_config_params_cmd_fixed_param;
+
+typedef struct {
+ /** TLV tag and len; tag equals
+ * WMITLV_TAG_STRUC_wmi_motion_det_base_line_config_params_cmd_fixed_param */
+ A_UINT32 tlv_header; /** TLV Header */
+ A_UINT32 vdev_id; /** Vdev ID */
+ A_UINT32 bl_time_t; /** time T for baseline (in ms)
+ * Every bl_time_t, bl_n packets are sent */
+ A_UINT32 bl_packet_gap; /** gap between measurement frames for baseline
+ * (in ms) */
+ A_UINT32 bl_n; /** number of measurement frames to be sent
+ * during one baseline */
+ A_UINT32 bl_num_meas; /** number of times the baseline measurement
+ * to be done */
+} wmi_motion_det_base_line_config_params_cmd_fixed_param;
+
+typedef struct {
+ /** TLV tag and len; tag equals
+ * WMITLV_TAG_STRUC_wmi_motion_det_start_stop_cmd_fixed_param */
+ A_UINT32 tlv_header; /** TLV Header */
+ A_UINT32 vdev_id; /** Vdev ID */
+ A_UINT32 enable; /** start = 1, stop =0 */
+} wmi_motion_det_start_stop_cmd_fixed_param;
+
+typedef struct {
+ /** TLV tag and len; tag equals
+ * WMITLV_TAG_STRUC_wmi_motion_det_base_line_start_stop_cmd_fixed_param */
+ A_UINT32 tlv_header; /** TLV Header */
+ A_UINT32 vdev_id; /** Vdev ID */
+ A_UINT32 enable; /** start = 1, stop =0 */
+} wmi_motion_det_base_line_start_stop_cmd_fixed_param;
+
+typedef struct {
+ /** TLV tag and len; tag equals
+ * WMITLV_TAG_STRUC_wmi_motion_det_event */
+ A_UINT32 tlv_header; /** TLV Header */
+ A_UINT32 vdev_id; /** Vdev ID */
+ A_UINT32 status; /** status = 1 -> motion detected */
+} wmi_motion_det_event;
+
+typedef struct {
+ /** TLV tag and len; tag equals
+ * WMITLV_TAG_STRUC_wmi_motion_det_base_line_event */
+ A_UINT32 tlv_header; /** TLV Header */
+ A_UINT32 vdev_id; /** Vdev ID */
+ A_UINT32 bl_baseline_value; /** baseline correlation value calculated
+ * during baselining phase (in %) */
+ A_UINT32 bl_max_corr_reserved; /** max corr value obtained during baselining
+ * phase (in %); reserved for future */
+ A_UINT32 bl_min_corr_reserved; /** min corr value obtained during baselining
+ * phase (in %); reserved for future */
+} wmi_motion_det_base_line_event;
+
+/* Below structures are related to OBSS_PD_SPATIAL Reuse */
+typedef struct {
+ /** TLV tag and len; tag equals
+ * WMITLV_TAG_STRUC_wmi_obss_set_cmd_fixed_param */
+ A_UINT32 tlv_header;
+ /** Enable/Disable Spatial Reuse */
+ A_UINT32 enable;
+ /*
+ * In the below fields, "OBSS level" refers to the power of the
+ * signals received from "Other BSS".
+ * Spatial reuse will only be permitted if the Other BSS's signal power
+ * is witin the min to max range specified by the below fields.
+ */
+ /** Minimum OBSS level to use */
+ A_INT32 obss_min; /* RSSI in dBm */
+ /** Maximum OBSS level to use */
+ A_INT32 obss_max; /* RSSI in dBm */
+ /** Vdev id*/
+ A_UINT32 vdev_id;
+} wmi_obss_spatial_reuse_set_cmd_fixed_param;
+
+/*
+ * Below structure is related to WMI CMD that configures the default
+ * mimimum (OBSS_MIN) and maximum (OBSS_MAX) Other BSS levels (RSSI in dbm)
+ * for VDEV of a give type (STA or AP). These thresholds are configured
+ * within the Host and passed down to the FW. FW will use these
+ * default OBSS_MIN and OBSS_MAX values during roaming if the assoc response
+ * from the AP does not include spatial reuse parameter set Info Element.
+ */
+typedef struct {
+ /** TLV tag and len; tag equals
+ * WMITLV_TAG_STRUC_wmi_obss_spatial_reuse_set_def_obss_thresh_cmd_fixed_param
+ */
+ A_UINT32 tlv_header;
+ /*
+ * In the below fields, "OBSS level" refers to the power of the
+ * signals received from "Other BSS".
+ * Spatial reuse will only be permitted if the Other BSS's signal power
+ * is witin the min to max range specified by the below fields.
+ */
+ /** Minimum OBSS level to use */
+ A_INT32 obss_min; /* RSSI in dBm */
+ /** Maximum OBSS level to use */
+ A_INT32 obss_max; /* RSSI in dBm */
+ /** Type of VDEV for which these threshold are applicable.
+ * vdev_type should be one of WMI_VDEV_TYPE_STA or WMI_VDEV_TYPE_AP
+ */
+ A_UINT32 vdev_type;
+} wmi_obss_spatial_reuse_set_def_obss_thresh_cmd_fixed_param;
+
+typedef struct {
+ A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUCT_wmi_chan_width_peer_list */
+ wmi_mac_addr peer_macaddr;
+ A_UINT32 chan_width; /* wmi_channel_width */
+} wmi_chan_width_peer_list;
+
+typedef struct {
+ A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_peer_chan_width_switch_cmd_fixed_param */
+ A_UINT32 num_peers;
+ /*
+ * Following this structure is the TLV:
+ * struct wmi_chan_width_peer_list chan_width_peer_info[num_peers];
+ */
+} wmi_peer_chan_width_switch_cmd_fixed_param;
+
+typedef struct {
+ /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_he_tb_action_frm_cmd_fixed_param */
+ A_UINT32 tlv_header;
+ /* enable or disable HE TB Action frame */
+ A_UINT32 enable;
+ /* length of action frame body in bytes */
+ A_UINT32 data_len;
+/* This TLV is followed by another TLV of array of bytes
+ * A_UINT8 data[];
+ * This data array contains the action frame raw data
+ */
+} wmi_pdev_he_tb_action_frm_cmd_fixed_param;
+
+typedef struct {
+ /** TLV tag and len; tag equals
+ * WMITLV_TAG_STRUC_wmi_hpcs_pulse_start_cmd_fixed_param */
+ A_UINT32 tlv_header; /** TLV Header */
+ A_UINT32 vdev_id; /** Vdev ID */
+ A_UINT32 start; /** Start/Stop */
+ A_UINT32 sync_time; /** Lower 32-bit of the TSF at which the
+ * pulse should be synced. */
+ A_UINT32 pulse_interval; /** Periodicity of pulses in micro seconds */
+ A_UINT32 active_sync_period; /** Number of beacons to sync before generating
+ * pulse in units of beacon interval.
+ * Valid for clock slaves only. */
+ A_UINT32 gpio_pin; /** GPIO Pin number to be used */
+ A_UINT32 pulse_width; /** Duration of pulse in micro seconds */
+} wmi_hpcs_pulse_start_cmd_fixed_param;
+
/* Default PE Duration subfield indicates the PE duration in units of 4 us */
#define WMI_HEOPS_DEFPE_GET_D3(he_ops) WMI_GET_BITS(he_ops, 0, 3)
#define WMI_HEOPS_DEFPE_SET_D3(he_ops, value) WMI_SET_BITS(he_ops, 0, 3, value)
@@ -26030,6 +26199,100 @@ typedef struct {
#define WMI_HECAP_MAC_HTVHTTRIGRX_SET WMI_HECAP_MAC_HTVHTTRIGRX_SET_D2
#endif /* SUPPORT_11AX_D3 */
+typedef struct {
+ /** TLV tag and len; tag equals
+ * WMITLV_TAG_STRUC_wmi_cfr_capture_event_fixed_param */
+ A_UINT32 tlv_header;
+ /* Method used to capture CFR - of type WMI_PEER_CFR_CAPTURE_METHOD */
+ A_UINT32 capture_method;
+ /* VDEV identifier */
+ A_UINT32 vdev_id;
+ /* Peer MAC address. In AP mode, this is the address of the connected peer
+ * for which CFR capture is needed. In case of STA mode, this is the address
+ * of the AP to which the STA is connected
+ */
+ wmi_mac_addr mac_addr;
+ /* primary 20 MHz channel frequency in mhz */
+ A_UINT32 chan_mhz;
+ /* BW of measurement - of type WMI_PEER_CFR_CAPTURE_BW */
+ A_UINT32 bandwidth;
+ /* phy mode WLAN_PHY_MODE of the channel defined in wlan_defs.h*/
+ A_UINT32 phy_mode;
+ /* Center frequency 1 in MHz*/
+ A_UINT32 band_center_freq1;
+ /* Center frequency 2 in MHz - valid only for 11acvht 80plus80 mode*/
+ A_UINT32 band_center_freq2;
+ /* Number of spatial streams */
+ A_UINT32 sts_count;
+ /* Bits 31:0: address of data from wmi_dma_buf_release_entry [31:0] */
+ A_UINT32 correlation_info_1;
+ /* Bits 11:0: address of data from wmi_dma_buf_release_entry [43:32]
+ * Bits 15:12: reserved (set to 0x0)
+ * Bits 31:16: hardware PPDU ID [15:0]
+ */
+ A_UINT32 correlation_info_2;
+ /* Bits 1:0: TX status (if any); values defined in enum
+ * WMI_FRAME_TX_STATUS
+ * Bits 30:2: reserved (set to 0x0)
+ * Bit 31: Status of the CFR capture of the peer
+ * 1 (True) - Successful; 0 (False) - Not successful
+ */
+ A_UINT32 status;
+ /* Timestamp in microseconds at which the CFR was captured in the hardware.
+ * The clock used for this timestamp is private to the target and
+ * is not visible to the host i.e., Host can interpret only the
+ * relative timestamp deltas from one message to the next,
+ * but can't interpret the absolute timestamp from a single message.
+ */
+ A_UINT32 timestamp_us;
+ /*
+ * Count of the current CFR capture from FW.
+ * This is helpful to identify any drops in FW.
+ */
+ A_UINT32 counter;
+ /* Per chain RSSI of the peer, for up to WMI_MAX_CHAINS.
+ * Each chain's entry reports the RSSI for different bands in dBm units.
+ * Use WMI_UNIFIED_CHAIN_RSSI_GET to extract the value for a particular
+ * band.
+ * A band value of 0x80 (-128) is invalid.
+ */
+ A_UINT32 chain_rssi[WMI_MAX_CHAINS];
+} wmi_peer_cfr_capture_event_fixed_param;
+
+#define WMI_PEER_CFR_CAPTURE_EVT_STATUS_OK 0x80000000
+#define WMI_PEER_CFR_CAPTURE_EVT_STATUS_OK_S 31
+
+#define WMI_PEER_CFR_CAPTURE_EVT_STATUS_TX 0x00000003
+#define WMI_PEER_CFR_CAPTURE_EVT_STATUS_TX_S 0
+
+/**
+ * wmi_cold_boot_cal_data config flags
+ * BIT 0 : 1 means more data will come, 0 means last event
+ * BIT 1-31 : Reserved
+ */
+#define WMI_COLD_BOOT_CAL_DATA_SET_IS_MORE_DATA(flags, val) WMI_SET_BITS(flags, 0, 1, val)
+#define WMI_COLD_BOOT_CAL_DATA_GET_IS_MORE_DATA(flags) WMI_GET_BITS(flags, 0, 1)
+
+typedef struct {
+ A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_cold_boot_cal_data_fixed_param */
+ A_UINT32 data_len; /** length in byte of data[]. */
+ A_UINT32 flags; /** config flags : Only 0th bit is used, bit 1-31 are reserved */
+/* Following this structure is the TLV:
+ * A_UINT8 data[]; <-- length in byte given by field data_len.
+ * This data array contains cold boot data calibration raw data.
+ */
+} wmi_cold_boot_cal_data_fixed_param;
+
+typedef struct {
+ A_UINT32 tlv_header; /** TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_pdev_rap_info_event_fixed_param */
+ /** pdev_id for identifying the MAC, the default value is WMI_PDEV_ID_SOC
+ * See macros starting with WMI_PDEV_ID_ for values.
+ */
+ A_UINT32 pdev_id;
+ A_UINT32 type; /** type of the rogue ap, see WMI_ROGUE_AP_TYPE */
+ wmi_mac_addr bssid; /** bssid of the rogue ap */
+} wmi_pdev_rap_info_event_fixed_param;
+
/* ADD NEW DEFS HERE */
@@ -26074,18 +26337,6 @@ typedef struct
A_UINT32 rx_stats;
} wmi_ocb_channel_t;
-/** BSS load configuration parameters for roam trigger */
-typedef struct {
- A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_roam_bss_load_cmd_fixed_param */
- A_UINT32 vdev_id;
- /** Minimum number of beacons to be consider for calculating average AP BSS load within time monitor_time_window */
- A_UINT32 beacons_min_count;
- /** Monitor time window in seconds */
- A_UINT32 monitor_time_window;
- /** BSS load threshold after which roam scan should trigger */
- A_UINT32 bss_load_threshold;
-} wmi_roam_bss_load_config_cmd_fixed_param;
-
typedef struct {
/** TLV tag and len; tag equals
* WMITLV_TAG_STRUC_wmi_ocb_set_sched_cmd_fixed_param */
diff --git a/CORE/SERVICES/COMMON/wmi_version.h b/CORE/SERVICES/COMMON/wmi_version.h
index f45ca4c5b8ae..10c74f5af419 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_ 631
+#define __WMI_REVISION_ 639
/** 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 3d9e5bf7f6b2..8091ddaaf0aa 100644
--- a/CORE/SERVICES/WMI/wmi_unified.c
+++ b/CORE/SERVICES/WMI/wmi_unified.c
@@ -810,6 +810,7 @@ static u_int8_t* get_wmi_cmd_string(WMI_CMD_ID wmi_command)
CASE_RETURN_STRING(WMI_ROAM_BSS_LOAD_CONFIG_CMDID);
CASE_RETURN_STRING(WMI_VDEV_GET_MWS_COEX_INFO_CMDID);
CASE_RETURN_STRING(WMI_REQUEST_WLM_STATS_CMDID);
+ CASE_RETURN_STRING(WMI_PDEV_SET_RAP_CONFIG_CMDID);
}
return "Invalid WMI cmd";
}