xref: /openbmc/linux/drivers/net/wireless/mediatek/mt7601u/trace.h (revision 2612e3bbc0386368a850140a6c9b990cd496a5ec)
11802d0beSThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-only */
2c869f77dSJakub Kicinski /*
3c869f77dSJakub Kicinski  * Copyright (C) 2014 Felix Fietkau <nbd@openwrt.org>
4c869f77dSJakub Kicinski  * Copyright (C) 2015 Jakub Kicinski <kubakici@wp.pl>
5c869f77dSJakub Kicinski  */
6c869f77dSJakub Kicinski 
7c869f77dSJakub Kicinski #if !defined(__MT7601U_TRACE_H) || defined(TRACE_HEADER_MULTI_READ)
8c869f77dSJakub Kicinski #define __MT7601U_TRACE_H
9c869f77dSJakub Kicinski 
10c869f77dSJakub Kicinski #include <linux/tracepoint.h>
11c869f77dSJakub Kicinski #include "mt7601u.h"
12c869f77dSJakub Kicinski #include "mac.h"
13c869f77dSJakub Kicinski 
14c869f77dSJakub Kicinski #undef TRACE_SYSTEM
15c869f77dSJakub Kicinski #define TRACE_SYSTEM mt7601u
16c869f77dSJakub Kicinski 
17c869f77dSJakub Kicinski #define MAXNAME		32
18c869f77dSJakub Kicinski #define DEV_ENTRY	__array(char, wiphy_name, 32)
19*7edbd53aSAzeem Shaikh #define DEV_ASSIGN	strscpy(__entry->wiphy_name,			\
20c869f77dSJakub Kicinski 				wiphy_name(dev->hw->wiphy), MAXNAME)
21c869f77dSJakub Kicinski #define DEV_PR_FMT	"%s "
22c869f77dSJakub Kicinski #define DEV_PR_ARG	__entry->wiphy_name
23c869f77dSJakub Kicinski 
24c869f77dSJakub Kicinski #define REG_ENTRY	__field(u32, reg) __field(u32, val)
25c869f77dSJakub Kicinski #define REG_ASSIGN	__entry->reg = reg; __entry->val = val
26c869f77dSJakub Kicinski #define REG_PR_FMT	"%04x=%08x"
27c869f77dSJakub Kicinski #define REG_PR_ARG	__entry->reg, __entry->val
28c869f77dSJakub Kicinski 
29d992ee6cSAlexei Starovoitov DECLARE_EVENT_CLASS(dev_reg_evtu,
30c869f77dSJakub Kicinski 	TP_PROTO(struct mt7601u_dev *dev, u32 reg, u32 val),
31c869f77dSJakub Kicinski 	TP_ARGS(dev, reg, val),
32c869f77dSJakub Kicinski 	TP_STRUCT__entry(
33c869f77dSJakub Kicinski 		DEV_ENTRY
34c869f77dSJakub Kicinski 		REG_ENTRY
35c869f77dSJakub Kicinski 	),
36c869f77dSJakub Kicinski 	TP_fast_assign(
37c869f77dSJakub Kicinski 		DEV_ASSIGN;
38c869f77dSJakub Kicinski 		REG_ASSIGN;
39c869f77dSJakub Kicinski 	),
40c869f77dSJakub Kicinski 	TP_printk(
41c869f77dSJakub Kicinski 		DEV_PR_FMT REG_PR_FMT,
42c869f77dSJakub Kicinski 		DEV_PR_ARG, REG_PR_ARG
43c869f77dSJakub Kicinski 	)
44c869f77dSJakub Kicinski );
45c869f77dSJakub Kicinski 
46d992ee6cSAlexei Starovoitov DEFINE_EVENT(dev_reg_evtu, reg_read,
47c869f77dSJakub Kicinski 	TP_PROTO(struct mt7601u_dev *dev, u32 reg, u32 val),
48c869f77dSJakub Kicinski 	TP_ARGS(dev, reg, val)
49c869f77dSJakub Kicinski );
50c869f77dSJakub Kicinski 
51d992ee6cSAlexei Starovoitov DEFINE_EVENT(dev_reg_evtu, reg_write,
52c869f77dSJakub Kicinski 	TP_PROTO(struct mt7601u_dev *dev, u32 reg, u32 val),
53c869f77dSJakub Kicinski 	TP_ARGS(dev, reg, val)
54c869f77dSJakub Kicinski );
55c869f77dSJakub Kicinski 
56c869f77dSJakub Kicinski TRACE_EVENT(mt_submit_urb,
57c869f77dSJakub Kicinski 	TP_PROTO(struct mt7601u_dev *dev, struct urb *u),
58c869f77dSJakub Kicinski 	TP_ARGS(dev, u),
59c869f77dSJakub Kicinski 	TP_STRUCT__entry(
60c869f77dSJakub Kicinski 		DEV_ENTRY __field(unsigned, pipe) __field(u32, len)
61c869f77dSJakub Kicinski 	),
62c869f77dSJakub Kicinski 	TP_fast_assign(
63c869f77dSJakub Kicinski 		DEV_ASSIGN;
64c869f77dSJakub Kicinski 		__entry->pipe = u->pipe;
65c869f77dSJakub Kicinski 		__entry->len = u->transfer_buffer_length;
66c869f77dSJakub Kicinski 	),
67c869f77dSJakub Kicinski 	TP_printk(DEV_PR_FMT "p:%08x len:%u",
68c869f77dSJakub Kicinski 		  DEV_PR_ARG, __entry->pipe, __entry->len)
69c869f77dSJakub Kicinski );
70c869f77dSJakub Kicinski 
71c869f77dSJakub Kicinski #define trace_mt_submit_urb_sync(__dev, __pipe, __len) ({	\
72c869f77dSJakub Kicinski 	struct urb u;					\
73c869f77dSJakub Kicinski 	u.pipe = __pipe;				\
74c869f77dSJakub Kicinski 	u.transfer_buffer_length = __len;		\
75c869f77dSJakub Kicinski 	trace_mt_submit_urb(__dev, &u);			\
76c869f77dSJakub Kicinski })
77c869f77dSJakub Kicinski 
78c869f77dSJakub Kicinski TRACE_EVENT(mt_mcu_msg_send,
79c869f77dSJakub Kicinski 	TP_PROTO(struct mt7601u_dev *dev,
80c869f77dSJakub Kicinski 		 struct sk_buff *skb, u32 csum, bool resp),
81c869f77dSJakub Kicinski 	TP_ARGS(dev, skb, csum, resp),
82c869f77dSJakub Kicinski 	TP_STRUCT__entry(
83c869f77dSJakub Kicinski 		DEV_ENTRY
84c869f77dSJakub Kicinski 		__field(u32, info)
85c869f77dSJakub Kicinski 		__field(u32, csum)
86c869f77dSJakub Kicinski 		__field(bool, resp)
87c869f77dSJakub Kicinski 	),
88c869f77dSJakub Kicinski 	TP_fast_assign(
89c869f77dSJakub Kicinski 		DEV_ASSIGN;
90c869f77dSJakub Kicinski 		__entry->info = *(u32 *)skb->data;
91c869f77dSJakub Kicinski 		__entry->csum = csum;
92c869f77dSJakub Kicinski 		__entry->resp = resp;
93c869f77dSJakub Kicinski 	),
94c869f77dSJakub Kicinski 	TP_printk(DEV_PR_FMT "i:%08x c:%08x r:%d",
95c869f77dSJakub Kicinski 		  DEV_PR_ARG, __entry->info, __entry->csum, __entry->resp)
96c869f77dSJakub Kicinski );
97c869f77dSJakub Kicinski 
98c869f77dSJakub Kicinski TRACE_EVENT(mt_vend_req,
99c869f77dSJakub Kicinski 	TP_PROTO(struct mt7601u_dev *dev, unsigned pipe, u8 req, u8 req_type,
100c869f77dSJakub Kicinski 		 u16 val, u16 offset, void *buf, size_t buflen, int ret),
101c869f77dSJakub Kicinski 	TP_ARGS(dev, pipe, req, req_type, val, offset, buf, buflen, ret),
102c869f77dSJakub Kicinski 	TP_STRUCT__entry(
103c869f77dSJakub Kicinski 		DEV_ENTRY
104c869f77dSJakub Kicinski 		__field(unsigned, pipe) __field(u8, req) __field(u8, req_type)
105c869f77dSJakub Kicinski 		__field(u16, val) __field(u16, offset) __field(void*, buf)
106c869f77dSJakub Kicinski 		__field(int, buflen) __field(int, ret)
107c869f77dSJakub Kicinski 	),
108c869f77dSJakub Kicinski 	TP_fast_assign(
109c869f77dSJakub Kicinski 		DEV_ASSIGN;
110c869f77dSJakub Kicinski 		__entry->pipe = pipe;
111c869f77dSJakub Kicinski 		__entry->req = req;
112c869f77dSJakub Kicinski 		__entry->req_type = req_type;
113c869f77dSJakub Kicinski 		__entry->val = val;
114c869f77dSJakub Kicinski 		__entry->offset = offset;
115c869f77dSJakub Kicinski 		__entry->buf = buf;
116c869f77dSJakub Kicinski 		__entry->buflen = buflen;
117c869f77dSJakub Kicinski 		__entry->ret = ret;
118c869f77dSJakub Kicinski 	),
119c869f77dSJakub Kicinski 	TP_printk(DEV_PR_FMT
120c869f77dSJakub Kicinski 		  "%d p:%08x req:%02hhx %02hhx val:%04hx %04hx buf:%d %d",
121c869f77dSJakub Kicinski 		  DEV_PR_ARG, __entry->ret, __entry->pipe, __entry->req,
122c869f77dSJakub Kicinski 		  __entry->req_type, __entry->val, __entry->offset,
123c869f77dSJakub Kicinski 		  !!__entry->buf, __entry->buflen)
124c869f77dSJakub Kicinski );
125c869f77dSJakub Kicinski 
126c869f77dSJakub Kicinski TRACE_EVENT(ee_read,
127c869f77dSJakub Kicinski 	TP_PROTO(struct mt7601u_dev *dev, int offset, u16 val),
128c869f77dSJakub Kicinski 	TP_ARGS(dev, offset, val),
129c869f77dSJakub Kicinski 	TP_STRUCT__entry(
130c869f77dSJakub Kicinski 		DEV_ENTRY
131c869f77dSJakub Kicinski 		__field(int, o) __field(u16, v)
132c869f77dSJakub Kicinski 	),
133c869f77dSJakub Kicinski 	TP_fast_assign(
134c869f77dSJakub Kicinski 		DEV_ASSIGN;
135c869f77dSJakub Kicinski 		__entry->o = offset;
136c869f77dSJakub Kicinski 		__entry->v = val;
137c869f77dSJakub Kicinski 	),
138c869f77dSJakub Kicinski 	TP_printk(DEV_PR_FMT "%04x=%04x", DEV_PR_ARG, __entry->o, __entry->v)
139c869f77dSJakub Kicinski );
140c869f77dSJakub Kicinski 
141c869f77dSJakub Kicinski DECLARE_EVENT_CLASS(dev_rf_reg_evt,
142c869f77dSJakub Kicinski 	TP_PROTO(struct mt7601u_dev *dev, u8 bank, u8 reg, u8 val),
143c869f77dSJakub Kicinski 	TP_ARGS(dev, bank, reg, val),
144c869f77dSJakub Kicinski 	TP_STRUCT__entry(
145c869f77dSJakub Kicinski 		DEV_ENTRY
146c869f77dSJakub Kicinski 		__field(u8, bank)
147c869f77dSJakub Kicinski 		__field(u8, reg)
148c869f77dSJakub Kicinski 		__field(u8, val)
149c869f77dSJakub Kicinski 	),
150c869f77dSJakub Kicinski 	TP_fast_assign(
151c869f77dSJakub Kicinski 		DEV_ASSIGN;
152c869f77dSJakub Kicinski 		REG_ASSIGN;
153c869f77dSJakub Kicinski 		__entry->bank = bank;
154c869f77dSJakub Kicinski 	),
155c869f77dSJakub Kicinski 	TP_printk(
156c869f77dSJakub Kicinski 		DEV_PR_FMT "%02hhx:%02hhx=%02hhx",
157c869f77dSJakub Kicinski 		DEV_PR_ARG, __entry->bank, __entry->reg, __entry->val
158c869f77dSJakub Kicinski 	)
159c869f77dSJakub Kicinski );
160c869f77dSJakub Kicinski 
161c869f77dSJakub Kicinski DEFINE_EVENT(dev_rf_reg_evt, rf_read,
162c869f77dSJakub Kicinski 	TP_PROTO(struct mt7601u_dev *dev, u8 bank, u8 reg, u8 val),
163c869f77dSJakub Kicinski 	TP_ARGS(dev, bank, reg, val)
164c869f77dSJakub Kicinski );
165c869f77dSJakub Kicinski 
166c869f77dSJakub Kicinski DEFINE_EVENT(dev_rf_reg_evt, rf_write,
167c869f77dSJakub Kicinski 	TP_PROTO(struct mt7601u_dev *dev, u8 bank, u8 reg, u8 val),
168c869f77dSJakub Kicinski 	TP_ARGS(dev, bank, reg, val)
169c869f77dSJakub Kicinski );
170c869f77dSJakub Kicinski 
171c869f77dSJakub Kicinski DECLARE_EVENT_CLASS(dev_bbp_reg_evt,
172c869f77dSJakub Kicinski 	TP_PROTO(struct mt7601u_dev *dev, u8 reg, u8 val),
173c869f77dSJakub Kicinski 	TP_ARGS(dev, reg, val),
174c869f77dSJakub Kicinski 	TP_STRUCT__entry(
175c869f77dSJakub Kicinski 		DEV_ENTRY
176c869f77dSJakub Kicinski 		__field(u8, reg)
177c869f77dSJakub Kicinski 		__field(u8, val)
178c869f77dSJakub Kicinski 	),
179c869f77dSJakub Kicinski 	TP_fast_assign(
180c869f77dSJakub Kicinski 		DEV_ASSIGN;
181c869f77dSJakub Kicinski 		REG_ASSIGN;
182c869f77dSJakub Kicinski 	),
183c869f77dSJakub Kicinski 	TP_printk(
184c869f77dSJakub Kicinski 		DEV_PR_FMT "%02hhx=%02hhx",
185c869f77dSJakub Kicinski 		DEV_PR_ARG, __entry->reg, __entry->val
186c869f77dSJakub Kicinski 	)
187c869f77dSJakub Kicinski );
188c869f77dSJakub Kicinski 
189c869f77dSJakub Kicinski DEFINE_EVENT(dev_bbp_reg_evt, bbp_read,
190c869f77dSJakub Kicinski 	TP_PROTO(struct mt7601u_dev *dev, u8 reg, u8 val),
191c869f77dSJakub Kicinski 	TP_ARGS(dev, reg, val)
192c869f77dSJakub Kicinski );
193c869f77dSJakub Kicinski 
194c869f77dSJakub Kicinski DEFINE_EVENT(dev_bbp_reg_evt, bbp_write,
195c869f77dSJakub Kicinski 	TP_PROTO(struct mt7601u_dev *dev, u8 reg, u8 val),
196c869f77dSJakub Kicinski 	TP_ARGS(dev, reg, val)
197c869f77dSJakub Kicinski );
198c869f77dSJakub Kicinski 
199c869f77dSJakub Kicinski DECLARE_EVENT_CLASS(dev_simple_evt,
200c869f77dSJakub Kicinski 	TP_PROTO(struct mt7601u_dev *dev, u8 val),
201c869f77dSJakub Kicinski 	TP_ARGS(dev, val),
202c869f77dSJakub Kicinski 	TP_STRUCT__entry(
203c869f77dSJakub Kicinski 		DEV_ENTRY
204c869f77dSJakub Kicinski 		__field(u8, val)
205c869f77dSJakub Kicinski 	),
206c869f77dSJakub Kicinski 	TP_fast_assign(
207c869f77dSJakub Kicinski 		DEV_ASSIGN;
208c869f77dSJakub Kicinski 		__entry->val = val;
209c869f77dSJakub Kicinski 	),
210c869f77dSJakub Kicinski 	TP_printk(
211c869f77dSJakub Kicinski 		DEV_PR_FMT "%02hhx", DEV_PR_ARG, __entry->val
212c869f77dSJakub Kicinski 	)
213c869f77dSJakub Kicinski );
214c869f77dSJakub Kicinski 
215c869f77dSJakub Kicinski DEFINE_EVENT(dev_simple_evt, temp_mode,
216c869f77dSJakub Kicinski 	TP_PROTO(struct mt7601u_dev *dev, u8 val),
217c869f77dSJakub Kicinski 	TP_ARGS(dev, val)
218c869f77dSJakub Kicinski );
219c869f77dSJakub Kicinski 
220c869f77dSJakub Kicinski DEFINE_EVENT(dev_simple_evt, read_temp,
221c869f77dSJakub Kicinski 	TP_PROTO(struct mt7601u_dev *dev, u8 val),
222c869f77dSJakub Kicinski 	TP_ARGS(dev, val)
223c869f77dSJakub Kicinski );
224c869f77dSJakub Kicinski 
225c869f77dSJakub Kicinski DEFINE_EVENT(dev_simple_evt, freq_cal_adjust,
226c869f77dSJakub Kicinski 	TP_PROTO(struct mt7601u_dev *dev, u8 val),
227c869f77dSJakub Kicinski 	TP_ARGS(dev, val)
228c869f77dSJakub Kicinski );
229c869f77dSJakub Kicinski 
230c869f77dSJakub Kicinski TRACE_EVENT(freq_cal_offset,
231c869f77dSJakub Kicinski 	TP_PROTO(struct mt7601u_dev *dev, u8 phy_mode, s8 freq_off),
232c869f77dSJakub Kicinski 	TP_ARGS(dev, phy_mode, freq_off),
233c869f77dSJakub Kicinski 	TP_STRUCT__entry(
234c869f77dSJakub Kicinski 		DEV_ENTRY
235c869f77dSJakub Kicinski 		__field(u8, phy_mode)
236c869f77dSJakub Kicinski 		__field(s8, freq_off)
237c869f77dSJakub Kicinski 	),
238c869f77dSJakub Kicinski 	TP_fast_assign(
239c869f77dSJakub Kicinski 		DEV_ASSIGN;
240c869f77dSJakub Kicinski 		__entry->phy_mode = phy_mode;
241c869f77dSJakub Kicinski 		__entry->freq_off = freq_off;
242c869f77dSJakub Kicinski 	),
243c869f77dSJakub Kicinski 	TP_printk(DEV_PR_FMT "phy:%02hhx off:%02hhx",
244c869f77dSJakub Kicinski 		  DEV_PR_ARG, __entry->phy_mode, __entry->freq_off)
245c869f77dSJakub Kicinski );
246c869f77dSJakub Kicinski 
247c869f77dSJakub Kicinski TRACE_EVENT(mt_rx,
248c869f77dSJakub Kicinski 	TP_PROTO(struct mt7601u_dev *dev, struct mt7601u_rxwi *rxwi, u32 f),
249c869f77dSJakub Kicinski 	TP_ARGS(dev, rxwi, f),
250c869f77dSJakub Kicinski 	TP_STRUCT__entry(
251c869f77dSJakub Kicinski 		DEV_ENTRY
252c869f77dSJakub Kicinski 		__field_struct(struct mt7601u_rxwi, rxwi)
253c869f77dSJakub Kicinski 		__field(u32, fce_info)
254c869f77dSJakub Kicinski 	),
255c869f77dSJakub Kicinski 	TP_fast_assign(
256c869f77dSJakub Kicinski 		DEV_ASSIGN;
257c869f77dSJakub Kicinski 		__entry->rxwi = *rxwi;
258c869f77dSJakub Kicinski 		__entry->fce_info = f;
259c869f77dSJakub Kicinski 	),
260c869f77dSJakub Kicinski 	TP_printk(DEV_PR_FMT "rxi:%08x ctl:%08x frag_sn:%04hx rate:%04hx "
261c869f77dSJakub Kicinski 		  "uknw:%02hhx z:%02hhx%02hhx%02hhx snr:%02hhx "
262c869f77dSJakub Kicinski 		  "ant:%02hhx gain:%02hhx freq_o:%02hhx "
263c869f77dSJakub Kicinski 		  "r:%08x ea:%08x fce:%08x", DEV_PR_ARG,
264c869f77dSJakub Kicinski 		  le32_to_cpu(__entry->rxwi.rxinfo),
265c869f77dSJakub Kicinski 		  le32_to_cpu(__entry->rxwi.ctl),
266c869f77dSJakub Kicinski 		  le16_to_cpu(__entry->rxwi.frag_sn),
267c869f77dSJakub Kicinski 		  le16_to_cpu(__entry->rxwi.rate),
268c869f77dSJakub Kicinski 		  __entry->rxwi.unknown,
269c869f77dSJakub Kicinski 		  __entry->rxwi.zero[0], __entry->rxwi.zero[1],
270c869f77dSJakub Kicinski 		  __entry->rxwi.zero[2],
271c869f77dSJakub Kicinski 		  __entry->rxwi.snr, __entry->rxwi.ant,
272c869f77dSJakub Kicinski 		  __entry->rxwi.gain, __entry->rxwi.freq_off,
273c869f77dSJakub Kicinski 		  __entry->rxwi.resv2, __entry->rxwi.expert_ant,
274c869f77dSJakub Kicinski 		  __entry->fce_info)
275c869f77dSJakub Kicinski );
276c869f77dSJakub Kicinski 
277c869f77dSJakub Kicinski TRACE_EVENT(mt_tx,
278c869f77dSJakub Kicinski 	TP_PROTO(struct mt7601u_dev *dev, struct sk_buff *skb,
279c869f77dSJakub Kicinski 		 struct mt76_sta *sta, struct mt76_txwi *h),
280c869f77dSJakub Kicinski 	TP_ARGS(dev, skb, sta, h),
281c869f77dSJakub Kicinski 	TP_STRUCT__entry(
282c869f77dSJakub Kicinski 		DEV_ENTRY
283c869f77dSJakub Kicinski 		__field_struct(struct mt76_txwi, h)
284c869f77dSJakub Kicinski 		__field(struct sk_buff *, skb)
285c869f77dSJakub Kicinski 		__field(struct mt76_sta *, sta)
286c869f77dSJakub Kicinski 	),
287c869f77dSJakub Kicinski 	TP_fast_assign(
288c869f77dSJakub Kicinski 		DEV_ASSIGN;
289c869f77dSJakub Kicinski 		__entry->h = *h;
290c869f77dSJakub Kicinski 		__entry->skb = skb;
291c869f77dSJakub Kicinski 		__entry->sta = sta;
292c869f77dSJakub Kicinski 	),
293c869f77dSJakub Kicinski 	TP_printk(DEV_PR_FMT "skb:%p sta:%p  flg:%04hx rate_ctl:%04hx "
294c869f77dSJakub Kicinski 		  "ack:%02hhx wcid:%02hhx len_ctl:%05hx", DEV_PR_ARG,
295c869f77dSJakub Kicinski 		  __entry->skb, __entry->sta,
296c869f77dSJakub Kicinski 		  le16_to_cpu(__entry->h.flags),
297c869f77dSJakub Kicinski 		  le16_to_cpu(__entry->h.rate_ctl),
298c869f77dSJakub Kicinski 		  __entry->h.ack_ctl, __entry->h.wcid,
299c869f77dSJakub Kicinski 		  le16_to_cpu(__entry->h.len_ctl))
300c869f77dSJakub Kicinski );
301c869f77dSJakub Kicinski 
302c869f77dSJakub Kicinski TRACE_EVENT(mt_tx_dma_done,
303c869f77dSJakub Kicinski 	TP_PROTO(struct mt7601u_dev *dev, struct sk_buff *skb),
304c869f77dSJakub Kicinski 	TP_ARGS(dev, skb),
305c869f77dSJakub Kicinski 	TP_STRUCT__entry(
306c869f77dSJakub Kicinski 		DEV_ENTRY
307c869f77dSJakub Kicinski 		__field(struct sk_buff *, skb)
308c869f77dSJakub Kicinski 	),
309c869f77dSJakub Kicinski 	TP_fast_assign(
310c869f77dSJakub Kicinski 		DEV_ASSIGN;
311c869f77dSJakub Kicinski 		__entry->skb = skb;
312c869f77dSJakub Kicinski 	),
313c869f77dSJakub Kicinski 	TP_printk(DEV_PR_FMT "%p", DEV_PR_ARG, __entry->skb)
314c869f77dSJakub Kicinski );
315c869f77dSJakub Kicinski 
316c869f77dSJakub Kicinski TRACE_EVENT(mt_tx_status_cleaned,
317c869f77dSJakub Kicinski 	TP_PROTO(struct mt7601u_dev *dev, int cleaned),
318c869f77dSJakub Kicinski 	TP_ARGS(dev, cleaned),
319c869f77dSJakub Kicinski 	TP_STRUCT__entry(
320c869f77dSJakub Kicinski 		DEV_ENTRY
321c869f77dSJakub Kicinski 		__field(int, cleaned)
322c869f77dSJakub Kicinski 	),
323c869f77dSJakub Kicinski 	TP_fast_assign(
324c869f77dSJakub Kicinski 		DEV_ASSIGN;
325c869f77dSJakub Kicinski 		__entry->cleaned = cleaned;
326c869f77dSJakub Kicinski 	),
327c869f77dSJakub Kicinski 	TP_printk(DEV_PR_FMT "%d", DEV_PR_ARG, __entry->cleaned)
328c869f77dSJakub Kicinski );
329c869f77dSJakub Kicinski 
330c869f77dSJakub Kicinski TRACE_EVENT(mt_tx_status,
331c869f77dSJakub Kicinski 	TP_PROTO(struct mt7601u_dev *dev, u32 stat1, u32 stat2),
332c869f77dSJakub Kicinski 	TP_ARGS(dev, stat1, stat2),
333c869f77dSJakub Kicinski 	TP_STRUCT__entry(
334c869f77dSJakub Kicinski 		DEV_ENTRY
335c869f77dSJakub Kicinski 		__field(u32, stat1)	__field(u32, stat2)
336c869f77dSJakub Kicinski 	),
337c869f77dSJakub Kicinski 	TP_fast_assign(
338c869f77dSJakub Kicinski 		DEV_ASSIGN;
339c869f77dSJakub Kicinski 		__entry->stat1 = stat1;
340c869f77dSJakub Kicinski 		__entry->stat2 = stat2;
341c869f77dSJakub Kicinski 	),
342c869f77dSJakub Kicinski 	TP_printk(DEV_PR_FMT "%08x %08x",
343c869f77dSJakub Kicinski 		  DEV_PR_ARG, __entry->stat1, __entry->stat2)
344c869f77dSJakub Kicinski );
345c869f77dSJakub Kicinski 
346c869f77dSJakub Kicinski TRACE_EVENT(mt_rx_dma_aggr,
347c869f77dSJakub Kicinski 	TP_PROTO(struct mt7601u_dev *dev, int cnt, bool paged),
348c869f77dSJakub Kicinski 	TP_ARGS(dev, cnt, paged),
349c869f77dSJakub Kicinski 	TP_STRUCT__entry(
350c869f77dSJakub Kicinski 		DEV_ENTRY
351c869f77dSJakub Kicinski 		__field(u8, cnt)
352c869f77dSJakub Kicinski 		__field(bool, paged)
353c869f77dSJakub Kicinski 	),
354c869f77dSJakub Kicinski 	TP_fast_assign(
355c869f77dSJakub Kicinski 		DEV_ASSIGN;
356c869f77dSJakub Kicinski 		__entry->cnt = cnt;
357c869f77dSJakub Kicinski 		__entry->paged = paged;
358c869f77dSJakub Kicinski 	),
359c869f77dSJakub Kicinski 	TP_printk(DEV_PR_FMT "cnt:%d paged:%d",
360c869f77dSJakub Kicinski 		  DEV_PR_ARG, __entry->cnt, __entry->paged)
361c869f77dSJakub Kicinski );
362c869f77dSJakub Kicinski 
363c869f77dSJakub Kicinski DEFINE_EVENT(dev_simple_evt, set_key,
364c869f77dSJakub Kicinski 	TP_PROTO(struct mt7601u_dev *dev, u8 val),
365c869f77dSJakub Kicinski 	TP_ARGS(dev, val)
366c869f77dSJakub Kicinski );
367c869f77dSJakub Kicinski 
368c869f77dSJakub Kicinski TRACE_EVENT(set_shared_key,
369c869f77dSJakub Kicinski 	TP_PROTO(struct mt7601u_dev *dev, u8 vid, u8 key),
370c869f77dSJakub Kicinski 	TP_ARGS(dev, vid, key),
371c869f77dSJakub Kicinski 	TP_STRUCT__entry(
372c869f77dSJakub Kicinski 		DEV_ENTRY
373c869f77dSJakub Kicinski 		__field(u8, vid)
374c869f77dSJakub Kicinski 		__field(u8, key)
375c869f77dSJakub Kicinski 	),
376c869f77dSJakub Kicinski 	TP_fast_assign(
377c869f77dSJakub Kicinski 		DEV_ASSIGN;
378c869f77dSJakub Kicinski 		__entry->vid = vid;
379c869f77dSJakub Kicinski 		__entry->key = key;
380c869f77dSJakub Kicinski 	),
381c869f77dSJakub Kicinski 	TP_printk(DEV_PR_FMT "phy:%02hhx off:%02hhx",
382c869f77dSJakub Kicinski 		  DEV_PR_ARG, __entry->vid, __entry->key)
383c869f77dSJakub Kicinski );
384c869f77dSJakub Kicinski 
385c869f77dSJakub Kicinski #endif
386c869f77dSJakub Kicinski 
387c869f77dSJakub Kicinski #undef TRACE_INCLUDE_PATH
388c869f77dSJakub Kicinski #define TRACE_INCLUDE_PATH .
389c869f77dSJakub Kicinski #undef TRACE_INCLUDE_FILE
390c869f77dSJakub Kicinski #define TRACE_INCLUDE_FILE trace
391c869f77dSJakub Kicinski 
392c869f77dSJakub Kicinski #include <trace/define_trace.h>
393