wifi: iwlwifi: introduce iwl_system_statistics_notif_oper version 4

This new version includes Coex related statistics

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Link: https://patch.msgid.link/20260512082114.705fbeeb28d1.I4804d029fa76cfb8267f8c6bcac1ed237a8b3497@changeid
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
This commit is contained in:
Emmanuel Grumbach 2026-05-12 08:22:55 +03:00 committed by Miri Korenblit
parent de04c81d48
commit 2db4f7712f

View File

@ -585,6 +585,67 @@ struct iwl_stats_ntfy_per_phy_v1 {
__le32 last_tx_ch_width_indx;
} __packed; /* STATISTICS_NTFY_PER_PHY_API_S_VER_1 */
/**
* struct iwl_stats_ntfy_coex - coex statistics
*
* @wifi_kill_cnt: count of wifi frames killed by BT
* @wifi_tx_cts_kill_cnt: count of wifi Tx CTS frames killed by BT
* @ttc2_ppdu_error_count: Count PPDU errors on TTC2 - BT Tx indication rises
* within wifi Tx packet on non-shared antenna and wifi is NOT killed by
* PTA/TCL.
* @trc2_ppdu_error_count: count PPDU errors on TRC2 - BT Rx indication rises
* within wifi Tx packet on non-shared antenna and wifi is NOT killed by
* PTA/TCL
* @rrc1_collision_count: count RRC1 - BT Rx indication rises within wifi Rx
* packet on shared antenna
* @rrc2_collision_count: count RRC2 - BT Rx indication rises within wifi Rx
* packet on non-shared antenna
* @rtc2_collision_count: count RTC2 - BT Tx indication rises within wifi Rx
* packet on non-shared antenna
* @reserved: reserved
*/
struct iwl_stats_ntfy_coex {
__le16 wifi_kill_cnt;
__le16 wifi_tx_cts_kill_cnt;
__le16 ttc2_ppdu_error_count;
__le16 trc2_ppdu_error_count;
__le16 rrc1_collision_count;
__le16 rrc2_collision_count;
__le16 rtc2_collision_count;
__le16 reserved;
} __packed; /* STATISTICS_FW_NTFY_COEX_TELEMETRY_API_S_VER_1 */
/**
* struct iwl_stats_ntfy_per_phy - per PHY statistics
* @channel_load: channel load
* @channel_load_by_us: device contribution to MCLM
* @channel_load_not_by_us: other devices' contribution to MCLM
* @clt: CLT HW timer (TIM_CH_LOAD2)
* @act: active accumulator SW
* @elp: elapsed time accumulator SW
* @rx_detected_per_ch_width: number of deferred TX per channel width,
* 0 - 20, 1/2/3 - 40/80/160
* @success_per_ch_width: number of frames that got ACK/BACK/CTS
* per channel BW. note, BACK counted as 1
* @fail_per_ch_width: number of frames that didn't get ACK/BACK/CTS
* per channel BW. note BACK counted as 1
* @last_tx_ch_width_indx: last txed frame channel width index
* @coex: coex related data
*/
struct iwl_stats_ntfy_per_phy {
__le32 channel_load;
__le32 channel_load_by_us;
__le32 channel_load_not_by_us;
__le32 clt;
__le32 act;
__le32 elp;
__le32 rx_detected_per_ch_width[IWL_STATS_MAX_BW_INDEX];
__le32 success_per_ch_width[IWL_STATS_MAX_BW_INDEX];
__le32 fail_per_ch_width[IWL_STATS_MAX_BW_INDEX];
__le32 last_tx_ch_width_indx;
struct iwl_stats_ntfy_coex coex;
} __packed; /* STATISTICS_NTFY_PER_PHY_API_S_VER_2 */
/* unknown channel load (due to not being active on channel) */
#define IWL_STATS_UNKNOWN_CHANNEL_LOAD 0xffffffff
@ -614,6 +675,21 @@ struct iwl_system_statistics_notif_oper_v3 {
struct iwl_stats_ntfy_per_sta per_sta[IWL_STATION_COUNT_MAX];
} __packed; /* STATISTICS_FW_NTFY_OPERATIONAL_API_S_VER_3 */
/**
* struct iwl_system_statistics_notif_oper - statistics notification
*
* @time_stamp: time when the notification is sent from firmware
* @per_link: per link statistics, &struct iwl_stats_ntfy_per_link
* @per_phy: per phy statistics, &struct iwl_stats_ntfy_per_phy_v1
* @per_sta: per sta statistics, &struct iwl_stats_ntfy_per_sta
*/
struct iwl_system_statistics_notif_oper {
__le32 time_stamp;
struct iwl_stats_ntfy_per_link per_link[IWL_FW_MAX_LINKS];
struct iwl_stats_ntfy_per_phy per_phy[IWL_STATS_MAX_PHY_OPERATIONAL];
struct iwl_stats_ntfy_per_sta per_sta[IWL_STATION_COUNT_MAX];
} __packed; /* STATISTICS_FW_NTFY_OPERATIONAL_API_S_VER_4 */
/**
* struct iwl_system_statistics_part1_notif_oper - part1 stats notification
*