18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */ 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * Copyright (C) 2014 Felix Fietkau <nbd@openwrt.org> 48c2ecf20Sopenharmony_ci * Copyright (C) 2015 Jakub Kicinski <kubakici@wp.pl> 58c2ecf20Sopenharmony_ci */ 68c2ecf20Sopenharmony_ci 78c2ecf20Sopenharmony_ci#if !defined(__MT7601U_TRACE_H) || defined(TRACE_HEADER_MULTI_READ) 88c2ecf20Sopenharmony_ci#define __MT7601U_TRACE_H 98c2ecf20Sopenharmony_ci 108c2ecf20Sopenharmony_ci#include <linux/tracepoint.h> 118c2ecf20Sopenharmony_ci#include "mt7601u.h" 128c2ecf20Sopenharmony_ci#include "mac.h" 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_ci#undef TRACE_SYSTEM 158c2ecf20Sopenharmony_ci#define TRACE_SYSTEM mt7601u 168c2ecf20Sopenharmony_ci 178c2ecf20Sopenharmony_ci#define MAXNAME 32 188c2ecf20Sopenharmony_ci#define DEV_ENTRY __array(char, wiphy_name, 32) 198c2ecf20Sopenharmony_ci#define DEV_ASSIGN strlcpy(__entry->wiphy_name, \ 208c2ecf20Sopenharmony_ci wiphy_name(dev->hw->wiphy), MAXNAME) 218c2ecf20Sopenharmony_ci#define DEV_PR_FMT "%s " 228c2ecf20Sopenharmony_ci#define DEV_PR_ARG __entry->wiphy_name 238c2ecf20Sopenharmony_ci 248c2ecf20Sopenharmony_ci#define REG_ENTRY __field(u32, reg) __field(u32, val) 258c2ecf20Sopenharmony_ci#define REG_ASSIGN __entry->reg = reg; __entry->val = val 268c2ecf20Sopenharmony_ci#define REG_PR_FMT "%04x=%08x" 278c2ecf20Sopenharmony_ci#define REG_PR_ARG __entry->reg, __entry->val 288c2ecf20Sopenharmony_ci 298c2ecf20Sopenharmony_ciDECLARE_EVENT_CLASS(dev_reg_evtu, 308c2ecf20Sopenharmony_ci TP_PROTO(struct mt7601u_dev *dev, u32 reg, u32 val), 318c2ecf20Sopenharmony_ci TP_ARGS(dev, reg, val), 328c2ecf20Sopenharmony_ci TP_STRUCT__entry( 338c2ecf20Sopenharmony_ci DEV_ENTRY 348c2ecf20Sopenharmony_ci REG_ENTRY 358c2ecf20Sopenharmony_ci ), 368c2ecf20Sopenharmony_ci TP_fast_assign( 378c2ecf20Sopenharmony_ci DEV_ASSIGN; 388c2ecf20Sopenharmony_ci REG_ASSIGN; 398c2ecf20Sopenharmony_ci ), 408c2ecf20Sopenharmony_ci TP_printk( 418c2ecf20Sopenharmony_ci DEV_PR_FMT REG_PR_FMT, 428c2ecf20Sopenharmony_ci DEV_PR_ARG, REG_PR_ARG 438c2ecf20Sopenharmony_ci ) 448c2ecf20Sopenharmony_ci); 458c2ecf20Sopenharmony_ci 468c2ecf20Sopenharmony_ciDEFINE_EVENT(dev_reg_evtu, reg_read, 478c2ecf20Sopenharmony_ci TP_PROTO(struct mt7601u_dev *dev, u32 reg, u32 val), 488c2ecf20Sopenharmony_ci TP_ARGS(dev, reg, val) 498c2ecf20Sopenharmony_ci); 508c2ecf20Sopenharmony_ci 518c2ecf20Sopenharmony_ciDEFINE_EVENT(dev_reg_evtu, reg_write, 528c2ecf20Sopenharmony_ci TP_PROTO(struct mt7601u_dev *dev, u32 reg, u32 val), 538c2ecf20Sopenharmony_ci TP_ARGS(dev, reg, val) 548c2ecf20Sopenharmony_ci); 558c2ecf20Sopenharmony_ci 568c2ecf20Sopenharmony_ciTRACE_EVENT(mt_submit_urb, 578c2ecf20Sopenharmony_ci TP_PROTO(struct mt7601u_dev *dev, struct urb *u), 588c2ecf20Sopenharmony_ci TP_ARGS(dev, u), 598c2ecf20Sopenharmony_ci TP_STRUCT__entry( 608c2ecf20Sopenharmony_ci DEV_ENTRY __field(unsigned, pipe) __field(u32, len) 618c2ecf20Sopenharmony_ci ), 628c2ecf20Sopenharmony_ci TP_fast_assign( 638c2ecf20Sopenharmony_ci DEV_ASSIGN; 648c2ecf20Sopenharmony_ci __entry->pipe = u->pipe; 658c2ecf20Sopenharmony_ci __entry->len = u->transfer_buffer_length; 668c2ecf20Sopenharmony_ci ), 678c2ecf20Sopenharmony_ci TP_printk(DEV_PR_FMT "p:%08x len:%u", 688c2ecf20Sopenharmony_ci DEV_PR_ARG, __entry->pipe, __entry->len) 698c2ecf20Sopenharmony_ci); 708c2ecf20Sopenharmony_ci 718c2ecf20Sopenharmony_ci#define trace_mt_submit_urb_sync(__dev, __pipe, __len) ({ \ 728c2ecf20Sopenharmony_ci struct urb u; \ 738c2ecf20Sopenharmony_ci u.pipe = __pipe; \ 748c2ecf20Sopenharmony_ci u.transfer_buffer_length = __len; \ 758c2ecf20Sopenharmony_ci trace_mt_submit_urb(__dev, &u); \ 768c2ecf20Sopenharmony_ci}) 778c2ecf20Sopenharmony_ci 788c2ecf20Sopenharmony_ciTRACE_EVENT(mt_mcu_msg_send, 798c2ecf20Sopenharmony_ci TP_PROTO(struct mt7601u_dev *dev, 808c2ecf20Sopenharmony_ci struct sk_buff *skb, u32 csum, bool resp), 818c2ecf20Sopenharmony_ci TP_ARGS(dev, skb, csum, resp), 828c2ecf20Sopenharmony_ci TP_STRUCT__entry( 838c2ecf20Sopenharmony_ci DEV_ENTRY 848c2ecf20Sopenharmony_ci __field(u32, info) 858c2ecf20Sopenharmony_ci __field(u32, csum) 868c2ecf20Sopenharmony_ci __field(bool, resp) 878c2ecf20Sopenharmony_ci ), 888c2ecf20Sopenharmony_ci TP_fast_assign( 898c2ecf20Sopenharmony_ci DEV_ASSIGN; 908c2ecf20Sopenharmony_ci __entry->info = *(u32 *)skb->data; 918c2ecf20Sopenharmony_ci __entry->csum = csum; 928c2ecf20Sopenharmony_ci __entry->resp = resp; 938c2ecf20Sopenharmony_ci ), 948c2ecf20Sopenharmony_ci TP_printk(DEV_PR_FMT "i:%08x c:%08x r:%d", 958c2ecf20Sopenharmony_ci DEV_PR_ARG, __entry->info, __entry->csum, __entry->resp) 968c2ecf20Sopenharmony_ci); 978c2ecf20Sopenharmony_ci 988c2ecf20Sopenharmony_ciTRACE_EVENT(mt_vend_req, 998c2ecf20Sopenharmony_ci TP_PROTO(struct mt7601u_dev *dev, unsigned pipe, u8 req, u8 req_type, 1008c2ecf20Sopenharmony_ci u16 val, u16 offset, void *buf, size_t buflen, int ret), 1018c2ecf20Sopenharmony_ci TP_ARGS(dev, pipe, req, req_type, val, offset, buf, buflen, ret), 1028c2ecf20Sopenharmony_ci TP_STRUCT__entry( 1038c2ecf20Sopenharmony_ci DEV_ENTRY 1048c2ecf20Sopenharmony_ci __field(unsigned, pipe) __field(u8, req) __field(u8, req_type) 1058c2ecf20Sopenharmony_ci __field(u16, val) __field(u16, offset) __field(void*, buf) 1068c2ecf20Sopenharmony_ci __field(int, buflen) __field(int, ret) 1078c2ecf20Sopenharmony_ci ), 1088c2ecf20Sopenharmony_ci TP_fast_assign( 1098c2ecf20Sopenharmony_ci DEV_ASSIGN; 1108c2ecf20Sopenharmony_ci __entry->pipe = pipe; 1118c2ecf20Sopenharmony_ci __entry->req = req; 1128c2ecf20Sopenharmony_ci __entry->req_type = req_type; 1138c2ecf20Sopenharmony_ci __entry->val = val; 1148c2ecf20Sopenharmony_ci __entry->offset = offset; 1158c2ecf20Sopenharmony_ci __entry->buf = buf; 1168c2ecf20Sopenharmony_ci __entry->buflen = buflen; 1178c2ecf20Sopenharmony_ci __entry->ret = ret; 1188c2ecf20Sopenharmony_ci ), 1198c2ecf20Sopenharmony_ci TP_printk(DEV_PR_FMT 1208c2ecf20Sopenharmony_ci "%d p:%08x req:%02hhx %02hhx val:%04hx %04hx buf:%d %d", 1218c2ecf20Sopenharmony_ci DEV_PR_ARG, __entry->ret, __entry->pipe, __entry->req, 1228c2ecf20Sopenharmony_ci __entry->req_type, __entry->val, __entry->offset, 1238c2ecf20Sopenharmony_ci !!__entry->buf, __entry->buflen) 1248c2ecf20Sopenharmony_ci); 1258c2ecf20Sopenharmony_ci 1268c2ecf20Sopenharmony_ciTRACE_EVENT(ee_read, 1278c2ecf20Sopenharmony_ci TP_PROTO(struct mt7601u_dev *dev, int offset, u16 val), 1288c2ecf20Sopenharmony_ci TP_ARGS(dev, offset, val), 1298c2ecf20Sopenharmony_ci TP_STRUCT__entry( 1308c2ecf20Sopenharmony_ci DEV_ENTRY 1318c2ecf20Sopenharmony_ci __field(int, o) __field(u16, v) 1328c2ecf20Sopenharmony_ci ), 1338c2ecf20Sopenharmony_ci TP_fast_assign( 1348c2ecf20Sopenharmony_ci DEV_ASSIGN; 1358c2ecf20Sopenharmony_ci __entry->o = offset; 1368c2ecf20Sopenharmony_ci __entry->v = val; 1378c2ecf20Sopenharmony_ci ), 1388c2ecf20Sopenharmony_ci TP_printk(DEV_PR_FMT "%04x=%04x", DEV_PR_ARG, __entry->o, __entry->v) 1398c2ecf20Sopenharmony_ci); 1408c2ecf20Sopenharmony_ci 1418c2ecf20Sopenharmony_ciDECLARE_EVENT_CLASS(dev_rf_reg_evt, 1428c2ecf20Sopenharmony_ci TP_PROTO(struct mt7601u_dev *dev, u8 bank, u8 reg, u8 val), 1438c2ecf20Sopenharmony_ci TP_ARGS(dev, bank, reg, val), 1448c2ecf20Sopenharmony_ci TP_STRUCT__entry( 1458c2ecf20Sopenharmony_ci DEV_ENTRY 1468c2ecf20Sopenharmony_ci __field(u8, bank) 1478c2ecf20Sopenharmony_ci __field(u8, reg) 1488c2ecf20Sopenharmony_ci __field(u8, val) 1498c2ecf20Sopenharmony_ci ), 1508c2ecf20Sopenharmony_ci TP_fast_assign( 1518c2ecf20Sopenharmony_ci DEV_ASSIGN; 1528c2ecf20Sopenharmony_ci REG_ASSIGN; 1538c2ecf20Sopenharmony_ci __entry->bank = bank; 1548c2ecf20Sopenharmony_ci ), 1558c2ecf20Sopenharmony_ci TP_printk( 1568c2ecf20Sopenharmony_ci DEV_PR_FMT "%02hhx:%02hhx=%02hhx", 1578c2ecf20Sopenharmony_ci DEV_PR_ARG, __entry->bank, __entry->reg, __entry->val 1588c2ecf20Sopenharmony_ci ) 1598c2ecf20Sopenharmony_ci); 1608c2ecf20Sopenharmony_ci 1618c2ecf20Sopenharmony_ciDEFINE_EVENT(dev_rf_reg_evt, rf_read, 1628c2ecf20Sopenharmony_ci TP_PROTO(struct mt7601u_dev *dev, u8 bank, u8 reg, u8 val), 1638c2ecf20Sopenharmony_ci TP_ARGS(dev, bank, reg, val) 1648c2ecf20Sopenharmony_ci); 1658c2ecf20Sopenharmony_ci 1668c2ecf20Sopenharmony_ciDEFINE_EVENT(dev_rf_reg_evt, rf_write, 1678c2ecf20Sopenharmony_ci TP_PROTO(struct mt7601u_dev *dev, u8 bank, u8 reg, u8 val), 1688c2ecf20Sopenharmony_ci TP_ARGS(dev, bank, reg, val) 1698c2ecf20Sopenharmony_ci); 1708c2ecf20Sopenharmony_ci 1718c2ecf20Sopenharmony_ciDECLARE_EVENT_CLASS(dev_bbp_reg_evt, 1728c2ecf20Sopenharmony_ci TP_PROTO(struct mt7601u_dev *dev, u8 reg, u8 val), 1738c2ecf20Sopenharmony_ci TP_ARGS(dev, reg, val), 1748c2ecf20Sopenharmony_ci TP_STRUCT__entry( 1758c2ecf20Sopenharmony_ci DEV_ENTRY 1768c2ecf20Sopenharmony_ci __field(u8, reg) 1778c2ecf20Sopenharmony_ci __field(u8, val) 1788c2ecf20Sopenharmony_ci ), 1798c2ecf20Sopenharmony_ci TP_fast_assign( 1808c2ecf20Sopenharmony_ci DEV_ASSIGN; 1818c2ecf20Sopenharmony_ci REG_ASSIGN; 1828c2ecf20Sopenharmony_ci ), 1838c2ecf20Sopenharmony_ci TP_printk( 1848c2ecf20Sopenharmony_ci DEV_PR_FMT "%02hhx=%02hhx", 1858c2ecf20Sopenharmony_ci DEV_PR_ARG, __entry->reg, __entry->val 1868c2ecf20Sopenharmony_ci ) 1878c2ecf20Sopenharmony_ci); 1888c2ecf20Sopenharmony_ci 1898c2ecf20Sopenharmony_ciDEFINE_EVENT(dev_bbp_reg_evt, bbp_read, 1908c2ecf20Sopenharmony_ci TP_PROTO(struct mt7601u_dev *dev, u8 reg, u8 val), 1918c2ecf20Sopenharmony_ci TP_ARGS(dev, reg, val) 1928c2ecf20Sopenharmony_ci); 1938c2ecf20Sopenharmony_ci 1948c2ecf20Sopenharmony_ciDEFINE_EVENT(dev_bbp_reg_evt, bbp_write, 1958c2ecf20Sopenharmony_ci TP_PROTO(struct mt7601u_dev *dev, u8 reg, u8 val), 1968c2ecf20Sopenharmony_ci TP_ARGS(dev, reg, val) 1978c2ecf20Sopenharmony_ci); 1988c2ecf20Sopenharmony_ci 1998c2ecf20Sopenharmony_ciDECLARE_EVENT_CLASS(dev_simple_evt, 2008c2ecf20Sopenharmony_ci TP_PROTO(struct mt7601u_dev *dev, u8 val), 2018c2ecf20Sopenharmony_ci TP_ARGS(dev, val), 2028c2ecf20Sopenharmony_ci TP_STRUCT__entry( 2038c2ecf20Sopenharmony_ci DEV_ENTRY 2048c2ecf20Sopenharmony_ci __field(u8, val) 2058c2ecf20Sopenharmony_ci ), 2068c2ecf20Sopenharmony_ci TP_fast_assign( 2078c2ecf20Sopenharmony_ci DEV_ASSIGN; 2088c2ecf20Sopenharmony_ci __entry->val = val; 2098c2ecf20Sopenharmony_ci ), 2108c2ecf20Sopenharmony_ci TP_printk( 2118c2ecf20Sopenharmony_ci DEV_PR_FMT "%02hhx", DEV_PR_ARG, __entry->val 2128c2ecf20Sopenharmony_ci ) 2138c2ecf20Sopenharmony_ci); 2148c2ecf20Sopenharmony_ci 2158c2ecf20Sopenharmony_ciDEFINE_EVENT(dev_simple_evt, temp_mode, 2168c2ecf20Sopenharmony_ci TP_PROTO(struct mt7601u_dev *dev, u8 val), 2178c2ecf20Sopenharmony_ci TP_ARGS(dev, val) 2188c2ecf20Sopenharmony_ci); 2198c2ecf20Sopenharmony_ci 2208c2ecf20Sopenharmony_ciDEFINE_EVENT(dev_simple_evt, read_temp, 2218c2ecf20Sopenharmony_ci TP_PROTO(struct mt7601u_dev *dev, u8 val), 2228c2ecf20Sopenharmony_ci TP_ARGS(dev, val) 2238c2ecf20Sopenharmony_ci); 2248c2ecf20Sopenharmony_ci 2258c2ecf20Sopenharmony_ciDEFINE_EVENT(dev_simple_evt, freq_cal_adjust, 2268c2ecf20Sopenharmony_ci TP_PROTO(struct mt7601u_dev *dev, u8 val), 2278c2ecf20Sopenharmony_ci TP_ARGS(dev, val) 2288c2ecf20Sopenharmony_ci); 2298c2ecf20Sopenharmony_ci 2308c2ecf20Sopenharmony_ciTRACE_EVENT(freq_cal_offset, 2318c2ecf20Sopenharmony_ci TP_PROTO(struct mt7601u_dev *dev, u8 phy_mode, s8 freq_off), 2328c2ecf20Sopenharmony_ci TP_ARGS(dev, phy_mode, freq_off), 2338c2ecf20Sopenharmony_ci TP_STRUCT__entry( 2348c2ecf20Sopenharmony_ci DEV_ENTRY 2358c2ecf20Sopenharmony_ci __field(u8, phy_mode) 2368c2ecf20Sopenharmony_ci __field(s8, freq_off) 2378c2ecf20Sopenharmony_ci ), 2388c2ecf20Sopenharmony_ci TP_fast_assign( 2398c2ecf20Sopenharmony_ci DEV_ASSIGN; 2408c2ecf20Sopenharmony_ci __entry->phy_mode = phy_mode; 2418c2ecf20Sopenharmony_ci __entry->freq_off = freq_off; 2428c2ecf20Sopenharmony_ci ), 2438c2ecf20Sopenharmony_ci TP_printk(DEV_PR_FMT "phy:%02hhx off:%02hhx", 2448c2ecf20Sopenharmony_ci DEV_PR_ARG, __entry->phy_mode, __entry->freq_off) 2458c2ecf20Sopenharmony_ci); 2468c2ecf20Sopenharmony_ci 2478c2ecf20Sopenharmony_ciTRACE_EVENT(mt_rx, 2488c2ecf20Sopenharmony_ci TP_PROTO(struct mt7601u_dev *dev, struct mt7601u_rxwi *rxwi, u32 f), 2498c2ecf20Sopenharmony_ci TP_ARGS(dev, rxwi, f), 2508c2ecf20Sopenharmony_ci TP_STRUCT__entry( 2518c2ecf20Sopenharmony_ci DEV_ENTRY 2528c2ecf20Sopenharmony_ci __field_struct(struct mt7601u_rxwi, rxwi) 2538c2ecf20Sopenharmony_ci __field(u32, fce_info) 2548c2ecf20Sopenharmony_ci ), 2558c2ecf20Sopenharmony_ci TP_fast_assign( 2568c2ecf20Sopenharmony_ci DEV_ASSIGN; 2578c2ecf20Sopenharmony_ci __entry->rxwi = *rxwi; 2588c2ecf20Sopenharmony_ci __entry->fce_info = f; 2598c2ecf20Sopenharmony_ci ), 2608c2ecf20Sopenharmony_ci TP_printk(DEV_PR_FMT "rxi:%08x ctl:%08x frag_sn:%04hx rate:%04hx " 2618c2ecf20Sopenharmony_ci "uknw:%02hhx z:%02hhx%02hhx%02hhx snr:%02hhx " 2628c2ecf20Sopenharmony_ci "ant:%02hhx gain:%02hhx freq_o:%02hhx " 2638c2ecf20Sopenharmony_ci "r:%08x ea:%08x fce:%08x", DEV_PR_ARG, 2648c2ecf20Sopenharmony_ci le32_to_cpu(__entry->rxwi.rxinfo), 2658c2ecf20Sopenharmony_ci le32_to_cpu(__entry->rxwi.ctl), 2668c2ecf20Sopenharmony_ci le16_to_cpu(__entry->rxwi.frag_sn), 2678c2ecf20Sopenharmony_ci le16_to_cpu(__entry->rxwi.rate), 2688c2ecf20Sopenharmony_ci __entry->rxwi.unknown, 2698c2ecf20Sopenharmony_ci __entry->rxwi.zero[0], __entry->rxwi.zero[1], 2708c2ecf20Sopenharmony_ci __entry->rxwi.zero[2], 2718c2ecf20Sopenharmony_ci __entry->rxwi.snr, __entry->rxwi.ant, 2728c2ecf20Sopenharmony_ci __entry->rxwi.gain, __entry->rxwi.freq_off, 2738c2ecf20Sopenharmony_ci __entry->rxwi.resv2, __entry->rxwi.expert_ant, 2748c2ecf20Sopenharmony_ci __entry->fce_info) 2758c2ecf20Sopenharmony_ci); 2768c2ecf20Sopenharmony_ci 2778c2ecf20Sopenharmony_ciTRACE_EVENT(mt_tx, 2788c2ecf20Sopenharmony_ci TP_PROTO(struct mt7601u_dev *dev, struct sk_buff *skb, 2798c2ecf20Sopenharmony_ci struct mt76_sta *sta, struct mt76_txwi *h), 2808c2ecf20Sopenharmony_ci TP_ARGS(dev, skb, sta, h), 2818c2ecf20Sopenharmony_ci TP_STRUCT__entry( 2828c2ecf20Sopenharmony_ci DEV_ENTRY 2838c2ecf20Sopenharmony_ci __field_struct(struct mt76_txwi, h) 2848c2ecf20Sopenharmony_ci __field(struct sk_buff *, skb) 2858c2ecf20Sopenharmony_ci __field(struct mt76_sta *, sta) 2868c2ecf20Sopenharmony_ci ), 2878c2ecf20Sopenharmony_ci TP_fast_assign( 2888c2ecf20Sopenharmony_ci DEV_ASSIGN; 2898c2ecf20Sopenharmony_ci __entry->h = *h; 2908c2ecf20Sopenharmony_ci __entry->skb = skb; 2918c2ecf20Sopenharmony_ci __entry->sta = sta; 2928c2ecf20Sopenharmony_ci ), 2938c2ecf20Sopenharmony_ci TP_printk(DEV_PR_FMT "skb:%p sta:%p flg:%04hx rate_ctl:%04hx " 2948c2ecf20Sopenharmony_ci "ack:%02hhx wcid:%02hhx len_ctl:%05hx", DEV_PR_ARG, 2958c2ecf20Sopenharmony_ci __entry->skb, __entry->sta, 2968c2ecf20Sopenharmony_ci le16_to_cpu(__entry->h.flags), 2978c2ecf20Sopenharmony_ci le16_to_cpu(__entry->h.rate_ctl), 2988c2ecf20Sopenharmony_ci __entry->h.ack_ctl, __entry->h.wcid, 2998c2ecf20Sopenharmony_ci le16_to_cpu(__entry->h.len_ctl)) 3008c2ecf20Sopenharmony_ci); 3018c2ecf20Sopenharmony_ci 3028c2ecf20Sopenharmony_ciTRACE_EVENT(mt_tx_dma_done, 3038c2ecf20Sopenharmony_ci TP_PROTO(struct mt7601u_dev *dev, struct sk_buff *skb), 3048c2ecf20Sopenharmony_ci TP_ARGS(dev, skb), 3058c2ecf20Sopenharmony_ci TP_STRUCT__entry( 3068c2ecf20Sopenharmony_ci DEV_ENTRY 3078c2ecf20Sopenharmony_ci __field(struct sk_buff *, skb) 3088c2ecf20Sopenharmony_ci ), 3098c2ecf20Sopenharmony_ci TP_fast_assign( 3108c2ecf20Sopenharmony_ci DEV_ASSIGN; 3118c2ecf20Sopenharmony_ci __entry->skb = skb; 3128c2ecf20Sopenharmony_ci ), 3138c2ecf20Sopenharmony_ci TP_printk(DEV_PR_FMT "%p", DEV_PR_ARG, __entry->skb) 3148c2ecf20Sopenharmony_ci); 3158c2ecf20Sopenharmony_ci 3168c2ecf20Sopenharmony_ciTRACE_EVENT(mt_tx_status_cleaned, 3178c2ecf20Sopenharmony_ci TP_PROTO(struct mt7601u_dev *dev, int cleaned), 3188c2ecf20Sopenharmony_ci TP_ARGS(dev, cleaned), 3198c2ecf20Sopenharmony_ci TP_STRUCT__entry( 3208c2ecf20Sopenharmony_ci DEV_ENTRY 3218c2ecf20Sopenharmony_ci __field(int, cleaned) 3228c2ecf20Sopenharmony_ci ), 3238c2ecf20Sopenharmony_ci TP_fast_assign( 3248c2ecf20Sopenharmony_ci DEV_ASSIGN; 3258c2ecf20Sopenharmony_ci __entry->cleaned = cleaned; 3268c2ecf20Sopenharmony_ci ), 3278c2ecf20Sopenharmony_ci TP_printk(DEV_PR_FMT "%d", DEV_PR_ARG, __entry->cleaned) 3288c2ecf20Sopenharmony_ci); 3298c2ecf20Sopenharmony_ci 3308c2ecf20Sopenharmony_ciTRACE_EVENT(mt_tx_status, 3318c2ecf20Sopenharmony_ci TP_PROTO(struct mt7601u_dev *dev, u32 stat1, u32 stat2), 3328c2ecf20Sopenharmony_ci TP_ARGS(dev, stat1, stat2), 3338c2ecf20Sopenharmony_ci TP_STRUCT__entry( 3348c2ecf20Sopenharmony_ci DEV_ENTRY 3358c2ecf20Sopenharmony_ci __field(u32, stat1) __field(u32, stat2) 3368c2ecf20Sopenharmony_ci ), 3378c2ecf20Sopenharmony_ci TP_fast_assign( 3388c2ecf20Sopenharmony_ci DEV_ASSIGN; 3398c2ecf20Sopenharmony_ci __entry->stat1 = stat1; 3408c2ecf20Sopenharmony_ci __entry->stat2 = stat2; 3418c2ecf20Sopenharmony_ci ), 3428c2ecf20Sopenharmony_ci TP_printk(DEV_PR_FMT "%08x %08x", 3438c2ecf20Sopenharmony_ci DEV_PR_ARG, __entry->stat1, __entry->stat2) 3448c2ecf20Sopenharmony_ci); 3458c2ecf20Sopenharmony_ci 3468c2ecf20Sopenharmony_ciTRACE_EVENT(mt_rx_dma_aggr, 3478c2ecf20Sopenharmony_ci TP_PROTO(struct mt7601u_dev *dev, int cnt, bool paged), 3488c2ecf20Sopenharmony_ci TP_ARGS(dev, cnt, paged), 3498c2ecf20Sopenharmony_ci TP_STRUCT__entry( 3508c2ecf20Sopenharmony_ci DEV_ENTRY 3518c2ecf20Sopenharmony_ci __field(u8, cnt) 3528c2ecf20Sopenharmony_ci __field(bool, paged) 3538c2ecf20Sopenharmony_ci ), 3548c2ecf20Sopenharmony_ci TP_fast_assign( 3558c2ecf20Sopenharmony_ci DEV_ASSIGN; 3568c2ecf20Sopenharmony_ci __entry->cnt = cnt; 3578c2ecf20Sopenharmony_ci __entry->paged = paged; 3588c2ecf20Sopenharmony_ci ), 3598c2ecf20Sopenharmony_ci TP_printk(DEV_PR_FMT "cnt:%d paged:%d", 3608c2ecf20Sopenharmony_ci DEV_PR_ARG, __entry->cnt, __entry->paged) 3618c2ecf20Sopenharmony_ci); 3628c2ecf20Sopenharmony_ci 3638c2ecf20Sopenharmony_ciDEFINE_EVENT(dev_simple_evt, set_key, 3648c2ecf20Sopenharmony_ci TP_PROTO(struct mt7601u_dev *dev, u8 val), 3658c2ecf20Sopenharmony_ci TP_ARGS(dev, val) 3668c2ecf20Sopenharmony_ci); 3678c2ecf20Sopenharmony_ci 3688c2ecf20Sopenharmony_ciTRACE_EVENT(set_shared_key, 3698c2ecf20Sopenharmony_ci TP_PROTO(struct mt7601u_dev *dev, u8 vid, u8 key), 3708c2ecf20Sopenharmony_ci TP_ARGS(dev, vid, key), 3718c2ecf20Sopenharmony_ci TP_STRUCT__entry( 3728c2ecf20Sopenharmony_ci DEV_ENTRY 3738c2ecf20Sopenharmony_ci __field(u8, vid) 3748c2ecf20Sopenharmony_ci __field(u8, key) 3758c2ecf20Sopenharmony_ci ), 3768c2ecf20Sopenharmony_ci TP_fast_assign( 3778c2ecf20Sopenharmony_ci DEV_ASSIGN; 3788c2ecf20Sopenharmony_ci __entry->vid = vid; 3798c2ecf20Sopenharmony_ci __entry->key = key; 3808c2ecf20Sopenharmony_ci ), 3818c2ecf20Sopenharmony_ci TP_printk(DEV_PR_FMT "phy:%02hhx off:%02hhx", 3828c2ecf20Sopenharmony_ci DEV_PR_ARG, __entry->vid, __entry->key) 3838c2ecf20Sopenharmony_ci); 3848c2ecf20Sopenharmony_ci 3858c2ecf20Sopenharmony_ci#endif 3868c2ecf20Sopenharmony_ci 3878c2ecf20Sopenharmony_ci#undef TRACE_INCLUDE_PATH 3888c2ecf20Sopenharmony_ci#define TRACE_INCLUDE_PATH . 3898c2ecf20Sopenharmony_ci#undef TRACE_INCLUDE_FILE 3908c2ecf20Sopenharmony_ci#define TRACE_INCLUDE_FILE trace 3918c2ecf20Sopenharmony_ci 3928c2ecf20Sopenharmony_ci#include <trace/define_trace.h> 393