diff options
Diffstat (limited to 'drivers/net/wireless/iwlwifi/mvm/fw-api-stats.h')
-rw-r--r-- | drivers/net/wireless/iwlwifi/mvm/fw-api-stats.h | 64 |
1 files changed, 52 insertions, 12 deletions
diff --git a/drivers/net/wireless/iwlwifi/mvm/fw-api-stats.h b/drivers/net/wireless/iwlwifi/mvm/fw-api-stats.h index 928168b18346..709e28d8b1b0 100644 --- a/drivers/net/wireless/iwlwifi/mvm/fw-api-stats.h +++ b/drivers/net/wireless/iwlwifi/mvm/fw-api-stats.h | |||
@@ -65,6 +65,7 @@ | |||
65 | 65 | ||
66 | #ifndef __fw_api_stats_h__ | 66 | #ifndef __fw_api_stats_h__ |
67 | #define __fw_api_stats_h__ | 67 | #define __fw_api_stats_h__ |
68 | #include "fw-api-mac.h" | ||
68 | 69 | ||
69 | struct mvm_statistics_dbg { | 70 | struct mvm_statistics_dbg { |
70 | __le32 burst_check; | 71 | __le32 burst_check; |
@@ -218,7 +219,7 @@ struct mvm_statistics_bt_activity { | |||
218 | __le32 lo_priority_rx_denied_cnt; | 219 | __le32 lo_priority_rx_denied_cnt; |
219 | } __packed; /* STATISTICS_BT_ACTIVITY_API_S_VER_1 */ | 220 | } __packed; /* STATISTICS_BT_ACTIVITY_API_S_VER_1 */ |
220 | 221 | ||
221 | struct mvm_statistics_general { | 222 | struct mvm_statistics_general_v5 { |
222 | __le32 radio_temperature; | 223 | __le32 radio_temperature; |
223 | __le32 radio_voltage; | 224 | __le32 radio_voltage; |
224 | struct mvm_statistics_dbg dbg; | 225 | struct mvm_statistics_dbg dbg; |
@@ -244,6 +245,39 @@ struct mvm_statistics_general { | |||
244 | struct mvm_statistics_bt_activity bt_activity; | 245 | struct mvm_statistics_bt_activity bt_activity; |
245 | } __packed; /* STATISTICS_GENERAL_API_S_VER_5 */ | 246 | } __packed; /* STATISTICS_GENERAL_API_S_VER_5 */ |
246 | 247 | ||
248 | struct mvm_statistics_general_v8 { | ||
249 | __le32 radio_temperature; | ||
250 | __le32 radio_voltage; | ||
251 | struct mvm_statistics_dbg dbg; | ||
252 | __le32 sleep_time; | ||
253 | __le32 slots_out; | ||
254 | __le32 slots_idle; | ||
255 | __le32 ttl_timestamp; | ||
256 | struct mvm_statistics_div slow_div; | ||
257 | __le32 rx_enable_counter; | ||
258 | /* | ||
259 | * num_of_sos_states: | ||
260 | * count the number of times we have to re-tune | ||
261 | * in order to get out of bad PHY status | ||
262 | */ | ||
263 | __le32 num_of_sos_states; | ||
264 | __le32 beacon_filtered; | ||
265 | __le32 missed_beacons; | ||
266 | __s8 beacon_filter_average_energy; | ||
267 | __s8 beacon_filter_reason; | ||
268 | __s8 beacon_filter_current_energy; | ||
269 | __s8 beacon_filter_reserved; | ||
270 | __le32 beacon_filter_delta_time; | ||
271 | struct mvm_statistics_bt_activity bt_activity; | ||
272 | __le64 rx_time; | ||
273 | __le64 on_time_rf; | ||
274 | __le64 on_time_scan; | ||
275 | __le64 tx_time; | ||
276 | __le32 beacon_counter[NUM_MAC_INDEX]; | ||
277 | u8 beacon_average_energy[NUM_MAC_INDEX]; | ||
278 | u8 reserved[4 - (NUM_MAC_INDEX % 4)]; | ||
279 | } __packed; /* STATISTICS_GENERAL_API_S_VER_8 */ | ||
280 | |||
247 | struct mvm_statistics_rx { | 281 | struct mvm_statistics_rx { |
248 | struct mvm_statistics_rx_phy ofdm; | 282 | struct mvm_statistics_rx_phy ofdm; |
249 | struct mvm_statistics_rx_phy cck; | 283 | struct mvm_statistics_rx_phy cck; |
@@ -256,22 +290,28 @@ struct mvm_statistics_rx { | |||
256 | * | 290 | * |
257 | * By default, uCode issues this notification after receiving a beacon | 291 | * By default, uCode issues this notification after receiving a beacon |
258 | * while associated. To disable this behavior, set DISABLE_NOTIF flag in the | 292 | * while associated. To disable this behavior, set DISABLE_NOTIF flag in the |
259 | * REPLY_STATISTICS_CMD 0x9c, above. | 293 | * STATISTICS_CMD (0x9c), below. |
260 | * | ||
261 | * Statistics counters continue to increment beacon after beacon, but are | ||
262 | * cleared when changing channels or when driver issues REPLY_STATISTICS_CMD | ||
263 | * 0x9c with CLEAR_STATS bit set (see above). | ||
264 | * | ||
265 | * uCode also issues this notification during scans. uCode clears statistics | ||
266 | * appropriately so that each notification contains statistics for only the | ||
267 | * one channel that has just been scanned. | ||
268 | */ | 294 | */ |
269 | 295 | ||
270 | struct iwl_notif_statistics { | 296 | struct iwl_notif_statistics_v8 { |
271 | __le32 flag; | 297 | __le32 flag; |
272 | struct mvm_statistics_rx rx; | 298 | struct mvm_statistics_rx rx; |
273 | struct mvm_statistics_tx tx; | 299 | struct mvm_statistics_tx tx; |
274 | struct mvm_statistics_general general; | 300 | struct mvm_statistics_general_v5 general; |
275 | } __packed; /* STATISTICS_NTFY_API_S_VER_8 */ | 301 | } __packed; /* STATISTICS_NTFY_API_S_VER_8 */ |
276 | 302 | ||
303 | struct iwl_notif_statistics_v10 { | ||
304 | __le32 flag; | ||
305 | struct mvm_statistics_rx rx; | ||
306 | struct mvm_statistics_tx tx; | ||
307 | struct mvm_statistics_general_v8 general; | ||
308 | } __packed; /* STATISTICS_NTFY_API_S_VER_10 */ | ||
309 | |||
310 | #define IWL_STATISTICS_FLG_CLEAR 0x1 | ||
311 | #define IWL_STATISTICS_FLG_DISABLE_NOTIF 0x2 | ||
312 | |||
313 | struct iwl_statistics_cmd { | ||
314 | __le32 flags; | ||
315 | } __packed; /* STATISTICS_CMD_API_S_VER_1 */ | ||
316 | |||
277 | #endif /* __fw_api_stats_h__ */ | 317 | #endif /* __fw_api_stats_h__ */ |