18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci* Portions of this file 48c2ecf20Sopenharmony_ci* Copyright(c) 2016-2017 Intel Deutschland GmbH 58c2ecf20Sopenharmony_ci* Copyright (C) 2018 - 2019 Intel Corporation 68c2ecf20Sopenharmony_ci*/ 78c2ecf20Sopenharmony_ci 88c2ecf20Sopenharmony_ci#if !defined(__MAC80211_DRIVER_TRACE) || defined(TRACE_HEADER_MULTI_READ) 98c2ecf20Sopenharmony_ci#define __MAC80211_DRIVER_TRACE 108c2ecf20Sopenharmony_ci 118c2ecf20Sopenharmony_ci#include <linux/tracepoint.h> 128c2ecf20Sopenharmony_ci#include <net/mac80211.h> 138c2ecf20Sopenharmony_ci#include "ieee80211_i.h" 148c2ecf20Sopenharmony_ci 158c2ecf20Sopenharmony_ci#undef TRACE_SYSTEM 168c2ecf20Sopenharmony_ci#define TRACE_SYSTEM mac80211 178c2ecf20Sopenharmony_ci 188c2ecf20Sopenharmony_ci#define MAXNAME 32 198c2ecf20Sopenharmony_ci#define LOCAL_ENTRY __array(char, wiphy_name, 32) 208c2ecf20Sopenharmony_ci#define LOCAL_ASSIGN strlcpy(__entry->wiphy_name, wiphy_name(local->hw.wiphy), MAXNAME) 218c2ecf20Sopenharmony_ci#define LOCAL_PR_FMT "%s" 228c2ecf20Sopenharmony_ci#define LOCAL_PR_ARG __entry->wiphy_name 238c2ecf20Sopenharmony_ci 248c2ecf20Sopenharmony_ci#define STA_ENTRY __array(char, sta_addr, ETH_ALEN) 258c2ecf20Sopenharmony_ci#define STA_ASSIGN (sta ? memcpy(__entry->sta_addr, sta->addr, ETH_ALEN) : \ 268c2ecf20Sopenharmony_ci eth_zero_addr(__entry->sta_addr)) 278c2ecf20Sopenharmony_ci#define STA_NAMED_ASSIGN(s) memcpy(__entry->sta_addr, (s)->addr, ETH_ALEN) 288c2ecf20Sopenharmony_ci#define STA_PR_FMT " sta:%pM" 298c2ecf20Sopenharmony_ci#define STA_PR_ARG __entry->sta_addr 308c2ecf20Sopenharmony_ci 318c2ecf20Sopenharmony_ci#define VIF_ENTRY __field(enum nl80211_iftype, vif_type) __field(void *, sdata) \ 328c2ecf20Sopenharmony_ci __field(bool, p2p) \ 338c2ecf20Sopenharmony_ci __string(vif_name, sdata->name) 348c2ecf20Sopenharmony_ci#define VIF_ASSIGN __entry->vif_type = sdata->vif.type; __entry->sdata = sdata; \ 358c2ecf20Sopenharmony_ci __entry->p2p = sdata->vif.p2p; \ 368c2ecf20Sopenharmony_ci __assign_str(vif_name, sdata->name) 378c2ecf20Sopenharmony_ci#define VIF_PR_FMT " vif:%s(%d%s)" 388c2ecf20Sopenharmony_ci#define VIF_PR_ARG __get_str(vif_name), __entry->vif_type, __entry->p2p ? "/p2p" : "" 398c2ecf20Sopenharmony_ci 408c2ecf20Sopenharmony_ci#define CHANDEF_ENTRY __field(u32, control_freq) \ 418c2ecf20Sopenharmony_ci __field(u32, freq_offset) \ 428c2ecf20Sopenharmony_ci __field(u32, chan_width) \ 438c2ecf20Sopenharmony_ci __field(u32, center_freq1) \ 448c2ecf20Sopenharmony_ci __field(u32, freq1_offset) \ 458c2ecf20Sopenharmony_ci __field(u32, center_freq2) 468c2ecf20Sopenharmony_ci#define CHANDEF_ASSIGN(c) \ 478c2ecf20Sopenharmony_ci __entry->control_freq = (c) ? ((c)->chan ? (c)->chan->center_freq : 0) : 0; \ 488c2ecf20Sopenharmony_ci __entry->freq_offset = (c) ? ((c)->chan ? (c)->chan->freq_offset : 0) : 0; \ 498c2ecf20Sopenharmony_ci __entry->chan_width = (c) ? (c)->width : 0; \ 508c2ecf20Sopenharmony_ci __entry->center_freq1 = (c) ? (c)->center_freq1 : 0; \ 518c2ecf20Sopenharmony_ci __entry->freq1_offset = (c) ? (c)->freq1_offset : 0; \ 528c2ecf20Sopenharmony_ci __entry->center_freq2 = (c) ? (c)->center_freq2 : 0; 538c2ecf20Sopenharmony_ci#define CHANDEF_PR_FMT " control:%d.%03d MHz width:%d center: %d.%03d/%d MHz" 548c2ecf20Sopenharmony_ci#define CHANDEF_PR_ARG __entry->control_freq, __entry->freq_offset, __entry->chan_width, \ 558c2ecf20Sopenharmony_ci __entry->center_freq1, __entry->freq1_offset, __entry->center_freq2 568c2ecf20Sopenharmony_ci 578c2ecf20Sopenharmony_ci#define MIN_CHANDEF_ENTRY \ 588c2ecf20Sopenharmony_ci __field(u32, min_control_freq) \ 598c2ecf20Sopenharmony_ci __field(u32, min_freq_offset) \ 608c2ecf20Sopenharmony_ci __field(u32, min_chan_width) \ 618c2ecf20Sopenharmony_ci __field(u32, min_center_freq1) \ 628c2ecf20Sopenharmony_ci __field(u32, min_freq1_offset) \ 638c2ecf20Sopenharmony_ci __field(u32, min_center_freq2) 648c2ecf20Sopenharmony_ci 658c2ecf20Sopenharmony_ci#define MIN_CHANDEF_ASSIGN(c) \ 668c2ecf20Sopenharmony_ci __entry->min_control_freq = (c)->chan ? (c)->chan->center_freq : 0; \ 678c2ecf20Sopenharmony_ci __entry->min_freq_offset = (c)->chan ? (c)->chan->freq_offset : 0; \ 688c2ecf20Sopenharmony_ci __entry->min_chan_width = (c)->width; \ 698c2ecf20Sopenharmony_ci __entry->min_center_freq1 = (c)->center_freq1; \ 708c2ecf20Sopenharmony_ci __entry->min_freq1_offset = (c)->freq1_offset; \ 718c2ecf20Sopenharmony_ci __entry->min_center_freq2 = (c)->center_freq2; 728c2ecf20Sopenharmony_ci#define MIN_CHANDEF_PR_FMT " min_control:%d.%03d MHz min_width:%d min_center: %d.%03d/%d MHz" 738c2ecf20Sopenharmony_ci#define MIN_CHANDEF_PR_ARG __entry->min_control_freq, __entry->min_freq_offset, \ 748c2ecf20Sopenharmony_ci __entry->min_chan_width, \ 758c2ecf20Sopenharmony_ci __entry->min_center_freq1, __entry->min_freq1_offset, \ 768c2ecf20Sopenharmony_ci __entry->min_center_freq2 778c2ecf20Sopenharmony_ci 788c2ecf20Sopenharmony_ci#define CHANCTX_ENTRY CHANDEF_ENTRY \ 798c2ecf20Sopenharmony_ci MIN_CHANDEF_ENTRY \ 808c2ecf20Sopenharmony_ci __field(u8, rx_chains_static) \ 818c2ecf20Sopenharmony_ci __field(u8, rx_chains_dynamic) 828c2ecf20Sopenharmony_ci#define CHANCTX_ASSIGN CHANDEF_ASSIGN(&ctx->conf.def) \ 838c2ecf20Sopenharmony_ci MIN_CHANDEF_ASSIGN(&ctx->conf.min_def) \ 848c2ecf20Sopenharmony_ci __entry->rx_chains_static = ctx->conf.rx_chains_static; \ 858c2ecf20Sopenharmony_ci __entry->rx_chains_dynamic = ctx->conf.rx_chains_dynamic 868c2ecf20Sopenharmony_ci#define CHANCTX_PR_FMT CHANDEF_PR_FMT MIN_CHANDEF_PR_FMT " chains:%d/%d" 878c2ecf20Sopenharmony_ci#define CHANCTX_PR_ARG CHANDEF_PR_ARG, MIN_CHANDEF_PR_ARG, \ 888c2ecf20Sopenharmony_ci __entry->rx_chains_static, __entry->rx_chains_dynamic 898c2ecf20Sopenharmony_ci 908c2ecf20Sopenharmony_ci#define KEY_ENTRY __field(u32, cipher) \ 918c2ecf20Sopenharmony_ci __field(u8, hw_key_idx) \ 928c2ecf20Sopenharmony_ci __field(u8, flags) \ 938c2ecf20Sopenharmony_ci __field(s8, keyidx) 948c2ecf20Sopenharmony_ci#define KEY_ASSIGN(k) __entry->cipher = (k)->cipher; \ 958c2ecf20Sopenharmony_ci __entry->flags = (k)->flags; \ 968c2ecf20Sopenharmony_ci __entry->keyidx = (k)->keyidx; \ 978c2ecf20Sopenharmony_ci __entry->hw_key_idx = (k)->hw_key_idx; 988c2ecf20Sopenharmony_ci#define KEY_PR_FMT " cipher:0x%x, flags=%#x, keyidx=%d, hw_key_idx=%d" 998c2ecf20Sopenharmony_ci#define KEY_PR_ARG __entry->cipher, __entry->flags, __entry->keyidx, __entry->hw_key_idx 1008c2ecf20Sopenharmony_ci 1018c2ecf20Sopenharmony_ci#define AMPDU_ACTION_ENTRY __field(enum ieee80211_ampdu_mlme_action, \ 1028c2ecf20Sopenharmony_ci ieee80211_ampdu_mlme_action) \ 1038c2ecf20Sopenharmony_ci STA_ENTRY \ 1048c2ecf20Sopenharmony_ci __field(u16, tid) \ 1058c2ecf20Sopenharmony_ci __field(u16, ssn) \ 1068c2ecf20Sopenharmony_ci __field(u16, buf_size) \ 1078c2ecf20Sopenharmony_ci __field(bool, amsdu) \ 1088c2ecf20Sopenharmony_ci __field(u16, timeout) \ 1098c2ecf20Sopenharmony_ci __field(u16, action) 1108c2ecf20Sopenharmony_ci#define AMPDU_ACTION_ASSIGN STA_NAMED_ASSIGN(params->sta); \ 1118c2ecf20Sopenharmony_ci __entry->tid = params->tid; \ 1128c2ecf20Sopenharmony_ci __entry->ssn = params->ssn; \ 1138c2ecf20Sopenharmony_ci __entry->buf_size = params->buf_size; \ 1148c2ecf20Sopenharmony_ci __entry->amsdu = params->amsdu; \ 1158c2ecf20Sopenharmony_ci __entry->timeout = params->timeout; \ 1168c2ecf20Sopenharmony_ci __entry->action = params->action; 1178c2ecf20Sopenharmony_ci#define AMPDU_ACTION_PR_FMT STA_PR_FMT " tid %d, ssn %d, buf_size %u, amsdu %d, timeout %d action %d" 1188c2ecf20Sopenharmony_ci#define AMPDU_ACTION_PR_ARG STA_PR_ARG, __entry->tid, __entry->ssn, \ 1198c2ecf20Sopenharmony_ci __entry->buf_size, __entry->amsdu, __entry->timeout, \ 1208c2ecf20Sopenharmony_ci __entry->action 1218c2ecf20Sopenharmony_ci 1228c2ecf20Sopenharmony_ci/* 1238c2ecf20Sopenharmony_ci * Tracing for driver callbacks. 1248c2ecf20Sopenharmony_ci */ 1258c2ecf20Sopenharmony_ci 1268c2ecf20Sopenharmony_ciDECLARE_EVENT_CLASS(local_only_evt, 1278c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local), 1288c2ecf20Sopenharmony_ci TP_ARGS(local), 1298c2ecf20Sopenharmony_ci TP_STRUCT__entry( 1308c2ecf20Sopenharmony_ci LOCAL_ENTRY 1318c2ecf20Sopenharmony_ci ), 1328c2ecf20Sopenharmony_ci TP_fast_assign( 1338c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 1348c2ecf20Sopenharmony_ci ), 1358c2ecf20Sopenharmony_ci TP_printk(LOCAL_PR_FMT, LOCAL_PR_ARG) 1368c2ecf20Sopenharmony_ci); 1378c2ecf20Sopenharmony_ci 1388c2ecf20Sopenharmony_ciDECLARE_EVENT_CLASS(local_sdata_addr_evt, 1398c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 1408c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata), 1418c2ecf20Sopenharmony_ci TP_ARGS(local, sdata), 1428c2ecf20Sopenharmony_ci 1438c2ecf20Sopenharmony_ci TP_STRUCT__entry( 1448c2ecf20Sopenharmony_ci LOCAL_ENTRY 1458c2ecf20Sopenharmony_ci VIF_ENTRY 1468c2ecf20Sopenharmony_ci __array(char, addr, ETH_ALEN) 1478c2ecf20Sopenharmony_ci ), 1488c2ecf20Sopenharmony_ci 1498c2ecf20Sopenharmony_ci TP_fast_assign( 1508c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 1518c2ecf20Sopenharmony_ci VIF_ASSIGN; 1528c2ecf20Sopenharmony_ci memcpy(__entry->addr, sdata->vif.addr, ETH_ALEN); 1538c2ecf20Sopenharmony_ci ), 1548c2ecf20Sopenharmony_ci 1558c2ecf20Sopenharmony_ci TP_printk( 1568c2ecf20Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT " addr:%pM", 1578c2ecf20Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, __entry->addr 1588c2ecf20Sopenharmony_ci ) 1598c2ecf20Sopenharmony_ci); 1608c2ecf20Sopenharmony_ci 1618c2ecf20Sopenharmony_ciDECLARE_EVENT_CLASS(local_u32_evt, 1628c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, u32 value), 1638c2ecf20Sopenharmony_ci TP_ARGS(local, value), 1648c2ecf20Sopenharmony_ci 1658c2ecf20Sopenharmony_ci TP_STRUCT__entry( 1668c2ecf20Sopenharmony_ci LOCAL_ENTRY 1678c2ecf20Sopenharmony_ci __field(u32, value) 1688c2ecf20Sopenharmony_ci ), 1698c2ecf20Sopenharmony_ci 1708c2ecf20Sopenharmony_ci TP_fast_assign( 1718c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 1728c2ecf20Sopenharmony_ci __entry->value = value; 1738c2ecf20Sopenharmony_ci ), 1748c2ecf20Sopenharmony_ci 1758c2ecf20Sopenharmony_ci TP_printk( 1768c2ecf20Sopenharmony_ci LOCAL_PR_FMT " value:%d", 1778c2ecf20Sopenharmony_ci LOCAL_PR_ARG, __entry->value 1788c2ecf20Sopenharmony_ci ) 1798c2ecf20Sopenharmony_ci); 1808c2ecf20Sopenharmony_ci 1818c2ecf20Sopenharmony_ciDECLARE_EVENT_CLASS(local_sdata_evt, 1828c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 1838c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata), 1848c2ecf20Sopenharmony_ci TP_ARGS(local, sdata), 1858c2ecf20Sopenharmony_ci 1868c2ecf20Sopenharmony_ci TP_STRUCT__entry( 1878c2ecf20Sopenharmony_ci LOCAL_ENTRY 1888c2ecf20Sopenharmony_ci VIF_ENTRY 1898c2ecf20Sopenharmony_ci ), 1908c2ecf20Sopenharmony_ci 1918c2ecf20Sopenharmony_ci TP_fast_assign( 1928c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 1938c2ecf20Sopenharmony_ci VIF_ASSIGN; 1948c2ecf20Sopenharmony_ci ), 1958c2ecf20Sopenharmony_ci 1968c2ecf20Sopenharmony_ci TP_printk( 1978c2ecf20Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT, 1988c2ecf20Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG 1998c2ecf20Sopenharmony_ci ) 2008c2ecf20Sopenharmony_ci); 2018c2ecf20Sopenharmony_ci 2028c2ecf20Sopenharmony_ciDEFINE_EVENT(local_only_evt, drv_return_void, 2038c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local), 2048c2ecf20Sopenharmony_ci TP_ARGS(local) 2058c2ecf20Sopenharmony_ci); 2068c2ecf20Sopenharmony_ci 2078c2ecf20Sopenharmony_ciTRACE_EVENT(drv_return_int, 2088c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, int ret), 2098c2ecf20Sopenharmony_ci TP_ARGS(local, ret), 2108c2ecf20Sopenharmony_ci TP_STRUCT__entry( 2118c2ecf20Sopenharmony_ci LOCAL_ENTRY 2128c2ecf20Sopenharmony_ci __field(int, ret) 2138c2ecf20Sopenharmony_ci ), 2148c2ecf20Sopenharmony_ci TP_fast_assign( 2158c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 2168c2ecf20Sopenharmony_ci __entry->ret = ret; 2178c2ecf20Sopenharmony_ci ), 2188c2ecf20Sopenharmony_ci TP_printk(LOCAL_PR_FMT " - %d", LOCAL_PR_ARG, __entry->ret) 2198c2ecf20Sopenharmony_ci); 2208c2ecf20Sopenharmony_ci 2218c2ecf20Sopenharmony_ciTRACE_EVENT(drv_return_bool, 2228c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, bool ret), 2238c2ecf20Sopenharmony_ci TP_ARGS(local, ret), 2248c2ecf20Sopenharmony_ci TP_STRUCT__entry( 2258c2ecf20Sopenharmony_ci LOCAL_ENTRY 2268c2ecf20Sopenharmony_ci __field(bool, ret) 2278c2ecf20Sopenharmony_ci ), 2288c2ecf20Sopenharmony_ci TP_fast_assign( 2298c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 2308c2ecf20Sopenharmony_ci __entry->ret = ret; 2318c2ecf20Sopenharmony_ci ), 2328c2ecf20Sopenharmony_ci TP_printk(LOCAL_PR_FMT " - %s", LOCAL_PR_ARG, (__entry->ret) ? 2338c2ecf20Sopenharmony_ci "true" : "false") 2348c2ecf20Sopenharmony_ci); 2358c2ecf20Sopenharmony_ci 2368c2ecf20Sopenharmony_ciTRACE_EVENT(drv_return_u32, 2378c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, u32 ret), 2388c2ecf20Sopenharmony_ci TP_ARGS(local, ret), 2398c2ecf20Sopenharmony_ci TP_STRUCT__entry( 2408c2ecf20Sopenharmony_ci LOCAL_ENTRY 2418c2ecf20Sopenharmony_ci __field(u32, ret) 2428c2ecf20Sopenharmony_ci ), 2438c2ecf20Sopenharmony_ci TP_fast_assign( 2448c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 2458c2ecf20Sopenharmony_ci __entry->ret = ret; 2468c2ecf20Sopenharmony_ci ), 2478c2ecf20Sopenharmony_ci TP_printk(LOCAL_PR_FMT " - %u", LOCAL_PR_ARG, __entry->ret) 2488c2ecf20Sopenharmony_ci); 2498c2ecf20Sopenharmony_ci 2508c2ecf20Sopenharmony_ciTRACE_EVENT(drv_return_u64, 2518c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, u64 ret), 2528c2ecf20Sopenharmony_ci TP_ARGS(local, ret), 2538c2ecf20Sopenharmony_ci TP_STRUCT__entry( 2548c2ecf20Sopenharmony_ci LOCAL_ENTRY 2558c2ecf20Sopenharmony_ci __field(u64, ret) 2568c2ecf20Sopenharmony_ci ), 2578c2ecf20Sopenharmony_ci TP_fast_assign( 2588c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 2598c2ecf20Sopenharmony_ci __entry->ret = ret; 2608c2ecf20Sopenharmony_ci ), 2618c2ecf20Sopenharmony_ci TP_printk(LOCAL_PR_FMT " - %llu", LOCAL_PR_ARG, __entry->ret) 2628c2ecf20Sopenharmony_ci); 2638c2ecf20Sopenharmony_ci 2648c2ecf20Sopenharmony_ciDEFINE_EVENT(local_only_evt, drv_start, 2658c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local), 2668c2ecf20Sopenharmony_ci TP_ARGS(local) 2678c2ecf20Sopenharmony_ci); 2688c2ecf20Sopenharmony_ci 2698c2ecf20Sopenharmony_ciDEFINE_EVENT(local_u32_evt, drv_get_et_strings, 2708c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, u32 sset), 2718c2ecf20Sopenharmony_ci TP_ARGS(local, sset) 2728c2ecf20Sopenharmony_ci); 2738c2ecf20Sopenharmony_ci 2748c2ecf20Sopenharmony_ciDEFINE_EVENT(local_u32_evt, drv_get_et_sset_count, 2758c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, u32 sset), 2768c2ecf20Sopenharmony_ci TP_ARGS(local, sset) 2778c2ecf20Sopenharmony_ci); 2788c2ecf20Sopenharmony_ci 2798c2ecf20Sopenharmony_ciDEFINE_EVENT(local_only_evt, drv_get_et_stats, 2808c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local), 2818c2ecf20Sopenharmony_ci TP_ARGS(local) 2828c2ecf20Sopenharmony_ci); 2838c2ecf20Sopenharmony_ci 2848c2ecf20Sopenharmony_ciDEFINE_EVENT(local_only_evt, drv_suspend, 2858c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local), 2868c2ecf20Sopenharmony_ci TP_ARGS(local) 2878c2ecf20Sopenharmony_ci); 2888c2ecf20Sopenharmony_ci 2898c2ecf20Sopenharmony_ciDEFINE_EVENT(local_only_evt, drv_resume, 2908c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local), 2918c2ecf20Sopenharmony_ci TP_ARGS(local) 2928c2ecf20Sopenharmony_ci); 2938c2ecf20Sopenharmony_ci 2948c2ecf20Sopenharmony_ciTRACE_EVENT(drv_set_wakeup, 2958c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, bool enabled), 2968c2ecf20Sopenharmony_ci TP_ARGS(local, enabled), 2978c2ecf20Sopenharmony_ci TP_STRUCT__entry( 2988c2ecf20Sopenharmony_ci LOCAL_ENTRY 2998c2ecf20Sopenharmony_ci __field(bool, enabled) 3008c2ecf20Sopenharmony_ci ), 3018c2ecf20Sopenharmony_ci TP_fast_assign( 3028c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 3038c2ecf20Sopenharmony_ci __entry->enabled = enabled; 3048c2ecf20Sopenharmony_ci ), 3058c2ecf20Sopenharmony_ci TP_printk(LOCAL_PR_FMT " enabled:%d", LOCAL_PR_ARG, __entry->enabled) 3068c2ecf20Sopenharmony_ci); 3078c2ecf20Sopenharmony_ci 3088c2ecf20Sopenharmony_ciDEFINE_EVENT(local_only_evt, drv_stop, 3098c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local), 3108c2ecf20Sopenharmony_ci TP_ARGS(local) 3118c2ecf20Sopenharmony_ci); 3128c2ecf20Sopenharmony_ci 3138c2ecf20Sopenharmony_ciDEFINE_EVENT(local_sdata_addr_evt, drv_add_interface, 3148c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 3158c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata), 3168c2ecf20Sopenharmony_ci TP_ARGS(local, sdata) 3178c2ecf20Sopenharmony_ci); 3188c2ecf20Sopenharmony_ci 3198c2ecf20Sopenharmony_ciTRACE_EVENT(drv_change_interface, 3208c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 3218c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 3228c2ecf20Sopenharmony_ci enum nl80211_iftype type, bool p2p), 3238c2ecf20Sopenharmony_ci 3248c2ecf20Sopenharmony_ci TP_ARGS(local, sdata, type, p2p), 3258c2ecf20Sopenharmony_ci 3268c2ecf20Sopenharmony_ci TP_STRUCT__entry( 3278c2ecf20Sopenharmony_ci LOCAL_ENTRY 3288c2ecf20Sopenharmony_ci VIF_ENTRY 3298c2ecf20Sopenharmony_ci __field(u32, new_type) 3308c2ecf20Sopenharmony_ci __field(bool, new_p2p) 3318c2ecf20Sopenharmony_ci ), 3328c2ecf20Sopenharmony_ci 3338c2ecf20Sopenharmony_ci TP_fast_assign( 3348c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 3358c2ecf20Sopenharmony_ci VIF_ASSIGN; 3368c2ecf20Sopenharmony_ci __entry->new_type = type; 3378c2ecf20Sopenharmony_ci __entry->new_p2p = p2p; 3388c2ecf20Sopenharmony_ci ), 3398c2ecf20Sopenharmony_ci 3408c2ecf20Sopenharmony_ci TP_printk( 3418c2ecf20Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT " new type:%d%s", 3428c2ecf20Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, __entry->new_type, 3438c2ecf20Sopenharmony_ci __entry->new_p2p ? "/p2p" : "" 3448c2ecf20Sopenharmony_ci ) 3458c2ecf20Sopenharmony_ci); 3468c2ecf20Sopenharmony_ci 3478c2ecf20Sopenharmony_ciDEFINE_EVENT(local_sdata_addr_evt, drv_remove_interface, 3488c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 3498c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata), 3508c2ecf20Sopenharmony_ci TP_ARGS(local, sdata) 3518c2ecf20Sopenharmony_ci); 3528c2ecf20Sopenharmony_ci 3538c2ecf20Sopenharmony_ciTRACE_EVENT(drv_config, 3548c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 3558c2ecf20Sopenharmony_ci u32 changed), 3568c2ecf20Sopenharmony_ci 3578c2ecf20Sopenharmony_ci TP_ARGS(local, changed), 3588c2ecf20Sopenharmony_ci 3598c2ecf20Sopenharmony_ci TP_STRUCT__entry( 3608c2ecf20Sopenharmony_ci LOCAL_ENTRY 3618c2ecf20Sopenharmony_ci __field(u32, changed) 3628c2ecf20Sopenharmony_ci __field(u32, flags) 3638c2ecf20Sopenharmony_ci __field(int, power_level) 3648c2ecf20Sopenharmony_ci __field(int, dynamic_ps_timeout) 3658c2ecf20Sopenharmony_ci __field(u16, listen_interval) 3668c2ecf20Sopenharmony_ci __field(u8, long_frame_max_tx_count) 3678c2ecf20Sopenharmony_ci __field(u8, short_frame_max_tx_count) 3688c2ecf20Sopenharmony_ci CHANDEF_ENTRY 3698c2ecf20Sopenharmony_ci __field(int, smps) 3708c2ecf20Sopenharmony_ci ), 3718c2ecf20Sopenharmony_ci 3728c2ecf20Sopenharmony_ci TP_fast_assign( 3738c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 3748c2ecf20Sopenharmony_ci __entry->changed = changed; 3758c2ecf20Sopenharmony_ci __entry->flags = local->hw.conf.flags; 3768c2ecf20Sopenharmony_ci __entry->power_level = local->hw.conf.power_level; 3778c2ecf20Sopenharmony_ci __entry->dynamic_ps_timeout = local->hw.conf.dynamic_ps_timeout; 3788c2ecf20Sopenharmony_ci __entry->listen_interval = local->hw.conf.listen_interval; 3798c2ecf20Sopenharmony_ci __entry->long_frame_max_tx_count = 3808c2ecf20Sopenharmony_ci local->hw.conf.long_frame_max_tx_count; 3818c2ecf20Sopenharmony_ci __entry->short_frame_max_tx_count = 3828c2ecf20Sopenharmony_ci local->hw.conf.short_frame_max_tx_count; 3838c2ecf20Sopenharmony_ci CHANDEF_ASSIGN(&local->hw.conf.chandef) 3848c2ecf20Sopenharmony_ci __entry->smps = local->hw.conf.smps_mode; 3858c2ecf20Sopenharmony_ci ), 3868c2ecf20Sopenharmony_ci 3878c2ecf20Sopenharmony_ci TP_printk( 3888c2ecf20Sopenharmony_ci LOCAL_PR_FMT " ch:%#x" CHANDEF_PR_FMT, 3898c2ecf20Sopenharmony_ci LOCAL_PR_ARG, __entry->changed, CHANDEF_PR_ARG 3908c2ecf20Sopenharmony_ci ) 3918c2ecf20Sopenharmony_ci); 3928c2ecf20Sopenharmony_ci 3938c2ecf20Sopenharmony_ciTRACE_EVENT(drv_bss_info_changed, 3948c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 3958c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 3968c2ecf20Sopenharmony_ci struct ieee80211_bss_conf *info, 3978c2ecf20Sopenharmony_ci u32 changed), 3988c2ecf20Sopenharmony_ci 3998c2ecf20Sopenharmony_ci TP_ARGS(local, sdata, info, changed), 4008c2ecf20Sopenharmony_ci 4018c2ecf20Sopenharmony_ci TP_STRUCT__entry( 4028c2ecf20Sopenharmony_ci LOCAL_ENTRY 4038c2ecf20Sopenharmony_ci VIF_ENTRY 4048c2ecf20Sopenharmony_ci __field(u32, changed) 4058c2ecf20Sopenharmony_ci __field(bool, assoc) 4068c2ecf20Sopenharmony_ci __field(bool, ibss_joined) 4078c2ecf20Sopenharmony_ci __field(bool, ibss_creator) 4088c2ecf20Sopenharmony_ci __field(u16, aid) 4098c2ecf20Sopenharmony_ci __field(bool, cts) 4108c2ecf20Sopenharmony_ci __field(bool, shortpre) 4118c2ecf20Sopenharmony_ci __field(bool, shortslot) 4128c2ecf20Sopenharmony_ci __field(bool, enable_beacon) 4138c2ecf20Sopenharmony_ci __field(u8, dtimper) 4148c2ecf20Sopenharmony_ci __field(u16, bcnint) 4158c2ecf20Sopenharmony_ci __field(u16, assoc_cap) 4168c2ecf20Sopenharmony_ci __field(u64, sync_tsf) 4178c2ecf20Sopenharmony_ci __field(u32, sync_device_ts) 4188c2ecf20Sopenharmony_ci __field(u8, sync_dtim_count) 4198c2ecf20Sopenharmony_ci __field(u32, basic_rates) 4208c2ecf20Sopenharmony_ci __array(int, mcast_rate, NUM_NL80211_BANDS) 4218c2ecf20Sopenharmony_ci __field(u16, ht_operation_mode) 4228c2ecf20Sopenharmony_ci __field(s32, cqm_rssi_thold) 4238c2ecf20Sopenharmony_ci __field(s32, cqm_rssi_hyst) 4248c2ecf20Sopenharmony_ci __field(u32, channel_width) 4258c2ecf20Sopenharmony_ci __field(u32, channel_cfreq1) 4268c2ecf20Sopenharmony_ci __field(u32, channel_cfreq1_offset) 4278c2ecf20Sopenharmony_ci __dynamic_array(u32, arp_addr_list, 4288c2ecf20Sopenharmony_ci info->arp_addr_cnt > IEEE80211_BSS_ARP_ADDR_LIST_LEN ? 4298c2ecf20Sopenharmony_ci IEEE80211_BSS_ARP_ADDR_LIST_LEN : 4308c2ecf20Sopenharmony_ci info->arp_addr_cnt) 4318c2ecf20Sopenharmony_ci __field(int, arp_addr_cnt) 4328c2ecf20Sopenharmony_ci __field(bool, qos) 4338c2ecf20Sopenharmony_ci __field(bool, idle) 4348c2ecf20Sopenharmony_ci __field(bool, ps) 4358c2ecf20Sopenharmony_ci __dynamic_array(u8, ssid, info->ssid_len) 4368c2ecf20Sopenharmony_ci __field(bool, hidden_ssid) 4378c2ecf20Sopenharmony_ci __field(int, txpower) 4388c2ecf20Sopenharmony_ci __field(u8, p2p_oppps_ctwindow) 4398c2ecf20Sopenharmony_ci ), 4408c2ecf20Sopenharmony_ci 4418c2ecf20Sopenharmony_ci TP_fast_assign( 4428c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 4438c2ecf20Sopenharmony_ci VIF_ASSIGN; 4448c2ecf20Sopenharmony_ci __entry->changed = changed; 4458c2ecf20Sopenharmony_ci __entry->aid = info->aid; 4468c2ecf20Sopenharmony_ci __entry->assoc = info->assoc; 4478c2ecf20Sopenharmony_ci __entry->ibss_joined = info->ibss_joined; 4488c2ecf20Sopenharmony_ci __entry->ibss_creator = info->ibss_creator; 4498c2ecf20Sopenharmony_ci __entry->shortpre = info->use_short_preamble; 4508c2ecf20Sopenharmony_ci __entry->cts = info->use_cts_prot; 4518c2ecf20Sopenharmony_ci __entry->shortslot = info->use_short_slot; 4528c2ecf20Sopenharmony_ci __entry->enable_beacon = info->enable_beacon; 4538c2ecf20Sopenharmony_ci __entry->dtimper = info->dtim_period; 4548c2ecf20Sopenharmony_ci __entry->bcnint = info->beacon_int; 4558c2ecf20Sopenharmony_ci __entry->assoc_cap = info->assoc_capability; 4568c2ecf20Sopenharmony_ci __entry->sync_tsf = info->sync_tsf; 4578c2ecf20Sopenharmony_ci __entry->sync_device_ts = info->sync_device_ts; 4588c2ecf20Sopenharmony_ci __entry->sync_dtim_count = info->sync_dtim_count; 4598c2ecf20Sopenharmony_ci __entry->basic_rates = info->basic_rates; 4608c2ecf20Sopenharmony_ci memcpy(__entry->mcast_rate, info->mcast_rate, 4618c2ecf20Sopenharmony_ci sizeof(__entry->mcast_rate)); 4628c2ecf20Sopenharmony_ci __entry->ht_operation_mode = info->ht_operation_mode; 4638c2ecf20Sopenharmony_ci __entry->cqm_rssi_thold = info->cqm_rssi_thold; 4648c2ecf20Sopenharmony_ci __entry->cqm_rssi_hyst = info->cqm_rssi_hyst; 4658c2ecf20Sopenharmony_ci __entry->channel_width = info->chandef.width; 4668c2ecf20Sopenharmony_ci __entry->channel_cfreq1 = info->chandef.center_freq1; 4678c2ecf20Sopenharmony_ci __entry->channel_cfreq1_offset = info->chandef.freq1_offset; 4688c2ecf20Sopenharmony_ci __entry->arp_addr_cnt = info->arp_addr_cnt; 4698c2ecf20Sopenharmony_ci memcpy(__get_dynamic_array(arp_addr_list), info->arp_addr_list, 4708c2ecf20Sopenharmony_ci sizeof(u32) * (info->arp_addr_cnt > IEEE80211_BSS_ARP_ADDR_LIST_LEN ? 4718c2ecf20Sopenharmony_ci IEEE80211_BSS_ARP_ADDR_LIST_LEN : 4728c2ecf20Sopenharmony_ci info->arp_addr_cnt)); 4738c2ecf20Sopenharmony_ci __entry->qos = info->qos; 4748c2ecf20Sopenharmony_ci __entry->idle = info->idle; 4758c2ecf20Sopenharmony_ci __entry->ps = info->ps; 4768c2ecf20Sopenharmony_ci memcpy(__get_dynamic_array(ssid), info->ssid, info->ssid_len); 4778c2ecf20Sopenharmony_ci __entry->hidden_ssid = info->hidden_ssid; 4788c2ecf20Sopenharmony_ci __entry->txpower = info->txpower; 4798c2ecf20Sopenharmony_ci __entry->p2p_oppps_ctwindow = info->p2p_noa_attr.oppps_ctwindow; 4808c2ecf20Sopenharmony_ci ), 4818c2ecf20Sopenharmony_ci 4828c2ecf20Sopenharmony_ci TP_printk( 4838c2ecf20Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT " changed:%#x", 4848c2ecf20Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, __entry->changed 4858c2ecf20Sopenharmony_ci ) 4868c2ecf20Sopenharmony_ci); 4878c2ecf20Sopenharmony_ci 4888c2ecf20Sopenharmony_ciTRACE_EVENT(drv_prepare_multicast, 4898c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, int mc_count), 4908c2ecf20Sopenharmony_ci 4918c2ecf20Sopenharmony_ci TP_ARGS(local, mc_count), 4928c2ecf20Sopenharmony_ci 4938c2ecf20Sopenharmony_ci TP_STRUCT__entry( 4948c2ecf20Sopenharmony_ci LOCAL_ENTRY 4958c2ecf20Sopenharmony_ci __field(int, mc_count) 4968c2ecf20Sopenharmony_ci ), 4978c2ecf20Sopenharmony_ci 4988c2ecf20Sopenharmony_ci TP_fast_assign( 4998c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 5008c2ecf20Sopenharmony_ci __entry->mc_count = mc_count; 5018c2ecf20Sopenharmony_ci ), 5028c2ecf20Sopenharmony_ci 5038c2ecf20Sopenharmony_ci TP_printk( 5048c2ecf20Sopenharmony_ci LOCAL_PR_FMT " prepare mc (%d)", 5058c2ecf20Sopenharmony_ci LOCAL_PR_ARG, __entry->mc_count 5068c2ecf20Sopenharmony_ci ) 5078c2ecf20Sopenharmony_ci); 5088c2ecf20Sopenharmony_ci 5098c2ecf20Sopenharmony_ciTRACE_EVENT(drv_configure_filter, 5108c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 5118c2ecf20Sopenharmony_ci unsigned int changed_flags, 5128c2ecf20Sopenharmony_ci unsigned int *total_flags, 5138c2ecf20Sopenharmony_ci u64 multicast), 5148c2ecf20Sopenharmony_ci 5158c2ecf20Sopenharmony_ci TP_ARGS(local, changed_flags, total_flags, multicast), 5168c2ecf20Sopenharmony_ci 5178c2ecf20Sopenharmony_ci TP_STRUCT__entry( 5188c2ecf20Sopenharmony_ci LOCAL_ENTRY 5198c2ecf20Sopenharmony_ci __field(unsigned int, changed) 5208c2ecf20Sopenharmony_ci __field(unsigned int, total) 5218c2ecf20Sopenharmony_ci __field(u64, multicast) 5228c2ecf20Sopenharmony_ci ), 5238c2ecf20Sopenharmony_ci 5248c2ecf20Sopenharmony_ci TP_fast_assign( 5258c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 5268c2ecf20Sopenharmony_ci __entry->changed = changed_flags; 5278c2ecf20Sopenharmony_ci __entry->total = *total_flags; 5288c2ecf20Sopenharmony_ci __entry->multicast = multicast; 5298c2ecf20Sopenharmony_ci ), 5308c2ecf20Sopenharmony_ci 5318c2ecf20Sopenharmony_ci TP_printk( 5328c2ecf20Sopenharmony_ci LOCAL_PR_FMT " changed:%#x total:%#x", 5338c2ecf20Sopenharmony_ci LOCAL_PR_ARG, __entry->changed, __entry->total 5348c2ecf20Sopenharmony_ci ) 5358c2ecf20Sopenharmony_ci); 5368c2ecf20Sopenharmony_ci 5378c2ecf20Sopenharmony_ciTRACE_EVENT(drv_config_iface_filter, 5388c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 5398c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 5408c2ecf20Sopenharmony_ci unsigned int filter_flags, 5418c2ecf20Sopenharmony_ci unsigned int changed_flags), 5428c2ecf20Sopenharmony_ci 5438c2ecf20Sopenharmony_ci TP_ARGS(local, sdata, filter_flags, changed_flags), 5448c2ecf20Sopenharmony_ci 5458c2ecf20Sopenharmony_ci TP_STRUCT__entry( 5468c2ecf20Sopenharmony_ci LOCAL_ENTRY 5478c2ecf20Sopenharmony_ci VIF_ENTRY 5488c2ecf20Sopenharmony_ci __field(unsigned int, filter_flags) 5498c2ecf20Sopenharmony_ci __field(unsigned int, changed_flags) 5508c2ecf20Sopenharmony_ci ), 5518c2ecf20Sopenharmony_ci 5528c2ecf20Sopenharmony_ci TP_fast_assign( 5538c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 5548c2ecf20Sopenharmony_ci VIF_ASSIGN; 5558c2ecf20Sopenharmony_ci __entry->filter_flags = filter_flags; 5568c2ecf20Sopenharmony_ci __entry->changed_flags = changed_flags; 5578c2ecf20Sopenharmony_ci ), 5588c2ecf20Sopenharmony_ci 5598c2ecf20Sopenharmony_ci TP_printk( 5608c2ecf20Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT 5618c2ecf20Sopenharmony_ci " filter_flags: %#x changed_flags: %#x", 5628c2ecf20Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, __entry->filter_flags, 5638c2ecf20Sopenharmony_ci __entry->changed_flags 5648c2ecf20Sopenharmony_ci ) 5658c2ecf20Sopenharmony_ci); 5668c2ecf20Sopenharmony_ci 5678c2ecf20Sopenharmony_ciTRACE_EVENT(drv_set_tim, 5688c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 5698c2ecf20Sopenharmony_ci struct ieee80211_sta *sta, bool set), 5708c2ecf20Sopenharmony_ci 5718c2ecf20Sopenharmony_ci TP_ARGS(local, sta, set), 5728c2ecf20Sopenharmony_ci 5738c2ecf20Sopenharmony_ci TP_STRUCT__entry( 5748c2ecf20Sopenharmony_ci LOCAL_ENTRY 5758c2ecf20Sopenharmony_ci STA_ENTRY 5768c2ecf20Sopenharmony_ci __field(bool, set) 5778c2ecf20Sopenharmony_ci ), 5788c2ecf20Sopenharmony_ci 5798c2ecf20Sopenharmony_ci TP_fast_assign( 5808c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 5818c2ecf20Sopenharmony_ci STA_ASSIGN; 5828c2ecf20Sopenharmony_ci __entry->set = set; 5838c2ecf20Sopenharmony_ci ), 5848c2ecf20Sopenharmony_ci 5858c2ecf20Sopenharmony_ci TP_printk( 5868c2ecf20Sopenharmony_ci LOCAL_PR_FMT STA_PR_FMT " set:%d", 5878c2ecf20Sopenharmony_ci LOCAL_PR_ARG, STA_PR_ARG, __entry->set 5888c2ecf20Sopenharmony_ci ) 5898c2ecf20Sopenharmony_ci); 5908c2ecf20Sopenharmony_ci 5918c2ecf20Sopenharmony_ciTRACE_EVENT(drv_set_key, 5928c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 5938c2ecf20Sopenharmony_ci enum set_key_cmd cmd, struct ieee80211_sub_if_data *sdata, 5948c2ecf20Sopenharmony_ci struct ieee80211_sta *sta, 5958c2ecf20Sopenharmony_ci struct ieee80211_key_conf *key), 5968c2ecf20Sopenharmony_ci 5978c2ecf20Sopenharmony_ci TP_ARGS(local, cmd, sdata, sta, key), 5988c2ecf20Sopenharmony_ci 5998c2ecf20Sopenharmony_ci TP_STRUCT__entry( 6008c2ecf20Sopenharmony_ci LOCAL_ENTRY 6018c2ecf20Sopenharmony_ci VIF_ENTRY 6028c2ecf20Sopenharmony_ci STA_ENTRY 6038c2ecf20Sopenharmony_ci KEY_ENTRY 6048c2ecf20Sopenharmony_ci ), 6058c2ecf20Sopenharmony_ci 6068c2ecf20Sopenharmony_ci TP_fast_assign( 6078c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 6088c2ecf20Sopenharmony_ci VIF_ASSIGN; 6098c2ecf20Sopenharmony_ci STA_ASSIGN; 6108c2ecf20Sopenharmony_ci KEY_ASSIGN(key); 6118c2ecf20Sopenharmony_ci ), 6128c2ecf20Sopenharmony_ci 6138c2ecf20Sopenharmony_ci TP_printk( 6148c2ecf20Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT STA_PR_FMT KEY_PR_FMT, 6158c2ecf20Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, STA_PR_ARG, KEY_PR_ARG 6168c2ecf20Sopenharmony_ci ) 6178c2ecf20Sopenharmony_ci); 6188c2ecf20Sopenharmony_ci 6198c2ecf20Sopenharmony_ciTRACE_EVENT(drv_update_tkip_key, 6208c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 6218c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 6228c2ecf20Sopenharmony_ci struct ieee80211_key_conf *conf, 6238c2ecf20Sopenharmony_ci struct ieee80211_sta *sta, u32 iv32), 6248c2ecf20Sopenharmony_ci 6258c2ecf20Sopenharmony_ci TP_ARGS(local, sdata, conf, sta, iv32), 6268c2ecf20Sopenharmony_ci 6278c2ecf20Sopenharmony_ci TP_STRUCT__entry( 6288c2ecf20Sopenharmony_ci LOCAL_ENTRY 6298c2ecf20Sopenharmony_ci VIF_ENTRY 6308c2ecf20Sopenharmony_ci STA_ENTRY 6318c2ecf20Sopenharmony_ci __field(u32, iv32) 6328c2ecf20Sopenharmony_ci ), 6338c2ecf20Sopenharmony_ci 6348c2ecf20Sopenharmony_ci TP_fast_assign( 6358c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 6368c2ecf20Sopenharmony_ci VIF_ASSIGN; 6378c2ecf20Sopenharmony_ci STA_ASSIGN; 6388c2ecf20Sopenharmony_ci __entry->iv32 = iv32; 6398c2ecf20Sopenharmony_ci ), 6408c2ecf20Sopenharmony_ci 6418c2ecf20Sopenharmony_ci TP_printk( 6428c2ecf20Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT STA_PR_FMT " iv32:%#x", 6438c2ecf20Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, STA_PR_ARG, __entry->iv32 6448c2ecf20Sopenharmony_ci ) 6458c2ecf20Sopenharmony_ci); 6468c2ecf20Sopenharmony_ci 6478c2ecf20Sopenharmony_ciDEFINE_EVENT(local_sdata_evt, drv_hw_scan, 6488c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 6498c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata), 6508c2ecf20Sopenharmony_ci TP_ARGS(local, sdata) 6518c2ecf20Sopenharmony_ci); 6528c2ecf20Sopenharmony_ci 6538c2ecf20Sopenharmony_ciDEFINE_EVENT(local_sdata_evt, drv_cancel_hw_scan, 6548c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 6558c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata), 6568c2ecf20Sopenharmony_ci TP_ARGS(local, sdata) 6578c2ecf20Sopenharmony_ci); 6588c2ecf20Sopenharmony_ci 6598c2ecf20Sopenharmony_ciDEFINE_EVENT(local_sdata_evt, drv_sched_scan_start, 6608c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 6618c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata), 6628c2ecf20Sopenharmony_ci TP_ARGS(local, sdata) 6638c2ecf20Sopenharmony_ci); 6648c2ecf20Sopenharmony_ci 6658c2ecf20Sopenharmony_ciDEFINE_EVENT(local_sdata_evt, drv_sched_scan_stop, 6668c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 6678c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata), 6688c2ecf20Sopenharmony_ci TP_ARGS(local, sdata) 6698c2ecf20Sopenharmony_ci); 6708c2ecf20Sopenharmony_ci 6718c2ecf20Sopenharmony_ciTRACE_EVENT(drv_sw_scan_start, 6728c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 6738c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 6748c2ecf20Sopenharmony_ci const u8 *mac_addr), 6758c2ecf20Sopenharmony_ci 6768c2ecf20Sopenharmony_ci TP_ARGS(local, sdata, mac_addr), 6778c2ecf20Sopenharmony_ci 6788c2ecf20Sopenharmony_ci TP_STRUCT__entry( 6798c2ecf20Sopenharmony_ci LOCAL_ENTRY 6808c2ecf20Sopenharmony_ci VIF_ENTRY 6818c2ecf20Sopenharmony_ci __array(char, mac_addr, ETH_ALEN) 6828c2ecf20Sopenharmony_ci ), 6838c2ecf20Sopenharmony_ci 6848c2ecf20Sopenharmony_ci TP_fast_assign( 6858c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 6868c2ecf20Sopenharmony_ci VIF_ASSIGN; 6878c2ecf20Sopenharmony_ci memcpy(__entry->mac_addr, mac_addr, ETH_ALEN); 6888c2ecf20Sopenharmony_ci ), 6898c2ecf20Sopenharmony_ci 6908c2ecf20Sopenharmony_ci TP_printk(LOCAL_PR_FMT ", " VIF_PR_FMT ", addr:%pM", 6918c2ecf20Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, __entry->mac_addr) 6928c2ecf20Sopenharmony_ci); 6938c2ecf20Sopenharmony_ci 6948c2ecf20Sopenharmony_ciDEFINE_EVENT(local_sdata_evt, drv_sw_scan_complete, 6958c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 6968c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata), 6978c2ecf20Sopenharmony_ci TP_ARGS(local, sdata) 6988c2ecf20Sopenharmony_ci); 6998c2ecf20Sopenharmony_ci 7008c2ecf20Sopenharmony_ciTRACE_EVENT(drv_get_stats, 7018c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 7028c2ecf20Sopenharmony_ci struct ieee80211_low_level_stats *stats, 7038c2ecf20Sopenharmony_ci int ret), 7048c2ecf20Sopenharmony_ci 7058c2ecf20Sopenharmony_ci TP_ARGS(local, stats, ret), 7068c2ecf20Sopenharmony_ci 7078c2ecf20Sopenharmony_ci TP_STRUCT__entry( 7088c2ecf20Sopenharmony_ci LOCAL_ENTRY 7098c2ecf20Sopenharmony_ci __field(int, ret) 7108c2ecf20Sopenharmony_ci __field(unsigned int, ackfail) 7118c2ecf20Sopenharmony_ci __field(unsigned int, rtsfail) 7128c2ecf20Sopenharmony_ci __field(unsigned int, fcserr) 7138c2ecf20Sopenharmony_ci __field(unsigned int, rtssucc) 7148c2ecf20Sopenharmony_ci ), 7158c2ecf20Sopenharmony_ci 7168c2ecf20Sopenharmony_ci TP_fast_assign( 7178c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 7188c2ecf20Sopenharmony_ci __entry->ret = ret; 7198c2ecf20Sopenharmony_ci __entry->ackfail = stats->dot11ACKFailureCount; 7208c2ecf20Sopenharmony_ci __entry->rtsfail = stats->dot11RTSFailureCount; 7218c2ecf20Sopenharmony_ci __entry->fcserr = stats->dot11FCSErrorCount; 7228c2ecf20Sopenharmony_ci __entry->rtssucc = stats->dot11RTSSuccessCount; 7238c2ecf20Sopenharmony_ci ), 7248c2ecf20Sopenharmony_ci 7258c2ecf20Sopenharmony_ci TP_printk( 7268c2ecf20Sopenharmony_ci LOCAL_PR_FMT " ret:%d", 7278c2ecf20Sopenharmony_ci LOCAL_PR_ARG, __entry->ret 7288c2ecf20Sopenharmony_ci ) 7298c2ecf20Sopenharmony_ci); 7308c2ecf20Sopenharmony_ci 7318c2ecf20Sopenharmony_ciTRACE_EVENT(drv_get_key_seq, 7328c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 7338c2ecf20Sopenharmony_ci struct ieee80211_key_conf *key), 7348c2ecf20Sopenharmony_ci 7358c2ecf20Sopenharmony_ci TP_ARGS(local, key), 7368c2ecf20Sopenharmony_ci 7378c2ecf20Sopenharmony_ci TP_STRUCT__entry( 7388c2ecf20Sopenharmony_ci LOCAL_ENTRY 7398c2ecf20Sopenharmony_ci KEY_ENTRY 7408c2ecf20Sopenharmony_ci ), 7418c2ecf20Sopenharmony_ci 7428c2ecf20Sopenharmony_ci TP_fast_assign( 7438c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 7448c2ecf20Sopenharmony_ci KEY_ASSIGN(key); 7458c2ecf20Sopenharmony_ci ), 7468c2ecf20Sopenharmony_ci 7478c2ecf20Sopenharmony_ci TP_printk( 7488c2ecf20Sopenharmony_ci LOCAL_PR_FMT KEY_PR_FMT, 7498c2ecf20Sopenharmony_ci LOCAL_PR_ARG, KEY_PR_ARG 7508c2ecf20Sopenharmony_ci ) 7518c2ecf20Sopenharmony_ci); 7528c2ecf20Sopenharmony_ci 7538c2ecf20Sopenharmony_ciDEFINE_EVENT(local_u32_evt, drv_set_frag_threshold, 7548c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, u32 value), 7558c2ecf20Sopenharmony_ci TP_ARGS(local, value) 7568c2ecf20Sopenharmony_ci); 7578c2ecf20Sopenharmony_ci 7588c2ecf20Sopenharmony_ciDEFINE_EVENT(local_u32_evt, drv_set_rts_threshold, 7598c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, u32 value), 7608c2ecf20Sopenharmony_ci TP_ARGS(local, value) 7618c2ecf20Sopenharmony_ci); 7628c2ecf20Sopenharmony_ci 7638c2ecf20Sopenharmony_ciTRACE_EVENT(drv_set_coverage_class, 7648c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, s16 value), 7658c2ecf20Sopenharmony_ci 7668c2ecf20Sopenharmony_ci TP_ARGS(local, value), 7678c2ecf20Sopenharmony_ci 7688c2ecf20Sopenharmony_ci TP_STRUCT__entry( 7698c2ecf20Sopenharmony_ci LOCAL_ENTRY 7708c2ecf20Sopenharmony_ci __field(s16, value) 7718c2ecf20Sopenharmony_ci ), 7728c2ecf20Sopenharmony_ci 7738c2ecf20Sopenharmony_ci TP_fast_assign( 7748c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 7758c2ecf20Sopenharmony_ci __entry->value = value; 7768c2ecf20Sopenharmony_ci ), 7778c2ecf20Sopenharmony_ci 7788c2ecf20Sopenharmony_ci TP_printk( 7798c2ecf20Sopenharmony_ci LOCAL_PR_FMT " value:%d", 7808c2ecf20Sopenharmony_ci LOCAL_PR_ARG, __entry->value 7818c2ecf20Sopenharmony_ci ) 7828c2ecf20Sopenharmony_ci); 7838c2ecf20Sopenharmony_ci 7848c2ecf20Sopenharmony_ciTRACE_EVENT(drv_sta_notify, 7858c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 7868c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 7878c2ecf20Sopenharmony_ci enum sta_notify_cmd cmd, 7888c2ecf20Sopenharmony_ci struct ieee80211_sta *sta), 7898c2ecf20Sopenharmony_ci 7908c2ecf20Sopenharmony_ci TP_ARGS(local, sdata, cmd, sta), 7918c2ecf20Sopenharmony_ci 7928c2ecf20Sopenharmony_ci TP_STRUCT__entry( 7938c2ecf20Sopenharmony_ci LOCAL_ENTRY 7948c2ecf20Sopenharmony_ci VIF_ENTRY 7958c2ecf20Sopenharmony_ci STA_ENTRY 7968c2ecf20Sopenharmony_ci __field(u32, cmd) 7978c2ecf20Sopenharmony_ci ), 7988c2ecf20Sopenharmony_ci 7998c2ecf20Sopenharmony_ci TP_fast_assign( 8008c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 8018c2ecf20Sopenharmony_ci VIF_ASSIGN; 8028c2ecf20Sopenharmony_ci STA_ASSIGN; 8038c2ecf20Sopenharmony_ci __entry->cmd = cmd; 8048c2ecf20Sopenharmony_ci ), 8058c2ecf20Sopenharmony_ci 8068c2ecf20Sopenharmony_ci TP_printk( 8078c2ecf20Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT STA_PR_FMT " cmd:%d", 8088c2ecf20Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, STA_PR_ARG, __entry->cmd 8098c2ecf20Sopenharmony_ci ) 8108c2ecf20Sopenharmony_ci); 8118c2ecf20Sopenharmony_ci 8128c2ecf20Sopenharmony_ciTRACE_EVENT(drv_sta_state, 8138c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 8148c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 8158c2ecf20Sopenharmony_ci struct ieee80211_sta *sta, 8168c2ecf20Sopenharmony_ci enum ieee80211_sta_state old_state, 8178c2ecf20Sopenharmony_ci enum ieee80211_sta_state new_state), 8188c2ecf20Sopenharmony_ci 8198c2ecf20Sopenharmony_ci TP_ARGS(local, sdata, sta, old_state, new_state), 8208c2ecf20Sopenharmony_ci 8218c2ecf20Sopenharmony_ci TP_STRUCT__entry( 8228c2ecf20Sopenharmony_ci LOCAL_ENTRY 8238c2ecf20Sopenharmony_ci VIF_ENTRY 8248c2ecf20Sopenharmony_ci STA_ENTRY 8258c2ecf20Sopenharmony_ci __field(u32, old_state) 8268c2ecf20Sopenharmony_ci __field(u32, new_state) 8278c2ecf20Sopenharmony_ci ), 8288c2ecf20Sopenharmony_ci 8298c2ecf20Sopenharmony_ci TP_fast_assign( 8308c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 8318c2ecf20Sopenharmony_ci VIF_ASSIGN; 8328c2ecf20Sopenharmony_ci STA_ASSIGN; 8338c2ecf20Sopenharmony_ci __entry->old_state = old_state; 8348c2ecf20Sopenharmony_ci __entry->new_state = new_state; 8358c2ecf20Sopenharmony_ci ), 8368c2ecf20Sopenharmony_ci 8378c2ecf20Sopenharmony_ci TP_printk( 8388c2ecf20Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT STA_PR_FMT " state: %d->%d", 8398c2ecf20Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, STA_PR_ARG, 8408c2ecf20Sopenharmony_ci __entry->old_state, __entry->new_state 8418c2ecf20Sopenharmony_ci ) 8428c2ecf20Sopenharmony_ci); 8438c2ecf20Sopenharmony_ci 8448c2ecf20Sopenharmony_ciTRACE_EVENT(drv_sta_set_txpwr, 8458c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 8468c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 8478c2ecf20Sopenharmony_ci struct ieee80211_sta *sta), 8488c2ecf20Sopenharmony_ci 8498c2ecf20Sopenharmony_ci TP_ARGS(local, sdata, sta), 8508c2ecf20Sopenharmony_ci 8518c2ecf20Sopenharmony_ci TP_STRUCT__entry( 8528c2ecf20Sopenharmony_ci LOCAL_ENTRY 8538c2ecf20Sopenharmony_ci VIF_ENTRY 8548c2ecf20Sopenharmony_ci STA_ENTRY 8558c2ecf20Sopenharmony_ci __field(s16, txpwr) 8568c2ecf20Sopenharmony_ci __field(u8, type) 8578c2ecf20Sopenharmony_ci ), 8588c2ecf20Sopenharmony_ci 8598c2ecf20Sopenharmony_ci TP_fast_assign( 8608c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 8618c2ecf20Sopenharmony_ci VIF_ASSIGN; 8628c2ecf20Sopenharmony_ci STA_ASSIGN; 8638c2ecf20Sopenharmony_ci __entry->txpwr = sta->txpwr.power; 8648c2ecf20Sopenharmony_ci __entry->type = sta->txpwr.type; 8658c2ecf20Sopenharmony_ci ), 8668c2ecf20Sopenharmony_ci 8678c2ecf20Sopenharmony_ci TP_printk( 8688c2ecf20Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT STA_PR_FMT " txpwr: %d type %d", 8698c2ecf20Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, STA_PR_ARG, 8708c2ecf20Sopenharmony_ci __entry->txpwr, __entry->type 8718c2ecf20Sopenharmony_ci ) 8728c2ecf20Sopenharmony_ci); 8738c2ecf20Sopenharmony_ci 8748c2ecf20Sopenharmony_ciTRACE_EVENT(drv_sta_rc_update, 8758c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 8768c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 8778c2ecf20Sopenharmony_ci struct ieee80211_sta *sta, 8788c2ecf20Sopenharmony_ci u32 changed), 8798c2ecf20Sopenharmony_ci 8808c2ecf20Sopenharmony_ci TP_ARGS(local, sdata, sta, changed), 8818c2ecf20Sopenharmony_ci 8828c2ecf20Sopenharmony_ci TP_STRUCT__entry( 8838c2ecf20Sopenharmony_ci LOCAL_ENTRY 8848c2ecf20Sopenharmony_ci VIF_ENTRY 8858c2ecf20Sopenharmony_ci STA_ENTRY 8868c2ecf20Sopenharmony_ci __field(u32, changed) 8878c2ecf20Sopenharmony_ci ), 8888c2ecf20Sopenharmony_ci 8898c2ecf20Sopenharmony_ci TP_fast_assign( 8908c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 8918c2ecf20Sopenharmony_ci VIF_ASSIGN; 8928c2ecf20Sopenharmony_ci STA_ASSIGN; 8938c2ecf20Sopenharmony_ci __entry->changed = changed; 8948c2ecf20Sopenharmony_ci ), 8958c2ecf20Sopenharmony_ci 8968c2ecf20Sopenharmony_ci TP_printk( 8978c2ecf20Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT STA_PR_FMT " changed: 0x%x", 8988c2ecf20Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, STA_PR_ARG, __entry->changed 8998c2ecf20Sopenharmony_ci ) 9008c2ecf20Sopenharmony_ci); 9018c2ecf20Sopenharmony_ci 9028c2ecf20Sopenharmony_ciDECLARE_EVENT_CLASS(sta_event, 9038c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 9048c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 9058c2ecf20Sopenharmony_ci struct ieee80211_sta *sta), 9068c2ecf20Sopenharmony_ci 9078c2ecf20Sopenharmony_ci TP_ARGS(local, sdata, sta), 9088c2ecf20Sopenharmony_ci 9098c2ecf20Sopenharmony_ci TP_STRUCT__entry( 9108c2ecf20Sopenharmony_ci LOCAL_ENTRY 9118c2ecf20Sopenharmony_ci VIF_ENTRY 9128c2ecf20Sopenharmony_ci STA_ENTRY 9138c2ecf20Sopenharmony_ci ), 9148c2ecf20Sopenharmony_ci 9158c2ecf20Sopenharmony_ci TP_fast_assign( 9168c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 9178c2ecf20Sopenharmony_ci VIF_ASSIGN; 9188c2ecf20Sopenharmony_ci STA_ASSIGN; 9198c2ecf20Sopenharmony_ci ), 9208c2ecf20Sopenharmony_ci 9218c2ecf20Sopenharmony_ci TP_printk( 9228c2ecf20Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT STA_PR_FMT, 9238c2ecf20Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, STA_PR_ARG 9248c2ecf20Sopenharmony_ci ) 9258c2ecf20Sopenharmony_ci); 9268c2ecf20Sopenharmony_ci 9278c2ecf20Sopenharmony_ciDEFINE_EVENT(sta_event, drv_sta_statistics, 9288c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 9298c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 9308c2ecf20Sopenharmony_ci struct ieee80211_sta *sta), 9318c2ecf20Sopenharmony_ci TP_ARGS(local, sdata, sta) 9328c2ecf20Sopenharmony_ci); 9338c2ecf20Sopenharmony_ci 9348c2ecf20Sopenharmony_ciDEFINE_EVENT(sta_event, drv_sta_add, 9358c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 9368c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 9378c2ecf20Sopenharmony_ci struct ieee80211_sta *sta), 9388c2ecf20Sopenharmony_ci TP_ARGS(local, sdata, sta) 9398c2ecf20Sopenharmony_ci); 9408c2ecf20Sopenharmony_ci 9418c2ecf20Sopenharmony_ciDEFINE_EVENT(sta_event, drv_sta_remove, 9428c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 9438c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 9448c2ecf20Sopenharmony_ci struct ieee80211_sta *sta), 9458c2ecf20Sopenharmony_ci TP_ARGS(local, sdata, sta) 9468c2ecf20Sopenharmony_ci); 9478c2ecf20Sopenharmony_ci 9488c2ecf20Sopenharmony_ciDEFINE_EVENT(sta_event, drv_sta_pre_rcu_remove, 9498c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 9508c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 9518c2ecf20Sopenharmony_ci struct ieee80211_sta *sta), 9528c2ecf20Sopenharmony_ci TP_ARGS(local, sdata, sta) 9538c2ecf20Sopenharmony_ci); 9548c2ecf20Sopenharmony_ci 9558c2ecf20Sopenharmony_ciDEFINE_EVENT(sta_event, drv_sync_rx_queues, 9568c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 9578c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 9588c2ecf20Sopenharmony_ci struct ieee80211_sta *sta), 9598c2ecf20Sopenharmony_ci TP_ARGS(local, sdata, sta) 9608c2ecf20Sopenharmony_ci); 9618c2ecf20Sopenharmony_ci 9628c2ecf20Sopenharmony_ciDEFINE_EVENT(sta_event, drv_sta_rate_tbl_update, 9638c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 9648c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 9658c2ecf20Sopenharmony_ci struct ieee80211_sta *sta), 9668c2ecf20Sopenharmony_ci TP_ARGS(local, sdata, sta) 9678c2ecf20Sopenharmony_ci); 9688c2ecf20Sopenharmony_ci 9698c2ecf20Sopenharmony_ciTRACE_EVENT(drv_conf_tx, 9708c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 9718c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 9728c2ecf20Sopenharmony_ci u16 ac, const struct ieee80211_tx_queue_params *params), 9738c2ecf20Sopenharmony_ci 9748c2ecf20Sopenharmony_ci TP_ARGS(local, sdata, ac, params), 9758c2ecf20Sopenharmony_ci 9768c2ecf20Sopenharmony_ci TP_STRUCT__entry( 9778c2ecf20Sopenharmony_ci LOCAL_ENTRY 9788c2ecf20Sopenharmony_ci VIF_ENTRY 9798c2ecf20Sopenharmony_ci __field(u16, ac) 9808c2ecf20Sopenharmony_ci __field(u16, txop) 9818c2ecf20Sopenharmony_ci __field(u16, cw_min) 9828c2ecf20Sopenharmony_ci __field(u16, cw_max) 9838c2ecf20Sopenharmony_ci __field(u8, aifs) 9848c2ecf20Sopenharmony_ci __field(bool, uapsd) 9858c2ecf20Sopenharmony_ci ), 9868c2ecf20Sopenharmony_ci 9878c2ecf20Sopenharmony_ci TP_fast_assign( 9888c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 9898c2ecf20Sopenharmony_ci VIF_ASSIGN; 9908c2ecf20Sopenharmony_ci __entry->ac = ac; 9918c2ecf20Sopenharmony_ci __entry->txop = params->txop; 9928c2ecf20Sopenharmony_ci __entry->cw_max = params->cw_max; 9938c2ecf20Sopenharmony_ci __entry->cw_min = params->cw_min; 9948c2ecf20Sopenharmony_ci __entry->aifs = params->aifs; 9958c2ecf20Sopenharmony_ci __entry->uapsd = params->uapsd; 9968c2ecf20Sopenharmony_ci ), 9978c2ecf20Sopenharmony_ci 9988c2ecf20Sopenharmony_ci TP_printk( 9998c2ecf20Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT " AC:%d", 10008c2ecf20Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, __entry->ac 10018c2ecf20Sopenharmony_ci ) 10028c2ecf20Sopenharmony_ci); 10038c2ecf20Sopenharmony_ci 10048c2ecf20Sopenharmony_ciDEFINE_EVENT(local_sdata_evt, drv_get_tsf, 10058c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 10068c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata), 10078c2ecf20Sopenharmony_ci TP_ARGS(local, sdata) 10088c2ecf20Sopenharmony_ci); 10098c2ecf20Sopenharmony_ci 10108c2ecf20Sopenharmony_ciTRACE_EVENT(drv_set_tsf, 10118c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 10128c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 10138c2ecf20Sopenharmony_ci u64 tsf), 10148c2ecf20Sopenharmony_ci 10158c2ecf20Sopenharmony_ci TP_ARGS(local, sdata, tsf), 10168c2ecf20Sopenharmony_ci 10178c2ecf20Sopenharmony_ci TP_STRUCT__entry( 10188c2ecf20Sopenharmony_ci LOCAL_ENTRY 10198c2ecf20Sopenharmony_ci VIF_ENTRY 10208c2ecf20Sopenharmony_ci __field(u64, tsf) 10218c2ecf20Sopenharmony_ci ), 10228c2ecf20Sopenharmony_ci 10238c2ecf20Sopenharmony_ci TP_fast_assign( 10248c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 10258c2ecf20Sopenharmony_ci VIF_ASSIGN; 10268c2ecf20Sopenharmony_ci __entry->tsf = tsf; 10278c2ecf20Sopenharmony_ci ), 10288c2ecf20Sopenharmony_ci 10298c2ecf20Sopenharmony_ci TP_printk( 10308c2ecf20Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT " tsf:%llu", 10318c2ecf20Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, (unsigned long long)__entry->tsf 10328c2ecf20Sopenharmony_ci ) 10338c2ecf20Sopenharmony_ci); 10348c2ecf20Sopenharmony_ci 10358c2ecf20Sopenharmony_ciTRACE_EVENT(drv_offset_tsf, 10368c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 10378c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 10388c2ecf20Sopenharmony_ci s64 offset), 10398c2ecf20Sopenharmony_ci 10408c2ecf20Sopenharmony_ci TP_ARGS(local, sdata, offset), 10418c2ecf20Sopenharmony_ci 10428c2ecf20Sopenharmony_ci TP_STRUCT__entry( 10438c2ecf20Sopenharmony_ci LOCAL_ENTRY 10448c2ecf20Sopenharmony_ci VIF_ENTRY 10458c2ecf20Sopenharmony_ci __field(s64, tsf_offset) 10468c2ecf20Sopenharmony_ci ), 10478c2ecf20Sopenharmony_ci 10488c2ecf20Sopenharmony_ci TP_fast_assign( 10498c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 10508c2ecf20Sopenharmony_ci VIF_ASSIGN; 10518c2ecf20Sopenharmony_ci __entry->tsf_offset = offset; 10528c2ecf20Sopenharmony_ci ), 10538c2ecf20Sopenharmony_ci 10548c2ecf20Sopenharmony_ci TP_printk( 10558c2ecf20Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT " tsf offset:%lld", 10568c2ecf20Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, 10578c2ecf20Sopenharmony_ci (unsigned long long)__entry->tsf_offset 10588c2ecf20Sopenharmony_ci ) 10598c2ecf20Sopenharmony_ci); 10608c2ecf20Sopenharmony_ci 10618c2ecf20Sopenharmony_ciDEFINE_EVENT(local_sdata_evt, drv_reset_tsf, 10628c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 10638c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata), 10648c2ecf20Sopenharmony_ci TP_ARGS(local, sdata) 10658c2ecf20Sopenharmony_ci); 10668c2ecf20Sopenharmony_ci 10678c2ecf20Sopenharmony_ciDEFINE_EVENT(local_only_evt, drv_tx_last_beacon, 10688c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local), 10698c2ecf20Sopenharmony_ci TP_ARGS(local) 10708c2ecf20Sopenharmony_ci); 10718c2ecf20Sopenharmony_ci 10728c2ecf20Sopenharmony_ciTRACE_EVENT(drv_ampdu_action, 10738c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 10748c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 10758c2ecf20Sopenharmony_ci struct ieee80211_ampdu_params *params), 10768c2ecf20Sopenharmony_ci 10778c2ecf20Sopenharmony_ci TP_ARGS(local, sdata, params), 10788c2ecf20Sopenharmony_ci 10798c2ecf20Sopenharmony_ci TP_STRUCT__entry( 10808c2ecf20Sopenharmony_ci LOCAL_ENTRY 10818c2ecf20Sopenharmony_ci VIF_ENTRY 10828c2ecf20Sopenharmony_ci AMPDU_ACTION_ENTRY 10838c2ecf20Sopenharmony_ci ), 10848c2ecf20Sopenharmony_ci 10858c2ecf20Sopenharmony_ci TP_fast_assign( 10868c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 10878c2ecf20Sopenharmony_ci VIF_ASSIGN; 10888c2ecf20Sopenharmony_ci AMPDU_ACTION_ASSIGN; 10898c2ecf20Sopenharmony_ci ), 10908c2ecf20Sopenharmony_ci 10918c2ecf20Sopenharmony_ci TP_printk( 10928c2ecf20Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT AMPDU_ACTION_PR_FMT, 10938c2ecf20Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, AMPDU_ACTION_PR_ARG 10948c2ecf20Sopenharmony_ci ) 10958c2ecf20Sopenharmony_ci); 10968c2ecf20Sopenharmony_ci 10978c2ecf20Sopenharmony_ciTRACE_EVENT(drv_get_survey, 10988c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, int _idx, 10998c2ecf20Sopenharmony_ci struct survey_info *survey), 11008c2ecf20Sopenharmony_ci 11018c2ecf20Sopenharmony_ci TP_ARGS(local, _idx, survey), 11028c2ecf20Sopenharmony_ci 11038c2ecf20Sopenharmony_ci TP_STRUCT__entry( 11048c2ecf20Sopenharmony_ci LOCAL_ENTRY 11058c2ecf20Sopenharmony_ci __field(int, idx) 11068c2ecf20Sopenharmony_ci ), 11078c2ecf20Sopenharmony_ci 11088c2ecf20Sopenharmony_ci TP_fast_assign( 11098c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 11108c2ecf20Sopenharmony_ci __entry->idx = _idx; 11118c2ecf20Sopenharmony_ci ), 11128c2ecf20Sopenharmony_ci 11138c2ecf20Sopenharmony_ci TP_printk( 11148c2ecf20Sopenharmony_ci LOCAL_PR_FMT " idx:%d", 11158c2ecf20Sopenharmony_ci LOCAL_PR_ARG, __entry->idx 11168c2ecf20Sopenharmony_ci ) 11178c2ecf20Sopenharmony_ci); 11188c2ecf20Sopenharmony_ci 11198c2ecf20Sopenharmony_ciTRACE_EVENT(drv_flush, 11208c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 11218c2ecf20Sopenharmony_ci u32 queues, bool drop), 11228c2ecf20Sopenharmony_ci 11238c2ecf20Sopenharmony_ci TP_ARGS(local, queues, drop), 11248c2ecf20Sopenharmony_ci 11258c2ecf20Sopenharmony_ci TP_STRUCT__entry( 11268c2ecf20Sopenharmony_ci LOCAL_ENTRY 11278c2ecf20Sopenharmony_ci __field(bool, drop) 11288c2ecf20Sopenharmony_ci __field(u32, queues) 11298c2ecf20Sopenharmony_ci ), 11308c2ecf20Sopenharmony_ci 11318c2ecf20Sopenharmony_ci TP_fast_assign( 11328c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 11338c2ecf20Sopenharmony_ci __entry->drop = drop; 11348c2ecf20Sopenharmony_ci __entry->queues = queues; 11358c2ecf20Sopenharmony_ci ), 11368c2ecf20Sopenharmony_ci 11378c2ecf20Sopenharmony_ci TP_printk( 11388c2ecf20Sopenharmony_ci LOCAL_PR_FMT " queues:0x%x drop:%d", 11398c2ecf20Sopenharmony_ci LOCAL_PR_ARG, __entry->queues, __entry->drop 11408c2ecf20Sopenharmony_ci ) 11418c2ecf20Sopenharmony_ci); 11428c2ecf20Sopenharmony_ci 11438c2ecf20Sopenharmony_ciTRACE_EVENT(drv_channel_switch, 11448c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 11458c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 11468c2ecf20Sopenharmony_ci struct ieee80211_channel_switch *ch_switch), 11478c2ecf20Sopenharmony_ci 11488c2ecf20Sopenharmony_ci TP_ARGS(local, sdata, ch_switch), 11498c2ecf20Sopenharmony_ci 11508c2ecf20Sopenharmony_ci TP_STRUCT__entry( 11518c2ecf20Sopenharmony_ci LOCAL_ENTRY 11528c2ecf20Sopenharmony_ci VIF_ENTRY 11538c2ecf20Sopenharmony_ci CHANDEF_ENTRY 11548c2ecf20Sopenharmony_ci __field(u64, timestamp) 11558c2ecf20Sopenharmony_ci __field(u32, device_timestamp) 11568c2ecf20Sopenharmony_ci __field(bool, block_tx) 11578c2ecf20Sopenharmony_ci __field(u8, count) 11588c2ecf20Sopenharmony_ci ), 11598c2ecf20Sopenharmony_ci 11608c2ecf20Sopenharmony_ci TP_fast_assign( 11618c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 11628c2ecf20Sopenharmony_ci VIF_ASSIGN; 11638c2ecf20Sopenharmony_ci CHANDEF_ASSIGN(&ch_switch->chandef) 11648c2ecf20Sopenharmony_ci __entry->timestamp = ch_switch->timestamp; 11658c2ecf20Sopenharmony_ci __entry->device_timestamp = ch_switch->device_timestamp; 11668c2ecf20Sopenharmony_ci __entry->block_tx = ch_switch->block_tx; 11678c2ecf20Sopenharmony_ci __entry->count = ch_switch->count; 11688c2ecf20Sopenharmony_ci ), 11698c2ecf20Sopenharmony_ci 11708c2ecf20Sopenharmony_ci TP_printk( 11718c2ecf20Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT " new " CHANDEF_PR_FMT " count:%d", 11728c2ecf20Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, CHANDEF_PR_ARG, __entry->count 11738c2ecf20Sopenharmony_ci ) 11748c2ecf20Sopenharmony_ci); 11758c2ecf20Sopenharmony_ci 11768c2ecf20Sopenharmony_ciTRACE_EVENT(drv_set_antenna, 11778c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, u32 tx_ant, u32 rx_ant, int ret), 11788c2ecf20Sopenharmony_ci 11798c2ecf20Sopenharmony_ci TP_ARGS(local, tx_ant, rx_ant, ret), 11808c2ecf20Sopenharmony_ci 11818c2ecf20Sopenharmony_ci TP_STRUCT__entry( 11828c2ecf20Sopenharmony_ci LOCAL_ENTRY 11838c2ecf20Sopenharmony_ci __field(u32, tx_ant) 11848c2ecf20Sopenharmony_ci __field(u32, rx_ant) 11858c2ecf20Sopenharmony_ci __field(int, ret) 11868c2ecf20Sopenharmony_ci ), 11878c2ecf20Sopenharmony_ci 11888c2ecf20Sopenharmony_ci TP_fast_assign( 11898c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 11908c2ecf20Sopenharmony_ci __entry->tx_ant = tx_ant; 11918c2ecf20Sopenharmony_ci __entry->rx_ant = rx_ant; 11928c2ecf20Sopenharmony_ci __entry->ret = ret; 11938c2ecf20Sopenharmony_ci ), 11948c2ecf20Sopenharmony_ci 11958c2ecf20Sopenharmony_ci TP_printk( 11968c2ecf20Sopenharmony_ci LOCAL_PR_FMT " tx_ant:%d rx_ant:%d ret:%d", 11978c2ecf20Sopenharmony_ci LOCAL_PR_ARG, __entry->tx_ant, __entry->rx_ant, __entry->ret 11988c2ecf20Sopenharmony_ci ) 11998c2ecf20Sopenharmony_ci); 12008c2ecf20Sopenharmony_ci 12018c2ecf20Sopenharmony_ciTRACE_EVENT(drv_get_antenna, 12028c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, u32 tx_ant, u32 rx_ant, int ret), 12038c2ecf20Sopenharmony_ci 12048c2ecf20Sopenharmony_ci TP_ARGS(local, tx_ant, rx_ant, ret), 12058c2ecf20Sopenharmony_ci 12068c2ecf20Sopenharmony_ci TP_STRUCT__entry( 12078c2ecf20Sopenharmony_ci LOCAL_ENTRY 12088c2ecf20Sopenharmony_ci __field(u32, tx_ant) 12098c2ecf20Sopenharmony_ci __field(u32, rx_ant) 12108c2ecf20Sopenharmony_ci __field(int, ret) 12118c2ecf20Sopenharmony_ci ), 12128c2ecf20Sopenharmony_ci 12138c2ecf20Sopenharmony_ci TP_fast_assign( 12148c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 12158c2ecf20Sopenharmony_ci __entry->tx_ant = tx_ant; 12168c2ecf20Sopenharmony_ci __entry->rx_ant = rx_ant; 12178c2ecf20Sopenharmony_ci __entry->ret = ret; 12188c2ecf20Sopenharmony_ci ), 12198c2ecf20Sopenharmony_ci 12208c2ecf20Sopenharmony_ci TP_printk( 12218c2ecf20Sopenharmony_ci LOCAL_PR_FMT " tx_ant:%d rx_ant:%d ret:%d", 12228c2ecf20Sopenharmony_ci LOCAL_PR_ARG, __entry->tx_ant, __entry->rx_ant, __entry->ret 12238c2ecf20Sopenharmony_ci ) 12248c2ecf20Sopenharmony_ci); 12258c2ecf20Sopenharmony_ci 12268c2ecf20Sopenharmony_ciTRACE_EVENT(drv_remain_on_channel, 12278c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 12288c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 12298c2ecf20Sopenharmony_ci struct ieee80211_channel *chan, 12308c2ecf20Sopenharmony_ci unsigned int duration, 12318c2ecf20Sopenharmony_ci enum ieee80211_roc_type type), 12328c2ecf20Sopenharmony_ci 12338c2ecf20Sopenharmony_ci TP_ARGS(local, sdata, chan, duration, type), 12348c2ecf20Sopenharmony_ci 12358c2ecf20Sopenharmony_ci TP_STRUCT__entry( 12368c2ecf20Sopenharmony_ci LOCAL_ENTRY 12378c2ecf20Sopenharmony_ci VIF_ENTRY 12388c2ecf20Sopenharmony_ci __field(int, center_freq) 12398c2ecf20Sopenharmony_ci __field(int, freq_offset) 12408c2ecf20Sopenharmony_ci __field(unsigned int, duration) 12418c2ecf20Sopenharmony_ci __field(u32, type) 12428c2ecf20Sopenharmony_ci ), 12438c2ecf20Sopenharmony_ci 12448c2ecf20Sopenharmony_ci TP_fast_assign( 12458c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 12468c2ecf20Sopenharmony_ci VIF_ASSIGN; 12478c2ecf20Sopenharmony_ci __entry->center_freq = chan->center_freq; 12488c2ecf20Sopenharmony_ci __entry->freq_offset = chan->freq_offset; 12498c2ecf20Sopenharmony_ci __entry->duration = duration; 12508c2ecf20Sopenharmony_ci __entry->type = type; 12518c2ecf20Sopenharmony_ci ), 12528c2ecf20Sopenharmony_ci 12538c2ecf20Sopenharmony_ci TP_printk( 12548c2ecf20Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT " freq:%d.%03dMHz duration:%dms type=%d", 12558c2ecf20Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, 12568c2ecf20Sopenharmony_ci __entry->center_freq, __entry->freq_offset, 12578c2ecf20Sopenharmony_ci __entry->duration, __entry->type 12588c2ecf20Sopenharmony_ci ) 12598c2ecf20Sopenharmony_ci); 12608c2ecf20Sopenharmony_ci 12618c2ecf20Sopenharmony_ciDEFINE_EVENT(local_sdata_evt, drv_cancel_remain_on_channel, 12628c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 12638c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata), 12648c2ecf20Sopenharmony_ci TP_ARGS(local, sdata) 12658c2ecf20Sopenharmony_ci); 12668c2ecf20Sopenharmony_ci 12678c2ecf20Sopenharmony_ciTRACE_EVENT(drv_set_ringparam, 12688c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, u32 tx, u32 rx), 12698c2ecf20Sopenharmony_ci 12708c2ecf20Sopenharmony_ci TP_ARGS(local, tx, rx), 12718c2ecf20Sopenharmony_ci 12728c2ecf20Sopenharmony_ci TP_STRUCT__entry( 12738c2ecf20Sopenharmony_ci LOCAL_ENTRY 12748c2ecf20Sopenharmony_ci __field(u32, tx) 12758c2ecf20Sopenharmony_ci __field(u32, rx) 12768c2ecf20Sopenharmony_ci ), 12778c2ecf20Sopenharmony_ci 12788c2ecf20Sopenharmony_ci TP_fast_assign( 12798c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 12808c2ecf20Sopenharmony_ci __entry->tx = tx; 12818c2ecf20Sopenharmony_ci __entry->rx = rx; 12828c2ecf20Sopenharmony_ci ), 12838c2ecf20Sopenharmony_ci 12848c2ecf20Sopenharmony_ci TP_printk( 12858c2ecf20Sopenharmony_ci LOCAL_PR_FMT " tx:%d rx %d", 12868c2ecf20Sopenharmony_ci LOCAL_PR_ARG, __entry->tx, __entry->rx 12878c2ecf20Sopenharmony_ci ) 12888c2ecf20Sopenharmony_ci); 12898c2ecf20Sopenharmony_ci 12908c2ecf20Sopenharmony_ciTRACE_EVENT(drv_get_ringparam, 12918c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, u32 *tx, u32 *tx_max, 12928c2ecf20Sopenharmony_ci u32 *rx, u32 *rx_max), 12938c2ecf20Sopenharmony_ci 12948c2ecf20Sopenharmony_ci TP_ARGS(local, tx, tx_max, rx, rx_max), 12958c2ecf20Sopenharmony_ci 12968c2ecf20Sopenharmony_ci TP_STRUCT__entry( 12978c2ecf20Sopenharmony_ci LOCAL_ENTRY 12988c2ecf20Sopenharmony_ci __field(u32, tx) 12998c2ecf20Sopenharmony_ci __field(u32, tx_max) 13008c2ecf20Sopenharmony_ci __field(u32, rx) 13018c2ecf20Sopenharmony_ci __field(u32, rx_max) 13028c2ecf20Sopenharmony_ci ), 13038c2ecf20Sopenharmony_ci 13048c2ecf20Sopenharmony_ci TP_fast_assign( 13058c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 13068c2ecf20Sopenharmony_ci __entry->tx = *tx; 13078c2ecf20Sopenharmony_ci __entry->tx_max = *tx_max; 13088c2ecf20Sopenharmony_ci __entry->rx = *rx; 13098c2ecf20Sopenharmony_ci __entry->rx_max = *rx_max; 13108c2ecf20Sopenharmony_ci ), 13118c2ecf20Sopenharmony_ci 13128c2ecf20Sopenharmony_ci TP_printk( 13138c2ecf20Sopenharmony_ci LOCAL_PR_FMT " tx:%d tx_max %d rx %d rx_max %d", 13148c2ecf20Sopenharmony_ci LOCAL_PR_ARG, 13158c2ecf20Sopenharmony_ci __entry->tx, __entry->tx_max, __entry->rx, __entry->rx_max 13168c2ecf20Sopenharmony_ci ) 13178c2ecf20Sopenharmony_ci); 13188c2ecf20Sopenharmony_ci 13198c2ecf20Sopenharmony_ciDEFINE_EVENT(local_only_evt, drv_tx_frames_pending, 13208c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local), 13218c2ecf20Sopenharmony_ci TP_ARGS(local) 13228c2ecf20Sopenharmony_ci); 13238c2ecf20Sopenharmony_ci 13248c2ecf20Sopenharmony_ciDEFINE_EVENT(local_only_evt, drv_offchannel_tx_cancel_wait, 13258c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local), 13268c2ecf20Sopenharmony_ci TP_ARGS(local) 13278c2ecf20Sopenharmony_ci); 13288c2ecf20Sopenharmony_ci 13298c2ecf20Sopenharmony_ciTRACE_EVENT(drv_set_bitrate_mask, 13308c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 13318c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 13328c2ecf20Sopenharmony_ci const struct cfg80211_bitrate_mask *mask), 13338c2ecf20Sopenharmony_ci 13348c2ecf20Sopenharmony_ci TP_ARGS(local, sdata, mask), 13358c2ecf20Sopenharmony_ci 13368c2ecf20Sopenharmony_ci TP_STRUCT__entry( 13378c2ecf20Sopenharmony_ci LOCAL_ENTRY 13388c2ecf20Sopenharmony_ci VIF_ENTRY 13398c2ecf20Sopenharmony_ci __field(u32, legacy_2g) 13408c2ecf20Sopenharmony_ci __field(u32, legacy_5g) 13418c2ecf20Sopenharmony_ci ), 13428c2ecf20Sopenharmony_ci 13438c2ecf20Sopenharmony_ci TP_fast_assign( 13448c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 13458c2ecf20Sopenharmony_ci VIF_ASSIGN; 13468c2ecf20Sopenharmony_ci __entry->legacy_2g = mask->control[NL80211_BAND_2GHZ].legacy; 13478c2ecf20Sopenharmony_ci __entry->legacy_5g = mask->control[NL80211_BAND_5GHZ].legacy; 13488c2ecf20Sopenharmony_ci ), 13498c2ecf20Sopenharmony_ci 13508c2ecf20Sopenharmony_ci TP_printk( 13518c2ecf20Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT " 2G Mask:0x%x 5G Mask:0x%x", 13528c2ecf20Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, __entry->legacy_2g, __entry->legacy_5g 13538c2ecf20Sopenharmony_ci ) 13548c2ecf20Sopenharmony_ci); 13558c2ecf20Sopenharmony_ci 13568c2ecf20Sopenharmony_ciTRACE_EVENT(drv_set_rekey_data, 13578c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 13588c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 13598c2ecf20Sopenharmony_ci struct cfg80211_gtk_rekey_data *data), 13608c2ecf20Sopenharmony_ci 13618c2ecf20Sopenharmony_ci TP_ARGS(local, sdata, data), 13628c2ecf20Sopenharmony_ci 13638c2ecf20Sopenharmony_ci TP_STRUCT__entry( 13648c2ecf20Sopenharmony_ci LOCAL_ENTRY 13658c2ecf20Sopenharmony_ci VIF_ENTRY 13668c2ecf20Sopenharmony_ci __array(u8, kek, NL80211_KEK_LEN) 13678c2ecf20Sopenharmony_ci __array(u8, kck, NL80211_KCK_LEN) 13688c2ecf20Sopenharmony_ci __array(u8, replay_ctr, NL80211_REPLAY_CTR_LEN) 13698c2ecf20Sopenharmony_ci ), 13708c2ecf20Sopenharmony_ci 13718c2ecf20Sopenharmony_ci TP_fast_assign( 13728c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 13738c2ecf20Sopenharmony_ci VIF_ASSIGN; 13748c2ecf20Sopenharmony_ci memcpy(__entry->kek, data->kek, NL80211_KEK_LEN); 13758c2ecf20Sopenharmony_ci memcpy(__entry->kck, data->kck, NL80211_KCK_LEN); 13768c2ecf20Sopenharmony_ci memcpy(__entry->replay_ctr, data->replay_ctr, 13778c2ecf20Sopenharmony_ci NL80211_REPLAY_CTR_LEN); 13788c2ecf20Sopenharmony_ci ), 13798c2ecf20Sopenharmony_ci 13808c2ecf20Sopenharmony_ci TP_printk(LOCAL_PR_FMT VIF_PR_FMT, 13818c2ecf20Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG) 13828c2ecf20Sopenharmony_ci); 13838c2ecf20Sopenharmony_ci 13848c2ecf20Sopenharmony_ciTRACE_EVENT(drv_event_callback, 13858c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 13868c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 13878c2ecf20Sopenharmony_ci const struct ieee80211_event *_event), 13888c2ecf20Sopenharmony_ci 13898c2ecf20Sopenharmony_ci TP_ARGS(local, sdata, _event), 13908c2ecf20Sopenharmony_ci 13918c2ecf20Sopenharmony_ci TP_STRUCT__entry( 13928c2ecf20Sopenharmony_ci LOCAL_ENTRY 13938c2ecf20Sopenharmony_ci VIF_ENTRY 13948c2ecf20Sopenharmony_ci __field(u32, type) 13958c2ecf20Sopenharmony_ci ), 13968c2ecf20Sopenharmony_ci 13978c2ecf20Sopenharmony_ci TP_fast_assign( 13988c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 13998c2ecf20Sopenharmony_ci VIF_ASSIGN; 14008c2ecf20Sopenharmony_ci __entry->type = _event->type; 14018c2ecf20Sopenharmony_ci ), 14028c2ecf20Sopenharmony_ci 14038c2ecf20Sopenharmony_ci TP_printk( 14048c2ecf20Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT " event:%d", 14058c2ecf20Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, __entry->type 14068c2ecf20Sopenharmony_ci ) 14078c2ecf20Sopenharmony_ci); 14088c2ecf20Sopenharmony_ci 14098c2ecf20Sopenharmony_ciDECLARE_EVENT_CLASS(release_evt, 14108c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 14118c2ecf20Sopenharmony_ci struct ieee80211_sta *sta, 14128c2ecf20Sopenharmony_ci u16 tids, int num_frames, 14138c2ecf20Sopenharmony_ci enum ieee80211_frame_release_type reason, 14148c2ecf20Sopenharmony_ci bool more_data), 14158c2ecf20Sopenharmony_ci 14168c2ecf20Sopenharmony_ci TP_ARGS(local, sta, tids, num_frames, reason, more_data), 14178c2ecf20Sopenharmony_ci 14188c2ecf20Sopenharmony_ci TP_STRUCT__entry( 14198c2ecf20Sopenharmony_ci LOCAL_ENTRY 14208c2ecf20Sopenharmony_ci STA_ENTRY 14218c2ecf20Sopenharmony_ci __field(u16, tids) 14228c2ecf20Sopenharmony_ci __field(int, num_frames) 14238c2ecf20Sopenharmony_ci __field(int, reason) 14248c2ecf20Sopenharmony_ci __field(bool, more_data) 14258c2ecf20Sopenharmony_ci ), 14268c2ecf20Sopenharmony_ci 14278c2ecf20Sopenharmony_ci TP_fast_assign( 14288c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 14298c2ecf20Sopenharmony_ci STA_ASSIGN; 14308c2ecf20Sopenharmony_ci __entry->tids = tids; 14318c2ecf20Sopenharmony_ci __entry->num_frames = num_frames; 14328c2ecf20Sopenharmony_ci __entry->reason = reason; 14338c2ecf20Sopenharmony_ci __entry->more_data = more_data; 14348c2ecf20Sopenharmony_ci ), 14358c2ecf20Sopenharmony_ci 14368c2ecf20Sopenharmony_ci TP_printk( 14378c2ecf20Sopenharmony_ci LOCAL_PR_FMT STA_PR_FMT 14388c2ecf20Sopenharmony_ci " TIDs:0x%.4x frames:%d reason:%d more:%d", 14398c2ecf20Sopenharmony_ci LOCAL_PR_ARG, STA_PR_ARG, __entry->tids, __entry->num_frames, 14408c2ecf20Sopenharmony_ci __entry->reason, __entry->more_data 14418c2ecf20Sopenharmony_ci ) 14428c2ecf20Sopenharmony_ci); 14438c2ecf20Sopenharmony_ci 14448c2ecf20Sopenharmony_ciDEFINE_EVENT(release_evt, drv_release_buffered_frames, 14458c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 14468c2ecf20Sopenharmony_ci struct ieee80211_sta *sta, 14478c2ecf20Sopenharmony_ci u16 tids, int num_frames, 14488c2ecf20Sopenharmony_ci enum ieee80211_frame_release_type reason, 14498c2ecf20Sopenharmony_ci bool more_data), 14508c2ecf20Sopenharmony_ci 14518c2ecf20Sopenharmony_ci TP_ARGS(local, sta, tids, num_frames, reason, more_data) 14528c2ecf20Sopenharmony_ci); 14538c2ecf20Sopenharmony_ci 14548c2ecf20Sopenharmony_ciDEFINE_EVENT(release_evt, drv_allow_buffered_frames, 14558c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 14568c2ecf20Sopenharmony_ci struct ieee80211_sta *sta, 14578c2ecf20Sopenharmony_ci u16 tids, int num_frames, 14588c2ecf20Sopenharmony_ci enum ieee80211_frame_release_type reason, 14598c2ecf20Sopenharmony_ci bool more_data), 14608c2ecf20Sopenharmony_ci 14618c2ecf20Sopenharmony_ci TP_ARGS(local, sta, tids, num_frames, reason, more_data) 14628c2ecf20Sopenharmony_ci); 14638c2ecf20Sopenharmony_ci 14648c2ecf20Sopenharmony_ciTRACE_EVENT(drv_mgd_prepare_tx, 14658c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 14668c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 14678c2ecf20Sopenharmony_ci u16 duration), 14688c2ecf20Sopenharmony_ci 14698c2ecf20Sopenharmony_ci TP_ARGS(local, sdata, duration), 14708c2ecf20Sopenharmony_ci 14718c2ecf20Sopenharmony_ci TP_STRUCT__entry( 14728c2ecf20Sopenharmony_ci LOCAL_ENTRY 14738c2ecf20Sopenharmony_ci VIF_ENTRY 14748c2ecf20Sopenharmony_ci __field(u32, duration) 14758c2ecf20Sopenharmony_ci ), 14768c2ecf20Sopenharmony_ci 14778c2ecf20Sopenharmony_ci TP_fast_assign( 14788c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 14798c2ecf20Sopenharmony_ci VIF_ASSIGN; 14808c2ecf20Sopenharmony_ci __entry->duration = duration; 14818c2ecf20Sopenharmony_ci ), 14828c2ecf20Sopenharmony_ci 14838c2ecf20Sopenharmony_ci TP_printk( 14848c2ecf20Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT " duration: %u", 14858c2ecf20Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, __entry->duration 14868c2ecf20Sopenharmony_ci ) 14878c2ecf20Sopenharmony_ci); 14888c2ecf20Sopenharmony_ci 14898c2ecf20Sopenharmony_ciDEFINE_EVENT(local_sdata_evt, drv_mgd_protect_tdls_discover, 14908c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 14918c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata), 14928c2ecf20Sopenharmony_ci 14938c2ecf20Sopenharmony_ci TP_ARGS(local, sdata) 14948c2ecf20Sopenharmony_ci); 14958c2ecf20Sopenharmony_ci 14968c2ecf20Sopenharmony_ciDECLARE_EVENT_CLASS(local_chanctx, 14978c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 14988c2ecf20Sopenharmony_ci struct ieee80211_chanctx *ctx), 14998c2ecf20Sopenharmony_ci 15008c2ecf20Sopenharmony_ci TP_ARGS(local, ctx), 15018c2ecf20Sopenharmony_ci 15028c2ecf20Sopenharmony_ci TP_STRUCT__entry( 15038c2ecf20Sopenharmony_ci LOCAL_ENTRY 15048c2ecf20Sopenharmony_ci CHANCTX_ENTRY 15058c2ecf20Sopenharmony_ci ), 15068c2ecf20Sopenharmony_ci 15078c2ecf20Sopenharmony_ci TP_fast_assign( 15088c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 15098c2ecf20Sopenharmony_ci CHANCTX_ASSIGN; 15108c2ecf20Sopenharmony_ci ), 15118c2ecf20Sopenharmony_ci 15128c2ecf20Sopenharmony_ci TP_printk( 15138c2ecf20Sopenharmony_ci LOCAL_PR_FMT CHANCTX_PR_FMT, 15148c2ecf20Sopenharmony_ci LOCAL_PR_ARG, CHANCTX_PR_ARG 15158c2ecf20Sopenharmony_ci ) 15168c2ecf20Sopenharmony_ci); 15178c2ecf20Sopenharmony_ci 15188c2ecf20Sopenharmony_ciDEFINE_EVENT(local_chanctx, drv_add_chanctx, 15198c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 15208c2ecf20Sopenharmony_ci struct ieee80211_chanctx *ctx), 15218c2ecf20Sopenharmony_ci TP_ARGS(local, ctx) 15228c2ecf20Sopenharmony_ci); 15238c2ecf20Sopenharmony_ci 15248c2ecf20Sopenharmony_ciDEFINE_EVENT(local_chanctx, drv_remove_chanctx, 15258c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 15268c2ecf20Sopenharmony_ci struct ieee80211_chanctx *ctx), 15278c2ecf20Sopenharmony_ci TP_ARGS(local, ctx) 15288c2ecf20Sopenharmony_ci); 15298c2ecf20Sopenharmony_ci 15308c2ecf20Sopenharmony_ciTRACE_EVENT(drv_change_chanctx, 15318c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 15328c2ecf20Sopenharmony_ci struct ieee80211_chanctx *ctx, 15338c2ecf20Sopenharmony_ci u32 changed), 15348c2ecf20Sopenharmony_ci 15358c2ecf20Sopenharmony_ci TP_ARGS(local, ctx, changed), 15368c2ecf20Sopenharmony_ci 15378c2ecf20Sopenharmony_ci TP_STRUCT__entry( 15388c2ecf20Sopenharmony_ci LOCAL_ENTRY 15398c2ecf20Sopenharmony_ci CHANCTX_ENTRY 15408c2ecf20Sopenharmony_ci __field(u32, changed) 15418c2ecf20Sopenharmony_ci ), 15428c2ecf20Sopenharmony_ci 15438c2ecf20Sopenharmony_ci TP_fast_assign( 15448c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 15458c2ecf20Sopenharmony_ci CHANCTX_ASSIGN; 15468c2ecf20Sopenharmony_ci __entry->changed = changed; 15478c2ecf20Sopenharmony_ci ), 15488c2ecf20Sopenharmony_ci 15498c2ecf20Sopenharmony_ci TP_printk( 15508c2ecf20Sopenharmony_ci LOCAL_PR_FMT CHANCTX_PR_FMT " changed:%#x", 15518c2ecf20Sopenharmony_ci LOCAL_PR_ARG, CHANCTX_PR_ARG, __entry->changed 15528c2ecf20Sopenharmony_ci ) 15538c2ecf20Sopenharmony_ci); 15548c2ecf20Sopenharmony_ci 15558c2ecf20Sopenharmony_ci#if !defined(__TRACE_VIF_ENTRY) 15568c2ecf20Sopenharmony_ci#define __TRACE_VIF_ENTRY 15578c2ecf20Sopenharmony_cistruct trace_vif_entry { 15588c2ecf20Sopenharmony_ci enum nl80211_iftype vif_type; 15598c2ecf20Sopenharmony_ci bool p2p; 15608c2ecf20Sopenharmony_ci char vif_name[IFNAMSIZ]; 15618c2ecf20Sopenharmony_ci} __packed; 15628c2ecf20Sopenharmony_ci 15638c2ecf20Sopenharmony_cistruct trace_chandef_entry { 15648c2ecf20Sopenharmony_ci u32 control_freq; 15658c2ecf20Sopenharmony_ci u32 freq_offset; 15668c2ecf20Sopenharmony_ci u32 chan_width; 15678c2ecf20Sopenharmony_ci u32 center_freq1; 15688c2ecf20Sopenharmony_ci u32 freq1_offset; 15698c2ecf20Sopenharmony_ci u32 center_freq2; 15708c2ecf20Sopenharmony_ci} __packed; 15718c2ecf20Sopenharmony_ci 15728c2ecf20Sopenharmony_cistruct trace_switch_entry { 15738c2ecf20Sopenharmony_ci struct trace_vif_entry vif; 15748c2ecf20Sopenharmony_ci struct trace_chandef_entry old_chandef; 15758c2ecf20Sopenharmony_ci struct trace_chandef_entry new_chandef; 15768c2ecf20Sopenharmony_ci} __packed; 15778c2ecf20Sopenharmony_ci 15788c2ecf20Sopenharmony_ci#define SWITCH_ENTRY_ASSIGN(to, from) local_vifs[i].to = vifs[i].from 15798c2ecf20Sopenharmony_ci#endif 15808c2ecf20Sopenharmony_ci 15818c2ecf20Sopenharmony_ciTRACE_EVENT(drv_switch_vif_chanctx, 15828c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 15838c2ecf20Sopenharmony_ci struct ieee80211_vif_chanctx_switch *vifs, 15848c2ecf20Sopenharmony_ci int n_vifs, enum ieee80211_chanctx_switch_mode mode), 15858c2ecf20Sopenharmony_ci TP_ARGS(local, vifs, n_vifs, mode), 15868c2ecf20Sopenharmony_ci 15878c2ecf20Sopenharmony_ci TP_STRUCT__entry( 15888c2ecf20Sopenharmony_ci LOCAL_ENTRY 15898c2ecf20Sopenharmony_ci __field(int, n_vifs) 15908c2ecf20Sopenharmony_ci __field(u32, mode) 15918c2ecf20Sopenharmony_ci __dynamic_array(u8, vifs, 15928c2ecf20Sopenharmony_ci sizeof(struct trace_switch_entry) * n_vifs) 15938c2ecf20Sopenharmony_ci ), 15948c2ecf20Sopenharmony_ci 15958c2ecf20Sopenharmony_ci TP_fast_assign( 15968c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 15978c2ecf20Sopenharmony_ci __entry->n_vifs = n_vifs; 15988c2ecf20Sopenharmony_ci __entry->mode = mode; 15998c2ecf20Sopenharmony_ci { 16008c2ecf20Sopenharmony_ci struct trace_switch_entry *local_vifs = 16018c2ecf20Sopenharmony_ci __get_dynamic_array(vifs); 16028c2ecf20Sopenharmony_ci int i; 16038c2ecf20Sopenharmony_ci 16048c2ecf20Sopenharmony_ci for (i = 0; i < n_vifs; i++) { 16058c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata; 16068c2ecf20Sopenharmony_ci 16078c2ecf20Sopenharmony_ci sdata = container_of(vifs[i].vif, 16088c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data, 16098c2ecf20Sopenharmony_ci vif); 16108c2ecf20Sopenharmony_ci 16118c2ecf20Sopenharmony_ci SWITCH_ENTRY_ASSIGN(vif.vif_type, vif->type); 16128c2ecf20Sopenharmony_ci SWITCH_ENTRY_ASSIGN(vif.p2p, vif->p2p); 16138c2ecf20Sopenharmony_ci strncpy(local_vifs[i].vif.vif_name, 16148c2ecf20Sopenharmony_ci sdata->name, 16158c2ecf20Sopenharmony_ci sizeof(local_vifs[i].vif.vif_name)); 16168c2ecf20Sopenharmony_ci SWITCH_ENTRY_ASSIGN(old_chandef.control_freq, 16178c2ecf20Sopenharmony_ci old_ctx->def.chan->center_freq); 16188c2ecf20Sopenharmony_ci SWITCH_ENTRY_ASSIGN(old_chandef.freq_offset, 16198c2ecf20Sopenharmony_ci old_ctx->def.chan->freq_offset); 16208c2ecf20Sopenharmony_ci SWITCH_ENTRY_ASSIGN(old_chandef.chan_width, 16218c2ecf20Sopenharmony_ci old_ctx->def.width); 16228c2ecf20Sopenharmony_ci SWITCH_ENTRY_ASSIGN(old_chandef.center_freq1, 16238c2ecf20Sopenharmony_ci old_ctx->def.center_freq1); 16248c2ecf20Sopenharmony_ci SWITCH_ENTRY_ASSIGN(old_chandef.freq1_offset, 16258c2ecf20Sopenharmony_ci old_ctx->def.freq1_offset); 16268c2ecf20Sopenharmony_ci SWITCH_ENTRY_ASSIGN(old_chandef.center_freq2, 16278c2ecf20Sopenharmony_ci old_ctx->def.center_freq2); 16288c2ecf20Sopenharmony_ci SWITCH_ENTRY_ASSIGN(new_chandef.control_freq, 16298c2ecf20Sopenharmony_ci new_ctx->def.chan->center_freq); 16308c2ecf20Sopenharmony_ci SWITCH_ENTRY_ASSIGN(new_chandef.freq_offset, 16318c2ecf20Sopenharmony_ci new_ctx->def.chan->freq_offset); 16328c2ecf20Sopenharmony_ci SWITCH_ENTRY_ASSIGN(new_chandef.chan_width, 16338c2ecf20Sopenharmony_ci new_ctx->def.width); 16348c2ecf20Sopenharmony_ci SWITCH_ENTRY_ASSIGN(new_chandef.center_freq1, 16358c2ecf20Sopenharmony_ci new_ctx->def.center_freq1); 16368c2ecf20Sopenharmony_ci SWITCH_ENTRY_ASSIGN(new_chandef.freq1_offset, 16378c2ecf20Sopenharmony_ci new_ctx->def.freq1_offset); 16388c2ecf20Sopenharmony_ci SWITCH_ENTRY_ASSIGN(new_chandef.center_freq2, 16398c2ecf20Sopenharmony_ci new_ctx->def.center_freq2); 16408c2ecf20Sopenharmony_ci } 16418c2ecf20Sopenharmony_ci } 16428c2ecf20Sopenharmony_ci ), 16438c2ecf20Sopenharmony_ci 16448c2ecf20Sopenharmony_ci TP_printk( 16458c2ecf20Sopenharmony_ci LOCAL_PR_FMT " n_vifs:%d mode:%d", 16468c2ecf20Sopenharmony_ci LOCAL_PR_ARG, __entry->n_vifs, __entry->mode 16478c2ecf20Sopenharmony_ci ) 16488c2ecf20Sopenharmony_ci); 16498c2ecf20Sopenharmony_ci 16508c2ecf20Sopenharmony_ciDECLARE_EVENT_CLASS(local_sdata_chanctx, 16518c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 16528c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 16538c2ecf20Sopenharmony_ci struct ieee80211_chanctx *ctx), 16548c2ecf20Sopenharmony_ci 16558c2ecf20Sopenharmony_ci TP_ARGS(local, sdata, ctx), 16568c2ecf20Sopenharmony_ci 16578c2ecf20Sopenharmony_ci TP_STRUCT__entry( 16588c2ecf20Sopenharmony_ci LOCAL_ENTRY 16598c2ecf20Sopenharmony_ci VIF_ENTRY 16608c2ecf20Sopenharmony_ci CHANCTX_ENTRY 16618c2ecf20Sopenharmony_ci ), 16628c2ecf20Sopenharmony_ci 16638c2ecf20Sopenharmony_ci TP_fast_assign( 16648c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 16658c2ecf20Sopenharmony_ci VIF_ASSIGN; 16668c2ecf20Sopenharmony_ci CHANCTX_ASSIGN; 16678c2ecf20Sopenharmony_ci ), 16688c2ecf20Sopenharmony_ci 16698c2ecf20Sopenharmony_ci TP_printk( 16708c2ecf20Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT CHANCTX_PR_FMT, 16718c2ecf20Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, CHANCTX_PR_ARG 16728c2ecf20Sopenharmony_ci ) 16738c2ecf20Sopenharmony_ci); 16748c2ecf20Sopenharmony_ci 16758c2ecf20Sopenharmony_ciDEFINE_EVENT(local_sdata_chanctx, drv_assign_vif_chanctx, 16768c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 16778c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 16788c2ecf20Sopenharmony_ci struct ieee80211_chanctx *ctx), 16798c2ecf20Sopenharmony_ci TP_ARGS(local, sdata, ctx) 16808c2ecf20Sopenharmony_ci); 16818c2ecf20Sopenharmony_ci 16828c2ecf20Sopenharmony_ciDEFINE_EVENT(local_sdata_chanctx, drv_unassign_vif_chanctx, 16838c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 16848c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 16858c2ecf20Sopenharmony_ci struct ieee80211_chanctx *ctx), 16868c2ecf20Sopenharmony_ci TP_ARGS(local, sdata, ctx) 16878c2ecf20Sopenharmony_ci); 16888c2ecf20Sopenharmony_ci 16898c2ecf20Sopenharmony_ciTRACE_EVENT(drv_start_ap, 16908c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 16918c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 16928c2ecf20Sopenharmony_ci struct ieee80211_bss_conf *info), 16938c2ecf20Sopenharmony_ci 16948c2ecf20Sopenharmony_ci TP_ARGS(local, sdata, info), 16958c2ecf20Sopenharmony_ci 16968c2ecf20Sopenharmony_ci TP_STRUCT__entry( 16978c2ecf20Sopenharmony_ci LOCAL_ENTRY 16988c2ecf20Sopenharmony_ci VIF_ENTRY 16998c2ecf20Sopenharmony_ci __field(u8, dtimper) 17008c2ecf20Sopenharmony_ci __field(u16, bcnint) 17018c2ecf20Sopenharmony_ci __dynamic_array(u8, ssid, info->ssid_len) 17028c2ecf20Sopenharmony_ci __field(bool, hidden_ssid) 17038c2ecf20Sopenharmony_ci ), 17048c2ecf20Sopenharmony_ci 17058c2ecf20Sopenharmony_ci TP_fast_assign( 17068c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 17078c2ecf20Sopenharmony_ci VIF_ASSIGN; 17088c2ecf20Sopenharmony_ci __entry->dtimper = info->dtim_period; 17098c2ecf20Sopenharmony_ci __entry->bcnint = info->beacon_int; 17108c2ecf20Sopenharmony_ci memcpy(__get_dynamic_array(ssid), info->ssid, info->ssid_len); 17118c2ecf20Sopenharmony_ci __entry->hidden_ssid = info->hidden_ssid; 17128c2ecf20Sopenharmony_ci ), 17138c2ecf20Sopenharmony_ci 17148c2ecf20Sopenharmony_ci TP_printk( 17158c2ecf20Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT, 17168c2ecf20Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG 17178c2ecf20Sopenharmony_ci ) 17188c2ecf20Sopenharmony_ci); 17198c2ecf20Sopenharmony_ci 17208c2ecf20Sopenharmony_ciDEFINE_EVENT(local_sdata_evt, drv_stop_ap, 17218c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 17228c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata), 17238c2ecf20Sopenharmony_ci TP_ARGS(local, sdata) 17248c2ecf20Sopenharmony_ci); 17258c2ecf20Sopenharmony_ci 17268c2ecf20Sopenharmony_ciTRACE_EVENT(drv_reconfig_complete, 17278c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 17288c2ecf20Sopenharmony_ci enum ieee80211_reconfig_type reconfig_type), 17298c2ecf20Sopenharmony_ci TP_ARGS(local, reconfig_type), 17308c2ecf20Sopenharmony_ci 17318c2ecf20Sopenharmony_ci TP_STRUCT__entry( 17328c2ecf20Sopenharmony_ci LOCAL_ENTRY 17338c2ecf20Sopenharmony_ci __field(u8, reconfig_type) 17348c2ecf20Sopenharmony_ci ), 17358c2ecf20Sopenharmony_ci 17368c2ecf20Sopenharmony_ci TP_fast_assign( 17378c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 17388c2ecf20Sopenharmony_ci __entry->reconfig_type = reconfig_type; 17398c2ecf20Sopenharmony_ci ), 17408c2ecf20Sopenharmony_ci 17418c2ecf20Sopenharmony_ci TP_printk( 17428c2ecf20Sopenharmony_ci LOCAL_PR_FMT " reconfig_type:%d", 17438c2ecf20Sopenharmony_ci LOCAL_PR_ARG, __entry->reconfig_type 17448c2ecf20Sopenharmony_ci ) 17458c2ecf20Sopenharmony_ci 17468c2ecf20Sopenharmony_ci); 17478c2ecf20Sopenharmony_ci 17488c2ecf20Sopenharmony_ci#if IS_ENABLED(CONFIG_IPV6) 17498c2ecf20Sopenharmony_ciDEFINE_EVENT(local_sdata_evt, drv_ipv6_addr_change, 17508c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 17518c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata), 17528c2ecf20Sopenharmony_ci TP_ARGS(local, sdata) 17538c2ecf20Sopenharmony_ci); 17548c2ecf20Sopenharmony_ci#endif 17558c2ecf20Sopenharmony_ci 17568c2ecf20Sopenharmony_ciTRACE_EVENT(drv_join_ibss, 17578c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 17588c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 17598c2ecf20Sopenharmony_ci struct ieee80211_bss_conf *info), 17608c2ecf20Sopenharmony_ci 17618c2ecf20Sopenharmony_ci TP_ARGS(local, sdata, info), 17628c2ecf20Sopenharmony_ci 17638c2ecf20Sopenharmony_ci TP_STRUCT__entry( 17648c2ecf20Sopenharmony_ci LOCAL_ENTRY 17658c2ecf20Sopenharmony_ci VIF_ENTRY 17668c2ecf20Sopenharmony_ci __field(u8, dtimper) 17678c2ecf20Sopenharmony_ci __field(u16, bcnint) 17688c2ecf20Sopenharmony_ci __dynamic_array(u8, ssid, info->ssid_len) 17698c2ecf20Sopenharmony_ci ), 17708c2ecf20Sopenharmony_ci 17718c2ecf20Sopenharmony_ci TP_fast_assign( 17728c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 17738c2ecf20Sopenharmony_ci VIF_ASSIGN; 17748c2ecf20Sopenharmony_ci __entry->dtimper = info->dtim_period; 17758c2ecf20Sopenharmony_ci __entry->bcnint = info->beacon_int; 17768c2ecf20Sopenharmony_ci memcpy(__get_dynamic_array(ssid), info->ssid, info->ssid_len); 17778c2ecf20Sopenharmony_ci ), 17788c2ecf20Sopenharmony_ci 17798c2ecf20Sopenharmony_ci TP_printk( 17808c2ecf20Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT, 17818c2ecf20Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG 17828c2ecf20Sopenharmony_ci ) 17838c2ecf20Sopenharmony_ci); 17848c2ecf20Sopenharmony_ci 17858c2ecf20Sopenharmony_ciDEFINE_EVENT(local_sdata_evt, drv_leave_ibss, 17868c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 17878c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata), 17888c2ecf20Sopenharmony_ci TP_ARGS(local, sdata) 17898c2ecf20Sopenharmony_ci); 17908c2ecf20Sopenharmony_ci 17918c2ecf20Sopenharmony_ciTRACE_EVENT(drv_get_expected_throughput, 17928c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_sta *sta), 17938c2ecf20Sopenharmony_ci 17948c2ecf20Sopenharmony_ci TP_ARGS(sta), 17958c2ecf20Sopenharmony_ci 17968c2ecf20Sopenharmony_ci TP_STRUCT__entry( 17978c2ecf20Sopenharmony_ci STA_ENTRY 17988c2ecf20Sopenharmony_ci ), 17998c2ecf20Sopenharmony_ci 18008c2ecf20Sopenharmony_ci TP_fast_assign( 18018c2ecf20Sopenharmony_ci STA_ASSIGN; 18028c2ecf20Sopenharmony_ci ), 18038c2ecf20Sopenharmony_ci 18048c2ecf20Sopenharmony_ci TP_printk( 18058c2ecf20Sopenharmony_ci STA_PR_FMT, STA_PR_ARG 18068c2ecf20Sopenharmony_ci ) 18078c2ecf20Sopenharmony_ci); 18088c2ecf20Sopenharmony_ci 18098c2ecf20Sopenharmony_ciTRACE_EVENT(drv_start_nan, 18108c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 18118c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 18128c2ecf20Sopenharmony_ci struct cfg80211_nan_conf *conf), 18138c2ecf20Sopenharmony_ci 18148c2ecf20Sopenharmony_ci TP_ARGS(local, sdata, conf), 18158c2ecf20Sopenharmony_ci TP_STRUCT__entry( 18168c2ecf20Sopenharmony_ci LOCAL_ENTRY 18178c2ecf20Sopenharmony_ci VIF_ENTRY 18188c2ecf20Sopenharmony_ci __field(u8, master_pref) 18198c2ecf20Sopenharmony_ci __field(u8, bands) 18208c2ecf20Sopenharmony_ci ), 18218c2ecf20Sopenharmony_ci 18228c2ecf20Sopenharmony_ci TP_fast_assign( 18238c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 18248c2ecf20Sopenharmony_ci VIF_ASSIGN; 18258c2ecf20Sopenharmony_ci __entry->master_pref = conf->master_pref; 18268c2ecf20Sopenharmony_ci __entry->bands = conf->bands; 18278c2ecf20Sopenharmony_ci ), 18288c2ecf20Sopenharmony_ci 18298c2ecf20Sopenharmony_ci TP_printk( 18308c2ecf20Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT 18318c2ecf20Sopenharmony_ci ", master preference: %u, bands: 0x%0x", 18328c2ecf20Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, __entry->master_pref, 18338c2ecf20Sopenharmony_ci __entry->bands 18348c2ecf20Sopenharmony_ci ) 18358c2ecf20Sopenharmony_ci); 18368c2ecf20Sopenharmony_ci 18378c2ecf20Sopenharmony_ciTRACE_EVENT(drv_stop_nan, 18388c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 18398c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata), 18408c2ecf20Sopenharmony_ci 18418c2ecf20Sopenharmony_ci TP_ARGS(local, sdata), 18428c2ecf20Sopenharmony_ci 18438c2ecf20Sopenharmony_ci TP_STRUCT__entry( 18448c2ecf20Sopenharmony_ci LOCAL_ENTRY 18458c2ecf20Sopenharmony_ci VIF_ENTRY 18468c2ecf20Sopenharmony_ci ), 18478c2ecf20Sopenharmony_ci 18488c2ecf20Sopenharmony_ci TP_fast_assign( 18498c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 18508c2ecf20Sopenharmony_ci VIF_ASSIGN; 18518c2ecf20Sopenharmony_ci ), 18528c2ecf20Sopenharmony_ci 18538c2ecf20Sopenharmony_ci TP_printk( 18548c2ecf20Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT, 18558c2ecf20Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG 18568c2ecf20Sopenharmony_ci ) 18578c2ecf20Sopenharmony_ci); 18588c2ecf20Sopenharmony_ci 18598c2ecf20Sopenharmony_ciTRACE_EVENT(drv_nan_change_conf, 18608c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 18618c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 18628c2ecf20Sopenharmony_ci struct cfg80211_nan_conf *conf, 18638c2ecf20Sopenharmony_ci u32 changes), 18648c2ecf20Sopenharmony_ci 18658c2ecf20Sopenharmony_ci TP_ARGS(local, sdata, conf, changes), 18668c2ecf20Sopenharmony_ci TP_STRUCT__entry( 18678c2ecf20Sopenharmony_ci LOCAL_ENTRY 18688c2ecf20Sopenharmony_ci VIF_ENTRY 18698c2ecf20Sopenharmony_ci __field(u8, master_pref) 18708c2ecf20Sopenharmony_ci __field(u8, bands) 18718c2ecf20Sopenharmony_ci __field(u32, changes) 18728c2ecf20Sopenharmony_ci ), 18738c2ecf20Sopenharmony_ci 18748c2ecf20Sopenharmony_ci TP_fast_assign( 18758c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 18768c2ecf20Sopenharmony_ci VIF_ASSIGN; 18778c2ecf20Sopenharmony_ci __entry->master_pref = conf->master_pref; 18788c2ecf20Sopenharmony_ci __entry->bands = conf->bands; 18798c2ecf20Sopenharmony_ci __entry->changes = changes; 18808c2ecf20Sopenharmony_ci ), 18818c2ecf20Sopenharmony_ci 18828c2ecf20Sopenharmony_ci TP_printk( 18838c2ecf20Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT 18848c2ecf20Sopenharmony_ci ", master preference: %u, bands: 0x%0x, changes: 0x%x", 18858c2ecf20Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, __entry->master_pref, 18868c2ecf20Sopenharmony_ci __entry->bands, __entry->changes 18878c2ecf20Sopenharmony_ci ) 18888c2ecf20Sopenharmony_ci); 18898c2ecf20Sopenharmony_ci 18908c2ecf20Sopenharmony_ciTRACE_EVENT(drv_add_nan_func, 18918c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 18928c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 18938c2ecf20Sopenharmony_ci const struct cfg80211_nan_func *func), 18948c2ecf20Sopenharmony_ci 18958c2ecf20Sopenharmony_ci TP_ARGS(local, sdata, func), 18968c2ecf20Sopenharmony_ci TP_STRUCT__entry( 18978c2ecf20Sopenharmony_ci LOCAL_ENTRY 18988c2ecf20Sopenharmony_ci VIF_ENTRY 18998c2ecf20Sopenharmony_ci __field(u8, type) 19008c2ecf20Sopenharmony_ci __field(u8, inst_id) 19018c2ecf20Sopenharmony_ci ), 19028c2ecf20Sopenharmony_ci 19038c2ecf20Sopenharmony_ci TP_fast_assign( 19048c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 19058c2ecf20Sopenharmony_ci VIF_ASSIGN; 19068c2ecf20Sopenharmony_ci __entry->type = func->type; 19078c2ecf20Sopenharmony_ci __entry->inst_id = func->instance_id; 19088c2ecf20Sopenharmony_ci ), 19098c2ecf20Sopenharmony_ci 19108c2ecf20Sopenharmony_ci TP_printk( 19118c2ecf20Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT 19128c2ecf20Sopenharmony_ci ", type: %u, inst_id: %u", 19138c2ecf20Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, __entry->type, __entry->inst_id 19148c2ecf20Sopenharmony_ci ) 19158c2ecf20Sopenharmony_ci); 19168c2ecf20Sopenharmony_ci 19178c2ecf20Sopenharmony_ciTRACE_EVENT(drv_del_nan_func, 19188c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 19198c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 19208c2ecf20Sopenharmony_ci u8 instance_id), 19218c2ecf20Sopenharmony_ci 19228c2ecf20Sopenharmony_ci TP_ARGS(local, sdata, instance_id), 19238c2ecf20Sopenharmony_ci TP_STRUCT__entry( 19248c2ecf20Sopenharmony_ci LOCAL_ENTRY 19258c2ecf20Sopenharmony_ci VIF_ENTRY 19268c2ecf20Sopenharmony_ci __field(u8, instance_id) 19278c2ecf20Sopenharmony_ci ), 19288c2ecf20Sopenharmony_ci 19298c2ecf20Sopenharmony_ci TP_fast_assign( 19308c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 19318c2ecf20Sopenharmony_ci VIF_ASSIGN; 19328c2ecf20Sopenharmony_ci __entry->instance_id = instance_id; 19338c2ecf20Sopenharmony_ci ), 19348c2ecf20Sopenharmony_ci 19358c2ecf20Sopenharmony_ci TP_printk( 19368c2ecf20Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT 19378c2ecf20Sopenharmony_ci ", instance_id: %u", 19388c2ecf20Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, __entry->instance_id 19398c2ecf20Sopenharmony_ci ) 19408c2ecf20Sopenharmony_ci); 19418c2ecf20Sopenharmony_ci 19428c2ecf20Sopenharmony_ciDEFINE_EVENT(local_sdata_evt, drv_start_pmsr, 19438c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 19448c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata), 19458c2ecf20Sopenharmony_ci TP_ARGS(local, sdata) 19468c2ecf20Sopenharmony_ci); 19478c2ecf20Sopenharmony_ci 19488c2ecf20Sopenharmony_ciDEFINE_EVENT(local_sdata_evt, drv_abort_pmsr, 19498c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 19508c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata), 19518c2ecf20Sopenharmony_ci TP_ARGS(local, sdata) 19528c2ecf20Sopenharmony_ci); 19538c2ecf20Sopenharmony_ci 19548c2ecf20Sopenharmony_ci/* 19558c2ecf20Sopenharmony_ci * Tracing for API calls that drivers call. 19568c2ecf20Sopenharmony_ci */ 19578c2ecf20Sopenharmony_ci 19588c2ecf20Sopenharmony_ciTRACE_EVENT(api_start_tx_ba_session, 19598c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_sta *sta, u16 tid), 19608c2ecf20Sopenharmony_ci 19618c2ecf20Sopenharmony_ci TP_ARGS(sta, tid), 19628c2ecf20Sopenharmony_ci 19638c2ecf20Sopenharmony_ci TP_STRUCT__entry( 19648c2ecf20Sopenharmony_ci STA_ENTRY 19658c2ecf20Sopenharmony_ci __field(u16, tid) 19668c2ecf20Sopenharmony_ci ), 19678c2ecf20Sopenharmony_ci 19688c2ecf20Sopenharmony_ci TP_fast_assign( 19698c2ecf20Sopenharmony_ci STA_ASSIGN; 19708c2ecf20Sopenharmony_ci __entry->tid = tid; 19718c2ecf20Sopenharmony_ci ), 19728c2ecf20Sopenharmony_ci 19738c2ecf20Sopenharmony_ci TP_printk( 19748c2ecf20Sopenharmony_ci STA_PR_FMT " tid:%d", 19758c2ecf20Sopenharmony_ci STA_PR_ARG, __entry->tid 19768c2ecf20Sopenharmony_ci ) 19778c2ecf20Sopenharmony_ci); 19788c2ecf20Sopenharmony_ci 19798c2ecf20Sopenharmony_ciTRACE_EVENT(api_start_tx_ba_cb, 19808c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_sub_if_data *sdata, const u8 *ra, u16 tid), 19818c2ecf20Sopenharmony_ci 19828c2ecf20Sopenharmony_ci TP_ARGS(sdata, ra, tid), 19838c2ecf20Sopenharmony_ci 19848c2ecf20Sopenharmony_ci TP_STRUCT__entry( 19858c2ecf20Sopenharmony_ci VIF_ENTRY 19868c2ecf20Sopenharmony_ci __array(u8, ra, ETH_ALEN) 19878c2ecf20Sopenharmony_ci __field(u16, tid) 19888c2ecf20Sopenharmony_ci ), 19898c2ecf20Sopenharmony_ci 19908c2ecf20Sopenharmony_ci TP_fast_assign( 19918c2ecf20Sopenharmony_ci VIF_ASSIGN; 19928c2ecf20Sopenharmony_ci memcpy(__entry->ra, ra, ETH_ALEN); 19938c2ecf20Sopenharmony_ci __entry->tid = tid; 19948c2ecf20Sopenharmony_ci ), 19958c2ecf20Sopenharmony_ci 19968c2ecf20Sopenharmony_ci TP_printk( 19978c2ecf20Sopenharmony_ci VIF_PR_FMT " ra:%pM tid:%d", 19988c2ecf20Sopenharmony_ci VIF_PR_ARG, __entry->ra, __entry->tid 19998c2ecf20Sopenharmony_ci ) 20008c2ecf20Sopenharmony_ci); 20018c2ecf20Sopenharmony_ci 20028c2ecf20Sopenharmony_ciTRACE_EVENT(api_stop_tx_ba_session, 20038c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_sta *sta, u16 tid), 20048c2ecf20Sopenharmony_ci 20058c2ecf20Sopenharmony_ci TP_ARGS(sta, tid), 20068c2ecf20Sopenharmony_ci 20078c2ecf20Sopenharmony_ci TP_STRUCT__entry( 20088c2ecf20Sopenharmony_ci STA_ENTRY 20098c2ecf20Sopenharmony_ci __field(u16, tid) 20108c2ecf20Sopenharmony_ci ), 20118c2ecf20Sopenharmony_ci 20128c2ecf20Sopenharmony_ci TP_fast_assign( 20138c2ecf20Sopenharmony_ci STA_ASSIGN; 20148c2ecf20Sopenharmony_ci __entry->tid = tid; 20158c2ecf20Sopenharmony_ci ), 20168c2ecf20Sopenharmony_ci 20178c2ecf20Sopenharmony_ci TP_printk( 20188c2ecf20Sopenharmony_ci STA_PR_FMT " tid:%d", 20198c2ecf20Sopenharmony_ci STA_PR_ARG, __entry->tid 20208c2ecf20Sopenharmony_ci ) 20218c2ecf20Sopenharmony_ci); 20228c2ecf20Sopenharmony_ci 20238c2ecf20Sopenharmony_ciTRACE_EVENT(api_stop_tx_ba_cb, 20248c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_sub_if_data *sdata, const u8 *ra, u16 tid), 20258c2ecf20Sopenharmony_ci 20268c2ecf20Sopenharmony_ci TP_ARGS(sdata, ra, tid), 20278c2ecf20Sopenharmony_ci 20288c2ecf20Sopenharmony_ci TP_STRUCT__entry( 20298c2ecf20Sopenharmony_ci VIF_ENTRY 20308c2ecf20Sopenharmony_ci __array(u8, ra, ETH_ALEN) 20318c2ecf20Sopenharmony_ci __field(u16, tid) 20328c2ecf20Sopenharmony_ci ), 20338c2ecf20Sopenharmony_ci 20348c2ecf20Sopenharmony_ci TP_fast_assign( 20358c2ecf20Sopenharmony_ci VIF_ASSIGN; 20368c2ecf20Sopenharmony_ci memcpy(__entry->ra, ra, ETH_ALEN); 20378c2ecf20Sopenharmony_ci __entry->tid = tid; 20388c2ecf20Sopenharmony_ci ), 20398c2ecf20Sopenharmony_ci 20408c2ecf20Sopenharmony_ci TP_printk( 20418c2ecf20Sopenharmony_ci VIF_PR_FMT " ra:%pM tid:%d", 20428c2ecf20Sopenharmony_ci VIF_PR_ARG, __entry->ra, __entry->tid 20438c2ecf20Sopenharmony_ci ) 20448c2ecf20Sopenharmony_ci); 20458c2ecf20Sopenharmony_ci 20468c2ecf20Sopenharmony_ciDEFINE_EVENT(local_only_evt, api_restart_hw, 20478c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local), 20488c2ecf20Sopenharmony_ci TP_ARGS(local) 20498c2ecf20Sopenharmony_ci); 20508c2ecf20Sopenharmony_ci 20518c2ecf20Sopenharmony_ciTRACE_EVENT(api_beacon_loss, 20528c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_sub_if_data *sdata), 20538c2ecf20Sopenharmony_ci 20548c2ecf20Sopenharmony_ci TP_ARGS(sdata), 20558c2ecf20Sopenharmony_ci 20568c2ecf20Sopenharmony_ci TP_STRUCT__entry( 20578c2ecf20Sopenharmony_ci VIF_ENTRY 20588c2ecf20Sopenharmony_ci ), 20598c2ecf20Sopenharmony_ci 20608c2ecf20Sopenharmony_ci TP_fast_assign( 20618c2ecf20Sopenharmony_ci VIF_ASSIGN; 20628c2ecf20Sopenharmony_ci ), 20638c2ecf20Sopenharmony_ci 20648c2ecf20Sopenharmony_ci TP_printk( 20658c2ecf20Sopenharmony_ci VIF_PR_FMT, 20668c2ecf20Sopenharmony_ci VIF_PR_ARG 20678c2ecf20Sopenharmony_ci ) 20688c2ecf20Sopenharmony_ci); 20698c2ecf20Sopenharmony_ci 20708c2ecf20Sopenharmony_ciTRACE_EVENT(api_connection_loss, 20718c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_sub_if_data *sdata), 20728c2ecf20Sopenharmony_ci 20738c2ecf20Sopenharmony_ci TP_ARGS(sdata), 20748c2ecf20Sopenharmony_ci 20758c2ecf20Sopenharmony_ci TP_STRUCT__entry( 20768c2ecf20Sopenharmony_ci VIF_ENTRY 20778c2ecf20Sopenharmony_ci ), 20788c2ecf20Sopenharmony_ci 20798c2ecf20Sopenharmony_ci TP_fast_assign( 20808c2ecf20Sopenharmony_ci VIF_ASSIGN; 20818c2ecf20Sopenharmony_ci ), 20828c2ecf20Sopenharmony_ci 20838c2ecf20Sopenharmony_ci TP_printk( 20848c2ecf20Sopenharmony_ci VIF_PR_FMT, 20858c2ecf20Sopenharmony_ci VIF_PR_ARG 20868c2ecf20Sopenharmony_ci ) 20878c2ecf20Sopenharmony_ci); 20888c2ecf20Sopenharmony_ci 20898c2ecf20Sopenharmony_ciTRACE_EVENT(api_cqm_rssi_notify, 20908c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_sub_if_data *sdata, 20918c2ecf20Sopenharmony_ci enum nl80211_cqm_rssi_threshold_event rssi_event, 20928c2ecf20Sopenharmony_ci s32 rssi_level), 20938c2ecf20Sopenharmony_ci 20948c2ecf20Sopenharmony_ci TP_ARGS(sdata, rssi_event, rssi_level), 20958c2ecf20Sopenharmony_ci 20968c2ecf20Sopenharmony_ci TP_STRUCT__entry( 20978c2ecf20Sopenharmony_ci VIF_ENTRY 20988c2ecf20Sopenharmony_ci __field(u32, rssi_event) 20998c2ecf20Sopenharmony_ci __field(s32, rssi_level) 21008c2ecf20Sopenharmony_ci ), 21018c2ecf20Sopenharmony_ci 21028c2ecf20Sopenharmony_ci TP_fast_assign( 21038c2ecf20Sopenharmony_ci VIF_ASSIGN; 21048c2ecf20Sopenharmony_ci __entry->rssi_event = rssi_event; 21058c2ecf20Sopenharmony_ci __entry->rssi_level = rssi_level; 21068c2ecf20Sopenharmony_ci ), 21078c2ecf20Sopenharmony_ci 21088c2ecf20Sopenharmony_ci TP_printk( 21098c2ecf20Sopenharmony_ci VIF_PR_FMT " event:%d rssi:%d", 21108c2ecf20Sopenharmony_ci VIF_PR_ARG, __entry->rssi_event, __entry->rssi_level 21118c2ecf20Sopenharmony_ci ) 21128c2ecf20Sopenharmony_ci); 21138c2ecf20Sopenharmony_ci 21148c2ecf20Sopenharmony_ciDEFINE_EVENT(local_sdata_evt, api_cqm_beacon_loss_notify, 21158c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 21168c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata), 21178c2ecf20Sopenharmony_ci TP_ARGS(local, sdata) 21188c2ecf20Sopenharmony_ci); 21198c2ecf20Sopenharmony_ci 21208c2ecf20Sopenharmony_ciTRACE_EVENT(api_scan_completed, 21218c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, bool aborted), 21228c2ecf20Sopenharmony_ci 21238c2ecf20Sopenharmony_ci TP_ARGS(local, aborted), 21248c2ecf20Sopenharmony_ci 21258c2ecf20Sopenharmony_ci TP_STRUCT__entry( 21268c2ecf20Sopenharmony_ci LOCAL_ENTRY 21278c2ecf20Sopenharmony_ci __field(bool, aborted) 21288c2ecf20Sopenharmony_ci ), 21298c2ecf20Sopenharmony_ci 21308c2ecf20Sopenharmony_ci TP_fast_assign( 21318c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 21328c2ecf20Sopenharmony_ci __entry->aborted = aborted; 21338c2ecf20Sopenharmony_ci ), 21348c2ecf20Sopenharmony_ci 21358c2ecf20Sopenharmony_ci TP_printk( 21368c2ecf20Sopenharmony_ci LOCAL_PR_FMT " aborted:%d", 21378c2ecf20Sopenharmony_ci LOCAL_PR_ARG, __entry->aborted 21388c2ecf20Sopenharmony_ci ) 21398c2ecf20Sopenharmony_ci); 21408c2ecf20Sopenharmony_ci 21418c2ecf20Sopenharmony_ciTRACE_EVENT(api_sched_scan_results, 21428c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local), 21438c2ecf20Sopenharmony_ci 21448c2ecf20Sopenharmony_ci TP_ARGS(local), 21458c2ecf20Sopenharmony_ci 21468c2ecf20Sopenharmony_ci TP_STRUCT__entry( 21478c2ecf20Sopenharmony_ci LOCAL_ENTRY 21488c2ecf20Sopenharmony_ci ), 21498c2ecf20Sopenharmony_ci 21508c2ecf20Sopenharmony_ci TP_fast_assign( 21518c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 21528c2ecf20Sopenharmony_ci ), 21538c2ecf20Sopenharmony_ci 21548c2ecf20Sopenharmony_ci TP_printk( 21558c2ecf20Sopenharmony_ci LOCAL_PR_FMT, LOCAL_PR_ARG 21568c2ecf20Sopenharmony_ci ) 21578c2ecf20Sopenharmony_ci); 21588c2ecf20Sopenharmony_ci 21598c2ecf20Sopenharmony_ciTRACE_EVENT(api_sched_scan_stopped, 21608c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local), 21618c2ecf20Sopenharmony_ci 21628c2ecf20Sopenharmony_ci TP_ARGS(local), 21638c2ecf20Sopenharmony_ci 21648c2ecf20Sopenharmony_ci TP_STRUCT__entry( 21658c2ecf20Sopenharmony_ci LOCAL_ENTRY 21668c2ecf20Sopenharmony_ci ), 21678c2ecf20Sopenharmony_ci 21688c2ecf20Sopenharmony_ci TP_fast_assign( 21698c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 21708c2ecf20Sopenharmony_ci ), 21718c2ecf20Sopenharmony_ci 21728c2ecf20Sopenharmony_ci TP_printk( 21738c2ecf20Sopenharmony_ci LOCAL_PR_FMT, LOCAL_PR_ARG 21748c2ecf20Sopenharmony_ci ) 21758c2ecf20Sopenharmony_ci); 21768c2ecf20Sopenharmony_ci 21778c2ecf20Sopenharmony_ciTRACE_EVENT(api_sta_block_awake, 21788c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 21798c2ecf20Sopenharmony_ci struct ieee80211_sta *sta, bool block), 21808c2ecf20Sopenharmony_ci 21818c2ecf20Sopenharmony_ci TP_ARGS(local, sta, block), 21828c2ecf20Sopenharmony_ci 21838c2ecf20Sopenharmony_ci TP_STRUCT__entry( 21848c2ecf20Sopenharmony_ci LOCAL_ENTRY 21858c2ecf20Sopenharmony_ci STA_ENTRY 21868c2ecf20Sopenharmony_ci __field(bool, block) 21878c2ecf20Sopenharmony_ci ), 21888c2ecf20Sopenharmony_ci 21898c2ecf20Sopenharmony_ci TP_fast_assign( 21908c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 21918c2ecf20Sopenharmony_ci STA_ASSIGN; 21928c2ecf20Sopenharmony_ci __entry->block = block; 21938c2ecf20Sopenharmony_ci ), 21948c2ecf20Sopenharmony_ci 21958c2ecf20Sopenharmony_ci TP_printk( 21968c2ecf20Sopenharmony_ci LOCAL_PR_FMT STA_PR_FMT " block:%d", 21978c2ecf20Sopenharmony_ci LOCAL_PR_ARG, STA_PR_ARG, __entry->block 21988c2ecf20Sopenharmony_ci ) 21998c2ecf20Sopenharmony_ci); 22008c2ecf20Sopenharmony_ci 22018c2ecf20Sopenharmony_ciTRACE_EVENT(api_chswitch_done, 22028c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_sub_if_data *sdata, bool success), 22038c2ecf20Sopenharmony_ci 22048c2ecf20Sopenharmony_ci TP_ARGS(sdata, success), 22058c2ecf20Sopenharmony_ci 22068c2ecf20Sopenharmony_ci TP_STRUCT__entry( 22078c2ecf20Sopenharmony_ci VIF_ENTRY 22088c2ecf20Sopenharmony_ci __field(bool, success) 22098c2ecf20Sopenharmony_ci ), 22108c2ecf20Sopenharmony_ci 22118c2ecf20Sopenharmony_ci TP_fast_assign( 22128c2ecf20Sopenharmony_ci VIF_ASSIGN; 22138c2ecf20Sopenharmony_ci __entry->success = success; 22148c2ecf20Sopenharmony_ci ), 22158c2ecf20Sopenharmony_ci 22168c2ecf20Sopenharmony_ci TP_printk( 22178c2ecf20Sopenharmony_ci VIF_PR_FMT " success=%d", 22188c2ecf20Sopenharmony_ci VIF_PR_ARG, __entry->success 22198c2ecf20Sopenharmony_ci ) 22208c2ecf20Sopenharmony_ci); 22218c2ecf20Sopenharmony_ci 22228c2ecf20Sopenharmony_ciDEFINE_EVENT(local_only_evt, api_ready_on_channel, 22238c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local), 22248c2ecf20Sopenharmony_ci TP_ARGS(local) 22258c2ecf20Sopenharmony_ci); 22268c2ecf20Sopenharmony_ci 22278c2ecf20Sopenharmony_ciDEFINE_EVENT(local_only_evt, api_remain_on_channel_expired, 22288c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local), 22298c2ecf20Sopenharmony_ci TP_ARGS(local) 22308c2ecf20Sopenharmony_ci); 22318c2ecf20Sopenharmony_ci 22328c2ecf20Sopenharmony_ciTRACE_EVENT(api_gtk_rekey_notify, 22338c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_sub_if_data *sdata, 22348c2ecf20Sopenharmony_ci const u8 *bssid, const u8 *replay_ctr), 22358c2ecf20Sopenharmony_ci 22368c2ecf20Sopenharmony_ci TP_ARGS(sdata, bssid, replay_ctr), 22378c2ecf20Sopenharmony_ci 22388c2ecf20Sopenharmony_ci TP_STRUCT__entry( 22398c2ecf20Sopenharmony_ci VIF_ENTRY 22408c2ecf20Sopenharmony_ci __array(u8, bssid, ETH_ALEN) 22418c2ecf20Sopenharmony_ci __array(u8, replay_ctr, NL80211_REPLAY_CTR_LEN) 22428c2ecf20Sopenharmony_ci ), 22438c2ecf20Sopenharmony_ci 22448c2ecf20Sopenharmony_ci TP_fast_assign( 22458c2ecf20Sopenharmony_ci VIF_ASSIGN; 22468c2ecf20Sopenharmony_ci memcpy(__entry->bssid, bssid, ETH_ALEN); 22478c2ecf20Sopenharmony_ci memcpy(__entry->replay_ctr, replay_ctr, NL80211_REPLAY_CTR_LEN); 22488c2ecf20Sopenharmony_ci ), 22498c2ecf20Sopenharmony_ci 22508c2ecf20Sopenharmony_ci TP_printk(VIF_PR_FMT, VIF_PR_ARG) 22518c2ecf20Sopenharmony_ci); 22528c2ecf20Sopenharmony_ci 22538c2ecf20Sopenharmony_ciTRACE_EVENT(api_enable_rssi_reports, 22548c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_sub_if_data *sdata, 22558c2ecf20Sopenharmony_ci int rssi_min_thold, int rssi_max_thold), 22568c2ecf20Sopenharmony_ci 22578c2ecf20Sopenharmony_ci TP_ARGS(sdata, rssi_min_thold, rssi_max_thold), 22588c2ecf20Sopenharmony_ci 22598c2ecf20Sopenharmony_ci TP_STRUCT__entry( 22608c2ecf20Sopenharmony_ci VIF_ENTRY 22618c2ecf20Sopenharmony_ci __field(int, rssi_min_thold) 22628c2ecf20Sopenharmony_ci __field(int, rssi_max_thold) 22638c2ecf20Sopenharmony_ci ), 22648c2ecf20Sopenharmony_ci 22658c2ecf20Sopenharmony_ci TP_fast_assign( 22668c2ecf20Sopenharmony_ci VIF_ASSIGN; 22678c2ecf20Sopenharmony_ci __entry->rssi_min_thold = rssi_min_thold; 22688c2ecf20Sopenharmony_ci __entry->rssi_max_thold = rssi_max_thold; 22698c2ecf20Sopenharmony_ci ), 22708c2ecf20Sopenharmony_ci 22718c2ecf20Sopenharmony_ci TP_printk( 22728c2ecf20Sopenharmony_ci VIF_PR_FMT " rssi_min_thold =%d, rssi_max_thold = %d", 22738c2ecf20Sopenharmony_ci VIF_PR_ARG, __entry->rssi_min_thold, __entry->rssi_max_thold 22748c2ecf20Sopenharmony_ci ) 22758c2ecf20Sopenharmony_ci); 22768c2ecf20Sopenharmony_ci 22778c2ecf20Sopenharmony_ciTRACE_EVENT(api_eosp, 22788c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 22798c2ecf20Sopenharmony_ci struct ieee80211_sta *sta), 22808c2ecf20Sopenharmony_ci 22818c2ecf20Sopenharmony_ci TP_ARGS(local, sta), 22828c2ecf20Sopenharmony_ci 22838c2ecf20Sopenharmony_ci TP_STRUCT__entry( 22848c2ecf20Sopenharmony_ci LOCAL_ENTRY 22858c2ecf20Sopenharmony_ci STA_ENTRY 22868c2ecf20Sopenharmony_ci ), 22878c2ecf20Sopenharmony_ci 22888c2ecf20Sopenharmony_ci TP_fast_assign( 22898c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 22908c2ecf20Sopenharmony_ci STA_ASSIGN; 22918c2ecf20Sopenharmony_ci ), 22928c2ecf20Sopenharmony_ci 22938c2ecf20Sopenharmony_ci TP_printk( 22948c2ecf20Sopenharmony_ci LOCAL_PR_FMT STA_PR_FMT, 22958c2ecf20Sopenharmony_ci LOCAL_PR_ARG, STA_PR_ARG 22968c2ecf20Sopenharmony_ci ) 22978c2ecf20Sopenharmony_ci); 22988c2ecf20Sopenharmony_ci 22998c2ecf20Sopenharmony_ciTRACE_EVENT(api_send_eosp_nullfunc, 23008c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 23018c2ecf20Sopenharmony_ci struct ieee80211_sta *sta, 23028c2ecf20Sopenharmony_ci u8 tid), 23038c2ecf20Sopenharmony_ci 23048c2ecf20Sopenharmony_ci TP_ARGS(local, sta, tid), 23058c2ecf20Sopenharmony_ci 23068c2ecf20Sopenharmony_ci TP_STRUCT__entry( 23078c2ecf20Sopenharmony_ci LOCAL_ENTRY 23088c2ecf20Sopenharmony_ci STA_ENTRY 23098c2ecf20Sopenharmony_ci __field(u8, tid) 23108c2ecf20Sopenharmony_ci ), 23118c2ecf20Sopenharmony_ci 23128c2ecf20Sopenharmony_ci TP_fast_assign( 23138c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 23148c2ecf20Sopenharmony_ci STA_ASSIGN; 23158c2ecf20Sopenharmony_ci __entry->tid = tid; 23168c2ecf20Sopenharmony_ci ), 23178c2ecf20Sopenharmony_ci 23188c2ecf20Sopenharmony_ci TP_printk( 23198c2ecf20Sopenharmony_ci LOCAL_PR_FMT STA_PR_FMT " tid:%d", 23208c2ecf20Sopenharmony_ci LOCAL_PR_ARG, STA_PR_ARG, __entry->tid 23218c2ecf20Sopenharmony_ci ) 23228c2ecf20Sopenharmony_ci); 23238c2ecf20Sopenharmony_ci 23248c2ecf20Sopenharmony_ciTRACE_EVENT(api_sta_set_buffered, 23258c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 23268c2ecf20Sopenharmony_ci struct ieee80211_sta *sta, 23278c2ecf20Sopenharmony_ci u8 tid, bool buffered), 23288c2ecf20Sopenharmony_ci 23298c2ecf20Sopenharmony_ci TP_ARGS(local, sta, tid, buffered), 23308c2ecf20Sopenharmony_ci 23318c2ecf20Sopenharmony_ci TP_STRUCT__entry( 23328c2ecf20Sopenharmony_ci LOCAL_ENTRY 23338c2ecf20Sopenharmony_ci STA_ENTRY 23348c2ecf20Sopenharmony_ci __field(u8, tid) 23358c2ecf20Sopenharmony_ci __field(bool, buffered) 23368c2ecf20Sopenharmony_ci ), 23378c2ecf20Sopenharmony_ci 23388c2ecf20Sopenharmony_ci TP_fast_assign( 23398c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 23408c2ecf20Sopenharmony_ci STA_ASSIGN; 23418c2ecf20Sopenharmony_ci __entry->tid = tid; 23428c2ecf20Sopenharmony_ci __entry->buffered = buffered; 23438c2ecf20Sopenharmony_ci ), 23448c2ecf20Sopenharmony_ci 23458c2ecf20Sopenharmony_ci TP_printk( 23468c2ecf20Sopenharmony_ci LOCAL_PR_FMT STA_PR_FMT " tid:%d buffered:%d", 23478c2ecf20Sopenharmony_ci LOCAL_PR_ARG, STA_PR_ARG, __entry->tid, __entry->buffered 23488c2ecf20Sopenharmony_ci ) 23498c2ecf20Sopenharmony_ci); 23508c2ecf20Sopenharmony_ci 23518c2ecf20Sopenharmony_ci/* 23528c2ecf20Sopenharmony_ci * Tracing for internal functions 23538c2ecf20Sopenharmony_ci * (which may also be called in response to driver calls) 23548c2ecf20Sopenharmony_ci */ 23558c2ecf20Sopenharmony_ci 23568c2ecf20Sopenharmony_ciTRACE_EVENT(wake_queue, 23578c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, u16 queue, 23588c2ecf20Sopenharmony_ci enum queue_stop_reason reason), 23598c2ecf20Sopenharmony_ci 23608c2ecf20Sopenharmony_ci TP_ARGS(local, queue, reason), 23618c2ecf20Sopenharmony_ci 23628c2ecf20Sopenharmony_ci TP_STRUCT__entry( 23638c2ecf20Sopenharmony_ci LOCAL_ENTRY 23648c2ecf20Sopenharmony_ci __field(u16, queue) 23658c2ecf20Sopenharmony_ci __field(u32, reason) 23668c2ecf20Sopenharmony_ci ), 23678c2ecf20Sopenharmony_ci 23688c2ecf20Sopenharmony_ci TP_fast_assign( 23698c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 23708c2ecf20Sopenharmony_ci __entry->queue = queue; 23718c2ecf20Sopenharmony_ci __entry->reason = reason; 23728c2ecf20Sopenharmony_ci ), 23738c2ecf20Sopenharmony_ci 23748c2ecf20Sopenharmony_ci TP_printk( 23758c2ecf20Sopenharmony_ci LOCAL_PR_FMT " queue:%d, reason:%d", 23768c2ecf20Sopenharmony_ci LOCAL_PR_ARG, __entry->queue, __entry->reason 23778c2ecf20Sopenharmony_ci ) 23788c2ecf20Sopenharmony_ci); 23798c2ecf20Sopenharmony_ci 23808c2ecf20Sopenharmony_ciTRACE_EVENT(stop_queue, 23818c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, u16 queue, 23828c2ecf20Sopenharmony_ci enum queue_stop_reason reason), 23838c2ecf20Sopenharmony_ci 23848c2ecf20Sopenharmony_ci TP_ARGS(local, queue, reason), 23858c2ecf20Sopenharmony_ci 23868c2ecf20Sopenharmony_ci TP_STRUCT__entry( 23878c2ecf20Sopenharmony_ci LOCAL_ENTRY 23888c2ecf20Sopenharmony_ci __field(u16, queue) 23898c2ecf20Sopenharmony_ci __field(u32, reason) 23908c2ecf20Sopenharmony_ci ), 23918c2ecf20Sopenharmony_ci 23928c2ecf20Sopenharmony_ci TP_fast_assign( 23938c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 23948c2ecf20Sopenharmony_ci __entry->queue = queue; 23958c2ecf20Sopenharmony_ci __entry->reason = reason; 23968c2ecf20Sopenharmony_ci ), 23978c2ecf20Sopenharmony_ci 23988c2ecf20Sopenharmony_ci TP_printk( 23998c2ecf20Sopenharmony_ci LOCAL_PR_FMT " queue:%d, reason:%d", 24008c2ecf20Sopenharmony_ci LOCAL_PR_ARG, __entry->queue, __entry->reason 24018c2ecf20Sopenharmony_ci ) 24028c2ecf20Sopenharmony_ci); 24038c2ecf20Sopenharmony_ci 24048c2ecf20Sopenharmony_ciTRACE_EVENT(drv_set_default_unicast_key, 24058c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 24068c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 24078c2ecf20Sopenharmony_ci int key_idx), 24088c2ecf20Sopenharmony_ci 24098c2ecf20Sopenharmony_ci TP_ARGS(local, sdata, key_idx), 24108c2ecf20Sopenharmony_ci 24118c2ecf20Sopenharmony_ci TP_STRUCT__entry( 24128c2ecf20Sopenharmony_ci LOCAL_ENTRY 24138c2ecf20Sopenharmony_ci VIF_ENTRY 24148c2ecf20Sopenharmony_ci __field(int, key_idx) 24158c2ecf20Sopenharmony_ci ), 24168c2ecf20Sopenharmony_ci 24178c2ecf20Sopenharmony_ci TP_fast_assign( 24188c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 24198c2ecf20Sopenharmony_ci VIF_ASSIGN; 24208c2ecf20Sopenharmony_ci __entry->key_idx = key_idx; 24218c2ecf20Sopenharmony_ci ), 24228c2ecf20Sopenharmony_ci 24238c2ecf20Sopenharmony_ci TP_printk(LOCAL_PR_FMT VIF_PR_FMT " key_idx:%d", 24248c2ecf20Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, __entry->key_idx) 24258c2ecf20Sopenharmony_ci); 24268c2ecf20Sopenharmony_ci 24278c2ecf20Sopenharmony_ciTRACE_EVENT(api_radar_detected, 24288c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local), 24298c2ecf20Sopenharmony_ci 24308c2ecf20Sopenharmony_ci TP_ARGS(local), 24318c2ecf20Sopenharmony_ci 24328c2ecf20Sopenharmony_ci TP_STRUCT__entry( 24338c2ecf20Sopenharmony_ci LOCAL_ENTRY 24348c2ecf20Sopenharmony_ci ), 24358c2ecf20Sopenharmony_ci 24368c2ecf20Sopenharmony_ci TP_fast_assign( 24378c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 24388c2ecf20Sopenharmony_ci ), 24398c2ecf20Sopenharmony_ci 24408c2ecf20Sopenharmony_ci TP_printk( 24418c2ecf20Sopenharmony_ci LOCAL_PR_FMT " radar detected", 24428c2ecf20Sopenharmony_ci LOCAL_PR_ARG 24438c2ecf20Sopenharmony_ci ) 24448c2ecf20Sopenharmony_ci); 24458c2ecf20Sopenharmony_ci 24468c2ecf20Sopenharmony_ciTRACE_EVENT(drv_channel_switch_beacon, 24478c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 24488c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 24498c2ecf20Sopenharmony_ci struct cfg80211_chan_def *chandef), 24508c2ecf20Sopenharmony_ci 24518c2ecf20Sopenharmony_ci TP_ARGS(local, sdata, chandef), 24528c2ecf20Sopenharmony_ci 24538c2ecf20Sopenharmony_ci TP_STRUCT__entry( 24548c2ecf20Sopenharmony_ci LOCAL_ENTRY 24558c2ecf20Sopenharmony_ci VIF_ENTRY 24568c2ecf20Sopenharmony_ci CHANDEF_ENTRY 24578c2ecf20Sopenharmony_ci ), 24588c2ecf20Sopenharmony_ci 24598c2ecf20Sopenharmony_ci TP_fast_assign( 24608c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 24618c2ecf20Sopenharmony_ci VIF_ASSIGN; 24628c2ecf20Sopenharmony_ci CHANDEF_ASSIGN(chandef); 24638c2ecf20Sopenharmony_ci ), 24648c2ecf20Sopenharmony_ci 24658c2ecf20Sopenharmony_ci TP_printk( 24668c2ecf20Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT " channel switch to " CHANDEF_PR_FMT, 24678c2ecf20Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, CHANDEF_PR_ARG 24688c2ecf20Sopenharmony_ci ) 24698c2ecf20Sopenharmony_ci); 24708c2ecf20Sopenharmony_ci 24718c2ecf20Sopenharmony_ciTRACE_EVENT(drv_pre_channel_switch, 24728c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 24738c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 24748c2ecf20Sopenharmony_ci struct ieee80211_channel_switch *ch_switch), 24758c2ecf20Sopenharmony_ci 24768c2ecf20Sopenharmony_ci TP_ARGS(local, sdata, ch_switch), 24778c2ecf20Sopenharmony_ci 24788c2ecf20Sopenharmony_ci TP_STRUCT__entry( 24798c2ecf20Sopenharmony_ci LOCAL_ENTRY 24808c2ecf20Sopenharmony_ci VIF_ENTRY 24818c2ecf20Sopenharmony_ci CHANDEF_ENTRY 24828c2ecf20Sopenharmony_ci __field(u64, timestamp) 24838c2ecf20Sopenharmony_ci __field(u32, device_timestamp) 24848c2ecf20Sopenharmony_ci __field(bool, block_tx) 24858c2ecf20Sopenharmony_ci __field(u8, count) 24868c2ecf20Sopenharmony_ci ), 24878c2ecf20Sopenharmony_ci 24888c2ecf20Sopenharmony_ci TP_fast_assign( 24898c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 24908c2ecf20Sopenharmony_ci VIF_ASSIGN; 24918c2ecf20Sopenharmony_ci CHANDEF_ASSIGN(&ch_switch->chandef) 24928c2ecf20Sopenharmony_ci __entry->timestamp = ch_switch->timestamp; 24938c2ecf20Sopenharmony_ci __entry->device_timestamp = ch_switch->device_timestamp; 24948c2ecf20Sopenharmony_ci __entry->block_tx = ch_switch->block_tx; 24958c2ecf20Sopenharmony_ci __entry->count = ch_switch->count; 24968c2ecf20Sopenharmony_ci ), 24978c2ecf20Sopenharmony_ci 24988c2ecf20Sopenharmony_ci TP_printk( 24998c2ecf20Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT " prepare channel switch to " 25008c2ecf20Sopenharmony_ci CHANDEF_PR_FMT " count:%d block_tx:%d timestamp:%llu", 25018c2ecf20Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, CHANDEF_PR_ARG, __entry->count, 25028c2ecf20Sopenharmony_ci __entry->block_tx, __entry->timestamp 25038c2ecf20Sopenharmony_ci ) 25048c2ecf20Sopenharmony_ci); 25058c2ecf20Sopenharmony_ci 25068c2ecf20Sopenharmony_ciDEFINE_EVENT(local_sdata_evt, drv_post_channel_switch, 25078c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 25088c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata), 25098c2ecf20Sopenharmony_ci TP_ARGS(local, sdata) 25108c2ecf20Sopenharmony_ci); 25118c2ecf20Sopenharmony_ci 25128c2ecf20Sopenharmony_ciDEFINE_EVENT(local_sdata_evt, drv_abort_channel_switch, 25138c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 25148c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata), 25158c2ecf20Sopenharmony_ci TP_ARGS(local, sdata) 25168c2ecf20Sopenharmony_ci); 25178c2ecf20Sopenharmony_ci 25188c2ecf20Sopenharmony_ciTRACE_EVENT(drv_channel_switch_rx_beacon, 25198c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 25208c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 25218c2ecf20Sopenharmony_ci struct ieee80211_channel_switch *ch_switch), 25228c2ecf20Sopenharmony_ci 25238c2ecf20Sopenharmony_ci TP_ARGS(local, sdata, ch_switch), 25248c2ecf20Sopenharmony_ci 25258c2ecf20Sopenharmony_ci TP_STRUCT__entry( 25268c2ecf20Sopenharmony_ci LOCAL_ENTRY 25278c2ecf20Sopenharmony_ci VIF_ENTRY 25288c2ecf20Sopenharmony_ci CHANDEF_ENTRY 25298c2ecf20Sopenharmony_ci __field(u64, timestamp) 25308c2ecf20Sopenharmony_ci __field(u32, device_timestamp) 25318c2ecf20Sopenharmony_ci __field(bool, block_tx) 25328c2ecf20Sopenharmony_ci __field(u8, count) 25338c2ecf20Sopenharmony_ci ), 25348c2ecf20Sopenharmony_ci 25358c2ecf20Sopenharmony_ci TP_fast_assign( 25368c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 25378c2ecf20Sopenharmony_ci VIF_ASSIGN; 25388c2ecf20Sopenharmony_ci CHANDEF_ASSIGN(&ch_switch->chandef) 25398c2ecf20Sopenharmony_ci __entry->timestamp = ch_switch->timestamp; 25408c2ecf20Sopenharmony_ci __entry->device_timestamp = ch_switch->device_timestamp; 25418c2ecf20Sopenharmony_ci __entry->block_tx = ch_switch->block_tx; 25428c2ecf20Sopenharmony_ci __entry->count = ch_switch->count; 25438c2ecf20Sopenharmony_ci ), 25448c2ecf20Sopenharmony_ci 25458c2ecf20Sopenharmony_ci TP_printk( 25468c2ecf20Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT 25478c2ecf20Sopenharmony_ci " received a channel switch beacon to " 25488c2ecf20Sopenharmony_ci CHANDEF_PR_FMT " count:%d block_tx:%d timestamp:%llu", 25498c2ecf20Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, CHANDEF_PR_ARG, __entry->count, 25508c2ecf20Sopenharmony_ci __entry->block_tx, __entry->timestamp 25518c2ecf20Sopenharmony_ci ) 25528c2ecf20Sopenharmony_ci); 25538c2ecf20Sopenharmony_ci 25548c2ecf20Sopenharmony_ciTRACE_EVENT(drv_get_txpower, 25558c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 25568c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 25578c2ecf20Sopenharmony_ci int dbm, int ret), 25588c2ecf20Sopenharmony_ci 25598c2ecf20Sopenharmony_ci TP_ARGS(local, sdata, dbm, ret), 25608c2ecf20Sopenharmony_ci 25618c2ecf20Sopenharmony_ci TP_STRUCT__entry( 25628c2ecf20Sopenharmony_ci LOCAL_ENTRY 25638c2ecf20Sopenharmony_ci VIF_ENTRY 25648c2ecf20Sopenharmony_ci __field(int, dbm) 25658c2ecf20Sopenharmony_ci __field(int, ret) 25668c2ecf20Sopenharmony_ci ), 25678c2ecf20Sopenharmony_ci 25688c2ecf20Sopenharmony_ci TP_fast_assign( 25698c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 25708c2ecf20Sopenharmony_ci VIF_ASSIGN; 25718c2ecf20Sopenharmony_ci __entry->dbm = dbm; 25728c2ecf20Sopenharmony_ci __entry->ret = ret; 25738c2ecf20Sopenharmony_ci ), 25748c2ecf20Sopenharmony_ci 25758c2ecf20Sopenharmony_ci TP_printk( 25768c2ecf20Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT " dbm:%d ret:%d", 25778c2ecf20Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, __entry->dbm, __entry->ret 25788c2ecf20Sopenharmony_ci ) 25798c2ecf20Sopenharmony_ci); 25808c2ecf20Sopenharmony_ci 25818c2ecf20Sopenharmony_ciTRACE_EVENT(drv_tdls_channel_switch, 25828c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 25838c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 25848c2ecf20Sopenharmony_ci struct ieee80211_sta *sta, u8 oper_class, 25858c2ecf20Sopenharmony_ci struct cfg80211_chan_def *chandef), 25868c2ecf20Sopenharmony_ci 25878c2ecf20Sopenharmony_ci TP_ARGS(local, sdata, sta, oper_class, chandef), 25888c2ecf20Sopenharmony_ci 25898c2ecf20Sopenharmony_ci TP_STRUCT__entry( 25908c2ecf20Sopenharmony_ci LOCAL_ENTRY 25918c2ecf20Sopenharmony_ci VIF_ENTRY 25928c2ecf20Sopenharmony_ci STA_ENTRY 25938c2ecf20Sopenharmony_ci __field(u8, oper_class) 25948c2ecf20Sopenharmony_ci CHANDEF_ENTRY 25958c2ecf20Sopenharmony_ci ), 25968c2ecf20Sopenharmony_ci 25978c2ecf20Sopenharmony_ci TP_fast_assign( 25988c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 25998c2ecf20Sopenharmony_ci VIF_ASSIGN; 26008c2ecf20Sopenharmony_ci STA_ASSIGN; 26018c2ecf20Sopenharmony_ci __entry->oper_class = oper_class; 26028c2ecf20Sopenharmony_ci CHANDEF_ASSIGN(chandef) 26038c2ecf20Sopenharmony_ci ), 26048c2ecf20Sopenharmony_ci 26058c2ecf20Sopenharmony_ci TP_printk( 26068c2ecf20Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT " tdls channel switch to" 26078c2ecf20Sopenharmony_ci CHANDEF_PR_FMT " oper_class:%d " STA_PR_FMT, 26088c2ecf20Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, CHANDEF_PR_ARG, __entry->oper_class, 26098c2ecf20Sopenharmony_ci STA_PR_ARG 26108c2ecf20Sopenharmony_ci ) 26118c2ecf20Sopenharmony_ci); 26128c2ecf20Sopenharmony_ci 26138c2ecf20Sopenharmony_ciTRACE_EVENT(drv_tdls_cancel_channel_switch, 26148c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 26158c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 26168c2ecf20Sopenharmony_ci struct ieee80211_sta *sta), 26178c2ecf20Sopenharmony_ci 26188c2ecf20Sopenharmony_ci TP_ARGS(local, sdata, sta), 26198c2ecf20Sopenharmony_ci 26208c2ecf20Sopenharmony_ci TP_STRUCT__entry( 26218c2ecf20Sopenharmony_ci LOCAL_ENTRY 26228c2ecf20Sopenharmony_ci VIF_ENTRY 26238c2ecf20Sopenharmony_ci STA_ENTRY 26248c2ecf20Sopenharmony_ci ), 26258c2ecf20Sopenharmony_ci 26268c2ecf20Sopenharmony_ci TP_fast_assign( 26278c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 26288c2ecf20Sopenharmony_ci VIF_ASSIGN; 26298c2ecf20Sopenharmony_ci STA_ASSIGN; 26308c2ecf20Sopenharmony_ci ), 26318c2ecf20Sopenharmony_ci 26328c2ecf20Sopenharmony_ci TP_printk( 26338c2ecf20Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT 26348c2ecf20Sopenharmony_ci " tdls cancel channel switch with " STA_PR_FMT, 26358c2ecf20Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, STA_PR_ARG 26368c2ecf20Sopenharmony_ci ) 26378c2ecf20Sopenharmony_ci); 26388c2ecf20Sopenharmony_ci 26398c2ecf20Sopenharmony_ciTRACE_EVENT(drv_tdls_recv_channel_switch, 26408c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 26418c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 26428c2ecf20Sopenharmony_ci struct ieee80211_tdls_ch_sw_params *params), 26438c2ecf20Sopenharmony_ci 26448c2ecf20Sopenharmony_ci TP_ARGS(local, sdata, params), 26458c2ecf20Sopenharmony_ci 26468c2ecf20Sopenharmony_ci TP_STRUCT__entry( 26478c2ecf20Sopenharmony_ci LOCAL_ENTRY 26488c2ecf20Sopenharmony_ci VIF_ENTRY 26498c2ecf20Sopenharmony_ci __field(u8, action_code) 26508c2ecf20Sopenharmony_ci STA_ENTRY 26518c2ecf20Sopenharmony_ci CHANDEF_ENTRY 26528c2ecf20Sopenharmony_ci __field(u32, status) 26538c2ecf20Sopenharmony_ci __field(bool, peer_initiator) 26548c2ecf20Sopenharmony_ci __field(u32, timestamp) 26558c2ecf20Sopenharmony_ci __field(u16, switch_time) 26568c2ecf20Sopenharmony_ci __field(u16, switch_timeout) 26578c2ecf20Sopenharmony_ci ), 26588c2ecf20Sopenharmony_ci 26598c2ecf20Sopenharmony_ci TP_fast_assign( 26608c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 26618c2ecf20Sopenharmony_ci VIF_ASSIGN; 26628c2ecf20Sopenharmony_ci STA_NAMED_ASSIGN(params->sta); 26638c2ecf20Sopenharmony_ci CHANDEF_ASSIGN(params->chandef) 26648c2ecf20Sopenharmony_ci __entry->peer_initiator = params->sta->tdls_initiator; 26658c2ecf20Sopenharmony_ci __entry->action_code = params->action_code; 26668c2ecf20Sopenharmony_ci __entry->status = params->status; 26678c2ecf20Sopenharmony_ci __entry->timestamp = params->timestamp; 26688c2ecf20Sopenharmony_ci __entry->switch_time = params->switch_time; 26698c2ecf20Sopenharmony_ci __entry->switch_timeout = params->switch_timeout; 26708c2ecf20Sopenharmony_ci ), 26718c2ecf20Sopenharmony_ci 26728c2ecf20Sopenharmony_ci TP_printk( 26738c2ecf20Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT " received tdls channel switch packet" 26748c2ecf20Sopenharmony_ci " action:%d status:%d time:%d switch time:%d switch" 26758c2ecf20Sopenharmony_ci " timeout:%d initiator: %d chan:" CHANDEF_PR_FMT STA_PR_FMT, 26768c2ecf20Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, __entry->action_code, __entry->status, 26778c2ecf20Sopenharmony_ci __entry->timestamp, __entry->switch_time, 26788c2ecf20Sopenharmony_ci __entry->switch_timeout, __entry->peer_initiator, 26798c2ecf20Sopenharmony_ci CHANDEF_PR_ARG, STA_PR_ARG 26808c2ecf20Sopenharmony_ci ) 26818c2ecf20Sopenharmony_ci); 26828c2ecf20Sopenharmony_ci 26838c2ecf20Sopenharmony_ciTRACE_EVENT(drv_wake_tx_queue, 26848c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 26858c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 26868c2ecf20Sopenharmony_ci struct txq_info *txq), 26878c2ecf20Sopenharmony_ci 26888c2ecf20Sopenharmony_ci TP_ARGS(local, sdata, txq), 26898c2ecf20Sopenharmony_ci 26908c2ecf20Sopenharmony_ci TP_STRUCT__entry( 26918c2ecf20Sopenharmony_ci LOCAL_ENTRY 26928c2ecf20Sopenharmony_ci VIF_ENTRY 26938c2ecf20Sopenharmony_ci STA_ENTRY 26948c2ecf20Sopenharmony_ci __field(u8, ac) 26958c2ecf20Sopenharmony_ci __field(u8, tid) 26968c2ecf20Sopenharmony_ci ), 26978c2ecf20Sopenharmony_ci 26988c2ecf20Sopenharmony_ci TP_fast_assign( 26998c2ecf20Sopenharmony_ci struct ieee80211_sta *sta = txq->txq.sta; 27008c2ecf20Sopenharmony_ci 27018c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 27028c2ecf20Sopenharmony_ci VIF_ASSIGN; 27038c2ecf20Sopenharmony_ci STA_ASSIGN; 27048c2ecf20Sopenharmony_ci __entry->ac = txq->txq.ac; 27058c2ecf20Sopenharmony_ci __entry->tid = txq->txq.tid; 27068c2ecf20Sopenharmony_ci ), 27078c2ecf20Sopenharmony_ci 27088c2ecf20Sopenharmony_ci TP_printk( 27098c2ecf20Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT STA_PR_FMT " ac:%d tid:%d", 27108c2ecf20Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, STA_PR_ARG, __entry->ac, __entry->tid 27118c2ecf20Sopenharmony_ci ) 27128c2ecf20Sopenharmony_ci); 27138c2ecf20Sopenharmony_ci 27148c2ecf20Sopenharmony_ciTRACE_EVENT(drv_get_ftm_responder_stats, 27158c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 27168c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 27178c2ecf20Sopenharmony_ci struct cfg80211_ftm_responder_stats *ftm_stats), 27188c2ecf20Sopenharmony_ci 27198c2ecf20Sopenharmony_ci TP_ARGS(local, sdata, ftm_stats), 27208c2ecf20Sopenharmony_ci 27218c2ecf20Sopenharmony_ci TP_STRUCT__entry( 27228c2ecf20Sopenharmony_ci LOCAL_ENTRY 27238c2ecf20Sopenharmony_ci VIF_ENTRY 27248c2ecf20Sopenharmony_ci ), 27258c2ecf20Sopenharmony_ci 27268c2ecf20Sopenharmony_ci TP_fast_assign( 27278c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 27288c2ecf20Sopenharmony_ci VIF_ASSIGN; 27298c2ecf20Sopenharmony_ci ), 27308c2ecf20Sopenharmony_ci 27318c2ecf20Sopenharmony_ci TP_printk( 27328c2ecf20Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT, 27338c2ecf20Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG 27348c2ecf20Sopenharmony_ci ) 27358c2ecf20Sopenharmony_ci); 27368c2ecf20Sopenharmony_ci 27378c2ecf20Sopenharmony_ciDEFINE_EVENT(local_sdata_addr_evt, drv_update_vif_offload, 27388c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 27398c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata), 27408c2ecf20Sopenharmony_ci TP_ARGS(local, sdata) 27418c2ecf20Sopenharmony_ci); 27428c2ecf20Sopenharmony_ci 27438c2ecf20Sopenharmony_ciTRACE_EVENT(drv_sta_set_4addr, 27448c2ecf20Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 27458c2ecf20Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 27468c2ecf20Sopenharmony_ci struct ieee80211_sta *sta, bool enabled), 27478c2ecf20Sopenharmony_ci 27488c2ecf20Sopenharmony_ci TP_ARGS(local, sdata, sta, enabled), 27498c2ecf20Sopenharmony_ci 27508c2ecf20Sopenharmony_ci TP_STRUCT__entry( 27518c2ecf20Sopenharmony_ci LOCAL_ENTRY 27528c2ecf20Sopenharmony_ci VIF_ENTRY 27538c2ecf20Sopenharmony_ci STA_ENTRY 27548c2ecf20Sopenharmony_ci __field(bool, enabled) 27558c2ecf20Sopenharmony_ci ), 27568c2ecf20Sopenharmony_ci 27578c2ecf20Sopenharmony_ci TP_fast_assign( 27588c2ecf20Sopenharmony_ci LOCAL_ASSIGN; 27598c2ecf20Sopenharmony_ci VIF_ASSIGN; 27608c2ecf20Sopenharmony_ci STA_ASSIGN; 27618c2ecf20Sopenharmony_ci __entry->enabled = enabled; 27628c2ecf20Sopenharmony_ci ), 27638c2ecf20Sopenharmony_ci 27648c2ecf20Sopenharmony_ci TP_printk( 27658c2ecf20Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT STA_PR_FMT " enabled:%d", 27668c2ecf20Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, STA_PR_ARG, __entry->enabled 27678c2ecf20Sopenharmony_ci ) 27688c2ecf20Sopenharmony_ci); 27698c2ecf20Sopenharmony_ci 27708c2ecf20Sopenharmony_ci#endif /* !__MAC80211_DRIVER_TRACE || TRACE_HEADER_MULTI_READ */ 27718c2ecf20Sopenharmony_ci 27728c2ecf20Sopenharmony_ci#undef TRACE_INCLUDE_PATH 27738c2ecf20Sopenharmony_ci#define TRACE_INCLUDE_PATH . 27748c2ecf20Sopenharmony_ci#undef TRACE_INCLUDE_FILE 27758c2ecf20Sopenharmony_ci#define TRACE_INCLUDE_FILE trace 27768c2ecf20Sopenharmony_ci#include <trace/define_trace.h> 2777