diff --git a/target/inc/wmi_services.h b/target/inc/wmi_services.h index 2ea83914a7f9..d75056fcecdd 100644 --- a/target/inc/wmi_services.h +++ b/target/inc/wmi_services.h @@ -162,7 +162,7 @@ typedef enum { WMI_SERVICE_DEPRECATED_REPLACE, WMI_SERVICE_TDLS_CONN_TRACKER_IN_HOST_MODE, /* FW supports a new mode that allows to run connection tracker in host */ WMI_SERVICE_ENHANCED_MCAST_FILTER,/* FW supports enhanced multicast filtering (of mcast IP inside ucast WLAN) */ - + WMI_SERVICE_PERIODIC_CHAN_STAT_SUPPORT, /* periodic channel stats service */ WMI_MAX_SERVICE = 128 /* max service */ } WMI_SERVICE; diff --git a/target/inc/wmi_tlv_defs.h b/target/inc/wmi_tlv_defs.h index ba0a43f1e4cf..70ffdbdab14d 100644 --- a/target/inc/wmi_tlv_defs.h +++ b/target/inc/wmi_tlv_defs.h @@ -690,6 +690,7 @@ typedef enum { WMITLV_TAG_STRUC_WMI_COEX_CONFIG_CMD_fixed_param, WMITLV_TAG_STRUC_wmi_config_enhanced_mcast_filter_fixed_param, WMITLV_TAG_STRUC_WMI_CHAN_AVOID_RPT_ALLOW_CMD_fixed_param, + WMITLV_TAG_STRUC_wmi_set_periodic_channel_stats_config_fixed_param, } WMITLV_TAG_ID; /* @@ -968,7 +969,8 @@ typedef enum { OP(WMI_VDEV_SET_QUIET_MODE_CMDID) \ OP(WMI_COEX_CONFIG_CMDID) \ OP(WMI_CONFIG_ENHANCED_MCAST_FILTER_CMDID) \ - OP(WMI_CHAN_AVOID_RPT_ALLOW_CMDID) + OP(WMI_CHAN_AVOID_RPT_ALLOW_CMDID) \ + OP(WMI_SET_PERIODIC_CHANNEL_STATS_CONFIG_CMDID) /* * IMPORTANT: Please add _ALL_ WMI Events Here. @@ -2777,6 +2779,11 @@ WMITLV_CREATE_PARAM_STRUC(WMI_SOC_SET_ANTENNA_MODE_CMDID); WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_pdev_set_antenna_mode_cmd_fixed_param, wmi_pdev_set_antenna_mode_cmd_fixed_param, fixed_param, WMITLV_SIZE_FIX) WMITLV_CREATE_PARAM_STRUC(WMI_PDEV_SET_ANTENNA_MODE_CMDID); +/* enable/disable and set the periodicity of periodic channel stats */ +#define WMITLV_TABLE_WMI_SET_PERIODIC_CHANNEL_STATS_CONFIG_CMDID(id, op, buf, len) \ + WMITLV_ELEM(id, op, buf, len, WMITLV_TAG_STRUC_wmi_set_periodic_channel_stats_config_fixed_param, wmi_set_periodic_channel_stats_config_fixed_param, fixed_param, WMITLV_SIZE_FIX) +WMITLV_CREATE_PARAM_STRUC(WMI_SET_PERIODIC_CHANNEL_STATS_CONFIG_CMDID); + /************************** TLV definitions of WMI events *******************************/ /* Service Ready event */ diff --git a/target/inc/wmi_unified.h b/target/inc/wmi_unified.h index f6baf6d48c0c..d62718e9f025 100644 --- a/target/inc/wmi_unified.h +++ b/target/inc/wmi_unified.h @@ -337,6 +337,8 @@ typedef enum { WMI_PDEV_SET_MAC_CONFIG_CMDID, /** Set per band and per pdev antenna chains */ WMI_PDEV_SET_ANTENNA_MODE_CMDID, + /** Periodic channel stats request command */ + WMI_SET_PERIODIC_CHANNEL_STATS_CONFIG_CMDID, /* VDEV(virtual device) specific commands */ /** vdev create */ @@ -6719,7 +6721,11 @@ typedef struct { /** channel tx power per throughput */ A_UINT32 chan_tx_pwr_tp; /** rx frame count (cumulative) */ - A_UINT32 rx_frame_count; + A_UINT32 rx_frame_count; + /** BSS rx cycle count */ + A_UINT32 my_bss_rx_cycle_count; + /** b-mode data rx time (units are microseconds) */ + A_UINT32 rx_11b_mode_data_duration; } wmi_chan_info_event_fixed_param; /** @@ -6791,7 +6797,11 @@ typedef struct _wlan_dcs_im_tgt_stats { /** CCK phy error count, MAC_PCU_PHY_ERR_CNT_2_ADDRESS */ A_UINT32 reg_cck_phyerr_cnt; /* CCK err count since last reset, read from register */ + /** Channel noise floor (units are dBm) */ + A_INT32 chan_nf; + /** BSS rx cycle count */ + A_UINT32 my_bss_rx_cycle_count; } wlan_dcs_im_tgt_stats_t; /** @@ -15073,6 +15083,22 @@ typedef struct { A_UINT32 rpt_allow; } WMI_CHAN_AVOID_RPT_ALLOW_CMD_fixed_param; +/* + * Periodic channel stats WMI command structure + * WMI_SET_PERIODIC_CHANNEL_STATS_CONFIG_CMDID + */ +typedef struct { + /* + * TLV tag and len; tag equals + * WMITLV_TAG_STRUC_wmi_set_periodic_channel_stats_config_fixed_param + */ + A_UINT32 tlv_header; + /** 1 = enable, 0 = disable */ + A_UINT32 enable; + /** periodic stats duration (units are milliseconds) */ + A_UINT32 stats_period; +} wmi_set_periodic_channel_stats_config_fixed_param; + /* ADD NEW DEFS HERE */ /***************************************************************************** diff --git a/target/inc/wmi_version.h b/target/inc/wmi_version.h index c2096967957b..521bdc8482eb 100644 --- a/target/inc/wmi_version.h +++ b/target/inc/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_ 218 +#define __WMI_REVISION_ 219 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work