Loading...
1// SPDX-License-Identifier: GPL-2.0+
2/* Copyright (C) 2015-2018 Broadcom */
3
4#if !defined(_V3D_TRACE_H_) || defined(TRACE_HEADER_MULTI_READ)
5#define _V3D_TRACE_H_
6
7#include <linux/stringify.h>
8#include <linux/types.h>
9#include <linux/tracepoint.h>
10
11#undef TRACE_SYSTEM
12#define TRACE_SYSTEM v3d
13#define TRACE_INCLUDE_FILE v3d_trace
14
15TRACE_EVENT(v3d_submit_cl_ioctl,
16 TP_PROTO(struct drm_device *dev, u32 ct1qba, u32 ct1qea),
17 TP_ARGS(dev, ct1qba, ct1qea),
18
19 TP_STRUCT__entry(
20 __field(u32, dev)
21 __field(u32, ct1qba)
22 __field(u32, ct1qea)
23 ),
24
25 TP_fast_assign(
26 __entry->dev = dev->primary->index;
27 __entry->ct1qba = ct1qba;
28 __entry->ct1qea = ct1qea;
29 ),
30
31 TP_printk("dev=%u, RCL 0x%08x..0x%08x",
32 __entry->dev,
33 __entry->ct1qba,
34 __entry->ct1qea)
35);
36
37TRACE_EVENT(v3d_submit_cl,
38 TP_PROTO(struct drm_device *dev, bool is_render,
39 uint64_t seqno,
40 u32 ctnqba, u32 ctnqea),
41 TP_ARGS(dev, is_render, seqno, ctnqba, ctnqea),
42
43 TP_STRUCT__entry(
44 __field(u32, dev)
45 __field(bool, is_render)
46 __field(u64, seqno)
47 __field(u32, ctnqba)
48 __field(u32, ctnqea)
49 ),
50
51 TP_fast_assign(
52 __entry->dev = dev->primary->index;
53 __entry->is_render = is_render;
54 __entry->seqno = seqno;
55 __entry->ctnqba = ctnqba;
56 __entry->ctnqea = ctnqea;
57 ),
58
59 TP_printk("dev=%u, %s, seqno=%llu, 0x%08x..0x%08x",
60 __entry->dev,
61 __entry->is_render ? "RCL" : "BCL",
62 __entry->seqno,
63 __entry->ctnqba,
64 __entry->ctnqea)
65);
66
67TRACE_EVENT(v3d_bcl_irq,
68 TP_PROTO(struct drm_device *dev,
69 uint64_t seqno),
70 TP_ARGS(dev, seqno),
71
72 TP_STRUCT__entry(
73 __field(u32, dev)
74 __field(u64, seqno)
75 ),
76
77 TP_fast_assign(
78 __entry->dev = dev->primary->index;
79 __entry->seqno = seqno;
80 ),
81
82 TP_printk("dev=%u, seqno=%llu",
83 __entry->dev,
84 __entry->seqno)
85);
86
87TRACE_EVENT(v3d_rcl_irq,
88 TP_PROTO(struct drm_device *dev,
89 uint64_t seqno),
90 TP_ARGS(dev, seqno),
91
92 TP_STRUCT__entry(
93 __field(u32, dev)
94 __field(u64, seqno)
95 ),
96
97 TP_fast_assign(
98 __entry->dev = dev->primary->index;
99 __entry->seqno = seqno;
100 ),
101
102 TP_printk("dev=%u, seqno=%llu",
103 __entry->dev,
104 __entry->seqno)
105);
106
107TRACE_EVENT(v3d_tfu_irq,
108 TP_PROTO(struct drm_device *dev,
109 uint64_t seqno),
110 TP_ARGS(dev, seqno),
111
112 TP_STRUCT__entry(
113 __field(u32, dev)
114 __field(u64, seqno)
115 ),
116
117 TP_fast_assign(
118 __entry->dev = dev->primary->index;
119 __entry->seqno = seqno;
120 ),
121
122 TP_printk("dev=%u, seqno=%llu",
123 __entry->dev,
124 __entry->seqno)
125);
126
127TRACE_EVENT(v3d_csd_irq,
128 TP_PROTO(struct drm_device *dev,
129 uint64_t seqno),
130 TP_ARGS(dev, seqno),
131
132 TP_STRUCT__entry(
133 __field(u32, dev)
134 __field(u64, seqno)
135 ),
136
137 TP_fast_assign(
138 __entry->dev = dev->primary->index;
139 __entry->seqno = seqno;
140 ),
141
142 TP_printk("dev=%u, seqno=%llu",
143 __entry->dev,
144 __entry->seqno)
145);
146
147TRACE_EVENT(v3d_submit_tfu_ioctl,
148 TP_PROTO(struct drm_device *dev, u32 iia),
149 TP_ARGS(dev, iia),
150
151 TP_STRUCT__entry(
152 __field(u32, dev)
153 __field(u32, iia)
154 ),
155
156 TP_fast_assign(
157 __entry->dev = dev->primary->index;
158 __entry->iia = iia;
159 ),
160
161 TP_printk("dev=%u, IIA 0x%08x",
162 __entry->dev,
163 __entry->iia)
164);
165
166TRACE_EVENT(v3d_submit_tfu,
167 TP_PROTO(struct drm_device *dev,
168 uint64_t seqno),
169 TP_ARGS(dev, seqno),
170
171 TP_STRUCT__entry(
172 __field(u32, dev)
173 __field(u64, seqno)
174 ),
175
176 TP_fast_assign(
177 __entry->dev = dev->primary->index;
178 __entry->seqno = seqno;
179 ),
180
181 TP_printk("dev=%u, seqno=%llu",
182 __entry->dev,
183 __entry->seqno)
184);
185
186TRACE_EVENT(v3d_submit_csd_ioctl,
187 TP_PROTO(struct drm_device *dev, u32 cfg5, u32 cfg6),
188 TP_ARGS(dev, cfg5, cfg6),
189
190 TP_STRUCT__entry(
191 __field(u32, dev)
192 __field(u32, cfg5)
193 __field(u32, cfg6)
194 ),
195
196 TP_fast_assign(
197 __entry->dev = dev->primary->index;
198 __entry->cfg5 = cfg5;
199 __entry->cfg6 = cfg6;
200 ),
201
202 TP_printk("dev=%u, CFG5 0x%08x, CFG6 0x%08x",
203 __entry->dev,
204 __entry->cfg5,
205 __entry->cfg6)
206);
207
208TRACE_EVENT(v3d_submit_csd,
209 TP_PROTO(struct drm_device *dev,
210 uint64_t seqno),
211 TP_ARGS(dev, seqno),
212
213 TP_STRUCT__entry(
214 __field(u32, dev)
215 __field(u64, seqno)
216 ),
217
218 TP_fast_assign(
219 __entry->dev = dev->primary->index;
220 __entry->seqno = seqno;
221 ),
222
223 TP_printk("dev=%u, seqno=%llu",
224 __entry->dev,
225 __entry->seqno)
226);
227
228TRACE_EVENT(v3d_submit_cpu_ioctl,
229 TP_PROTO(struct drm_device *dev, enum v3d_cpu_job_type job_type),
230 TP_ARGS(dev, job_type),
231
232 TP_STRUCT__entry(
233 __field(u32, dev)
234 __field(enum v3d_cpu_job_type, job_type)
235 ),
236
237 TP_fast_assign(
238 __entry->dev = dev->primary->index;
239 __entry->job_type = job_type;
240 ),
241
242 TP_printk("dev=%u, job_type=%d",
243 __entry->dev,
244 __entry->job_type)
245);
246
247TRACE_EVENT(v3d_cpu_job_begin,
248 TP_PROTO(struct drm_device *dev, enum v3d_cpu_job_type job_type),
249 TP_ARGS(dev, job_type),
250
251 TP_STRUCT__entry(
252 __field(u32, dev)
253 __field(enum v3d_cpu_job_type, job_type)
254 ),
255
256 TP_fast_assign(
257 __entry->dev = dev->primary->index;
258 __entry->job_type = job_type;
259 ),
260
261 TP_printk("dev=%u, job_type=%d",
262 __entry->dev,
263 __entry->job_type)
264);
265
266TRACE_EVENT(v3d_cpu_job_end,
267 TP_PROTO(struct drm_device *dev, enum v3d_cpu_job_type job_type),
268 TP_ARGS(dev, job_type),
269
270 TP_STRUCT__entry(
271 __field(u32, dev)
272 __field(enum v3d_cpu_job_type, job_type)
273 ),
274
275 TP_fast_assign(
276 __entry->dev = dev->primary->index;
277 __entry->job_type = job_type;
278 ),
279
280 TP_printk("dev=%u, job_type=%d",
281 __entry->dev,
282 __entry->job_type)
283);
284
285TRACE_EVENT(v3d_cache_clean_begin,
286 TP_PROTO(struct drm_device *dev),
287 TP_ARGS(dev),
288
289 TP_STRUCT__entry(
290 __field(u32, dev)
291 ),
292
293 TP_fast_assign(
294 __entry->dev = dev->primary->index;
295 ),
296
297 TP_printk("dev=%u",
298 __entry->dev)
299);
300
301TRACE_EVENT(v3d_cache_clean_end,
302 TP_PROTO(struct drm_device *dev),
303 TP_ARGS(dev),
304
305 TP_STRUCT__entry(
306 __field(u32, dev)
307 ),
308
309 TP_fast_assign(
310 __entry->dev = dev->primary->index;
311 ),
312
313 TP_printk("dev=%u",
314 __entry->dev)
315);
316
317TRACE_EVENT(v3d_reset_begin,
318 TP_PROTO(struct drm_device *dev),
319 TP_ARGS(dev),
320
321 TP_STRUCT__entry(
322 __field(u32, dev)
323 ),
324
325 TP_fast_assign(
326 __entry->dev = dev->primary->index;
327 ),
328
329 TP_printk("dev=%u",
330 __entry->dev)
331);
332
333TRACE_EVENT(v3d_reset_end,
334 TP_PROTO(struct drm_device *dev),
335 TP_ARGS(dev),
336
337 TP_STRUCT__entry(
338 __field(u32, dev)
339 ),
340
341 TP_fast_assign(
342 __entry->dev = dev->primary->index;
343 ),
344
345 TP_printk("dev=%u",
346 __entry->dev)
347);
348
349#endif /* _V3D_TRACE_H_ */
350
351/* This part must be outside protection */
352#undef TRACE_INCLUDE_PATH
353#define TRACE_INCLUDE_PATH .
354#include <trace/define_trace.h>