diff --git a/fw/wmi_tlv_defs.h b/fw/wmi_tlv_defs.h index d481cdc7e3ed..6ab6a25d3aa4 100644 --- a/fw/wmi_tlv_defs.h +++ b/fw/wmi_tlv_defs.h @@ -1509,6 +1509,7 @@ typedef enum { WMITLV_TAG_STRUC_wmi_vdev_ac_info, WMITLV_TAG_STRUC_wmi_vdev_get_tpc_ie_power_cmd_fixed_param, WMITLV_TAG_STRUC_wmi_vdev_tpc_ie_power_event_fixed_param, + WMITLV_TAG_STRUC_wmi_pdev_coex_stats, } WMITLV_TAG_ID; /* * IMPORTANT: Please add _ALL_ WMI Commands Here. @@ -6506,7 +6507,8 @@ WMITLV_CREATE_PARAM_STRUC(WMI_HOST_SWFDA_EVENTID); WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_vdev_extd_stats, vdev_extd_stats, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_pdev_extd_stats, pdev_extd_stats, WMITLV_SIZE_VAR) \ WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_pdev_telemetry_stats, pdev_telemetry_stats, WMITLV_SIZE_VAR) \ - WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_recv_bcn_stats, recv_bcn_stats, WMITLV_SIZE_VAR) + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_recv_bcn_stats, recv_bcn_stats, WMITLV_SIZE_VAR) \ + WMITLV_ELEM(id,op,buf,len, WMITLV_TAG_ARRAY_STRUC, wmi_pdev_coex_stats, coex_stats, WMITLV_SIZE_VAR) WMITLV_CREATE_PARAM_STRUC(WMI_UPDATE_STATS_EVENTID); /* Update PN response Event */ diff --git a/fw/wmi_unified.h b/fw/wmi_unified.h index 198ded26b376..ab8da0944494 100644 --- a/fw/wmi_unified.h +++ b/fw/wmi_unified.h @@ -10137,6 +10137,9 @@ typedef enum { /* temporary tx power limit */ WMI_PDEV_PARAM_TEMP_TX_POWER_LIMIT, + + /* configure pdev coex stats period (millisecond units) */ + WMI_PDEV_PARAM_COEX_STATS_UPDATE_PERIOD, } WMI_PDEV_PARAM; #define WMI_PDEV_ONLY_BSR_TRIG_IS_ENABLED(trig_type) WMI_GET_BITS(trig_type, 0, 1) @@ -11269,26 +11272,27 @@ typedef struct { } wmi_vdev_get_twt_session_stats_info_cmd_fixed_param; typedef enum { - WMI_REQUEST_PEER_STAT = 0x00001, - WMI_REQUEST_AP_STAT = 0x00002, - WMI_REQUEST_PDEV_STAT = 0x00004, - WMI_REQUEST_VDEV_STAT = 0x00008, - WMI_REQUEST_BCNFLT_STAT = 0x00010, - WMI_REQUEST_VDEV_RATE_STAT = 0x00020, - WMI_REQUEST_INST_STAT = 0x00040, - WMI_REQUEST_MIB_STAT = 0x00080, - WMI_REQUEST_RSSI_PER_CHAIN_STAT = 0x00100, - WMI_REQUEST_CONGESTION_STAT = 0x00200, - WMI_REQUEST_PEER_EXTD_STAT = 0x00400, - WMI_REQUEST_BCN_STAT = 0x00800, - WMI_REQUEST_BCN_STAT_RESET = 0x01000, - WMI_REQUEST_PEER_EXTD2_STAT = 0x02000, - WMI_REQUEST_MIB_EXTD_STAT = 0x04000, - WMI_REQUEST_PMF_BCN_PROTECT_STAT = 0x08000, - WMI_REQUEST_VDEV_EXTD_STAT = 0x10000, - WMI_REQUEST_PDEV_EXTD_STAT = 0x20000, - WMI_REQUEST_PDEV_TELEMETRY_STAT = 0x40000, - WMI_REQUEST_VDEV_RECV_BCN_STAT = 0x80000, + WMI_REQUEST_PEER_STAT = 0x000001, + WMI_REQUEST_AP_STAT = 0x000002, + WMI_REQUEST_PDEV_STAT = 0x000004, + WMI_REQUEST_VDEV_STAT = 0x000008, + WMI_REQUEST_BCNFLT_STAT = 0x000010, + WMI_REQUEST_VDEV_RATE_STAT = 0x000020, + WMI_REQUEST_INST_STAT = 0x000040, + WMI_REQUEST_MIB_STAT = 0x000080, + WMI_REQUEST_RSSI_PER_CHAIN_STAT = 0x000100, + WMI_REQUEST_CONGESTION_STAT = 0x000200, + WMI_REQUEST_PEER_EXTD_STAT = 0x000400, + WMI_REQUEST_BCN_STAT = 0x000800, + WMI_REQUEST_BCN_STAT_RESET = 0x001000, + WMI_REQUEST_PEER_EXTD2_STAT = 0x002000, + WMI_REQUEST_MIB_EXTD_STAT = 0x004000, + WMI_REQUEST_PMF_BCN_PROTECT_STAT = 0x008000, + WMI_REQUEST_VDEV_EXTD_STAT = 0x010000, + WMI_REQUEST_PDEV_EXTD_STAT = 0x020000, + WMI_REQUEST_PDEV_TELEMETRY_STAT = 0x040000, + WMI_REQUEST_VDEV_RECV_BCN_STAT = 0x080000, + WMI_REQUEST_PDEV_COEX_STAT = 0x100000, } wmi_stats_id; /* @@ -11306,7 +11310,7 @@ typedef struct { typedef struct { A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_request_stats_cmd_fixed_param */ - wmi_stats_id stats_id; + A_UINT32 stats_id; /* wmi_stats_id */ /** unique id identifying the VDEV, generated by the caller */ A_UINT32 vdev_id; /** peer MAC address */ @@ -12211,7 +12215,7 @@ typedef struct { typedef struct { A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_stats_event_fixed_param */ - wmi_stats_id stats_id; + A_UINT32 stats_id; /* wmi_stats_id */ /** number of pdev stats event structures (wmi_pdev_stats) 0 or 1 */ A_UINT32 num_pdev_stats; /** number of vdev stats event structures (wmi_vdev_stats) 0 or max vdevs */ @@ -12283,6 +12287,10 @@ typedef struct { * wmi_recv_bcn_stats wmi_recv_bcn_stats[] * follows the other TLVs */ +/* If WMI_REQUEST_PDEV_COEX_STAT is set in stats_id, then TLV + * wmi_pdev_coex_stats wmi_pdev_coex_stats[] + * follows the other TLVs + */ } wmi_stats_event_fixed_param; /* WLAN channel CCA stats bitmap */ @@ -15711,6 +15719,16 @@ typedef struct { A_UINT32 tx_bcn_outage_cnt; /* Total number of failed beacons */ } wmi_bcn_stats; +/* + * pdev coex stats + */ +typedef struct { + A_UINT32 tlv_header; /* TLV tag and len; tag equals WMITLV_TAG_STRUC_wmi_coex_stats */ + A_UINT32 pdev_id; + A_UINT32 cur_btc_mode; /* 0 - TDD; 1 - FDD; 2 - Hybrid; 3 - DBAM */ + A_UINT32 cur_btc_policy; /* 0 - FR; */ +} wmi_pdev_coex_stats; + #define WMI_VDEV_STATS_FLAGS_LINK_ACTIVE_FLAG_IS_VALID_BIT 0 #define WMI_VDEV_STATS_FLAGS_LINK_ACTIVE_FLAG_IS_VALID_MASK \ (1 << WMI_VDEV_STATS_FLAGS_LINK_ACTIVE_FLAG_IS_VALID_BIT) diff --git a/fw/wmi_version.h b/fw/wmi_version.h index b33e4c99c96f..d599a75debd6 100644 --- a/fw/wmi_version.h +++ b/fw/wmi_version.h @@ -37,7 +37,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_ 1645 +#define __WMI_REVISION_ 1646 /** The Version Namespace should not be normally changed. Only * host and firmware of the same WMI namespace will work