Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid
[linux-2.6-microblaze.git] / drivers / gpu / drm / v3d / v3d_trace.h
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
15 TRACE_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
37 TRACE_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
67 TRACE_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
87 TRACE_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
107 TRACE_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
127 TRACE_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
147 TRACE_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
166 TRACE_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
186 TRACE_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
208 TRACE_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
228 TRACE_EVENT(v3d_cache_clean_begin,
229             TP_PROTO(struct drm_device *dev),
230             TP_ARGS(dev),
231
232             TP_STRUCT__entry(
233                              __field(u32, dev)
234                              ),
235
236             TP_fast_assign(
237                            __entry->dev = dev->primary->index;
238                            ),
239
240             TP_printk("dev=%u",
241                       __entry->dev)
242 );
243
244 TRACE_EVENT(v3d_cache_clean_end,
245             TP_PROTO(struct drm_device *dev),
246             TP_ARGS(dev),
247
248             TP_STRUCT__entry(
249                              __field(u32, dev)
250                              ),
251
252             TP_fast_assign(
253                            __entry->dev = dev->primary->index;
254                            ),
255
256             TP_printk("dev=%u",
257                       __entry->dev)
258 );
259
260 TRACE_EVENT(v3d_reset_begin,
261             TP_PROTO(struct drm_device *dev),
262             TP_ARGS(dev),
263
264             TP_STRUCT__entry(
265                              __field(u32, dev)
266                              ),
267
268             TP_fast_assign(
269                            __entry->dev = dev->primary->index;
270                            ),
271
272             TP_printk("dev=%u",
273                       __entry->dev)
274 );
275
276 TRACE_EVENT(v3d_reset_end,
277             TP_PROTO(struct drm_device *dev),
278             TP_ARGS(dev),
279
280             TP_STRUCT__entry(
281                              __field(u32, dev)
282                              ),
283
284             TP_fast_assign(
285                            __entry->dev = dev->primary->index;
286                            ),
287
288             TP_printk("dev=%u",
289                       __entry->dev)
290 );
291
292 #endif /* _V3D_TRACE_H_ */
293
294 /* This part must be outside protection */
295 #undef TRACE_INCLUDE_PATH
296 #define TRACE_INCLUDE_PATH .
297 #include <trace/define_trace.h>